| dimensions: ['date', yField], | dimensions: ['date', yField], | ||||
| source: statistics, | source: statistics, | ||||
| }, | }, | ||||
| grid: { top: 8, right: 36, bottom: 0, left: 0, containLabel: true }, | |||||
| grid: { top: 8, right: 36, bottom: 10, left: 25, containLabel: true }, | |||||
| tooltip: { | tooltip: { | ||||
| trigger: 'item', | trigger: 'item', | ||||
| position: 'top', | position: 'top', | ||||
| lineStyle: { | lineStyle: { | ||||
| color: COMMON_COLOR_MAP.splitLineDark, | color: COMMON_COLOR_MAP.splitLineDark, | ||||
| }, | }, | ||||
| interval(index, value) { | |||||
| interval(_index, value) { | |||||
| return !!value | return !!value | ||||
| }, | }, | ||||
| }, | }, | ||||
| const noDataFlag = !response.data || response.data.length === 0 | const noDataFlag = !response.data || response.data.length === 0 | ||||
| return <Chart | return <Chart | ||||
| basicInfo={{ title: t('appOverview.analysis.totalMessages.title'), explanation: t('appOverview.analysis.totalMessages.explanation'), timePeriod: period.name }} | basicInfo={{ title: t('appOverview.analysis.totalMessages.title'), explanation: t('appOverview.analysis.totalMessages.explanation'), timePeriod: period.name }} | ||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} | |||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) } as any} | |||||
| chartType='messages' | chartType='messages' | ||||
| {...(noDataFlag && { yMax: 500 })} | {...(noDataFlag && { yMax: 500 })} | ||||
| /> | /> | ||||
| const noDataFlag = !response.data || response.data.length === 0 | const noDataFlag = !response.data || response.data.length === 0 | ||||
| return <Chart | return <Chart | ||||
| basicInfo={{ title: t('appOverview.analysis.totalConversations.title'), explanation: t('appOverview.analysis.totalConversations.explanation'), timePeriod: period.name }} | basicInfo={{ title: t('appOverview.analysis.totalConversations.title'), explanation: t('appOverview.analysis.totalConversations.explanation'), timePeriod: period.name }} | ||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} | |||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) } as any} | |||||
| chartType='conversations' | chartType='conversations' | ||||
| {...(noDataFlag && { yMax: 500 })} | {...(noDataFlag && { yMax: 500 })} | ||||
| /> | /> | ||||
| const noDataFlag = !response.data || response.data.length === 0 | const noDataFlag = !response.data || response.data.length === 0 | ||||
| return <Chart | return <Chart | ||||
| basicInfo={{ title: t('appOverview.analysis.activeUsers.title'), explanation: t('appOverview.analysis.activeUsers.explanation'), timePeriod: period.name }} | basicInfo={{ title: t('appOverview.analysis.activeUsers.title'), explanation: t('appOverview.analysis.activeUsers.explanation'), timePeriod: period.name }} | ||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} | |||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) } as any} | |||||
| chartType='endUsers' | chartType='endUsers' | ||||
| {...(noDataFlag && { yMax: 500 })} | {...(noDataFlag && { yMax: 500 })} | ||||
| /> | /> | ||||
| const noDataFlag = !response.data || response.data.length === 0 | const noDataFlag = !response.data || response.data.length === 0 | ||||
| return <Chart | return <Chart | ||||
| basicInfo={{ title: t('appOverview.analysis.tokenUsage.title'), explanation: t('appOverview.analysis.tokenUsage.explanation'), timePeriod: period.name }} | basicInfo={{ title: t('appOverview.analysis.tokenUsage.title'), explanation: t('appOverview.analysis.tokenUsage.explanation'), timePeriod: period.name }} | ||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} | |||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) } as any} | |||||
| chartType='costs' | chartType='costs' | ||||
| {...(noDataFlag && { yMax: 100 })} | {...(noDataFlag && { yMax: 100 })} | ||||
| /> | /> | ||||
| const noDataFlag = !response.data || response.data.length === 0 | const noDataFlag = !response.data || response.data.length === 0 | ||||
| return <Chart | return <Chart | ||||
| basicInfo={{ title: t('appOverview.analysis.totalMessages.title'), explanation: t('appOverview.analysis.totalMessages.explanation'), timePeriod: period.name }} | basicInfo={{ title: t('appOverview.analysis.totalMessages.title'), explanation: t('appOverview.analysis.totalMessages.explanation'), timePeriod: period.name }} | ||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData({ ...(period.query ?? defaultPeriod), key: 'runs' }) }} | |||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData({ ...(period.query ?? defaultPeriod), key: 'runs' }) } as any} | |||||
| chartType='conversations' | chartType='conversations' | ||||
| valueKey='runs' | valueKey='runs' | ||||
| {...(noDataFlag && { yMax: 500 })} | {...(noDataFlag && { yMax: 500 })} | ||||
| const noDataFlag = !response.data || response.data.length === 0 | const noDataFlag = !response.data || response.data.length === 0 | ||||
| return <Chart | return <Chart | ||||
| basicInfo={{ title: t('appOverview.analysis.activeUsers.title'), explanation: t('appOverview.analysis.activeUsers.explanation'), timePeriod: period.name }} | basicInfo={{ title: t('appOverview.analysis.activeUsers.title'), explanation: t('appOverview.analysis.activeUsers.explanation'), timePeriod: period.name }} | ||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} | |||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) } as any} | |||||
| chartType='endUsers' | chartType='endUsers' | ||||
| {...(noDataFlag && { yMax: 500 })} | {...(noDataFlag && { yMax: 500 })} | ||||
| /> | /> | ||||
| const noDataFlag = !response.data || response.data.length === 0 | const noDataFlag = !response.data || response.data.length === 0 | ||||
| return <Chart | return <Chart | ||||
| basicInfo={{ title: t('appOverview.analysis.tokenUsage.title'), explanation: t('appOverview.analysis.tokenUsage.explanation'), timePeriod: period.name }} | basicInfo={{ title: t('appOverview.analysis.tokenUsage.title'), explanation: t('appOverview.analysis.tokenUsage.explanation'), timePeriod: period.name }} | ||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} | |||||
| chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) } as any} | |||||
| chartType='workflowCosts' | chartType='workflowCosts' | ||||
| {...(noDataFlag && { yMax: 100 })} | {...(noDataFlag && { yMax: 100 })} | ||||
| /> | /> |