@cubejs-client/vue3 0.34.37 → 0.35.0
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/dist/cubejs-client-vue3.esm.js +13 -13
- package/dist/cubejs-client-vue3.esm.js.map +1 -1
- package/dist/cubejs-client-vue3.js +13 -13
- package/dist/cubejs-client-vue3.js.map +1 -1
- package/dist/cubejs-client-vue3.umd.js +16 -14
- package/dist/cubejs-client-vue3.umd.js.map +1 -1
- package/package.json +3 -3
- package/src/QueryBuilder.js +6 -6
- package/src/QueryRenderer.js +7 -7
|
@@ -16,7 +16,7 @@ var QueryRenderer = {
|
|
|
16
16
|
loadSql: {
|
|
17
17
|
required: false
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
cubeApi: {
|
|
20
20
|
type: Object,
|
|
21
21
|
required: true
|
|
22
22
|
},
|
|
@@ -116,21 +116,21 @@ var QueryRenderer = {
|
|
|
116
116
|
this.resultSet = null;
|
|
117
117
|
|
|
118
118
|
if (this.loadSql === 'only') {
|
|
119
|
-
this.sqlQuery = await this.
|
|
119
|
+
this.sqlQuery = await this.cubeApi.sql(query, {
|
|
120
120
|
mutexObj: this.mutexObj,
|
|
121
121
|
mutexKey: 'sql'
|
|
122
122
|
});
|
|
123
123
|
} else if (this.loadSql) {
|
|
124
|
-
this.sqlQuery = await this.
|
|
124
|
+
this.sqlQuery = await this.cubeApi.sql(query, {
|
|
125
125
|
mutexObj: this.mutexObj,
|
|
126
126
|
mutexKey: 'sql'
|
|
127
127
|
});
|
|
128
|
-
this.resultSet = await this.
|
|
128
|
+
this.resultSet = await this.cubeApi.load(query, {
|
|
129
129
|
mutexObj: this.mutexObj,
|
|
130
130
|
mutexKey: 'query'
|
|
131
131
|
});
|
|
132
132
|
} else {
|
|
133
|
-
this.resultSet = await this.
|
|
133
|
+
this.resultSet = await this.cubeApi.load(query, {
|
|
134
134
|
mutexObj: this.mutexObj,
|
|
135
135
|
mutexKey: 'query'
|
|
136
136
|
});
|
|
@@ -152,7 +152,7 @@ var QueryRenderer = {
|
|
|
152
152
|
try {
|
|
153
153
|
this.error = undefined;
|
|
154
154
|
this.loading = true;
|
|
155
|
-
const resultPromises = Promise.all(toPairs(queries).map(([name, query]) => this.
|
|
155
|
+
const resultPromises = Promise.all(toPairs(queries).map(([name, query]) => this.cubeApi.load(query, {
|
|
156
156
|
mutexObj: this.mutexObj,
|
|
157
157
|
mutexKey: name
|
|
158
158
|
}).then(r => [name, r])));
|
|
@@ -180,7 +180,7 @@ var QueryRenderer = {
|
|
|
180
180
|
}
|
|
181
181
|
},
|
|
182
182
|
|
|
183
|
-
|
|
183
|
+
cubeApi() {
|
|
184
184
|
this.load();
|
|
185
185
|
},
|
|
186
186
|
|
|
@@ -272,7 +272,7 @@ var QueryBuilder = {
|
|
|
272
272
|
type: Object,
|
|
273
273
|
default: () => ({})
|
|
274
274
|
},
|
|
275
|
-
|
|
275
|
+
cubeApi: {
|
|
276
276
|
type: Object,
|
|
277
277
|
required: true
|
|
278
278
|
},
|
|
@@ -326,7 +326,7 @@ var QueryBuilder = {
|
|
|
326
326
|
render() {
|
|
327
327
|
const {
|
|
328
328
|
chartType,
|
|
329
|
-
|
|
329
|
+
cubeApi,
|
|
330
330
|
dimensions,
|
|
331
331
|
filters,
|
|
332
332
|
measures,
|
|
@@ -432,7 +432,7 @@ var QueryBuilder = {
|
|
|
432
432
|
|
|
433
433
|
return h(QueryRenderer, {
|
|
434
434
|
query: this.validatedQuery,
|
|
435
|
-
|
|
435
|
+
cubeApi,
|
|
436
436
|
builderProps,
|
|
437
437
|
slots: this.$slots,
|
|
438
438
|
on: {
|
|
@@ -575,11 +575,11 @@ var QueryBuilder = {
|
|
|
575
575
|
},
|
|
576
576
|
|
|
577
577
|
async mounted() {
|
|
578
|
-
this.meta = await this.
|
|
578
|
+
this.meta = await this.cubeApi.meta();
|
|
579
579
|
this.copyQueryFromProps();
|
|
580
580
|
|
|
581
581
|
if (isQueryPresent(this.initialQuery)) {
|
|
582
|
-
const dryRunResponse = await this.
|
|
582
|
+
const dryRunResponse = await this.cubeApi.dryRun(this.initialQuery);
|
|
583
583
|
this.pivotConfig = ResultSet.getNormalizedPivotConfig(dryRunResponse?.pivotQuery || {}, this.pivotConfig);
|
|
584
584
|
}
|
|
585
585
|
},
|
|
@@ -805,7 +805,7 @@ var QueryBuilder = {
|
|
|
805
805
|
}
|
|
806
806
|
|
|
807
807
|
if (isQueryPresent(query) && hasQueryChanged) {
|
|
808
|
-
this.
|
|
808
|
+
this.cubeApi.dryRun(query, {
|
|
809
809
|
mutexObj: this.mutex
|
|
810
810
|
}).then(({
|
|
811
811
|
pivotQuery
|
|
@@ -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\nconst operators = [ 'and', 'or' ]\n\nconst validateFilters = (filters) =>\n filters.reduce((acc, raw) => {\n if (raw.operator) {\n return [...acc, raw];\n }\n\n const validBooleanFilter = operators.reduce((acc, operator) => {\n const filters = raw[operator];\n\n const booleanFilters = validateFilters(filters || []);\n\n if (booleanFilters.length) {\n return { ...acc, [operator]: booleanFilters };\n }\n\n return acc;\n }, {});\n\n if (operators.some((operator) => validBooleanFilter[operator])) {\n return [...acc, validBooleanFilter];\n }\n\n return acc;\n }, []);\n\nconst getDimensionOrMeasure = (meta, m) => {\n const memberName = m.member || m.dimension;\n return memberName && meta.resolveMember(memberName, ['dimensions', 'measures']);\n};\n\nconst resolveMembers = (meta, arr) =>\n arr &&\n arr.map((e, index) => {\n return {\n ...e,\n member: getDimensionOrMeasure(meta, e),\n index,\n and: resolveMembers(meta, e.and),\n or: resolveMembers(meta, e.or),\n };\n });\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 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.reduce((acc, { dimension, granularity }) => {\n if (granularity !== undefined) {\n acc.push(toOrderMember(dimension));\n }\n return acc;\n }, []),\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 && member.member.name,\n operator: member.operator,\n values: member.values,\n and: member.and && member.and.map(toQuery),\n or: member.or && member.or.map(toQuery),\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 = validateFilters(validatedQuery.filters)\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 !== undefined ? 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\n const memberTypes = ['dimensions', 'measures'];\n this.filters = filters.map((m, index) => {\n const memberName = m.member || m.dimension;\n return {\n ...m,\n member: memberName && this.meta.resolveMember(memberName, memberTypes),\n operators: memberName && this.meta.filterOperatorsForMember(memberName, memberTypes),\n and: resolveMembers(this.meta, m.and),\n or: resolveMembers(this.meta, m.or),\n index,\n };\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 mem = {\n ...member,\n and: resolveMembers(this.meta, member.and),\n or: resolveMembers(this.meta, member.or),\n member: getDimensionOrMeasure(this.meta, member),\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 mem = {\n ...member,\n and: resolveMembers(this.meta, member.and),\n or: resolveMembers(this.meta, member.or),\n member: getDimensionOrMeasure(this.meta, member),\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 mem = {\n ...m,\n and: resolveMembers(this.meta, m.and),\n or: resolveMembers(this.meta, m.or),\n member: getDimensionOrMeasure(this.meta, m),\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 removeOffset() {\n this.offset = null;\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","default","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","operators","validateFilters","filters","raw","operator","validBooleanFilter","booleanFilters","length","some","getDimensionOrMeasure","meta","m","memberName","dimension","resolveMember","resolveMembers","arr","e","index","and","or","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","pivotConfig","initialQuery","skipHeuristics","mutex","dimensions","segments","timeDimensions","availableMeasures","availableDimensions","availableTimeDimensions","availableSegments","limit","offset","renewQuery","prevValidatedQuery","granularities","GRANULARITIES","ResultSet","getNormalizedPivotConfig","validatedQuery","setLimit","removeLimit","setOffset","removeOffset","orderMembers","updateChartType","updateChart","setOrder","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","granularity","push","filter","vizState","toQuery","hasElements","element","dateRange","values","heuristicsFn","defaultHeuristics","shouldApplyHeuristicOrder","sessionGranularity","defaultOrder","copyQueryFromProps","dryRunResponse","dryRun","pivotQuery","memberTypes","filterOperatorsForMember","membersForQuery","mem","find","findIndex","splice","old","elements","emitVizStateChange","partialVizState","clone","hasQueryChanged","equals","catch","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 cubeApi: {\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.cubeApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n } else if (this.loadSql) {\n this.sqlQuery = await this.cubeApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n this.resultSet = await this.cubeApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n } else {\n this.resultSet = await this.cubeApi.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.cubeApi\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 cubeApi() {\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\nconst operators = [ 'and', 'or' ]\n\nconst validateFilters = (filters) =>\n filters.reduce((acc, raw) => {\n if (raw.operator) {\n return [...acc, raw];\n }\n\n const validBooleanFilter = operators.reduce((acc, operator) => {\n const filters = raw[operator];\n\n const booleanFilters = validateFilters(filters || []);\n\n if (booleanFilters.length) {\n return { ...acc, [operator]: booleanFilters };\n }\n\n return acc;\n }, {});\n\n if (operators.some((operator) => validBooleanFilter[operator])) {\n return [...acc, validBooleanFilter];\n }\n\n return acc;\n }, []);\n\nconst getDimensionOrMeasure = (meta, m) => {\n const memberName = m.member || m.dimension;\n return memberName && meta.resolveMember(memberName, ['dimensions', 'measures']);\n};\n\nconst resolveMembers = (meta, arr) =>\n arr &&\n arr.map((e, index) => {\n return {\n ...e,\n member: getDimensionOrMeasure(meta, e),\n index,\n and: resolveMembers(meta, e.and),\n or: resolveMembers(meta, e.or),\n };\n });\n\nexport default {\n components: {\n QueryRenderer,\n },\n props: {\n query: {\n type: Object,\n default: () => ({}),\n },\n cubeApi: {\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 cubeApi,\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 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 cubeApi,\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.reduce((acc, { dimension, granularity }) => {\n if (granularity !== undefined) {\n acc.push(toOrderMember(dimension));\n }\n return acc;\n }, []),\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 && member.member.name,\n operator: member.operator,\n values: member.values,\n and: member.and && member.and.map(toQuery),\n or: member.or && member.or.map(toQuery),\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 = validateFilters(validatedQuery.filters)\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 !== undefined ? 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.cubeApi.meta();\n\n this.copyQueryFromProps();\n\n if (isQueryPresent(this.initialQuery)) {\n const dryRunResponse = await this.cubeApi.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\n const memberTypes = ['dimensions', 'measures'];\n this.filters = filters.map((m, index) => {\n const memberName = m.member || m.dimension;\n return {\n ...m,\n member: memberName && this.meta.resolveMember(memberName, memberTypes),\n operators: memberName && this.meta.filterOperatorsForMember(memberName, memberTypes),\n and: resolveMembers(this.meta, m.and),\n or: resolveMembers(this.meta, m.or),\n index,\n };\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 mem = {\n ...member,\n and: resolveMembers(this.meta, member.and),\n or: resolveMembers(this.meta, member.or),\n member: getDimensionOrMeasure(this.meta, member),\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 mem = {\n ...member,\n and: resolveMembers(this.meta, member.and),\n or: resolveMembers(this.meta, member.or),\n member: getDimensionOrMeasure(this.meta, member),\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 mem = {\n ...m,\n and: resolveMembers(this.meta, m.and),\n or: resolveMembers(this.meta, m.or),\n member: getDimensionOrMeasure(this.meta, m),\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 removeOffset() {\n this.offset = null;\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.cubeApi\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","default","queries","loadSql","required","cubeApi","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","operators","validateFilters","filters","raw","operator","validBooleanFilter","booleanFilters","length","some","getDimensionOrMeasure","meta","m","memberName","dimension","resolveMember","resolveMembers","arr","e","index","and","or","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","pivotConfig","initialQuery","skipHeuristics","mutex","dimensions","segments","timeDimensions","availableMeasures","availableDimensions","availableTimeDimensions","availableSegments","limit","offset","renewQuery","prevValidatedQuery","granularities","GRANULARITIES","ResultSet","getNormalizedPivotConfig","validatedQuery","setLimit","removeLimit","setOffset","removeOffset","orderMembers","updateChartType","updateChart","setOrder","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","granularity","push","filter","vizState","toQuery","hasElements","element","dateRange","values","heuristicsFn","defaultHeuristics","shouldApplyHeuristicOrder","sessionGranularity","defaultOrder","copyQueryFromProps","dryRunResponse","dryRun","pivotQuery","memberTypes","filterOperatorsForMember","membersForQuery","mem","find","findIndex","splice","old","elements","emitVizStateChange","partialVizState","clone","hasQueryChanged","equals","catch","console","prevPivotConfig","value"],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ var QueryRenderer = {
|
|
|
60
60
|
loadSql: {
|
|
61
61
|
required: false
|
|
62
62
|
},
|
|
63
|
-
|
|
63
|
+
cubeApi: {
|
|
64
64
|
type: Object,
|
|
65
65
|
required: true
|
|
66
66
|
},
|
|
@@ -196,7 +196,7 @@ var QueryRenderer = {
|
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
_context2.next = 10;
|
|
199
|
-
return _this2.
|
|
199
|
+
return _this2.cubeApi.sql(query, {
|
|
200
200
|
mutexObj: _this2.mutexObj,
|
|
201
201
|
mutexKey: 'sql'
|
|
202
202
|
});
|
|
@@ -213,7 +213,7 @@ var QueryRenderer = {
|
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
_context2.next = 16;
|
|
216
|
-
return _this2.
|
|
216
|
+
return _this2.cubeApi.sql(query, {
|
|
217
217
|
mutexObj: _this2.mutexObj,
|
|
218
218
|
mutexKey: 'sql'
|
|
219
219
|
});
|
|
@@ -221,7 +221,7 @@ var QueryRenderer = {
|
|
|
221
221
|
case 16:
|
|
222
222
|
_this2.sqlQuery = _context2.sent;
|
|
223
223
|
_context2.next = 19;
|
|
224
|
-
return _this2.
|
|
224
|
+
return _this2.cubeApi.load(query, {
|
|
225
225
|
mutexObj: _this2.mutexObj,
|
|
226
226
|
mutexKey: 'query'
|
|
227
227
|
});
|
|
@@ -233,7 +233,7 @@ var QueryRenderer = {
|
|
|
233
233
|
|
|
234
234
|
case 22:
|
|
235
235
|
_context2.next = 24;
|
|
236
|
-
return _this2.
|
|
236
|
+
return _this2.cubeApi.load(query, {
|
|
237
237
|
mutexObj: _this2.mutexObj,
|
|
238
238
|
mutexKey: 'query'
|
|
239
239
|
});
|
|
@@ -279,7 +279,7 @@ var QueryRenderer = {
|
|
|
279
279
|
name = _ref2[0],
|
|
280
280
|
query = _ref2[1];
|
|
281
281
|
|
|
282
|
-
return _this3.
|
|
282
|
+
return _this3.cubeApi.load(query, {
|
|
283
283
|
mutexObj: _this3.mutexObj,
|
|
284
284
|
mutexKey: name
|
|
285
285
|
}).then(function (r) {
|
|
@@ -326,7 +326,7 @@ var QueryRenderer = {
|
|
|
326
326
|
});
|
|
327
327
|
}
|
|
328
328
|
},
|
|
329
|
-
|
|
329
|
+
cubeApi: function cubeApi() {
|
|
330
330
|
this.load();
|
|
331
331
|
},
|
|
332
332
|
chartType: function chartType() {
|
|
@@ -427,7 +427,7 @@ var QueryBuilder = {
|
|
|
427
427
|
return {};
|
|
428
428
|
}
|
|
429
429
|
},
|
|
430
|
-
|
|
430
|
+
cubeApi: {
|
|
431
431
|
type: Object,
|
|
432
432
|
required: true
|
|
433
433
|
},
|
|
@@ -485,7 +485,7 @@ var QueryBuilder = {
|
|
|
485
485
|
var _this = this;
|
|
486
486
|
|
|
487
487
|
var chartType = this.chartType,
|
|
488
|
-
|
|
488
|
+
cubeApi = this.cubeApi,
|
|
489
489
|
dimensions = this.dimensions,
|
|
490
490
|
filters = this.filters,
|
|
491
491
|
measures = this.measures,
|
|
@@ -591,7 +591,7 @@ var QueryBuilder = {
|
|
|
591
591
|
|
|
592
592
|
return vue.h(QueryRenderer, {
|
|
593
593
|
query: this.validatedQuery,
|
|
594
|
-
|
|
594
|
+
cubeApi: cubeApi,
|
|
595
595
|
builderProps: builderProps,
|
|
596
596
|
slots: this.$slots,
|
|
597
597
|
on: {
|
|
@@ -745,7 +745,7 @@ var QueryBuilder = {
|
|
|
745
745
|
switch (_context.prev = _context.next) {
|
|
746
746
|
case 0:
|
|
747
747
|
_context.next = 2;
|
|
748
|
-
return _this3.
|
|
748
|
+
return _this3.cubeApi.meta();
|
|
749
749
|
|
|
750
750
|
case 2:
|
|
751
751
|
_this3.meta = _context.sent;
|
|
@@ -758,7 +758,7 @@ var QueryBuilder = {
|
|
|
758
758
|
}
|
|
759
759
|
|
|
760
760
|
_context.next = 7;
|
|
761
|
-
return _this3.
|
|
761
|
+
return _this3.cubeApi.dryRun(_this3.initialQuery);
|
|
762
762
|
|
|
763
763
|
case 7:
|
|
764
764
|
dryRunResponse = _context.sent;
|
|
@@ -1024,7 +1024,7 @@ var QueryBuilder = {
|
|
|
1024
1024
|
}
|
|
1025
1025
|
|
|
1026
1026
|
if (core.isQueryPresent(query) && hasQueryChanged) {
|
|
1027
|
-
this.
|
|
1027
|
+
this.cubeApi.dryRun(query, {
|
|
1028
1028
|
mutexObj: this.mutex
|
|
1029
1029
|
}).then(function (_ref5) {
|
|
1030
1030
|
var pivotQuery = _ref5.pivotQuery;
|