@cubejs-client/react 0.30.60 → 0.30.64

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-react.esm.js","sources":["../src/CubeContext.js","../src/QueryRenderer.jsx","../src/QueryRendererWithTotals.jsx","../src/utils.js","../src/QueryBuilder.jsx","../src/CubeProvider.jsx","../src/hooks/deep-compare-memoize.js","../src/hooks/is-mounted.js","../src/hooks/cube-fetch.js","../src/hooks/cube-sql.js","../src/hooks/dry-run.js","../src/hooks/lazy-dry-run.js","../src/hooks/cube-query.js","../src/hooks/cube-meta.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext(null);\n","import React from 'react';\nimport { equals, toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent } from '@cubejs-client/core';\n\nimport CubeContext from './CubeContext';\n\nexport default class QueryRenderer extends React.Component {\n // @deprected use `isQueryPresent` from `@cubejs-client/core`\n static isQueryPresent(query) {\n return isQueryPresent(query);\n }\n\n constructor(props) {\n super(props);\n this.state = {};\n this.mutexObj = {};\n }\n\n componentDidMount() {\n const { query, queries } = this.props;\n if (query) {\n this.load(query);\n }\n if (queries) {\n this.loadQueries(queries);\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const {\n query, queries, render, cubejsApi, loadSql, updateOnlyOnStateChange\n } = this.props;\n if (!updateOnlyOnStateChange) {\n return true;\n }\n return !equals(nextProps.query, query)\n || !equals(nextProps.queries, queries)\n || ((nextProps.render == null || render == null) && nextProps.render !== render)\n || nextProps.cubejsApi !== cubejsApi\n || nextProps.loadSql !== loadSql\n || !equals(nextState, this.state)\n || nextProps.updateOnlyOnStateChange !== updateOnlyOnStateChange;\n }\n\n componentDidUpdate(prevProps) {\n const { query, queries } = this.props;\n if (!equals(prevProps.query, query)) {\n this.load(query);\n }\n\n if (!equals(prevProps.queries, queries)) {\n this.loadQueries(queries);\n }\n }\n\n cubejsApi() {\n // eslint-disable-next-line react/destructuring-assignment\n return this.props.cubejsApi || this.context && this.context.cubejsApi;\n }\n\n load(query) {\n const { resetResultSetOnChange } = this.props;\n this.setState({\n isLoading: true,\n error: null,\n sqlQuery: null,\n ...(resetResultSetOnChange ? { resultSet: null } : {})\n });\n const { loadSql } = this.props;\n const cubejsApi = this.cubejsApi();\n\n if (query && isQueryPresent(query)) {\n if (loadSql === 'only') {\n cubejsApi.sql(query, { mutexObj: this.mutexObj, mutexKey: 'sql' })\n .then(sqlQuery => this.setState({ sqlQuery, error: null, isLoading: false }))\n .catch(error => this.setState({\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error,\n isLoading: false\n }));\n } else if (loadSql) {\n Promise.all([\n cubejsApi.sql(query, { mutexObj: this.mutexObj, mutexKey: 'sql' }),\n cubejsApi.load(query, { mutexObj: this.mutexObj, mutexKey: 'query' })\n ]).then(([sqlQuery, resultSet]) => this.setState({\n sqlQuery, resultSet, error: null, isLoading: false\n }))\n .catch(error => this.setState({\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error,\n isLoading: false\n }));\n } else {\n cubejsApi.load(query, { mutexObj: this.mutexObj, mutexKey: 'query' })\n .then(resultSet => this.setState({ resultSet, error: null, isLoading: false }))\n .catch(error => this.setState({\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error,\n isLoading: false\n }));\n }\n }\n }\n\n loadQueries(queries) {\n const cubejsApi = this.cubejsApi();\n const { resetResultSetOnChange } = this.props;\n this.setState({\n isLoading: true,\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error: null\n });\n\n const resultPromises = Promise.all(toPairs(queries).map(\n ([name, query]) => cubejsApi.load(query, { mutexObj: this.mutexObj, mutexKey: name }).then(r => [name, r])\n ));\n\n resultPromises\n .then(resultSet => this.setState({\n resultSet: fromPairs(resultSet),\n error: null,\n isLoading: false\n }))\n .catch(error => this.setState({\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error,\n isLoading: false\n }));\n }\n\n render() {\n const {\n error, queries, resultSet, isLoading, sqlQuery\n } = this.state;\n const { render } = this.props;\n\n const loadState = {\n error: error ? new Error(error.response?.plainError || error.message || error.toString()) : null,\n resultSet: queries ? (resultSet || {}) : resultSet,\n loadingState: { isLoading },\n sqlQuery\n };\n\n if (render) {\n return render(loadState);\n }\n\n return null;\n }\n}\n\nQueryRenderer.contextType = CubeContext;\n\nQueryRenderer.defaultProps = {\n cubejsApi: null,\n query: null,\n render: null,\n queries: null,\n loadSql: null,\n updateOnlyOnStateChange: false,\n resetResultSetOnChange: true\n};\n","import React from 'react';\nimport QueryRenderer from './QueryRenderer.jsx';\n\nconst QueryRendererWithTotals = ({ query, ...restProps }) => (\n <QueryRenderer\n queries={{\n totals: {\n ...query,\n dimensions: [],\n timeDimensions: query.timeDimensions\n ? query.timeDimensions.map(td => ({ ...td, granularity: null }))\n : undefined\n },\n main: query\n }}\n {...restProps}\n />\n);\n\nQueryRendererWithTotals.defaultProps = {\n query: null,\n render: null,\n queries: null,\n loadSql: null\n};\n\nexport default QueryRendererWithTotals;\n","export function removeEmpty(obj) {\n if (typeof obj !== 'object') {\n return obj;\n }\n\n return Object.fromEntries(\n Object.entries(obj)\n .filter(([, v]) => v != null)\n .map(([k, v]) => {\n if (Array.isArray(v)) {\n return [k, v.map(removeEmpty)];\n }\n\n return [k, typeof v === 'object' ? removeEmpty(v) : v];\n })\n );\n}\n","import React from 'react';\nimport { clone, equals, indexBy, pick, prop, uniq, uniqBy } from 'ramda';\nimport {\n defaultHeuristics,\n defaultOrder,\n flattenFilters,\n getQueryMembers,\n isQueryPresent,\n moveItemInArray,\n movePivotItem,\n validateQuery,\n ResultSet,\n removeEmptyQueryFields\n} from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer.jsx';\nimport CubeContext from './CubeContext';\nimport { removeEmpty } from './utils';\n\nconst granularities = [\n { name: undefined, title: 'w/o grouping' },\n { name: 'second', title: 'Second' },\n { name: 'minute', title: 'Minute' },\n { name: 'hour', title: 'Hour' },\n { name: 'day', title: 'Day' },\n { name: 'week', title: 'Week' },\n { name: 'month', title: 'Month' },\n { name: 'quarter', title: 'Quarter' },\n { name: 'year', title: 'Year' },\n];\n\nexport default class QueryBuilder extends React.Component {\n static contextType = CubeContext;\n\n // This is an anti-pattern, only kept for backward compatibility\n // https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#anti-pattern-unconditionally-copying-props-to-state\n static getDerivedStateFromProps(props, state) {\n if (props.query || props.vizState) {\n const nextState = {\n ...state,\n ...(props.vizState || {}),\n };\n\n if (Array.isArray(props.query)) {\n throw new Error('Array of queries is not supported.');\n }\n\n return {\n ...nextState,\n query: {\n ...nextState.query,\n ...(props.query || {}),\n },\n };\n }\n return null;\n }\n\n static resolveMember(type, { meta, query }) {\n if (!meta) {\n return [];\n }\n\n if (Array.isArray(query)) {\n return query.reduce(\n (memo, currentQuery) => memo.concat(\n QueryBuilder.resolveMember(type, {\n meta,\n query: currentQuery,\n })\n ),\n []\n );\n }\n\n if (type === 'timeDimensions') {\n return (query.timeDimensions || []).map((m, index) => ({\n ...m,\n dimension: {\n ...meta.resolveMember(m.dimension, 'dimensions'),\n granularities,\n },\n index,\n }));\n }\n\n return (query[type] || []).map((m, index) => ({\n index,\n ...meta.resolveMember(m, type),\n }));\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n query: props.defaultQuery || props.query,\n chartType: props.defaultChartType,\n validatedQuery: props.query, // deprecated, validatedQuery should not be set until after dry-run for safety\n missingMembers: [],\n // todo: rename to `isMetaReady`\n isFetchingMeta: true,\n dryRunResponse: null,\n ...props.vizState, // deprecated\n ...props.initialVizState,\n };\n\n this.mutexObj = {};\n this.orderMembersOrderKeys = [];\n }\n\n async componentDidMount() {\n this.prevContext = this.context;\n await this.fetchMeta();\n }\n\n async componentDidUpdate(prevProps) {\n const { schemaVersion, onSchemaChange } = this.props;\n const { meta } = this.state;\n\n if (this.prevContext?.cubejsApi !== this.context?.cubejsApi) {\n this.prevContext = this.context;\n await this.fetchMeta();\n }\n\n if (prevProps.schemaVersion !== schemaVersion) {\n try {\n const newMeta = await this.cubejsApi().meta();\n if (!equals(newMeta, meta) && typeof onSchemaChange === 'function') {\n onSchemaChange({\n schemaVersion,\n refresh: async () => {\n await this.fetchMeta();\n },\n });\n }\n } catch (error) {\n // eslint-disable-next-line\n this.setState({ metaError: error });\n }\n }\n }\n\n fetchMeta = async () => {\n if (!this.cubejsApi()) {\n return;\n }\n\n let meta;\n let metaError = null;\n let richMetaError = null;\n let metaErrorStack = null;\n\n try {\n this.setState({ isFetchingMeta: true });\n meta = await this.cubejsApi().meta();\n } catch (error) {\n metaError = error.response?.plainError || error;\n richMetaError = error;\n metaErrorStack = error.response?.stack?.replace(error.message || '', '') || '';\n }\n\n this.setState(\n {\n meta,\n metaError: metaError ? new Error(metaError.message || metaError.toString()) : null,\n richMetaError,\n metaErrorStack,\n isFetchingMeta: false,\n },\n () => {\n // Run update query to force viz state update\n // This will catch any new missing members, and also validate the query against the new meta\n this.updateQuery({});\n }\n );\n };\n\n cubejsApi() {\n const { cubejsApi } = this.props;\n // eslint-disable-next-line react/destructuring-assignment\n return cubejsApi || (this.context && this.context.cubejsApi);\n }\n\n getMissingMembers(query, meta) {\n if (!meta) {\n return [];\n }\n\n return getQueryMembers(query)\n .map((member) => {\n const resolvedMember = meta.resolveMember(member, ['measures', 'dimensions', 'segments']);\n if (resolvedMember.error) {\n return member;\n }\n return false;\n })\n .filter(Boolean);\n }\n\n isQueryPresent() {\n const { query } = this.state;\n return QueryRenderer.isQueryPresent(query);\n }\n\n prepareRenderProps(queryRendererProps) {\n const getName = (member) => member.name;\n \n const toTimeDimension = (member) => {\n const rangeSelection = member.compareDateRange\n ? { compareDateRange: member.compareDateRange }\n : { dateRange: member.dateRange };\n\n return removeEmpty({\n dimension: member.dimension.name,\n granularity: member.granularity,\n ...rangeSelection,\n });\n };\n \n const toFilter = (member) => ({\n member: member.member?.name || member.dimension?.name,\n operator: member.operator,\n values: member.values,\n });\n\n const updateMethods = (memberType, toQuery = getName) => ({\n add: (member) => {\n const { query } = this.state;\n this.updateQuery({\n [memberType]: (query[memberType] || []).concat(toQuery(member)),\n });\n },\n remove: (member) => {\n const { query } = this.state;\n\n return this.updateQuery({\n [memberType]: (query[memberType] || []).filter((_, index) => index !== member.index),\n });\n },\n update: (member, updateWith) => {\n const { query } = this.state;\n const members = (query[memberType] || []).concat([]);\n members.splice(member.index, 1, toQuery(updateWith));\n return this.updateQuery({\n [memberType]: members,\n });\n },\n });\n\n const {\n meta,\n metaError,\n richMetaError,\n query,\n queryError,\n chartType,\n pivotConfig,\n validatedQuery,\n missingMembers,\n isFetchingMeta,\n dryRunResponse,\n metaErrorStack\n } = this.state;\n\n const flatFilters = uniqBy((filter) => `${prop('member', filter)}${prop('operator', filter)}`,\n flattenFilters((meta && query.filters) || []).map((filter) => ({\n ...filter,\n member: filter.member || filter.dimension,\n })));\n\n const filters = flatFilters.map((m, i) => ({\n ...m,\n dimension: meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n operators: meta.filterOperatorsForMember(m.member || m.dimension, ['dimensions', 'measures']),\n index: i,\n }));\n\n const measures = QueryBuilder.resolveMember('measures', this.state);\n const dimensions = QueryBuilder.resolveMember('dimensions', this.state);\n const timeDimensions = QueryBuilder.resolveMember('timeDimensions', this.state);\n const segments = ((meta && query.segments) || []).map((m, i) => ({\n index: i,\n ...meta.resolveMember(m, 'segments'),\n }));\n\n let availableMeasures = [];\n let availableDimensions = [];\n let availableSegments = [];\n let availableFilterMembers = [];\n\n const availableMembers = meta?.membersGroupedByCube() || {\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n };\n\n if (meta) {\n availableMeasures = meta.membersForQuery(query, 'measures');\n availableDimensions = meta.membersForQuery(query, 'dimensions');\n availableSegments = meta.membersForQuery(query, 'segments');\n\n const indexedMeasures = indexBy(prop('cubeName'), availableMembers.measures);\n const indexedDimensions = indexBy(prop('cubeName'), availableMembers.dimensions);\n const cubeNames = uniq([...Object.keys(indexedMeasures), ...Object.keys(indexedDimensions)]).sort();\n\n availableFilterMembers = cubeNames.map((name) => {\n const cube = indexedMeasures[name] || indexedDimensions[name];\n\n return {\n ...cube,\n members: [\n ...indexedMeasures[name]?.members,\n ...indexedDimensions[name]?.members\n ].sort((a, b) => (a.shortTitle > b.shortTitle ? 1 : -1)),\n };\n });\n }\n\n const activeOrder = Array.isArray(query.order) ? Object.fromEntries(query.order) : query.order;\n const members = [\n ...measures,\n ...dimensions,\n ...timeDimensions.map(({ dimension }) => dimension)\n ];\n\n let orderMembers = uniqBy(prop('id'), [\n // uniqBy prefers first, so these will only be added if not already in the query\n ...members.map(({ name, title }) => ({ id: name, title, order: activeOrder?.[name] || 'none' })),\n ]);\n\n if (this.orderMembersOrderKeys.length !== orderMembers.length) {\n this.orderMembersOrderKeys = orderMembers.map(({ id }) => id);\n }\n\n if (this.orderMembersOrderKeys.length) {\n // Preserve order until the members change or manually re-ordered\n // This is needed so that when an order member becomes active, it doesn't jump to the top of the list\n orderMembers = (this.orderMembersOrderKeys || []).map((id) => orderMembers.find((member) => member.id === id));\n }\n\n return {\n meta,\n metaError,\n richMetaError,\n metaErrorStack,\n query,\n error: queryError, // Match same name as QueryRenderer prop\n validatedQuery,\n isQueryPresent: this.isQueryPresent(),\n chartType,\n measures,\n dimensions,\n timeDimensions,\n segments,\n filters,\n orderMembers,\n availableMeasures,\n availableDimensions,\n availableTimeDimensions: availableDimensions.filter((m) => m.type === 'time'),\n availableSegments,\n availableMembers,\n availableFilterMembers,\n updateQuery: (queryUpdate) => this.updateQuery(queryUpdate),\n updateMeasures: updateMethods('measures'),\n updateDimensions: updateMethods('dimensions'),\n updateSegments: updateMethods('segments'),\n updateTimeDimensions: updateMethods('timeDimensions', toTimeDimension),\n updateFilters: updateMethods('filters', toFilter),\n updateChartType: (newChartType) => this.updateVizState({ chartType: newChartType }),\n updateOrder: {\n set: (memberId, newOrder = 'asc') => {\n this.updateQuery({\n order: orderMembers\n .map((orderMember) => ({\n ...orderMember,\n order: orderMember.id === memberId ? newOrder : orderMember.order,\n }))\n .reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []),\n });\n },\n update: (order) => {\n this.updateQuery({\n order,\n });\n },\n reorder: (sourceIndex, destinationIndex) => {\n if (sourceIndex == null || destinationIndex == null) {\n return;\n }\n\n const nextArray = moveItemInArray(orderMembers, sourceIndex, destinationIndex);\n this.orderMembersOrderKeys = nextArray.map(({ id }) => id);\n\n this.updateQuery({\n order: nextArray.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []),\n });\n },\n },\n pivotConfig,\n updatePivotConfig: {\n moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {\n this.updateVizState({\n pivotConfig: movePivotItem(pivotConfig, sourceIndex, destinationIndex, sourceAxis, destinationAxis),\n });\n },\n update: (config) => {\n const { limit } = config;\n\n this.updateVizState({\n pivotConfig: {\n ...pivotConfig,\n ...config,\n },\n ...(limit ? { query: { ...query, limit } } : null),\n });\n },\n },\n missingMembers,\n refresh: this.fetchMeta,\n isFetchingMeta,\n dryRunResponse,\n ...queryRendererProps,\n };\n }\n\n updateQuery(queryUpdate) {\n const { query } = this.state;\n\n this.updateVizState({\n query: removeEmptyQueryFields({\n ...query,\n ...queryUpdate,\n }),\n });\n }\n\n async updateVizState(state) {\n const { setQuery, setVizState } = this.props;\n const { query: stateQuery, pivotConfig: statePivotConfig, chartType, meta } = this.state;\n\n const finalState = this.applyStateChangeHeuristics(state);\n if (!finalState.query) {\n finalState.query = { ...stateQuery };\n }\n\n let vizStateSent = null;\n const handleVizStateChange = (currentState) => {\n const { onVizStateChanged } = this.props;\n if (onVizStateChanged) {\n const newVizState = pick(['chartType', 'pivotConfig', 'query'], currentState);\n // Don't run callbacks more than once unless the viz state has changed since last time\n if (!vizStateSent || !equals(vizStateSent, newVizState)) {\n onVizStateChanged(newVizState);\n // use clone to make sure we don't save object references\n vizStateSent = clone(newVizState);\n }\n }\n };\n\n // deprecated, setters replaced by onVizStateChanged\n const runSetters = (currentState) => {\n if (setVizState) {\n setVizState(pick(['chartType', 'pivotConfig', 'query'], currentState));\n }\n if (currentState.query && setQuery) {\n setQuery(currentState.query);\n }\n };\n\n if (finalState.shouldApplyHeuristicOrder) {\n finalState.query.order = defaultOrder(finalState.query);\n }\n\n finalState.pivotConfig = ResultSet.getNormalizedPivotConfig(\n finalState.query,\n finalState.pivotConfig !== undefined ? finalState.pivotConfig : statePivotConfig\n );\n\n finalState.missingMembers = this.getMissingMembers(finalState.query, meta);\n finalState.chartType = finalState.chartType || state.chartType || chartType;\n\n // deprecated\n runSetters({\n ...state,\n query: finalState.query,\n });\n\n // Update optimistically so that UI does not stutter\n this.setState({\n ...finalState,\n queryError: null,\n });\n\n handleVizStateChange(finalState);\n\n const shouldFetchDryRun = !equals(\n pick(['measures', 'dimensions', 'timeDimensions'], stateQuery),\n pick(['measures', 'dimensions', 'timeDimensions'], finalState.query)\n );\n\n if (shouldFetchDryRun && isQueryPresent(finalState.query) && finalState.missingMembers.length === 0) {\n try {\n const response = await this.cubejsApi().dryRun(finalState.query, {\n mutexObj: this.mutexObj,\n });\n\n if (finalState.shouldApplyHeuristicOrder) {\n finalState.query.order = (response.queryOrder || []).reduce((memo, current) => ({ ...memo, ...current }), {});\n }\n\n finalState.pivotConfig = ResultSet.getNormalizedPivotConfig(response.pivotQuery, finalState.pivotConfig);\n finalState.validatedQuery = this.validatedQuery(finalState);\n finalState.dryRunResponse = response;\n\n // deprecated\n if (isQueryPresent(stateQuery)) {\n runSetters({\n ...this.state,\n ...finalState,\n });\n }\n } catch (error) {\n this.setState({\n queryError: new Error(error.response?.plainError || error.message),\n richQueryError: new Error(error.message || error.toString())\n });\n }\n }\n\n this.setState(finalState, () => handleVizStateChange(this.state));\n }\n\n validatedQuery(state) {\n const { query } = state || this.state;\n\n return validateQuery(query);\n }\n\n defaultHeuristics(newState) {\n const { query, sessionGranularity, meta } = this.state;\n\n return defaultHeuristics(newState, query, {\n meta,\n sessionGranularity: sessionGranularity || 'day',\n });\n }\n\n applyStateChangeHeuristics(newState) {\n const { stateChangeHeuristics, disableHeuristics } = this.props;\n if (disableHeuristics) {\n return newState;\n }\n return (stateChangeHeuristics && stateChangeHeuristics(this.state, newState)) || this.defaultHeuristics(newState);\n }\n\n render() {\n const { query } = this.state;\n const { cubejsApi, render, wrapWithQueryRenderer } = this.props;\n\n if (wrapWithQueryRenderer) {\n return (\n <QueryRenderer\n query={query}\n cubejsApi={cubejsApi}\n resetResultSetOnChange={false}\n render={(queryRendererProps) => {\n if (render) {\n return render(this.prepareRenderProps(queryRendererProps));\n }\n return null;\n }}\n />\n );\n } else {\n if (render) {\n return render(this.prepareRenderProps());\n }\n return null;\n }\n }\n}\n\nQueryBuilder.defaultProps = {\n cubejsApi: null,\n stateChangeHeuristics: null,\n disableHeuristics: false,\n render: null,\n wrapWithQueryRenderer: true,\n defaultChartType: 'line',\n defaultQuery: {},\n initialVizState: null,\n onVizStateChanged: null,\n\n // deprecated\n query: null,\n setQuery: null,\n vizState: null,\n setVizState: null,\n};\n","import React from 'react';\nimport CubeContext from './CubeContext';\n\nexport default function CubeProvider({ cubejsApi, children }) {\n return <CubeContext.Provider value={{ cubejsApi }}>{children}</CubeContext.Provider>;\n}\n","import { useRef } from 'react';\nimport { equals } from 'ramda';\n\nexport default function useDeepCompareMemoize(value) {\n const ref = useRef([]);\n\n if (!equals(value, ref.current)) {\n ref.current = value;\n }\n\n return ref.current;\n}\n","import { useEffect, useRef } from 'react';\n\nexport function useIsMounted() {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return () => isMounted.current;\n}\n","import { useContext, useEffect, useState, useRef } from 'react';\nimport { isQueryPresent } from '@cubejs-client/core';\n\nimport CubeContext from '../CubeContext';\nimport useDeepCompareMemoize from './deep-compare-memoize';\nimport { useIsMounted } from './is-mounted';\n\nexport function useCubeFetch(method, options = {}) {\n const isMounted = useIsMounted();\n const context = useContext(CubeContext);\n const mutexRef = useRef({});\n\n const [response, setResponse] = useState({\n isLoading: false,\n response: null,\n });\n const [error, setError] = useState(null);\n\n const { skip = false } = options;\n\n async function load(loadOptions = {}, ignoreSkip = false) {\n const cubejsApi = options.cubejsApi || context?.cubejsApi;\n const query = loadOptions.query || options.query;\n\n const queryCondition = method === 'meta' ? true : query && isQueryPresent(query);\n\n if (cubejsApi && (ignoreSkip || !skip) && queryCondition) {\n setError(null);\n setResponse({\n isLoading: true,\n response: null,\n });\n\n const coreOptions = {\n mutexObj: mutexRef.current,\n mutexKey: method,\n };\n const args = method === 'meta' ? [coreOptions] : [query, coreOptions];\n\n try {\n const response = await cubejsApi[method](...args);\n\n if (isMounted()) {\n setResponse({\n response,\n isLoading: false,\n });\n }\n } catch (error) {\n if (isMounted()) {\n setError(error);\n setResponse({\n isLoading: false,\n response: null,\n });\n }\n }\n }\n }\n\n useEffect(() => {\n load();\n }, useDeepCompareMemoize([Object.keys(options.query?.order || {}), options, context]));\n\n return {\n ...response,\n error,\n refetch: (options) => load(options, true),\n };\n}\n","import { useCubeFetch } from './cube-fetch';\n\nexport function useCubeSql(query, options = {}) {\n return useCubeFetch('sql', {\n ...options,\n query\n });\n}\n","import { useCubeFetch } from './cube-fetch';\n\nexport function useDryRun(query, options = {}) {\n return useCubeFetch('dryRun', {\n ...options,\n query,\n });\n}\n","import { useCubeFetch } from './cube-fetch';\n\nexport function useLazyDryRun(query, options = {}) {\n const { refetch, ...result } = useCubeFetch('dryRun', {\n ...options,\n query,\n skip: true\n });\n\n return [refetch, result];\n}\n","import { useContext, useEffect, useState, useRef } from 'react';\nimport { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';\n\nimport CubeContext from '../CubeContext';\nimport useDeepCompareMemoize from './deep-compare-memoize';\nimport { useIsMounted } from './is-mounted';\n\nexport function useCubeQuery(query, options = {}) {\n const mutexRef = useRef({});\n const isMounted = useIsMounted();\n const [currentQuery, setCurrentQuery] = useState(null);\n const [isLoading, setLoading] = useState(false);\n const [resultSet, setResultSet] = useState(null);\n const [progress, setProgress] = useState(null);\n const [error, setError] = useState(null);\n const context = useContext(CubeContext);\n\n let subscribeRequest = null;\n\n const progressCallback = ({ progressResponse }) => setProgress(progressResponse);\n\n async function fetch() {\n const { resetResultSetOnChange } = options;\n const cubejsApi = options.cubejsApi || context?.cubejsApi;\n\n if (!cubejsApi) {\n throw new Error('Cube.js API client is not provided');\n }\n\n if (resetResultSetOnChange) {\n setResultSet(null);\n }\n\n setError(null);\n setLoading(true);\n\n try {\n const response = await cubejsApi.load(query, {\n mutexObj: mutexRef.current,\n mutexKey: 'query',\n progressCallback,\n });\n\n if (isMounted()) {\n setResultSet(response);\n setProgress(null);\n }\n } catch (error) {\n if (isMounted()) {\n setError(error);\n setResultSet(null);\n setProgress(null);\n }\n }\n\n if (isMounted()) {\n setLoading(false);\n }\n }\n\n useEffect(() => {\n const { skip = false, resetResultSetOnChange } = options;\n\n const cubejsApi = options.cubejsApi || context?.cubejsApi;\n\n if (!cubejsApi) {\n throw new Error('Cube.js API client is not provided');\n }\n\n async function loadQuery() {\n if (!skip && isQueryPresent(query)) {\n if (!areQueriesEqual(currentQuery, query)) {\n if (resetResultSetOnChange == null || resetResultSetOnChange) {\n setResultSet(null);\n }\n setCurrentQuery(query);\n }\n\n setError(null);\n setLoading(true);\n\n try {\n if (subscribeRequest) {\n await subscribeRequest.unsubscribe();\n subscribeRequest = null;\n }\n\n if (options.subscribe) {\n subscribeRequest = cubejsApi.subscribe(\n query,\n {\n mutexObj: mutexRef.current,\n mutexKey: 'query',\n progressCallback,\n },\n (e, result) => {\n if (isMounted()) {\n if (e) {\n setError(e);\n } else {\n setResultSet(result);\n }\n setLoading(false);\n setProgress(null);\n }\n }\n );\n } else {\n await fetch();\n }\n } catch (e) {\n if (isMounted()) {\n setError(e);\n setResultSet(null);\n setLoading(false);\n setProgress(null);\n }\n }\n }\n }\n\n loadQuery();\n\n return () => {\n if (subscribeRequest) {\n subscribeRequest.unsubscribe();\n subscribeRequest = null;\n }\n };\n }, useDeepCompareMemoize([query, Object.keys((query && query.order) || {}), options, context]));\n\n return {\n isLoading,\n resultSet,\n error,\n progress,\n previousQuery: currentQuery,\n refetch: fetch\n };\n}\n","import { useCubeFetch } from './cube-fetch';\n\nexport function useCubeMeta(options = {}) {\n return useCubeFetch('meta', options);\n}\n"],"names":["createContext","QueryRenderer","props","state","mutexObj","query","queries","load","loadQueries","nextProps","nextState","render","cubejsApi","loadSql","updateOnlyOnStateChange","equals","prevProps","context","resetResultSetOnChange","setState","isLoading","error","sqlQuery","resultSet","isQueryPresent","sql","mutexKey","then","Promise","all","resultPromises","toPairs","map","name","r","fromPairs","loadState","Error","response","plainError","message","toString","loadingState","React","Component","contextType","CubeContext","defaultProps","QueryRendererWithTotals","restProps","totals","dimensions","timeDimensions","td","granularity","undefined","main","removeEmpty","obj","Object","fromEntries","entries","filter","v","k","Array","isArray","granularities","title","QueryBuilder","metaError","richMetaError","metaErrorStack","isFetchingMeta","meta","stack","replace","updateQuery","defaultQuery","chartType","defaultChartType","validatedQuery","missingMembers","dryRunResponse","vizState","initialVizState","orderMembersOrderKeys","prevContext","fetchMeta","schemaVersion","onSchemaChange","newMeta","refresh","getQueryMembers","member","resolvedMember","resolveMember","Boolean","queryRendererProps","getName","toTimeDimension","rangeSelection","compareDateRange","dateRange","dimension","toFilter","operator","values","updateMethods","memberType","toQuery","add","concat","remove","_","index","update","updateWith","members","splice","queryError","pivotConfig","flatFilters","uniqBy","prop","flattenFilters","filters","m","i","operators","filterOperatorsForMember","measures","segments","availableMeasures","availableDimensions","availableSegments","availableFilterMembers","availableMembers","membersGroupedByCube","membersForQuery","indexedMeasures","indexBy","indexedDimensions","cubeNames","uniq","keys","sort","cube","a","b","shortTitle","activeOrder","order","orderMembers","id","length","find","availableTimeDimensions","type","queryUpdate","updateMeasures","updateDimensions","updateSegments","updateTimeDimensions","updateFilters","updateChartType","newChartType","updateVizState","updateOrder","set","memberId","newOrder","orderMember","reduce","acc","reorder","sourceIndex","destinationIndex","nextArray","moveItemInArray","updatePivotConfig","moveItem","sourceAxis","destinationAxis","movePivotItem","config","limit","removeEmptyQueryFields","setQuery","setVizState","stateQuery","statePivotConfig","finalState","applyStateChangeHeuristics","vizStateSent","handleVizStateChange","currentState","onVizStateChanged","newVizState","pick","clone","runSetters","shouldApplyHeuristicOrder","defaultOrder","ResultSet","getNormalizedPivotConfig","getMissingMembers","shouldFetchDryRun","dryRun","queryOrder","memo","current","pivotQuery","richQueryError","validateQuery","newState","sessionGranularity","defaultHeuristics","stateChangeHeuristics","disableHeuristics","wrapWithQueryRenderer","prepareRenderProps","currentQuery","CubeProvider","children","useDeepCompareMemoize","value","ref","useRef","useIsMounted","isMounted","useEffect","useCubeFetch","method","options","useContext","mutexRef","useState","setResponse","setError","skip","loadOptions","ignoreSkip","queryCondition","coreOptions","args","refetch","useCubeSql","useDryRun","useLazyDryRun","result","useCubeQuery","setCurrentQuery","setLoading","setResultSet","progress","setProgress","subscribeRequest","progressCallback","progressResponse","fetch","loadQuery","areQueriesEqual","unsubscribe","subscribe","e","previousQuery","useCubeMeta"],"mappings":"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"}
1
+ {"version":3,"file":"cubejs-client-react.esm.js","sources":["../src/CubeContext.js","../src/QueryRenderer.jsx","../src/QueryRendererWithTotals.jsx","../src/utils.js","../src/QueryBuilder.jsx","../src/CubeProvider.jsx","../src/hooks/deep-compare-memoize.js","../src/hooks/is-mounted.js","../src/hooks/cube-fetch.js","../src/hooks/cube-sql.js","../src/hooks/dry-run.js","../src/hooks/lazy-dry-run.js","../src/hooks/cube-query.js","../src/hooks/cube-meta.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext(null);\n","import React from 'react';\nimport { equals, toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent } from '@cubejs-client/core';\n\nimport CubeContext from './CubeContext';\n\nexport default class QueryRenderer extends React.Component {\n // @deprected use `isQueryPresent` from `@cubejs-client/core`\n static isQueryPresent(query) {\n return isQueryPresent(query);\n }\n\n constructor(props) {\n super(props);\n this.state = {};\n this.mutexObj = {};\n }\n\n componentDidMount() {\n const { query, queries } = this.props;\n if (query) {\n this.load(query);\n }\n if (queries) {\n this.loadQueries(queries);\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const {\n query, queries, render, cubejsApi, loadSql, updateOnlyOnStateChange\n } = this.props;\n if (!updateOnlyOnStateChange) {\n return true;\n }\n return !equals(nextProps.query, query)\n || !equals(nextProps.queries, queries)\n || ((nextProps.render == null || render == null) && nextProps.render !== render)\n || nextProps.cubejsApi !== cubejsApi\n || nextProps.loadSql !== loadSql\n || !equals(nextState, this.state)\n || nextProps.updateOnlyOnStateChange !== updateOnlyOnStateChange;\n }\n\n componentDidUpdate(prevProps) {\n const { query, queries } = this.props;\n if (!equals(prevProps.query, query)) {\n this.load(query);\n }\n\n if (!equals(prevProps.queries, queries)) {\n this.loadQueries(queries);\n }\n }\n\n cubejsApi() {\n // eslint-disable-next-line react/destructuring-assignment\n return this.props.cubejsApi || this.context && this.context.cubejsApi;\n }\n\n load(query) {\n const { resetResultSetOnChange } = this.props;\n this.setState({\n isLoading: true,\n error: null,\n sqlQuery: null,\n ...(resetResultSetOnChange ? { resultSet: null } : {})\n });\n const { loadSql } = this.props;\n const cubejsApi = this.cubejsApi();\n\n if (query && isQueryPresent(query)) {\n if (loadSql === 'only') {\n cubejsApi.sql(query, { mutexObj: this.mutexObj, mutexKey: 'sql' })\n .then(sqlQuery => this.setState({ sqlQuery, error: null, isLoading: false }))\n .catch(error => this.setState({\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error,\n isLoading: false\n }));\n } else if (loadSql) {\n Promise.all([\n cubejsApi.sql(query, { mutexObj: this.mutexObj, mutexKey: 'sql' }),\n cubejsApi.load(query, { mutexObj: this.mutexObj, mutexKey: 'query' })\n ]).then(([sqlQuery, resultSet]) => this.setState({\n sqlQuery, resultSet, error: null, isLoading: false\n }))\n .catch(error => this.setState({\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error,\n isLoading: false\n }));\n } else {\n cubejsApi.load(query, { mutexObj: this.mutexObj, mutexKey: 'query' })\n .then(resultSet => this.setState({ resultSet, error: null, isLoading: false }))\n .catch(error => this.setState({\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error,\n isLoading: false\n }));\n }\n }\n }\n\n loadQueries(queries) {\n const cubejsApi = this.cubejsApi();\n const { resetResultSetOnChange } = this.props;\n this.setState({\n isLoading: true,\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error: null\n });\n\n const resultPromises = Promise.all(toPairs(queries).map(\n ([name, query]) => cubejsApi.load(query, { mutexObj: this.mutexObj, mutexKey: name }).then(r => [name, r])\n ));\n\n resultPromises\n .then(resultSet => this.setState({\n resultSet: fromPairs(resultSet),\n error: null,\n isLoading: false\n }))\n .catch(error => this.setState({\n ...(resetResultSetOnChange ? { resultSet: null } : {}),\n error,\n isLoading: false\n }));\n }\n\n render() {\n const {\n error, queries, resultSet, isLoading, sqlQuery\n } = this.state;\n const { render } = this.props;\n\n const loadState = {\n error: error ? new Error(error.response?.plainError || error.message || error.toString()) : null,\n resultSet: queries ? (resultSet || {}) : resultSet,\n loadingState: { isLoading },\n sqlQuery\n };\n\n if (render) {\n return render(loadState);\n }\n\n return null;\n }\n}\n\nQueryRenderer.contextType = CubeContext;\n\nQueryRenderer.defaultProps = {\n cubejsApi: null,\n query: null,\n render: null,\n queries: null,\n loadSql: null,\n updateOnlyOnStateChange: false,\n resetResultSetOnChange: true\n};\n","import React from 'react';\nimport QueryRenderer from './QueryRenderer.jsx';\n\nconst QueryRendererWithTotals = ({ query, ...restProps }) => (\n <QueryRenderer\n queries={{\n totals: {\n ...query,\n dimensions: [],\n timeDimensions: query.timeDimensions\n ? query.timeDimensions.map(td => ({ ...td, granularity: null }))\n : undefined\n },\n main: query\n }}\n {...restProps}\n />\n);\n\nQueryRendererWithTotals.defaultProps = {\n query: null,\n render: null,\n queries: null,\n loadSql: null\n};\n\nexport default QueryRendererWithTotals;\n","export function removeEmpty(obj) {\n if (typeof obj !== 'object') {\n return obj;\n }\n\n return Object.fromEntries(\n Object.entries(obj)\n .filter(([, v]) => v != null)\n .map(([k, v]) => {\n if (Array.isArray(v)) {\n return [k, v.map(removeEmpty)];\n }\n\n return [k, typeof v === 'object' ? removeEmpty(v) : v];\n })\n );\n}\n","import React from 'react';\nimport { clone, equals, indexBy, pick, prop, uniq, uniqBy } from 'ramda';\nimport {\n defaultHeuristics,\n defaultOrder,\n flattenFilters,\n getQueryMembers,\n isQueryPresent,\n moveItemInArray,\n movePivotItem,\n validateQuery,\n ResultSet,\n removeEmptyQueryFields\n} from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer.jsx';\nimport CubeContext from './CubeContext';\nimport { removeEmpty } from './utils';\n\nconst granularities = [\n { name: undefined, title: 'w/o grouping' },\n { name: 'second', title: 'Second' },\n { name: 'minute', title: 'Minute' },\n { name: 'hour', title: 'Hour' },\n { name: 'day', title: 'Day' },\n { name: 'week', title: 'Week' },\n { name: 'month', title: 'Month' },\n { name: 'quarter', title: 'Quarter' },\n { name: 'year', title: 'Year' },\n];\n\nexport default class QueryBuilder extends React.Component {\n static contextType = CubeContext;\n\n // This is an anti-pattern, only kept for backward compatibility\n // https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#anti-pattern-unconditionally-copying-props-to-state\n static getDerivedStateFromProps(props, state) {\n if (props.query || props.vizState) {\n const nextState = {\n ...state,\n ...(props.vizState || {}),\n };\n\n if (Array.isArray(props.query)) {\n throw new Error('Array of queries is not supported.');\n }\n\n return {\n ...nextState,\n query: {\n ...nextState.query,\n ...(props.query || {}),\n },\n };\n }\n return null;\n }\n\n static resolveMember(type, { meta, query }) {\n if (!meta) {\n return [];\n }\n\n if (Array.isArray(query)) {\n return query.reduce(\n (memo, currentQuery) => memo.concat(\n QueryBuilder.resolveMember(type, {\n meta,\n query: currentQuery,\n })\n ),\n []\n );\n }\n\n if (type === 'timeDimensions') {\n return (query.timeDimensions || []).map((m, index) => ({\n ...m,\n dimension: {\n ...meta.resolveMember(m.dimension, 'dimensions'),\n granularities,\n },\n index,\n }));\n }\n\n return (query[type] || []).map((m, index) => ({\n index,\n ...meta.resolveMember(m, type),\n }));\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n query: props.defaultQuery || props.query,\n chartType: props.defaultChartType,\n validatedQuery: props.query, // deprecated, validatedQuery should not be set until after dry-run for safety\n missingMembers: [],\n // todo: rename to `isMetaReady`\n isFetchingMeta: true,\n dryRunResponse: null,\n ...props.vizState, // deprecated\n ...props.initialVizState,\n };\n\n this.mutexObj = {};\n this.orderMembersOrderKeys = [];\n }\n\n async componentDidMount() {\n this.prevContext = this.context;\n await this.fetchMeta();\n }\n\n async componentDidUpdate(prevProps) {\n const { schemaVersion, onSchemaChange } = this.props;\n const { meta } = this.state;\n\n if (this.prevContext?.cubejsApi !== this.context?.cubejsApi) {\n this.prevContext = this.context;\n await this.fetchMeta();\n }\n\n if (prevProps.schemaVersion !== schemaVersion) {\n try {\n const newMeta = await this.cubejsApi().meta();\n if (!equals(newMeta, meta) && typeof onSchemaChange === 'function') {\n onSchemaChange({\n schemaVersion,\n refresh: async () => {\n await this.fetchMeta();\n },\n });\n }\n } catch (error) {\n // eslint-disable-next-line\n this.setState({ metaError: error });\n }\n }\n }\n\n fetchMeta = async () => {\n if (!this.cubejsApi()) {\n return;\n }\n\n let meta;\n let metaError = null;\n let richMetaError = null;\n let metaErrorStack = null;\n\n try {\n this.setState({ isFetchingMeta: true });\n meta = await this.cubejsApi().meta();\n } catch (error) {\n metaError = error.response?.plainError || error;\n richMetaError = error;\n metaErrorStack = error.response?.stack?.replace(error.message || '', '') || '';\n }\n\n this.setState(\n {\n meta,\n metaError: metaError ? new Error(metaError.message || metaError.toString()) : null,\n richMetaError,\n metaErrorStack,\n isFetchingMeta: false,\n },\n () => {\n // Run update query to force viz state update\n // This will catch any new missing members, and also validate the query against the new meta\n this.updateQuery({});\n }\n );\n };\n\n cubejsApi() {\n const { cubejsApi } = this.props;\n // eslint-disable-next-line react/destructuring-assignment\n return cubejsApi || (this.context && this.context.cubejsApi);\n }\n\n getMissingMembers(query, meta) {\n if (!meta) {\n return [];\n }\n\n return getQueryMembers(query)\n .map((member) => {\n const resolvedMember = meta.resolveMember(member, ['measures', 'dimensions', 'segments']);\n if (resolvedMember.error) {\n return member;\n }\n return false;\n })\n .filter(Boolean);\n }\n\n isQueryPresent() {\n const { query } = this.state;\n return QueryRenderer.isQueryPresent(query);\n }\n\n prepareRenderProps(queryRendererProps) {\n const getName = (member) => member.name;\n \n const toTimeDimension = (member) => {\n const rangeSelection = member.compareDateRange\n ? { compareDateRange: member.compareDateRange }\n : { dateRange: member.dateRange };\n\n return removeEmpty({\n dimension: member.dimension.name,\n granularity: member.granularity,\n ...rangeSelection,\n });\n };\n \n const toFilter = (member) => ({\n member: member.member?.name || member.dimension?.name,\n operator: member.operator,\n values: member.values,\n });\n\n const updateMethods = (memberType, toQuery = getName) => ({\n add: (member) => {\n const { query } = this.state;\n this.updateQuery({\n [memberType]: (query[memberType] || []).concat(toQuery(member)),\n });\n },\n remove: (member) => {\n const { query } = this.state;\n\n return this.updateQuery({\n [memberType]: (query[memberType] || []).filter((_, index) => index !== member.index),\n });\n },\n update: (member, updateWith) => {\n const { query } = this.state;\n const members = (query[memberType] || []).concat([]);\n members.splice(member.index, 1, toQuery(updateWith));\n return this.updateQuery({\n [memberType]: members,\n });\n },\n });\n\n const {\n meta,\n metaError,\n richMetaError,\n query,\n queryError,\n chartType,\n pivotConfig,\n validatedQuery,\n missingMembers,\n isFetchingMeta,\n dryRunResponse,\n metaErrorStack\n } = this.state;\n\n const flatFilters = uniqBy((filter) => `${prop('member', filter)}${prop('operator', filter)}`,\n flattenFilters((meta && query.filters) || []).map((filter) => ({\n ...filter,\n member: filter.member || filter.dimension,\n })));\n\n const filters = flatFilters.map((m, i) => ({\n ...m,\n dimension: meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n operators: meta.filterOperatorsForMember(m.member || m.dimension, ['dimensions', 'measures']),\n index: i,\n }));\n\n const measures = QueryBuilder.resolveMember('measures', this.state);\n const dimensions = QueryBuilder.resolveMember('dimensions', this.state);\n const timeDimensions = QueryBuilder.resolveMember('timeDimensions', this.state);\n const segments = ((meta && query.segments) || []).map((m, i) => ({\n index: i,\n ...meta.resolveMember(m, 'segments'),\n }));\n\n let availableMeasures = [];\n let availableDimensions = [];\n let availableSegments = [];\n let availableFilterMembers = [];\n\n const availableMembers = meta?.membersGroupedByCube() || {\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n };\n\n if (meta) {\n availableMeasures = meta.membersForQuery(query, 'measures');\n availableDimensions = meta.membersForQuery(query, 'dimensions');\n availableSegments = meta.membersForQuery(query, 'segments');\n\n const indexedMeasures = indexBy(prop('cubeName'), availableMembers.measures);\n const indexedDimensions = indexBy(prop('cubeName'), availableMembers.dimensions);\n const cubeNames = uniq([...Object.keys(indexedMeasures), ...Object.keys(indexedDimensions)]).sort();\n\n availableFilterMembers = cubeNames.map((name) => {\n const cube = indexedMeasures[name] || indexedDimensions[name];\n\n return {\n ...cube,\n members: [\n ...indexedMeasures[name]?.members,\n ...indexedDimensions[name]?.members\n ].sort((a, b) => (a.shortTitle > b.shortTitle ? 1 : -1)),\n };\n });\n }\n\n const activeOrder = Array.isArray(query.order) ? Object.fromEntries(query.order) : query.order;\n const members = [\n ...measures,\n ...dimensions,\n ...timeDimensions.map(({ dimension }) => dimension)\n ];\n\n let orderMembers = uniqBy(prop('id'), [\n // uniqBy prefers first, so these will only be added if not already in the query\n ...members.map(({ name, title }) => ({ id: name, title, order: activeOrder?.[name] || 'none' })),\n ]);\n\n if (this.orderMembersOrderKeys.length !== orderMembers.length) {\n this.orderMembersOrderKeys = orderMembers.map(({ id }) => id);\n }\n\n if (this.orderMembersOrderKeys.length) {\n // Preserve order until the members change or manually re-ordered\n // This is needed so that when an order member becomes active, it doesn't jump to the top of the list\n orderMembers = (this.orderMembersOrderKeys || []).map((id) => orderMembers.find((member) => member.id === id));\n }\n\n return {\n meta,\n metaError,\n richMetaError,\n metaErrorStack,\n query,\n error: queryError, // Match same name as QueryRenderer prop\n validatedQuery,\n isQueryPresent: this.isQueryPresent(),\n chartType,\n measures,\n dimensions,\n timeDimensions,\n segments,\n filters,\n orderMembers,\n availableMeasures,\n availableDimensions,\n availableTimeDimensions: availableDimensions.filter((m) => m.type === 'time'),\n availableSegments,\n availableMembers,\n availableFilterMembers,\n updateQuery: (queryUpdate) => this.updateQuery(queryUpdate),\n updateMeasures: updateMethods('measures'),\n updateDimensions: updateMethods('dimensions'),\n updateSegments: updateMethods('segments'),\n updateTimeDimensions: updateMethods('timeDimensions', toTimeDimension),\n updateFilters: updateMethods('filters', toFilter),\n updateChartType: (newChartType) => this.updateVizState({ chartType: newChartType }),\n updateOrder: {\n set: (memberId, newOrder = 'asc') => {\n this.updateQuery({\n order: orderMembers\n .map((orderMember) => ({\n ...orderMember,\n order: orderMember.id === memberId ? newOrder : orderMember.order,\n }))\n .reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []),\n });\n },\n update: (order) => {\n this.updateQuery({\n order,\n });\n },\n reorder: (sourceIndex, destinationIndex) => {\n if (sourceIndex == null || destinationIndex == null) {\n return;\n }\n\n const nextArray = moveItemInArray(orderMembers, sourceIndex, destinationIndex);\n this.orderMembersOrderKeys = nextArray.map(({ id }) => id);\n\n this.updateQuery({\n order: nextArray.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []),\n });\n },\n },\n pivotConfig,\n updatePivotConfig: {\n moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {\n this.updateVizState({\n pivotConfig: movePivotItem(pivotConfig, sourceIndex, destinationIndex, sourceAxis, destinationAxis),\n });\n },\n update: (config) => {\n const { limit } = config;\n\n this.updateVizState({\n pivotConfig: {\n ...pivotConfig,\n ...config,\n },\n ...(limit ? { query: { ...query, limit } } : null),\n });\n },\n },\n missingMembers,\n refresh: this.fetchMeta,\n isFetchingMeta,\n dryRunResponse,\n ...queryRendererProps,\n };\n }\n\n updateQuery(queryUpdate) {\n const { query } = this.state;\n\n this.updateVizState({\n query: removeEmptyQueryFields({\n ...query,\n ...queryUpdate,\n }),\n });\n }\n\n async updateVizState(state) {\n const { setQuery, setVizState } = this.props;\n const { query: stateQuery, pivotConfig: statePivotConfig, chartType, meta } = this.state;\n\n const finalState = this.applyStateChangeHeuristics(state);\n if (!finalState.query) {\n finalState.query = { ...stateQuery };\n }\n\n let vizStateSent = null;\n const handleVizStateChange = (currentState) => {\n const { onVizStateChanged } = this.props;\n if (onVizStateChanged) {\n const newVizState = pick(['chartType', 'pivotConfig', 'query'], currentState);\n // Don't run callbacks more than once unless the viz state has changed since last time\n if (!vizStateSent || !equals(vizStateSent, newVizState)) {\n onVizStateChanged(newVizState);\n // use clone to make sure we don't save object references\n vizStateSent = clone(newVizState);\n }\n }\n };\n\n // deprecated, setters replaced by onVizStateChanged\n const runSetters = (currentState) => {\n if (setVizState) {\n setVizState(pick(['chartType', 'pivotConfig', 'query'], currentState));\n }\n if (currentState.query && setQuery) {\n setQuery(currentState.query);\n }\n };\n\n if (finalState.shouldApplyHeuristicOrder) {\n finalState.query.order = defaultOrder(finalState.query);\n }\n\n finalState.pivotConfig = ResultSet.getNormalizedPivotConfig(\n finalState.query,\n finalState.pivotConfig !== undefined ? finalState.pivotConfig : statePivotConfig\n );\n\n finalState.missingMembers = this.getMissingMembers(finalState.query, meta);\n finalState.chartType = finalState.chartType || state.chartType || chartType;\n\n // deprecated\n runSetters({\n ...state,\n query: finalState.query,\n });\n\n // Update optimistically so that UI does not stutter\n this.setState({\n ...finalState,\n queryError: null,\n });\n\n handleVizStateChange(finalState);\n\n const shouldFetchDryRun = !equals(\n pick(['measures', 'dimensions', 'timeDimensions'], stateQuery),\n pick(['measures', 'dimensions', 'timeDimensions'], finalState.query)\n );\n\n if (shouldFetchDryRun && isQueryPresent(finalState.query) && finalState.missingMembers.length === 0) {\n try {\n const response = await this.cubejsApi().dryRun(finalState.query, {\n mutexObj: this.mutexObj,\n });\n\n if (finalState.shouldApplyHeuristicOrder) {\n finalState.query.order = (response.queryOrder || []).reduce((memo, current) => ({ ...memo, ...current }), {});\n }\n\n finalState.pivotConfig = ResultSet.getNormalizedPivotConfig(response.pivotQuery, finalState.pivotConfig);\n finalState.validatedQuery = this.validatedQuery(finalState);\n finalState.dryRunResponse = response;\n\n // deprecated\n if (isQueryPresent(stateQuery)) {\n runSetters({\n ...this.state,\n ...finalState,\n });\n }\n } catch (error) {\n this.setState({\n queryError: new Error(error.response?.plainError || error.message),\n richQueryError: new Error(error.message || error.toString())\n });\n }\n }\n\n this.setState(finalState, () => handleVizStateChange(this.state));\n }\n\n validatedQuery(state) {\n const { query } = state || this.state;\n\n return validateQuery(query);\n }\n\n defaultHeuristics(newState) {\n const { query, sessionGranularity, meta } = this.state;\n\n return defaultHeuristics(newState, query, {\n meta,\n sessionGranularity: sessionGranularity || 'day',\n });\n }\n\n applyStateChangeHeuristics(newState) {\n const { stateChangeHeuristics, disableHeuristics } = this.props;\n if (disableHeuristics) {\n return newState;\n }\n return (stateChangeHeuristics && stateChangeHeuristics(this.state, newState)) || this.defaultHeuristics(newState);\n }\n\n render() {\n const { query } = this.state;\n const { cubejsApi, render, wrapWithQueryRenderer } = this.props;\n\n if (wrapWithQueryRenderer) {\n return (\n <QueryRenderer\n query={query}\n cubejsApi={cubejsApi}\n resetResultSetOnChange={false}\n render={(queryRendererProps) => {\n if (render) {\n return render(this.prepareRenderProps(queryRendererProps));\n }\n return null;\n }}\n />\n );\n } else {\n if (render) {\n return render(this.prepareRenderProps());\n }\n return null;\n }\n }\n}\n\nQueryBuilder.defaultProps = {\n cubejsApi: null,\n stateChangeHeuristics: null,\n disableHeuristics: false,\n render: null,\n wrapWithQueryRenderer: true,\n defaultChartType: 'line',\n defaultQuery: {},\n initialVizState: null,\n onVizStateChanged: null,\n\n // deprecated\n query: null,\n setQuery: null,\n vizState: null,\n setVizState: null,\n};\n","import React from 'react';\nimport CubeContext from './CubeContext';\n\nexport default function CubeProvider({ cubejsApi, children }) {\n return <CubeContext.Provider value={{ cubejsApi }}>{children}</CubeContext.Provider>;\n}\n","import { useRef } from 'react';\nimport { equals } from 'ramda';\n\nexport default function useDeepCompareMemoize(value) {\n const ref = useRef([]);\n\n if (!equals(value, ref.current)) {\n ref.current = value;\n }\n\n return ref.current;\n}\n","import { useEffect, useRef } from 'react';\n\nexport function useIsMounted() {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return () => isMounted.current;\n}\n","import { useContext, useEffect, useState, useRef } from 'react';\nimport { isQueryPresent } from '@cubejs-client/core';\n\nimport CubeContext from '../CubeContext';\nimport useDeepCompareMemoize from './deep-compare-memoize';\nimport { useIsMounted } from './is-mounted';\n\nexport function useCubeFetch(method, options = {}) {\n const isMounted = useIsMounted();\n const context = useContext(CubeContext);\n const mutexRef = useRef({});\n\n const [response, setResponse] = useState({\n isLoading: false,\n response: null,\n });\n const [error, setError] = useState(null);\n\n const { skip = false } = options;\n\n async function load(loadOptions = {}, ignoreSkip = false) {\n const cubejsApi = options.cubejsApi || context?.cubejsApi;\n const query = loadOptions.query || options.query;\n\n const queryCondition = method === 'meta' ? true : query && isQueryPresent(query);\n\n if (cubejsApi && (ignoreSkip || !skip) && queryCondition) {\n setError(null);\n setResponse({\n isLoading: true,\n response: null,\n });\n\n const coreOptions = {\n mutexObj: mutexRef.current,\n mutexKey: method,\n };\n const args = method === 'meta' ? [coreOptions] : [query, coreOptions];\n\n try {\n const response = await cubejsApi[method](...args);\n\n if (isMounted()) {\n setResponse({\n response,\n isLoading: false,\n });\n }\n } catch (error) {\n if (isMounted()) {\n setError(error);\n setResponse({\n isLoading: false,\n response: null,\n });\n }\n }\n }\n }\n\n useEffect(() => {\n load();\n }, useDeepCompareMemoize([Object.keys(options.query?.order || {}), options, context]));\n\n return {\n ...response,\n error,\n refetch: (options) => load(options, true),\n };\n}\n","import { useCubeFetch } from './cube-fetch';\n\nexport function useCubeSql(query, options = {}) {\n return useCubeFetch('sql', {\n ...options,\n query\n });\n}\n","import { useCubeFetch } from './cube-fetch';\n\nexport function useDryRun(query, options = {}) {\n return useCubeFetch('dryRun', {\n ...options,\n query,\n });\n}\n","import { useCubeFetch } from './cube-fetch';\n\nexport function useLazyDryRun(query, options = {}) {\n const { refetch, ...result } = useCubeFetch('dryRun', {\n ...options,\n query,\n skip: true\n });\n\n return [refetch, result];\n}\n","import { useContext, useEffect, useState, useRef } from 'react';\nimport { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';\n\nimport CubeContext from '../CubeContext';\nimport useDeepCompareMemoize from './deep-compare-memoize';\nimport { useIsMounted } from './is-mounted';\n\nexport function useCubeQuery(query, options = {}) {\n const mutexRef = useRef({});\n const isMounted = useIsMounted();\n const [currentQuery, setCurrentQuery] = useState(null);\n const [isLoading, setLoading] = useState(false);\n const [resultSet, setResultSet] = useState(null);\n const [progress, setProgress] = useState(null);\n const [error, setError] = useState(null);\n const context = useContext(CubeContext);\n\n let subscribeRequest = null;\n\n const progressCallback = ({ progressResponse }) => setProgress(progressResponse);\n\n async function fetch() {\n const { resetResultSetOnChange } = options;\n const cubejsApi = options.cubejsApi || context?.cubejsApi;\n\n if (!cubejsApi) {\n throw new Error('Cube.js API client is not provided');\n }\n\n if (resetResultSetOnChange) {\n setResultSet(null);\n }\n\n setError(null);\n setLoading(true);\n\n try {\n const response = await cubejsApi.load(query, {\n mutexObj: mutexRef.current,\n mutexKey: 'query',\n progressCallback,\n });\n\n if (isMounted()) {\n setResultSet(response);\n setProgress(null);\n }\n } catch (error) {\n if (isMounted()) {\n setError(error);\n setResultSet(null);\n setProgress(null);\n }\n }\n\n if (isMounted()) {\n setLoading(false);\n }\n }\n\n useEffect(() => {\n const { skip = false, resetResultSetOnChange } = options;\n\n const cubejsApi = options.cubejsApi || context?.cubejsApi;\n\n if (!cubejsApi) {\n throw new Error('Cube.js API client is not provided');\n }\n\n async function loadQuery() {\n if (!skip && isQueryPresent(query)) {\n if (!areQueriesEqual(currentQuery, query)) {\n if (resetResultSetOnChange == null || resetResultSetOnChange) {\n setResultSet(null);\n }\n setCurrentQuery(query);\n }\n\n setError(null);\n setLoading(true);\n\n try {\n if (subscribeRequest) {\n await subscribeRequest.unsubscribe();\n subscribeRequest = null;\n }\n\n if (options.subscribe) {\n subscribeRequest = cubejsApi.subscribe(\n query,\n {\n mutexObj: mutexRef.current,\n mutexKey: 'query',\n progressCallback,\n },\n (e, result) => {\n if (isMounted()) {\n if (e) {\n setError(e);\n } else {\n setResultSet(result);\n }\n setLoading(false);\n setProgress(null);\n }\n }\n );\n } else {\n await fetch();\n }\n } catch (e) {\n if (isMounted()) {\n setError(e);\n setResultSet(null);\n setLoading(false);\n setProgress(null);\n }\n }\n }\n }\n\n loadQuery();\n\n return () => {\n if (subscribeRequest) {\n subscribeRequest.unsubscribe();\n subscribeRequest = null;\n }\n };\n }, useDeepCompareMemoize([query, Object.keys((query && query.order) || {}), options, context]));\n\n return {\n isLoading,\n resultSet,\n error,\n progress,\n previousQuery: currentQuery,\n refetch: fetch\n };\n}\n","import { useCubeFetch } from './cube-fetch';\n\nexport function useCubeMeta(options = {}) {\n return useCubeFetch('meta', options);\n}\n"],"names":["createContext","QueryRenderer","React","Component","isQueryPresent","query","constructor","props","state","mutexObj","componentDidMount","queries","load","loadQueries","shouldComponentUpdate","nextProps","nextState","render","cubejsApi","loadSql","updateOnlyOnStateChange","equals","componentDidUpdate","prevProps","context","resetResultSetOnChange","setState","isLoading","error","sqlQuery","resultSet","sql","mutexKey","then","catch","Promise","all","resultPromises","toPairs","map","name","r","fromPairs","loadState","Error","response","plainError","message","toString","loadingState","contextType","CubeContext","defaultProps","QueryRendererWithTotals","restProps","totals","dimensions","timeDimensions","td","granularity","undefined","main","removeEmpty","obj","Object","fromEntries","entries","filter","v","k","Array","isArray","granularities","title","QueryBuilder","getDerivedStateFromProps","vizState","resolveMember","type","meta","reduce","memo","currentQuery","concat","m","index","dimension","defaultQuery","chartType","defaultChartType","validatedQuery","missingMembers","isFetchingMeta","dryRunResponse","initialVizState","orderMembersOrderKeys","prevContext","fetchMeta","schemaVersion","onSchemaChange","newMeta","refresh","metaError","richMetaError","metaErrorStack","stack","replace","updateQuery","getMissingMembers","getQueryMembers","member","resolvedMember","Boolean","prepareRenderProps","queryRendererProps","getName","toTimeDimension","rangeSelection","compareDateRange","dateRange","toFilter","operator","values","updateMethods","memberType","toQuery","add","remove","_","update","updateWith","members","splice","queryError","pivotConfig","flatFilters","uniqBy","prop","flattenFilters","filters","i","operators","filterOperatorsForMember","measures","segments","availableMeasures","availableDimensions","availableSegments","availableFilterMembers","availableMembers","membersGroupedByCube","membersForQuery","indexedMeasures","indexBy","indexedDimensions","cubeNames","uniq","keys","sort","cube","a","b","shortTitle","activeOrder","order","orderMembers","id","length","find","availableTimeDimensions","queryUpdate","updateMeasures","updateDimensions","updateSegments","updateTimeDimensions","updateFilters","updateChartType","newChartType","updateVizState","updateOrder","set","memberId","newOrder","orderMember","acc","reorder","sourceIndex","destinationIndex","nextArray","moveItemInArray","updatePivotConfig","moveItem","sourceAxis","destinationAxis","movePivotItem","config","limit","removeEmptyQueryFields","setQuery","setVizState","stateQuery","statePivotConfig","finalState","applyStateChangeHeuristics","vizStateSent","handleVizStateChange","currentState","onVizStateChanged","newVizState","pick","clone","runSetters","shouldApplyHeuristicOrder","defaultOrder","ResultSet","getNormalizedPivotConfig","shouldFetchDryRun","dryRun","queryOrder","current","pivotQuery","richQueryError","validateQuery","defaultHeuristics","newState","sessionGranularity","stateChangeHeuristics","disableHeuristics","wrapWithQueryRenderer","CubeProvider","children","useDeepCompareMemoize","value","ref","useRef","useIsMounted","isMounted","useEffect","useCubeFetch","method","options","useContext","mutexRef","setResponse","useState","setError","skip","loadOptions","ignoreSkip","queryCondition","coreOptions","args","refetch","useCubeSql","useDryRun","useLazyDryRun","result","useCubeQuery","setCurrentQuery","setLoading","setResultSet","progress","setProgress","subscribeRequest","progressCallback","progressResponse","fetch","loadQuery","areQueriesEqual","unsubscribe","subscribe","e","previousQuery","useCubeMeta"],"mappings":"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"}