@cubejs-client/vue3 1.7.36 → 1.7.38
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/README.md +3 -3
- package/dist/cubejs-client-vue3.cjs.js +5 -7
- package/dist/cubejs-client-vue3.cjs.js.map +1 -1
- package/dist/cubejs-client-vue3.esm.js +13 -17
- package/dist/cubejs-client-vue3.esm.js.map +1 -1
- package/dist/cubejs-client-vue3.umd.js +5 -7
- package/dist/cubejs-client-vue3.umd.js.map +1 -1
- package/package.json +3 -21
- package/src/QueryBuilder.js +32 -38
- package/src/QueryRenderer.js +6 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubejs-client/vue3",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.38",
|
|
4
4
|
"engines": {},
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"Cube Dev, Inc."
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"lint": "eslint src tests",
|
|
18
17
|
"test": "jest",
|
|
19
18
|
"unit": "npm run test:unit",
|
|
20
19
|
"test:unit": "jest",
|
|
@@ -27,7 +26,7 @@
|
|
|
27
26
|
"src"
|
|
28
27
|
],
|
|
29
28
|
"dependencies": {
|
|
30
|
-
"@cubejs-client/core": "1.7.
|
|
29
|
+
"@cubejs-client/core": "1.7.38",
|
|
31
30
|
"ramda": "^0.27.2"
|
|
32
31
|
},
|
|
33
32
|
"devDependencies": {
|
|
@@ -35,7 +34,6 @@
|
|
|
35
34
|
"@babel/preset-env": "^7.24.5",
|
|
36
35
|
"@vue/test-utils": "^2.4",
|
|
37
36
|
"babel-jest": "^29",
|
|
38
|
-
"eslint": "^7.21.0",
|
|
39
37
|
"jest": "^29",
|
|
40
38
|
"jest-environment-jsdom": "^29",
|
|
41
39
|
"vue": "^3.0"
|
|
@@ -43,22 +41,6 @@
|
|
|
43
41
|
"peerDependencies": {
|
|
44
42
|
"vue": "^3.0.0"
|
|
45
43
|
},
|
|
46
|
-
"eslintConfig": {
|
|
47
|
-
"root": true,
|
|
48
|
-
"env": {
|
|
49
|
-
"es2021": true,
|
|
50
|
-
"node": true,
|
|
51
|
-
"jest": true
|
|
52
|
-
},
|
|
53
|
-
"extends": [
|
|
54
|
-
"eslint:recommended"
|
|
55
|
-
],
|
|
56
|
-
"rules": {},
|
|
57
|
-
"parserOptions": {
|
|
58
|
-
"ecmaVersion": 2021,
|
|
59
|
-
"sourceType": "module"
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
44
|
"browserslist": [
|
|
63
45
|
"> 1%",
|
|
64
46
|
"last 2 versions",
|
|
@@ -68,5 +50,5 @@
|
|
|
68
50
|
"publishConfig": {
|
|
69
51
|
"access": "public"
|
|
70
52
|
},
|
|
71
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "9ea1fda5dade5b8a4256acd20bcf77318fe13a72"
|
|
72
54
|
}
|
package/src/QueryBuilder.js
CHANGED
|
@@ -21,52 +21,47 @@ const toOrderMember = (member) => ({
|
|
|
21
21
|
title: member.title,
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
const reduceOrderMembers = (array) =>
|
|
25
|
-
|
|
24
|
+
const reduceOrderMembers = (array) => array.reduce(
|
|
25
|
+
(acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc),
|
|
26
|
+
[]
|
|
27
|
+
);
|
|
26
28
|
|
|
27
|
-
const operators = [
|
|
29
|
+
const operators = ['and', 'or'];
|
|
28
30
|
|
|
29
|
-
const validateFilters = (filters) =>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const validBooleanFilter = operators.reduce((acc, operator) => {
|
|
36
|
-
const filters = raw[operator];
|
|
31
|
+
const validateFilters = (filters) => filters.reduce((acc, raw) => {
|
|
32
|
+
if (raw.operator) {
|
|
33
|
+
return [...acc, raw];
|
|
34
|
+
}
|
|
37
35
|
|
|
38
|
-
|
|
36
|
+
const validBooleanFilter = operators.reduce((booleanAcc, operator) => {
|
|
37
|
+
const booleanFilters = validateFilters(raw[operator] || []);
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
if (booleanFilters.length) {
|
|
40
|
+
return { ...booleanAcc, [operator]: booleanFilters };
|
|
41
|
+
}
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
return booleanAcc;
|
|
44
|
+
}, {});
|
|
46
45
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
if (operators.some((operator) => validBooleanFilter[operator])) {
|
|
47
|
+
return [...acc, validBooleanFilter];
|
|
48
|
+
}
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
return acc;
|
|
51
|
+
}, []);
|
|
53
52
|
|
|
54
53
|
const getDimensionOrMeasure = (meta, m) => {
|
|
55
54
|
const memberName = m.member || m.dimension;
|
|
56
55
|
return memberName && meta.resolveMember(memberName, ['dimensions', 'measures']);
|
|
57
56
|
};
|
|
58
57
|
|
|
59
|
-
const resolveMembers = (meta, arr) =>
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
and: resolveMembers(meta, e.and),
|
|
67
|
-
or: resolveMembers(meta, e.or),
|
|
68
|
-
};
|
|
69
|
-
});
|
|
58
|
+
const resolveMembers = (meta, arr) => arr && arr.map((e, index) => ({
|
|
59
|
+
...e,
|
|
60
|
+
member: getDimensionOrMeasure(meta, e),
|
|
61
|
+
index,
|
|
62
|
+
and: resolveMembers(meta, e.and),
|
|
63
|
+
or: resolveMembers(meta, e.or),
|
|
64
|
+
}));
|
|
70
65
|
|
|
71
66
|
export default {
|
|
72
67
|
components: {
|
|
@@ -139,7 +134,6 @@ export default {
|
|
|
139
134
|
segments,
|
|
140
135
|
timeDimensions,
|
|
141
136
|
validatedQuery,
|
|
142
|
-
isQueryPresent,
|
|
143
137
|
availableSegments,
|
|
144
138
|
availableTimeDimensions,
|
|
145
139
|
availableDimensions,
|
|
@@ -160,7 +154,7 @@ export default {
|
|
|
160
154
|
builderProps = {
|
|
161
155
|
query,
|
|
162
156
|
validatedQuery,
|
|
163
|
-
isQueryPresent,
|
|
157
|
+
isQueryPresent: this.isQueryPresent,
|
|
164
158
|
chartType,
|
|
165
159
|
measures,
|
|
166
160
|
dimensions,
|
|
@@ -329,7 +323,7 @@ export default {
|
|
|
329
323
|
});
|
|
330
324
|
|
|
331
325
|
if (validatedQuery.filters) {
|
|
332
|
-
validatedQuery.filters = validateFilters(validatedQuery.filters)
|
|
326
|
+
validatedQuery.filters = validateFilters(validatedQuery.filters);
|
|
333
327
|
}
|
|
334
328
|
|
|
335
329
|
// only set limit and offset if there are elements otherwise an invalid request with just limit/offset
|
|
@@ -374,7 +368,7 @@ export default {
|
|
|
374
368
|
};
|
|
375
369
|
|
|
376
370
|
this.chartType = chartType || this.chartType;
|
|
377
|
-
|
|
371
|
+
const pivot = ResultSet.getNormalizedPivotConfig(
|
|
378
372
|
validatedQuery,
|
|
379
373
|
pivotConfig !== undefined ? pivotConfig : this.pivotConfig
|
|
380
374
|
);
|
|
@@ -496,7 +490,7 @@ export default {
|
|
|
496
490
|
and: resolveMembers(this.meta, member.and),
|
|
497
491
|
or: resolveMembers(this.meta, member.or),
|
|
498
492
|
member: getDimensionOrMeasure(this.meta, member),
|
|
499
|
-
}
|
|
493
|
+
};
|
|
500
494
|
} else {
|
|
501
495
|
mem = this[`available${name}`].find((m) => m.name === member);
|
|
502
496
|
}
|
package/src/QueryRenderer.js
CHANGED
|
@@ -129,14 +129,12 @@ export default {
|
|
|
129
129
|
this.loading = true;
|
|
130
130
|
|
|
131
131
|
const resultPromises = Promise.all(
|
|
132
|
-
toPairs(queries).map(([name, query]) =>
|
|
133
|
-
|
|
134
|
-
.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
.then((r) => [name, r])
|
|
139
|
-
)
|
|
132
|
+
toPairs(queries).map(([name, query]) => this.cubeApi
|
|
133
|
+
.load(query, {
|
|
134
|
+
mutexObj: this.mutexObj,
|
|
135
|
+
mutexKey: name,
|
|
136
|
+
})
|
|
137
|
+
.then((r) => [name, r]))
|
|
140
138
|
);
|
|
141
139
|
|
|
142
140
|
this.resultSet = fromPairs(await resultPromises);
|