@plasmicpkgs/react-chartjs-2 1.0.117 → 1.0.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react-chartjs-2.cjs.development.js +6 -11
- package/dist/react-chartjs-2.cjs.development.js.map +1 -1
- package/dist/react-chartjs-2.cjs.production.min.js +1 -1
- package/dist/react-chartjs-2.cjs.production.min.js.map +1 -1
- package/dist/react-chartjs-2.esm.js +6 -11
- package/dist/react-chartjs-2.esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -13,18 +13,13 @@ var deepmerge = _interopDefault(require('deepmerge'));
|
|
|
13
13
|
var reactChartjs2 = require('react-chartjs-2');
|
|
14
14
|
|
|
15
15
|
function _extends() {
|
|
16
|
-
_extends = Object.assign ? Object.assign.bind() : function (
|
|
17
|
-
for (var
|
|
18
|
-
var
|
|
19
|
-
for (var
|
|
20
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
21
|
-
target[key] = source[key];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
16
|
+
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
17
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
18
|
+
var t = arguments[e];
|
|
19
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
24
20
|
}
|
|
25
|
-
return
|
|
26
|
-
};
|
|
27
|
-
return _extends.apply(this, arguments);
|
|
21
|
+
return n;
|
|
22
|
+
}, _extends.apply(null, arguments);
|
|
28
23
|
}
|
|
29
24
|
|
|
30
25
|
function registerComponentHelper(loader, component, meta) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-chartjs-2.cjs.development.js","sources":["../src/utils.ts","../src/common.ts","../src/simple-bar/SimpleBar.tsx","../src/simple-line/SimpleLine.tsx","../src/simple-scatter/SimpleScatter.tsx","../src/simple-chart/SimpleChart.tsx","../src/simple-chart/index.tsx","../src/index.tsx"],"sourcesContent":["import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n","import { Plugin } from \"chart.js/dist/types\";\nimport { useEffect, useState } from \"react\";\n\nexport const baseOptions = {\n responsive: true,\n chartArea: {\n // backgroundColor: \"#f8fafc\",\n },\n};\n\n/**\n * These are hand-picked from the Tailwind palette.\n */\nexport const defaultColors = [\n \"hsla(25,95%,53%,1.0)\",\n \"hsla(38,92%,50%,1.0)\",\n \"hsla(45,93%,47%,1.0)\",\n \"hsla(84,81%,44%,1.0)\",\n \"hsla(142,71%,45%,1.0)\",\n \"hsla(160,84%,39%,1.0)\",\n \"hsla(173,80%,40%,1.0)\",\n \"hsla(199,89%,48%,1.0)\",\n \"hsla(217,91%,60%,1.0)\",\n \"hsla(239,84%,67%,1.0)\",\n \"hsla(258,90%,66%,1.0)\",\n \"hsla(271,91%,65%,1.0)\",\n \"hsla(292,84%,61%,1.0)\",\n \"hsla(293,69%,49%,1.0)\",\n \"hsla(295,72%,40%,1.0)\",\n \"hsla(295,70%,33%,1.0)\",\n];\n\nexport function useIsClient() {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\nexport interface BaseChartProps {\n className?: string;\n data?: Record<string, any>[];\n labelField?: string;\n interactive?: boolean;\n title?: string;\n chosenFields?: string[];\n scatterSeries?: { name: string; fields: [string, string] }[];\n}\n\nexport interface PrepDataOpts {\n isScatter?: boolean;\n preferNonNumericAsLabel?: boolean;\n extras?: (field: string) => {};\n opacity?: number;\n}\n\nfunction range(total: number) {\n return Array.from(Array(total).keys());\n}\n\n/**\n * Returns a color from the default color palette.\n *\n * Tries to pick \"different\" colors that are somewhat spread out on the palette. With a higher 'total' colors requested, the colors will be packed more closely together.\n *\n * We prefer starting from blue when possible. This only starts getting pushed down toward yellow if too many colors requested.\n *\n * If too many colors are requested, it will recycle.\n */\nexport function getDefaultColor(\n index: number,\n total: number,\n opacity?: number\n) {\n const preferredStart = 9;\n const end = defaultColors.length - 1;\n const start = Math.max(0, Math.min(preferredStart, end - total));\n const stops =\n total > defaultColors.length\n ? range(defaultColors.length)\n : range(total).map((_, i) =>\n Math.round(\n start + (total > 1 ? ((1.0 * i) / (total - 1)) * (end - start) : 0)\n )\n );\n const selected = defaultColors[stops[index % stops.length]];\n if (opacity === undefined) {\n return selected;\n }\n return selected.replace(\"1.0\", \"\" + opacity);\n}\n\nexport function prepData(\n { data = [], labelField, chosenFields, scatterSeries }: BaseChartProps,\n { isScatter, preferNonNumericAsLabel, extras, opacity }: PrepDataOpts = {}\n) {\n const fields = Object.keys(data[0] ?? {});\n const isFieldAllNumericOrNil = new Map(\n fields.map((key) => [key, data.every((item) => !isNaN(item[key] ?? 0))])\n );\n const realLabelField =\n labelField ??\n (preferNonNumericAsLabel\n ? fields.find((field) => !isFieldAllNumericOrNil.get(field))\n : fields[0]);\n const numericFields = fields.filter((field) =>\n isFieldAllNumericOrNil.get(field)\n );\n if (isScatter) {\n scatterSeries = isScatter\n ? scatterSeries ?? [\n {\n name: `${numericFields[0]}-${numericFields[1]}`,\n fields: [numericFields[0], numericFields[1]] as [string, string],\n },\n ]\n : undefined;\n return {\n datasets: (scatterSeries ?? []).map((series, index) => ({\n ...extras?.(series.name),\n label: series.name,\n data: data.map((item) => ({\n x: item[series.fields[0]] ?? 0,\n y: item[series.fields[1]] ?? 0,\n })),\n backgroundColor: getDefaultColor(\n index,\n (scatterSeries ?? []).length,\n opacity\n ),\n })),\n };\n } else {\n const autoChosenFields = numericFields.filter(\n (field) => field !== realLabelField\n );\n return {\n labels: realLabelField\n ? data.map((item) => item[realLabelField])\n : undefined,\n datasets: (chosenFields ?? autoChosenFields).map((key, index) => {\n return {\n ...extras?.(key),\n label: key,\n data: data.map((item) => item[key] ?? 0),\n backgroundColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n borderWidth: 2,\n borderColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n };\n }),\n };\n }\n}\n\n// additional styling\n\n/*\n elements: {\n bar: {\n borderWidth: 2,\n },\n },\n\n */\n\nexport function prepOptions({ interactive = true, title }: BaseChartProps) {\n return [\n baseOptions,\n interactive\n ? {\n interaction: {\n mode: \"index\" as const,\n intersect: false,\n },\n events: undefined,\n }\n : {\n events: [],\n },\n title\n ? {\n plugins: {\n title: { display: true, text: title },\n },\n }\n : {},\n ];\n}\n\nexport const ChartAreaPlugin: Plugin = {\n id: \"chartAreaPlugin\",\n // eslint-disable-next-line object-shorthand\n beforeDraw: (chart) => {\n const chartAreaOptions = (chart.config.options as any).chartArea;\n if (chartAreaOptions && chartAreaOptions.backgroundColor) {\n const ctx = chart.canvas.getContext(\"2d\");\n const { chartArea } = chart;\n if (ctx) {\n ctx.save();\n ctx.fillStyle = chartAreaOptions.backgroundColor;\n // eslint-disable-next-line max-len\n ctx.fillRect(\n chartArea.left,\n chartArea.top,\n chartArea.right - chartArea.left,\n chartArea.bottom - chartArea.top\n );\n ctx.restore();\n }\n }\n },\n};\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Bar } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport const stackedOptions = {\n scales: {\n x: {\n stacked: true,\n ticks: {\n major: {\n enabled: false,\n },\n },\n },\n y: {\n stacked: true,\n },\n },\n};\n\nexport const vertOptions = {\n indexAxis: \"x\" as const,\n plugins: {\n legend: {\n position: \"top\" as const,\n },\n },\n};\nexport const horizOptions = {\n indexAxis: \"y\" as const,\n plugins: {\n legend: {\n position: \"right\" as const,\n },\n },\n};\n\nexport interface SimpleBarProps extends BaseChartProps {\n direction?: \"vertical\" | \"horizontal\";\n stacked?: boolean;\n}\n\nexport function SimpleBar(props: SimpleBarProps) {\n const { direction = \"vertical\", stacked, className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n preferNonNumericAsLabel: true,\n opacity: 1,\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Bar\n key={`${props.direction}${props.stacked}`}\n options={deepmerge.all([\n ...options,\n direction === \"vertical\" ? vertOptions : horizOptions,\n stacked ? stackedOptions : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n Filler,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport interface SimpleLineProps extends BaseChartProps {\n fill?: boolean;\n secondAxisField?: string;\n}\n\n// Force a re-mount when the secondAxisField is unset / re-set\n// https://app.shortcut.com/plasmic/story/38358/chart-component-issues-with-second-axis-field\nconst useKey = (secondAxisField?: string) => {\n const [key, setKey] = useState(0);\n\n // change key once when the secondAxisField is unset.\n if (!secondAxisField && key) {\n setKey(0);\n }\n\n // change key once when the secondAxisField value changes from undefined -> something\n if (secondAxisField && !key) {\n setKey(Math.random());\n }\n\n return key;\n};\n\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\n const key = useKey(props.secondAxisField);\n\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Filler,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n extras: (field) => ({\n fill,\n pointRadius: 0,\n yAxisID: field === secondAxisField ? \"y1\" : \"y\",\n }),\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Line\n key={key}\n options={deepmerge.all([\n ...options,\n secondAxisField\n ? {\n scales: {\n y: {\n type: \"linear\" as const,\n display: true,\n position: \"left\" as const,\n },\n y1: {\n type: \"linear\" as const,\n display: true,\n position: \"right\" as const,\n grid: {\n drawOnChartArea: false,\n },\n },\n },\n }\n : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Scatter } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport type SimpleScatterProps = BaseChartProps;\n\nexport function SimpleScatter(props: SimpleScatterProps) {\n const { className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Legend,\n Title\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n\n return (\n <div className={className}>\n <Scatter\n options={deepmerge.all([\n ...options,\n {\n scales: {\n y: {\n beginAtZero: true,\n },\n },\n },\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import React, { ReactElement } from \"react\";\nimport { SimpleBar, SimpleBarProps } from \"../simple-bar/SimpleBar\";\nimport { SimpleLine, SimpleLineProps } from \"../simple-line/SimpleLine\";\nimport {\n SimpleScatter,\n SimpleScatterProps,\n} from \"../simple-scatter/SimpleScatter\";\n\nexport type SimpleChartProps = {\n type?: \"bar\" | \"line\" | \"scatter\";\n} & (SimpleBarProps | SimpleLineProps | SimpleScatterProps);\n\nexport function SimpleChart(props: SimpleChartProps): ReactElement {\n switch (props.type ?? \"bar\") {\n case \"bar\":\n return <SimpleBar {...(props as any)} />;\n case \"line\":\n return <SimpleLine {...(props as any)} />;\n case \"scatter\":\n return <SimpleScatter {...(props as any)} />;\n }\n}\n","import { ComponentMeta, PropType } from \"@plasmicapp/host/registerComponent\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { SimpleChart, SimpleChartProps } from \"./SimpleChart\";\n\nexport * from \"./SimpleChart\";\nexport default SimpleChart;\n\nconst fieldChoice: PropType<SimpleChartProps> = {\n type: \"choice\",\n options: (props: SimpleChartProps) =>\n props.data?.[0] ? Object.keys(props.data[0]) : [],\n} as const;\nconst simpleChartMeta: ComponentMeta<SimpleChartProps> = {\n name: \"hostless-react-chartjs-2-simple-chart\",\n displayName: \"Chart\",\n props: {\n type: {\n type: \"choice\",\n options: [\n {\n value: \"bar\",\n label: \"Bar\",\n },\n {\n value: \"line\",\n label: \"Line\",\n },\n {\n value: \"scatter\",\n label: \"Scatter\",\n },\n ],\n defaultValueHint: \"bar\",\n },\n data: {\n type: \"exprEditor\",\n description: \"The data as an array of objects\",\n defaultExpr: JSON.stringify([\n {\n region: \"APAC\",\n revenue: 3294,\n spend: 2675,\n },\n {\n region: \"EMEA\",\n revenue: 3245,\n spend: 3895,\n },\n {\n region: \"LATAM\",\n revenue: 2165,\n spend: 3498,\n },\n {\n region: \"AMER\",\n revenue: 3215,\n spend: 1656,\n },\n ]),\n },\n labelField: {\n ...fieldChoice,\n hidden: (props) => props.type === \"scatter\",\n },\n title: \"string\",\n interactive: {\n type: \"boolean\",\n defaultValueHint: true,\n },\n // Bar chart\n direction: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\"].map((dir) => ({\n value: dir,\n label: dir[0].toUpperCase() + dir.slice(1),\n })),\n defaultValueHint: \"Vertical\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n // Line chart\n fill: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"line\",\n },\n secondAxisField: {\n ...fieldChoice,\n hidden: (props) => props.type !== \"line\",\n },\n\n // TODO\n // datasets: {\n // type: \"array\",\n // unstable__keyFunc: (x) => x.key,\n // unstable__minimalValue: (_props, ctx) => null,\n // itemType: {\n // type: \"object\",\n // fields: {\n // label: \"string\",\n // fieldId: \"string\",\n // hidden: {\n // type: \"boolean\",\n // },\n // },\n // },\n // },\n },\n\n defaultStyles: {\n width: \"stretch\",\n },\n\n importName: \"SimpleChart\",\n importPath: \"@plasmicpkgs/react-chartjs-2\",\n};\n\nexport function registerSimpleChart(loader?: Registerable) {\n registerComponentHelper(loader, SimpleChart, simpleChartMeta);\n}\n","import { registerSimpleChart } from \"./simple-chart\";\nimport { Registerable } from \"./utils\";\n\nexport { SimpleChart } from \"./simple-chart\";\n\nexport function registerAll(loader?: Registerable) {\n registerSimpleChart(loader);\n}\n"],"names":["registerComponentHelper","loader","component","meta","registerComponent","baseOptions","responsive","chartArea","defaultColors","useIsClient","_useState","useState","loaded","setLoaded","useEffect","range","total","Array","from","keys","getDefaultColor","index","opacity","preferredStart","end","length","start","Math","max","min","stops","map","_","i","round","selected","undefined","replace","prepData","_ref","_temp","data","_ref$data","labelField","chosenFields","scatterSeries","_ref2","isScatter","preferNonNumericAsLabel","extras","fields","Object","_data$","isFieldAllNumericOrNil","Map","key","every","item","_item$key","isNaN","realLabelField","find","field","get","numericFields","filter","_scatterSeries","_scatterSeries2","name","datasets","series","_scatterSeries3","_extends","label","_item$series$fields$","_item$series$fields$2","x","y","backgroundColor","autoChosenFields","labels","_item$key2","borderWidth","borderColor","prepOptions","_ref3","interactive","_ref3$interactive","title","interaction","mode","intersect","events","plugins","display","text","ChartAreaPlugin","id","beforeDraw","chart","chartAreaOptions","config","options","ctx","canvas","getContext","save","fillStyle","fillRect","left","top","right","bottom","restore","stackedOptions","scales","stacked","ticks","major","enabled","vertOptions","indexAxis","legend","position","horizOptions","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","useKey","secondAxisField","setKey","random","SimpleLine","fill","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","_ref$type","_ref2$type","defaultStyles","width","importName","importPath","registerSimpleChart","registerAll"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-chartjs-2.cjs.development.js","sources":["../src/utils.ts","../src/common.ts","../src/simple-bar/SimpleBar.tsx","../src/simple-line/SimpleLine.tsx","../src/simple-scatter/SimpleScatter.tsx","../src/simple-chart/SimpleChart.tsx","../src/simple-chart/index.tsx","../src/index.tsx"],"sourcesContent":["import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n","import { Plugin } from \"chart.js/dist/types\";\nimport { useEffect, useState } from \"react\";\n\nexport const baseOptions = {\n responsive: true,\n chartArea: {\n // backgroundColor: \"#f8fafc\",\n },\n};\n\n/**\n * These are hand-picked from the Tailwind palette.\n */\nexport const defaultColors = [\n \"hsla(25,95%,53%,1.0)\",\n \"hsla(38,92%,50%,1.0)\",\n \"hsla(45,93%,47%,1.0)\",\n \"hsla(84,81%,44%,1.0)\",\n \"hsla(142,71%,45%,1.0)\",\n \"hsla(160,84%,39%,1.0)\",\n \"hsla(173,80%,40%,1.0)\",\n \"hsla(199,89%,48%,1.0)\",\n \"hsla(217,91%,60%,1.0)\",\n \"hsla(239,84%,67%,1.0)\",\n \"hsla(258,90%,66%,1.0)\",\n \"hsla(271,91%,65%,1.0)\",\n \"hsla(292,84%,61%,1.0)\",\n \"hsla(293,69%,49%,1.0)\",\n \"hsla(295,72%,40%,1.0)\",\n \"hsla(295,70%,33%,1.0)\",\n];\n\nexport function useIsClient() {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\nexport interface BaseChartProps {\n className?: string;\n data?: Record<string, any>[];\n labelField?: string;\n interactive?: boolean;\n title?: string;\n chosenFields?: string[];\n scatterSeries?: { name: string; fields: [string, string] }[];\n}\n\nexport interface PrepDataOpts {\n isScatter?: boolean;\n preferNonNumericAsLabel?: boolean;\n extras?: (field: string) => {};\n opacity?: number;\n}\n\nfunction range(total: number) {\n return Array.from(Array(total).keys());\n}\n\n/**\n * Returns a color from the default color palette.\n *\n * Tries to pick \"different\" colors that are somewhat spread out on the palette. With a higher 'total' colors requested, the colors will be packed more closely together.\n *\n * We prefer starting from blue when possible. This only starts getting pushed down toward yellow if too many colors requested.\n *\n * If too many colors are requested, it will recycle.\n */\nexport function getDefaultColor(\n index: number,\n total: number,\n opacity?: number\n) {\n const preferredStart = 9;\n const end = defaultColors.length - 1;\n const start = Math.max(0, Math.min(preferredStart, end - total));\n const stops =\n total > defaultColors.length\n ? range(defaultColors.length)\n : range(total).map((_, i) =>\n Math.round(\n start + (total > 1 ? ((1.0 * i) / (total - 1)) * (end - start) : 0)\n )\n );\n const selected = defaultColors[stops[index % stops.length]];\n if (opacity === undefined) {\n return selected;\n }\n return selected.replace(\"1.0\", \"\" + opacity);\n}\n\nexport function prepData(\n { data = [], labelField, chosenFields, scatterSeries }: BaseChartProps,\n { isScatter, preferNonNumericAsLabel, extras, opacity }: PrepDataOpts = {}\n) {\n const fields = Object.keys(data[0] ?? {});\n const isFieldAllNumericOrNil = new Map(\n fields.map((key) => [key, data.every((item) => !isNaN(item[key] ?? 0))])\n );\n const realLabelField =\n labelField ??\n (preferNonNumericAsLabel\n ? fields.find((field) => !isFieldAllNumericOrNil.get(field))\n : fields[0]);\n const numericFields = fields.filter((field) =>\n isFieldAllNumericOrNil.get(field)\n );\n if (isScatter) {\n scatterSeries = isScatter\n ? scatterSeries ?? [\n {\n name: `${numericFields[0]}-${numericFields[1]}`,\n fields: [numericFields[0], numericFields[1]] as [string, string],\n },\n ]\n : undefined;\n return {\n datasets: (scatterSeries ?? []).map((series, index) => ({\n ...extras?.(series.name),\n label: series.name,\n data: data.map((item) => ({\n x: item[series.fields[0]] ?? 0,\n y: item[series.fields[1]] ?? 0,\n })),\n backgroundColor: getDefaultColor(\n index,\n (scatterSeries ?? []).length,\n opacity\n ),\n })),\n };\n } else {\n const autoChosenFields = numericFields.filter(\n (field) => field !== realLabelField\n );\n return {\n labels: realLabelField\n ? data.map((item) => item[realLabelField])\n : undefined,\n datasets: (chosenFields ?? autoChosenFields).map((key, index) => {\n return {\n ...extras?.(key),\n label: key,\n data: data.map((item) => item[key] ?? 0),\n backgroundColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n borderWidth: 2,\n borderColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n };\n }),\n };\n }\n}\n\n// additional styling\n\n/*\n elements: {\n bar: {\n borderWidth: 2,\n },\n },\n\n */\n\nexport function prepOptions({ interactive = true, title }: BaseChartProps) {\n return [\n baseOptions,\n interactive\n ? {\n interaction: {\n mode: \"index\" as const,\n intersect: false,\n },\n events: undefined,\n }\n : {\n events: [],\n },\n title\n ? {\n plugins: {\n title: { display: true, text: title },\n },\n }\n : {},\n ];\n}\n\nexport const ChartAreaPlugin: Plugin = {\n id: \"chartAreaPlugin\",\n // eslint-disable-next-line object-shorthand\n beforeDraw: (chart) => {\n const chartAreaOptions = (chart.config.options as any).chartArea;\n if (chartAreaOptions && chartAreaOptions.backgroundColor) {\n const ctx = chart.canvas.getContext(\"2d\");\n const { chartArea } = chart;\n if (ctx) {\n ctx.save();\n ctx.fillStyle = chartAreaOptions.backgroundColor;\n // eslint-disable-next-line max-len\n ctx.fillRect(\n chartArea.left,\n chartArea.top,\n chartArea.right - chartArea.left,\n chartArea.bottom - chartArea.top\n );\n ctx.restore();\n }\n }\n },\n};\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Bar } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport const stackedOptions = {\n scales: {\n x: {\n stacked: true,\n ticks: {\n major: {\n enabled: false,\n },\n },\n },\n y: {\n stacked: true,\n },\n },\n};\n\nexport const vertOptions = {\n indexAxis: \"x\" as const,\n plugins: {\n legend: {\n position: \"top\" as const,\n },\n },\n};\nexport const horizOptions = {\n indexAxis: \"y\" as const,\n plugins: {\n legend: {\n position: \"right\" as const,\n },\n },\n};\n\nexport interface SimpleBarProps extends BaseChartProps {\n direction?: \"vertical\" | \"horizontal\";\n stacked?: boolean;\n}\n\nexport function SimpleBar(props: SimpleBarProps) {\n const { direction = \"vertical\", stacked, className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n preferNonNumericAsLabel: true,\n opacity: 1,\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Bar\n key={`${props.direction}${props.stacked}`}\n options={deepmerge.all([\n ...options,\n direction === \"vertical\" ? vertOptions : horizOptions,\n stacked ? stackedOptions : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n Filler,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport interface SimpleLineProps extends BaseChartProps {\n fill?: boolean;\n secondAxisField?: string;\n}\n\n// Force a re-mount when the secondAxisField is unset / re-set\n// https://app.shortcut.com/plasmic/story/38358/chart-component-issues-with-second-axis-field\nconst useKey = (secondAxisField?: string) => {\n const [key, setKey] = useState(0);\n\n // change key once when the secondAxisField is unset.\n if (!secondAxisField && key) {\n setKey(0);\n }\n\n // change key once when the secondAxisField value changes from undefined -> something\n if (secondAxisField && !key) {\n setKey(Math.random());\n }\n\n return key;\n};\n\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\n const key = useKey(props.secondAxisField);\n\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Filler,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n extras: (field) => ({\n fill,\n pointRadius: 0,\n yAxisID: field === secondAxisField ? \"y1\" : \"y\",\n }),\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Line\n key={key}\n options={deepmerge.all([\n ...options,\n secondAxisField\n ? {\n scales: {\n y: {\n type: \"linear\" as const,\n display: true,\n position: \"left\" as const,\n },\n y1: {\n type: \"linear\" as const,\n display: true,\n position: \"right\" as const,\n grid: {\n drawOnChartArea: false,\n },\n },\n },\n }\n : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Scatter } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport type SimpleScatterProps = BaseChartProps;\n\nexport function SimpleScatter(props: SimpleScatterProps) {\n const { className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Legend,\n Title\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n\n return (\n <div className={className}>\n <Scatter\n options={deepmerge.all([\n ...options,\n {\n scales: {\n y: {\n beginAtZero: true,\n },\n },\n },\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import React, { ReactElement } from \"react\";\nimport { SimpleBar, SimpleBarProps } from \"../simple-bar/SimpleBar\";\nimport { SimpleLine, SimpleLineProps } from \"../simple-line/SimpleLine\";\nimport {\n SimpleScatter,\n SimpleScatterProps,\n} from \"../simple-scatter/SimpleScatter\";\n\nexport type SimpleChartProps = {\n type?: \"bar\" | \"line\" | \"scatter\";\n} & (SimpleBarProps | SimpleLineProps | SimpleScatterProps);\n\nexport function SimpleChart(props: SimpleChartProps): ReactElement {\n switch (props.type ?? \"bar\") {\n case \"bar\":\n return <SimpleBar {...(props as any)} />;\n case \"line\":\n return <SimpleLine {...(props as any)} />;\n case \"scatter\":\n return <SimpleScatter {...(props as any)} />;\n }\n}\n","import { ComponentMeta, PropType } from \"@plasmicapp/host/registerComponent\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { SimpleChart, SimpleChartProps } from \"./SimpleChart\";\n\nexport * from \"./SimpleChart\";\nexport default SimpleChart;\n\nconst fieldChoice: PropType<SimpleChartProps> = {\n type: \"choice\",\n options: (props: SimpleChartProps) =>\n props.data?.[0] ? Object.keys(props.data[0]) : [],\n} as const;\nconst simpleChartMeta: ComponentMeta<SimpleChartProps> = {\n name: \"hostless-react-chartjs-2-simple-chart\",\n displayName: \"Chart\",\n props: {\n type: {\n type: \"choice\",\n options: [\n {\n value: \"bar\",\n label: \"Bar\",\n },\n {\n value: \"line\",\n label: \"Line\",\n },\n {\n value: \"scatter\",\n label: \"Scatter\",\n },\n ],\n defaultValueHint: \"bar\",\n },\n data: {\n type: \"exprEditor\",\n description: \"The data as an array of objects\",\n defaultExpr: JSON.stringify([\n {\n region: \"APAC\",\n revenue: 3294,\n spend: 2675,\n },\n {\n region: \"EMEA\",\n revenue: 3245,\n spend: 3895,\n },\n {\n region: \"LATAM\",\n revenue: 2165,\n spend: 3498,\n },\n {\n region: \"AMER\",\n revenue: 3215,\n spend: 1656,\n },\n ]),\n },\n labelField: {\n ...fieldChoice,\n hidden: (props) => props.type === \"scatter\",\n },\n title: \"string\",\n interactive: {\n type: \"boolean\",\n defaultValueHint: true,\n },\n // Bar chart\n direction: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\"].map((dir) => ({\n value: dir,\n label: dir[0].toUpperCase() + dir.slice(1),\n })),\n defaultValueHint: \"Vertical\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n // Line chart\n fill: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"line\",\n },\n secondAxisField: {\n ...fieldChoice,\n hidden: (props) => props.type !== \"line\",\n },\n\n // TODO\n // datasets: {\n // type: \"array\",\n // unstable__keyFunc: (x) => x.key,\n // unstable__minimalValue: (_props, ctx) => null,\n // itemType: {\n // type: \"object\",\n // fields: {\n // label: \"string\",\n // fieldId: \"string\",\n // hidden: {\n // type: \"boolean\",\n // },\n // },\n // },\n // },\n },\n\n defaultStyles: {\n width: \"stretch\",\n },\n\n importName: \"SimpleChart\",\n importPath: \"@plasmicpkgs/react-chartjs-2\",\n};\n\nexport function registerSimpleChart(loader?: Registerable) {\n registerComponentHelper(loader, SimpleChart, simpleChartMeta);\n}\n","import { registerSimpleChart } from \"./simple-chart\";\nimport { Registerable } from \"./utils\";\n\nexport { SimpleChart } from \"./simple-chart\";\n\nexport function registerAll(loader?: Registerable) {\n registerSimpleChart(loader);\n}\n"],"names":["registerComponentHelper","loader","component","meta","registerComponent","baseOptions","responsive","chartArea","defaultColors","useIsClient","_useState","useState","loaded","setLoaded","useEffect","range","total","Array","from","keys","getDefaultColor","index","opacity","preferredStart","end","length","start","Math","max","min","stops","map","_","i","round","selected","undefined","replace","prepData","_ref","_temp","data","_ref$data","labelField","chosenFields","scatterSeries","_ref2","isScatter","preferNonNumericAsLabel","extras","fields","Object","_data$","isFieldAllNumericOrNil","Map","key","every","item","_item$key","isNaN","realLabelField","find","field","get","numericFields","filter","_scatterSeries","_scatterSeries2","name","datasets","series","_scatterSeries3","_extends","label","_item$series$fields$","_item$series$fields$2","x","y","backgroundColor","autoChosenFields","labels","_item$key2","borderWidth","borderColor","prepOptions","_ref3","interactive","_ref3$interactive","title","interaction","mode","intersect","events","plugins","display","text","ChartAreaPlugin","id","beforeDraw","chart","chartAreaOptions","config","options","ctx","canvas","getContext","save","fillStyle","fillRect","left","top","right","bottom","restore","stackedOptions","scales","stacked","ticks","major","enabled","vertOptions","indexAxis","legend","position","horizOptions","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","useKey","secondAxisField","setKey","random","SimpleLine","fill","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","_ref$type","_ref2$type","defaultStyles","width","importName","importPath","registerSimpleChart","registerAll"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@plasmicapp/host/registerComponent"));require("@plasmicapp/host/registerGlobalContext");var r=require("react"),n=e(r),a=require("chart.js"),i=e(require("deepmerge")),l=require("react-chartjs-2");function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@plasmicapp/host/registerComponent"));require("@plasmicapp/host/registerGlobalContext");var r=require("react"),n=e(r),a=require("chart.js"),i=e(require("deepmerge")),l=require("react-chartjs-2");function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}var s={responsive:!0,chartArea:{}},c=["hsla(25,95%,53%,1.0)","hsla(38,92%,50%,1.0)","hsla(45,93%,47%,1.0)","hsla(84,81%,44%,1.0)","hsla(142,71%,45%,1.0)","hsla(160,84%,39%,1.0)","hsla(173,80%,40%,1.0)","hsla(199,89%,48%,1.0)","hsla(217,91%,60%,1.0)","hsla(239,84%,67%,1.0)","hsla(258,90%,66%,1.0)","hsla(271,91%,65%,1.0)","hsla(292,84%,61%,1.0)","hsla(293,69%,49%,1.0)","hsla(295,72%,40%,1.0)","hsla(295,70%,33%,1.0)"];function u(){var e=r.useState(!1),t=e[0],n=e[1];return r.useEffect((function(){n(!0)})),t}function d(e){return Array.from(Array(e).keys())}function p(e,t,r){var n=c.length-1,a=Math.max(0,Math.min(9,n-t)),i=t>c.length?d(c.length):d(t).map((function(e,r){return Math.round(a+(t>1?1*r/(t-1)*(n-a):0))})),l=c[i[e%i.length]];return void 0===r?l:l.replace("1.0",""+r)}function f(e,t){var r,n,a,i=e.data,l=void 0===i?[]:i,s=e.labelField,c=e.chosenFields,u=e.scatterSeries,d=void 0===t?{}:t,f=d.isScatter,h=d.preferNonNumericAsLabel,v=d.extras,m=d.opacity,g=Object.keys(null!=(r=l[0])?r:{}),y=new Map(g.map((function(e){return[e,l.every((function(t){var r;return!isNaN(null!=(r=t[e])?r:0)}))]}))),b=null!=s?s:h?g.find((function(e){return!y.get(e)})):g[0],x=g.filter((function(e){return y.get(e)}));if(f)return{datasets:(null!=(a=u=f?null!=(n=u)?n:[{name:x[0]+"-"+x[1],fields:[x[0],x[1]]}]:void 0)?a:[]).map((function(e,t){var r;return o({},null==v?void 0:v(e.name),{label:e.name,data:l.map((function(t){var r,n;return{x:null!=(r=t[e.fields[0]])?r:0,y:null!=(n=t[e.fields[1]])?n:0}})),backgroundColor:p(t,(null!=(r=u)?r:[]).length,m)})}))};var A=x.filter((function(e){return e!==b}));return{labels:b?l.map((function(e){return e[b]})):void 0,datasets:(null!=c?c:A).map((function(e,t){return o({},null==v?void 0:v(e),{label:e,data:l.map((function(t){var r;return null!=(r=t[e])?r:0})),backgroundColor:p(t,(null!=c?c:A).length,1),borderWidth:2,borderColor:p(t,(null!=c?c:A).length,1)})}))}}function h(e){var t=e.interactive,r=e.title;return[s,void 0===t||t?{interaction:{mode:"index",intersect:!1},events:void 0}:{events:[]},r?{plugins:{title:{display:!0,text:r}}}:{}]}var v={id:"chartAreaPlugin",beforeDraw:function(e){var t=e.config.options.chartArea;if(t&&t.backgroundColor){var r=e.canvas.getContext("2d"),n=e.chartArea;r&&(r.save(),r.fillStyle=t.backgroundColor,r.fillRect(n.left,n.top,n.right-n.left,n.bottom-n.top),r.restore())}}},m={scales:{x:{stacked:!0,ticks:{major:{enabled:!1}}},y:{stacked:!0}}},g={indexAxis:"x",plugins:{legend:{position:"top"}}},y={indexAxis:"y",plugins:{legend:{position:"right"}}};function b(e){var t=e.direction,o=void 0===t?"vertical":t,s=e.stacked,c=e.className,d=u();if(r.useEffect((function(){a.Chart.register(v,a.CategoryScale,a.LinearScale,a.BarElement,a.Title,a.Tooltip,a.Legend)}),[]),!d)return null;var p=f(e,{preferNonNumericAsLabel:!0,opacity:1}),b=h(e);return n.createElement("div",{className:c},n.createElement(l.Bar,{key:""+e.direction+e.stacked,options:i.all([].concat(b,["vertical"===o?g:y,s?m:{}])),data:p}))}function x(e){var t=e.secondAxisField,o=e.fill,s=e.className,c=u(),d=function(e){var t=r.useState(0),n=t[0],a=t[1];return!e&&n&&a(0),e&&!n&&a(Math.random()),n}(e.secondAxisField);if(r.useEffect((function(){a.Chart.register(v,a.CategoryScale,a.LinearScale,a.PointElement,a.LineElement,a.Title,a.Tooltip,a.Filler,a.Legend)}),[]),!c)return null;var p=f(e,{extras:function(e){return{fill:o,pointRadius:0,yAxisID:e===t?"y1":"y"}}}),m=h(e);return n.createElement("div",{className:s},n.createElement(l.Line,{key:d,options:i.all([].concat(m,[t?{scales:{y:{type:"linear",display:!0,position:"left"},y1:{type:"linear",display:!0,position:"right",grid:{drawOnChartArea:!1}}}}:{}])),data:p}))}function A(e){var t=e.className,o=u();if(r.useEffect((function(){a.Chart.register(v,a.LinearScale,a.PointElement,a.LineElement,a.Tooltip,a.Legend,a.Title)}),[]),!o)return null;var s=f(e,{isScatter:!0,opacity:1}),c=h(e);return n.createElement("div",{className:t},n.createElement(l.Scatter,{options:i.all([].concat(c,[{scales:{y:{beginAtZero:!0}}}])),data:s}))}function E(e){var t;switch(null!=(t=e.type)?t:"bar"){case"bar":return n.createElement(b,Object.assign({},e));case"line":return n.createElement(x,Object.assign({},e));case"scatter":return n.createElement(A,Object.assign({},e))}}var C={type:"choice",options:function(e){var t;return null!=(t=e.data)&&t[0]?Object.keys(e.data[0]):[]}},S={name:"hostless-react-chartjs-2-simple-chart",displayName:"Chart",props:{type:{type:"choice",options:[{value:"bar",label:"Bar"},{value:"line",label:"Line"},{value:"scatter",label:"Scatter"}],defaultValueHint:"bar"},data:{type:"exprEditor",description:"The data as an array of objects",defaultExpr:JSON.stringify([{region:"APAC",revenue:3294,spend:2675},{region:"EMEA",revenue:3245,spend:3895},{region:"LATAM",revenue:2165,spend:3498},{region:"AMER",revenue:3215,spend:1656}])},labelField:o({},C,{hidden:function(e){return"scatter"===e.type}}),title:"string",interactive:{type:"boolean",defaultValueHint:!0},direction:{type:"choice",options:["horizontal","vertical"].map((function(e){return{value:e,label:e[0].toUpperCase()+e.slice(1)}})),defaultValueHint:"Vertical",hidden:function(e){var t=e.type;return"bar"!==(void 0===t?"bar":t)}},stacked:{type:"boolean",hidden:function(e){var t=e.type;return"bar"!==(void 0===t?"bar":t)}},fill:{type:"boolean",hidden:function(e){return"line"!==e.type}},secondAxisField:o({},C,{hidden:function(e){return"line"!==e.type}})},defaultStyles:{width:"stretch"},importName:"SimpleChart",importPath:"@plasmicpkgs/react-chartjs-2"};exports.SimpleChart=E,exports.registerAll=function(e){!function(e){!function(e,r,n){e?e.registerComponent(r,n):t(r,n)}(e,E,S)}(e)};
|
|
2
2
|
//# sourceMappingURL=react-chartjs-2.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-chartjs-2.cjs.production.min.js","sources":["../src/common.ts","../src/simple-bar/SimpleBar.tsx","../src/simple-line/SimpleLine.tsx","../src/simple-scatter/SimpleScatter.tsx","../src/simple-chart/SimpleChart.tsx","../src/simple-chart/index.tsx","../src/index.tsx","../src/utils.ts"],"sourcesContent":["import { Plugin } from \"chart.js/dist/types\";\nimport { useEffect, useState } from \"react\";\n\nexport const baseOptions = {\n responsive: true,\n chartArea: {\n // backgroundColor: \"#f8fafc\",\n },\n};\n\n/**\n * These are hand-picked from the Tailwind palette.\n */\nexport const defaultColors = [\n \"hsla(25,95%,53%,1.0)\",\n \"hsla(38,92%,50%,1.0)\",\n \"hsla(45,93%,47%,1.0)\",\n \"hsla(84,81%,44%,1.0)\",\n \"hsla(142,71%,45%,1.0)\",\n \"hsla(160,84%,39%,1.0)\",\n \"hsla(173,80%,40%,1.0)\",\n \"hsla(199,89%,48%,1.0)\",\n \"hsla(217,91%,60%,1.0)\",\n \"hsla(239,84%,67%,1.0)\",\n \"hsla(258,90%,66%,1.0)\",\n \"hsla(271,91%,65%,1.0)\",\n \"hsla(292,84%,61%,1.0)\",\n \"hsla(293,69%,49%,1.0)\",\n \"hsla(295,72%,40%,1.0)\",\n \"hsla(295,70%,33%,1.0)\",\n];\n\nexport function useIsClient() {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\nexport interface BaseChartProps {\n className?: string;\n data?: Record<string, any>[];\n labelField?: string;\n interactive?: boolean;\n title?: string;\n chosenFields?: string[];\n scatterSeries?: { name: string; fields: [string, string] }[];\n}\n\nexport interface PrepDataOpts {\n isScatter?: boolean;\n preferNonNumericAsLabel?: boolean;\n extras?: (field: string) => {};\n opacity?: number;\n}\n\nfunction range(total: number) {\n return Array.from(Array(total).keys());\n}\n\n/**\n * Returns a color from the default color palette.\n *\n * Tries to pick \"different\" colors that are somewhat spread out on the palette. With a higher 'total' colors requested, the colors will be packed more closely together.\n *\n * We prefer starting from blue when possible. This only starts getting pushed down toward yellow if too many colors requested.\n *\n * If too many colors are requested, it will recycle.\n */\nexport function getDefaultColor(\n index: number,\n total: number,\n opacity?: number\n) {\n const preferredStart = 9;\n const end = defaultColors.length - 1;\n const start = Math.max(0, Math.min(preferredStart, end - total));\n const stops =\n total > defaultColors.length\n ? range(defaultColors.length)\n : range(total).map((_, i) =>\n Math.round(\n start + (total > 1 ? ((1.0 * i) / (total - 1)) * (end - start) : 0)\n )\n );\n const selected = defaultColors[stops[index % stops.length]];\n if (opacity === undefined) {\n return selected;\n }\n return selected.replace(\"1.0\", \"\" + opacity);\n}\n\nexport function prepData(\n { data = [], labelField, chosenFields, scatterSeries }: BaseChartProps,\n { isScatter, preferNonNumericAsLabel, extras, opacity }: PrepDataOpts = {}\n) {\n const fields = Object.keys(data[0] ?? {});\n const isFieldAllNumericOrNil = new Map(\n fields.map((key) => [key, data.every((item) => !isNaN(item[key] ?? 0))])\n );\n const realLabelField =\n labelField ??\n (preferNonNumericAsLabel\n ? fields.find((field) => !isFieldAllNumericOrNil.get(field))\n : fields[0]);\n const numericFields = fields.filter((field) =>\n isFieldAllNumericOrNil.get(field)\n );\n if (isScatter) {\n scatterSeries = isScatter\n ? scatterSeries ?? [\n {\n name: `${numericFields[0]}-${numericFields[1]}`,\n fields: [numericFields[0], numericFields[1]] as [string, string],\n },\n ]\n : undefined;\n return {\n datasets: (scatterSeries ?? []).map((series, index) => ({\n ...extras?.(series.name),\n label: series.name,\n data: data.map((item) => ({\n x: item[series.fields[0]] ?? 0,\n y: item[series.fields[1]] ?? 0,\n })),\n backgroundColor: getDefaultColor(\n index,\n (scatterSeries ?? []).length,\n opacity\n ),\n })),\n };\n } else {\n const autoChosenFields = numericFields.filter(\n (field) => field !== realLabelField\n );\n return {\n labels: realLabelField\n ? data.map((item) => item[realLabelField])\n : undefined,\n datasets: (chosenFields ?? autoChosenFields).map((key, index) => {\n return {\n ...extras?.(key),\n label: key,\n data: data.map((item) => item[key] ?? 0),\n backgroundColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n borderWidth: 2,\n borderColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n };\n }),\n };\n }\n}\n\n// additional styling\n\n/*\n elements: {\n bar: {\n borderWidth: 2,\n },\n },\n\n */\n\nexport function prepOptions({ interactive = true, title }: BaseChartProps) {\n return [\n baseOptions,\n interactive\n ? {\n interaction: {\n mode: \"index\" as const,\n intersect: false,\n },\n events: undefined,\n }\n : {\n events: [],\n },\n title\n ? {\n plugins: {\n title: { display: true, text: title },\n },\n }\n : {},\n ];\n}\n\nexport const ChartAreaPlugin: Plugin = {\n id: \"chartAreaPlugin\",\n // eslint-disable-next-line object-shorthand\n beforeDraw: (chart) => {\n const chartAreaOptions = (chart.config.options as any).chartArea;\n if (chartAreaOptions && chartAreaOptions.backgroundColor) {\n const ctx = chart.canvas.getContext(\"2d\");\n const { chartArea } = chart;\n if (ctx) {\n ctx.save();\n ctx.fillStyle = chartAreaOptions.backgroundColor;\n // eslint-disable-next-line max-len\n ctx.fillRect(\n chartArea.left,\n chartArea.top,\n chartArea.right - chartArea.left,\n chartArea.bottom - chartArea.top\n );\n ctx.restore();\n }\n }\n },\n};\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Bar } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport const stackedOptions = {\n scales: {\n x: {\n stacked: true,\n ticks: {\n major: {\n enabled: false,\n },\n },\n },\n y: {\n stacked: true,\n },\n },\n};\n\nexport const vertOptions = {\n indexAxis: \"x\" as const,\n plugins: {\n legend: {\n position: \"top\" as const,\n },\n },\n};\nexport const horizOptions = {\n indexAxis: \"y\" as const,\n plugins: {\n legend: {\n position: \"right\" as const,\n },\n },\n};\n\nexport interface SimpleBarProps extends BaseChartProps {\n direction?: \"vertical\" | \"horizontal\";\n stacked?: boolean;\n}\n\nexport function SimpleBar(props: SimpleBarProps) {\n const { direction = \"vertical\", stacked, className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n preferNonNumericAsLabel: true,\n opacity: 1,\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Bar\n key={`${props.direction}${props.stacked}`}\n options={deepmerge.all([\n ...options,\n direction === \"vertical\" ? vertOptions : horizOptions,\n stacked ? stackedOptions : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n Filler,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport interface SimpleLineProps extends BaseChartProps {\n fill?: boolean;\n secondAxisField?: string;\n}\n\n// Force a re-mount when the secondAxisField is unset / re-set\n// https://app.shortcut.com/plasmic/story/38358/chart-component-issues-with-second-axis-field\nconst useKey = (secondAxisField?: string) => {\n const [key, setKey] = useState(0);\n\n // change key once when the secondAxisField is unset.\n if (!secondAxisField && key) {\n setKey(0);\n }\n\n // change key once when the secondAxisField value changes from undefined -> something\n if (secondAxisField && !key) {\n setKey(Math.random());\n }\n\n return key;\n};\n\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\n const key = useKey(props.secondAxisField);\n\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Filler,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n extras: (field) => ({\n fill,\n pointRadius: 0,\n yAxisID: field === secondAxisField ? \"y1\" : \"y\",\n }),\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Line\n key={key}\n options={deepmerge.all([\n ...options,\n secondAxisField\n ? {\n scales: {\n y: {\n type: \"linear\" as const,\n display: true,\n position: \"left\" as const,\n },\n y1: {\n type: \"linear\" as const,\n display: true,\n position: \"right\" as const,\n grid: {\n drawOnChartArea: false,\n },\n },\n },\n }\n : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Scatter } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport type SimpleScatterProps = BaseChartProps;\n\nexport function SimpleScatter(props: SimpleScatterProps) {\n const { className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Legend,\n Title\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n\n return (\n <div className={className}>\n <Scatter\n options={deepmerge.all([\n ...options,\n {\n scales: {\n y: {\n beginAtZero: true,\n },\n },\n },\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import React, { ReactElement } from \"react\";\nimport { SimpleBar, SimpleBarProps } from \"../simple-bar/SimpleBar\";\nimport { SimpleLine, SimpleLineProps } from \"../simple-line/SimpleLine\";\nimport {\n SimpleScatter,\n SimpleScatterProps,\n} from \"../simple-scatter/SimpleScatter\";\n\nexport type SimpleChartProps = {\n type?: \"bar\" | \"line\" | \"scatter\";\n} & (SimpleBarProps | SimpleLineProps | SimpleScatterProps);\n\nexport function SimpleChart(props: SimpleChartProps): ReactElement {\n switch (props.type ?? \"bar\") {\n case \"bar\":\n return <SimpleBar {...(props as any)} />;\n case \"line\":\n return <SimpleLine {...(props as any)} />;\n case \"scatter\":\n return <SimpleScatter {...(props as any)} />;\n }\n}\n","import { ComponentMeta, PropType } from \"@plasmicapp/host/registerComponent\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { SimpleChart, SimpleChartProps } from \"./SimpleChart\";\n\nexport * from \"./SimpleChart\";\nexport default SimpleChart;\n\nconst fieldChoice: PropType<SimpleChartProps> = {\n type: \"choice\",\n options: (props: SimpleChartProps) =>\n props.data?.[0] ? Object.keys(props.data[0]) : [],\n} as const;\nconst simpleChartMeta: ComponentMeta<SimpleChartProps> = {\n name: \"hostless-react-chartjs-2-simple-chart\",\n displayName: \"Chart\",\n props: {\n type: {\n type: \"choice\",\n options: [\n {\n value: \"bar\",\n label: \"Bar\",\n },\n {\n value: \"line\",\n label: \"Line\",\n },\n {\n value: \"scatter\",\n label: \"Scatter\",\n },\n ],\n defaultValueHint: \"bar\",\n },\n data: {\n type: \"exprEditor\",\n description: \"The data as an array of objects\",\n defaultExpr: JSON.stringify([\n {\n region: \"APAC\",\n revenue: 3294,\n spend: 2675,\n },\n {\n region: \"EMEA\",\n revenue: 3245,\n spend: 3895,\n },\n {\n region: \"LATAM\",\n revenue: 2165,\n spend: 3498,\n },\n {\n region: \"AMER\",\n revenue: 3215,\n spend: 1656,\n },\n ]),\n },\n labelField: {\n ...fieldChoice,\n hidden: (props) => props.type === \"scatter\",\n },\n title: \"string\",\n interactive: {\n type: \"boolean\",\n defaultValueHint: true,\n },\n // Bar chart\n direction: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\"].map((dir) => ({\n value: dir,\n label: dir[0].toUpperCase() + dir.slice(1),\n })),\n defaultValueHint: \"Vertical\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n // Line chart\n fill: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"line\",\n },\n secondAxisField: {\n ...fieldChoice,\n hidden: (props) => props.type !== \"line\",\n },\n\n // TODO\n // datasets: {\n // type: \"array\",\n // unstable__keyFunc: (x) => x.key,\n // unstable__minimalValue: (_props, ctx) => null,\n // itemType: {\n // type: \"object\",\n // fields: {\n // label: \"string\",\n // fieldId: \"string\",\n // hidden: {\n // type: \"boolean\",\n // },\n // },\n // },\n // },\n },\n\n defaultStyles: {\n width: \"stretch\",\n },\n\n importName: \"SimpleChart\",\n importPath: \"@plasmicpkgs/react-chartjs-2\",\n};\n\nexport function registerSimpleChart(loader?: Registerable) {\n registerComponentHelper(loader, SimpleChart, simpleChartMeta);\n}\n","import { registerSimpleChart } from \"./simple-chart\";\nimport { Registerable } from \"./utils\";\n\nexport { SimpleChart } from \"./simple-chart\";\n\nexport function registerAll(loader?: Registerable) {\n registerSimpleChart(loader);\n}\n","import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n"],"names":["baseOptions","responsive","chartArea","defaultColors","useIsClient","_useState","useState","loaded","setLoaded","useEffect","range","total","Array","from","keys","getDefaultColor","index","opacity","end","length","start","Math","max","min","stops","map","_","i","round","selected","undefined","replace","prepData","_ref","_temp","_scatterSeries","_scatterSeries2","data","_ref$data","labelField","chosenFields","scatterSeries","_ref2","isScatter","preferNonNumericAsLabel","extras","fields","Object","_data$","isFieldAllNumericOrNil","Map","key","every","item","_item$key","isNaN","realLabelField","find","field","get","numericFields","filter","datasets","name","series","_scatterSeries3","_extends","label","_item$series$fields$","_item$series$fields$2","x","y","backgroundColor","autoChosenFields","labels","_item$key2","borderWidth","borderColor","prepOptions","_ref3","interactive","title","_ref3$interactive","interaction","mode","intersect","events","plugins","display","text","ChartAreaPlugin","id","beforeDraw","chart","chartAreaOptions","config","options","ctx","canvas","getContext","save","fillStyle","fillRect","left","top","right","bottom","restore","stackedOptions","scales","stacked","ticks","major","enabled","vertOptions","indexAxis","legend","position","horizOptions","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","SimpleLine","secondAxisField","fill","setKey","random","useKey","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","_ref$type","_ref2$type","defaultStyles","width","importName","importPath","loader","component","meta","registerComponent","registerComponentHelper","registerSimpleChart"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-chartjs-2.cjs.production.min.js","sources":["../src/common.ts","../src/simple-bar/SimpleBar.tsx","../src/simple-line/SimpleLine.tsx","../src/simple-scatter/SimpleScatter.tsx","../src/simple-chart/SimpleChart.tsx","../src/simple-chart/index.tsx","../src/index.tsx","../src/utils.ts"],"sourcesContent":["import { Plugin } from \"chart.js/dist/types\";\nimport { useEffect, useState } from \"react\";\n\nexport const baseOptions = {\n responsive: true,\n chartArea: {\n // backgroundColor: \"#f8fafc\",\n },\n};\n\n/**\n * These are hand-picked from the Tailwind palette.\n */\nexport const defaultColors = [\n \"hsla(25,95%,53%,1.0)\",\n \"hsla(38,92%,50%,1.0)\",\n \"hsla(45,93%,47%,1.0)\",\n \"hsla(84,81%,44%,1.0)\",\n \"hsla(142,71%,45%,1.0)\",\n \"hsla(160,84%,39%,1.0)\",\n \"hsla(173,80%,40%,1.0)\",\n \"hsla(199,89%,48%,1.0)\",\n \"hsla(217,91%,60%,1.0)\",\n \"hsla(239,84%,67%,1.0)\",\n \"hsla(258,90%,66%,1.0)\",\n \"hsla(271,91%,65%,1.0)\",\n \"hsla(292,84%,61%,1.0)\",\n \"hsla(293,69%,49%,1.0)\",\n \"hsla(295,72%,40%,1.0)\",\n \"hsla(295,70%,33%,1.0)\",\n];\n\nexport function useIsClient() {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\nexport interface BaseChartProps {\n className?: string;\n data?: Record<string, any>[];\n labelField?: string;\n interactive?: boolean;\n title?: string;\n chosenFields?: string[];\n scatterSeries?: { name: string; fields: [string, string] }[];\n}\n\nexport interface PrepDataOpts {\n isScatter?: boolean;\n preferNonNumericAsLabel?: boolean;\n extras?: (field: string) => {};\n opacity?: number;\n}\n\nfunction range(total: number) {\n return Array.from(Array(total).keys());\n}\n\n/**\n * Returns a color from the default color palette.\n *\n * Tries to pick \"different\" colors that are somewhat spread out on the palette. With a higher 'total' colors requested, the colors will be packed more closely together.\n *\n * We prefer starting from blue when possible. This only starts getting pushed down toward yellow if too many colors requested.\n *\n * If too many colors are requested, it will recycle.\n */\nexport function getDefaultColor(\n index: number,\n total: number,\n opacity?: number\n) {\n const preferredStart = 9;\n const end = defaultColors.length - 1;\n const start = Math.max(0, Math.min(preferredStart, end - total));\n const stops =\n total > defaultColors.length\n ? range(defaultColors.length)\n : range(total).map((_, i) =>\n Math.round(\n start + (total > 1 ? ((1.0 * i) / (total - 1)) * (end - start) : 0)\n )\n );\n const selected = defaultColors[stops[index % stops.length]];\n if (opacity === undefined) {\n return selected;\n }\n return selected.replace(\"1.0\", \"\" + opacity);\n}\n\nexport function prepData(\n { data = [], labelField, chosenFields, scatterSeries }: BaseChartProps,\n { isScatter, preferNonNumericAsLabel, extras, opacity }: PrepDataOpts = {}\n) {\n const fields = Object.keys(data[0] ?? {});\n const isFieldAllNumericOrNil = new Map(\n fields.map((key) => [key, data.every((item) => !isNaN(item[key] ?? 0))])\n );\n const realLabelField =\n labelField ??\n (preferNonNumericAsLabel\n ? fields.find((field) => !isFieldAllNumericOrNil.get(field))\n : fields[0]);\n const numericFields = fields.filter((field) =>\n isFieldAllNumericOrNil.get(field)\n );\n if (isScatter) {\n scatterSeries = isScatter\n ? scatterSeries ?? [\n {\n name: `${numericFields[0]}-${numericFields[1]}`,\n fields: [numericFields[0], numericFields[1]] as [string, string],\n },\n ]\n : undefined;\n return {\n datasets: (scatterSeries ?? []).map((series, index) => ({\n ...extras?.(series.name),\n label: series.name,\n data: data.map((item) => ({\n x: item[series.fields[0]] ?? 0,\n y: item[series.fields[1]] ?? 0,\n })),\n backgroundColor: getDefaultColor(\n index,\n (scatterSeries ?? []).length,\n opacity\n ),\n })),\n };\n } else {\n const autoChosenFields = numericFields.filter(\n (field) => field !== realLabelField\n );\n return {\n labels: realLabelField\n ? data.map((item) => item[realLabelField])\n : undefined,\n datasets: (chosenFields ?? autoChosenFields).map((key, index) => {\n return {\n ...extras?.(key),\n label: key,\n data: data.map((item) => item[key] ?? 0),\n backgroundColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n borderWidth: 2,\n borderColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n };\n }),\n };\n }\n}\n\n// additional styling\n\n/*\n elements: {\n bar: {\n borderWidth: 2,\n },\n },\n\n */\n\nexport function prepOptions({ interactive = true, title }: BaseChartProps) {\n return [\n baseOptions,\n interactive\n ? {\n interaction: {\n mode: \"index\" as const,\n intersect: false,\n },\n events: undefined,\n }\n : {\n events: [],\n },\n title\n ? {\n plugins: {\n title: { display: true, text: title },\n },\n }\n : {},\n ];\n}\n\nexport const ChartAreaPlugin: Plugin = {\n id: \"chartAreaPlugin\",\n // eslint-disable-next-line object-shorthand\n beforeDraw: (chart) => {\n const chartAreaOptions = (chart.config.options as any).chartArea;\n if (chartAreaOptions && chartAreaOptions.backgroundColor) {\n const ctx = chart.canvas.getContext(\"2d\");\n const { chartArea } = chart;\n if (ctx) {\n ctx.save();\n ctx.fillStyle = chartAreaOptions.backgroundColor;\n // eslint-disable-next-line max-len\n ctx.fillRect(\n chartArea.left,\n chartArea.top,\n chartArea.right - chartArea.left,\n chartArea.bottom - chartArea.top\n );\n ctx.restore();\n }\n }\n },\n};\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Bar } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport const stackedOptions = {\n scales: {\n x: {\n stacked: true,\n ticks: {\n major: {\n enabled: false,\n },\n },\n },\n y: {\n stacked: true,\n },\n },\n};\n\nexport const vertOptions = {\n indexAxis: \"x\" as const,\n plugins: {\n legend: {\n position: \"top\" as const,\n },\n },\n};\nexport const horizOptions = {\n indexAxis: \"y\" as const,\n plugins: {\n legend: {\n position: \"right\" as const,\n },\n },\n};\n\nexport interface SimpleBarProps extends BaseChartProps {\n direction?: \"vertical\" | \"horizontal\";\n stacked?: boolean;\n}\n\nexport function SimpleBar(props: SimpleBarProps) {\n const { direction = \"vertical\", stacked, className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n preferNonNumericAsLabel: true,\n opacity: 1,\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Bar\n key={`${props.direction}${props.stacked}`}\n options={deepmerge.all([\n ...options,\n direction === \"vertical\" ? vertOptions : horizOptions,\n stacked ? stackedOptions : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n Filler,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport interface SimpleLineProps extends BaseChartProps {\n fill?: boolean;\n secondAxisField?: string;\n}\n\n// Force a re-mount when the secondAxisField is unset / re-set\n// https://app.shortcut.com/plasmic/story/38358/chart-component-issues-with-second-axis-field\nconst useKey = (secondAxisField?: string) => {\n const [key, setKey] = useState(0);\n\n // change key once when the secondAxisField is unset.\n if (!secondAxisField && key) {\n setKey(0);\n }\n\n // change key once when the secondAxisField value changes from undefined -> something\n if (secondAxisField && !key) {\n setKey(Math.random());\n }\n\n return key;\n};\n\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\n const key = useKey(props.secondAxisField);\n\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Filler,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n extras: (field) => ({\n fill,\n pointRadius: 0,\n yAxisID: field === secondAxisField ? \"y1\" : \"y\",\n }),\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Line\n key={key}\n options={deepmerge.all([\n ...options,\n secondAxisField\n ? {\n scales: {\n y: {\n type: \"linear\" as const,\n display: true,\n position: \"left\" as const,\n },\n y1: {\n type: \"linear\" as const,\n display: true,\n position: \"right\" as const,\n grid: {\n drawOnChartArea: false,\n },\n },\n },\n }\n : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Scatter } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport type SimpleScatterProps = BaseChartProps;\n\nexport function SimpleScatter(props: SimpleScatterProps) {\n const { className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Legend,\n Title\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n\n return (\n <div className={className}>\n <Scatter\n options={deepmerge.all([\n ...options,\n {\n scales: {\n y: {\n beginAtZero: true,\n },\n },\n },\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import React, { ReactElement } from \"react\";\nimport { SimpleBar, SimpleBarProps } from \"../simple-bar/SimpleBar\";\nimport { SimpleLine, SimpleLineProps } from \"../simple-line/SimpleLine\";\nimport {\n SimpleScatter,\n SimpleScatterProps,\n} from \"../simple-scatter/SimpleScatter\";\n\nexport type SimpleChartProps = {\n type?: \"bar\" | \"line\" | \"scatter\";\n} & (SimpleBarProps | SimpleLineProps | SimpleScatterProps);\n\nexport function SimpleChart(props: SimpleChartProps): ReactElement {\n switch (props.type ?? \"bar\") {\n case \"bar\":\n return <SimpleBar {...(props as any)} />;\n case \"line\":\n return <SimpleLine {...(props as any)} />;\n case \"scatter\":\n return <SimpleScatter {...(props as any)} />;\n }\n}\n","import { ComponentMeta, PropType } from \"@plasmicapp/host/registerComponent\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { SimpleChart, SimpleChartProps } from \"./SimpleChart\";\n\nexport * from \"./SimpleChart\";\nexport default SimpleChart;\n\nconst fieldChoice: PropType<SimpleChartProps> = {\n type: \"choice\",\n options: (props: SimpleChartProps) =>\n props.data?.[0] ? Object.keys(props.data[0]) : [],\n} as const;\nconst simpleChartMeta: ComponentMeta<SimpleChartProps> = {\n name: \"hostless-react-chartjs-2-simple-chart\",\n displayName: \"Chart\",\n props: {\n type: {\n type: \"choice\",\n options: [\n {\n value: \"bar\",\n label: \"Bar\",\n },\n {\n value: \"line\",\n label: \"Line\",\n },\n {\n value: \"scatter\",\n label: \"Scatter\",\n },\n ],\n defaultValueHint: \"bar\",\n },\n data: {\n type: \"exprEditor\",\n description: \"The data as an array of objects\",\n defaultExpr: JSON.stringify([\n {\n region: \"APAC\",\n revenue: 3294,\n spend: 2675,\n },\n {\n region: \"EMEA\",\n revenue: 3245,\n spend: 3895,\n },\n {\n region: \"LATAM\",\n revenue: 2165,\n spend: 3498,\n },\n {\n region: \"AMER\",\n revenue: 3215,\n spend: 1656,\n },\n ]),\n },\n labelField: {\n ...fieldChoice,\n hidden: (props) => props.type === \"scatter\",\n },\n title: \"string\",\n interactive: {\n type: \"boolean\",\n defaultValueHint: true,\n },\n // Bar chart\n direction: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\"].map((dir) => ({\n value: dir,\n label: dir[0].toUpperCase() + dir.slice(1),\n })),\n defaultValueHint: \"Vertical\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n // Line chart\n fill: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"line\",\n },\n secondAxisField: {\n ...fieldChoice,\n hidden: (props) => props.type !== \"line\",\n },\n\n // TODO\n // datasets: {\n // type: \"array\",\n // unstable__keyFunc: (x) => x.key,\n // unstable__minimalValue: (_props, ctx) => null,\n // itemType: {\n // type: \"object\",\n // fields: {\n // label: \"string\",\n // fieldId: \"string\",\n // hidden: {\n // type: \"boolean\",\n // },\n // },\n // },\n // },\n },\n\n defaultStyles: {\n width: \"stretch\",\n },\n\n importName: \"SimpleChart\",\n importPath: \"@plasmicpkgs/react-chartjs-2\",\n};\n\nexport function registerSimpleChart(loader?: Registerable) {\n registerComponentHelper(loader, SimpleChart, simpleChartMeta);\n}\n","import { registerSimpleChart } from \"./simple-chart\";\nimport { Registerable } from \"./utils\";\n\nexport { SimpleChart } from \"./simple-chart\";\n\nexport function registerAll(loader?: Registerable) {\n registerSimpleChart(loader);\n}\n","import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n"],"names":["baseOptions","responsive","chartArea","defaultColors","useIsClient","_useState","useState","loaded","setLoaded","useEffect","range","total","Array","from","keys","getDefaultColor","index","opacity","end","length","start","Math","max","min","stops","map","_","i","round","selected","undefined","replace","prepData","_ref","_temp","_scatterSeries","_scatterSeries2","data","_ref$data","labelField","chosenFields","scatterSeries","_ref2","isScatter","preferNonNumericAsLabel","extras","fields","Object","_data$","isFieldAllNumericOrNil","Map","key","every","item","_item$key","isNaN","realLabelField","find","field","get","numericFields","filter","datasets","name","series","_scatterSeries3","_extends","label","_item$series$fields$","_item$series$fields$2","x","y","backgroundColor","autoChosenFields","labels","_item$key2","borderWidth","borderColor","prepOptions","_ref3","interactive","title","_ref3$interactive","interaction","mode","intersect","events","plugins","display","text","ChartAreaPlugin","id","beforeDraw","chart","chartAreaOptions","config","options","ctx","canvas","getContext","save","fillStyle","fillRect","left","top","right","bottom","restore","stackedOptions","scales","stacked","ticks","major","enabled","vertOptions","indexAxis","legend","position","horizOptions","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","SimpleLine","secondAxisField","fill","setKey","random","useKey","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","_ref$type","_ref2$type","defaultStyles","width","importName","importPath","loader","component","meta","registerComponent","registerComponentHelper","registerSimpleChart"],"mappings":"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"}
|
|
@@ -6,18 +6,13 @@ import deepmerge from 'deepmerge';
|
|
|
6
6
|
import { Bar, Line, Scatter } from 'react-chartjs-2';
|
|
7
7
|
|
|
8
8
|
function _extends() {
|
|
9
|
-
_extends = Object.assign ? Object.assign.bind() : function (
|
|
10
|
-
for (var
|
|
11
|
-
var
|
|
12
|
-
for (var
|
|
13
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
14
|
-
target[key] = source[key];
|
|
15
|
-
}
|
|
16
|
-
}
|
|
9
|
+
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
10
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
11
|
+
var t = arguments[e];
|
|
12
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
17
13
|
}
|
|
18
|
-
return
|
|
19
|
-
};
|
|
20
|
-
return _extends.apply(this, arguments);
|
|
14
|
+
return n;
|
|
15
|
+
}, _extends.apply(null, arguments);
|
|
21
16
|
}
|
|
22
17
|
|
|
23
18
|
function registerComponentHelper(loader, component, meta) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-chartjs-2.esm.js","sources":["../src/utils.ts","../src/common.ts","../src/simple-bar/SimpleBar.tsx","../src/simple-line/SimpleLine.tsx","../src/simple-scatter/SimpleScatter.tsx","../src/simple-chart/SimpleChart.tsx","../src/simple-chart/index.tsx","../src/index.tsx"],"sourcesContent":["import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n","import { Plugin } from \"chart.js/dist/types\";\nimport { useEffect, useState } from \"react\";\n\nexport const baseOptions = {\n responsive: true,\n chartArea: {\n // backgroundColor: \"#f8fafc\",\n },\n};\n\n/**\n * These are hand-picked from the Tailwind palette.\n */\nexport const defaultColors = [\n \"hsla(25,95%,53%,1.0)\",\n \"hsla(38,92%,50%,1.0)\",\n \"hsla(45,93%,47%,1.0)\",\n \"hsla(84,81%,44%,1.0)\",\n \"hsla(142,71%,45%,1.0)\",\n \"hsla(160,84%,39%,1.0)\",\n \"hsla(173,80%,40%,1.0)\",\n \"hsla(199,89%,48%,1.0)\",\n \"hsla(217,91%,60%,1.0)\",\n \"hsla(239,84%,67%,1.0)\",\n \"hsla(258,90%,66%,1.0)\",\n \"hsla(271,91%,65%,1.0)\",\n \"hsla(292,84%,61%,1.0)\",\n \"hsla(293,69%,49%,1.0)\",\n \"hsla(295,72%,40%,1.0)\",\n \"hsla(295,70%,33%,1.0)\",\n];\n\nexport function useIsClient() {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\nexport interface BaseChartProps {\n className?: string;\n data?: Record<string, any>[];\n labelField?: string;\n interactive?: boolean;\n title?: string;\n chosenFields?: string[];\n scatterSeries?: { name: string; fields: [string, string] }[];\n}\n\nexport interface PrepDataOpts {\n isScatter?: boolean;\n preferNonNumericAsLabel?: boolean;\n extras?: (field: string) => {};\n opacity?: number;\n}\n\nfunction range(total: number) {\n return Array.from(Array(total).keys());\n}\n\n/**\n * Returns a color from the default color palette.\n *\n * Tries to pick \"different\" colors that are somewhat spread out on the palette. With a higher 'total' colors requested, the colors will be packed more closely together.\n *\n * We prefer starting from blue when possible. This only starts getting pushed down toward yellow if too many colors requested.\n *\n * If too many colors are requested, it will recycle.\n */\nexport function getDefaultColor(\n index: number,\n total: number,\n opacity?: number\n) {\n const preferredStart = 9;\n const end = defaultColors.length - 1;\n const start = Math.max(0, Math.min(preferredStart, end - total));\n const stops =\n total > defaultColors.length\n ? range(defaultColors.length)\n : range(total).map((_, i) =>\n Math.round(\n start + (total > 1 ? ((1.0 * i) / (total - 1)) * (end - start) : 0)\n )\n );\n const selected = defaultColors[stops[index % stops.length]];\n if (opacity === undefined) {\n return selected;\n }\n return selected.replace(\"1.0\", \"\" + opacity);\n}\n\nexport function prepData(\n { data = [], labelField, chosenFields, scatterSeries }: BaseChartProps,\n { isScatter, preferNonNumericAsLabel, extras, opacity }: PrepDataOpts = {}\n) {\n const fields = Object.keys(data[0] ?? {});\n const isFieldAllNumericOrNil = new Map(\n fields.map((key) => [key, data.every((item) => !isNaN(item[key] ?? 0))])\n );\n const realLabelField =\n labelField ??\n (preferNonNumericAsLabel\n ? fields.find((field) => !isFieldAllNumericOrNil.get(field))\n : fields[0]);\n const numericFields = fields.filter((field) =>\n isFieldAllNumericOrNil.get(field)\n );\n if (isScatter) {\n scatterSeries = isScatter\n ? scatterSeries ?? [\n {\n name: `${numericFields[0]}-${numericFields[1]}`,\n fields: [numericFields[0], numericFields[1]] as [string, string],\n },\n ]\n : undefined;\n return {\n datasets: (scatterSeries ?? []).map((series, index) => ({\n ...extras?.(series.name),\n label: series.name,\n data: data.map((item) => ({\n x: item[series.fields[0]] ?? 0,\n y: item[series.fields[1]] ?? 0,\n })),\n backgroundColor: getDefaultColor(\n index,\n (scatterSeries ?? []).length,\n opacity\n ),\n })),\n };\n } else {\n const autoChosenFields = numericFields.filter(\n (field) => field !== realLabelField\n );\n return {\n labels: realLabelField\n ? data.map((item) => item[realLabelField])\n : undefined,\n datasets: (chosenFields ?? autoChosenFields).map((key, index) => {\n return {\n ...extras?.(key),\n label: key,\n data: data.map((item) => item[key] ?? 0),\n backgroundColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n borderWidth: 2,\n borderColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n };\n }),\n };\n }\n}\n\n// additional styling\n\n/*\n elements: {\n bar: {\n borderWidth: 2,\n },\n },\n\n */\n\nexport function prepOptions({ interactive = true, title }: BaseChartProps) {\n return [\n baseOptions,\n interactive\n ? {\n interaction: {\n mode: \"index\" as const,\n intersect: false,\n },\n events: undefined,\n }\n : {\n events: [],\n },\n title\n ? {\n plugins: {\n title: { display: true, text: title },\n },\n }\n : {},\n ];\n}\n\nexport const ChartAreaPlugin: Plugin = {\n id: \"chartAreaPlugin\",\n // eslint-disable-next-line object-shorthand\n beforeDraw: (chart) => {\n const chartAreaOptions = (chart.config.options as any).chartArea;\n if (chartAreaOptions && chartAreaOptions.backgroundColor) {\n const ctx = chart.canvas.getContext(\"2d\");\n const { chartArea } = chart;\n if (ctx) {\n ctx.save();\n ctx.fillStyle = chartAreaOptions.backgroundColor;\n // eslint-disable-next-line max-len\n ctx.fillRect(\n chartArea.left,\n chartArea.top,\n chartArea.right - chartArea.left,\n chartArea.bottom - chartArea.top\n );\n ctx.restore();\n }\n }\n },\n};\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Bar } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport const stackedOptions = {\n scales: {\n x: {\n stacked: true,\n ticks: {\n major: {\n enabled: false,\n },\n },\n },\n y: {\n stacked: true,\n },\n },\n};\n\nexport const vertOptions = {\n indexAxis: \"x\" as const,\n plugins: {\n legend: {\n position: \"top\" as const,\n },\n },\n};\nexport const horizOptions = {\n indexAxis: \"y\" as const,\n plugins: {\n legend: {\n position: \"right\" as const,\n },\n },\n};\n\nexport interface SimpleBarProps extends BaseChartProps {\n direction?: \"vertical\" | \"horizontal\";\n stacked?: boolean;\n}\n\nexport function SimpleBar(props: SimpleBarProps) {\n const { direction = \"vertical\", stacked, className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n preferNonNumericAsLabel: true,\n opacity: 1,\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Bar\n key={`${props.direction}${props.stacked}`}\n options={deepmerge.all([\n ...options,\n direction === \"vertical\" ? vertOptions : horizOptions,\n stacked ? stackedOptions : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n Filler,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport interface SimpleLineProps extends BaseChartProps {\n fill?: boolean;\n secondAxisField?: string;\n}\n\n// Force a re-mount when the secondAxisField is unset / re-set\n// https://app.shortcut.com/plasmic/story/38358/chart-component-issues-with-second-axis-field\nconst useKey = (secondAxisField?: string) => {\n const [key, setKey] = useState(0);\n\n // change key once when the secondAxisField is unset.\n if (!secondAxisField && key) {\n setKey(0);\n }\n\n // change key once when the secondAxisField value changes from undefined -> something\n if (secondAxisField && !key) {\n setKey(Math.random());\n }\n\n return key;\n};\n\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\n const key = useKey(props.secondAxisField);\n\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Filler,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n extras: (field) => ({\n fill,\n pointRadius: 0,\n yAxisID: field === secondAxisField ? \"y1\" : \"y\",\n }),\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Line\n key={key}\n options={deepmerge.all([\n ...options,\n secondAxisField\n ? {\n scales: {\n y: {\n type: \"linear\" as const,\n display: true,\n position: \"left\" as const,\n },\n y1: {\n type: \"linear\" as const,\n display: true,\n position: \"right\" as const,\n grid: {\n drawOnChartArea: false,\n },\n },\n },\n }\n : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Scatter } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport type SimpleScatterProps = BaseChartProps;\n\nexport function SimpleScatter(props: SimpleScatterProps) {\n const { className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Legend,\n Title\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n\n return (\n <div className={className}>\n <Scatter\n options={deepmerge.all([\n ...options,\n {\n scales: {\n y: {\n beginAtZero: true,\n },\n },\n },\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import React, { ReactElement } from \"react\";\nimport { SimpleBar, SimpleBarProps } from \"../simple-bar/SimpleBar\";\nimport { SimpleLine, SimpleLineProps } from \"../simple-line/SimpleLine\";\nimport {\n SimpleScatter,\n SimpleScatterProps,\n} from \"../simple-scatter/SimpleScatter\";\n\nexport type SimpleChartProps = {\n type?: \"bar\" | \"line\" | \"scatter\";\n} & (SimpleBarProps | SimpleLineProps | SimpleScatterProps);\n\nexport function SimpleChart(props: SimpleChartProps): ReactElement {\n switch (props.type ?? \"bar\") {\n case \"bar\":\n return <SimpleBar {...(props as any)} />;\n case \"line\":\n return <SimpleLine {...(props as any)} />;\n case \"scatter\":\n return <SimpleScatter {...(props as any)} />;\n }\n}\n","import { ComponentMeta, PropType } from \"@plasmicapp/host/registerComponent\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { SimpleChart, SimpleChartProps } from \"./SimpleChart\";\n\nexport * from \"./SimpleChart\";\nexport default SimpleChart;\n\nconst fieldChoice: PropType<SimpleChartProps> = {\n type: \"choice\",\n options: (props: SimpleChartProps) =>\n props.data?.[0] ? Object.keys(props.data[0]) : [],\n} as const;\nconst simpleChartMeta: ComponentMeta<SimpleChartProps> = {\n name: \"hostless-react-chartjs-2-simple-chart\",\n displayName: \"Chart\",\n props: {\n type: {\n type: \"choice\",\n options: [\n {\n value: \"bar\",\n label: \"Bar\",\n },\n {\n value: \"line\",\n label: \"Line\",\n },\n {\n value: \"scatter\",\n label: \"Scatter\",\n },\n ],\n defaultValueHint: \"bar\",\n },\n data: {\n type: \"exprEditor\",\n description: \"The data as an array of objects\",\n defaultExpr: JSON.stringify([\n {\n region: \"APAC\",\n revenue: 3294,\n spend: 2675,\n },\n {\n region: \"EMEA\",\n revenue: 3245,\n spend: 3895,\n },\n {\n region: \"LATAM\",\n revenue: 2165,\n spend: 3498,\n },\n {\n region: \"AMER\",\n revenue: 3215,\n spend: 1656,\n },\n ]),\n },\n labelField: {\n ...fieldChoice,\n hidden: (props) => props.type === \"scatter\",\n },\n title: \"string\",\n interactive: {\n type: \"boolean\",\n defaultValueHint: true,\n },\n // Bar chart\n direction: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\"].map((dir) => ({\n value: dir,\n label: dir[0].toUpperCase() + dir.slice(1),\n })),\n defaultValueHint: \"Vertical\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n // Line chart\n fill: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"line\",\n },\n secondAxisField: {\n ...fieldChoice,\n hidden: (props) => props.type !== \"line\",\n },\n\n // TODO\n // datasets: {\n // type: \"array\",\n // unstable__keyFunc: (x) => x.key,\n // unstable__minimalValue: (_props, ctx) => null,\n // itemType: {\n // type: \"object\",\n // fields: {\n // label: \"string\",\n // fieldId: \"string\",\n // hidden: {\n // type: \"boolean\",\n // },\n // },\n // },\n // },\n },\n\n defaultStyles: {\n width: \"stretch\",\n },\n\n importName: \"SimpleChart\",\n importPath: \"@plasmicpkgs/react-chartjs-2\",\n};\n\nexport function registerSimpleChart(loader?: Registerable) {\n registerComponentHelper(loader, SimpleChart, simpleChartMeta);\n}\n","import { registerSimpleChart } from \"./simple-chart\";\nimport { Registerable } from \"./utils\";\n\nexport { SimpleChart } from \"./simple-chart\";\n\nexport function registerAll(loader?: Registerable) {\n registerSimpleChart(loader);\n}\n"],"names":["registerComponentHelper","loader","component","meta","registerComponent","baseOptions","responsive","chartArea","defaultColors","useIsClient","_useState","useState","loaded","setLoaded","useEffect","range","total","Array","from","keys","getDefaultColor","index","opacity","preferredStart","end","length","start","Math","max","min","stops","map","_","i","round","selected","undefined","replace","prepData","_ref","_temp","data","_ref$data","labelField","chosenFields","scatterSeries","_ref2","isScatter","preferNonNumericAsLabel","extras","fields","Object","_data$","isFieldAllNumericOrNil","Map","key","every","item","_item$key","isNaN","realLabelField","find","field","get","numericFields","filter","_scatterSeries","_scatterSeries2","name","datasets","series","_scatterSeries3","_extends","label","_item$series$fields$","_item$series$fields$2","x","y","backgroundColor","autoChosenFields","labels","_item$key2","borderWidth","borderColor","prepOptions","_ref3","interactive","_ref3$interactive","title","interaction","mode","intersect","events","plugins","display","text","ChartAreaPlugin","id","beforeDraw","chart","chartAreaOptions","config","options","ctx","canvas","getContext","save","fillStyle","fillRect","left","top","right","bottom","restore","stackedOptions","scales","stacked","ticks","major","enabled","vertOptions","indexAxis","legend","position","horizOptions","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","useKey","secondAxisField","setKey","random","SimpleLine","fill","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","_ref$type","_ref2$type","defaultStyles","width","importName","importPath","registerSimpleChart","registerAll"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-chartjs-2.esm.js","sources":["../src/utils.ts","../src/common.ts","../src/simple-bar/SimpleBar.tsx","../src/simple-line/SimpleLine.tsx","../src/simple-scatter/SimpleScatter.tsx","../src/simple-chart/SimpleChart.tsx","../src/simple-chart/index.tsx","../src/index.tsx"],"sourcesContent":["import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n","import { Plugin } from \"chart.js/dist/types\";\nimport { useEffect, useState } from \"react\";\n\nexport const baseOptions = {\n responsive: true,\n chartArea: {\n // backgroundColor: \"#f8fafc\",\n },\n};\n\n/**\n * These are hand-picked from the Tailwind palette.\n */\nexport const defaultColors = [\n \"hsla(25,95%,53%,1.0)\",\n \"hsla(38,92%,50%,1.0)\",\n \"hsla(45,93%,47%,1.0)\",\n \"hsla(84,81%,44%,1.0)\",\n \"hsla(142,71%,45%,1.0)\",\n \"hsla(160,84%,39%,1.0)\",\n \"hsla(173,80%,40%,1.0)\",\n \"hsla(199,89%,48%,1.0)\",\n \"hsla(217,91%,60%,1.0)\",\n \"hsla(239,84%,67%,1.0)\",\n \"hsla(258,90%,66%,1.0)\",\n \"hsla(271,91%,65%,1.0)\",\n \"hsla(292,84%,61%,1.0)\",\n \"hsla(293,69%,49%,1.0)\",\n \"hsla(295,72%,40%,1.0)\",\n \"hsla(295,70%,33%,1.0)\",\n];\n\nexport function useIsClient() {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\nexport interface BaseChartProps {\n className?: string;\n data?: Record<string, any>[];\n labelField?: string;\n interactive?: boolean;\n title?: string;\n chosenFields?: string[];\n scatterSeries?: { name: string; fields: [string, string] }[];\n}\n\nexport interface PrepDataOpts {\n isScatter?: boolean;\n preferNonNumericAsLabel?: boolean;\n extras?: (field: string) => {};\n opacity?: number;\n}\n\nfunction range(total: number) {\n return Array.from(Array(total).keys());\n}\n\n/**\n * Returns a color from the default color palette.\n *\n * Tries to pick \"different\" colors that are somewhat spread out on the palette. With a higher 'total' colors requested, the colors will be packed more closely together.\n *\n * We prefer starting from blue when possible. This only starts getting pushed down toward yellow if too many colors requested.\n *\n * If too many colors are requested, it will recycle.\n */\nexport function getDefaultColor(\n index: number,\n total: number,\n opacity?: number\n) {\n const preferredStart = 9;\n const end = defaultColors.length - 1;\n const start = Math.max(0, Math.min(preferredStart, end - total));\n const stops =\n total > defaultColors.length\n ? range(defaultColors.length)\n : range(total).map((_, i) =>\n Math.round(\n start + (total > 1 ? ((1.0 * i) / (total - 1)) * (end - start) : 0)\n )\n );\n const selected = defaultColors[stops[index % stops.length]];\n if (opacity === undefined) {\n return selected;\n }\n return selected.replace(\"1.0\", \"\" + opacity);\n}\n\nexport function prepData(\n { data = [], labelField, chosenFields, scatterSeries }: BaseChartProps,\n { isScatter, preferNonNumericAsLabel, extras, opacity }: PrepDataOpts = {}\n) {\n const fields = Object.keys(data[0] ?? {});\n const isFieldAllNumericOrNil = new Map(\n fields.map((key) => [key, data.every((item) => !isNaN(item[key] ?? 0))])\n );\n const realLabelField =\n labelField ??\n (preferNonNumericAsLabel\n ? fields.find((field) => !isFieldAllNumericOrNil.get(field))\n : fields[0]);\n const numericFields = fields.filter((field) =>\n isFieldAllNumericOrNil.get(field)\n );\n if (isScatter) {\n scatterSeries = isScatter\n ? scatterSeries ?? [\n {\n name: `${numericFields[0]}-${numericFields[1]}`,\n fields: [numericFields[0], numericFields[1]] as [string, string],\n },\n ]\n : undefined;\n return {\n datasets: (scatterSeries ?? []).map((series, index) => ({\n ...extras?.(series.name),\n label: series.name,\n data: data.map((item) => ({\n x: item[series.fields[0]] ?? 0,\n y: item[series.fields[1]] ?? 0,\n })),\n backgroundColor: getDefaultColor(\n index,\n (scatterSeries ?? []).length,\n opacity\n ),\n })),\n };\n } else {\n const autoChosenFields = numericFields.filter(\n (field) => field !== realLabelField\n );\n return {\n labels: realLabelField\n ? data.map((item) => item[realLabelField])\n : undefined,\n datasets: (chosenFields ?? autoChosenFields).map((key, index) => {\n return {\n ...extras?.(key),\n label: key,\n data: data.map((item) => item[key] ?? 0),\n backgroundColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n borderWidth: 2,\n borderColor: getDefaultColor(\n index,\n (chosenFields ?? autoChosenFields).length,\n 1\n ),\n };\n }),\n };\n }\n}\n\n// additional styling\n\n/*\n elements: {\n bar: {\n borderWidth: 2,\n },\n },\n\n */\n\nexport function prepOptions({ interactive = true, title }: BaseChartProps) {\n return [\n baseOptions,\n interactive\n ? {\n interaction: {\n mode: \"index\" as const,\n intersect: false,\n },\n events: undefined,\n }\n : {\n events: [],\n },\n title\n ? {\n plugins: {\n title: { display: true, text: title },\n },\n }\n : {},\n ];\n}\n\nexport const ChartAreaPlugin: Plugin = {\n id: \"chartAreaPlugin\",\n // eslint-disable-next-line object-shorthand\n beforeDraw: (chart) => {\n const chartAreaOptions = (chart.config.options as any).chartArea;\n if (chartAreaOptions && chartAreaOptions.backgroundColor) {\n const ctx = chart.canvas.getContext(\"2d\");\n const { chartArea } = chart;\n if (ctx) {\n ctx.save();\n ctx.fillStyle = chartAreaOptions.backgroundColor;\n // eslint-disable-next-line max-len\n ctx.fillRect(\n chartArea.left,\n chartArea.top,\n chartArea.right - chartArea.left,\n chartArea.bottom - chartArea.top\n );\n ctx.restore();\n }\n }\n },\n};\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Bar } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport const stackedOptions = {\n scales: {\n x: {\n stacked: true,\n ticks: {\n major: {\n enabled: false,\n },\n },\n },\n y: {\n stacked: true,\n },\n },\n};\n\nexport const vertOptions = {\n indexAxis: \"x\" as const,\n plugins: {\n legend: {\n position: \"top\" as const,\n },\n },\n};\nexport const horizOptions = {\n indexAxis: \"y\" as const,\n plugins: {\n legend: {\n position: \"right\" as const,\n },\n },\n};\n\nexport interface SimpleBarProps extends BaseChartProps {\n direction?: \"vertical\" | \"horizontal\";\n stacked?: boolean;\n}\n\nexport function SimpleBar(props: SimpleBarProps) {\n const { direction = \"vertical\", stacked, className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n preferNonNumericAsLabel: true,\n opacity: 1,\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Bar\n key={`${props.direction}${props.stacked}`}\n options={deepmerge.all([\n ...options,\n direction === \"vertical\" ? vertOptions : horizOptions,\n stacked ? stackedOptions : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n Filler,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport interface SimpleLineProps extends BaseChartProps {\n fill?: boolean;\n secondAxisField?: string;\n}\n\n// Force a re-mount when the secondAxisField is unset / re-set\n// https://app.shortcut.com/plasmic/story/38358/chart-component-issues-with-second-axis-field\nconst useKey = (secondAxisField?: string) => {\n const [key, setKey] = useState(0);\n\n // change key once when the secondAxisField is unset.\n if (!secondAxisField && key) {\n setKey(0);\n }\n\n // change key once when the secondAxisField value changes from undefined -> something\n if (secondAxisField && !key) {\n setKey(Math.random());\n }\n\n return key;\n};\n\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\n const key = useKey(props.secondAxisField);\n\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Filler,\n Legend\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, {\n extras: (field) => ({\n fill,\n pointRadius: 0,\n yAxisID: field === secondAxisField ? \"y1\" : \"y\",\n }),\n });\n const options = prepOptions(props);\n return (\n <div className={className}>\n <Line\n key={key}\n options={deepmerge.all([\n ...options,\n secondAxisField\n ? {\n scales: {\n y: {\n type: \"linear\" as const,\n display: true,\n position: \"left\" as const,\n },\n y1: {\n type: \"linear\" as const,\n display: true,\n position: \"right\" as const,\n grid: {\n drawOnChartArea: false,\n },\n },\n },\n }\n : {},\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n Title,\n Tooltip,\n} from \"chart.js\";\nimport deepmerge from \"deepmerge\";\nimport React, { useEffect } from \"react\";\nimport { Scatter } from \"react-chartjs-2\";\nimport {\n BaseChartProps,\n ChartAreaPlugin,\n prepData,\n prepOptions,\n useIsClient,\n} from \"../common\";\n\nexport type SimpleScatterProps = BaseChartProps;\n\nexport function SimpleScatter(props: SimpleScatterProps) {\n const { className } = props;\n const isClient = useIsClient();\n useEffect(() => {\n ChartJS.register(\n ChartAreaPlugin,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Legend,\n Title\n );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n\n return (\n <div className={className}>\n <Scatter\n options={deepmerge.all([\n ...options,\n {\n scales: {\n y: {\n beginAtZero: true,\n },\n },\n },\n ])}\n data={normalized}\n />\n </div>\n );\n}\n","import React, { ReactElement } from \"react\";\nimport { SimpleBar, SimpleBarProps } from \"../simple-bar/SimpleBar\";\nimport { SimpleLine, SimpleLineProps } from \"../simple-line/SimpleLine\";\nimport {\n SimpleScatter,\n SimpleScatterProps,\n} from \"../simple-scatter/SimpleScatter\";\n\nexport type SimpleChartProps = {\n type?: \"bar\" | \"line\" | \"scatter\";\n} & (SimpleBarProps | SimpleLineProps | SimpleScatterProps);\n\nexport function SimpleChart(props: SimpleChartProps): ReactElement {\n switch (props.type ?? \"bar\") {\n case \"bar\":\n return <SimpleBar {...(props as any)} />;\n case \"line\":\n return <SimpleLine {...(props as any)} />;\n case \"scatter\":\n return <SimpleScatter {...(props as any)} />;\n }\n}\n","import { ComponentMeta, PropType } from \"@plasmicapp/host/registerComponent\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { SimpleChart, SimpleChartProps } from \"./SimpleChart\";\n\nexport * from \"./SimpleChart\";\nexport default SimpleChart;\n\nconst fieldChoice: PropType<SimpleChartProps> = {\n type: \"choice\",\n options: (props: SimpleChartProps) =>\n props.data?.[0] ? Object.keys(props.data[0]) : [],\n} as const;\nconst simpleChartMeta: ComponentMeta<SimpleChartProps> = {\n name: \"hostless-react-chartjs-2-simple-chart\",\n displayName: \"Chart\",\n props: {\n type: {\n type: \"choice\",\n options: [\n {\n value: \"bar\",\n label: \"Bar\",\n },\n {\n value: \"line\",\n label: \"Line\",\n },\n {\n value: \"scatter\",\n label: \"Scatter\",\n },\n ],\n defaultValueHint: \"bar\",\n },\n data: {\n type: \"exprEditor\",\n description: \"The data as an array of objects\",\n defaultExpr: JSON.stringify([\n {\n region: \"APAC\",\n revenue: 3294,\n spend: 2675,\n },\n {\n region: \"EMEA\",\n revenue: 3245,\n spend: 3895,\n },\n {\n region: \"LATAM\",\n revenue: 2165,\n spend: 3498,\n },\n {\n region: \"AMER\",\n revenue: 3215,\n spend: 1656,\n },\n ]),\n },\n labelField: {\n ...fieldChoice,\n hidden: (props) => props.type === \"scatter\",\n },\n title: \"string\",\n interactive: {\n type: \"boolean\",\n defaultValueHint: true,\n },\n // Bar chart\n direction: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\"].map((dir) => ({\n value: dir,\n label: dir[0].toUpperCase() + dir.slice(1),\n })),\n defaultValueHint: \"Vertical\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: ({ type = \"bar\" }) => type !== \"bar\",\n },\n // Line chart\n fill: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"line\",\n },\n secondAxisField: {\n ...fieldChoice,\n hidden: (props) => props.type !== \"line\",\n },\n\n // TODO\n // datasets: {\n // type: \"array\",\n // unstable__keyFunc: (x) => x.key,\n // unstable__minimalValue: (_props, ctx) => null,\n // itemType: {\n // type: \"object\",\n // fields: {\n // label: \"string\",\n // fieldId: \"string\",\n // hidden: {\n // type: \"boolean\",\n // },\n // },\n // },\n // },\n },\n\n defaultStyles: {\n width: \"stretch\",\n },\n\n importName: \"SimpleChart\",\n importPath: \"@plasmicpkgs/react-chartjs-2\",\n};\n\nexport function registerSimpleChart(loader?: Registerable) {\n registerComponentHelper(loader, SimpleChart, simpleChartMeta);\n}\n","import { registerSimpleChart } from \"./simple-chart\";\nimport { Registerable } from \"./utils\";\n\nexport { SimpleChart } from \"./simple-chart\";\n\nexport function registerAll(loader?: Registerable) {\n registerSimpleChart(loader);\n}\n"],"names":["registerComponentHelper","loader","component","meta","registerComponent","baseOptions","responsive","chartArea","defaultColors","useIsClient","_useState","useState","loaded","setLoaded","useEffect","range","total","Array","from","keys","getDefaultColor","index","opacity","preferredStart","end","length","start","Math","max","min","stops","map","_","i","round","selected","undefined","replace","prepData","_ref","_temp","data","_ref$data","labelField","chosenFields","scatterSeries","_ref2","isScatter","preferNonNumericAsLabel","extras","fields","Object","_data$","isFieldAllNumericOrNil","Map","key","every","item","_item$key","isNaN","realLabelField","find","field","get","numericFields","filter","_scatterSeries","_scatterSeries2","name","datasets","series","_scatterSeries3","_extends","label","_item$series$fields$","_item$series$fields$2","x","y","backgroundColor","autoChosenFields","labels","_item$key2","borderWidth","borderColor","prepOptions","_ref3","interactive","_ref3$interactive","title","interaction","mode","intersect","events","plugins","display","text","ChartAreaPlugin","id","beforeDraw","chart","chartAreaOptions","config","options","ctx","canvas","getContext","save","fillStyle","fillRect","left","top","right","bottom","restore","stackedOptions","scales","stacked","ticks","major","enabled","vertOptions","indexAxis","legend","position","horizOptions","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","useKey","secondAxisField","setKey","random","SimpleLine","fill","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","_ref$type","_ref2$type","defaultStyles","width","importName","importPath","registerSimpleChart","registerAll"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/react-chartjs-2",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.118",
|
|
4
4
|
"description": "Chart.js 2.x components for React",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"analyze": "size-limit --why"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@plasmicapp/data-sources": "0.1.
|
|
31
|
+
"@plasmicapp/data-sources": "0.1.172",
|
|
32
32
|
"@plasmicapp/host": "1.0.211",
|
|
33
33
|
"@size-limit/preset-small-lib": "^4.11.0",
|
|
34
34
|
"@types/node": "^14.0.26",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"deepmerge": "^4.3.1"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "2cd7f1eaf948d70ee45f451e38da560778a07309"
|
|
57
57
|
}
|