@cubejs-backend/schema-compiler 0.33.50 → 0.33.53
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/src/adapter/BaseDimension.d.ts +4 -0
- package/dist/src/adapter/BaseDimension.d.ts.map +1 -1
- package/dist/src/adapter/BaseDimension.js +25 -0
- package/dist/src/adapter/BaseDimension.js.map +1 -1
- package/dist/src/adapter/BaseMeasure.d.ts +2 -1
- package/dist/src/adapter/BaseMeasure.d.ts.map +1 -1
- package/dist/src/adapter/BaseMeasure.js +4 -2
- package/dist/src/adapter/BaseMeasure.js.map +1 -1
- package/dist/src/adapter/BaseQuery.d.ts +2 -2
- package/dist/src/adapter/BaseQuery.d.ts.map +1 -1
- package/dist/src/adapter/BaseQuery.js +23 -10
- package/dist/src/adapter/BaseQuery.js.map +1 -1
- package/dist/src/adapter/MssqlQuery.d.ts +1 -1
- package/dist/src/adapter/MssqlQuery.d.ts.map +1 -1
- package/dist/src/adapter/MssqlQuery.js +2 -2
- package/dist/src/adapter/MssqlQuery.js.map +1 -1
- package/dist/src/adapter/ParamAllocator.d.ts +1 -0
- package/dist/src/adapter/ParamAllocator.d.ts.map +1 -1
- package/dist/src/adapter/ParamAllocator.js +2 -2
- package/dist/src/adapter/ParamAllocator.js.map +1 -1
- package/dist/src/adapter/PostgresQuery.d.ts +1 -1
- package/dist/src/adapter/PostgresQuery.d.ts.map +1 -1
- package/dist/src/adapter/PostgresQuery.js +2 -2
- package/dist/src/adapter/PostgresQuery.js.map +1 -1
- package/dist/src/compiler/CubeEvaluator.d.ts +0 -17
- package/dist/src/compiler/CubeEvaluator.d.ts.map +1 -1
- package/dist/src/compiler/CubeEvaluator.js +1 -178
- package/dist/src/compiler/CubeEvaluator.js.map +1 -1
- package/dist/src/compiler/CubeSymbols.d.ts +18 -0
- package/dist/src/compiler/CubeSymbols.d.ts.map +1 -1
- package/dist/src/compiler/CubeSymbols.js +186 -2
- package/dist/src/compiler/CubeSymbols.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
export class BaseDimension {
|
|
2
2
|
constructor(query: any, dimension: any);
|
|
3
3
|
query: any;
|
|
4
|
+
expression: any;
|
|
5
|
+
expressionCubeName: any;
|
|
6
|
+
expressionName: any;
|
|
7
|
+
isMemberExpression: boolean | undefined;
|
|
4
8
|
dimension: any;
|
|
5
9
|
selectColumns(): string[];
|
|
6
10
|
hasNoRemapping(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDimension.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseDimension.js"],"names":[],"mappings":"AAAA;IACE,
|
|
1
|
+
{"version":3,"file":"BaseDimension.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseDimension.js"],"names":[],"mappings":"AAAA;IACE,wCASC;IARC,WAAkB;IAEhB,gBAAsC;IACtC,wBAA4C;IAC5C,oBAA2F;IAC3F,wCAAgD;IAElD,eAA0B;IAG5B,0BAEC;IAED,0BAEC;IAED,oCAEC;IAED,oBAQC;IAED,qBAEC;IAED,8BAEC;IAED,YAKC;IAED,2BAKC;IAED,kBASC;IAED,iBAGC;IAED,0BAKC;IAED,qBAEC;IAED,YAQC;CACF"}
|
|
@@ -4,6 +4,12 @@ exports.BaseDimension = void 0;
|
|
|
4
4
|
class BaseDimension {
|
|
5
5
|
constructor(query, dimension) {
|
|
6
6
|
this.query = query;
|
|
7
|
+
if (dimension && dimension.expression) {
|
|
8
|
+
this.expression = dimension.expression;
|
|
9
|
+
this.expressionCubeName = dimension.cubeName;
|
|
10
|
+
this.expressionName = dimension.expressionName || `${dimension.cubeName}.${dimension.name}`;
|
|
11
|
+
this.isMemberExpression = !!dimension.definition;
|
|
12
|
+
}
|
|
7
13
|
this.dimension = dimension;
|
|
8
14
|
}
|
|
9
15
|
selectColumns() {
|
|
@@ -16,6 +22,9 @@ class BaseDimension {
|
|
|
16
22
|
return [`${this.aliasName()}`];
|
|
17
23
|
}
|
|
18
24
|
dimensionSql() {
|
|
25
|
+
if (this.expression) {
|
|
26
|
+
return this.query.evaluateSymbolSql(this.expressionCubeName, this.expressionName, this.definition(), 'dimension');
|
|
27
|
+
}
|
|
19
28
|
if (this.query.cubeEvaluator.isSegment(this.dimension)) {
|
|
20
29
|
return this.query.wrapSegmentForDimensionSelect(this.query.dimensionSql(this));
|
|
21
30
|
}
|
|
@@ -28,6 +37,9 @@ class BaseDimension {
|
|
|
28
37
|
return [this];
|
|
29
38
|
}
|
|
30
39
|
cube() {
|
|
40
|
+
if (this.expression) {
|
|
41
|
+
return this.query.cubeEvaluator.cubeFromPath(this.expressionCubeName);
|
|
42
|
+
}
|
|
31
43
|
return this.query.cubeEvaluator.cubeFromPath(this.dimension);
|
|
32
44
|
}
|
|
33
45
|
dimensionDefinition() {
|
|
@@ -37,6 +49,13 @@ class BaseDimension {
|
|
|
37
49
|
return this.query.cubeEvaluator.dimensionByPath(this.dimension);
|
|
38
50
|
}
|
|
39
51
|
definition() {
|
|
52
|
+
if (this.expression) {
|
|
53
|
+
return {
|
|
54
|
+
sql: this.expression,
|
|
55
|
+
// TODO use actual dimension type even though it isn't used right now
|
|
56
|
+
type: 'number'
|
|
57
|
+
};
|
|
58
|
+
}
|
|
40
59
|
return this.dimensionDefinition();
|
|
41
60
|
}
|
|
42
61
|
aliasName() {
|
|
@@ -44,12 +63,18 @@ class BaseDimension {
|
|
|
44
63
|
return this.query.escapeColumnName(this.unescapedAliasName());
|
|
45
64
|
}
|
|
46
65
|
unescapedAliasName() {
|
|
66
|
+
if (this.expression) {
|
|
67
|
+
return this.query.aliasName(this.expressionName);
|
|
68
|
+
}
|
|
47
69
|
return this.query.aliasName(this.dimension);
|
|
48
70
|
}
|
|
49
71
|
dateFieldType() {
|
|
50
72
|
return this.dimensionDefinition().fieldType;
|
|
51
73
|
}
|
|
52
74
|
path() {
|
|
75
|
+
if (this.expression) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
53
78
|
if (this.query.cubeEvaluator.isSegment(this.dimension)) {
|
|
54
79
|
return this.query.cubeEvaluator.parsePath('segments', this.dimension);
|
|
55
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDimension.js","sourceRoot":"","sources":["../../../src/adapter/BaseDimension.js"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;IACxB,YAAY,KAAK,EAAE,SAAS;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;IAClD,CAAC;IAED,uBAAuB;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;SAChF;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACpC,CAAC;IAED,SAAS;QACP,iDAAiD;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACvE;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1E,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"BaseDimension.js","sourceRoot":"","sources":["../../../src/adapter/BaseDimension.js"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@ export class BaseMeasure {
|
|
|
4
4
|
query: any;
|
|
5
5
|
expression: any;
|
|
6
6
|
expressionCubeName: any;
|
|
7
|
-
expressionName:
|
|
7
|
+
expressionName: any;
|
|
8
|
+
isMemberExpression: boolean | undefined;
|
|
8
9
|
measure: any;
|
|
9
10
|
getMembers(): BaseMeasure[];
|
|
10
11
|
selectColumns(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMeasure.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseMeasure.js"],"names":[],"mappings":"AAEA;
|
|
1
|
+
{"version":3,"file":"BaseMeasure.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseMeasure.js"],"names":[],"mappings":"AAEA;IA6FE,8CAEC;IA9FD,sCASC;IARC,WAAkB;IAEhB,gBAAoC;IACpC,wBAA0C;IAC1C,oBAAqF;IACrF,wCAA8C;IAEhD,aAAsB;IAGxB,4BAEC;IAED,0BAEC;IAED,0BAEC;IAED,oCAEC;IAED,4BAOC;IAED,kBAKC;IAED,YAKC;IAED,yBAEC;IAED,kBASC;IAED,iBAEC;IAED,0BAKC;IAED,wBAKC;IAED,sBAOC;IAMD,+BAKC;IAED,yBAWC;IAED,yBASC;IAED,0DAEC;IAED,+FAgBC;IAED,kCAEC;IAED,qBAEC;IAED,YAKC;CACF"}
|
|
@@ -8,7 +8,8 @@ class BaseMeasure {
|
|
|
8
8
|
if (measure.expression) {
|
|
9
9
|
this.expression = measure.expression;
|
|
10
10
|
this.expressionCubeName = measure.cubeName;
|
|
11
|
-
this.expressionName = `${measure.cubeName}.${measure.name}`;
|
|
11
|
+
this.expressionName = measure.expressionName || `${measure.cubeName}.${measure.name}`;
|
|
12
|
+
this.isMemberExpression = !!measure.definition;
|
|
12
13
|
}
|
|
13
14
|
this.measure = measure;
|
|
14
15
|
}
|
|
@@ -31,7 +32,7 @@ class BaseMeasure {
|
|
|
31
32
|
}
|
|
32
33
|
measureSql() {
|
|
33
34
|
if (this.expression) {
|
|
34
|
-
return this.query.
|
|
35
|
+
return this.query.evaluateSymbolSql(this.expressionCubeName, this.expressionName, this.definition(), 'measure');
|
|
35
36
|
}
|
|
36
37
|
return this.query.measureSql(this);
|
|
37
38
|
}
|
|
@@ -48,6 +49,7 @@ class BaseMeasure {
|
|
|
48
49
|
if (this.expression) {
|
|
49
50
|
return {
|
|
50
51
|
sql: this.expression,
|
|
52
|
+
// TODO use actual measure type even though it isn't used right now
|
|
51
53
|
type: 'number'
|
|
52
54
|
};
|
|
53
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMeasure.js","sourceRoot":"","sources":["../../../src/adapter/BaseMeasure.js"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD,MAAa,WAAW;IACtB,YAAY,KAAK,EAAE,OAAO;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC3C,IAAI,CAAC,cAAc,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseMeasure.js","sourceRoot":"","sources":["../../../src/adapter/BaseMeasure.js"],"names":[],"mappings":"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"}
|
|
@@ -89,7 +89,7 @@ export class BaseQuery {
|
|
|
89
89
|
newFilter(filter: any): BaseFilter;
|
|
90
90
|
newGroupFilter(filter: any): BaseGroupFilter;
|
|
91
91
|
newTimeDimension(timeDimension: any): BaseTimeDimension;
|
|
92
|
-
newParamAllocator(): ParamAllocator;
|
|
92
|
+
newParamAllocator(expressionParams: any): ParamAllocator;
|
|
93
93
|
newPreAggregations(): PreAggregations;
|
|
94
94
|
/**
|
|
95
95
|
* Wrap specified column/table name with the double quote.
|
|
@@ -259,7 +259,7 @@ export class BaseQuery {
|
|
|
259
259
|
pushJoinHints(joinHints: any): void;
|
|
260
260
|
pushMemberNameForCollectionIfNecessary(cubeName: any, name: any): void;
|
|
261
261
|
safeEvaluateSymbolContext(): any;
|
|
262
|
-
evaluateSymbolSql(cubeName: any, name: any, symbol: any): any;
|
|
262
|
+
evaluateSymbolSql(cubeName: any, name: any, symbol: any, memberExpressionType: any): any;
|
|
263
263
|
autoPrefixAndEvaluateSql(cubeName: any, sql: any): any;
|
|
264
264
|
concatStringsSql(strings: any): any;
|
|
265
265
|
primaryKeyNames(cubeName: any): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"AAqDA;;;;;;;;;;GAUG;AAEH;
|
|
1
|
+
{"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"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"}
|
|
@@ -156,7 +156,7 @@ class BaseQuery {
|
|
|
156
156
|
* @protected
|
|
157
157
|
* @type {ParamAllocator}
|
|
158
158
|
*/
|
|
159
|
-
this.paramAllocator = this.options.paramAllocator || this.newParamAllocator();
|
|
159
|
+
this.paramAllocator = this.options.paramAllocator || this.newParamAllocator(this.options.expressionParams);
|
|
160
160
|
this.compilerCache = this.compilers.compiler.compilerCache;
|
|
161
161
|
this.queryCache = this.compilerCache.getQueryCache({
|
|
162
162
|
measures: this.options.measures,
|
|
@@ -179,6 +179,7 @@ class BaseQuery {
|
|
|
179
179
|
historyQueries: this.options.historyQueries,
|
|
180
180
|
ungrouped: this.options.ungrouped,
|
|
181
181
|
memberToAlias: this.options.memberToAlias,
|
|
182
|
+
expressionParams: this.options.expressionParams,
|
|
182
183
|
});
|
|
183
184
|
this.timezone = this.options.timezone;
|
|
184
185
|
this.rowLimit = this.options.rowLimit;
|
|
@@ -361,8 +362,8 @@ class BaseQuery {
|
|
|
361
362
|
newTimeDimension(timeDimension) {
|
|
362
363
|
return new BaseTimeDimension_1.BaseTimeDimension(this, timeDimension);
|
|
363
364
|
}
|
|
364
|
-
newParamAllocator() {
|
|
365
|
-
return new ParamAllocator_1.ParamAllocator();
|
|
365
|
+
newParamAllocator(expressionParams) {
|
|
366
|
+
return new ParamAllocator_1.ParamAllocator(expressionParams);
|
|
366
367
|
}
|
|
367
368
|
newPreAggregations() {
|
|
368
369
|
return new PreAggregations_1.PreAggregations(this, this.options.historyQueries || [], this.options.cubeLatticeCache);
|
|
@@ -768,7 +769,7 @@ class BaseQuery {
|
|
|
768
769
|
.filter(f => ramda_1.default.none(m => m.measure === f.measure, this.measures));
|
|
769
770
|
return ramda_1.default.fromPairs(this.measures.concat(notAddedMeasureFilters).map(m => {
|
|
770
771
|
const collectedMeasures = this.collectFrom([m], this.collectMultipliedMeasures.bind(this), 'collectMultipliedMeasures', this.queryCache);
|
|
771
|
-
if (m.expressionName && !collectedMeasures.length) {
|
|
772
|
+
if (m.expressionName && !collectedMeasures.length && !m.isMemberExpression) {
|
|
772
773
|
throw new UserError_1.UserError(`Subquery dimension ${m.expressionName} should reference at least one measure`);
|
|
773
774
|
}
|
|
774
775
|
return [m.measure, collectedMeasures];
|
|
@@ -1196,17 +1197,29 @@ class BaseQuery {
|
|
|
1196
1197
|
safeEvaluateSymbolContext() {
|
|
1197
1198
|
return this.evaluateSymbolContext || {};
|
|
1198
1199
|
}
|
|
1199
|
-
evaluateSymbolSql(cubeName, name, symbol) {
|
|
1200
|
-
|
|
1200
|
+
evaluateSymbolSql(cubeName, name, symbol, memberExpressionType) {
|
|
1201
|
+
if (!memberExpressionType) {
|
|
1202
|
+
this.pushMemberNameForCollectionIfNecessary(cubeName, name);
|
|
1203
|
+
}
|
|
1201
1204
|
const memberPathArray = [cubeName, name];
|
|
1202
1205
|
const memberPath = this.cubeEvaluator.pathFromArray(memberPathArray);
|
|
1203
|
-
|
|
1206
|
+
let type = memberExpressionType;
|
|
1207
|
+
if (!type && this.cubeEvaluator.isMeasure(memberPathArray)) {
|
|
1208
|
+
type = 'measure';
|
|
1209
|
+
}
|
|
1210
|
+
if (!type && this.cubeEvaluator.isDimension(memberPathArray)) {
|
|
1211
|
+
type = 'dimension';
|
|
1212
|
+
}
|
|
1213
|
+
if (!type && this.cubeEvaluator.isSegment(memberPathArray)) {
|
|
1214
|
+
type = 'segment';
|
|
1215
|
+
}
|
|
1216
|
+
if (type === 'measure') {
|
|
1204
1217
|
let parentMeasure;
|
|
1205
1218
|
if (this.safeEvaluateSymbolContext().compositeCubeMeasures ||
|
|
1206
1219
|
this.safeEvaluateSymbolContext().leafMeasures) {
|
|
1207
1220
|
parentMeasure = this.safeEvaluateSymbolContext().currentMeasure;
|
|
1208
1221
|
if (this.safeEvaluateSymbolContext().compositeCubeMeasures) {
|
|
1209
|
-
if (parentMeasure &&
|
|
1222
|
+
if (parentMeasure && !memberExpressionType &&
|
|
1210
1223
|
(this.cubeEvaluator.cubeNameFromPath(parentMeasure) !== cubeName ||
|
|
1211
1224
|
this.newMeasure(this.cubeEvaluator.pathFromArray(memberPathArray)).isCumulative())) {
|
|
1212
1225
|
this.safeEvaluateSymbolContext().compositeCubeMeasures[parentMeasure] = true;
|
|
@@ -1231,7 +1244,7 @@ class BaseQuery {
|
|
|
1231
1244
|
}
|
|
1232
1245
|
return result;
|
|
1233
1246
|
}
|
|
1234
|
-
else if (
|
|
1247
|
+
else if (type === 'dimension') {
|
|
1235
1248
|
if ((this.safeEvaluateSymbolContext().renderedReference || {})[memberPath]) {
|
|
1236
1249
|
return this.evaluateSymbolContext.renderedReference[memberPath];
|
|
1237
1250
|
}
|
|
@@ -1255,7 +1268,7 @@ class BaseQuery {
|
|
|
1255
1268
|
return this.autoPrefixAndEvaluateSql(cubeName, symbol.sql);
|
|
1256
1269
|
}
|
|
1257
1270
|
}
|
|
1258
|
-
else if (
|
|
1271
|
+
else if (type === 'segment') {
|
|
1259
1272
|
if ((this.safeEvaluateSymbolContext().renderedReference || {})[memberPath]) {
|
|
1260
1273
|
return this.evaluateSymbolContext.renderedReference[memberPath];
|
|
1261
1274
|
}
|