@cubejs-client/vue3 0.28.52 → 0.29.8

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,38 @@
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.29.8](https://github.com/cube-js/cube.js/compare/v0.29.7...v0.29.8) (2021-12-21)
7
+
8
+ **Note:** Version bump only for package @cubejs-client/vue3
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.29.5](https://github.com/cube-js/cube.js/compare/v0.29.4...v0.29.5) (2021-12-17)
15
+
16
+ **Note:** Version bump only for package @cubejs-client/vue3
17
+
18
+
19
+
20
+
21
+
22
+ # [0.29.0](https://github.com/cube-js/cube.js/compare/v0.28.67...v0.29.0) (2021-12-14)
23
+
24
+ **Note:** Version bump only for package @cubejs-client/vue3
25
+
26
+
27
+
28
+
29
+
30
+ ## [0.28.57](https://github.com/cube-js/cube.js/compare/v0.28.56...v0.28.57) (2021-11-16)
31
+
32
+ **Note:** Version bump only for package @cubejs-client/vue3
33
+
34
+
35
+
36
+
37
+
6
38
  ## [0.28.52](https://github.com/cube-js/cube.js/compare/v0.28.51...v0.28.52) (2021-11-03)
7
39
 
8
40
  **Note:** Version bump only for package @cubejs-client/vue3
@@ -30,9 +30,9 @@ import 'core-js/modules/es.array.find.js';
30
30
  import 'core-js/modules/es.array.find-index.js';
31
31
  import 'core-js/modules/es.array.splice.js';
32
32
 
33
- function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
33
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
34
34
 
35
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
36
36
  var QueryRenderer = {
37
37
  props: {
38
38
  query: {
@@ -339,9 +339,9 @@ var QueryRenderer = {
339
339
  }
340
340
  };
341
341
 
342
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
342
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
343
343
 
344
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
344
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
345
345
  var QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];
346
346
 
347
347
  var toOrderMember = function toOrderMember(member) {
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-vue3.esm.js","sources":["../src/QueryRenderer.js","../src/QueryBuilder.js","../src/index.js"],"sourcesContent":["import { toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';\nimport { h as createElement } from 'vue';\n\nexport default {\n props: {\n query: {\n type: [Object, Array],\n default: () => ({}),\n },\n // TODO: validate with current react implementation\n queries: {\n type: Object,\n },\n loadSql: {\n required: false,\n },\n cubejsApi: {\n type: Object,\n required: true,\n },\n builderProps: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n chartType: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n mutexObj: {},\n error: undefined,\n resultSet: undefined,\n loading: false,\n sqlQuery: undefined,\n };\n },\n async mounted() {\n const { query, queries } = this;\n\n if (isQueryPresent(query)) {\n await this.load();\n } else if (isQueryPresent(queries)) {\n await this.loadQueries(queries);\n }\n },\n render() {\n const { $slots, resultSet, error, loading, sqlQuery } = this;\n const empty = createElement('div', {});\n let slot = this.$slots.empty ? this.$slots.empty() : empty;\n let controls = createElement('div', {});\n const onlyDefault = !('empty' in this.$slots) && !('error' in this.$slots);\n\n if ($slots.builder && this.builderProps.measures) {\n controls = $slots.builder({ ...this.builderProps });\n }\n\n if ((!loading && resultSet && !error) || onlyDefault) {\n let slotProps = {\n resultSet,\n sqlQuery,\n query: this.builderProps.query || this.query,\n };\n\n if (onlyDefault) {\n slotProps = {\n loading,\n error,\n refetch: this.load,\n ...this.builderProps,\n ...slotProps,\n };\n }\n slot = $slots.default ? $slots.default(slotProps) : slot;\n } else if (error) {\n slot = $slots.error ? $slots.error({ error, sqlQuery }) : slot;\n }\n\n return createElement('div', {}, [controls, slot]);\n },\n methods: {\n async load() {\n const { query } = this;\n\n if (!isQueryPresent(query)) {\n return;\n }\n\n try {\n this.loading = true;\n this.error = null;\n this.resultSet = null;\n\n if (this.loadSql === 'only') {\n this.sqlQuery = await this.cubejsApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n } else if (this.loadSql) {\n this.sqlQuery = await this.cubejsApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n this.resultSet = await this.cubejsApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n } else {\n this.resultSet = await this.cubejsApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n }\n\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.resultSet = undefined;\n this.loading = false;\n }\n },\n async loadQueries() {\n const { queries } = this;\n try {\n this.error = undefined;\n this.loading = true;\n\n const resultPromises = Promise.all(\n toPairs(queries).map(([name, query]) =>\n this.cubejsApi\n .load(query, {\n mutexObj: this.mutexObj,\n mutexKey: name,\n })\n .then((r) => [name, r])\n )\n );\n\n this.resultSet = fromPairs(await resultPromises);\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.loading = false;\n }\n },\n },\n watch: {\n loading(loading) {\n if (loading === false) {\n this.$emit('queryStatus', {\n isLoading: false,\n error: this.error,\n resultSet: this.resultSet,\n });\n } else {\n this.$emit('queryStatus', { isLoading: true });\n }\n },\n cubejsApi() {\n this.load();\n },\n chartType() {\n this.load();\n },\n query: {\n deep: true,\n handler(query, prevQuery) {\n if (!areQueriesEqual(query, prevQuery)) {\n this.load();\n }\n },\n },\n queries: {\n handler(val) {\n if (val) {\n this.loadQueries();\n }\n },\n deep: true,\n },\n },\n};\n","import {\n isQueryPresent,\n defaultOrder,\n defaultHeuristics,\n GRANULARITIES,\n ResultSet,\n getOrderMembersFromOrder,\n moveItemInArray,\n movePivotItem,\n areQueriesEqual,\n} from '@cubejs-client/core';\nimport { h } from 'vue';\nimport { clone, equals } from 'ramda';\n\nimport QueryRenderer from './QueryRenderer';\n\nconst QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];\n\nconst toOrderMember = (member) => ({\n id: member.name,\n title: member.title,\n});\n\nconst reduceOrderMembers = (array) =>\n array.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []);\n\nexport default {\n components: {\n QueryRenderer,\n },\n props: {\n query: {\n type: Object,\n default: () => ({}),\n },\n cubejsApi: {\n type: Object,\n required: true,\n },\n initialChartType: {\n type: String,\n default: () => 'line',\n },\n disableHeuristics: {\n type: Boolean,\n },\n stateChangeHeuristics: {\n type: Function,\n },\n initialVizState: {\n type: Object,\n default: () => ({}),\n },\n },\n data() {\n const {\n query = this.query,\n chartType = this.initialChartType,\n pivotConfig,\n } = this.initialVizState;\n\n return {\n initialQuery: query,\n skipHeuristics: true,\n meta: undefined,\n mutex: {},\n chartType,\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n filters: [],\n availableMeasures: [],\n availableDimensions: [],\n availableTimeDimensions: [],\n availableSegments: [],\n limit: null,\n offset: null,\n renewQuery: false,\n order: null,\n prevValidatedQuery: null,\n granularities: GRANULARITIES,\n pivotConfig: ResultSet.getNormalizedPivotConfig(query || {}, pivotConfig),\n };\n },\n\n render() {\n const {\n chartType,\n cubejsApi,\n dimensions,\n filters,\n measures,\n meta,\n query,\n segments,\n timeDimensions,\n validatedQuery,\n isQueryPresent,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n } = this;\n\n let builderProps = {};\n\n if (meta) {\n builderProps = {\n query,\n validatedQuery,\n isQueryPresent,\n chartType,\n measures,\n dimensions,\n segments,\n timeDimensions,\n filters,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n updateChartType: this.updateChart,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n setOrder: this.setOrder,\n setQuery: this.setQuery,\n pivotConfig: this.pivotConfig,\n updateOrder: {\n set: (memberId, newOrder) => {\n this.order = reduceOrderMembers(\n orderMembers.map((orderMember) => ({\n ...orderMember,\n order: orderMember.id === memberId ? newOrder : orderMember.order,\n }))\n );\n },\n update: (newOrder) => {\n this.order = newOrder;\n },\n reorder: (sourceIndex, destinationIndex) => {\n this.order = reduceOrderMembers(\n moveItemInArray(orderMembers, sourceIndex, destinationIndex)\n );\n },\n },\n updatePivotConfig: {\n moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {\n this.pivotConfig = movePivotItem(\n this.pivotConfig,\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n );\n },\n update: (pivotConfig) => {\n this.pivotConfig = {\n x: pivotConfig.x || this.pivotConfig.x,\n y: pivotConfig.y || this.pivotConfig.y,\n };\n },\n },\n };\n\n QUERY_ELEMENTS.forEach((elementName) => {\n const name = elementName.charAt(0).toUpperCase() + elementName.slice(1);\n\n builderProps[`add${name}`] = (member) => {\n this.addMember(elementName, member);\n };\n\n builderProps[`update${name}`] = (member, updateWith) => {\n this.updateMember(elementName, member, updateWith);\n };\n\n builderProps[`remove${name}`] = (member) => {\n this.removeMember(elementName, member);\n };\n\n builderProps[`set${name}`] = (members) => {\n this.setMembers(elementName, members);\n };\n });\n }\n\n return h(\n QueryRenderer,\n {\n query: this.validatedQuery,\n cubejsApi,\n builderProps,\n slots: this.$slots,\n on: {\n queryStatus: (event) => {\n this.$emit('queryStatus', event);\n },\n },\n },\n this.$slots\n );\n },\n computed: {\n isQueryPresent() {\n const { validatedQuery } = this;\n\n return isQueryPresent(validatedQuery);\n },\n orderMembers() {\n return getOrderMembersFromOrder(\n [\n ...this.measures,\n ...this.dimensions,\n ...this.timeDimensions.map(({ dimension }) => toOrderMember(dimension)),\n ]\n .map((member, index) => {\n const id = member.name || member.id;\n\n if (!id) {\n return false;\n }\n\n return {\n index,\n id,\n title: member.title,\n };\n })\n .filter(Boolean),\n this.order\n );\n },\n vizState() {\n return {\n query: this.validatedQuery,\n chartType: this.chartType,\n pivotConfig: this.pivotConfig,\n };\n },\n validatedQuery() {\n let validatedQuery = {};\n let toQuery = (member) => member.name;\n // TODO: implement timezone\n\n let hasElements = false;\n QUERY_ELEMENTS.forEach((element) => {\n if (element === 'timeDimensions') {\n toQuery = (member) => ({\n dimension: member.dimension.name,\n granularity: member.granularity,\n dateRange: member.dateRange,\n });\n } else if (element === 'filters') {\n toQuery = (member) => ({\n member: member.member.name,\n operator: member.operator,\n values: member.values,\n });\n }\n\n if (this[element].length > 0) {\n validatedQuery[element] = this[element].map((x) => toQuery(x));\n\n hasElements = true;\n }\n });\n\n if (validatedQuery.filters) {\n validatedQuery.filters = validatedQuery.filters.filter((f) => f.operator);\n }\n\n // only set limit and offset if there are elements otherwise an invalid request with just limit/offset\n // gets sent when the component is first mounted, but before the actual query is constructed.\n if (hasElements) {\n if (this.limit) {\n validatedQuery.limit = this.limit;\n }\n\n if (this.offset) {\n validatedQuery.offset = this.offset;\n }\n\n if (this.order) {\n validatedQuery.order = this.order;\n }\n\n if (this.renewQuery) {\n validatedQuery.renewQuery = this.renewQuery;\n }\n }\n\n if (\n !this.skipHeuristics &&\n !this.disableHeuristics &&\n isQueryPresent(validatedQuery) &&\n this.meta\n ) {\n const heuristicsFn = this.stateChangeHeuristics || defaultHeuristics;\n const { query, chartType, shouldApplyHeuristicOrder, pivotConfig } = heuristicsFn(\n {\n query: validatedQuery,\n chartType: this.chartType,\n },\n this.prevValidatedQuery,\n {\n meta: this.meta,\n sessionGranularity: validatedQuery?.timeDimensions?.[0]?.granularity,\n }\n );\n\n validatedQuery = {\n ...validatedQuery,\n ...query,\n ...(shouldApplyHeuristicOrder ? { order: defaultOrder(query) } : null),\n };\n\n this.chartType = chartType || this.chartType;\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig || this.pivotConfig\n );\n this.copyQueryFromProps(validatedQuery);\n }\n\n // query heuristics should only apply on query change (not applied to the initial query)\n if (this.prevValidatedQuery !== null) {\n this.skipHeuristics = false;\n }\n\n this.prevValidatedQuery = validatedQuery;\n return validatedQuery;\n },\n },\n\n async mounted() {\n this.meta = await this.cubejsApi.meta();\n\n this.copyQueryFromProps();\n\n if (isQueryPresent(this.initialQuery)) {\n const dryRunResponse = await this.cubejsApi.dryRun(this.initialQuery);\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n dryRunResponse?.pivotQuery || {},\n this.pivotConfig\n );\n }\n },\n\n methods: {\n copyQueryFromProps(query) {\n const {\n measures = [],\n dimensions = [],\n segments = [],\n timeDimensions = [],\n filters = [],\n limit,\n offset,\n renewQuery,\n order,\n } = query || this.initialQuery;\n\n this.measures = measures.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'measures'),\n }));\n this.dimensions = dimensions.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'dimensions'),\n }));\n this.segments = segments.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'segments'),\n }));\n this.timeDimensions = timeDimensions.map((m, index) => ({\n ...m,\n dimension: {\n ...this.meta.resolveMember(m.dimension, 'dimensions'),\n granularities: this.granularities,\n },\n index,\n }));\n this.filters = filters.map((m, index) => ({\n ...m,\n member: this.meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n operators: this.meta.filterOperatorsForMember(m.member || m.dimension, [\n 'dimensions',\n 'measures',\n ]),\n index,\n }));\n\n this.availableMeasures = this.meta.membersForQuery({}, 'measures') || [];\n this.availableDimensions = this.meta.membersForQuery({}, 'dimensions') || [];\n this.availableTimeDimensions = (this.meta.membersForQuery({}, 'dimensions') || []).filter(\n (m) => m.type === 'time'\n );\n this.availableSegments = this.meta.membersForQuery({}, 'segments') || [];\n this.limit = limit || 10000;\n this.offset = offset || null;\n this.renewQuery = renewQuery || false;\n this.order = order || null;\n },\n addMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: member.granularity,\n dateRange: member.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n const filterMember = {\n ...this.meta.resolveMember(member.member || member.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...member,\n member: filterMember,\n };\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].push(mem);\n }\n },\n removeMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === member);\n } else if (element === 'filters') {\n mem = member;\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n const index = this[element].findIndex((x) => x.name === mem);\n this[element].splice(index, 1);\n }\n },\n updateMember(element, old, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n let index;\n\n if (element === 'timeDimensions') {\n index = this[element].findIndex((x) => x.dimension.name === old.dimension);\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n dimension,\n granularity: member.granularity,\n dateRange: member.dateRange,\n index,\n };\n }\n } else if (element === 'filters') {\n index = this[element].findIndex((x) => x.dimension === old);\n const filterMember = {\n ...this.meta.resolveMember(member.member || member.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...member,\n member: filterMember,\n };\n } else {\n index = this[element].findIndex((x) => x.name === old);\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].splice(index, 1, mem);\n }\n },\n setMembers(element, members) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n const elements = [];\n\n members.filter(Boolean).forEach((m) => {\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === m.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: m.granularity,\n dateRange: m.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n const member = {\n ...this.meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...m,\n member,\n };\n } else {\n mem = this[`available${name}`].find((x) => x.name === m);\n }\n\n if (mem) {\n elements.push(mem);\n }\n });\n\n this[element] = elements;\n },\n setLimit(limit) {\n this.limit = limit;\n },\n removeLimit() {\n this.limit = null;\n },\n setOffset(offset) {\n this.offset = offset;\n },\n updateChart(chartType) {\n this.chartType = chartType;\n },\n setOrder(order = {}) {\n this.order = order;\n },\n emitVizStateChange(partialVizState) {\n this.$emit(\n 'vizStateChange',\n clone({\n ...this.vizState,\n ...partialVizState,\n })\n );\n },\n },\n\n watch: {\n validatedQuery: {\n deep: true,\n handler(query, prevQuery) {\n const hasQueryChanged = !areQueriesEqual(query, prevQuery);\n\n if (hasQueryChanged) {\n this.emitVizStateChange({\n query,\n });\n }\n\n if (isQueryPresent(query) && hasQueryChanged) {\n this.cubejsApi\n .dryRun(query, {\n mutexObj: this.mutex,\n })\n .then(({ pivotQuery }) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(pivotQuery, this.pivotConfig);\n\n if (!equals(pivotConfig, this.pivotConfig)) {\n this.pivotConfig = pivotConfig;\n }\n })\n .catch((error) => console.error(error));\n }\n },\n },\n query: {\n deep: true,\n handler(query) {\n if (!this.meta) {\n // this is ok as if meta has not been loaded by the time query prop has changed,\n // then the promise for loading meta (found in mounted()) will call\n // copyQueryFromProps and will therefore update anyway.\n return;\n }\n this.copyQueryFromProps(query);\n },\n },\n pivotConfig: {\n deep: true,\n handler(pivotConfig, prevPivotConfig) {\n if (!equals(pivotConfig, prevPivotConfig)) {\n this.emitVizStateChange({\n pivotConfig,\n });\n }\n },\n },\n chartType(value) {\n this.emitVizStateChange({\n chartType: value,\n });\n },\n },\n};","import { GRANULARITIES } from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer';\nimport QueryBuilder from './QueryBuilder';\n\nexport { QueryRenderer, QueryBuilder, GRANULARITIES };\n\nexport default {};\n"],"names":["props","query","type","Object","Array","queries","loadSql","required","cubejsApi","builderProps","chartType","String","data","mutexObj","error","undefined","resultSet","loading","sqlQuery","mounted","isQueryPresent","load","loadQueries","render","$slots","empty","createElement","slot","controls","onlyDefault","builder","measures","slotProps","refetch","methods","sql","mutexKey","resultPromises","Promise","all","toPairs","map","name","then","r","fromPairs","watch","$emit","isLoading","deep","handler","prevQuery","areQueriesEqual","val","QUERY_ELEMENTS","toOrderMember","member","id","title","reduceOrderMembers","array","reduce","acc","order","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","pivotConfig","initialQuery","skipHeuristics","meta","mutex","dimensions","segments","timeDimensions","filters","availableMeasures","availableDimensions","availableTimeDimensions","availableSegments","limit","offset","renewQuery","prevValidatedQuery","granularities","GRANULARITIES","ResultSet","getNormalizedPivotConfig","validatedQuery","setLimit","removeLimit","setOffset","removeOffset","orderMembers","updateChartType","updateChart","setOrder","setQuery","updateOrder","set","memberId","newOrder","orderMember","update","reorder","sourceIndex","destinationIndex","moveItemInArray","updatePivotConfig","moveItem","sourceAxis","destinationAxis","movePivotItem","x","y","forEach","elementName","charAt","toUpperCase","slice","addMember","updateWith","updateMember","removeMember","members","setMembers","h","slots","on","queryStatus","event","computed","getOrderMembersFromOrder","dimension","index","filter","vizState","toQuery","hasElements","element","granularity","dateRange","operator","values","length","f","heuristicsFn","defaultHeuristics","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","copyQueryFromProps","dryRun","dryRunResponse","pivotQuery","m","resolveMember","operators","filterOperatorsForMember","membersForQuery","mem","find","filterMember","push","findIndex","splice","old","elements","emitVizStateChange","partialVizState","clone","hasQueryChanged","equals","console","prevPivotConfig","value"],"mappings":"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"}
1
+ {"version":3,"file":"cubejs-client-vue3.esm.js","sources":["../src/QueryRenderer.js","../src/QueryBuilder.js","../src/index.js"],"sourcesContent":["import { toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';\nimport { h as createElement } from 'vue';\n\nexport default {\n props: {\n query: {\n type: [Object, Array],\n default: () => ({}),\n },\n // TODO: validate with current react implementation\n queries: {\n type: Object,\n },\n loadSql: {\n required: false,\n },\n cubejsApi: {\n type: Object,\n required: true,\n },\n builderProps: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n chartType: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n mutexObj: {},\n error: undefined,\n resultSet: undefined,\n loading: false,\n sqlQuery: undefined,\n };\n },\n async mounted() {\n const { query, queries } = this;\n\n if (isQueryPresent(query)) {\n await this.load();\n } else if (isQueryPresent(queries)) {\n await this.loadQueries(queries);\n }\n },\n render() {\n const { $slots, resultSet, error, loading, sqlQuery } = this;\n const empty = createElement('div', {});\n let slot = this.$slots.empty ? this.$slots.empty() : empty;\n let controls = createElement('div', {});\n const onlyDefault = !('empty' in this.$slots) && !('error' in this.$slots);\n\n if ($slots.builder && this.builderProps.measures) {\n controls = $slots.builder({ ...this.builderProps });\n }\n\n if ((!loading && resultSet && !error) || onlyDefault) {\n let slotProps = {\n resultSet,\n sqlQuery,\n query: this.builderProps.query || this.query,\n };\n\n if (onlyDefault) {\n slotProps = {\n loading,\n error,\n refetch: this.load,\n ...this.builderProps,\n ...slotProps,\n };\n }\n slot = $slots.default ? $slots.default(slotProps) : slot;\n } else if (error) {\n slot = $slots.error ? $slots.error({ error, sqlQuery }) : slot;\n }\n\n return createElement('div', {}, [controls, slot]);\n },\n methods: {\n async load() {\n const { query } = this;\n\n if (!isQueryPresent(query)) {\n return;\n }\n\n try {\n this.loading = true;\n this.error = null;\n this.resultSet = null;\n\n if (this.loadSql === 'only') {\n this.sqlQuery = await this.cubejsApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n } else if (this.loadSql) {\n this.sqlQuery = await this.cubejsApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n this.resultSet = await this.cubejsApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n } else {\n this.resultSet = await this.cubejsApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n }\n\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.resultSet = undefined;\n this.loading = false;\n }\n },\n async loadQueries() {\n const { queries } = this;\n try {\n this.error = undefined;\n this.loading = true;\n\n const resultPromises = Promise.all(\n toPairs(queries).map(([name, query]) =>\n this.cubejsApi\n .load(query, {\n mutexObj: this.mutexObj,\n mutexKey: name,\n })\n .then((r) => [name, r])\n )\n );\n\n this.resultSet = fromPairs(await resultPromises);\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.loading = false;\n }\n },\n },\n watch: {\n loading(loading) {\n if (loading === false) {\n this.$emit('queryStatus', {\n isLoading: false,\n error: this.error,\n resultSet: this.resultSet,\n });\n } else {\n this.$emit('queryStatus', { isLoading: true });\n }\n },\n cubejsApi() {\n this.load();\n },\n chartType() {\n this.load();\n },\n query: {\n deep: true,\n handler(query, prevQuery) {\n if (!areQueriesEqual(query, prevQuery)) {\n this.load();\n }\n },\n },\n queries: {\n handler(val) {\n if (val) {\n this.loadQueries();\n }\n },\n deep: true,\n },\n },\n};\n","import {\n isQueryPresent,\n defaultOrder,\n defaultHeuristics,\n GRANULARITIES,\n ResultSet,\n getOrderMembersFromOrder,\n moveItemInArray,\n movePivotItem,\n areQueriesEqual,\n} from '@cubejs-client/core';\nimport { h } from 'vue';\nimport { clone, equals } from 'ramda';\n\nimport QueryRenderer from './QueryRenderer';\n\nconst QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];\n\nconst toOrderMember = (member) => ({\n id: member.name,\n title: member.title,\n});\n\nconst reduceOrderMembers = (array) =>\n array.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []);\n\nexport default {\n components: {\n QueryRenderer,\n },\n props: {\n query: {\n type: Object,\n default: () => ({}),\n },\n cubejsApi: {\n type: Object,\n required: true,\n },\n initialChartType: {\n type: String,\n default: () => 'line',\n },\n disableHeuristics: {\n type: Boolean,\n },\n stateChangeHeuristics: {\n type: Function,\n },\n initialVizState: {\n type: Object,\n default: () => ({}),\n },\n },\n data() {\n const {\n query = this.query,\n chartType = this.initialChartType,\n pivotConfig,\n } = this.initialVizState;\n\n return {\n initialQuery: query,\n skipHeuristics: true,\n meta: undefined,\n mutex: {},\n chartType,\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n filters: [],\n availableMeasures: [],\n availableDimensions: [],\n availableTimeDimensions: [],\n availableSegments: [],\n limit: null,\n offset: null,\n renewQuery: false,\n order: null,\n prevValidatedQuery: null,\n granularities: GRANULARITIES,\n pivotConfig: ResultSet.getNormalizedPivotConfig(query || {}, pivotConfig),\n };\n },\n\n render() {\n const {\n chartType,\n cubejsApi,\n dimensions,\n filters,\n measures,\n meta,\n query,\n segments,\n timeDimensions,\n validatedQuery,\n isQueryPresent,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n } = this;\n\n let builderProps = {};\n\n if (meta) {\n builderProps = {\n query,\n validatedQuery,\n isQueryPresent,\n chartType,\n measures,\n dimensions,\n segments,\n timeDimensions,\n filters,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n updateChartType: this.updateChart,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n setOrder: this.setOrder,\n setQuery: this.setQuery,\n pivotConfig: this.pivotConfig,\n updateOrder: {\n set: (memberId, newOrder) => {\n this.order = reduceOrderMembers(\n orderMembers.map((orderMember) => ({\n ...orderMember,\n order: orderMember.id === memberId ? newOrder : orderMember.order,\n }))\n );\n },\n update: (newOrder) => {\n this.order = newOrder;\n },\n reorder: (sourceIndex, destinationIndex) => {\n this.order = reduceOrderMembers(\n moveItemInArray(orderMembers, sourceIndex, destinationIndex)\n );\n },\n },\n updatePivotConfig: {\n moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {\n this.pivotConfig = movePivotItem(\n this.pivotConfig,\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n );\n },\n update: (pivotConfig) => {\n this.pivotConfig = {\n x: pivotConfig.x || this.pivotConfig.x,\n y: pivotConfig.y || this.pivotConfig.y,\n };\n },\n },\n };\n\n QUERY_ELEMENTS.forEach((elementName) => {\n const name = elementName.charAt(0).toUpperCase() + elementName.slice(1);\n\n builderProps[`add${name}`] = (member) => {\n this.addMember(elementName, member);\n };\n\n builderProps[`update${name}`] = (member, updateWith) => {\n this.updateMember(elementName, member, updateWith);\n };\n\n builderProps[`remove${name}`] = (member) => {\n this.removeMember(elementName, member);\n };\n\n builderProps[`set${name}`] = (members) => {\n this.setMembers(elementName, members);\n };\n });\n }\n\n return h(\n QueryRenderer,\n {\n query: this.validatedQuery,\n cubejsApi,\n builderProps,\n slots: this.$slots,\n on: {\n queryStatus: (event) => {\n this.$emit('queryStatus', event);\n },\n },\n },\n this.$slots\n );\n },\n computed: {\n isQueryPresent() {\n const { validatedQuery } = this;\n\n return isQueryPresent(validatedQuery);\n },\n orderMembers() {\n return getOrderMembersFromOrder(\n [\n ...this.measures,\n ...this.dimensions,\n ...this.timeDimensions.map(({ dimension }) => toOrderMember(dimension)),\n ]\n .map((member, index) => {\n const id = member.name || member.id;\n\n if (!id) {\n return false;\n }\n\n return {\n index,\n id,\n title: member.title,\n };\n })\n .filter(Boolean),\n this.order\n );\n },\n vizState() {\n return {\n query: this.validatedQuery,\n chartType: this.chartType,\n pivotConfig: this.pivotConfig,\n };\n },\n validatedQuery() {\n let validatedQuery = {};\n let toQuery = (member) => member.name;\n // TODO: implement timezone\n\n let hasElements = false;\n QUERY_ELEMENTS.forEach((element) => {\n if (element === 'timeDimensions') {\n toQuery = (member) => ({\n dimension: member.dimension.name,\n granularity: member.granularity,\n dateRange: member.dateRange,\n });\n } else if (element === 'filters') {\n toQuery = (member) => ({\n member: member.member.name,\n operator: member.operator,\n values: member.values,\n });\n }\n\n if (this[element].length > 0) {\n validatedQuery[element] = this[element].map((x) => toQuery(x));\n\n hasElements = true;\n }\n });\n\n if (validatedQuery.filters) {\n validatedQuery.filters = validatedQuery.filters.filter((f) => f.operator);\n }\n\n // only set limit and offset if there are elements otherwise an invalid request with just limit/offset\n // gets sent when the component is first mounted, but before the actual query is constructed.\n if (hasElements) {\n if (this.limit) {\n validatedQuery.limit = this.limit;\n }\n\n if (this.offset) {\n validatedQuery.offset = this.offset;\n }\n\n if (this.order) {\n validatedQuery.order = this.order;\n }\n\n if (this.renewQuery) {\n validatedQuery.renewQuery = this.renewQuery;\n }\n }\n\n if (\n !this.skipHeuristics &&\n !this.disableHeuristics &&\n isQueryPresent(validatedQuery) &&\n this.meta\n ) {\n const heuristicsFn = this.stateChangeHeuristics || defaultHeuristics;\n const { query, chartType, shouldApplyHeuristicOrder, pivotConfig } = heuristicsFn(\n {\n query: validatedQuery,\n chartType: this.chartType,\n },\n this.prevValidatedQuery,\n {\n meta: this.meta,\n sessionGranularity: validatedQuery?.timeDimensions?.[0]?.granularity,\n }\n );\n\n validatedQuery = {\n ...validatedQuery,\n ...query,\n ...(shouldApplyHeuristicOrder ? { order: defaultOrder(query) } : null),\n };\n\n this.chartType = chartType || this.chartType;\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig || this.pivotConfig\n );\n this.copyQueryFromProps(validatedQuery);\n }\n\n // query heuristics should only apply on query change (not applied to the initial query)\n if (this.prevValidatedQuery !== null) {\n this.skipHeuristics = false;\n }\n\n this.prevValidatedQuery = validatedQuery;\n return validatedQuery;\n },\n },\n\n async mounted() {\n this.meta = await this.cubejsApi.meta();\n\n this.copyQueryFromProps();\n\n if (isQueryPresent(this.initialQuery)) {\n const dryRunResponse = await this.cubejsApi.dryRun(this.initialQuery);\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n dryRunResponse?.pivotQuery || {},\n this.pivotConfig\n );\n }\n },\n\n methods: {\n copyQueryFromProps(query) {\n const {\n measures = [],\n dimensions = [],\n segments = [],\n timeDimensions = [],\n filters = [],\n limit,\n offset,\n renewQuery,\n order,\n } = query || this.initialQuery;\n\n this.measures = measures.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'measures'),\n }));\n this.dimensions = dimensions.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'dimensions'),\n }));\n this.segments = segments.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'segments'),\n }));\n this.timeDimensions = timeDimensions.map((m, index) => ({\n ...m,\n dimension: {\n ...this.meta.resolveMember(m.dimension, 'dimensions'),\n granularities: this.granularities,\n },\n index,\n }));\n this.filters = filters.map((m, index) => ({\n ...m,\n member: this.meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n operators: this.meta.filterOperatorsForMember(m.member || m.dimension, [\n 'dimensions',\n 'measures',\n ]),\n index,\n }));\n\n this.availableMeasures = this.meta.membersForQuery({}, 'measures') || [];\n this.availableDimensions = this.meta.membersForQuery({}, 'dimensions') || [];\n this.availableTimeDimensions = (this.meta.membersForQuery({}, 'dimensions') || []).filter(\n (m) => m.type === 'time'\n );\n this.availableSegments = this.meta.membersForQuery({}, 'segments') || [];\n this.limit = limit || 10000;\n this.offset = offset || null;\n this.renewQuery = renewQuery || false;\n this.order = order || null;\n },\n addMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: member.granularity,\n dateRange: member.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n const filterMember = {\n ...this.meta.resolveMember(member.member || member.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...member,\n member: filterMember,\n };\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].push(mem);\n }\n },\n removeMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === member);\n } else if (element === 'filters') {\n mem = member;\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n const index = this[element].findIndex((x) => x.name === mem);\n this[element].splice(index, 1);\n }\n },\n updateMember(element, old, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n let index;\n\n if (element === 'timeDimensions') {\n index = this[element].findIndex((x) => x.dimension.name === old.dimension);\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n dimension,\n granularity: member.granularity,\n dateRange: member.dateRange,\n index,\n };\n }\n } else if (element === 'filters') {\n index = this[element].findIndex((x) => x.dimension === old);\n const filterMember = {\n ...this.meta.resolveMember(member.member || member.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...member,\n member: filterMember,\n };\n } else {\n index = this[element].findIndex((x) => x.name === old);\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].splice(index, 1, mem);\n }\n },\n setMembers(element, members) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n const elements = [];\n\n members.filter(Boolean).forEach((m) => {\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === m.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: m.granularity,\n dateRange: m.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n const member = {\n ...this.meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...m,\n member,\n };\n } else {\n mem = this[`available${name}`].find((x) => x.name === m);\n }\n\n if (mem) {\n elements.push(mem);\n }\n });\n\n this[element] = elements;\n },\n setLimit(limit) {\n this.limit = limit;\n },\n removeLimit() {\n this.limit = null;\n },\n setOffset(offset) {\n this.offset = offset;\n },\n updateChart(chartType) {\n this.chartType = chartType;\n },\n setOrder(order = {}) {\n this.order = order;\n },\n emitVizStateChange(partialVizState) {\n this.$emit(\n 'vizStateChange',\n clone({\n ...this.vizState,\n ...partialVizState,\n })\n );\n },\n },\n\n watch: {\n validatedQuery: {\n deep: true,\n handler(query, prevQuery) {\n const hasQueryChanged = !areQueriesEqual(query, prevQuery);\n\n if (hasQueryChanged) {\n this.emitVizStateChange({\n query,\n });\n }\n\n if (isQueryPresent(query) && hasQueryChanged) {\n this.cubejsApi\n .dryRun(query, {\n mutexObj: this.mutex,\n })\n .then(({ pivotQuery }) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(pivotQuery, this.pivotConfig);\n\n if (!equals(pivotConfig, this.pivotConfig)) {\n this.pivotConfig = pivotConfig;\n }\n })\n .catch((error) => console.error(error));\n }\n },\n },\n query: {\n deep: true,\n handler(query) {\n if (!this.meta) {\n // this is ok as if meta has not been loaded by the time query prop has changed,\n // then the promise for loading meta (found in mounted()) will call\n // copyQueryFromProps and will therefore update anyway.\n return;\n }\n this.copyQueryFromProps(query);\n },\n },\n pivotConfig: {\n deep: true,\n handler(pivotConfig, prevPivotConfig) {\n if (!equals(pivotConfig, prevPivotConfig)) {\n this.emitVizStateChange({\n pivotConfig,\n });\n }\n },\n },\n chartType(value) {\n this.emitVizStateChange({\n chartType: value,\n });\n },\n },\n};\n","import { GRANULARITIES } from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer';\nimport QueryBuilder from './QueryBuilder';\n\nexport { QueryRenderer, QueryBuilder, GRANULARITIES };\n\nexport default {};\n"],"names":["props","query","type","Object","Array","queries","loadSql","required","cubejsApi","builderProps","chartType","String","data","mutexObj","error","undefined","resultSet","loading","sqlQuery","mounted","isQueryPresent","load","loadQueries","render","$slots","empty","createElement","slot","controls","onlyDefault","builder","measures","slotProps","refetch","methods","sql","mutexKey","resultPromises","Promise","all","toPairs","map","name","then","r","fromPairs","watch","$emit","isLoading","deep","handler","prevQuery","areQueriesEqual","val","QUERY_ELEMENTS","toOrderMember","member","id","title","reduceOrderMembers","array","reduce","acc","order","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","pivotConfig","initialQuery","skipHeuristics","meta","mutex","dimensions","segments","timeDimensions","filters","availableMeasures","availableDimensions","availableTimeDimensions","availableSegments","limit","offset","renewQuery","prevValidatedQuery","granularities","GRANULARITIES","ResultSet","getNormalizedPivotConfig","validatedQuery","setLimit","removeLimit","setOffset","removeOffset","orderMembers","updateChartType","updateChart","setOrder","setQuery","updateOrder","set","memberId","newOrder","orderMember","update","reorder","sourceIndex","destinationIndex","moveItemInArray","updatePivotConfig","moveItem","sourceAxis","destinationAxis","movePivotItem","x","y","forEach","elementName","charAt","toUpperCase","slice","addMember","updateWith","updateMember","removeMember","members","setMembers","h","slots","on","queryStatus","event","computed","getOrderMembersFromOrder","dimension","index","filter","vizState","toQuery","hasElements","element","granularity","dateRange","operator","values","length","f","heuristicsFn","defaultHeuristics","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","copyQueryFromProps","dryRun","dryRunResponse","pivotQuery","m","resolveMember","operators","filterOperatorsForMember","membersForQuery","mem","find","filterMember","push","findIndex","splice","old","elements","emitVizStateChange","partialVizState","clone","hasQueryChanged","equals","console","prevPivotConfig","value"],"mappings":"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"}
@@ -41,9 +41,9 @@ var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGene
41
41
  var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
42
42
  var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
43
43
 
44
- function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
44
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
45
 
46
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
46
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
47
  var QueryRenderer = {
48
48
  props: {
49
49
  query: {
@@ -350,9 +350,9 @@ var QueryRenderer = {
350
350
  }
351
351
  };
352
352
 
353
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
353
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
354
354
 
355
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
355
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
356
356
  var QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];
357
357
 
358
358
  var toOrderMember = function toOrderMember(member) {
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-vue3.js","sources":["../src/QueryRenderer.js","../src/QueryBuilder.js","../src/index.js"],"sourcesContent":["import { toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';\nimport { h as createElement } from 'vue';\n\nexport default {\n props: {\n query: {\n type: [Object, Array],\n default: () => ({}),\n },\n // TODO: validate with current react implementation\n queries: {\n type: Object,\n },\n loadSql: {\n required: false,\n },\n cubejsApi: {\n type: Object,\n required: true,\n },\n builderProps: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n chartType: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n mutexObj: {},\n error: undefined,\n resultSet: undefined,\n loading: false,\n sqlQuery: undefined,\n };\n },\n async mounted() {\n const { query, queries } = this;\n\n if (isQueryPresent(query)) {\n await this.load();\n } else if (isQueryPresent(queries)) {\n await this.loadQueries(queries);\n }\n },\n render() {\n const { $slots, resultSet, error, loading, sqlQuery } = this;\n const empty = createElement('div', {});\n let slot = this.$slots.empty ? this.$slots.empty() : empty;\n let controls = createElement('div', {});\n const onlyDefault = !('empty' in this.$slots) && !('error' in this.$slots);\n\n if ($slots.builder && this.builderProps.measures) {\n controls = $slots.builder({ ...this.builderProps });\n }\n\n if ((!loading && resultSet && !error) || onlyDefault) {\n let slotProps = {\n resultSet,\n sqlQuery,\n query: this.builderProps.query || this.query,\n };\n\n if (onlyDefault) {\n slotProps = {\n loading,\n error,\n refetch: this.load,\n ...this.builderProps,\n ...slotProps,\n };\n }\n slot = $slots.default ? $slots.default(slotProps) : slot;\n } else if (error) {\n slot = $slots.error ? $slots.error({ error, sqlQuery }) : slot;\n }\n\n return createElement('div', {}, [controls, slot]);\n },\n methods: {\n async load() {\n const { query } = this;\n\n if (!isQueryPresent(query)) {\n return;\n }\n\n try {\n this.loading = true;\n this.error = null;\n this.resultSet = null;\n\n if (this.loadSql === 'only') {\n this.sqlQuery = await this.cubejsApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n } else if (this.loadSql) {\n this.sqlQuery = await this.cubejsApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n this.resultSet = await this.cubejsApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n } else {\n this.resultSet = await this.cubejsApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n }\n\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.resultSet = undefined;\n this.loading = false;\n }\n },\n async loadQueries() {\n const { queries } = this;\n try {\n this.error = undefined;\n this.loading = true;\n\n const resultPromises = Promise.all(\n toPairs(queries).map(([name, query]) =>\n this.cubejsApi\n .load(query, {\n mutexObj: this.mutexObj,\n mutexKey: name,\n })\n .then((r) => [name, r])\n )\n );\n\n this.resultSet = fromPairs(await resultPromises);\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.loading = false;\n }\n },\n },\n watch: {\n loading(loading) {\n if (loading === false) {\n this.$emit('queryStatus', {\n isLoading: false,\n error: this.error,\n resultSet: this.resultSet,\n });\n } else {\n this.$emit('queryStatus', { isLoading: true });\n }\n },\n cubejsApi() {\n this.load();\n },\n chartType() {\n this.load();\n },\n query: {\n deep: true,\n handler(query, prevQuery) {\n if (!areQueriesEqual(query, prevQuery)) {\n this.load();\n }\n },\n },\n queries: {\n handler(val) {\n if (val) {\n this.loadQueries();\n }\n },\n deep: true,\n },\n },\n};\n","import {\n isQueryPresent,\n defaultOrder,\n defaultHeuristics,\n GRANULARITIES,\n ResultSet,\n getOrderMembersFromOrder,\n moveItemInArray,\n movePivotItem,\n areQueriesEqual,\n} from '@cubejs-client/core';\nimport { h } from 'vue';\nimport { clone, equals } from 'ramda';\n\nimport QueryRenderer from './QueryRenderer';\n\nconst QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];\n\nconst toOrderMember = (member) => ({\n id: member.name,\n title: member.title,\n});\n\nconst reduceOrderMembers = (array) =>\n array.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []);\n\nexport default {\n components: {\n QueryRenderer,\n },\n props: {\n query: {\n type: Object,\n default: () => ({}),\n },\n cubejsApi: {\n type: Object,\n required: true,\n },\n initialChartType: {\n type: String,\n default: () => 'line',\n },\n disableHeuristics: {\n type: Boolean,\n },\n stateChangeHeuristics: {\n type: Function,\n },\n initialVizState: {\n type: Object,\n default: () => ({}),\n },\n },\n data() {\n const {\n query = this.query,\n chartType = this.initialChartType,\n pivotConfig,\n } = this.initialVizState;\n\n return {\n initialQuery: query,\n skipHeuristics: true,\n meta: undefined,\n mutex: {},\n chartType,\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n filters: [],\n availableMeasures: [],\n availableDimensions: [],\n availableTimeDimensions: [],\n availableSegments: [],\n limit: null,\n offset: null,\n renewQuery: false,\n order: null,\n prevValidatedQuery: null,\n granularities: GRANULARITIES,\n pivotConfig: ResultSet.getNormalizedPivotConfig(query || {}, pivotConfig),\n };\n },\n\n render() {\n const {\n chartType,\n cubejsApi,\n dimensions,\n filters,\n measures,\n meta,\n query,\n segments,\n timeDimensions,\n validatedQuery,\n isQueryPresent,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n } = this;\n\n let builderProps = {};\n\n if (meta) {\n builderProps = {\n query,\n validatedQuery,\n isQueryPresent,\n chartType,\n measures,\n dimensions,\n segments,\n timeDimensions,\n filters,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n updateChartType: this.updateChart,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n setOrder: this.setOrder,\n setQuery: this.setQuery,\n pivotConfig: this.pivotConfig,\n updateOrder: {\n set: (memberId, newOrder) => {\n this.order = reduceOrderMembers(\n orderMembers.map((orderMember) => ({\n ...orderMember,\n order: orderMember.id === memberId ? newOrder : orderMember.order,\n }))\n );\n },\n update: (newOrder) => {\n this.order = newOrder;\n },\n reorder: (sourceIndex, destinationIndex) => {\n this.order = reduceOrderMembers(\n moveItemInArray(orderMembers, sourceIndex, destinationIndex)\n );\n },\n },\n updatePivotConfig: {\n moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {\n this.pivotConfig = movePivotItem(\n this.pivotConfig,\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n );\n },\n update: (pivotConfig) => {\n this.pivotConfig = {\n x: pivotConfig.x || this.pivotConfig.x,\n y: pivotConfig.y || this.pivotConfig.y,\n };\n },\n },\n };\n\n QUERY_ELEMENTS.forEach((elementName) => {\n const name = elementName.charAt(0).toUpperCase() + elementName.slice(1);\n\n builderProps[`add${name}`] = (member) => {\n this.addMember(elementName, member);\n };\n\n builderProps[`update${name}`] = (member, updateWith) => {\n this.updateMember(elementName, member, updateWith);\n };\n\n builderProps[`remove${name}`] = (member) => {\n this.removeMember(elementName, member);\n };\n\n builderProps[`set${name}`] = (members) => {\n this.setMembers(elementName, members);\n };\n });\n }\n\n return h(\n QueryRenderer,\n {\n query: this.validatedQuery,\n cubejsApi,\n builderProps,\n slots: this.$slots,\n on: {\n queryStatus: (event) => {\n this.$emit('queryStatus', event);\n },\n },\n },\n this.$slots\n );\n },\n computed: {\n isQueryPresent() {\n const { validatedQuery } = this;\n\n return isQueryPresent(validatedQuery);\n },\n orderMembers() {\n return getOrderMembersFromOrder(\n [\n ...this.measures,\n ...this.dimensions,\n ...this.timeDimensions.map(({ dimension }) => toOrderMember(dimension)),\n ]\n .map((member, index) => {\n const id = member.name || member.id;\n\n if (!id) {\n return false;\n }\n\n return {\n index,\n id,\n title: member.title,\n };\n })\n .filter(Boolean),\n this.order\n );\n },\n vizState() {\n return {\n query: this.validatedQuery,\n chartType: this.chartType,\n pivotConfig: this.pivotConfig,\n };\n },\n validatedQuery() {\n let validatedQuery = {};\n let toQuery = (member) => member.name;\n // TODO: implement timezone\n\n let hasElements = false;\n QUERY_ELEMENTS.forEach((element) => {\n if (element === 'timeDimensions') {\n toQuery = (member) => ({\n dimension: member.dimension.name,\n granularity: member.granularity,\n dateRange: member.dateRange,\n });\n } else if (element === 'filters') {\n toQuery = (member) => ({\n member: member.member.name,\n operator: member.operator,\n values: member.values,\n });\n }\n\n if (this[element].length > 0) {\n validatedQuery[element] = this[element].map((x) => toQuery(x));\n\n hasElements = true;\n }\n });\n\n if (validatedQuery.filters) {\n validatedQuery.filters = validatedQuery.filters.filter((f) => f.operator);\n }\n\n // only set limit and offset if there are elements otherwise an invalid request with just limit/offset\n // gets sent when the component is first mounted, but before the actual query is constructed.\n if (hasElements) {\n if (this.limit) {\n validatedQuery.limit = this.limit;\n }\n\n if (this.offset) {\n validatedQuery.offset = this.offset;\n }\n\n if (this.order) {\n validatedQuery.order = this.order;\n }\n\n if (this.renewQuery) {\n validatedQuery.renewQuery = this.renewQuery;\n }\n }\n\n if (\n !this.skipHeuristics &&\n !this.disableHeuristics &&\n isQueryPresent(validatedQuery) &&\n this.meta\n ) {\n const heuristicsFn = this.stateChangeHeuristics || defaultHeuristics;\n const { query, chartType, shouldApplyHeuristicOrder, pivotConfig } = heuristicsFn(\n {\n query: validatedQuery,\n chartType: this.chartType,\n },\n this.prevValidatedQuery,\n {\n meta: this.meta,\n sessionGranularity: validatedQuery?.timeDimensions?.[0]?.granularity,\n }\n );\n\n validatedQuery = {\n ...validatedQuery,\n ...query,\n ...(shouldApplyHeuristicOrder ? { order: defaultOrder(query) } : null),\n };\n\n this.chartType = chartType || this.chartType;\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig || this.pivotConfig\n );\n this.copyQueryFromProps(validatedQuery);\n }\n\n // query heuristics should only apply on query change (not applied to the initial query)\n if (this.prevValidatedQuery !== null) {\n this.skipHeuristics = false;\n }\n\n this.prevValidatedQuery = validatedQuery;\n return validatedQuery;\n },\n },\n\n async mounted() {\n this.meta = await this.cubejsApi.meta();\n\n this.copyQueryFromProps();\n\n if (isQueryPresent(this.initialQuery)) {\n const dryRunResponse = await this.cubejsApi.dryRun(this.initialQuery);\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n dryRunResponse?.pivotQuery || {},\n this.pivotConfig\n );\n }\n },\n\n methods: {\n copyQueryFromProps(query) {\n const {\n measures = [],\n dimensions = [],\n segments = [],\n timeDimensions = [],\n filters = [],\n limit,\n offset,\n renewQuery,\n order,\n } = query || this.initialQuery;\n\n this.measures = measures.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'measures'),\n }));\n this.dimensions = dimensions.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'dimensions'),\n }));\n this.segments = segments.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'segments'),\n }));\n this.timeDimensions = timeDimensions.map((m, index) => ({\n ...m,\n dimension: {\n ...this.meta.resolveMember(m.dimension, 'dimensions'),\n granularities: this.granularities,\n },\n index,\n }));\n this.filters = filters.map((m, index) => ({\n ...m,\n member: this.meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n operators: this.meta.filterOperatorsForMember(m.member || m.dimension, [\n 'dimensions',\n 'measures',\n ]),\n index,\n }));\n\n this.availableMeasures = this.meta.membersForQuery({}, 'measures') || [];\n this.availableDimensions = this.meta.membersForQuery({}, 'dimensions') || [];\n this.availableTimeDimensions = (this.meta.membersForQuery({}, 'dimensions') || []).filter(\n (m) => m.type === 'time'\n );\n this.availableSegments = this.meta.membersForQuery({}, 'segments') || [];\n this.limit = limit || 10000;\n this.offset = offset || null;\n this.renewQuery = renewQuery || false;\n this.order = order || null;\n },\n addMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: member.granularity,\n dateRange: member.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n const filterMember = {\n ...this.meta.resolveMember(member.member || member.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...member,\n member: filterMember,\n };\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].push(mem);\n }\n },\n removeMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === member);\n } else if (element === 'filters') {\n mem = member;\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n const index = this[element].findIndex((x) => x.name === mem);\n this[element].splice(index, 1);\n }\n },\n updateMember(element, old, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n let index;\n\n if (element === 'timeDimensions') {\n index = this[element].findIndex((x) => x.dimension.name === old.dimension);\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n dimension,\n granularity: member.granularity,\n dateRange: member.dateRange,\n index,\n };\n }\n } else if (element === 'filters') {\n index = this[element].findIndex((x) => x.dimension === old);\n const filterMember = {\n ...this.meta.resolveMember(member.member || member.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...member,\n member: filterMember,\n };\n } else {\n index = this[element].findIndex((x) => x.name === old);\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].splice(index, 1, mem);\n }\n },\n setMembers(element, members) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n const elements = [];\n\n members.filter(Boolean).forEach((m) => {\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === m.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: m.granularity,\n dateRange: m.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n const member = {\n ...this.meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...m,\n member,\n };\n } else {\n mem = this[`available${name}`].find((x) => x.name === m);\n }\n\n if (mem) {\n elements.push(mem);\n }\n });\n\n this[element] = elements;\n },\n setLimit(limit) {\n this.limit = limit;\n },\n removeLimit() {\n this.limit = null;\n },\n setOffset(offset) {\n this.offset = offset;\n },\n updateChart(chartType) {\n this.chartType = chartType;\n },\n setOrder(order = {}) {\n this.order = order;\n },\n emitVizStateChange(partialVizState) {\n this.$emit(\n 'vizStateChange',\n clone({\n ...this.vizState,\n ...partialVizState,\n })\n );\n },\n },\n\n watch: {\n validatedQuery: {\n deep: true,\n handler(query, prevQuery) {\n const hasQueryChanged = !areQueriesEqual(query, prevQuery);\n\n if (hasQueryChanged) {\n this.emitVizStateChange({\n query,\n });\n }\n\n if (isQueryPresent(query) && hasQueryChanged) {\n this.cubejsApi\n .dryRun(query, {\n mutexObj: this.mutex,\n })\n .then(({ pivotQuery }) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(pivotQuery, this.pivotConfig);\n\n if (!equals(pivotConfig, this.pivotConfig)) {\n this.pivotConfig = pivotConfig;\n }\n })\n .catch((error) => console.error(error));\n }\n },\n },\n query: {\n deep: true,\n handler(query) {\n if (!this.meta) {\n // this is ok as if meta has not been loaded by the time query prop has changed,\n // then the promise for loading meta (found in mounted()) will call\n // copyQueryFromProps and will therefore update anyway.\n return;\n }\n this.copyQueryFromProps(query);\n },\n },\n pivotConfig: {\n deep: true,\n handler(pivotConfig, prevPivotConfig) {\n if (!equals(pivotConfig, prevPivotConfig)) {\n this.emitVizStateChange({\n pivotConfig,\n });\n }\n },\n },\n chartType(value) {\n this.emitVizStateChange({\n chartType: value,\n });\n },\n },\n};","import { GRANULARITIES } from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer';\nimport QueryBuilder from './QueryBuilder';\n\nexport { QueryRenderer, QueryBuilder, GRANULARITIES };\n\nexport default {};\n"],"names":["props","query","type","Object","Array","queries","loadSql","required","cubejsApi","builderProps","chartType","String","data","mutexObj","error","undefined","resultSet","loading","sqlQuery","mounted","isQueryPresent","load","loadQueries","render","$slots","empty","createElement","slot","controls","onlyDefault","builder","measures","slotProps","refetch","methods","sql","mutexKey","resultPromises","Promise","all","toPairs","map","name","then","r","fromPairs","watch","$emit","isLoading","deep","handler","prevQuery","areQueriesEqual","val","QUERY_ELEMENTS","toOrderMember","member","id","title","reduceOrderMembers","array","reduce","acc","order","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","pivotConfig","initialQuery","skipHeuristics","meta","mutex","dimensions","segments","timeDimensions","filters","availableMeasures","availableDimensions","availableTimeDimensions","availableSegments","limit","offset","renewQuery","prevValidatedQuery","granularities","GRANULARITIES","ResultSet","getNormalizedPivotConfig","validatedQuery","setLimit","removeLimit","setOffset","removeOffset","orderMembers","updateChartType","updateChart","setOrder","setQuery","updateOrder","set","memberId","newOrder","orderMember","update","reorder","sourceIndex","destinationIndex","moveItemInArray","updatePivotConfig","moveItem","sourceAxis","destinationAxis","movePivotItem","x","y","forEach","elementName","charAt","toUpperCase","slice","addMember","updateWith","updateMember","removeMember","members","setMembers","h","slots","on","queryStatus","event","computed","getOrderMembersFromOrder","dimension","index","filter","vizState","toQuery","hasElements","element","granularity","dateRange","operator","values","length","f","heuristicsFn","defaultHeuristics","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","copyQueryFromProps","dryRun","dryRunResponse","pivotQuery","m","resolveMember","operators","filterOperatorsForMember","membersForQuery","mem","find","filterMember","push","findIndex","splice","old","elements","emitVizStateChange","partialVizState","clone","hasQueryChanged","equals","console","prevPivotConfig","value"],"mappings":"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"}
1
+ {"version":3,"file":"cubejs-client-vue3.js","sources":["../src/QueryRenderer.js","../src/QueryBuilder.js","../src/index.js"],"sourcesContent":["import { toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';\nimport { h as createElement } from 'vue';\n\nexport default {\n props: {\n query: {\n type: [Object, Array],\n default: () => ({}),\n },\n // TODO: validate with current react implementation\n queries: {\n type: Object,\n },\n loadSql: {\n required: false,\n },\n cubejsApi: {\n type: Object,\n required: true,\n },\n builderProps: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n chartType: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n mutexObj: {},\n error: undefined,\n resultSet: undefined,\n loading: false,\n sqlQuery: undefined,\n };\n },\n async mounted() {\n const { query, queries } = this;\n\n if (isQueryPresent(query)) {\n await this.load();\n } else if (isQueryPresent(queries)) {\n await this.loadQueries(queries);\n }\n },\n render() {\n const { $slots, resultSet, error, loading, sqlQuery } = this;\n const empty = createElement('div', {});\n let slot = this.$slots.empty ? this.$slots.empty() : empty;\n let controls = createElement('div', {});\n const onlyDefault = !('empty' in this.$slots) && !('error' in this.$slots);\n\n if ($slots.builder && this.builderProps.measures) {\n controls = $slots.builder({ ...this.builderProps });\n }\n\n if ((!loading && resultSet && !error) || onlyDefault) {\n let slotProps = {\n resultSet,\n sqlQuery,\n query: this.builderProps.query || this.query,\n };\n\n if (onlyDefault) {\n slotProps = {\n loading,\n error,\n refetch: this.load,\n ...this.builderProps,\n ...slotProps,\n };\n }\n slot = $slots.default ? $slots.default(slotProps) : slot;\n } else if (error) {\n slot = $slots.error ? $slots.error({ error, sqlQuery }) : slot;\n }\n\n return createElement('div', {}, [controls, slot]);\n },\n methods: {\n async load() {\n const { query } = this;\n\n if (!isQueryPresent(query)) {\n return;\n }\n\n try {\n this.loading = true;\n this.error = null;\n this.resultSet = null;\n\n if (this.loadSql === 'only') {\n this.sqlQuery = await this.cubejsApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n } else if (this.loadSql) {\n this.sqlQuery = await this.cubejsApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n this.resultSet = await this.cubejsApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n } else {\n this.resultSet = await this.cubejsApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n }\n\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.resultSet = undefined;\n this.loading = false;\n }\n },\n async loadQueries() {\n const { queries } = this;\n try {\n this.error = undefined;\n this.loading = true;\n\n const resultPromises = Promise.all(\n toPairs(queries).map(([name, query]) =>\n this.cubejsApi\n .load(query, {\n mutexObj: this.mutexObj,\n mutexKey: name,\n })\n .then((r) => [name, r])\n )\n );\n\n this.resultSet = fromPairs(await resultPromises);\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.loading = false;\n }\n },\n },\n watch: {\n loading(loading) {\n if (loading === false) {\n this.$emit('queryStatus', {\n isLoading: false,\n error: this.error,\n resultSet: this.resultSet,\n });\n } else {\n this.$emit('queryStatus', { isLoading: true });\n }\n },\n cubejsApi() {\n this.load();\n },\n chartType() {\n this.load();\n },\n query: {\n deep: true,\n handler(query, prevQuery) {\n if (!areQueriesEqual(query, prevQuery)) {\n this.load();\n }\n },\n },\n queries: {\n handler(val) {\n if (val) {\n this.loadQueries();\n }\n },\n deep: true,\n },\n },\n};\n","import {\n isQueryPresent,\n defaultOrder,\n defaultHeuristics,\n GRANULARITIES,\n ResultSet,\n getOrderMembersFromOrder,\n moveItemInArray,\n movePivotItem,\n areQueriesEqual,\n} from '@cubejs-client/core';\nimport { h } from 'vue';\nimport { clone, equals } from 'ramda';\n\nimport QueryRenderer from './QueryRenderer';\n\nconst QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];\n\nconst toOrderMember = (member) => ({\n id: member.name,\n title: member.title,\n});\n\nconst reduceOrderMembers = (array) =>\n array.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []);\n\nexport default {\n components: {\n QueryRenderer,\n },\n props: {\n query: {\n type: Object,\n default: () => ({}),\n },\n cubejsApi: {\n type: Object,\n required: true,\n },\n initialChartType: {\n type: String,\n default: () => 'line',\n },\n disableHeuristics: {\n type: Boolean,\n },\n stateChangeHeuristics: {\n type: Function,\n },\n initialVizState: {\n type: Object,\n default: () => ({}),\n },\n },\n data() {\n const {\n query = this.query,\n chartType = this.initialChartType,\n pivotConfig,\n } = this.initialVizState;\n\n return {\n initialQuery: query,\n skipHeuristics: true,\n meta: undefined,\n mutex: {},\n chartType,\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n filters: [],\n availableMeasures: [],\n availableDimensions: [],\n availableTimeDimensions: [],\n availableSegments: [],\n limit: null,\n offset: null,\n renewQuery: false,\n order: null,\n prevValidatedQuery: null,\n granularities: GRANULARITIES,\n pivotConfig: ResultSet.getNormalizedPivotConfig(query || {}, pivotConfig),\n };\n },\n\n render() {\n const {\n chartType,\n cubejsApi,\n dimensions,\n filters,\n measures,\n meta,\n query,\n segments,\n timeDimensions,\n validatedQuery,\n isQueryPresent,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n } = this;\n\n let builderProps = {};\n\n if (meta) {\n builderProps = {\n query,\n validatedQuery,\n isQueryPresent,\n chartType,\n measures,\n dimensions,\n segments,\n timeDimensions,\n filters,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n updateChartType: this.updateChart,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n setOrder: this.setOrder,\n setQuery: this.setQuery,\n pivotConfig: this.pivotConfig,\n updateOrder: {\n set: (memberId, newOrder) => {\n this.order = reduceOrderMembers(\n orderMembers.map((orderMember) => ({\n ...orderMember,\n order: orderMember.id === memberId ? newOrder : orderMember.order,\n }))\n );\n },\n update: (newOrder) => {\n this.order = newOrder;\n },\n reorder: (sourceIndex, destinationIndex) => {\n this.order = reduceOrderMembers(\n moveItemInArray(orderMembers, sourceIndex, destinationIndex)\n );\n },\n },\n updatePivotConfig: {\n moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {\n this.pivotConfig = movePivotItem(\n this.pivotConfig,\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n );\n },\n update: (pivotConfig) => {\n this.pivotConfig = {\n x: pivotConfig.x || this.pivotConfig.x,\n y: pivotConfig.y || this.pivotConfig.y,\n };\n },\n },\n };\n\n QUERY_ELEMENTS.forEach((elementName) => {\n const name = elementName.charAt(0).toUpperCase() + elementName.slice(1);\n\n builderProps[`add${name}`] = (member) => {\n this.addMember(elementName, member);\n };\n\n builderProps[`update${name}`] = (member, updateWith) => {\n this.updateMember(elementName, member, updateWith);\n };\n\n builderProps[`remove${name}`] = (member) => {\n this.removeMember(elementName, member);\n };\n\n builderProps[`set${name}`] = (members) => {\n this.setMembers(elementName, members);\n };\n });\n }\n\n return h(\n QueryRenderer,\n {\n query: this.validatedQuery,\n cubejsApi,\n builderProps,\n slots: this.$slots,\n on: {\n queryStatus: (event) => {\n this.$emit('queryStatus', event);\n },\n },\n },\n this.$slots\n );\n },\n computed: {\n isQueryPresent() {\n const { validatedQuery } = this;\n\n return isQueryPresent(validatedQuery);\n },\n orderMembers() {\n return getOrderMembersFromOrder(\n [\n ...this.measures,\n ...this.dimensions,\n ...this.timeDimensions.map(({ dimension }) => toOrderMember(dimension)),\n ]\n .map((member, index) => {\n const id = member.name || member.id;\n\n if (!id) {\n return false;\n }\n\n return {\n index,\n id,\n title: member.title,\n };\n })\n .filter(Boolean),\n this.order\n );\n },\n vizState() {\n return {\n query: this.validatedQuery,\n chartType: this.chartType,\n pivotConfig: this.pivotConfig,\n };\n },\n validatedQuery() {\n let validatedQuery = {};\n let toQuery = (member) => member.name;\n // TODO: implement timezone\n\n let hasElements = false;\n QUERY_ELEMENTS.forEach((element) => {\n if (element === 'timeDimensions') {\n toQuery = (member) => ({\n dimension: member.dimension.name,\n granularity: member.granularity,\n dateRange: member.dateRange,\n });\n } else if (element === 'filters') {\n toQuery = (member) => ({\n member: member.member.name,\n operator: member.operator,\n values: member.values,\n });\n }\n\n if (this[element].length > 0) {\n validatedQuery[element] = this[element].map((x) => toQuery(x));\n\n hasElements = true;\n }\n });\n\n if (validatedQuery.filters) {\n validatedQuery.filters = validatedQuery.filters.filter((f) => f.operator);\n }\n\n // only set limit and offset if there are elements otherwise an invalid request with just limit/offset\n // gets sent when the component is first mounted, but before the actual query is constructed.\n if (hasElements) {\n if (this.limit) {\n validatedQuery.limit = this.limit;\n }\n\n if (this.offset) {\n validatedQuery.offset = this.offset;\n }\n\n if (this.order) {\n validatedQuery.order = this.order;\n }\n\n if (this.renewQuery) {\n validatedQuery.renewQuery = this.renewQuery;\n }\n }\n\n if (\n !this.skipHeuristics &&\n !this.disableHeuristics &&\n isQueryPresent(validatedQuery) &&\n this.meta\n ) {\n const heuristicsFn = this.stateChangeHeuristics || defaultHeuristics;\n const { query, chartType, shouldApplyHeuristicOrder, pivotConfig } = heuristicsFn(\n {\n query: validatedQuery,\n chartType: this.chartType,\n },\n this.prevValidatedQuery,\n {\n meta: this.meta,\n sessionGranularity: validatedQuery?.timeDimensions?.[0]?.granularity,\n }\n );\n\n validatedQuery = {\n ...validatedQuery,\n ...query,\n ...(shouldApplyHeuristicOrder ? { order: defaultOrder(query) } : null),\n };\n\n this.chartType = chartType || this.chartType;\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig || this.pivotConfig\n );\n this.copyQueryFromProps(validatedQuery);\n }\n\n // query heuristics should only apply on query change (not applied to the initial query)\n if (this.prevValidatedQuery !== null) {\n this.skipHeuristics = false;\n }\n\n this.prevValidatedQuery = validatedQuery;\n return validatedQuery;\n },\n },\n\n async mounted() {\n this.meta = await this.cubejsApi.meta();\n\n this.copyQueryFromProps();\n\n if (isQueryPresent(this.initialQuery)) {\n const dryRunResponse = await this.cubejsApi.dryRun(this.initialQuery);\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n dryRunResponse?.pivotQuery || {},\n this.pivotConfig\n );\n }\n },\n\n methods: {\n copyQueryFromProps(query) {\n const {\n measures = [],\n dimensions = [],\n segments = [],\n timeDimensions = [],\n filters = [],\n limit,\n offset,\n renewQuery,\n order,\n } = query || this.initialQuery;\n\n this.measures = measures.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'measures'),\n }));\n this.dimensions = dimensions.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'dimensions'),\n }));\n this.segments = segments.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'segments'),\n }));\n this.timeDimensions = timeDimensions.map((m, index) => ({\n ...m,\n dimension: {\n ...this.meta.resolveMember(m.dimension, 'dimensions'),\n granularities: this.granularities,\n },\n index,\n }));\n this.filters = filters.map((m, index) => ({\n ...m,\n member: this.meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n operators: this.meta.filterOperatorsForMember(m.member || m.dimension, [\n 'dimensions',\n 'measures',\n ]),\n index,\n }));\n\n this.availableMeasures = this.meta.membersForQuery({}, 'measures') || [];\n this.availableDimensions = this.meta.membersForQuery({}, 'dimensions') || [];\n this.availableTimeDimensions = (this.meta.membersForQuery({}, 'dimensions') || []).filter(\n (m) => m.type === 'time'\n );\n this.availableSegments = this.meta.membersForQuery({}, 'segments') || [];\n this.limit = limit || 10000;\n this.offset = offset || null;\n this.renewQuery = renewQuery || false;\n this.order = order || null;\n },\n addMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: member.granularity,\n dateRange: member.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n const filterMember = {\n ...this.meta.resolveMember(member.member || member.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...member,\n member: filterMember,\n };\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].push(mem);\n }\n },\n removeMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === member);\n } else if (element === 'filters') {\n mem = member;\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n const index = this[element].findIndex((x) => x.name === mem);\n this[element].splice(index, 1);\n }\n },\n updateMember(element, old, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n let index;\n\n if (element === 'timeDimensions') {\n index = this[element].findIndex((x) => x.dimension.name === old.dimension);\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n dimension,\n granularity: member.granularity,\n dateRange: member.dateRange,\n index,\n };\n }\n } else if (element === 'filters') {\n index = this[element].findIndex((x) => x.dimension === old);\n const filterMember = {\n ...this.meta.resolveMember(member.member || member.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...member,\n member: filterMember,\n };\n } else {\n index = this[element].findIndex((x) => x.name === old);\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].splice(index, 1, mem);\n }\n },\n setMembers(element, members) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n const elements = [];\n\n members.filter(Boolean).forEach((m) => {\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === m.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: m.granularity,\n dateRange: m.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n const member = {\n ...this.meta.resolveMember(m.member || m.dimension, ['dimensions', 'measures']),\n };\n\n mem = {\n ...m,\n member,\n };\n } else {\n mem = this[`available${name}`].find((x) => x.name === m);\n }\n\n if (mem) {\n elements.push(mem);\n }\n });\n\n this[element] = elements;\n },\n setLimit(limit) {\n this.limit = limit;\n },\n removeLimit() {\n this.limit = null;\n },\n setOffset(offset) {\n this.offset = offset;\n },\n updateChart(chartType) {\n this.chartType = chartType;\n },\n setOrder(order = {}) {\n this.order = order;\n },\n emitVizStateChange(partialVizState) {\n this.$emit(\n 'vizStateChange',\n clone({\n ...this.vizState,\n ...partialVizState,\n })\n );\n },\n },\n\n watch: {\n validatedQuery: {\n deep: true,\n handler(query, prevQuery) {\n const hasQueryChanged = !areQueriesEqual(query, prevQuery);\n\n if (hasQueryChanged) {\n this.emitVizStateChange({\n query,\n });\n }\n\n if (isQueryPresent(query) && hasQueryChanged) {\n this.cubejsApi\n .dryRun(query, {\n mutexObj: this.mutex,\n })\n .then(({ pivotQuery }) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(pivotQuery, this.pivotConfig);\n\n if (!equals(pivotConfig, this.pivotConfig)) {\n this.pivotConfig = pivotConfig;\n }\n })\n .catch((error) => console.error(error));\n }\n },\n },\n query: {\n deep: true,\n handler(query) {\n if (!this.meta) {\n // this is ok as if meta has not been loaded by the time query prop has changed,\n // then the promise for loading meta (found in mounted()) will call\n // copyQueryFromProps and will therefore update anyway.\n return;\n }\n this.copyQueryFromProps(query);\n },\n },\n pivotConfig: {\n deep: true,\n handler(pivotConfig, prevPivotConfig) {\n if (!equals(pivotConfig, prevPivotConfig)) {\n this.emitVizStateChange({\n pivotConfig,\n });\n }\n },\n },\n chartType(value) {\n this.emitVizStateChange({\n chartType: value,\n });\n },\n },\n};\n","import { GRANULARITIES } from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer';\nimport QueryBuilder from './QueryBuilder';\n\nexport { QueryRenderer, QueryBuilder, GRANULARITIES };\n\nexport default {};\n"],"names":["props","query","type","Object","Array","queries","loadSql","required","cubejsApi","builderProps","chartType","String","data","mutexObj","error","undefined","resultSet","loading","sqlQuery","mounted","isQueryPresent","load","loadQueries","render","$slots","empty","createElement","slot","controls","onlyDefault","builder","measures","slotProps","refetch","methods","sql","mutexKey","resultPromises","Promise","all","toPairs","map","name","then","r","fromPairs","watch","$emit","isLoading","deep","handler","prevQuery","areQueriesEqual","val","QUERY_ELEMENTS","toOrderMember","member","id","title","reduceOrderMembers","array","reduce","acc","order","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","pivotConfig","initialQuery","skipHeuristics","meta","mutex","dimensions","segments","timeDimensions","filters","availableMeasures","availableDimensions","availableTimeDimensions","availableSegments","limit","offset","renewQuery","prevValidatedQuery","granularities","GRANULARITIES","ResultSet","getNormalizedPivotConfig","validatedQuery","setLimit","removeLimit","setOffset","removeOffset","orderMembers","updateChartType","updateChart","setOrder","setQuery","updateOrder","set","memberId","newOrder","orderMember","update","reorder","sourceIndex","destinationIndex","moveItemInArray","updatePivotConfig","moveItem","sourceAxis","destinationAxis","movePivotItem","x","y","forEach","elementName","charAt","toUpperCase","slice","addMember","updateWith","updateMember","removeMember","members","setMembers","h","slots","on","queryStatus","event","computed","getOrderMembersFromOrder","dimension","index","filter","vizState","toQuery","hasElements","element","granularity","dateRange","operator","values","length","f","heuristicsFn","defaultHeuristics","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","copyQueryFromProps","dryRun","dryRunResponse","pivotQuery","m","resolveMember","operators","filterOperatorsForMember","membersForQuery","mem","find","filterMember","push","findIndex","splice","old","elements","emitVizStateChange","partialVizState","clone","hasQueryChanged","equals","console","prevPivotConfig","value"],"mappings":"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"}