@cubejs-client/vue3 0.35.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-vue3.js","sources":["../src/QueryRenderer.js","../src/QueryBuilder.js","../src/index.js"],"sourcesContent":["import { toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';\nimport { h as createElement } from 'vue';\n\nexport default {\n props: {\n query: {\n type: [Object, Array],\n default: () => ({}),\n },\n // TODO: validate with current react implementation\n queries: {\n type: Object,\n },\n loadSql: {\n required: false,\n },\n cubeApi: {\n type: Object,\n required: true,\n },\n builderProps: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n chartType: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n mutexObj: {},\n error: undefined,\n resultSet: undefined,\n loading: false,\n sqlQuery: undefined,\n };\n },\n async mounted() {\n const { query, queries } = this;\n\n if (isQueryPresent(query)) {\n await this.load();\n } else if (isQueryPresent(queries)) {\n await this.loadQueries(queries);\n }\n },\n render() {\n const { $slots, resultSet, error, loading, sqlQuery } = this;\n const empty = createElement('div', {});\n let slot = this.$slots.empty ? this.$slots.empty() : empty;\n let controls = createElement('div', {});\n const onlyDefault = !('empty' in this.$slots) && !('error' in this.$slots);\n\n if ($slots.builder && this.builderProps.measures) {\n controls = $slots.builder({ ...this.builderProps });\n }\n\n if ((!loading && resultSet && !error) || onlyDefault) {\n let slotProps = {\n resultSet,\n sqlQuery,\n query: this.builderProps.query || this.query,\n };\n\n if (onlyDefault) {\n slotProps = {\n loading,\n error,\n refetch: this.load,\n ...this.builderProps,\n ...slotProps,\n };\n }\n slot = $slots.default ? $slots.default(slotProps) : slot;\n } else if (error) {\n slot = $slots.error ? $slots.error({ error, sqlQuery }) : slot;\n }\n\n return createElement('div', {}, [controls, slot]);\n },\n methods: {\n async load() {\n const { query } = this;\n\n if (!isQueryPresent(query)) {\n return;\n }\n\n try {\n this.loading = true;\n this.error = null;\n this.resultSet = null;\n\n if (this.loadSql === 'only') {\n this.sqlQuery = await this.cubeApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n } else if (this.loadSql) {\n this.sqlQuery = await this.cubeApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n this.resultSet = await this.cubeApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n } else {\n this.resultSet = await this.cubeApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n }\n\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.resultSet = undefined;\n this.loading = false;\n }\n },\n async loadQueries() {\n const { queries } = this;\n try {\n this.error = undefined;\n this.loading = true;\n\n const resultPromises = Promise.all(\n toPairs(queries).map(([name, query]) =>\n this.cubeApi\n .load(query, {\n mutexObj: this.mutexObj,\n mutexKey: name,\n })\n .then((r) => [name, r])\n )\n );\n\n this.resultSet = fromPairs(await resultPromises);\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.loading = false;\n }\n },\n },\n watch: {\n loading(loading) {\n if (loading === false) {\n this.$emit('queryStatus', {\n isLoading: false,\n error: this.error,\n resultSet: this.resultSet,\n });\n } else {\n this.$emit('queryStatus', { isLoading: true });\n }\n },\n cubeApi() {\n this.load();\n },\n chartType() {\n this.load();\n },\n query: {\n deep: true,\n handler(query, prevQuery) {\n if (!areQueriesEqual(query, prevQuery)) {\n this.load();\n }\n },\n },\n queries: {\n handler(val) {\n if (val) {\n this.loadQueries();\n }\n },\n deep: true,\n },\n },\n};\n","import {\n isQueryPresent,\n defaultOrder,\n defaultHeuristics,\n GRANULARITIES,\n ResultSet,\n getOrderMembersFromOrder,\n moveItemInArray,\n movePivotItem,\n areQueriesEqual,\n} from '@cubejs-client/core';\nimport { h } from 'vue';\nimport { clone, equals } from 'ramda';\n\nimport QueryRenderer from './QueryRenderer';\n\nconst QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];\n\nconst toOrderMember = (member) => ({\n id: member.name,\n title: member.title,\n});\n\nconst reduceOrderMembers = (array) =>\n array.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []);\n\nconst operators = [ 'and', 'or' ]\n\nconst validateFilters = (filters) =>\n filters.reduce((acc, raw) => {\n if (raw.operator) {\n return [...acc, raw];\n }\n\n const validBooleanFilter = operators.reduce((acc, operator) => {\n const filters = raw[operator];\n\n const booleanFilters = validateFilters(filters || []);\n\n if (booleanFilters.length) {\n return { ...acc, [operator]: booleanFilters };\n }\n\n return acc;\n }, {});\n\n if (operators.some((operator) => validBooleanFilter[operator])) {\n return [...acc, validBooleanFilter];\n }\n\n return acc;\n }, []);\n\nconst getDimensionOrMeasure = (meta, m) => {\n const memberName = m.member || m.dimension;\n return memberName && meta.resolveMember(memberName, ['dimensions', 'measures']);\n};\n\nconst resolveMembers = (meta, arr) =>\n arr &&\n arr.map((e, index) => {\n return {\n ...e,\n member: getDimensionOrMeasure(meta, e),\n index,\n and: resolveMembers(meta, e.and),\n or: resolveMembers(meta, e.or),\n };\n });\n\nexport default {\n components: {\n QueryRenderer,\n },\n props: {\n query: {\n type: Object,\n default: () => ({}),\n },\n cubeApi: {\n type: Object,\n required: true,\n },\n initialChartType: {\n type: String,\n default: () => 'line',\n },\n disableHeuristics: {\n type: Boolean,\n },\n stateChangeHeuristics: {\n type: Function,\n },\n initialVizState: {\n type: Object,\n default: () => ({}),\n },\n },\n data() {\n const {\n query = this.query,\n chartType = this.initialChartType,\n pivotConfig,\n } = this.initialVizState;\n\n return {\n initialQuery: query,\n skipHeuristics: true,\n meta: undefined,\n mutex: {},\n chartType,\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n filters: [],\n availableMeasures: [],\n availableDimensions: [],\n availableTimeDimensions: [],\n availableSegments: [],\n limit: null,\n offset: null,\n renewQuery: false,\n order: null,\n prevValidatedQuery: null,\n granularities: GRANULARITIES,\n pivotConfig: ResultSet.getNormalizedPivotConfig(query || {}, pivotConfig),\n };\n },\n\n render() {\n const {\n chartType,\n cubeApi,\n dimensions,\n filters,\n measures,\n meta,\n query,\n segments,\n timeDimensions,\n validatedQuery,\n isQueryPresent,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n } = this;\n\n let builderProps = {};\n\n if (meta) {\n builderProps = {\n query,\n validatedQuery,\n isQueryPresent,\n chartType,\n measures,\n dimensions,\n segments,\n timeDimensions,\n filters,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n updateChartType: this.updateChart,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n setOrder: this.setOrder,\n pivotConfig: this.pivotConfig,\n updateOrder: {\n set: (memberId, newOrder) => {\n this.order = reduceOrderMembers(\n orderMembers.map((orderMember) => ({\n ...orderMember,\n order: orderMember.id === memberId ? newOrder : orderMember.order,\n }))\n );\n },\n update: (newOrder) => {\n this.order = newOrder;\n },\n reorder: (sourceIndex, destinationIndex) => {\n this.order = reduceOrderMembers(\n moveItemInArray(orderMembers, sourceIndex, destinationIndex)\n );\n },\n },\n updatePivotConfig: {\n moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {\n this.pivotConfig = movePivotItem(\n this.pivotConfig,\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n );\n },\n update: (pivotConfig) => {\n this.pivotConfig = {\n x: pivotConfig.x || this.pivotConfig.x,\n y: pivotConfig.y || this.pivotConfig.y,\n };\n },\n },\n };\n\n QUERY_ELEMENTS.forEach((elementName) => {\n const name = elementName.charAt(0).toUpperCase() + elementName.slice(1);\n\n builderProps[`add${name}`] = (member) => {\n this.addMember(elementName, member);\n };\n\n builderProps[`update${name}`] = (member, updateWith) => {\n this.updateMember(elementName, member, updateWith);\n };\n\n builderProps[`remove${name}`] = (member) => {\n this.removeMember(elementName, member);\n };\n\n builderProps[`set${name}`] = (members) => {\n this.setMembers(elementName, members);\n };\n });\n }\n\n return h(\n QueryRenderer,\n {\n query: this.validatedQuery,\n cubeApi,\n builderProps,\n slots: this.$slots,\n on: {\n queryStatus: (event) => {\n this.$emit('queryStatus', event);\n },\n },\n },\n this.$slots\n );\n },\n computed: {\n isQueryPresent() {\n const { validatedQuery } = this;\n\n return isQueryPresent(validatedQuery);\n },\n orderMembers() {\n return getOrderMembersFromOrder(\n [\n ...this.measures,\n ...this.dimensions,\n ...this.timeDimensions.reduce((acc, { dimension, granularity }) => {\n if (granularity !== undefined) {\n acc.push(toOrderMember(dimension));\n }\n return acc;\n }, []),\n ]\n .map((member, index) => {\n const id = member.name || member.id;\n\n if (!id) {\n return false;\n }\n\n return {\n index,\n id,\n title: member.title,\n };\n })\n .filter(Boolean),\n this.order\n );\n },\n vizState() {\n return {\n query: this.validatedQuery,\n chartType: this.chartType,\n pivotConfig: this.pivotConfig,\n };\n },\n validatedQuery() {\n let validatedQuery = {};\n let toQuery = (member) => member.name;\n // TODO: implement timezone\n\n let hasElements = false;\n QUERY_ELEMENTS.forEach((element) => {\n if (element === 'timeDimensions') {\n toQuery = (member) => ({\n dimension: member.dimension.name,\n granularity: member.granularity,\n dateRange: member.dateRange,\n });\n } else if (element === 'filters') {\n toQuery = (member) => ({\n member: member.member && member.member.name,\n operator: member.operator,\n values: member.values,\n and: member.and && member.and.map(toQuery),\n or: member.or && member.or.map(toQuery),\n });\n }\n\n if (this[element].length > 0) {\n validatedQuery[element] = this[element].map((x) => toQuery(x));\n\n hasElements = true;\n }\n });\n\n if (validatedQuery.filters) {\n validatedQuery.filters = validateFilters(validatedQuery.filters)\n }\n\n // only set limit and offset if there are elements otherwise an invalid request with just limit/offset\n // gets sent when the component is first mounted, but before the actual query is constructed.\n if (hasElements) {\n if (this.limit) {\n validatedQuery.limit = this.limit;\n }\n\n if (this.offset) {\n validatedQuery.offset = this.offset;\n }\n\n if (this.order) {\n validatedQuery.order = this.order;\n }\n\n if (this.renewQuery) {\n validatedQuery.renewQuery = this.renewQuery;\n }\n }\n\n if (\n !this.skipHeuristics &&\n !this.disableHeuristics &&\n isQueryPresent(validatedQuery) &&\n this.meta\n ) {\n const heuristicsFn = this.stateChangeHeuristics || defaultHeuristics;\n const { query, chartType, shouldApplyHeuristicOrder, pivotConfig } = heuristicsFn(\n {\n query: validatedQuery,\n chartType: this.chartType,\n },\n this.prevValidatedQuery,\n {\n meta: this.meta,\n sessionGranularity: validatedQuery?.timeDimensions?.[0]?.granularity,\n }\n );\n\n validatedQuery = {\n ...validatedQuery,\n ...query,\n ...(shouldApplyHeuristicOrder ? { order: defaultOrder(query) } : null),\n };\n\n this.chartType = chartType || this.chartType;\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig !== undefined ? pivotConfig : this.pivotConfig\n );\n this.copyQueryFromProps(validatedQuery);\n }\n\n // query heuristics should only apply on query change (not applied to the initial query)\n if (this.prevValidatedQuery !== null) {\n this.skipHeuristics = false;\n }\n\n this.prevValidatedQuery = validatedQuery;\n return validatedQuery;\n },\n },\n\n async mounted() {\n this.meta = await this.cubeApi.meta();\n\n this.copyQueryFromProps();\n\n if (isQueryPresent(this.initialQuery)) {\n const dryRunResponse = await this.cubeApi.dryRun(this.initialQuery);\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n dryRunResponse?.pivotQuery || {},\n this.pivotConfig\n );\n }\n },\n\n methods: {\n copyQueryFromProps(query) {\n const {\n measures = [],\n dimensions = [],\n segments = [],\n timeDimensions = [],\n filters = [],\n limit,\n offset,\n renewQuery,\n order,\n } = query || this.initialQuery;\n\n this.measures = measures.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'measures'),\n }));\n this.dimensions = dimensions.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'dimensions'),\n }));\n this.segments = segments.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'segments'),\n }));\n this.timeDimensions = timeDimensions.map((m, index) => ({\n ...m,\n dimension: {\n ...this.meta.resolveMember(m.dimension, 'dimensions'),\n granularities: this.granularities,\n },\n index,\n }));\n\n const memberTypes = ['dimensions', 'measures'];\n this.filters = filters.map((m, index) => {\n const memberName = m.member || m.dimension;\n return {\n ...m,\n member: memberName && this.meta.resolveMember(memberName, memberTypes),\n operators: memberName && this.meta.filterOperatorsForMember(memberName, memberTypes),\n and: resolveMembers(this.meta, m.and),\n or: resolveMembers(this.meta, m.or),\n index,\n };\n });\n\n this.availableMeasures = this.meta.membersForQuery({}, 'measures') || [];\n this.availableDimensions = this.meta.membersForQuery({}, 'dimensions') || [];\n this.availableTimeDimensions = (this.meta.membersForQuery({}, 'dimensions') || []).filter(\n (m) => m.type === 'time'\n );\n this.availableSegments = this.meta.membersForQuery({}, 'segments') || [];\n this.limit = limit || 10000;\n this.offset = offset || null;\n this.renewQuery = renewQuery || false;\n this.order = order || null;\n },\n addMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: member.granularity,\n dateRange: member.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n mem = {\n ...member,\n and: resolveMembers(this.meta, member.and),\n or: resolveMembers(this.meta, member.or),\n member: getDimensionOrMeasure(this.meta, member),\n }\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].push(mem);\n }\n },\n removeMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === member);\n } else if (element === 'filters') {\n mem = member;\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n const index = this[element].findIndex((x) => x.name === mem);\n this[element].splice(index, 1);\n }\n },\n updateMember(element, old, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n let index;\n\n if (element === 'timeDimensions') {\n index = this[element].findIndex((x) => x.dimension.name === old.dimension);\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n dimension,\n granularity: member.granularity,\n dateRange: member.dateRange,\n index,\n };\n }\n } else if (element === 'filters') {\n index = this[element].findIndex((x) => x.dimension === old);\n mem = {\n ...member,\n and: resolveMembers(this.meta, member.and),\n or: resolveMembers(this.meta, member.or),\n member: getDimensionOrMeasure(this.meta, member),\n };\n } else {\n index = this[element].findIndex((x) => x.name === old);\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].splice(index, 1, mem);\n }\n },\n setMembers(element, members) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n const elements = [];\n\n members.filter(Boolean).forEach((m) => {\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === m.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: m.granularity,\n dateRange: m.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n mem = {\n ...m,\n and: resolveMembers(this.meta, m.and),\n or: resolveMembers(this.meta, m.or),\n member: getDimensionOrMeasure(this.meta, m),\n };\n } else {\n mem = this[`available${name}`].find((x) => x.name === m);\n }\n\n if (mem) {\n elements.push(mem);\n }\n });\n\n this[element] = elements;\n },\n setLimit(limit) {\n this.limit = limit;\n },\n removeLimit() {\n this.limit = null;\n },\n setOffset(offset) {\n this.offset = offset;\n },\n removeOffset() {\n this.offset = null;\n },\n updateChart(chartType) {\n this.chartType = chartType;\n },\n setOrder(order = {}) {\n this.order = order;\n },\n emitVizStateChange(partialVizState) {\n this.$emit(\n 'vizStateChange',\n clone({\n ...this.vizState,\n ...partialVizState,\n })\n );\n },\n },\n\n watch: {\n validatedQuery: {\n deep: true,\n handler(query, prevQuery) {\n const hasQueryChanged = !areQueriesEqual(query, prevQuery);\n\n if (hasQueryChanged) {\n this.emitVizStateChange({\n query,\n });\n }\n\n if (isQueryPresent(query) && hasQueryChanged) {\n this.cubeApi\n .dryRun(query, {\n mutexObj: this.mutex,\n })\n .then(({ pivotQuery }) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(pivotQuery, this.pivotConfig);\n\n if (!equals(pivotConfig, this.pivotConfig)) {\n this.pivotConfig = pivotConfig;\n }\n })\n .catch((error) => console.error(error));\n }\n },\n },\n query: {\n deep: true,\n handler(query) {\n if (!this.meta) {\n // this is ok as if meta has not been loaded by the time query prop has changed,\n // then the promise for loading meta (found in mounted()) will call\n // copyQueryFromProps and will therefore update anyway.\n return;\n }\n this.copyQueryFromProps(query);\n },\n },\n pivotConfig: {\n deep: true,\n handler(pivotConfig, prevPivotConfig) {\n if (!equals(pivotConfig, prevPivotConfig)) {\n this.emitVizStateChange({\n pivotConfig,\n });\n }\n },\n },\n chartType(value) {\n this.emitVizStateChange({\n chartType: value,\n });\n },\n },\n};\n","import { GRANULARITIES } from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer';\nimport QueryBuilder from './QueryBuilder';\n\nexport { QueryRenderer, QueryBuilder, GRANULARITIES };\n\nexport default {};\n"],"names":["props","query","type","Object","Array","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","sessionGranularity","shouldApplyHeuristicOrder","defaultOrder","copyQueryFromProps","dryRun","dryRunResponse","pivotQuery","memberTypes","filterOperatorsForMember","membersForQuery","mem","find","findIndex","splice","old","elements","emitVizStateChange","partialVizState","clone","hasQueryChanged","equals","console","prevPivotConfig","value"],"mappings":"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"}
1
+ {"version":3,"file":"cubejs-client-vue3.js","sources":["../src/QueryRenderer.js","../src/QueryBuilder.js","../src/index.js"],"sourcesContent":["import { toPairs, fromPairs } from 'ramda';\nimport { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';\nimport { h as createElement } from 'vue';\n\nexport default {\n props: {\n query: {\n type: [Object, Array],\n default: () => ({}),\n },\n // TODO: validate with current react implementation\n queries: {\n type: Object,\n },\n loadSql: {\n required: false,\n },\n cubeApi: {\n type: Object,\n required: true,\n },\n builderProps: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n chartType: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n mutexObj: {},\n error: undefined,\n resultSet: undefined,\n loading: false,\n sqlQuery: undefined,\n };\n },\n async mounted() {\n const { query, queries } = this;\n\n if (isQueryPresent(query)) {\n await this.load();\n } else if (isQueryPresent(queries)) {\n await this.loadQueries(queries);\n }\n },\n render() {\n const { $slots, resultSet, error, loading, sqlQuery } = this;\n const empty = createElement('div', {});\n let slot = this.$slots.empty ? this.$slots.empty() : empty;\n let controls = createElement('div', {});\n const onlyDefault = !('empty' in this.$slots) && !('error' in this.$slots);\n\n if ($slots.builder && this.builderProps.measures) {\n controls = $slots.builder({ ...this.builderProps });\n }\n\n if ((!loading && resultSet && !error) || onlyDefault) {\n let slotProps = {\n resultSet,\n sqlQuery,\n query: this.builderProps.query || this.query,\n };\n\n if (onlyDefault) {\n slotProps = {\n loading,\n error,\n refetch: this.load,\n ...this.builderProps,\n ...slotProps,\n };\n }\n slot = $slots.default ? $slots.default(slotProps) : slot;\n } else if (error) {\n slot = $slots.error ? $slots.error({ error, sqlQuery }) : slot;\n }\n\n return createElement('div', {}, [controls, slot]);\n },\n methods: {\n async load() {\n const { query } = this;\n\n if (!isQueryPresent(query)) {\n return;\n }\n\n try {\n this.loading = true;\n this.error = null;\n this.resultSet = null;\n\n if (this.loadSql === 'only') {\n this.sqlQuery = await this.cubeApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n } else if (this.loadSql) {\n this.sqlQuery = await this.cubeApi.sql(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'sql',\n });\n this.resultSet = await this.cubeApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n } else {\n this.resultSet = await this.cubeApi.load(query, {\n mutexObj: this.mutexObj,\n mutexKey: 'query',\n });\n }\n\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.resultSet = undefined;\n this.loading = false;\n }\n },\n async loadQueries() {\n const { queries } = this;\n try {\n this.error = undefined;\n this.loading = true;\n\n const resultPromises = Promise.all(\n toPairs(queries).map(([name, query]) =>\n this.cubeApi\n .load(query, {\n mutexObj: this.mutexObj,\n mutexKey: name,\n })\n .then((r) => [name, r])\n )\n );\n\n this.resultSet = fromPairs(await resultPromises);\n this.loading = false;\n } catch (error) {\n this.error = error;\n this.loading = false;\n }\n },\n },\n watch: {\n loading(loading) {\n if (loading === false) {\n this.$emit('queryStatus', {\n isLoading: false,\n error: this.error,\n resultSet: this.resultSet,\n });\n } else {\n this.$emit('queryStatus', { isLoading: true });\n }\n },\n cubeApi() {\n this.load();\n },\n chartType() {\n this.load();\n },\n query: {\n deep: true,\n handler(query, prevQuery) {\n if (!areQueriesEqual(query, prevQuery)) {\n this.load();\n }\n },\n },\n queries: {\n handler(val) {\n if (val) {\n this.loadQueries();\n }\n },\n deep: true,\n },\n },\n};\n","import {\n isQueryPresent,\n defaultOrder,\n defaultHeuristics,\n GRANULARITIES,\n ResultSet,\n getOrderMembersFromOrder,\n moveItemInArray,\n movePivotItem,\n areQueriesEqual,\n} from '@cubejs-client/core';\nimport { h } from 'vue';\nimport { clone, equals } from 'ramda';\n\nimport QueryRenderer from './QueryRenderer';\n\nconst QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];\n\nconst toOrderMember = (member) => ({\n id: member.name,\n title: member.title,\n});\n\nconst reduceOrderMembers = (array) =>\n array.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []);\n\nconst operators = [ 'and', 'or' ]\n\nconst validateFilters = (filters) =>\n filters.reduce((acc, raw) => {\n if (raw.operator) {\n return [...acc, raw];\n }\n\n const validBooleanFilter = operators.reduce((acc, operator) => {\n const filters = raw[operator];\n\n const booleanFilters = validateFilters(filters || []);\n\n if (booleanFilters.length) {\n return { ...acc, [operator]: booleanFilters };\n }\n\n return acc;\n }, {});\n\n if (operators.some((operator) => validBooleanFilter[operator])) {\n return [...acc, validBooleanFilter];\n }\n\n return acc;\n }, []);\n\nconst getDimensionOrMeasure = (meta, m) => {\n const memberName = m.member || m.dimension;\n return memberName && meta.resolveMember(memberName, ['dimensions', 'measures']);\n};\n\nconst resolveMembers = (meta, arr) =>\n arr &&\n arr.map((e, index) => {\n return {\n ...e,\n member: getDimensionOrMeasure(meta, e),\n index,\n and: resolveMembers(meta, e.and),\n or: resolveMembers(meta, e.or),\n };\n });\n\nexport default {\n components: {\n QueryRenderer,\n },\n props: {\n query: {\n type: Object,\n default: () => ({}),\n },\n cubeApi: {\n type: Object,\n required: true,\n },\n initialChartType: {\n type: String,\n default: () => 'line',\n },\n disableHeuristics: {\n type: Boolean,\n },\n stateChangeHeuristics: {\n type: Function,\n },\n initialVizState: {\n type: Object,\n default: () => ({}),\n },\n },\n data() {\n const {\n query = this.query,\n chartType = this.initialChartType,\n pivotConfig,\n } = this.initialVizState;\n\n return {\n initialQuery: query,\n skipHeuristics: true,\n meta: undefined,\n mutex: {},\n chartType,\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n filters: [],\n availableMeasures: [],\n availableDimensions: [],\n availableTimeDimensions: [],\n availableSegments: [],\n limit: null,\n offset: null,\n renewQuery: false,\n order: null,\n prevValidatedQuery: null,\n granularities: GRANULARITIES,\n pivotConfig: ResultSet.getNormalizedPivotConfig(query || {}, pivotConfig),\n };\n },\n\n render() {\n const {\n chartType,\n cubeApi,\n dimensions,\n filters,\n measures,\n meta,\n query,\n segments,\n timeDimensions,\n validatedQuery,\n isQueryPresent,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n } = this;\n\n let builderProps = {};\n\n if (meta) {\n builderProps = {\n query,\n validatedQuery,\n isQueryPresent,\n chartType,\n measures,\n dimensions,\n segments,\n timeDimensions,\n filters,\n availableSegments,\n availableTimeDimensions,\n availableDimensions,\n availableMeasures,\n updateChartType: this.updateChart,\n limit,\n offset,\n setLimit,\n removeLimit,\n setOffset,\n removeOffset,\n renewQuery,\n order,\n orderMembers,\n setOrder: this.setOrder,\n pivotConfig: this.pivotConfig,\n updateOrder: {\n set: (memberId, newOrder) => {\n this.order = reduceOrderMembers(\n orderMembers.map((orderMember) => ({\n ...orderMember,\n order: orderMember.id === memberId ? newOrder : orderMember.order,\n }))\n );\n },\n update: (newOrder) => {\n this.order = newOrder;\n },\n reorder: (sourceIndex, destinationIndex) => {\n this.order = reduceOrderMembers(\n moveItemInArray(orderMembers, sourceIndex, destinationIndex)\n );\n },\n },\n updatePivotConfig: {\n moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {\n this.pivotConfig = movePivotItem(\n this.pivotConfig,\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n );\n },\n update: (pivotConfig) => {\n this.pivotConfig = {\n x: pivotConfig.x || this.pivotConfig.x,\n y: pivotConfig.y || this.pivotConfig.y,\n };\n },\n },\n };\n\n QUERY_ELEMENTS.forEach((elementName) => {\n const name = elementName.charAt(0).toUpperCase() + elementName.slice(1);\n\n builderProps[`add${name}`] = (member) => {\n this.addMember(elementName, member);\n };\n\n builderProps[`update${name}`] = (member, updateWith) => {\n this.updateMember(elementName, member, updateWith);\n };\n\n builderProps[`remove${name}`] = (member) => {\n this.removeMember(elementName, member);\n };\n\n builderProps[`set${name}`] = (members) => {\n this.setMembers(elementName, members);\n };\n });\n }\n\n return h(\n QueryRenderer,\n {\n query: this.validatedQuery,\n cubeApi,\n builderProps,\n slots: this.$slots,\n on: {\n queryStatus: (event) => {\n this.$emit('queryStatus', event);\n },\n },\n },\n this.$slots\n );\n },\n computed: {\n isQueryPresent() {\n const { validatedQuery } = this;\n\n return isQueryPresent(validatedQuery);\n },\n orderMembers() {\n return getOrderMembersFromOrder(\n [\n ...this.measures,\n ...this.dimensions,\n ...this.timeDimensions.reduce((acc, { dimension, granularity }) => {\n if (granularity !== undefined) {\n acc.push(toOrderMember(dimension));\n }\n return acc;\n }, []),\n ]\n .map((member, index) => {\n const id = member.name || member.id;\n\n if (!id) {\n return false;\n }\n\n return {\n index,\n id,\n title: member.title,\n };\n })\n .filter(Boolean),\n this.order\n );\n },\n vizState() {\n return {\n query: this.validatedQuery,\n chartType: this.chartType,\n pivotConfig: this.pivotConfig,\n };\n },\n validatedQuery() {\n let validatedQuery = {};\n let toQuery = (member) => member.name;\n // TODO: implement timezone\n\n let hasElements = false;\n QUERY_ELEMENTS.forEach((element) => {\n if (element === 'timeDimensions') {\n toQuery = (member) => ({\n dimension: member.dimension.name,\n granularity: member.granularity,\n dateRange: member.dateRange,\n });\n } else if (element === 'filters') {\n toQuery = (member) => ({\n member: member.member && member.member.name,\n operator: member.operator,\n values: member.values,\n and: member.and && member.and.map(toQuery),\n or: member.or && member.or.map(toQuery),\n });\n }\n\n if (this[element].length > 0) {\n validatedQuery[element] = this[element].map((x) => toQuery(x));\n\n hasElements = true;\n }\n });\n\n if (validatedQuery.filters) {\n validatedQuery.filters = validateFilters(validatedQuery.filters)\n }\n\n // only set limit and offset if there are elements otherwise an invalid request with just limit/offset\n // gets sent when the component is first mounted, but before the actual query is constructed.\n if (hasElements) {\n if (this.limit) {\n validatedQuery.limit = this.limit;\n }\n\n if (this.offset) {\n validatedQuery.offset = this.offset;\n }\n\n if (this.order) {\n validatedQuery.order = this.order;\n }\n\n if (this.renewQuery) {\n validatedQuery.renewQuery = this.renewQuery;\n }\n }\n\n if (\n !this.skipHeuristics &&\n !this.disableHeuristics &&\n isQueryPresent(validatedQuery) &&\n this.meta\n ) {\n const heuristicsFn = this.stateChangeHeuristics || defaultHeuristics;\n const { query, chartType, shouldApplyHeuristicOrder, pivotConfig } = heuristicsFn(\n {\n query: validatedQuery,\n chartType: this.chartType,\n },\n this.prevValidatedQuery,\n {\n meta: this.meta,\n sessionGranularity: validatedQuery?.timeDimensions?.[0]?.granularity,\n }\n );\n\n validatedQuery = {\n ...validatedQuery,\n ...query,\n ...(shouldApplyHeuristicOrder ? { order: defaultOrder(query) } : null),\n };\n\n this.chartType = chartType || this.chartType;\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n validatedQuery,\n pivotConfig !== undefined ? pivotConfig : this.pivotConfig\n );\n this.copyQueryFromProps(validatedQuery);\n }\n\n // query heuristics should only apply on query change (not applied to the initial query)\n if (this.prevValidatedQuery !== null) {\n this.skipHeuristics = false;\n }\n\n this.prevValidatedQuery = validatedQuery;\n return validatedQuery;\n },\n },\n\n async mounted() {\n this.meta = await this.cubeApi.meta();\n\n this.copyQueryFromProps();\n\n if (isQueryPresent(this.initialQuery)) {\n const dryRunResponse = await this.cubeApi.dryRun(this.initialQuery);\n this.pivotConfig = ResultSet.getNormalizedPivotConfig(\n dryRunResponse?.pivotQuery || {},\n this.pivotConfig\n );\n }\n },\n\n methods: {\n copyQueryFromProps(query) {\n const {\n measures = [],\n dimensions = [],\n segments = [],\n timeDimensions = [],\n filters = [],\n limit,\n offset,\n renewQuery,\n order,\n } = query || this.initialQuery;\n\n this.measures = measures.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'measures'),\n }));\n this.dimensions = dimensions.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'dimensions'),\n }));\n this.segments = segments.map((m, index) => ({\n index,\n ...this.meta.resolveMember(m, 'segments'),\n }));\n this.timeDimensions = timeDimensions.map((m, index) => ({\n ...m,\n dimension: {\n ...this.meta.resolveMember(m.dimension, 'dimensions'),\n granularities: this.granularities,\n },\n index,\n }));\n\n const memberTypes = ['dimensions', 'measures'];\n this.filters = filters.map((m, index) => {\n const memberName = m.member || m.dimension;\n return {\n ...m,\n member: memberName && this.meta.resolveMember(memberName, memberTypes),\n operators: memberName && this.meta.filterOperatorsForMember(memberName, memberTypes),\n and: resolveMembers(this.meta, m.and),\n or: resolveMembers(this.meta, m.or),\n index,\n };\n });\n\n this.availableMeasures = this.meta.membersForQuery({}, 'measures') || [];\n this.availableDimensions = this.meta.membersForQuery({}, 'dimensions') || [];\n this.availableTimeDimensions = (this.meta.membersForQuery({}, 'dimensions') || []).filter(\n (m) => m.type === 'time'\n );\n this.availableSegments = this.meta.membersForQuery({}, 'segments') || [];\n this.limit = limit || 10000;\n this.offset = offset || null;\n this.renewQuery = renewQuery || false;\n this.order = order || null;\n },\n addMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: member.granularity,\n dateRange: member.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n mem = {\n ...member,\n and: resolveMembers(this.meta, member.and),\n or: resolveMembers(this.meta, member.or),\n member: getDimensionOrMeasure(this.meta, member),\n }\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].push(mem);\n }\n },\n removeMember(element, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === member);\n } else if (element === 'filters') {\n mem = member;\n } else {\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n const index = this[element].findIndex((x) => x.name === mem);\n this[element].splice(index, 1);\n }\n },\n updateMember(element, old, member) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n let index;\n\n if (element === 'timeDimensions') {\n index = this[element].findIndex((x) => x.dimension.name === old.dimension);\n mem = this[`available${name}`].find((m) => m.name === member.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n dimension,\n granularity: member.granularity,\n dateRange: member.dateRange,\n index,\n };\n }\n } else if (element === 'filters') {\n index = this[element].findIndex((x) => x.dimension === old);\n mem = {\n ...member,\n and: resolveMembers(this.meta, member.and),\n or: resolveMembers(this.meta, member.or),\n member: getDimensionOrMeasure(this.meta, member),\n };\n } else {\n index = this[element].findIndex((x) => x.name === old);\n mem = this[`available${name}`].find((m) => m.name === member);\n }\n\n if (mem) {\n this[element].splice(index, 1, mem);\n }\n },\n setMembers(element, members) {\n const name = element.charAt(0).toUpperCase() + element.slice(1);\n let mem;\n const elements = [];\n\n members.filter(Boolean).forEach((m) => {\n if (element === 'timeDimensions') {\n mem = this[`available${name}`].find((x) => x.name === m.dimension);\n if (mem) {\n const dimension = {\n ...this.meta.resolveMember(mem.name, 'dimensions'),\n granularities: this.granularities,\n };\n\n mem = {\n ...mem,\n granularity: m.granularity,\n dateRange: m.dateRange,\n dimension,\n index: this[element].length,\n };\n }\n } else if (element === 'filters') {\n mem = {\n ...m,\n and: resolveMembers(this.meta, m.and),\n or: resolveMembers(this.meta, m.or),\n member: getDimensionOrMeasure(this.meta, m),\n };\n } else {\n mem = this[`available${name}`].find((x) => x.name === m);\n }\n\n if (mem) {\n elements.push(mem);\n }\n });\n\n this[element] = elements;\n },\n setLimit(limit) {\n this.limit = limit;\n },\n removeLimit() {\n this.limit = null;\n },\n setOffset(offset) {\n this.offset = offset;\n },\n removeOffset() {\n this.offset = null;\n },\n updateChart(chartType) {\n this.chartType = chartType;\n },\n setOrder(order = {}) {\n this.order = order;\n },\n emitVizStateChange(partialVizState) {\n this.$emit(\n 'vizStateChange',\n clone({\n ...this.vizState,\n ...partialVizState,\n })\n );\n },\n },\n\n watch: {\n validatedQuery: {\n deep: true,\n handler(query, prevQuery) {\n const hasQueryChanged = !areQueriesEqual(query, prevQuery);\n\n if (hasQueryChanged) {\n this.emitVizStateChange({\n query,\n });\n }\n\n if (isQueryPresent(query) && hasQueryChanged) {\n this.cubeApi\n .dryRun(query, {\n mutexObj: this.mutex,\n })\n .then(({ pivotQuery }) => {\n const pivotConfig = ResultSet.getNormalizedPivotConfig(pivotQuery, this.pivotConfig);\n\n if (!equals(pivotConfig, this.pivotConfig)) {\n this.pivotConfig = pivotConfig;\n }\n })\n .catch((error) => console.error(error));\n }\n },\n },\n query: {\n deep: true,\n handler(query) {\n if (!this.meta) {\n // this is ok as if meta has not been loaded by the time query prop has changed,\n // then the promise for loading meta (found in mounted()) will call\n // copyQueryFromProps and will therefore update anyway.\n return;\n }\n this.copyQueryFromProps(query);\n },\n },\n pivotConfig: {\n deep: true,\n handler(pivotConfig, prevPivotConfig) {\n if (!equals(pivotConfig, prevPivotConfig)) {\n this.emitVizStateChange({\n pivotConfig,\n });\n }\n },\n },\n chartType(value) {\n this.emitVizStateChange({\n chartType: value,\n });\n },\n },\n};\n","import { GRANULARITIES } from '@cubejs-client/core';\n\nimport QueryRenderer from './QueryRenderer';\nimport QueryBuilder from './QueryBuilder';\n\nexport { QueryRenderer, QueryBuilder, GRANULARITIES };\n\nexport default {};\n"],"names":["props","query","type","Object","Array","_default","queries","loadSql","required","cubeApi","builderProps","chartType","String","data","mutexObj","error","undefined","resultSet","loading","sqlQuery","mounted","_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","_validatedQuery$timeD","_validatedQuery$timeD2","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","_ref5","equals","console","prevPivotConfig","value"],"mappings":"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"}