{"version":3,"file":"useGetSchema-BYpDKZeF.mjs","sources":["../src/services/getReportPerformance/getReportPerformance.ts","../src/services/getSchema/getSchema.ts","../src/hooks/useChartNodeView.ts","../src/queries/useGetReportPerformance/useGetReportPerformance.ts","../src/queries/useGetSchema/useGetSchema.ts"],"sourcesContent":["import { ZodError } from 'zod';\nimport { ApiReportDataSchema } from '@/schemas';\nimport type { AuthInfo, ChartReqPayload } from '@/types';\nimport { insightAPI } from '../instances';\n\nexport type RequestData = ChartReqPayload;\n\ntype Params = {\n\tauth: AuthInfo;\n\tsignal?: AbortSignal;\n\treqData: RequestData;\n};\n\nexport const getReportPerformance = async (params: Params) => {\n\tconst { auth, reqData, signal } = params;\n\n\ttry {\n\t\tconst { data } = await insightAPI.instance.post<{ data: unknown }>(\n\t\t\t`/${auth.portalId}/api/v2/report/performance`,\n\t\t\treqData,\n\t\t\t{\n\t\t\t\tparams: { auth },\n\t\t\t\tsignal,\n\t\t\t},\n\t\t);\n\n\t\treturn ApiReportDataSchema.parse(data.data);\n\t} catch (error) {\n\t\tif (error instanceof ZodError) {\n\t\t\t// biome-ignore lint/suspicious/noConsole: \"\"\n\t\t\tconsole.error('Zod validate error', {\n\t\t\t\tmessage: error.message,\n\t\t\t\tissues: error.issues,\n\t\t\t});\n\t\t}\n\n\t\tthrow error;\n\t}\n};\n","import type { AggregationType, AuthInfo, DSSchema } from '@/types';\nimport { insightAPI } from '../instances';\n\ntype Params = {\n\tauth: AuthInfo;\n\tdataSouceId: number;\n\tsignal?: AbortSignal;\n};\n\nexport type ResponeData = {\n\tdefault: {\n\t\trowDimension: {\n\t\t\tlabel: string;\n\t\t\tname: string;\n\t\t};\n\t\tcolumnDimension: {\n\t\t\tlabel: string;\n\t\t\tname: string;\n\t\t};\n\t\tdimension: {\n\t\t\tlabel: string;\n\t\t\tname: string;\n\t\t}[];\n\t\tmetric: {\n\t\t\tlabel: string;\n\t\t\tname: string;\n\t\t}[];\n\t};\n\tschemas: {\n\t\taliasLabel: string;\n\t\tenable: number;\n\t\taggregationType: AggregationType;\n\t\tdataType: string;\n\t\tname: string;\n\t\tlabel: string;\n\t\tsemantics: {\n\t\t\tconceptType: string;\n\t\t\tsemanticType: string;\n\t\t};\n\t}[];\n};\n\nexport const getSchema = async (params: Params): Promise<DSSchema> => {\n\tconst { auth, dataSouceId, signal } = params;\n\n\tconst { data } = await insightAPI.instance.post<{ data: ResponeData }>(\n\t\t`/${auth.portalId}/api/report/schema`,\n\t\t{\n\t\t\tdata_source_id: dataSouceId,\n\t\t},\n\t\t{\n\t\t\tparams: { auth },\n\t\t\tsignal,\n\t\t},\n\t);\n\n\tconst {\n\t\tdefault: { columnDimension, dimension, metric, rowDimension },\n\t\tschemas,\n\t} = data.data;\n\n\treturn {\n\t\tdimension: dimension.map((d) => d.name),\n\t\tmetric: metric.map((m) => m.name),\n\t\tcolumnDimension: columnDimension.name,\n\t\trowDimension: rowDimension.name,\n\t\tfields: schemas,\n\t};\n};\n","import { useEffect, useState } from 'react';\nimport { GetSchemaQuery, UseGetReportPerfomance } from '@/queries';\nimport type {\n\tApiAreaChartData,\n\tApiBarChartData,\n\tApiHeatmaptData,\n\tApiLineChartData,\n\tApiPieChartData,\n\tApiReportData,\n\tApiScatterChartData,\n\tApiScoreCardData,\n\tApiSunBurstChartData,\n\tApiTreemapData,\n\tChartReqPayload,\n\tDatasource,\n\tDSSchema,\n} from '@/types';\nimport type {\n\tAreaChartAttrs,\n\tBarChartAttrs,\n\tChartNodeViewAttrs,\n\tHeatmapAttrs,\n\tLineChartAttrs,\n\tPieChartAttrs,\n\tScatterChartAttrs,\n\tScoreCardAttrs,\n\tSunBurstChartAttrs,\n\tTreemapAttrs,\n} from '@/types/tiptap';\nimport { Utils } from '@/utils';\nimport { useAuthContext } from './useGetAuthInfo';\n\ntype Params<TAttrs> = {\n\tid: string;\n\tdataSourceId: Datasource['id'];\n\tattrs?: TAttrs;\n\tenabled?: boolean;\n\tonFetchDataSuccess?: (data: ApiReportData, dataSourceSchema: DSSchema) => void;\n};\n\ntype ReturnValue<TData> = {\n\tisLoading: boolean;\n\tisFetching: boolean;\n\terror: unknown;\n\tdata: TData | undefined;\n\tdataSourceSchema: DSSchema | undefined;\n};\n\nexport function useChartNodeView(params: Params<PieChartAttrs>): ReturnValue<ApiPieChartData>;\n\nexport function useChartNodeView(params: Params<BarChartAttrs>): ReturnValue<ApiBarChartData>;\n\nexport function useChartNodeView(params: Params<LineChartAttrs>): ReturnValue<ApiLineChartData>;\n\nexport function useChartNodeView(params: Params<AreaChartAttrs>): ReturnValue<ApiAreaChartData>;\n\nexport function useChartNodeView(params: Params<TreemapAttrs>): ReturnValue<ApiTreemapData>;\n\nexport function useChartNodeView(\n\tparams: Params<SunBurstChartAttrs>,\n): ReturnValue<ApiSunBurstChartData>;\n\nexport function useChartNodeView(\n\tparams: Params<ScatterChartAttrs>,\n): ReturnValue<ApiScatterChartData>;\n\nexport function useChartNodeView(params: Params<HeatmapAttrs>): ReturnValue<ApiHeatmaptData>;\n\nexport function useChartNodeView(params: Params<ScoreCardAttrs>): ReturnValue<ApiScoreCardData>;\n\nexport function useChartNodeView(params: Params<ChartNodeViewAttrs>): ReturnValue<ApiReportData>;\n\nexport function useChartNodeView(params: Params<ChartNodeViewAttrs>): ReturnValue<ApiReportData> {\n\tconst { id, attrs, dataSourceId, enabled, onFetchDataSuccess } = params;\n\n\tconst auth = useAuthContext();\n\n\tconst [reqData, setReqData] = useState<ChartReqPayload>();\n\n\tconst { data: dataSourceSchema } = GetSchemaQuery.query({\n\t\tauth,\n\t\tdataSourceId,\n\t\tenabled: enabled && !!attrs,\n\t});\n\n\tconst { data, isLoading, isFetching, error } = UseGetReportPerfomance.query({\n\t\tauth,\n\t\treqData,\n\t\tenabled: enabled && !!attrs,\n\t\tonSuccess: (data) => {\n\t\t\tif (!dataSourceSchema) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonFetchDataSuccess?.(data, dataSourceSchema);\n\t\t},\n\t});\n\n\tuseEffect(() => {\n\t\tif (!(dataSourceSchema && attrs && dataSourceId)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst reqPayload = Utils.nodeView.report.attrsToPerfPayload({\n\t\t\tattrs,\n\t\t\tdataSourceId,\n\t\t\tcomponentId: id,\n\t\t\tdataSourceSchema,\n\t\t});\n\n\t\tsetReqData(() => reqPayload);\n\t}, [dataSourceSchema, attrs, id, dataSourceId]);\n\n\treturn { data, dataSourceSchema, isLoading, isFetching, error };\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { getReportPerformance } from '@/services';\nimport type { ApiReportData, AuthInfo, ChartReqPayload } from '@/types';\n\ntype Params = {\n\tauth: AuthInfo;\n\tenabled?: boolean;\n\treqData?: ChartReqPayload;\n\tonSuccess?: (data: ApiReportData) => void;\n};\n\nexport const UseGetReportPerfomance = {\n\tmakeQueryKey: (params: Params) => ['GET_REPORT_PERFORMANCE', params],\n\n\tquery: (params: Params) => {\n\t\tconst { auth, reqData, enabled, onSuccess } = params;\n\n\t\tconst { data, error, isFetching, isLoading, refetch } = useQuery({\n\t\t\tqueryKey: UseGetReportPerfomance.makeQueryKey({ auth, reqData }),\n\t\t\tenabled: enabled && !!reqData,\n\t\t\tqueryFn: ({ signal }) => {\n\t\t\t\tif (!reqData) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn getReportPerformance({\n\t\t\t\t\tauth,\n\t\t\t\t\treqData,\n\t\t\t\t\tsignal,\n\t\t\t\t});\n\t\t\t},\n\t\t\tonSuccess,\n\t\t});\n\n\t\treturn { data, error, isFetching, isLoading, refetch };\n\t},\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { getSchema } from '@/services';\nimport type { AuthInfo } from '@/types';\n\ntype Params = {\n\tauth: AuthInfo;\n\tdataSourceId?: number;\n\tenabled?: boolean;\n};\n\nexport const GetSchemaQuery = {\n\tmakeQueryKey: (params: Partial<Params>) => ['GET_SCHEMA', params],\n\n\tquery: (params: Params) => {\n\t\tconst { enabled = true, dataSourceId = Number.NaN, auth } = params;\n\n\t\tconst { data, isLoading, isFetching, error } = useQuery({\n\t\t\tenabled: enabled && !!dataSourceId,\n\t\t\tqueryKey: GetSchemaQuery.makeQueryKey({ dataSourceId, auth }),\n\t\t\tqueryFn: ({ signal }) => getSchema({ auth, dataSouceId: dataSourceId, signal }),\n\t\t});\n\n\t\treturn { data, isLoading, isFetching, error };\n\t},\n};\n"],"names":["getReportPerformance","params","auth","reqData","signal","data","insightAPI","ApiReportDataSchema","error","getSchema","dataSouceId","columnDimension","dimension","metric","rowDimension","schemas","d","useChartNodeView","id","attrs","dataSourceId","enabled","onFetchDataSuccess","useAuthContext","setReqData","useState","dataSourceSchema","GetSchemaQuery","isLoading","isFetching","UseGetReportPerfomance","useEffect","reqPayload","Utils","onSuccess","refetch","useQuery"],"mappings":"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"}