@cubejs-backend/server-core 0.29.50 → 0.29.53
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/CHANGELOG.md +27 -0
- package/dist/src/core/DriverDependencies.d.ts +1 -0
- package/dist/src/core/DriverDependencies.js +1 -0
- package/dist/src/core/DriverDependencies.js.map +1 -1
- package/dist/src/core/RefreshScheduler.js +1 -1
- package/dist/src/core/RefreshScheduler.js.map +1 -1
- package/dist/src/core/types.d.ts +1 -1
- package/dist/src/core/types.d.ts.map +1 -1
- package/package.json +10 -10
- package/playground/asset-manifest.json +11 -10
- package/playground/chart-renderers/react/index.html +1 -1
- package/playground/chart-renderers/react/static/css/main.f4f17f15.css +9 -0
- package/playground/chart-renderers/react/static/js/main.0caf8a08.js +2 -0
- package/playground/index.html +1 -1
- package/playground/static/js/11.a877b2f6.chunk.js +2 -0
- package/playground/static/js/{11.58591f1d.chunk.js.LICENSE.txt → 11.a877b2f6.chunk.js.LICENSE.txt} +0 -0
- package/playground/static/js/{12.9b92168e.chunk.js → 12.a4612a2d.chunk.js} +2 -2
- package/playground/static/js/{12.9b92168e.chunk.js.LICENSE.txt → 12.a4612a2d.chunk.js.LICENSE.txt} +0 -0
- package/playground/static/js/{19.e3889e4b.chunk.js → 19.4e2d9933.chunk.js} +1 -1
- package/playground/static/js/main.bafd8a7e.chunk.js +1 -0
- package/playground/static/js/{runtime-main.6eb60c79.js → runtime-main.091d2af0.js} +1 -1
- package/playground/static/media/materialize.102ab165.svg +7 -0
- package/playground/chart-renderers/react/static/css/2.a1e3eec8.chunk.css +0 -9
- package/playground/chart-renderers/react/static/css/main.85b3ce99.chunk.css +0 -1
- package/playground/chart-renderers/react/static/js/2.d64f5fb2.chunk.js +0 -2
- package/playground/chart-renderers/react/static/js/3.fe29d25e.chunk.js +0 -1
- package/playground/chart-renderers/react/static/js/main.439f0768.chunk.js +0 -1
- package/playground/chart-renderers/react/static/js/runtime-main.32b7ee91.js +0 -1
- package/playground/static/js/11.58591f1d.chunk.js +0 -2
- package/playground/static/js/main.d781bd64.chunk.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonpreact-charts"]=this["webpackJsonpreact-charts"]||[]).push([[3],{967:function(t,e,n){"use strict";n.r(e),n.d(e,"getCLS",(function(){return d})),n.d(e,"getFCP",(function(){return S})),n.d(e,"getFID",(function(){return F})),n.d(e,"getLCP",(function(){return k})),n.d(e,"getTTFB",(function(){return C}));var i,a,r,o,c=function(t,e){return{name:t,value:void 0===e?-1:e,delta:0,entries:[],id:"v1-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},u=function(t,e){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){if("first-input"===t&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(t){return t.getEntries().map(e)}));return n.observe({type:t,buffered:!0}),n}}catch(t){}},s=function(t,e){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(t(i),e&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},f=function(t){addEventListener("pageshow",(function(e){e.persisted&&t(e)}),!0)},m="function"==typeof WeakSet?new WeakSet:new Set,p=function(t,e,n){var i;return function(){e.value>=0&&(n||m.has(e)||"hidden"===document.visibilityState)&&(e.delta=e.value-(i||0),(e.delta||void 0===i)&&(i=e.value,t(e)))}},d=function(t,e){var n,i=c("CLS",0),a=function(t){t.hadRecentInput||(i.value+=t.value,i.entries.push(t),n())},r=u("layout-shift",a);r&&(n=p(t,i,e),s((function(){r.takeRecords().map(a),n()})),f((function(){i=c("CLS",0),n=p(t,i,e)})))},v=-1,l=function(){return"hidden"===document.visibilityState?0:1/0},h=function(){s((function(t){var e=t.timeStamp;v=e}),!0)},g=function(){return v<0&&(v=l(),h(),f((function(){setTimeout((function(){v=l(),h()}),0)}))),{get timeStamp(){return v}}},S=function(t,e){var n,i=g(),a=c("FCP"),r=function(t){"first-contentful-paint"===t.name&&(s&&s.disconnect(),t.startTime<i.timeStamp&&(a.value=t.startTime,a.entries.push(t),m.add(a),n()))},o=performance.getEntriesByName("first-contentful-paint")[0],s=o?null:u("paint",r);(o||s)&&(n=p(t,a,e),o&&r(o),f((function(i){a=c("FCP"),n=p(t,a,e),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,m.add(a),n()}))}))})))},y={passive:!0,capture:!0},E=new Date,w=function(t,e){i||(i=e,a=t,r=new Date,b(removeEventListener),L())},L=function(){if(a>=0&&a<r-E){var t={entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+a};o.forEach((function(e){e(t)})),o=[]}},T=function(t){if(t.cancelable){var e=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,e){var n=function(){w(t,e),a()},i=function(){a()},a=function(){removeEventListener("pointerup",n,y),removeEventListener("pointercancel",i,y)};addEventListener("pointerup",n,y),addEventListener("pointercancel",i,y)}(e,t):w(e,t)}},b=function(t){["mousedown","keydown","touchstart","pointerdown"].forEach((function(e){return t(e,T,y)}))},F=function(t,e){var n,r=g(),d=c("FID"),v=function(t){t.startTime<r.timeStamp&&(d.value=t.processingStart-t.startTime,d.entries.push(t),m.add(d),n())},l=u("first-input",v);n=p(t,d,e),l&&s((function(){l.takeRecords().map(v),l.disconnect()}),!0),l&&f((function(){var r;d=c("FID"),n=p(t,d,e),o=[],a=-1,i=null,b(addEventListener),r=v,o.push(r),L()}))},k=function(t,e){var n,i=g(),a=c("LCP"),r=function(t){var e=t.startTime;e<i.timeStamp&&(a.value=e,a.entries.push(t)),n()},o=u("largest-contentful-paint",r);if(o){n=p(t,a,e);var d=function(){m.has(a)||(o.takeRecords().map(r),o.disconnect(),m.add(a),n())};["keydown","click"].forEach((function(t){addEventListener(t,d,{once:!0,capture:!0})})),s(d,!0),f((function(i){a=c("LCP"),n=p(t,a,e),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,m.add(a),n()}))}))}))}},C=function(t){var e,n=c("TTFB");e=function(){try{var e=performance.getEntriesByType("navigation")[0]||function(){var t=performance.timing,e={entryType:"navigation",startTime:0};for(var n in t)"navigationStart"!==n&&"toJSON"!==n&&(e[n]=Math.max(t[n]-t.navigationStart,0));return e}();if(n.value=n.delta=e.responseStart,n.value<0)return;n.entries=[e],t(n)}catch(t){}},"complete"===document.readyState?setTimeout(e,0):addEventListener("pageshow",e)}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonpreact-charts"]=this["webpackJsonpreact-charts"]||[]).push([[0],{663:function(e,n,t){},809:function(e,n,t){},953:function(e,n,t){"use strict";t.r(n);var r={};t.r(r),t.d(r,"getChartComponent",(function(){return v})),t.d(r,"getCommon",(function(){return h})),t.d(r,"getImports",(function(){return g}));var a={};t.r(a),t.d(a,"getChartComponent",(function(){return y})),t.d(a,"getCommon",(function(){return C})),t.d(a,"getImports",(function(){return x}));var o={};t.r(o),t.d(o,"getChartComponent",(function(){return O})),t.d(o,"getCommon",(function(){return R})),t.d(o,"getImports",(function(){return k}));var i={};t.r(i),t.d(i,"getChartComponent",(function(){return A})),t.d(i,"getCommon",(function(){return E})),t.d(i,"getImports",(function(){return D}));var s=t(0),l=t.n(s),u=t(37),c=t.n(u),d=(t(663),t(17)),m=t(281),p=t(282),f=(t(808),t(809),t(29)),b=["import React from 'react';","import { Chart, Axis, Tooltip, Geom, PieChart } from 'bizcharts';","import { useDeepCompareMemo } from 'use-deep-compare';","import { Row, Col, Statistic, Table } from 'antd';"];function v(e){return"line"===e?"return <LineChartRenderer resultSet={resultSet} />;\n":"bar"===e?"return <BarChartRenderer resultSet={resultSet} pivotConfig={pivotConfig} />;\n":"area"===e?"return <AreaChartRenderer resultSet={resultSet} />;\n":"pie"===e?"return <PieChartRenderer resultSet={resultSet} />;\n":"number"===e?'return (\n <Row\n type="flex"\n justify="center"\n align="middle"\n style={{\n height: \'100%\',\n }}\n >\n <Col>\n {resultSet.seriesNames().map((s) => (\n <Statistic value={resultSet.totalRow()[s.key]} />\n ))}\n </Col>\n </Row>\n);\n':"height"===e?"":"table"===e?"return <TableRenderer resultSet={resultSet} pivotConfig={pivotConfig} />;\n":void 0}function h(){return'const stackedChartData = (resultSet) => {\n const data = resultSet\n .pivot()\n .map(({ xValues, yValuesArray }) =>\n yValuesArray.map(([yValues, m]) => ({\n x: resultSet.axisValuesString(xValues, \', \'),\n color: resultSet.axisValuesString(yValues, \', \'),\n measure: m && Number.parseFloat(m),\n }))\n )\n .reduce((a, b) => a.concat(b), []);\n return data;\n};\n\nconst LineChartRenderer = ({ resultSet }) => {\n const data = useDeepCompareMemo(\n () => stackedChartData(resultSet),\n [resultSet]\n );\n return (\n <Chart\n scale={{\n x: {\n tickCount: 8,\n },\n }}\n autoFit\n height={400}\n data={data}\n forceFit\n >\n <Axis name="x" />\n <Axis name="measure" />\n <Tooltip\n crosshairs={{\n type: \'y\',\n }}\n />\n <Geom type="line" position="x*measure" size={2} color="color" />\n </Chart>\n );\n};\n\nconst BarChartRenderer = ({ resultSet, pivotConfig }) => {\n const data = useDeepCompareMemo(\n () => stackedChartData(resultSet),\n [resultSet.serialize()]\n );\n const stacked = !(pivotConfig.x || []).includes(\'measures\');\n return (\n <Chart\n scale={{\n x: {\n tickCount: 8,\n },\n }}\n autoFit\n height={400}\n data={data}\n forceFit\n >\n <Axis name="x" />\n <Axis name="measure" />\n <Tooltip />\n <Geom\n type="interval"\n position="x*measure"\n color="color"\n adjust={stacked ? \'stack\' : \'dodge\'}\n />\n </Chart>\n );\n};\n\nconst AreaChartRenderer = ({ resultSet }) => {\n const data = useDeepCompareMemo(\n () => stackedChartData(resultSet),\n [resultSet.serialize()]\n );\n return (\n <Chart\n scale={{\n x: {\n tickCount: 8,\n },\n }}\n autoFit\n height={400}\n data={data}\n forceFit\n >\n <Axis name="x" />\n <Axis name="measure" />\n <Tooltip\n crosshairs={{\n type: \'y\',\n }}\n />\n <Geom\n type="area"\n adjust="stack"\n position="x*measure"\n size={2}\n color="color"\n />\n </Chart>\n );\n};\n\nconst PieChartRenderer = ({ resultSet }) => {\n const [data, angleField] = useDeepCompareMemo(() => {\n return [resultSet.chartPivot(), resultSet.series()];\n }, [resultSet]);\n return (\n <PieChart\n data={data}\n radius={0.8}\n angleField={angleField[0].key}\n colorField="x"\n label={{\n visible: true,\n offset: 20,\n }}\n legend={{\n position: \'bottom\',\n }}\n />\n );\n};\n\nconst formatTableData = (columns, data) => {\n function flatten(columns = []) {\n return columns.reduce((memo, column) => {\n if (column.children) {\n return [...memo, ...flatten(column.children)];\n }\n\n return [...memo, column];\n }, []);\n }\n\n const typeByIndex = flatten(columns).reduce((memo, column) => {\n return { ...memo, [column.dataIndex]: column };\n }, {});\n\n function formatValue(value, { type, format } = {}) {\n if (value == undefined) {\n return value;\n }\n\n if (type === \'boolean\') {\n if (typeof value === \'boolean\') {\n return value.toString();\n } else if (typeof value === \'number\') {\n return Boolean(value).toString();\n }\n\n return value;\n }\n\n if (type === \'number\' && format === \'percent\') {\n return [parseFloat(value).toFixed(2), \'%\'].join(\'\');\n }\n\n return value.toString();\n }\n\n function format(row) {\n return Object.fromEntries(\n Object.entries(row).map(([dataIndex, value]) => {\n return [dataIndex, formatValue(value, typeByIndex[dataIndex])];\n })\n );\n }\n\n return data.map(format);\n};\n\nconst TableRenderer = ({ resultSet, pivotConfig }) => {\n const [tableColumns, dataSource] = useDeepCompareMemo(() => {\n const columns = resultSet.tableColumns(pivotConfig);\n return [\n columns,\n formatTableData(columns, resultSet.tablePivot(pivotConfig)),\n ];\n }, [resultSet, pivotConfig]);\n return (\n <Table pagination={false} columns={tableColumns} dataSource={dataSource} />\n );\n};\n'}function g(){return b}var j=["import React from 'react';","import { CartesianGrid, PieChart, Pie, Cell, AreaChart, Area, XAxis, YAxis, Tooltip, ResponsiveContainer, Legend, BarChart, Bar, LineChart, Line } from 'recharts';","import { Row, Col, Statistic, Table } from 'antd';","import { useDeepCompareMemo } from 'use-deep-compare';"];function y(e){return"line"===e?'return (\n <CartesianChart resultSet={resultSet} ChartComponent={LineChart}>\n {resultSet.seriesNames().map((series, i) => (\n <Line\n key={series.key}\n stackId="a"\n dataKey={series.key}\n name={series.title}\n stroke={colors[i]}\n />\n ))}\n </CartesianChart>\n);\n':"bar"===e?'return (\n <CartesianChart resultSet={resultSet} ChartComponent={BarChart}>\n {resultSet.seriesNames().map((series, i) => (\n <Bar\n key={series.key}\n stackId="a"\n dataKey={series.key}\n name={series.title}\n fill={colors[i]}\n />\n ))}\n </CartesianChart>\n);\n':"area"===e?'return (\n <CartesianChart resultSet={resultSet} ChartComponent={AreaChart}>\n {resultSet.seriesNames().map((series, i) => (\n <Area\n key={series.key}\n stackId="a"\n dataKey={series.key}\n name={series.title}\n stroke={colors[i]}\n fill={colors[i]}\n />\n ))}\n </CartesianChart>\n);\n':"pie"===e?'return (\n <ResponsiveContainer width="100%" height={350}>\n <PieChart>\n <Pie\n isAnimationActive={false}\n data={resultSet.chartPivot()}\n nameKey="x"\n dataKey={resultSet.seriesNames()[0].key}\n fill="#8884d8"\n >\n {resultSet.chartPivot().map((e, index) => (\n <Cell key={index} fill={colors[index % colors.length]} />\n ))}\n </Pie>\n <Legend />\n <Tooltip />\n </PieChart>\n </ResponsiveContainer>\n);\n':"number"===e?'return (\n <Row\n type="flex"\n justify="center"\n align="middle"\n style={{\n height: \'100%\',\n }}\n >\n <Col>\n {resultSet.seriesNames().map((s) => (\n <Statistic value={resultSet.totalRow()[s.key]} />\n ))}\n </Col>\n </Row>\n);\n':"height"===e?"":"table"===e?"return <TableRenderer resultSet={resultSet} pivotConfig={pivotConfig} />;\n":void 0}function C(){return"const CartesianChart = ({ resultSet, children, ChartComponent }) => (\n <ResponsiveContainer width=\"100%\" height={350}>\n <ChartComponent data={resultSet.chartPivot()}>\n <XAxis dataKey=\"x\" />\n <YAxis />\n <CartesianGrid />\n {children}\n <Legend />\n <Tooltip />\n </ChartComponent>\n </ResponsiveContainer>\n);\n\nconst colors = ['#FF6492', '#141446', '#7A77FF'];\n\nconst stackedChartData = (resultSet) => {\n const data = resultSet\n .pivot()\n .map(({ xValues, yValuesArray }) =>\n yValuesArray.map(([yValues, m]) => ({\n x: resultSet.axisValuesString(xValues, ', '),\n color: resultSet.axisValuesString(yValues, ', '),\n measure: m && Number.parseFloat(m),\n }))\n )\n .reduce((a, b) => a.concat(b), []);\n return data;\n};\n\nconst formatTableData = (columns, data) => {\n function flatten(columns = []) {\n return columns.reduce((memo, column) => {\n if (column.children) {\n return [...memo, ...flatten(column.children)];\n }\n\n return [...memo, column];\n }, []);\n }\n\n const typeByIndex = flatten(columns).reduce((memo, column) => {\n return { ...memo, [column.dataIndex]: column };\n }, {});\n\n function formatValue(value, { type, format } = {}) {\n if (value == undefined) {\n return value;\n }\n\n if (type === 'boolean') {\n if (typeof value === 'boolean') {\n return value.toString();\n } else if (typeof value === 'number') {\n return Boolean(value).toString();\n }\n\n return value;\n }\n\n if (type === 'number' && format === 'percent') {\n return [parseFloat(value).toFixed(2), '%'].join('');\n }\n\n return value.toString();\n }\n\n function format(row) {\n return Object.fromEntries(\n Object.entries(row).map(([dataIndex, value]) => {\n return [dataIndex, formatValue(value, typeByIndex[dataIndex])];\n })\n );\n }\n\n return data.map(format);\n};\n\nconst TableRenderer = ({ resultSet, pivotConfig }) => {\n const [tableColumns, dataSource] = useDeepCompareMemo(() => {\n const columns = resultSet.tableColumns(pivotConfig);\n return [\n columns,\n formatTableData(columns, resultSet.tablePivot(pivotConfig)),\n ];\n }, [resultSet, pivotConfig]);\n return (\n <Table pagination={false} columns={tableColumns} dataSource={dataSource} />\n );\n};\n"}function x(){return j}var S=["import React from 'react';","import { Line, Bar, Pie } from 'react-chartjs-2';","import { useDeepCompareMemo } from 'use-deep-compare';","import { Row, Col, Statistic, Table } from 'antd';"];function O(e){return"line"===e?"return (\n <LineChartRenderer\n resultSet={resultSet}\n onDrilldownRequested={onDrilldownRequested}\n />\n);\n":"bar"===e?"return (\n <BarChartRenderer\n resultSet={resultSet}\n pivotConfig={pivotConfig}\n onDrilldownRequested={onDrilldownRequested}\n />\n);\n":"area"===e?"return (\n <AreaChartRenderer\n resultSet={resultSet}\n onDrilldownRequested={onDrilldownRequested}\n />\n);\n":"pie"===e?"return (\n <PieChartRenderer\n resultSet={resultSet}\n onDrilldownRequested={onDrilldownRequested}\n />\n);\n":"number"===e?'return (\n <Row\n type="flex"\n justify="center"\n align="middle"\n style={{\n height: \'100%\',\n }}\n >\n <Col>\n {resultSet.seriesNames().map((s) => (\n <Statistic value={resultSet.totalRow()[s.key]} />\n ))}\n </Col>\n </Row>\n);\n':"height"===e?"":"table"===e?"return <TableRenderer resultSet={resultSet} pivotConfig={pivotConfig} />;\n":void 0}function R(){return"const COLORS_SERIES = [\n '#5b8ff9',\n '#5ad8a6',\n '#5e7092',\n '#f6bd18',\n '#6f5efa',\n '#6ec8ec',\n '#945fb9',\n '#ff9845',\n '#299796',\n '#fe99c3',\n];\nconst PALE_COLORS_SERIES = [\n '#d7e3fd',\n '#daf5e9',\n '#d6dbe4',\n '#fdeecd',\n '#dad8fe',\n '#dbf1fa',\n '#e4d7ed',\n '#ffe5d2',\n '#cce5e4',\n '#ffe6f0',\n];\nconst commonOptions = {\n maintainAspectRatio: false,\n interaction: {\n intersect: false,\n },\n plugins: {\n legend: {\n position: 'bottom',\n },\n },\n scales: {\n x: {\n ticks: {\n autoSkip: true,\n maxRotation: 0,\n padding: 12,\n minRotation: 0,\n },\n },\n },\n};\n\nconst useDrilldownCallback = ({\n datasets,\n labels,\n onDrilldownRequested,\n pivotConfig,\n}) => {\n return React.useCallback(\n (elements) => {\n if (elements.length <= 0) return;\n const { datasetIndex, index } = elements[0];\n const { yValues } = datasets[datasetIndex];\n const xValues = [labels[index]];\n\n if (typeof onDrilldownRequested === 'function') {\n onDrilldownRequested(\n {\n xValues,\n yValues,\n },\n pivotConfig\n );\n }\n },\n [datasets, labels, onDrilldownRequested]\n );\n};\n\nconst LineChartRenderer = ({ resultSet, onDrilldownRequested }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n yValues: [s.key],\n borderColor: COLORS_SERIES[index],\n pointRadius: 1,\n tension: 0.1,\n pointHoverRadius: 1,\n borderWidth: 2,\n tickWidth: 1,\n fill: false,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n const getElementAtEvent = useDrilldownCallback({\n datasets: data.datasets,\n labels: data.labels,\n onDrilldownRequested,\n });\n return (\n <Line\n type=\"line\"\n data={data}\n options={commonOptions}\n getElementAtEvent={getElementAtEvent}\n />\n );\n};\n\nconst BarChartRenderer = ({ resultSet, pivotConfig, onDrilldownRequested }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n yValues: [s.key],\n backgroundColor: COLORS_SERIES[index],\n fill: false,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n const stacked = !(pivotConfig.x || []).includes('measures');\n const options = {\n ...commonOptions,\n scales: {\n x: { ...commonOptions.scales.x, stacked },\n y: { ...commonOptions.scales.y, stacked },\n },\n };\n const getElementAtEvent = useDrilldownCallback({\n datasets: data.datasets,\n labels: data.labels,\n onDrilldownRequested,\n pivotConfig,\n });\n return (\n <Bar\n type=\"bar\"\n data={data}\n options={options}\n getElementAtEvent={getElementAtEvent}\n />\n );\n};\n\nconst AreaChartRenderer = ({ resultSet, onDrilldownRequested }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n yValues: [s.key],\n pointRadius: 1,\n pointHoverRadius: 1,\n backgroundColor: PALE_COLORS_SERIES[index],\n borderWidth: 0,\n fill: true,\n tension: 0,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n const options = {\n ...commonOptions,\n scales: {\n ...commonOptions.scales,\n y: {\n stacked: true,\n },\n },\n };\n const getElementAtEvent = useDrilldownCallback({\n datasets: data.datasets,\n labels: data.labels,\n onDrilldownRequested,\n });\n return (\n <Line\n type=\"area\"\n data={data}\n options={options}\n getElementAtEvent={getElementAtEvent}\n />\n );\n};\n\nconst PieChartRenderer = ({ resultSet, onDrilldownRequested }) => {\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets: resultSet.series().map((s) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n yValues: [s.key],\n backgroundColor: COLORS_SERIES,\n hoverBackgroundColor: COLORS_SERIES,\n })),\n };\n const getElementAtEvent = useDrilldownCallback({\n datasets: data.datasets,\n labels: data.labels,\n onDrilldownRequested,\n });\n return (\n <Pie\n type=\"pie\"\n data={data}\n options={commonOptions}\n getElementAtEvent={getElementAtEvent}\n />\n );\n};\n\nconst formatTableData = (columns, data) => {\n function flatten(columns = []) {\n return columns.reduce((memo, column) => {\n if (column.children) {\n return [...memo, ...flatten(column.children)];\n }\n\n return [...memo, column];\n }, []);\n }\n\n const typeByIndex = flatten(columns).reduce((memo, column) => {\n return { ...memo, [column.dataIndex]: column };\n }, {});\n\n function formatValue(value, { type, format } = {}) {\n if (value == undefined) {\n return value;\n }\n\n if (type === 'boolean') {\n if (typeof value === 'boolean') {\n return value.toString();\n } else if (typeof value === 'number') {\n return Boolean(value).toString();\n }\n\n return value;\n }\n\n if (type === 'number' && format === 'percent') {\n return [parseFloat(value).toFixed(2), '%'].join('');\n }\n\n return value.toString();\n }\n\n function format(row) {\n return Object.fromEntries(\n Object.entries(row).map(([dataIndex, value]) => {\n return [dataIndex, formatValue(value, typeByIndex[dataIndex])];\n })\n );\n }\n\n return data.map(format);\n};\n\nconst TableRenderer = ({ resultSet, pivotConfig }) => {\n const [tableColumns, dataSource] = useDeepCompareMemo(() => {\n const columns = resultSet.tableColumns(pivotConfig);\n return [\n columns,\n formatTableData(columns, resultSet.tablePivot(pivotConfig)),\n ];\n }, [resultSet, pivotConfig]);\n return (\n <Table pagination={false} columns={tableColumns} dataSource={dataSource} />\n );\n};\n"}function k(){return S}var w=["import React from 'react';","import * as d3 from 'd3';","import { Row, Col, Statistic, Table } from 'antd';","import { useDeepCompareMemo } from 'use-deep-compare';"];function A(e){return"line"===e?'return <D3Chart type="line" {...props} />;\n':"bar"===e?'return <D3Chart type="bar" {...props} />;\n':"area"===e?'return <D3Chart type="area" {...props} />;\n':"pie"===e?'return <D3Chart type="pie" {...props} />;\n':"number"===e?'return (\n <Row\n type="flex"\n justify="center"\n align="middle"\n style={{\n height: \'100%\',\n }}\n >\n <Col>\n {resultSet.seriesNames().map((s) => (\n <Statistic value={resultSet.totalRow()[s.key]} />\n ))}\n </Col>\n </Row>\n);\n':"height"===e?"":"table"===e?"return <TableRenderer resultSet={resultSet} pivotConfig={pivotConfig} />;\n":void 0}function E(){return"const COLORS_SERIES = [\n '#7A77FF',\n '#141446',\n '#FF6492',\n '#727290',\n '#43436B',\n '#BEF3BE',\n '#68B68C',\n '#FFE7AA',\n '#B2A58D',\n '#64C8E0',\n];\nconst CHART_HEIGHT = 300;\n\nconst drawPieChart = (node, resultSet, options) => {\n const data = resultSet.series()[0].series.map((s) => s.value);\n const data_ready = d3.pie()(data);\n d3.select(node).html(''); // The radius of the pieplot is half the width or half the height (smallest one).\n\n const radius = CHART_HEIGHT / 2 - 40; // Seprate container to center align pie chart\n\n const svg = d3\n .select(node)\n .append('svg')\n .attr('width', node.clientWidth)\n .attr('height', CHART_HEIGHT)\n .append('g')\n .attr(\n 'transform',\n 'translate(' + node.clientWidth / 2 + ',' + CHART_HEIGHT / 2 + ')'\n );\n svg\n .selectAll('pieArcs')\n .data(data_ready)\n .enter()\n .append('path')\n .attr('d', d3.arc().innerRadius(0).outerRadius(radius))\n .attr('fill', (d) => COLORS_SERIES[d.index]);\n const size = 12;\n const labels = resultSet.series()[0].series.map((s) => s.x);\n svg\n .selectAll('myrect')\n .data(labels)\n .enter()\n .append('rect')\n .attr('x', 150)\n .attr('y', function (d, i) {\n return -50 + i * (size + 5);\n })\n .attr('width', size)\n .attr('height', size)\n .style('fill', (d, i) => COLORS_SERIES[i]);\n svg\n .selectAll('mylabels')\n .data(labels)\n .enter()\n .append('text')\n .attr('x', 150 + size * 1.2)\n .attr('y', function (d, i) {\n return -50 + i * (size + 5) + size / 2;\n })\n .text(function (d) {\n return d;\n })\n .attr('text-anchor', 'left')\n .attr('font-size', '12px')\n .style('alignment-baseline', 'middle');\n};\n\nconst drawChart = (node, resultSet, chartType, options = {}) => {\n if (chartType === 'pie') {\n return drawPieChart(node, resultSet, options);\n }\n\n const margin = {\n top: 10,\n right: 30,\n bottom: 30,\n left: 60,\n },\n width = node.clientWidth - margin.left - margin.right,\n height = CHART_HEIGHT - margin.top - margin.bottom;\n d3.select(node).html('');\n const svg = d3\n .select(node)\n .append('svg')\n .attr('width', width + margin.left + margin.right)\n .attr('height', height + margin.top + margin.bottom)\n .append('g')\n .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');\n const keys = resultSet.seriesNames(options.pivotConfig).map((s) => s.key);\n let data, maxData;\n\n if (chartType === 'line') {\n data = resultSet.series(options.pivotConfig).map((series) => ({\n key: series.key,\n values: series.series,\n }));\n maxData = d3.max(data.map((s) => d3.max(s.values, (i) => i.value)));\n } else {\n data = d3.stack().keys(keys)(resultSet.chartPivot(options.pivotConfig));\n maxData = d3.max(data.map((s) => d3.max(s, (i) => i[1])));\n }\n\n const color = d3.scaleOrdinal().domain(keys).range(COLORS_SERIES);\n let x;\n\n if (chartType === 'bar') {\n x = d3\n .scaleBand()\n .range([0, width])\n .domain(resultSet.chartPivot(options.pivotConfig).map((c) => c.x))\n .padding(0.3);\n } else {\n x = d3\n .scaleTime()\n .domain(\n d3.extent(resultSet.chartPivot(options.pivotConfig), (c) =>\n d3.isoParse(c.x)\n )\n )\n .nice()\n .range([0, width]);\n }\n\n svg\n .append('g')\n .attr('transform', 'translate(0,' + height + ')')\n .call(d3.axisBottom(x));\n const y = d3.scaleLinear().domain([0, maxData]).range([height, 0]);\n svg.append('g').call(d3.axisLeft(y));\n\n if (chartType === 'line') {\n svg\n .selectAll('.line')\n .data(data)\n .enter()\n .append('path')\n .attr('fill', 'none')\n .attr('stroke', (d) => color(d.key))\n .attr('stroke-width', 1.5)\n .attr('d', (d) => {\n return d3\n .line()\n .x((d) => x(d3.isoParse(d.x)))\n .y((d) => y(+d.value))(d.values);\n });\n } else if (chartType === 'area') {\n svg\n .selectAll('mylayers')\n .data(data)\n .enter()\n .append('path')\n .style('fill', (d) => color(d.key))\n .attr(\n 'd',\n d3\n .area()\n .x((d) => x(d3.isoParse(d.data.x)))\n .y0((d) => y(d[0]))\n .y1((d) => y(d[1]))\n );\n } else {\n svg\n .append('g')\n .selectAll('g') // Enter in the stack data = loop key per key = group per group\n .data(data)\n .enter()\n .append('g')\n .attr('fill', (d) => color(d.key))\n .selectAll('rect') // enter a second time = loop subgroup per subgroup to add all rectangles\n .data((d) => d)\n .enter()\n .append('rect')\n .attr('x', (d) => x(d.data.x))\n .attr('y', (d) => y(d[1]))\n .attr('height', (d) => y(d[0]) - y(d[1]))\n .attr('width', x.bandwidth());\n }\n};\n\nconst D3Chart = ({ resultSet, type, ...props }) => (\n <div ref={(el) => el && drawChart(el, resultSet, type, props)} />\n);\n\nconst formatTableData = (columns, data) => {\n function flatten(columns = []) {\n return columns.reduce((memo, column) => {\n if (column.children) {\n return [...memo, ...flatten(column.children)];\n }\n\n return [...memo, column];\n }, []);\n }\n\n const typeByIndex = flatten(columns).reduce((memo, column) => {\n return { ...memo, [column.dataIndex]: column };\n }, {});\n\n function formatValue(value, { type, format } = {}) {\n if (value == undefined) {\n return value;\n }\n\n if (type === 'boolean') {\n if (typeof value === 'boolean') {\n return value.toString();\n } else if (typeof value === 'number') {\n return Boolean(value).toString();\n }\n\n return value;\n }\n\n if (type === 'number' && format === 'percent') {\n return [parseFloat(value).toFixed(2), '%'].join('');\n }\n\n return value.toString();\n }\n\n function format(row) {\n return Object.fromEntries(\n Object.entries(row).map(([dataIndex, value]) => {\n return [dataIndex, formatValue(value, typeByIndex[dataIndex])];\n })\n );\n }\n\n return data.map(format);\n};\n\nconst TableRenderer = ({ resultSet, pivotConfig }) => {\n const [tableColumns, dataSource] = useDeepCompareMemo(() => {\n const columns = resultSet.tableColumns(pivotConfig);\n return [\n columns,\n formatTableData(columns, resultSet.tablePivot(pivotConfig)),\n ];\n }, [resultSet, pivotConfig]);\n return (\n <Table pagination={false} columns={tableColumns} dataSource={dataSource} />\n );\n};\n"}function D(){return w}var F={bizchartsCharts:r,rechartsCharts:a,chartjsCharts:o,d3Charts:i},I=["react-dom","@cubejs-client/core","@cubejs-client/react","antd"];var T=t(64),P=t(7),q=function(e){var n=e.queryId,t=e.renderFunction,r=e.query,a=e.pivotConfig,o=e.refetchCounter,i=(0,(window.parent.window.__cubejsPlayground||{}).forQuery)(n),l=i.onQueryStart,u=i.onQueryLoad,c=i.onQueryProgress,d=i.onQueryDrilldown,f=Object(p.b)(r),b=f.isLoading,v=f.error,h=f.resultSet,g=f.progress,j=f.refetch;return Object(T.a)((function(){b&&Object(m.b)(r)&&"function"===typeof l&&l(n)}),[b,r]),Object(s.useEffect)((function(){o>0&&j()}),[o]),Object(s.useEffect)((function(){b||"function"!==typeof u||u({resultSet:h,error:v}),"function"===typeof c&&c(g)}),[v,b,h,g]),!h||v?null:t({resultSet:h,pivotConfig:a,onDrilldownRequested:function(e,n){var t=e.xValues,r=e.yValues;"function"===typeof d&&d(h.drillDown({xValues:t,yValues:r}),n)}})},V=function(e){var n=e.queryId,t=e.renderFunction,r=e.query,a=e.pivotConfig,o=void 0===a?null:a,i=e.refetchCounter;return Object(P.jsx)(q,{queryId:n,renderFunction:t,query:r,pivotConfig:o,refetchCounter:i})},B=t(34),L=t(32),_=t(57),N=t(960),z=t(964),H=t(965),M=t(961),G=function(e){var n=e.resultSet,t=e.children,r=e.ChartComponent;return Object(P.jsx)(_.l,{width:"100%",height:350,children:Object(P.jsxs)(r,{data:n.chartPivot(),children:[Object(P.jsx)(_.n,{dataKey:"x"}),Object(P.jsx)(_.o,{}),Object(P.jsx)(_.e,{}),t,Object(P.jsx)(_.g,{}),Object(P.jsx)(_.m,{})]})})},K=["#FF6492","#141446","#7A77FF"],W=function(e,n){var t=function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return n.reduce((function(n,t){return t.children?[].concat(Object(f.a)(n),Object(f.a)(e(t.children))):[].concat(Object(f.a)(n),[t])}),[])}(e).reduce((function(e,n){return Object(L.a)(Object(L.a)({},e),{},Object(B.a)({},n.dataIndex,n))}),{});function r(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.type,r=n.format;return void 0==e?e:"boolean"===t?"boolean"===typeof e?e.toString():"number"===typeof e?Boolean(e).toString():e:"number"===t&&"percent"===r?[parseFloat(e).toFixed(2),"%"].join(""):e.toString()}return n.map((function(e){return Object.fromEntries(Object.entries(e).map((function(e){var n=Object(d.a)(e,2),a=n[0];return[a,r(n[1],t[a])]})))}))},Q=function(e){var n=e.resultSet,t=e.pivotConfig,r=Object(T.b)((function(){var e=n.tableColumns(t);return[e,W(e,n.tablePivot(t))]}),[n,t]),a=Object(d.a)(r,2),o=a[0],i=a[1];return Object(P.jsx)(N.a,{pagination:!1,columns:o,dataSource:i})},U={line:function(e){var n=e.resultSet;return Object(P.jsx)(G,{resultSet:n,ChartComponent:_.i,children:n.seriesNames().map((function(e,n){return Object(P.jsx)(_.h,{stackId:"a",dataKey:e.key,name:e.title,stroke:K[n]},e.key)}))})},bar:function(e){var n=e.resultSet;return Object(P.jsx)(G,{resultSet:n,ChartComponent:_.d,children:n.seriesNames().map((function(e,n){return Object(P.jsx)(_.c,{stackId:"a",dataKey:e.key,name:e.title,fill:K[n]},e.key)}))})},area:function(e){var n=e.resultSet;return Object(P.jsx)(G,{resultSet:n,ChartComponent:_.b,children:n.seriesNames().map((function(e,n){return Object(P.jsx)(_.a,{stackId:"a",dataKey:e.key,name:e.title,stroke:K[n],fill:K[n]},e.key)}))})},pie:function(e){var n=e.resultSet;return Object(P.jsx)(_.l,{width:"100%",height:350,children:Object(P.jsxs)(_.k,{children:[Object(P.jsx)(_.j,{isAnimationActive:!1,data:n.chartPivot(),nameKey:"x",dataKey:n.seriesNames()[0].key,fill:"#8884d8",children:n.chartPivot().map((function(e,n){return Object(P.jsx)(_.f,{fill:K[n%K.length]},n)}))}),Object(P.jsx)(_.g,{}),Object(P.jsx)(_.m,{})]})})},number:function(e){var n=e.resultSet;return Object(P.jsx)(z.a,{type:"flex",justify:"center",align:"middle",style:{height:"100%"},children:Object(P.jsx)(H.a,{children:n.seriesNames().map((function(e){return Object(P.jsx)(M.a,{value:n.totalRow()[e.key]})}))})})},table:function(e){var n=e.resultSet,t=e.pivotConfig;return Object(P.jsx)(Q,{resultSet:n,pivotConfig:t})}},J=t(66),X=function(e){return e.pivot().map((function(n){var t=n.xValues;return n.yValuesArray.map((function(n){var r=Object(d.a)(n,2),a=r[0],o=r[1];return{x:e.axisValuesString(t,", "),color:e.axisValuesString(a,", "),measure:o&&Number.parseFloat(o)}}))})).reduce((function(e,n){return e.concat(n)}),[])},Y=function(e){var n=e.resultSet,t=Object(T.b)((function(){return X(n)}),[n]);return Object(P.jsxs)(J.Chart,{scale:{x:{tickCount:8}},autoFit:!0,height:400,data:t,forceFit:!0,children:[Object(P.jsx)(J.Axis,{name:"x"}),Object(P.jsx)(J.Axis,{name:"measure"}),Object(P.jsx)(J.Tooltip,{crosshairs:{type:"y"}}),Object(P.jsx)(J.Geom,{type:"line",position:"x*measure",size:2,color:"color"})]})},Z=function(e){var n=e.resultSet,t=e.pivotConfig,r=Object(T.b)((function(){return X(n)}),[n.serialize()]),a=!(t.x||[]).includes("measures");return Object(P.jsxs)(J.Chart,{scale:{x:{tickCount:8}},autoFit:!0,height:400,data:r,forceFit:!0,children:[Object(P.jsx)(J.Axis,{name:"x"}),Object(P.jsx)(J.Axis,{name:"measure"}),Object(P.jsx)(J.Tooltip,{}),Object(P.jsx)(J.Geom,{type:"interval",position:"x*measure",color:"color",adjust:a?"stack":"dodge"})]})},$=function(e){var n=e.resultSet,t=Object(T.b)((function(){return X(n)}),[n.serialize()]);return Object(P.jsxs)(J.Chart,{scale:{x:{tickCount:8}},autoFit:!0,height:400,data:t,forceFit:!0,children:[Object(P.jsx)(J.Axis,{name:"x"}),Object(P.jsx)(J.Axis,{name:"measure"}),Object(P.jsx)(J.Tooltip,{crosshairs:{type:"y"}}),Object(P.jsx)(J.Geom,{type:"area",adjust:"stack",position:"x*measure",size:2,color:"color"})]})},ee=function(e){var n=e.resultSet,t=Object(T.b)((function(){return[n.chartPivot(),n.series()]}),[n]),r=Object(d.a)(t,2),a=r[0],o=r[1];return Object(P.jsx)(J.PieChart,{data:a,radius:.8,angleField:o[0].key,colorField:"x",label:{visible:!0,offset:20},legend:{position:"bottom"}})},ne=function(e,n){var t=function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return n.reduce((function(n,t){return t.children?[].concat(Object(f.a)(n),Object(f.a)(e(t.children))):[].concat(Object(f.a)(n),[t])}),[])}(e).reduce((function(e,n){return Object(L.a)(Object(L.a)({},e),{},Object(B.a)({},n.dataIndex,n))}),{});function r(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.type,r=n.format;return void 0==e?e:"boolean"===t?"boolean"===typeof e?e.toString():"number"===typeof e?Boolean(e).toString():e:"number"===t&&"percent"===r?[parseFloat(e).toFixed(2),"%"].join(""):e.toString()}return n.map((function(e){return Object.fromEntries(Object.entries(e).map((function(e){var n=Object(d.a)(e,2),a=n[0];return[a,r(n[1],t[a])]})))}))},te=function(e){var n=e.resultSet,t=e.pivotConfig,r=Object(T.b)((function(){var e=n.tableColumns(t);return[e,ne(e,n.tablePivot(t))]}),[n,t]),a=Object(d.a)(r,2),o=a[0],i=a[1];return Object(P.jsx)(N.a,{pagination:!1,columns:o,dataSource:i})},re={line:function(e){var n=e.resultSet;return Object(P.jsx)(Y,{resultSet:n})},bar:function(e){var n=e.resultSet,t=e.pivotConfig;return Object(P.jsx)(Z,{resultSet:n,pivotConfig:t})},area:function(e){var n=e.resultSet;return Object(P.jsx)($,{resultSet:n})},pie:function(e){var n=e.resultSet;return Object(P.jsx)(ee,{resultSet:n})},number:function(e){var n=e.resultSet;return Object(P.jsx)(z.a,{type:"flex",justify:"center",align:"middle",style:{height:"100%"},children:Object(P.jsx)(H.a,{children:n.seriesNames().map((function(e){return Object(P.jsx)(M.a,{value:n.totalRow()[e.key]})}))})})},table:function(e){var n=e.resultSet,t=e.pivotConfig;return Object(P.jsx)(te,{resultSet:n,pivotConfig:t})}},ae=t(565),oe=t(47),ie=["resultSet","type"],se=["#7A77FF","#141446","#FF6492","#727290","#43436B","#BEF3BE","#68B68C","#FFE7AA","#B2A58D","#64C8E0"],le=300,ue=function(e,n,t){var r=n.series()[0].series.map((function(e){return e.value})),a=oe.i()(r);oe.n(e).html("");var o=oe.n(e).append("svg").attr("width",e.clientWidth).attr("height",le).append("g").attr("transform","translate("+e.clientWidth/2+",150)");o.selectAll("pieArcs").data(a).enter().append("path").attr("d",oe.a().innerRadius(0).outerRadius(110)).attr("fill",(function(e){return se[e.index]}));var i=12,s=n.series()[0].series.map((function(e){return e.x}));o.selectAll("myrect").data(s).enter().append("rect").attr("x",150).attr("y",(function(e,n){return 17*n-50})).attr("width",i).attr("height",i).style("fill",(function(e,n){return se[n]})),o.selectAll("mylabels").data(s).enter().append("text").attr("x",164.4).attr("y",(function(e,n){return 17*n-50+6})).text((function(e){return e})).attr("text-anchor","left").attr("font-size","12px").style("alignment-baseline","middle")},ce=function(e){var n=e.resultSet,t=e.type,r=Object(ae.a)(e,ie);return Object(P.jsx)("div",{ref:function(e){return e&&function(e,n,t){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("pie"===t)return ue(e,n);var a={top:10,right:30,bottom:30,left:60},o=e.clientWidth-a.left-a.right,i=le-a.top-a.bottom;oe.n(e).html("");var s,l,u=oe.n(e).append("svg").attr("width",o+a.left+a.right).attr("height",i+a.top+a.bottom).append("g").attr("transform","translate("+a.left+","+a.top+")"),c=n.seriesNames(r.pivotConfig).map((function(e){return e.key}));"line"===t?(s=n.series(r.pivotConfig).map((function(e){return{key:e.key,values:e.series}})),l=oe.h(s.map((function(e){return oe.h(e.values,(function(e){return e.value}))})))):(s=oe.o().keys(c)(n.chartPivot(r.pivotConfig)),l=oe.h(s.map((function(e){return oe.h(e,(function(e){return e[1]}))}))));var d,m=oe.l().domain(c).range(se);d="bar"===t?oe.j().range([0,o]).domain(n.chartPivot(r.pivotConfig).map((function(e){return e.x}))).padding(.3):oe.m().domain(oe.e(n.chartPivot(r.pivotConfig),(function(e){return oe.f(e.x)}))).nice().range([0,o]),u.append("g").attr("transform","translate(0,"+i+")").call(oe.c(d));var p=oe.k().domain([0,l]).range([i,0]);u.append("g").call(oe.d(p)),"line"===t?u.selectAll(".line").data(s).enter().append("path").attr("fill","none").attr("stroke",(function(e){return m(e.key)})).attr("stroke-width",1.5).attr("d",(function(e){return oe.g().x((function(e){return d(oe.f(e.x))})).y((function(e){return p(+e.value)}))(e.values)})):"area"===t?u.selectAll("mylayers").data(s).enter().append("path").style("fill",(function(e){return m(e.key)})).attr("d",oe.b().x((function(e){return d(oe.f(e.data.x))})).y0((function(e){return p(e[0])})).y1((function(e){return p(e[1])}))):u.append("g").selectAll("g").data(s).enter().append("g").attr("fill",(function(e){return m(e.key)})).selectAll("rect").data((function(e){return e})).enter().append("rect").attr("x",(function(e){return d(e.data.x)})).attr("y",(function(e){return p(e[1])})).attr("height",(function(e){return p(e[0])-p(e[1])})).attr("width",d.bandwidth())}(e,n,t,r)}})},de=function(e,n){var t=function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return n.reduce((function(n,t){return t.children?[].concat(Object(f.a)(n),Object(f.a)(e(t.children))):[].concat(Object(f.a)(n),[t])}),[])}(e).reduce((function(e,n){return Object(L.a)(Object(L.a)({},e),{},Object(B.a)({},n.dataIndex,n))}),{});function r(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.type,r=n.format;return void 0==e?e:"boolean"===t?"boolean"===typeof e?e.toString():"number"===typeof e?Boolean(e).toString():e:"number"===t&&"percent"===r?[parseFloat(e).toFixed(2),"%"].join(""):e.toString()}return n.map((function(e){return Object.fromEntries(Object.entries(e).map((function(e){var n=Object(d.a)(e,2),a=n[0];return[a,r(n[1],t[a])]})))}))},me=function(e){var n=e.resultSet,t=e.pivotConfig,r=Object(T.b)((function(){var e=n.tableColumns(t);return[e,de(e,n.tablePivot(t))]}),[n,t]),a=Object(d.a)(r,2),o=a[0],i=a[1];return Object(P.jsx)(N.a,{pagination:!1,columns:o,dataSource:i})},pe={line:function(e){return Object(P.jsx)(ce,Object(L.a)({type:"line"},e))},bar:function(e){return Object(P.jsx)(ce,Object(L.a)({type:"bar"},e))},area:function(e){return Object(P.jsx)(ce,Object(L.a)({type:"area"},e))},pie:function(e){return Object(P.jsx)(ce,Object(L.a)({type:"pie"},e))},number:function(e){var n=e.resultSet;return Object(P.jsx)(z.a,{type:"flex",justify:"center",align:"middle",style:{height:"100%"},children:Object(P.jsx)(H.a,{children:n.seriesNames().map((function(e){return Object(P.jsx)(M.a,{value:n.totalRow()[e.key]})}))})})},table:function(e){var n=e.resultSet,t=e.pivotConfig;return Object(P.jsx)(me,{resultSet:n,pivotConfig:t})}},fe=t(216),be=["#5b8ff9","#5ad8a6","#5e7092","#f6bd18","#6f5efa","#6ec8ec","#945fb9","#ff9845","#299796","#fe99c3"],ve=["#d7e3fd","#daf5e9","#d6dbe4","#fdeecd","#dad8fe","#dbf1fa","#e4d7ed","#ffe5d2","#cce5e4","#ffe6f0"],he={maintainAspectRatio:!1,interaction:{intersect:!1},plugins:{legend:{position:"bottom"}},scales:{x:{ticks:{autoSkip:!0,maxRotation:0,padding:12,minRotation:0}}}},ge=function(e){var n=e.datasets,t=e.labels,r=e.onDrilldownRequested,a=e.pivotConfig;return l.a.useCallback((function(e){if(!(e.length<=0)){var o=e[0],i=o.datasetIndex,s=o.index,l=n[i].yValues,u=[t[s]];"function"===typeof r&&r({xValues:u,yValues:l},a)}}),[n,t,r])},je=function(e){var n=e.resultSet,t=e.onDrilldownRequested,r=Object(T.b)((function(){return n.series().map((function(e,n){return{label:e.title,data:e.series.map((function(e){return e.value})),yValues:[e.key],borderColor:be[n],pointRadius:1,tension:.1,pointHoverRadius:1,borderWidth:2,tickWidth:1,fill:!1}}))}),[n]),a={labels:n.categories().map((function(e){return e.x})),datasets:r},o=ge({datasets:a.datasets,labels:a.labels,onDrilldownRequested:t});return Object(P.jsx)(fe.b,{type:"line",data:a,options:he,getElementAtEvent:o})},ye=function(e){var n=e.resultSet,t=e.pivotConfig,r=e.onDrilldownRequested,a=Object(T.b)((function(){return n.series().map((function(e,n){return{label:e.title,data:e.series.map((function(e){return e.value})),yValues:[e.key],backgroundColor:be[n],fill:!1}}))}),[n]),o={labels:n.categories().map((function(e){return e.x})),datasets:a},i=!(t.x||[]).includes("measures"),s=Object(L.a)(Object(L.a)({},he),{},{scales:{x:Object(L.a)(Object(L.a)({},he.scales.x),{},{stacked:i}),y:Object(L.a)(Object(L.a)({},he.scales.y),{},{stacked:i})}}),l=ge({datasets:o.datasets,labels:o.labels,onDrilldownRequested:r,pivotConfig:t});return Object(P.jsx)(fe.a,{type:"bar",data:o,options:s,getElementAtEvent:l})},Ce=function(e){var n=e.resultSet,t=e.onDrilldownRequested,r=Object(T.b)((function(){return n.series().map((function(e,n){return{label:e.title,data:e.series.map((function(e){return e.value})),yValues:[e.key],pointRadius:1,pointHoverRadius:1,backgroundColor:ve[n],borderWidth:0,fill:!0,tension:0}}))}),[n]),a={labels:n.categories().map((function(e){return e.x})),datasets:r},o=Object(L.a)(Object(L.a)({},he),{},{scales:Object(L.a)(Object(L.a)({},he.scales),{},{y:{stacked:!0}})}),i=ge({datasets:a.datasets,labels:a.labels,onDrilldownRequested:t});return Object(P.jsx)(fe.b,{type:"area",data:a,options:o,getElementAtEvent:i})},xe=function(e){var n=e.resultSet,t=e.onDrilldownRequested,r={labels:n.categories().map((function(e){return e.x})),datasets:n.series().map((function(e){return{label:e.title,data:e.series.map((function(e){return e.value})),yValues:[e.key],backgroundColor:be,hoverBackgroundColor:be}}))},a=ge({datasets:r.datasets,labels:r.labels,onDrilldownRequested:t});return Object(P.jsx)(fe.c,{type:"pie",data:r,options:he,getElementAtEvent:a})},Se=function(e,n){var t=function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return n.reduce((function(n,t){return t.children?[].concat(Object(f.a)(n),Object(f.a)(e(t.children))):[].concat(Object(f.a)(n),[t])}),[])}(e).reduce((function(e,n){return Object(L.a)(Object(L.a)({},e),{},Object(B.a)({},n.dataIndex,n))}),{});function r(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.type,r=n.format;return void 0==e?e:"boolean"===t?"boolean"===typeof e?e.toString():"number"===typeof e?Boolean(e).toString():e:"number"===t&&"percent"===r?[parseFloat(e).toFixed(2),"%"].join(""):e.toString()}return n.map((function(e){return Object.fromEntries(Object.entries(e).map((function(e){var n=Object(d.a)(e,2),a=n[0];return[a,r(n[1],t[a])]})))}))},Oe=function(e){var n=e.resultSet,t=e.pivotConfig,r=Object(T.b)((function(){var e=n.tableColumns(t);return[e,Se(e,n.tablePivot(t))]}),[n,t]),a=Object(d.a)(r,2),o=a[0],i=a[1];return Object(P.jsx)(N.a,{pagination:!1,columns:o,dataSource:i})},Re={line:function(e){var n=e.resultSet,t=e.onDrilldownRequested;return Object(P.jsx)(je,{resultSet:n,onDrilldownRequested:t})},bar:function(e){var n=e.resultSet,t=e.pivotConfig,r=e.onDrilldownRequested;return Object(P.jsx)(ye,{resultSet:n,pivotConfig:t,onDrilldownRequested:r})},area:function(e){var n=e.resultSet,t=e.onDrilldownRequested;return Object(P.jsx)(Ce,{resultSet:n,onDrilldownRequested:t})},pie:function(e){var n=e.resultSet,t=e.onDrilldownRequested;return Object(P.jsx)(xe,{resultSet:n,onDrilldownRequested:t})},number:function(e){var n=e.resultSet;return Object(P.jsx)(z.a,{type:"flex",justify:"center",align:"middle",style:{height:"100%"},children:Object(P.jsx)(H.a,{children:n.seriesNames().map((function(e){return Object(P.jsx)(M.a,{value:n.totalRow()[e.key]})}))})})},table:function(e){var n=e.resultSet,t=e.pivotConfig;return Object(P.jsx)(Oe,{resultSet:n,pivotConfig:t})}};window.__cubejsPlayground={getCodesandboxFiles:function(e,n){var t=n.query,r=n.pivotConfig,a=n.chartType,o=n.cubejsToken,i=n.apiUrl,s=F["".concat(e,"Charts")],l=s.getCommon,u=s.getImports,c=s.getChartComponent;return{"index.js":"import ReactDOM from 'react-dom';\nimport cubejs from '@cubejs-client/core';\nimport { QueryRenderer } from '@cubejs-client/react';\nimport { Spin } from 'antd';\nimport 'antd/dist/antd.css';\n".concat(u().join("\n"),"\n\n").concat(l(),"\n\nconst cubejsApi = cubejs(\n '").concat(o,"',\n { apiUrl: '").concat(i,"' }\n);\n\nconst renderChart = ({ resultSet, error, pivotConfig }) => {\n if (error) {\n return <div>{error.toString()}</div>;\n }\n\n if (!resultSet) {\n return <Spin />;\n }\n\n ").concat(c(a),"\n};\n\nconst ChartRenderer = () => {\n return (\n <QueryRenderer\n query={").concat(t,"}\n cubejsApi={cubejsApi}\n resetResultSetOnChange={false}\n render={(props) => renderChart({\n ...props,\n chartType: '").concat(a,"',\n pivotConfig: ").concat(r,"\n })}\n />\n );\n};\n\nconst rootElement = document.getElementById('root');\nReactDOM.render(<ChartRenderer />, rootElement);\n ")}},getDependencies:function(e){if(!e)throw new Error("`chartingLibrary` param is undefined");var n=F["".concat(e,"Charts")].getImports;return[].concat(I,Object(f.a)(n().map((function(e){var n=e.match(/['"]([^'"]+)['"]/);return Object(d.a)(n,2)[1]}))))}};var ke={recharts:U,bizcharts:re,d3:pe,chartjs:Re},we=function(){var e,n=window.location.hash.replace(/#\\/,"").split("="),t=Object(d.a)(n,2),r=(t[0],t[1]),a=Object(s.useState)(null),o=Object(d.a)(a,2),i=o[0],l=o[1],u=Object(s.useState)(null),c=Object(d.a)(u,2),f=c[0],b=c[1],v=Object(s.useState)(null),h=Object(d.a)(v,2),g=h[0],j=h[1],y=Object(s.useState)(null),C=Object(d.a)(y,2),x=C[0],S=C[1],O=Object(s.useState)(0),R=Object(d.a)(O,2),k=R[0],w=R[1],A=Object(s.useState)(0),E=Object(d.a)(A,2),D=E[0],F=E[1],I=Object(s.useMemo)((function(){var e=window.parent.window.__cubejsPlayground||{};return Object(m.a)(e.token,{apiUrl:e.apiUrl})}),[k]);return Object(s.useEffect)((function(){var e=(window.parent.window.__cubejsPlayground||{}).forQuery;"function"===typeof e&&e(r).onChartRendererReady()}),[]),Object(s.useLayoutEffect)((function(){window.addEventListener("__cubejsPlaygroundEvent",(function(e){var n=e.detail,t=n.query,r=n.chartingLibrary,a=n.chartType,o=n.pivotConfig,i=n.eventType;"chart"===i?(t&&l(t),o&&b(o),r&&j(r),a&&("bizcharts"===r?(S(null),setTimeout((function(){return S(a)}),0)):S(a))):"credentials"===i?w((function(e){return e+1})):"refetch"===i&&F((function(e){return e+1}))}))}),[]),Object(P.jsx)(p.a,{cubejsApi:I,children:Object(P.jsx)("div",{className:"App",children:(null===(e=ke[g])||void 0===e?void 0:e[x])?Object(P.jsx)(V,{queryId:r,renderFunction:ke[g][x],query:i,pivotConfig:f,refetchCounter:D}):null})})},Ae=function(e){e&&e instanceof Function&&t.e(3).then(t.bind(null,967)).then((function(n){var t=n.getCLS,r=n.getFID,a=n.getFCP,o=n.getLCP,i=n.getTTFB;t(e),r(e),a(e),o(e),i(e)}))};c.a.render(Object(P.jsx)(l.a.StrictMode,{children:Object(P.jsx)(we,{})}),document.getElementById("root")),Ae()}},[[953,1,2]]]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],s=0,p=[];s<i.length;s++)a=i[s],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var c=t[i];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+"static/js/"+({}[e]||e)+"."+{3:"fe29d25e"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/",a.oe=function(e){throw console.error(e),e};var i=this["webpackJsonpreact-charts"]=this["webpackJsonpreact-charts"]||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var f=c;t()}([]);
|