44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
/** @format */
|
|
/**
|
|
* External dependencies
|
|
*/
|
|
import { applyFilters } from '@wordpress/hooks';
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
|
|
import { charts as ordersCharts } from 'analytics/report/orders/config';
|
|
import { charts as productsCharts } from 'analytics/report/products/config';
|
|
import { charts as revenueCharts } from 'analytics/report/revenue/config';
|
|
import { charts as categoriesCharts } from 'analytics/report/categories/config';
|
|
import { charts as couponsCharts } from 'analytics/report/coupons/config';
|
|
import { charts as taxesCharts } from 'analytics/report/taxes/config';
|
|
import { charts as downloadsCharts } from 'analytics/report/downloads/config';
|
|
|
|
const DASHBOARD_CHARTS_FILTER = 'woocommerce_admin_dashboard_charts_filter';
|
|
|
|
const allCharts = applyFilters(
|
|
DASHBOARD_CHARTS_FILTER,
|
|
revenueCharts
|
|
.map( d => ( { ...d, endpoint: 'orders' } ) )
|
|
.concat(
|
|
ordersCharts.map( d => ( { ...d, endpoint: 'revenue' } ) ),
|
|
productsCharts.map( d => ( { ...d, endpoint: 'products' } ) ),
|
|
categoriesCharts.map( d => ( { ...d, endpoint: 'categories' } ) ),
|
|
couponsCharts.map( d => ( { ...d, endpoint: 'orders' } ) ),
|
|
taxesCharts.map( d => ( { ...d, endpoint: 'taxes' } ) ),
|
|
downloadsCharts.map( d => ( { ...d, endpoint: 'downloads' } ) )
|
|
)
|
|
);
|
|
|
|
// Need to remove duplicate charts, by key, from the configs
|
|
export const uniqCharts = allCharts.reduce( ( a, b ) => {
|
|
if ( a.findIndex( d => d.key === b.key ) < 0 ) {
|
|
a.push( b );
|
|
}
|
|
return a;
|
|
}, [] );
|
|
|
|
export const getChartFromKey = key => allCharts.filter( d => d.key === key );
|