@plasmicpkgs/react-chartjs-2 1.0.67 → 1.0.68

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/common.d.ts CHANGED
@@ -64,14 +64,16 @@ export declare function prepOptions({ interactive, title }: BaseChartProps): ({
64
64
  mode: "index";
65
65
  intersect: boolean;
66
66
  };
67
- title?: undefined;
67
+ plugins?: undefined;
68
68
  } | {
69
69
  interaction?: undefined;
70
- title?: undefined;
70
+ plugins?: undefined;
71
71
  } | {
72
- title: {
73
- display: boolean;
74
- text: string;
72
+ plugins: {
73
+ title: {
74
+ display: boolean;
75
+ text: string;
76
+ };
75
77
  };
76
78
  interaction?: undefined;
77
79
  })[];
@@ -168,9 +168,11 @@ function prepOptions(_ref3) {
168
168
  intersect: false
169
169
  }
170
170
  } : {}, title ? {
171
- title: {
172
- display: true,
173
- text: title
171
+ plugins: {
172
+ title: {
173
+ display: true,
174
+ text: title
175
+ }
174
176
  }
175
177
  } : {}];
176
178
  }
@@ -209,6 +211,7 @@ var stackedOptions = {
209
211
  }
210
212
  };
211
213
  var vertOptions = {
214
+ indexAxis: "x",
212
215
  plugins: {
213
216
  legend: {
214
217
  position: "top"
@@ -243,16 +246,34 @@ function SimpleBar(props) {
243
246
  return React__default.createElement("div", {
244
247
  className: className
245
248
  }, React__default.createElement(reactChartjs2.Bar, {
249
+ key: "" + props.direction + props.stacked,
246
250
  options: deepmerge.all([].concat(options, [direction === "vertical" ? vertOptions : horizOptions, stacked ? stackedOptions : {}])),
247
251
  data: normalized
248
252
  }));
249
253
  }
250
254
 
255
+ // Force a re-mount when the secondAxisField is unset / re-set
256
+ // https://app.shortcut.com/plasmic/story/38358/chart-component-issues-with-second-axis-field
257
+ var useKey = function useKey(secondAxisField) {
258
+ var _useState = React.useState(0),
259
+ key = _useState[0],
260
+ setKey = _useState[1];
261
+ // change key once when the secondAxisField is unset.
262
+ if (!secondAxisField && key) {
263
+ setKey(0);
264
+ }
265
+ // change key once when the secondAxisField value changes from undefined -> something
266
+ if (secondAxisField && !key) {
267
+ setKey(Math.random());
268
+ }
269
+ return key;
270
+ };
251
271
  function SimpleLine(props) {
252
272
  var secondAxisField = props.secondAxisField,
253
273
  fill = props.fill,
254
274
  className = props.className;
255
275
  var isClient = useIsClient();
276
+ var key = useKey(props.secondAxisField);
256
277
  React.useEffect(function () {
257
278
  chart_js.Chart.register(ChartAreaPlugin, chart_js.CategoryScale, chart_js.LinearScale, chart_js.PointElement, chart_js.LineElement, chart_js.Title, chart_js.Tooltip, chart_js.Filler, chart_js.Legend);
258
279
  }, []);
@@ -272,6 +293,7 @@ function SimpleLine(props) {
272
293
  return React__default.createElement("div", {
273
294
  className: className
274
295
  }, React__default.createElement(reactChartjs2.Line, {
296
+ key: key,
275
297
  options: deepmerge.all([].concat(options, [secondAxisField ? {
276
298
  scales: {
277
299
  y: {
@@ -297,7 +319,7 @@ function SimpleScatter(props) {
297
319
  var className = props.className;
298
320
  var isClient = useIsClient();
299
321
  React.useEffect(function () {
300
- chart_js.Chart.register(ChartAreaPlugin, chart_js.LinearScale, chart_js.PointElement, chart_js.LineElement, chart_js.Tooltip, chart_js.Legend);
322
+ chart_js.Chart.register(ChartAreaPlugin, chart_js.LinearScale, chart_js.PointElement, chart_js.LineElement, chart_js.Tooltip, chart_js.Legend, chart_js.Title);
301
323
  }, []);
302
324
  if (!isClient) {
303
325
  return null;
@@ -307,7 +329,6 @@ function SimpleScatter(props) {
307
329
  opacity: 1
308
330
  });
309
331
  var options = prepOptions(props);
310
- console.log("!!", normalized, options);
311
332
  return React__default.createElement("div", {
312
333
  className: className
313
334
  }, React__default.createElement(reactChartjs2.Scatter, {
@@ -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 }\n : {},\n title ? { title: { display: true, text: title } } : {},\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 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 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 } 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\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\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 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 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 interface SimpleScatterProps extends 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 );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n console.log(\"!!\", normalized, options);\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 },\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: (props) => props.type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: (props) => props.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","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","plugins","legend","position","horizOptions","indexAxis","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","SimpleLine","secondAxisField","fill","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","console","log","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","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 }\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 },\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: (props) => props.type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: (props) => props.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","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","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)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,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],E=g.filter((function(e){return y.get(e)}));if(f)return{datasets:(null!=(a=u=f?null!=(n=u)?n:[{name:E[0]+"-"+E[1],fields:[E[0],E[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=E.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}}:{},r?{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={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,{options:i.all([].concat(b,["vertical"===o?g:y,s?m:{}])),data:p}))}function E(e){var t=e.secondAxisField,o=e.fill,s=e.className,c=u();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 d=f(e,{extras:function(e){return{fill:o,pointRadius:0,yAxisID:e===t?"y1":"y"}}}),p=h(e);return n.createElement("div",{className:s},n.createElement(l.Line,{options:i.all([].concat(p,[t?{scales:{y:{type:"linear",display:!0,position:"left"},y1:{type:"linear",display:!0,position:"right",grid:{drawOnChartArea:!1}}}}:{}])),data:d}))}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)}),[]),!o)return null;var s=f(e,{isScatter:!0,opacity:1}),c=h(e);return console.log("!!",s,c),n.createElement("div",{className:t},n.createElement(l.Scatter,{options:i.all([].concat(c,[{scales:{y:{beginAtZero:!0}}}])),data:s}))}function C(e){var t;switch(null!=(t=e.type)?t:"bar"){case"bar":return n.createElement(b,Object.assign({},e));case"line":return n.createElement(E,Object.assign({},e));case"scatter":return n.createElement(A,Object.assign({},e))}}var x={type:"choice",options:function(e){var t;return null!=(t=e.data)&&t[0]?Object.keys(e.data[0]):[]}},j={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({},x,{hidden:function(e){return"scatter"===e.type}}),title:"string",interactive:{type:"boolean"},direction:{type:"choice",options:["horizontal","vertical"].map((function(e){return{value:e,label:e[0].toUpperCase()+e.slice(1)}})),defaultValueHint:"Vertical",hidden:function(e){return"bar"!==e.type}},stacked:{type:"boolean",hidden:function(e){return"bar"!==e.type}},fill:{type:"boolean",hidden:function(e){return"line"!==e.type}},secondAxisField:o({},x,{hidden:function(e){return"line"!==e.type}})},defaultStyles:{width:"stretch"},importName:"SimpleChart",importPath:"@plasmicpkgs/react-chartjs-2"};exports.SimpleChart=C,exports.registerAll=function(e){!function(e){!function(e,r,n){e?e.registerComponent(r,n):t(r,n)}(e,C,j)}(e)};
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)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,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}}:{},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"},direction:{type:"choice",options:["horizontal","vertical"].map((function(e){return{value:e,label:e[0].toUpperCase()+e.slice(1)}})),defaultValueHint:"Vertical",hidden:function(e){return"bar"!==e.type}},stacked:{type:"boolean",hidden:function(e){return"bar"!==e.type}},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 }\n : {},\n title ? { title: { display: true, text: title } } : {},\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 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 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 } 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\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\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 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 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 interface SimpleScatterProps extends 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 );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n console.log(\"!!\", normalized, options);\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 },\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: (props) => props.type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: (props) => props.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","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","plugins","legend","position","horizOptions","indexAxis","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","SimpleLine","secondAxisField","fill","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","console","log","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","defaultStyles","width","importName","importPath","loader","component","meta","registerComponent","registerComponentHelper","registerSimpleChart"],"mappings":"ikBAGO,IAAMA,EAAc,CACzBC,YAAY,EACZC,UAAW,IAQAC,EAAgB,CAC3B,uBACA,uBACA,uBACA,uBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,yBAGF,SAAgBC,IACd,IAAAC,EAA4BC,YAAS,GAA9BC,EAAMF,KAAEG,EAASH,KAIxB,OAHAI,aAAU,WACRD,GAAU,MAELD,EAoBT,SAASG,EAAMC,GACb,OAAOC,MAAMC,KAAKD,MAAMD,GAAOG,QAYjC,SAAgBC,EACdC,EACAL,EACAM,GAEA,IACMC,EAAMf,EAAcgB,OAAS,EAC7BC,EAAQC,KAAKC,IAAI,EAAGD,KAAKE,IAFR,EAE4BL,EAAMP,IACnDa,EACJb,EAAQR,EAAcgB,OAClBT,EAAMP,EAAcgB,QACpBT,EAAMC,GAAOc,KAAI,SAACC,EAAGC,GAAC,OACpBN,KAAKO,MACHR,GAAST,EAAQ,EAAM,EAAMgB,GAAMhB,EAAQ,IAAOO,EAAME,GAAS,OAGrES,EAAW1B,EAAcqB,EAAMR,EAAQQ,EAAML,SACnD,YAAgBW,IAAZb,EACKY,EAEFA,EAASE,QAAQ,MAAO,GAAKd,YAGtBe,EAAQC,EAAAC,SAgBPC,EAAAC,MAfbC,KAAAA,WAAIC,EAAG,GAAEA,EAAEC,EAAUN,EAAVM,WAAYC,EAAYP,EAAZO,aAAcC,EAAaR,EAAbQ,cAAaC,WAAAR,EACoB,GAAEA,EAAxES,EAASD,EAATC,UAAWC,EAAuBF,EAAvBE,wBAAyBC,EAAMH,EAANG,OAAQ5B,EAAOyB,EAAPzB,QAExC6B,EAASC,OAAOjC,YAAIkC,EAACX,EAAK,IAAEW,EAAI,IAChCC,EAAyB,IAAIC,IACjCJ,EAAOrB,KAAI,SAAC0B,GAAG,MAAK,CAACA,EAAKd,EAAKe,OAAM,SAACC,GAAI,IAAAC,EAAA,OAAMC,aAAKD,EAACD,EAAKF,IAAIG,EAAI,WAE/DE,QACJjB,EAAAA,EACCK,EACGE,EAAOW,MAAK,SAACC,GAAK,OAAMT,EAAuBU,IAAID,MACnDZ,EAAO,GACPc,EAAgBd,EAAOe,QAAO,SAACH,GAAK,OACxCT,EAAuBU,IAAID,MAE7B,GAAIf,EASF,MAAO,CACLmB,iBAAU1B,EATZK,EAAgBE,SAASR,EACrBM,GAAaN,EAAI,CACf,CACE4B,KAASH,EAAc,OAAMA,EAAc,GAC3Cd,OAAQ,CAACc,EAAc,GAAIA,EAAc,WAG7C9B,GAEsBM,EAAI,IAAIX,KAAI,SAACuC,EAAQhD,GAAK,IAAAiD,EAAA,OAAAC,WAC7CrB,SAAAA,EAASmB,EAAOD,OACnBI,MAAOH,EAAOD,KACd1B,KAAMA,EAAKZ,KAAI,SAAC4B,GAAI,IAAAe,EAAAC,EAAA,MAAM,CACxBC,SAACF,EAAEf,EAAKW,EAAOlB,OAAO,KAAGsB,EAAI,EAC7BG,SAACF,EAAEhB,EAAKW,EAAOlB,OAAO,KAAGuB,EAAI,MAE/BG,gBAAiBzD,EACfC,UACAiD,EAACxB,GAAawB,EAAI,IAAI9C,OACtBF,SAKN,IAAMwD,EAAmBb,EAAcC,QACrC,SAACH,GAAK,OAAKA,IAAUF,KAEvB,MAAO,CACLkB,OAAQlB,EACJnB,EAAKZ,KAAI,SAAC4B,GAAI,OAAKA,EAAKG,WACxB1B,EACJgC,gBAAWtB,EAAAA,EAAgBiC,GAAkBhD,KAAI,SAAC0B,EAAKnC,GACrD,OAAAkD,WACKrB,SAAAA,EAASM,IACZgB,MAAOhB,EACPd,KAAMA,EAAKZ,KAAI,SAAC4B,GAAI,IAAAsB,EAAA,cAAAA,EAAKtB,EAAKF,IAAIwB,EAAI,KACtCH,gBAAiBzD,EACfC,SACCwB,EAAAA,EAAgBiC,GAAkBtD,OACnC,GAEFyD,YAAa,EACbC,YAAa9D,EACXC,SACCwB,EAAAA,EAAgBiC,GAAkBtD,OACnC,kBAmBI2D,EAAWC,WAAGC,YAAoBC,EAAKF,EAALE,MAChD,MAAO,CACLjF,WAFqCkF,GAAOA,EAIxC,CACEC,YAAa,CACXC,KAAM,QACNC,WAAW,IAGf,GACJJ,EAAQ,CAAEA,MAAO,CAAEK,SAAS,EAAMC,KAAMN,IAAY,IAIxD,IAAaO,EAA0B,CACrCC,GAAI,kBAEJC,WAAY,SAACC,GACX,IAAMC,EAAoBD,EAAME,OAAOC,QAAgB5F,UACvD,GAAI0F,GAAoBA,EAAiBpB,gBAAiB,CACxD,IAAMuB,EAAMJ,EAAMK,OAAOC,WAAW,MAC5B/F,EAAcyF,EAAdzF,UACJ6F,IACFA,EAAIG,OACJH,EAAII,UAAYP,EAAiBpB,gBAEjCuB,EAAIK,SACFlG,EAAUmG,KACVnG,EAAUoG,IACVpG,EAAUqG,MAAQrG,EAAUmG,KAC5BnG,EAAUsG,OAAStG,EAAUoG,KAE/BP,EAAIU,cC3LCC,EAAiB,CAC5BC,OAAQ,CACNrC,EAAG,CACDsC,SAAS,EACTC,MAAO,CACLC,MAAO,CACLC,SAAS,KAIfxC,EAAG,CACDqC,SAAS,KAKFI,EAAc,CACzBC,QAAS,CACPC,OAAQ,CACNC,SAAU,SAIHC,EAAe,CAC1BC,UAAW,IACXJ,QAAS,CACPC,OAAQ,CACNC,SAAU,oBAUAG,EAAUC,GACxB,IAAAC,EAAuDD,EAA/CE,UAAAA,WAASD,EAAG,WAAUA,EAAEZ,EAAuBW,EAAvBX,QAASc,EAAcH,EAAdG,UACnCC,EAAWvH,IAYjB,GAXAK,aAAU,WACRmH,QAAQC,SACNrC,EACAsC,gBACAC,cACAC,aACAC,QACAC,UACAC,YAED,KACER,EACH,OAAO,KAET,IAAMS,EAAapG,EAASuF,EAAO,CACjC3E,yBAAyB,EACzB3B,QAAS,IAEL6E,EAAUhB,EAAYyC,GAC5B,OACEc,uBAAKX,UAAWA,GACdW,gBAACC,OACCxC,QAASyC,EAAUC,OAAGC,OACjB3C,GACW,aAAd2B,EAA2BT,EAAcI,EACzCR,EAAUF,EAAiB,MAE7BrE,KAAM+F,cC5DEM,EAAWnB,GACzB,IAAQoB,EAAqCpB,EAArCoB,gBAAiBC,EAAoBrB,EAApBqB,KAAMlB,EAAcH,EAAdG,UACzBC,EAAWvH,IAcjB,GAbAK,aAAU,WACRmH,QAAQC,SACNrC,EACAsC,gBACAC,cACAc,eACAC,cACAb,QACAC,UACAa,SACAZ,YAED,KACER,EACH,OAAO,KAET,IAAMS,EAAapG,EAASuF,EAAO,CACjC1E,OAAQ,SAACa,GAAK,MAAM,CAClBkF,KAAAA,EACAI,YAAa,EACbC,QAASvF,IAAUiF,EAAkB,KAAO,QAG1C7C,EAAUhB,EAAYyC,GAC5B,OACEc,uBAAKX,UAAWA,GACdW,gBAACa,QACCpD,QAASyC,EAAUC,OAAGC,OACjB3C,GACH6C,EACI,CACEhC,OAAQ,CACNpC,EAAG,CACD4E,KAAM,SACN7D,SAAS,EACT6B,SAAU,QAEZiC,GAAI,CACFD,KAAM,SACN7D,SAAS,EACT6B,SAAU,QACVkC,KAAM,CACJC,iBAAiB,MAKzB,MAENjH,KAAM+F,cC1DEmB,EAAchC,GAC5B,IAAQG,EAAcH,EAAdG,UACFC,EAAWvH,IAWjB,GAVAK,aAAU,WACRmH,QAAQC,SACNrC,EACAuC,cACAc,eACAC,cACAZ,UACAC,YAED,KACER,EACH,OAAO,KAET,IAAMS,EAAapG,EAASuF,EAAO,CAAE5E,WAAW,EAAM1B,QAAS,IACzD6E,EAAUhB,EAAYyC,GAE5B,OADAiC,QAAQC,IAAI,KAAMrB,EAAYtC,GAE5BuC,uBAAKX,UAAWA,GACdW,gBAACqB,WACC5D,QAASyC,EAAUC,OAAGC,OACjB3C,GACH,CACEa,OAAQ,CACNpC,EAAG,CACDoF,aAAa,QAKrBtH,KAAM+F,cCzCEwB,EAAYrC,SAC1B,cAAAsC,EAAQtC,EAAM4B,MAAIU,EAAI,OACpB,IAAK,MACH,OAAOxB,gBAACf,mBAAeC,IACzB,IAAK,OACH,OAAOc,gBAACK,mBAAgBnB,IAC1B,IAAK,UACH,OAAOc,gBAACkB,mBAAmBhC,SCZ3BuC,EAA0C,CAC9CX,KAAM,SACNrD,QAAS,SAACyB,GAAuB,IAAAwC,EAAA,cAC/BA,EAAAxC,EAAMlF,OAAN0H,EAAa,GAAKhH,OAAOjC,KAAKyG,EAAMlF,KAAK,IAAM,KAE7C2H,EAAmD,CACvDjG,KAAM,wCACNkG,YAAa,QACb1C,MAAO,CACL4B,KAAM,CACJA,KAAM,SACNrD,QAAS,CACP,CACEoE,MAAO,MACP/F,MAAO,OAET,CACE+F,MAAO,OACP/F,MAAO,QAET,CACE+F,MAAO,UACP/F,MAAO,YAGXgG,iBAAkB,OAEpB9H,KAAM,CACJ8G,KAAM,aACNiB,YAAa,kCACbC,YAAaC,KAAKC,UAAU,CAC1B,CACEC,OAAQ,OACRC,QAAS,KACTC,MAAO,MAET,CACEF,OAAQ,OACRC,QAAS,KACTC,MAAO,MAET,CACEF,OAAQ,QACRC,QAAS,KACTC,MAAO,MAET,CACEF,OAAQ,OACRC,QAAS,KACTC,MAAO,SAIbnI,WAAU2B,KACL4F,GACHa,OAAQ,SAACpD,GAAK,MAAoB,YAAfA,EAAM4B,QAE3BlE,MAAO,SACPD,YAAa,CACXmE,KAAM,WAGR1B,UAAW,CACT0B,KAAM,SACNrD,QAAS,CAAC,aAAc,YAAYrE,KAAI,SAACmJ,GAAG,MAAM,CAChDV,MAAOU,EACPzG,MAAOyG,EAAI,GAAGC,cAAgBD,EAAIE,MAAM,OAE1CX,iBAAkB,WAClBQ,OAAQ,SAACpD,GAAK,MAAoB,QAAfA,EAAM4B,OAE3BvC,QAAS,CACPuC,KAAM,UACNwB,OAAQ,SAACpD,GAAK,MAAoB,QAAfA,EAAM4B,OAG3BP,KAAM,CACJO,KAAM,UACNwB,OAAQ,SAACpD,GAAK,MAAoB,SAAfA,EAAM4B,OAE3BR,gBAAezE,KACV4F,GACHa,OAAQ,SAACpD,GAAK,MAAoB,SAAfA,EAAM4B,SAqB7B4B,cAAe,CACbC,MAAO,WAGTC,WAAY,cACZC,WAAY,mFC9GcC,aDiHQA,aE9ElCA,EACAC,EACAC,GAEIF,EACFA,EAAOG,kBAAkBF,EAAWC,GAEpCC,EAAkBF,EAAWC,GFwE/BE,CAAwBJ,EAAQvB,EAAaI,GCjH7CwB,CAAoBL"}
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 }\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 },\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: (props) => props.type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: (props) => props.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","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","defaultStyles","width","importName","importPath","loader","component","meta","registerComponent","registerComponentHelper","registerSimpleChart"],"mappings":"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"}
@@ -161,9 +161,11 @@ function prepOptions(_ref3) {
161
161
  intersect: false
162
162
  }
163
163
  } : {}, title ? {
164
- title: {
165
- display: true,
166
- text: title
164
+ plugins: {
165
+ title: {
166
+ display: true,
167
+ text: title
168
+ }
167
169
  }
168
170
  } : {}];
169
171
  }
@@ -202,6 +204,7 @@ var stackedOptions = {
202
204
  }
203
205
  };
204
206
  var vertOptions = {
207
+ indexAxis: "x",
205
208
  plugins: {
206
209
  legend: {
207
210
  position: "top"
@@ -236,16 +239,34 @@ function SimpleBar(props) {
236
239
  return React.createElement("div", {
237
240
  className: className
238
241
  }, React.createElement(Bar, {
242
+ key: "" + props.direction + props.stacked,
239
243
  options: deepmerge.all([].concat(options, [direction === "vertical" ? vertOptions : horizOptions, stacked ? stackedOptions : {}])),
240
244
  data: normalized
241
245
  }));
242
246
  }
243
247
 
248
+ // Force a re-mount when the secondAxisField is unset / re-set
249
+ // https://app.shortcut.com/plasmic/story/38358/chart-component-issues-with-second-axis-field
250
+ var useKey = function useKey(secondAxisField) {
251
+ var _useState = useState(0),
252
+ key = _useState[0],
253
+ setKey = _useState[1];
254
+ // change key once when the secondAxisField is unset.
255
+ if (!secondAxisField && key) {
256
+ setKey(0);
257
+ }
258
+ // change key once when the secondAxisField value changes from undefined -> something
259
+ if (secondAxisField && !key) {
260
+ setKey(Math.random());
261
+ }
262
+ return key;
263
+ };
244
264
  function SimpleLine(props) {
245
265
  var secondAxisField = props.secondAxisField,
246
266
  fill = props.fill,
247
267
  className = props.className;
248
268
  var isClient = useIsClient();
269
+ var key = useKey(props.secondAxisField);
249
270
  useEffect(function () {
250
271
  Chart.register(ChartAreaPlugin, CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip, Filler, Legend);
251
272
  }, []);
@@ -265,6 +286,7 @@ function SimpleLine(props) {
265
286
  return React.createElement("div", {
266
287
  className: className
267
288
  }, React.createElement(Line, {
289
+ key: key,
268
290
  options: deepmerge.all([].concat(options, [secondAxisField ? {
269
291
  scales: {
270
292
  y: {
@@ -290,7 +312,7 @@ function SimpleScatter(props) {
290
312
  var className = props.className;
291
313
  var isClient = useIsClient();
292
314
  useEffect(function () {
293
- Chart.register(ChartAreaPlugin, LinearScale, PointElement, LineElement, Tooltip, Legend);
315
+ Chart.register(ChartAreaPlugin, LinearScale, PointElement, LineElement, Tooltip, Legend, Title);
294
316
  }, []);
295
317
  if (!isClient) {
296
318
  return null;
@@ -300,7 +322,6 @@ function SimpleScatter(props) {
300
322
  opacity: 1
301
323
  });
302
324
  var options = prepOptions(props);
303
- console.log("!!", normalized, options);
304
325
  return React.createElement("div", {
305
326
  className: className
306
327
  }, React.createElement(Scatter, {
@@ -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 }\n : {},\n title ? { title: { display: true, text: title } } : {},\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 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 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 } 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\nexport function SimpleLine(props: SimpleLineProps) {\n const { secondAxisField, fill, className } = props;\n const isClient = useIsClient();\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 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 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 interface SimpleScatterProps extends 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 );\n }, []);\n if (!isClient) {\n return null;\n }\n const normalized = prepData(props, { isScatter: true, opacity: 1 });\n const options = prepOptions(props);\n console.log(\"!!\", normalized, options);\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 },\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: (props) => props.type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: (props) => props.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","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","plugins","legend","position","horizOptions","indexAxis","SimpleBar","props","_props$direction","direction","className","isClient","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","normalized","React","Bar","deepmerge","all","concat","SimpleLine","secondAxisField","fill","PointElement","LineElement","Filler","pointRadius","yAxisID","Line","type","y1","grid","drawOnChartArea","SimpleScatter","console","log","Scatter","beginAtZero","SimpleChart","_props$type","fieldChoice","_props$data","simpleChartMeta","displayName","value","defaultValueHint","description","defaultExpr","JSON","stringify","region","revenue","spend","hidden","dir","toUpperCase","slice","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 }\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 },\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: (props) => props.type !== \"bar\",\n },\n stacked: {\n type: \"boolean\",\n hidden: (props) => props.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","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","defaultStyles","width","importName","importPath","registerSimpleChart","registerAll"],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare const stackedOptions: {
16
16
  };
17
17
  };
18
18
  export declare const vertOptions: {
19
+ indexAxis: "x";
19
20
  plugins: {
20
21
  legend: {
21
22
  position: "top";
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
2
  import { BaseChartProps } from "../common";
3
- export interface SimpleScatterProps extends BaseChartProps {
4
- }
3
+ export declare type SimpleScatterProps = BaseChartProps;
5
4
  export declare function SimpleScatter(props: SimpleScatterProps): React.JSX.Element | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/react-chartjs-2",
3
- "version": "1.0.67",
3
+ "version": "1.0.68",
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.122",
31
+ "@plasmicapp/data-sources": "0.1.123",
32
32
  "@plasmicapp/host": "1.0.168",
33
33
  "@size-limit/preset-small-lib": "^4.11.0",
34
34
  "@types/node": "^14.0.26",
@@ -52,5 +52,5 @@
52
52
  "dependencies": {
53
53
  "deepmerge": "^4.3.1"
54
54
  },
55
- "gitHead": "f5f3e09c3da6144db2fc7d18104c4bf070e65b44"
55
+ "gitHead": "6e966ef24adb9af472b56a5051faf2b8e6e04f12"
56
56
  }