@cubejs-client/react 1.3.82 → 1.3.83

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,4 +1,4 @@
1
- import React, { createContext, useRef, useEffect, useContext, useState } from 'react';
1
+ import React, { createContext, useRef, useContext, useState, useEffect } from 'react';
2
2
  import { equals, toPairs, fromPairs, uniqBy, prop, indexBy, uniq, pick, clone } from 'ramda';
3
3
  import { isQueryPresent, getQueryMembers, flattenFilters, moveItemInArray, movePivotItem, removeEmptyQueryFields, defaultOrder, ResultSet, validateQuery, defaultHeuristics, areQueriesEqual } from '@cubejs-client/core';
4
4
 
@@ -846,19 +846,7 @@ function useDeepCompareMemoize(value) {
846
846
  return ref.current;
847
847
  }
848
848
 
849
- function useIsMounted() {
850
- const isMounted = useRef(false);
851
- useEffect(() => {
852
- isMounted.current = true;
853
- return () => {
854
- isMounted.current = false;
855
- };
856
- }, []);
857
- return () => isMounted.current;
858
- }
859
-
860
849
  function useCubeFetch(method, options = {}) {
861
- const isMounted = useIsMounted();
862
850
  const context = useContext(CubeContext);
863
851
  const mutexRef = useRef({});
864
852
  const [response, setResponse] = useState({
@@ -886,20 +874,16 @@ function useCubeFetch(method, options = {}) {
886
874
  const args = method === 'meta' ? [coreOptions] : [query, coreOptions];
887
875
  try {
888
876
  const response = await cubeApi[method](...args);
889
- if (isMounted()) {
890
- setResponse({
891
- response,
892
- isLoading: false
893
- });
894
- }
877
+ setResponse({
878
+ response,
879
+ isLoading: false
880
+ });
895
881
  } catch (error) {
896
- if (isMounted()) {
897
- setError(error);
898
- setResponse({
899
- isLoading: false,
900
- response: null
901
- });
902
- }
882
+ setError(error);
883
+ setResponse({
884
+ isLoading: false,
885
+ response: null
886
+ });
903
887
  }
904
888
  }
905
889
  }
@@ -941,7 +925,6 @@ function useLazyDryRun(query, options = {}) {
941
925
 
942
926
  function useCubeQuery(query, options = {}) {
943
927
  const mutexRef = useRef({});
944
- const isMounted = useIsMounted();
945
928
  const [currentQuery, setCurrentQuery] = useState(null);
946
929
  const [isLoading, setLoading] = useState(!options.skip);
947
930
  const [resultSet, setResultSet] = useState(null);
@@ -972,20 +955,14 @@ function useCubeQuery(query, options = {}) {
972
955
  progressCallback,
973
956
  castNumerics: Boolean(typeof options.castNumerics === 'boolean' ? options.castNumerics : context?.options?.castNumerics)
974
957
  });
975
- if (isMounted()) {
976
- setResultSet(response);
977
- setProgress(null);
978
- }
958
+ setResultSet(response);
959
+ setProgress(null);
979
960
  } catch (error) {
980
- if (isMounted()) {
981
- setError(error);
982
- setResultSet(null);
983
- setProgress(null);
984
- }
985
- }
986
- if (isMounted()) {
987
- setLoading(false);
961
+ setError(error);
962
+ setResultSet(null);
963
+ setProgress(null);
988
964
  }
965
+ setLoading(false);
989
966
  }
990
967
  useEffect(() => {
991
968
  const {
@@ -1017,26 +994,22 @@ function useCubeQuery(query, options = {}) {
1017
994
  mutexKey: 'query',
1018
995
  progressCallback
1019
996
  }, (e, result) => {
1020
- if (isMounted()) {
1021
- if (e) {
1022
- setError(e);
1023
- } else {
1024
- setResultSet(result);
1025
- }
1026
- setLoading(false);
1027
- setProgress(null);
997
+ if (e) {
998
+ setError(e);
999
+ } else {
1000
+ setResultSet(result);
1028
1001
  }
1002
+ setLoading(false);
1003
+ setProgress(null);
1029
1004
  });
1030
1005
  } else {
1031
1006
  await fetch();
1032
1007
  }
1033
1008
  } catch (e) {
1034
- if (isMounted()) {
1035
- setError(e);
1036
- setResultSet(null);
1037
- setLoading(false);
1038
- setProgress(null);
1039
- }
1009
+ setError(e);
1010
+ setResultSet(null);
1011
+ setLoading(false);
1012
+ setProgress(null);
1040
1013
  }
1041
1014
  }
1042
1015
  }
@@ -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 static contextType = CubeContext;\n\n static defaultProps = {\n cubeApi: null,\n query: null,\n render: null,\n queries: null,\n loadSql: null,\n updateOnlyOnStateChange: false,\n resetResultSetOnChange: true\n };\n\n // @deprecated 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, cubeApi, 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.cubeApi !== cubeApi\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 cubeApi() {\n // eslint-disable-next-line react/destructuring-assignment\n return this.props.cubeApi || this.context && this.context.cubeApi;\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 cubeApi = this.cubeApi();\n\n if (query && isQueryPresent(query)) {\n if (loadSql === 'only') {\n cubeApi.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 cubeApi.sql(query, { mutexObj: this.mutexObj, mutexKey: 'sql' }),\n cubeApi.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 cubeApi.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 cubeApi = this.cubeApi();\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]) => cubeApi.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","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\nexport default QueryRendererWithTotals;\n","export function removeEmpty(obj) {\n if (Array.isArray(obj) || 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 static defaultProps = {\n cubeApi: 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\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?.cubeApi !== this.context?.cubeApi) {\n this.prevContext = this.context;\n await this.fetchMeta();\n }\n\n if (prevProps.schemaVersion !== schemaVersion) {\n try {\n const newMeta = await this.cubeApi().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.cubeApi()) {\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.cubeApi().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 cubeApi() {\n const { cubeApi } = this.props;\n // eslint-disable-next-line react/destructuring-assignment\n return cubeApi || (this.context && this.context.cubeApi);\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 ...(['set', 'notSet'].includes(member.operator) ? {} : { 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 || [])\n .map((id) => orderMembers.find((member) => member.id === id))\n .filter(Boolean);\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.cubeApi().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 { cubeApi, render, wrapWithQueryRenderer } = this.props;\n\n if (wrapWithQueryRenderer) {\n return (\n <QueryRenderer\n query={query}\n cubeApi={cubeApi}\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","import React from 'react';\nimport CubeContext from './CubeContext';\n\nexport default function CubeProvider({ cubeApi, children, options = {} }) {\n return (\n <CubeContext.Provider value={{\n cubeApi,\n options\n }}\n >\n {children}\n </CubeContext.Provider>\n );\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 cubeApi = options.cubeApi || context?.cubeApi;\n const query = loadOptions.query || options.query;\n\n const queryCondition = method === 'meta' ? true : query && isQueryPresent(query);\n\n if (cubeApi && (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 cubeApi[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(!options.skip);\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 cubeApi = options.cubeApi || context?.cubeApi;\n\n if (!cubeApi) {\n throw new Error('Cube 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 cubeApi.load(query, {\n mutexObj: mutexRef.current,\n mutexKey: 'query',\n progressCallback,\n castNumerics: Boolean(typeof options.castNumerics === 'boolean' ? options.castNumerics : context?.options?.castNumerics)\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 cubeApi = options.cubeApi || context?.cubeApi;\n\n if (!cubeApi) {\n throw new Error('Cube 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 = cubeApi.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","contextType","CubeContext","defaultProps","cubeApi","query","render","queries","loadSql","updateOnlyOnStateChange","resetResultSetOnChange","isQueryPresent","constructor","props","state","mutexObj","componentDidMount","load","loadQueries","shouldComponentUpdate","nextProps","nextState","equals","componentDidUpdate","prevProps","context","setState","isLoading","error","sqlQuery","resultSet","sql","mutexKey","then","catch","Promise","all","resultPromises","toPairs","map","name","r","fromPairs","loadState","Error","response","plainError","message","toString","loadingState","QueryRendererWithTotals","restProps","createElement","_extends","totals","dimensions","timeDimensions","td","granularity","undefined","main","removeEmpty","obj","Array","isArray","Object","fromEntries","entries","filter","v","k","granularities","title","QueryBuilder","stateChangeHeuristics","disableHeuristics","wrapWithQueryRenderer","defaultChartType","defaultQuery","initialVizState","onVizStateChanged","setQuery","vizState","setVizState","getDerivedStateFromProps","resolveMember","type","meta","reduce","memo","currentQuery","concat","m","index","dimension","chartType","validatedQuery","missingMembers","isFetchingMeta","dryRunResponse","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","includes","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","stateQuery","statePivotConfig","finalState","applyStateChangeHeuristics","vizStateSent","handleVizStateChange","currentState","newVizState","pick","clone","runSetters","shouldApplyHeuristicOrder","defaultOrder","ResultSet","getNormalizedPivotConfig","shouldFetchDryRun","dryRun","queryOrder","current","pivotQuery","richQueryError","validateQuery","defaultHeuristics","newState","sessionGranularity","CubeProvider","children","options","Provider","value","useDeepCompareMemoize","ref","useRef","useIsMounted","isMounted","useEffect","useCubeFetch","method","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","castNumerics","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/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 static contextType = CubeContext;\n\n static defaultProps = {\n cubeApi: null,\n query: null,\n render: null,\n queries: null,\n loadSql: null,\n updateOnlyOnStateChange: false,\n resetResultSetOnChange: true\n };\n\n // @deprecated 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, cubeApi, 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.cubeApi !== cubeApi\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 cubeApi() {\n // eslint-disable-next-line react/destructuring-assignment\n return this.props.cubeApi || this.context && this.context.cubeApi;\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 cubeApi = this.cubeApi();\n\n if (query && isQueryPresent(query)) {\n if (loadSql === 'only') {\n cubeApi.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 cubeApi.sql(query, { mutexObj: this.mutexObj, mutexKey: 'sql' }),\n cubeApi.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 cubeApi.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 cubeApi = this.cubeApi();\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]) => cubeApi.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","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\nexport default QueryRendererWithTotals;\n","export function removeEmpty(obj) {\n if (Array.isArray(obj) || 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 static defaultProps = {\n cubeApi: 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\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?.cubeApi !== this.context?.cubeApi) {\n this.prevContext = this.context;\n await this.fetchMeta();\n }\n\n if (prevProps.schemaVersion !== schemaVersion) {\n try {\n const newMeta = await this.cubeApi().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.cubeApi()) {\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.cubeApi().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 cubeApi() {\n const { cubeApi } = this.props;\n // eslint-disable-next-line react/destructuring-assignment\n return cubeApi || (this.context && this.context.cubeApi);\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 ...(['set', 'notSet'].includes(member.operator) ? {} : { 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 || [])\n .map((id) => orderMembers.find((member) => member.id === id))\n .filter(Boolean);\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.cubeApi().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 { cubeApi, render, wrapWithQueryRenderer } = this.props;\n\n if (wrapWithQueryRenderer) {\n return (\n <QueryRenderer\n query={query}\n cubeApi={cubeApi}\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","import React from 'react';\nimport CubeContext from './CubeContext';\n\nexport default function CubeProvider({ cubeApi, children, options = {} }) {\n return (\n <CubeContext.Provider value={{\n cubeApi,\n options\n }}\n >\n {children}\n </CubeContext.Provider>\n );\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 { useContext, useEffect, useState, useRef } from 'react';\nimport { isQueryPresent } from '@cubejs-client/core';\n\nimport CubeContext from '../CubeContext';\nimport useDeepCompareMemoize from './deep-compare-memoize';\n\nexport function useCubeFetch(method, options = {}) {\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 cubeApi = options.cubeApi || context?.cubeApi;\n const query = loadOptions.query || options.query;\n\n const queryCondition =\n method === 'meta' ? true : query && isQueryPresent(query);\n\n if (cubeApi && (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 cubeApi[method](...args);\n\n setResponse({\n response,\n isLoading: false,\n });\n } catch (error) {\n setError(error);\n setResponse({\n isLoading: false,\n response: null,\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';\n\nexport function useCubeQuery(query, options = {}) {\n const mutexRef = useRef({});\n const [currentQuery, setCurrentQuery] = useState(null);\n const [isLoading, setLoading] = useState(!options.skip);\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 cubeApi = options.cubeApi || context?.cubeApi;\n\n if (!cubeApi) {\n throw new Error('Cube 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 cubeApi.load(query, {\n mutexObj: mutexRef.current,\n mutexKey: 'query',\n progressCallback,\n castNumerics: Boolean(typeof options.castNumerics === 'boolean' ? options.castNumerics : context?.options?.castNumerics)\n });\n\n setResultSet(response);\n setProgress(null);\n } catch (error) {\n setError(error);\n setResultSet(null);\n setProgress(null);\n }\n\n setLoading(false);\n }\n\n useEffect(() => {\n const { skip = false, resetResultSetOnChange } = options;\n\n const cubeApi = options.cubeApi || context?.cubeApi;\n\n if (!cubeApi) {\n throw new Error('Cube 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 = cubeApi.subscribe(\n query,\n {\n mutexObj: mutexRef.current,\n mutexKey: 'query',\n progressCallback,\n },\n (e, result) => {\n if (e) {\n setError(e);\n } else {\n setResultSet(result);\n }\n setLoading(false);\n setProgress(null);\n }\n );\n } else {\n await fetch();\n }\n } catch (e) {\n setError(e);\n setResultSet(null);\n setLoading(false);\n setProgress(null);\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","contextType","CubeContext","defaultProps","cubeApi","query","render","queries","loadSql","updateOnlyOnStateChange","resetResultSetOnChange","isQueryPresent","constructor","props","state","mutexObj","componentDidMount","load","loadQueries","shouldComponentUpdate","nextProps","nextState","equals","componentDidUpdate","prevProps","context","setState","isLoading","error","sqlQuery","resultSet","sql","mutexKey","then","catch","Promise","all","resultPromises","toPairs","map","name","r","fromPairs","loadState","Error","response","plainError","message","toString","loadingState","QueryRendererWithTotals","restProps","createElement","_extends","totals","dimensions","timeDimensions","td","granularity","undefined","main","removeEmpty","obj","Array","isArray","Object","fromEntries","entries","filter","v","k","granularities","title","QueryBuilder","stateChangeHeuristics","disableHeuristics","wrapWithQueryRenderer","defaultChartType","defaultQuery","initialVizState","onVizStateChanged","setQuery","vizState","setVizState","getDerivedStateFromProps","resolveMember","type","meta","reduce","memo","currentQuery","concat","m","index","dimension","chartType","validatedQuery","missingMembers","isFetchingMeta","dryRunResponse","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","includes","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","stateQuery","statePivotConfig","finalState","applyStateChangeHeuristics","vizStateSent","handleVizStateChange","currentState","newVizState","pick","clone","runSetters","shouldApplyHeuristicOrder","defaultOrder","ResultSet","getNormalizedPivotConfig","shouldFetchDryRun","dryRun","queryOrder","current","pivotQuery","richQueryError","validateQuery","defaultHeuristics","newState","sessionGranularity","CubeProvider","children","options","Provider","value","useDeepCompareMemoize","ref","useRef","useCubeFetch","method","useContext","mutexRef","setResponse","useState","setError","skip","loadOptions","ignoreSkip","queryCondition","coreOptions","args","useEffect","refetch","useCubeSql","useDryRun","useLazyDryRun","result","useCubeQuery","setCurrentQuery","setLoading","setResultSet","progress","setProgress","subscribeRequest","progressCallback","progressResponse","fetch","castNumerics","loadQuery","areQueriesEqual","unsubscribe","subscribe","e","previousQuery","useCubeMeta"],"mappings":"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"}
@@ -1008,25 +1008,11 @@
1008
1008
  return ref.current;
1009
1009
  }
1010
1010
 
1011
- function useIsMounted() {
1012
- var isMounted = React.useRef(false);
1013
- React.useEffect(function () {
1014
- isMounted.current = true;
1015
- return function () {
1016
- isMounted.current = false;
1017
- };
1018
- }, []);
1019
- return function () {
1020
- return isMounted.current;
1021
- };
1022
- }
1023
-
1024
1011
  function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1025
1012
  function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty__default['default'](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1026
1013
  function useCubeFetch(method) {
1027
1014
  var _options$query;
1028
1015
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1029
- var isMounted = useIsMounted();
1030
1016
  var context = React.useContext(CubeContext);
1031
1017
  var mutexRef = React.useRef({});
1032
1018
  var _useState = React.useState({
@@ -1065,7 +1051,7 @@
1065
1051
  query = loadOptions.query || options.query;
1066
1052
  queryCondition = method === 'meta' ? true : query && core.isQueryPresent(query);
1067
1053
  if (!(cubeApi && (ignoreSkip || !skip) && queryCondition)) {
1068
- _context.next = 20;
1054
+ _context.next = 21;
1069
1055
  break;
1070
1056
  }
1071
1057
  setError(null);
@@ -1083,25 +1069,21 @@
1083
1069
  return cubeApi[method].apply(cubeApi, args);
1084
1070
  case 13:
1085
1071
  _response = _context.sent;
1086
- if (isMounted()) {
1087
- setResponse({
1088
- response: _response,
1089
- isLoading: false
1090
- });
1091
- }
1092
- _context.next = 20;
1072
+ setResponse({
1073
+ response: _response,
1074
+ isLoading: false
1075
+ });
1076
+ _context.next = 21;
1093
1077
  break;
1094
1078
  case 17:
1095
1079
  _context.prev = 17;
1096
1080
  _context.t0 = _context["catch"](10);
1097
- if (isMounted()) {
1098
- setError(_context.t0);
1099
- setResponse({
1100
- isLoading: false,
1101
- response: null
1102
- });
1103
- }
1104
- case 20:
1081
+ setError(_context.t0);
1082
+ setResponse({
1083
+ isLoading: false,
1084
+ response: null
1085
+ });
1086
+ case 21:
1105
1087
  case "end":
1106
1088
  return _context.stop();
1107
1089
  }
@@ -1155,7 +1137,6 @@
1155
1137
  function useCubeQuery(query) {
1156
1138
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1157
1139
  var mutexRef = React.useRef({});
1158
- var isMounted = useIsMounted();
1159
1140
  var _useState = React.useState(null),
1160
1141
  _useState2 = _slicedToArray__default['default'](_useState, 2),
1161
1142
  currentQuery = _useState2[0],
@@ -1214,29 +1195,23 @@
1214
1195
  });
1215
1196
  case 10:
1216
1197
  response = _context2.sent;
1217
- if (isMounted()) {
1218
- setResultSet(response);
1219
- setProgress(null);
1220
- }
1221
- _context2.next = 17;
1198
+ setResultSet(response);
1199
+ setProgress(null);
1200
+ _context2.next = 20;
1222
1201
  break;
1223
- case 14:
1224
- _context2.prev = 14;
1202
+ case 15:
1203
+ _context2.prev = 15;
1225
1204
  _context2.t0 = _context2["catch"](7);
1226
- if (isMounted()) {
1227
- setError(_context2.t0);
1228
- setResultSet(null);
1229
- setProgress(null);
1230
- }
1231
- case 17:
1232
- if (isMounted()) {
1233
- setLoading(false);
1234
- }
1235
- case 18:
1205
+ setError(_context2.t0);
1206
+ setResultSet(null);
1207
+ setProgress(null);
1208
+ case 20:
1209
+ setLoading(false);
1210
+ case 21:
1236
1211
  case "end":
1237
1212
  return _context2.stop();
1238
1213
  }
1239
- }, _callee2, null, [[7, 14]]);
1214
+ }, _callee2, null, [[7, 15]]);
1240
1215
  }));
1241
1216
  return _fetch.apply(this, arguments);
1242
1217
  }
@@ -1257,7 +1232,7 @@
1257
1232
  while (1) switch (_context.prev = _context.next) {
1258
1233
  case 0:
1259
1234
  if (!(!skip && core.isQueryPresent(query))) {
1260
- _context.next = 20;
1235
+ _context.next = 23;
1261
1236
  break;
1262
1237
  }
1263
1238
  if (!core.areQueriesEqual(currentQuery, query)) {
@@ -1287,15 +1262,13 @@
1287
1262
  mutexKey: 'query',
1288
1263
  progressCallback: progressCallback
1289
1264
  }, function (e, result) {
1290
- if (isMounted()) {
1291
- if (e) {
1292
- setError(e);
1293
- } else {
1294
- setResultSet(result);
1295
- }
1296
- setLoading(false);
1297
- setProgress(null);
1265
+ if (e) {
1266
+ setError(e);
1267
+ } else {
1268
+ setResultSet(result);
1298
1269
  }
1270
+ setLoading(false);
1271
+ setProgress(null);
1299
1272
  });
1300
1273
  _context.next = 15;
1301
1274
  break;
@@ -1303,18 +1276,16 @@
1303
1276
  _context.next = 15;
1304
1277
  return fetch();
1305
1278
  case 15:
1306
- _context.next = 20;
1279
+ _context.next = 23;
1307
1280
  break;
1308
1281
  case 17:
1309
1282
  _context.prev = 17;
1310
1283
  _context.t0 = _context["catch"](4);
1311
- if (isMounted()) {
1312
- setError(_context.t0);
1313
- setResultSet(null);
1314
- setLoading(false);
1315
- setProgress(null);
1316
- }
1317
- case 20:
1284
+ setError(_context.t0);
1285
+ setResultSet(null);
1286
+ setLoading(false);
1287
+ setProgress(null);
1288
+ case 23:
1318
1289
  case "end":
1319
1290
  return _context.stop();
1320
1291
  }