@cubejs-client/vue3 1.3.18 → 1.3.20
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.cjs.js +10 -3
- package/dist/cubejs-client-vue3.cjs.js.map +1 -1
- package/dist/cubejs-client-vue3.esm.js +11 -4
- package/dist/cubejs-client-vue3.esm.js.map +1 -1
- package/dist/cubejs-client-vue3.umd.js +10 -3
- package/dist/cubejs-client-vue3.umd.js.map +1 -1
- package/package.json +3 -3
- package/src/QueryBuilder.js +11 -3
|
@@ -647,15 +647,22 @@ var QueryBuilder = {
|
|
|
647
647
|
order: core.defaultOrder(query)
|
|
648
648
|
} : null);
|
|
649
649
|
this.chartType = chartType || this.chartType;
|
|
650
|
-
|
|
651
|
-
this.
|
|
650
|
+
var pivot = core.ResultSet.getNormalizedPivotConfig(validatedQuery, pivotConfig !== undefined ? pivotConfig : this.pivotConfig);
|
|
651
|
+
if (!ramda.equals(pivot, this.pivotConfig)) {
|
|
652
|
+
this.pivotConfig = pivot;
|
|
653
|
+
}
|
|
654
|
+
if (!core.areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {
|
|
655
|
+
this.copyQueryFromProps(validatedQuery);
|
|
656
|
+
}
|
|
652
657
|
}
|
|
653
658
|
|
|
654
659
|
// query heuristics should only apply on query change (not applied to the initial query)
|
|
655
660
|
if (this.prevValidatedQuery !== null) {
|
|
656
661
|
this.skipHeuristics = false;
|
|
657
662
|
}
|
|
658
|
-
this.prevValidatedQuery
|
|
663
|
+
if (!core.areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {
|
|
664
|
+
this.prevValidatedQuery = validatedQuery;
|
|
665
|
+
}
|
|
659
666
|
return validatedQuery;
|
|
660
667
|
}
|
|
661
668
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cubejs-client-vue3.cjs.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((result) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(result?.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","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","isQueryPresent","load","loadQueries","stop","render","$slots","empty","createElement","slot","controls","onlyDefault","builder","measures","_objectSpread","slotProps","refetch","methods","_this2","_callee2","_callee2$","_context2","abrupt","sql","mutexKey","sent","t0","_this3","_callee3","resultPromises","_callee3$","_context3","Promise","all","toPairs","map","_ref","_ref2","_slicedToArray","name","then","r","fromPairs","t1","t2","watch","$emit","isLoading","deep","handler","prevQuery","areQueriesEqual","val","QUERY_ELEMENTS","toOrderMember","member","id","title","reduceOrderMembers","array","reduce","acc","order","concat","_toConsumableArray","operators","validateFilters","filters","raw","operator","validBooleanFilter","booleanFilters","length","_defineProperty","some","getDimensionOrMeasure","meta","m","memberName","dimension","resolveMember","resolveMembers","arr","e","index","and","or","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","_this$initialVizState","_this$initialVizState2","_this$initialVizState3","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","_ref3","granularity","push","filter","vizState","toQuery","hasElements","element","dateRange","values","_validatedQuery","heuristicsFn","defaultHeuristics","_heuristicsFn","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","copyQueryFromProps","dryRunResponse","dryRun","pivotQuery","_this4","_ref4","_ref4$measures","_ref4$dimensions","_ref4$segments","_ref4$timeDimensions","_ref4$filters","memberTypes","filterOperatorsForMember","membersForQuery","mem","find","findIndex","splice","old","_this5","elements","arguments","emitVizStateChange","partialVizState","clone","_this6","hasQueryChanged","result","equals","console","prevPivotConfig","value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cubejs-client-vue3.cjs.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 let pivot = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig !== undefined ? pivotConfig : this.pivotConfig\n );\n if (!equals(pivot, this.pivotConfig)) {\n this.pivotConfig = pivot;\n }\n\n if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {\n this.copyQueryFromProps(validatedQuery);\n }\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 if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {\n this.prevValidatedQuery = validatedQuery;\n }\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((result) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(result?.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","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","isQueryPresent","load","loadQueries","stop","render","$slots","empty","createElement","slot","controls","onlyDefault","builder","measures","_objectSpread","slotProps","refetch","methods","_this2","_callee2","_callee2$","_context2","abrupt","sql","mutexKey","sent","t0","_this3","_callee3","resultPromises","_callee3$","_context3","Promise","all","toPairs","map","_ref","_ref2","_slicedToArray","name","then","r","fromPairs","t1","t2","watch","$emit","isLoading","deep","handler","prevQuery","areQueriesEqual","val","QUERY_ELEMENTS","toOrderMember","member","id","title","reduceOrderMembers","array","reduce","acc","order","concat","_toConsumableArray","operators","validateFilters","filters","raw","operator","validBooleanFilter","booleanFilters","length","_defineProperty","some","getDimensionOrMeasure","meta","m","memberName","dimension","resolveMember","resolveMembers","arr","e","index","and","or","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","_this$initialVizState","_this$initialVizState2","_this$initialVizState3","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","_ref3","granularity","push","filter","vizState","toQuery","hasElements","element","dateRange","values","_validatedQuery","heuristicsFn","defaultHeuristics","_heuristicsFn","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","pivot","equals","copyQueryFromProps","dryRunResponse","dryRun","pivotQuery","_this4","_ref4","_ref4$measures","_ref4$dimensions","_ref4$segments","_ref4$timeDimensions","_ref4$filters","memberTypes","filterOperatorsForMember","membersForQuery","mem","find","findIndex","splice","old","_this5","elements","arguments","emitVizStateChange","partialVizState","clone","_this6","hasQueryChanged","result","console","prevPivotConfig","value"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isQueryPresent, areQueriesEqual, GRANULARITIES, ResultSet, moveItemInArray, movePivotItem, getOrderMembersFromOrder, defaultHeuristics, defaultOrder } from '@cubejs-client/core';
|
|
2
2
|
export { GRANULARITIES } from '@cubejs-client/core';
|
|
3
|
-
import { toPairs, fromPairs,
|
|
3
|
+
import { toPairs, fromPairs, equals, clone } from 'ramda';
|
|
4
4
|
import { h } from 'vue';
|
|
5
5
|
|
|
6
6
|
var QueryRenderer = {
|
|
@@ -507,15 +507,22 @@ var QueryBuilder = {
|
|
|
507
507
|
} : null)
|
|
508
508
|
};
|
|
509
509
|
this.chartType = chartType || this.chartType;
|
|
510
|
-
|
|
511
|
-
this.
|
|
510
|
+
let pivot = ResultSet.getNormalizedPivotConfig(validatedQuery, pivotConfig !== undefined ? pivotConfig : this.pivotConfig);
|
|
511
|
+
if (!equals(pivot, this.pivotConfig)) {
|
|
512
|
+
this.pivotConfig = pivot;
|
|
513
|
+
}
|
|
514
|
+
if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {
|
|
515
|
+
this.copyQueryFromProps(validatedQuery);
|
|
516
|
+
}
|
|
512
517
|
}
|
|
513
518
|
|
|
514
519
|
// query heuristics should only apply on query change (not applied to the initial query)
|
|
515
520
|
if (this.prevValidatedQuery !== null) {
|
|
516
521
|
this.skipHeuristics = false;
|
|
517
522
|
}
|
|
518
|
-
this.prevValidatedQuery
|
|
523
|
+
if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {
|
|
524
|
+
this.prevValidatedQuery = validatedQuery;
|
|
525
|
+
}
|
|
519
526
|
return validatedQuery;
|
|
520
527
|
}
|
|
521
528
|
},
|
|
@@ -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 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((result) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(result?.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","result","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 let pivot = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig !== undefined ? pivotConfig : this.pivotConfig\n );\n if (!equals(pivot, this.pivotConfig)) {\n this.pivotConfig = pivot;\n }\n\n if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {\n this.copyQueryFromProps(validatedQuery);\n }\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 if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {\n this.prevValidatedQuery = validatedQuery;\n }\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((result) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(result?.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","pivot","equals","copyQueryFromProps","dryRunResponse","dryRun","pivotQuery","memberTypes","filterOperatorsForMember","membersForQuery","mem","find","findIndex","splice","old","elements","emitVizStateChange","partialVizState","clone","hasQueryChanged","result","catch","console","prevPivotConfig","value"],"mappings":"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"}
|
|
@@ -617,15 +617,22 @@
|
|
|
617
617
|
order: core.defaultOrder(query)
|
|
618
618
|
} : null);
|
|
619
619
|
this.chartType = chartType || this.chartType;
|
|
620
|
-
|
|
621
|
-
this.
|
|
620
|
+
var pivot = core.ResultSet.getNormalizedPivotConfig(validatedQuery, pivotConfig !== undefined ? pivotConfig : this.pivotConfig);
|
|
621
|
+
if (!ramda.equals(pivot, this.pivotConfig)) {
|
|
622
|
+
this.pivotConfig = pivot;
|
|
623
|
+
}
|
|
624
|
+
if (!core.areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {
|
|
625
|
+
this.copyQueryFromProps(validatedQuery);
|
|
626
|
+
}
|
|
622
627
|
}
|
|
623
628
|
|
|
624
629
|
// query heuristics should only apply on query change (not applied to the initial query)
|
|
625
630
|
if (this.prevValidatedQuery !== null) {
|
|
626
631
|
this.skipHeuristics = false;
|
|
627
632
|
}
|
|
628
|
-
this.prevValidatedQuery
|
|
633
|
+
if (!core.areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {
|
|
634
|
+
this.prevValidatedQuery = validatedQuery;
|
|
635
|
+
}
|
|
629
636
|
return validatedQuery;
|
|
630
637
|
}
|
|
631
638
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cubejs-client-vue3.umd.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((result) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(result?.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","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","isQueryPresent","load","loadQueries","stop","render","$slots","empty","createElement","slot","controls","onlyDefault","builder","measures","_objectSpread","slotProps","refetch","methods","_this2","_callee2","_callee2$","_context2","abrupt","sql","mutexKey","sent","t0","_this3","_callee3","resultPromises","_callee3$","_context3","Promise","all","toPairs","map","_ref","_ref2","_slicedToArray","name","then","r","fromPairs","t1","t2","watch","$emit","isLoading","deep","handler","prevQuery","areQueriesEqual","val","QUERY_ELEMENTS","toOrderMember","member","id","title","reduceOrderMembers","array","reduce","acc","order","concat","_toConsumableArray","operators","validateFilters","filters","raw","operator","validBooleanFilter","booleanFilters","length","_defineProperty","some","getDimensionOrMeasure","meta","m","memberName","dimension","resolveMember","resolveMembers","arr","e","index","and","or","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","_this$initialVizState","_this$initialVizState2","_this$initialVizState3","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","_ref3","granularity","push","filter","vizState","toQuery","hasElements","element","dateRange","values","_validatedQuery","heuristicsFn","defaultHeuristics","_heuristicsFn","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","copyQueryFromProps","dryRunResponse","dryRun","pivotQuery","_this4","_ref4","_ref4$measures","_ref4$dimensions","_ref4$segments","_ref4$timeDimensions","_ref4$filters","memberTypes","filterOperatorsForMember","membersForQuery","mem","find","findIndex","splice","old","_this5","elements","arguments","emitVizStateChange","partialVizState","clone","_this6","hasQueryChanged","result","equals","console","prevPivotConfig","value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cubejs-client-vue3.umd.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 let pivot = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig !== undefined ? pivotConfig : this.pivotConfig\n );\n if (!equals(pivot, this.pivotConfig)) {\n this.pivotConfig = pivot;\n }\n\n if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {\n this.copyQueryFromProps(validatedQuery);\n }\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 if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {\n this.prevValidatedQuery = validatedQuery;\n }\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((result) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(result?.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","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","isQueryPresent","load","loadQueries","stop","render","$slots","empty","createElement","slot","controls","onlyDefault","builder","measures","_objectSpread","slotProps","refetch","methods","_this2","_callee2","_callee2$","_context2","abrupt","sql","mutexKey","sent","t0","_this3","_callee3","resultPromises","_callee3$","_context3","Promise","all","toPairs","map","_ref","_ref2","_slicedToArray","name","then","r","fromPairs","t1","t2","watch","$emit","isLoading","deep","handler","prevQuery","areQueriesEqual","val","QUERY_ELEMENTS","toOrderMember","member","id","title","reduceOrderMembers","array","reduce","acc","order","concat","_toConsumableArray","operators","validateFilters","filters","raw","operator","validBooleanFilter","booleanFilters","length","_defineProperty","some","getDimensionOrMeasure","meta","m","memberName","dimension","resolveMember","resolveMembers","arr","e","index","and","or","components","QueryRenderer","initialChartType","disableHeuristics","Boolean","stateChangeHeuristics","Function","initialVizState","_this$initialVizState","_this$initialVizState2","_this$initialVizState3","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","_ref3","granularity","push","filter","vizState","toQuery","hasElements","element","dateRange","values","_validatedQuery","heuristicsFn","defaultHeuristics","_heuristicsFn","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","pivot","equals","copyQueryFromProps","dryRunResponse","dryRun","pivotQuery","_this4","_ref4","_ref4$measures","_ref4$dimensions","_ref4$segments","_ref4$timeDimensions","_ref4$filters","memberTypes","filterOperatorsForMember","membersForQuery","mem","find","findIndex","splice","old","_this5","elements","arguments","emitVizStateChange","partialVizState","clone","_this6","hasQueryChanged","result","console","prevPivotConfig","value"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubejs-client/vue3",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.20",
|
|
4
4
|
"engines": {},
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"src"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@cubejs-client/core": "1.3.
|
|
31
|
+
"@cubejs-client/core": "1.3.20",
|
|
32
32
|
"@vue/compiler-sfc": "^3.0.11",
|
|
33
33
|
"core-js": "^3.6.5",
|
|
34
34
|
"flush-promises": "^1.0.2",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"publishConfig": {
|
|
83
83
|
"access": "public"
|
|
84
84
|
},
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "3bc4093e055af0d632d24c55c87ace165995cd06"
|
|
86
86
|
}
|
package/src/QueryBuilder.js
CHANGED
|
@@ -381,11 +381,17 @@ export default {
|
|
|
381
381
|
};
|
|
382
382
|
|
|
383
383
|
this.chartType = chartType || this.chartType;
|
|
384
|
-
|
|
384
|
+
let pivot = ResultSet.getNormalizedPivotConfig(
|
|
385
385
|
validatedQuery,
|
|
386
386
|
pivotConfig !== undefined ? pivotConfig : this.pivotConfig
|
|
387
387
|
);
|
|
388
|
-
this.
|
|
388
|
+
if (!equals(pivot, this.pivotConfig)) {
|
|
389
|
+
this.pivotConfig = pivot;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {
|
|
393
|
+
this.copyQueryFromProps(validatedQuery);
|
|
394
|
+
}
|
|
389
395
|
}
|
|
390
396
|
|
|
391
397
|
// query heuristics should only apply on query change (not applied to the initial query)
|
|
@@ -393,7 +399,9 @@ export default {
|
|
|
393
399
|
this.skipHeuristics = false;
|
|
394
400
|
}
|
|
395
401
|
|
|
396
|
-
this.prevValidatedQuery
|
|
402
|
+
if (!areQueriesEqual(this.prevValidatedQuery, validatedQuery)) {
|
|
403
|
+
this.prevValidatedQuery = validatedQuery;
|
|
404
|
+
}
|
|
397
405
|
return validatedQuery;
|
|
398
406
|
},
|
|
399
407
|
},
|