@cubejs-client/react 0.29.53 → 0.30.4

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,36 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.30.4](https://github.com/cube-js/cube.js/compare/v0.30.3...v0.30.4) (2022-05-20)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **playground:** Remove all time time dimension without granularity ([#4564](https://github.com/cube-js/cube.js/issues/4564)) ([054f488](https://github.com/cube-js/cube.js/commit/054f488ce6b8bfa103cd435f99178ca1f2fa38c7))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.30.0](https://github.com/cube-js/cube.js/compare/v0.29.57...v0.30.0) (2022-05-11)
18
+
19
+ **Note:** Version bump only for package @cubejs-client/react
20
+
21
+
22
+
23
+
24
+
25
+ ## [0.29.54](https://github.com/cube-js/cube.js/compare/v0.29.53...v0.29.54) (2022-05-03)
26
+
27
+
28
+ ### Features
29
+
30
+ * Detailed client TS types ([#4446](https://github.com/cube-js/cube.js/issues/4446)) Thanks [@reify-thomas-smith](https://github.com/reify-thomas-smith) ! ([977cce0](https://github.com/cube-js/cube.js/commit/977cce0c440bc73c0e6b5ad0c10af926b7386873)), closes [#4202](https://github.com/cube-js/cube.js/issues/4202)
31
+
32
+
33
+
34
+
35
+
6
36
  ## [0.29.53](https://github.com/cube-js/cube.js/compare/v0.29.52...v0.29.53) (2022-04-29)
7
37
 
8
38
 
@@ -25,7 +25,7 @@ import 'core-js/modules/es.date.to-string.js';
25
25
  import 'core-js/modules/es.regexp.to-string.js';
26
26
  import React, { createContext, useRef, useEffect, useContext, useState } from 'react';
27
27
  import { equals, toPairs, fromPairs, uniqBy, prop, indexBy, uniq, pick, clone } from 'ramda';
28
- import { isQueryPresent, getQueryMembers, flattenFilters, moveItemInArray, movePivotItem, ResultSet, defaultOrder, defaultHeuristics, areQueriesEqual } from '@cubejs-client/core';
28
+ import { isQueryPresent, getQueryMembers, flattenFilters, moveItemInArray, movePivotItem, removeEmptyQueryFields, ResultSet, defaultOrder, validateQuery, defaultHeuristics, areQueriesEqual } from '@cubejs-client/core';
29
29
  import _typeof from '@babel/runtime/helpers/typeof';
30
30
  import 'core-js/modules/es.regexp.exec.js';
31
31
  import 'core-js/modules/es.string.split.js';
@@ -956,7 +956,7 @@ var QueryBuilder = /*#__PURE__*/function (_React$Component) {
956
956
  value: function updateQuery(queryUpdate) {
957
957
  var query = this.state.query;
958
958
  this.updateVizState({
959
- query: _objectSpread$4(_objectSpread$4({}, query), queryUpdate)
959
+ query: removeEmptyQueryFields(_objectSpread$4(_objectSpread$4({}, query), queryUpdate))
960
960
  });
961
961
  }
962
962
  }, {
@@ -1087,11 +1087,7 @@ var QueryBuilder = /*#__PURE__*/function (_React$Component) {
1087
1087
  var _ref9 = state || this.state,
1088
1088
  query = _ref9.query;
1089
1089
 
1090
- return _objectSpread$4(_objectSpread$4({}, query), {}, {
1091
- filters: (query.filters || []).filter(function (f) {
1092
- return f.operator;
1093
- })
1094
- });
1090
+ return validateQuery(query);
1095
1091
  }
1096
1092
  }, {
1097
1093
  key: "defaultHeuristics",
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-react.esm.js","sources":["../src/CubeContext.js","../src/utils.js","../src/QueryRenderer.jsx","../src/QueryRendererWithTotals.jsx","../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 Anser from 'anser';\nimport { encode } from 'html-entities';\n\nconst colors = {\n reset: 'orange',\n black: 'black',\n red: 'red',\n green: 'green',\n yellow: 'orange',\n blue: 'blue',\n magenta: 'magenta',\n cyan: 'cyan',\n gray: 'gray',\n lightgrey: 'lightgrey',\n darkgrey: 'darkgrey',\n};\n\nconst anserMap = {\n 'ansi-bright-black': 'black',\n 'ansi-bright-yellow': 'yellow',\n 'ansi-yellow': 'yellow',\n 'ansi-bright-green': 'green',\n 'ansi-green': 'green',\n 'ansi-bright-cyan': 'cyan',\n 'ansi-cyan': 'cyan',\n 'ansi-bright-red': 'red',\n 'ansi-red': 'red',\n 'ansi-bright-magenta': 'magenta',\n 'ansi-magenta': 'magenta',\n 'ansi-white': 'darkgrey',\n};\n\nexport function generateAnsiHTML(txt) {\n const arr = new Anser().ansiToJson(encode(txt), {\n use_classes: true,\n });\n\n let result = '';\n let open = false;\n for (let index = 0; index < arr.length; ++index) {\n const c = arr[index];\n const { content } = c;\n const { fg } = c;\n\n const contentParts = content.split('\\n');\n for (let j = 0; j < contentParts.length; ++j) {\n if (!open) {\n result += '<span data-ansi-line=\"true\">';\n open = true;\n }\n const part = contentParts[j].replace('\\r', '');\n const color = colors[anserMap[fg]];\n\n if (color != null) {\n result += `<span style=\"color: ${color};\">${part}</span>`;\n } else {\n if (fg != null) {\n console.log('Missing color mapping: ', fg);\n }\n\n result += `<span>${part}</span>`;\n }\n\n if (j < contentParts.length - 1) {\n result += '</span>';\n open = false;\n result += '<br/>';\n }\n }\n }\n\n if (open) {\n result += '</span>';\n }\n\n return result;\n}\n\nexport 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 { equals, toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent } from '@cubejs-client/core';\n\nimport CubeContext from './CubeContext';\nimport { generateAnsiHTML } from './utils';\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(generateAnsiHTML(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","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 ResultSet\n} from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer.jsx';\nimport CubeContext from './CubeContext';\nimport { generateAnsiHTML, 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 metaErrorStack = null;\n\n try {\n this.setState({ isFetchingMeta: true });\n meta = await this.cubejsApi().meta();\n } catch (error) {\n metaError = error;\n metaErrorStack = error.response?.stack?.replace(error.message || '', '') || '';\n }\n\n this.setState(\n {\n meta,\n metaError: metaError ? new Error(generateAnsiHTML(metaError.message || metaError.toString())) : null,\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 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 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 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 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: {\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(generateAnsiHTML(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 {\n ...query,\n filters: (query.filters || []).filter((f) => f.operator),\n };\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(true);\n\n useEffect(() => {\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';\n\nexport function useCubeQuery(query, options = {}) {\n const mutexRef = useRef({});\n const isMounted = useRef(true);\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.current) {\n setResultSet(response);\n setProgress(null);\n }\n } catch (error) {\n if (isMounted.current) {\n setError(error);\n setResultSet(null);\n setProgress(null);\n }\n }\n\n if (isMounted.current) {\n setLoading(false);\n }\n }\n\n useEffect(() => {\n return () => {\n isMounted.current = 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.current) {\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.current) {\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","colors","reset","black","red","green","yellow","blue","magenta","cyan","gray","lightgrey","darkgrey","anserMap","generateAnsiHTML","txt","arr","Anser","ansiToJson","encode","use_classes","result","open","index","length","c","content","fg","contentParts","split","j","part","replace","color","console","log","removeEmpty","obj","Object","fromEntries","entries","filter","v","map","k","Array","isArray","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","name","r","fromPairs","loadState","Error","message","toString","loadingState","React","Component","contextType","CubeContext","defaultProps","QueryRendererWithTotals","restProps","totals","dimensions","timeDimensions","td","granularity","undefined","main","granularities","title","QueryBuilder","metaError","metaErrorStack","isFetchingMeta","meta","response","stack","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","_","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","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","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","f","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","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/utils.js","../src/QueryRenderer.jsx","../src/QueryRendererWithTotals.jsx","../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 Anser from 'anser';\nimport { encode } from 'html-entities';\n\nconst colors = {\n reset: 'orange',\n black: 'black',\n red: 'red',\n green: 'green',\n yellow: 'orange',\n blue: 'blue',\n magenta: 'magenta',\n cyan: 'cyan',\n gray: 'gray',\n lightgrey: 'lightgrey',\n darkgrey: 'darkgrey',\n};\n\nconst anserMap = {\n 'ansi-bright-black': 'black',\n 'ansi-bright-yellow': 'yellow',\n 'ansi-yellow': 'yellow',\n 'ansi-bright-green': 'green',\n 'ansi-green': 'green',\n 'ansi-bright-cyan': 'cyan',\n 'ansi-cyan': 'cyan',\n 'ansi-bright-red': 'red',\n 'ansi-red': 'red',\n 'ansi-bright-magenta': 'magenta',\n 'ansi-magenta': 'magenta',\n 'ansi-white': 'darkgrey',\n};\n\nexport function generateAnsiHTML(txt) {\n const arr = new Anser().ansiToJson(encode(txt), {\n use_classes: true,\n });\n\n let result = '';\n let open = false;\n for (let index = 0; index < arr.length; ++index) {\n const c = arr[index];\n const { content } = c;\n const { fg } = c;\n\n const contentParts = content.split('\\n');\n for (let j = 0; j < contentParts.length; ++j) {\n if (!open) {\n result += '<span data-ansi-line=\"true\">';\n open = true;\n }\n const part = contentParts[j].replace('\\r', '');\n const color = colors[anserMap[fg]];\n\n if (color != null) {\n result += `<span style=\"color: ${color};\">${part}</span>`;\n } else {\n if (fg != null) {\n console.log('Missing color mapping: ', fg);\n }\n\n result += `<span>${part}</span>`;\n }\n\n if (j < contentParts.length - 1) {\n result += '</span>';\n open = false;\n result += '<br/>';\n }\n }\n }\n\n if (open) {\n result += '</span>';\n }\n\n return result;\n}\n\nexport 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 { equals, toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent } from '@cubejs-client/core';\n\nimport CubeContext from './CubeContext';\nimport { generateAnsiHTML } from './utils';\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(generateAnsiHTML(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","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 { generateAnsiHTML, 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 metaErrorStack = null;\n\n try {\n this.setState({ isFetchingMeta: true });\n meta = await this.cubejsApi().meta();\n } catch (error) {\n metaError = error;\n metaErrorStack = error.response?.stack?.replace(error.message || '', '') || '';\n }\n\n this.setState(\n {\n meta,\n metaError: metaError ? new Error(generateAnsiHTML(metaError.message || metaError.toString())) : null,\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 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 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(generateAnsiHTML(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(true);\n\n useEffect(() => {\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';\n\nexport function useCubeQuery(query, options = {}) {\n const mutexRef = useRef({});\n const isMounted = useRef(true);\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.current) {\n setResultSet(response);\n setProgress(null);\n }\n } catch (error) {\n if (isMounted.current) {\n setError(error);\n setResultSet(null);\n setProgress(null);\n }\n }\n\n if (isMounted.current) {\n setLoading(false);\n }\n }\n\n useEffect(() => {\n return () => {\n isMounted.current = 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.current) {\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.current) {\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","colors","reset","black","red","green","yellow","blue","magenta","cyan","gray","lightgrey","darkgrey","anserMap","generateAnsiHTML","txt","arr","Anser","ansiToJson","encode","use_classes","result","open","index","length","c","content","fg","contentParts","split","j","part","replace","color","console","log","removeEmpty","obj","Object","fromEntries","entries","filter","v","map","k","Array","isArray","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","name","r","fromPairs","loadState","Error","message","toString","loadingState","React","Component","contextType","CubeContext","defaultProps","QueryRendererWithTotals","restProps","totals","dimensions","timeDimensions","td","granularity","undefined","main","granularities","title","QueryBuilder","metaError","metaErrorStack","isFetchingMeta","meta","response","stack","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","_","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","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","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","useCubeQuery","setCurrentQuery","setLoading","setResultSet","progress","setProgress","subscribeRequest","progressCallback","progressResponse","fetch","loadQuery","areQueriesEqual","unsubscribe","subscribe","e","previousQuery","useCubeMeta"],"mappings":"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"}
@@ -979,7 +979,7 @@ var QueryBuilder = /*#__PURE__*/function (_React$Component) {
979
979
  value: function updateQuery(queryUpdate) {
980
980
  var query = this.state.query;
981
981
  this.updateVizState({
982
- query: _objectSpread$4(_objectSpread$4({}, query), queryUpdate)
982
+ query: core.removeEmptyQueryFields(_objectSpread$4(_objectSpread$4({}, query), queryUpdate))
983
983
  });
984
984
  }
985
985
  }, {
@@ -1110,11 +1110,7 @@ var QueryBuilder = /*#__PURE__*/function (_React$Component) {
1110
1110
  var _ref9 = state || this.state,
1111
1111
  query = _ref9.query;
1112
1112
 
1113
- return _objectSpread$4(_objectSpread$4({}, query), {}, {
1114
- filters: (query.filters || []).filter(function (f) {
1115
- return f.operator;
1116
- })
1117
- });
1113
+ return core.validateQuery(query);
1118
1114
  }
1119
1115
  }, {
1120
1116
  key: "defaultHeuristics",