@finos/legend-query-builder 4.18.0 → 4.18.1
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/lib/__test__.d.ts +1 -0
- package/lib/__test__.d.ts.map +1 -1
- package/lib/__test__.js +1 -0
- package/lib/__test__.js.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts +5 -0
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js +28 -2
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js +8 -2
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
- package/lib/components/workflows/AccessorQueryBuilder.js +1 -1
- package/lib/components/workflows/AccessorQueryBuilder.js.map +1 -1
- package/lib/components/workflows/DataProductQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/DataProductQueryBuilder.js +13 -12
- package/lib/components/workflows/DataProductQueryBuilder.js.map +1 -1
- package/lib/data-access-overview.css +1 -1
- package/lib/graph/QueryBuilderMetaModelConst.d.ts +2 -0
- package/lib/graph/QueryBuilderMetaModelConst.d.ts.map +1 -1
- package/lib/graph/QueryBuilderMetaModelConst.js +2 -0
- package/lib/graph/QueryBuilderMetaModelConst.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/QueryBuilderStateHashUtils.d.ts +1 -0
- package/lib/stores/QueryBuilderStateHashUtils.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateHashUtils.js +1 -0
- package/lib/stores/QueryBuilderStateHashUtils.js.map +1 -1
- package/lib/stores/QueryBuilderTypeaheadHelper.js +4 -4
- package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.js +2 -2
- package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
- package/lib/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.d.ts +374 -0
- package/lib/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.d.ts.map +1 -0
- package/lib/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.js +625 -0
- package/lib/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.js.map +1 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +3 -2
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.js +2 -2
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js +8 -6
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.js +2 -2
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowGroupByOperatorLoader.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowGroupByOperatorLoader.js +2 -0
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowGroupByOperatorLoader.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.js +40 -14
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.js +72 -30
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.d.ts +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.js +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Count.js +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Count.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Max.js +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Max.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Min.js +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Min.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_PercentRank.d.ts +25 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_PercentRank.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_PercentRank.js +54 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_PercentRank.js.map +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Sum.js +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Sum.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.js +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js +3 -3
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.d.ts +1 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.js +4 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.js.map +1 -1
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.d.ts +31 -6
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.js +162 -15
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.js.map +1 -1
- package/package.json +5 -5
- package/src/__test__.ts +1 -0
- package/src/components/__test-utils__/QueryBuilderComponentTestUtils.tsx +73 -1
- package/src/components/fetch-structure/QueryBuilderTDSWindowPanel.tsx +10 -4
- package/src/components/workflows/AccessorQueryBuilder.tsx +2 -2
- package/src/components/workflows/DataProductQueryBuilder.tsx +40 -62
- package/src/graph/QueryBuilderMetaModelConst.ts +2 -0
- package/src/index.ts +3 -0
- package/src/stores/QueryBuilderStateHashUtils.ts +1 -0
- package/src/stores/QueryBuilderTypeaheadHelper.ts +4 -4
- package/src/stores/QueryBuilderValueSpecificationHelper.ts +5 -3
- package/src/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.ts +630 -0
- package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +3 -2
- package/src/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.ts +2 -2
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.ts +1 -1
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +8 -6
- package/src/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.ts +2 -2
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowGroupByOperatorLoader.ts +2 -0
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.ts +85 -25
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.ts +141 -38
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.ts +1 -1
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.ts +1 -1
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Count.ts +1 -1
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Max.ts +1 -1
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Min.ts +1 -1
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_PercentRank.ts +57 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Sum.ts +1 -1
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.ts +1 -1
- package/src/stores/filter/QueryBuilderFilterValueSpecificationBuilder.ts +3 -3
- package/src/stores/workflows/accessor/AccessorQueryBuilderState.ts +5 -0
- package/src/stores/workflows/dataProduct/DataProductQueryBuilderState.ts +275 -24
- package/tsconfig.json +2 -0
|
@@ -233,6 +233,9 @@ const QueryBuilderWindowColumnModalEditor = observer(
|
|
|
233
233
|
|
|
234
234
|
// Window operator
|
|
235
235
|
const operators = windowState.operators;
|
|
236
|
+
const supportedOperators = tdsState.queryBuilderState.useRelation
|
|
237
|
+
? operators.filter((op) => op.relationFunc !== undefined)
|
|
238
|
+
: operators.filter((op) => op.pureFunc !== undefined);
|
|
236
239
|
const operatorState = windowColumnState.operatorState;
|
|
237
240
|
const [selectedOperatorState, setSelectedOperatorState] = useState(() => {
|
|
238
241
|
if (
|
|
@@ -449,10 +452,10 @@ const QueryBuilderWindowColumnModalEditor = observer(
|
|
|
449
452
|
<ControlledDropdownMenu
|
|
450
453
|
className="query-builder__olap__column__operation__operator__dropdown"
|
|
451
454
|
title="Choose Window Function Operator..."
|
|
452
|
-
disabled={!
|
|
455
|
+
disabled={!supportedOperators.length}
|
|
453
456
|
content={
|
|
454
457
|
<MenuContent>
|
|
455
|
-
{
|
|
458
|
+
{supportedOperators.map((op) => (
|
|
456
459
|
<MenuContentItem
|
|
457
460
|
key={op.uuid}
|
|
458
461
|
className="query-builder__olap__column__operation__operator__dropdown__option"
|
|
@@ -779,6 +782,9 @@ const QueryBuilderWindowColumnEditor = observer(
|
|
|
779
782
|
const windowState = windowColumnState.windowState;
|
|
780
783
|
const tdsState = windowState.tdsState;
|
|
781
784
|
const operators = windowState.operators;
|
|
785
|
+
const supportedOperators = tdsState.queryBuilderState.useRelation
|
|
786
|
+
? operators.filter((op) => op.relationFunc !== undefined)
|
|
787
|
+
: operators.filter((op) => op.pureFunc !== undefined);
|
|
782
788
|
// state
|
|
783
789
|
const ref = useRef<HTMLDivElement>(null);
|
|
784
790
|
const handleRef = useRef<HTMLDivElement>(null);
|
|
@@ -1021,11 +1027,11 @@ const QueryBuilderWindowColumnEditor = observer(
|
|
|
1021
1027
|
</div>
|
|
1022
1028
|
<ControlledDropdownMenu
|
|
1023
1029
|
className="query-builder__olap__column__operation__operator__dropdown"
|
|
1024
|
-
disabled={!
|
|
1030
|
+
disabled={!supportedOperators.length}
|
|
1025
1031
|
title="Choose Window Function Operator..."
|
|
1026
1032
|
content={
|
|
1027
1033
|
<MenuContent>
|
|
1028
|
-
{
|
|
1034
|
+
{supportedOperators.map((op) => (
|
|
1029
1035
|
<MenuContentItem
|
|
1030
1036
|
key={op.uuid}
|
|
1031
1037
|
className="query-builder__olap__column__operation__operator__dropdown__option"
|
|
@@ -151,12 +151,12 @@ const AccessorQueryBuilderSetupPanelContent = observer(
|
|
|
151
151
|
title="accessor"
|
|
152
152
|
htmlFor="query-builder__setup__accessor-selector"
|
|
153
153
|
>
|
|
154
|
-
|
|
154
|
+
{queryBuilderState.accessorLabel}
|
|
155
155
|
</label>
|
|
156
156
|
<CustomSelectorInput
|
|
157
157
|
inputId="query-builder__setup__accessor-selector"
|
|
158
158
|
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
159
|
-
placeholder=
|
|
159
|
+
placeholder={`Choose a ${queryBuilderState.accessorLabel.toLocaleLowerCase()}...`}
|
|
160
160
|
options={accessorOptions}
|
|
161
161
|
onChange={changeAccessor}
|
|
162
162
|
value={selectedAccessorOption}
|
|
@@ -18,6 +18,8 @@ import { useApplicationStore } from '@finos/legend-application';
|
|
|
18
18
|
import {
|
|
19
19
|
type DataProductOption,
|
|
20
20
|
type DataProductQueryBuilderState,
|
|
21
|
+
type ExecutionIdOption,
|
|
22
|
+
LakehouseDataProductExecutionState,
|
|
21
23
|
ModelAccessPointDataProductExecutionState,
|
|
22
24
|
} from '../../stores/workflows/dataProduct/DataProductQueryBuilderState.js';
|
|
23
25
|
import {
|
|
@@ -27,11 +29,7 @@ import {
|
|
|
27
29
|
import { CustomSelectorInput } from '@finos/legend-art';
|
|
28
30
|
import { QueryBuilderClassSelector } from '../QueryBuilderSideBar.js';
|
|
29
31
|
import { observer } from 'mobx-react-lite';
|
|
30
|
-
import type {
|
|
31
|
-
PackageableRuntime,
|
|
32
|
-
NativeModelExecutionContext,
|
|
33
|
-
ModelAccessPointGroup,
|
|
34
|
-
} from '@finos/legend-graph';
|
|
32
|
+
import type { PackageableRuntime } from '@finos/legend-graph';
|
|
35
33
|
import { useEffect } from 'react';
|
|
36
34
|
import { flowResult } from 'mobx';
|
|
37
35
|
|
|
@@ -95,29 +93,35 @@ export const DataProductQueryBuilderSetupFormContent = observer(
|
|
|
95
93
|
{...(formatOptionLabel ? { formatOptionLabel } : {})}
|
|
96
94
|
/>
|
|
97
95
|
</div>
|
|
98
|
-
{Boolean(queryBuilderState.
|
|
96
|
+
{Boolean(queryBuilderState.showExecutionIdSelector) && (
|
|
99
97
|
<div className="query-builder__setup__config-group__item">
|
|
100
98
|
<label
|
|
101
99
|
className="btn--sm query-builder__setup__config-group__item__label"
|
|
102
|
-
title="execution
|
|
103
|
-
htmlFor="query-
|
|
100
|
+
title="execution id"
|
|
101
|
+
htmlFor="query-builder__setup__execution-id-selector"
|
|
104
102
|
>
|
|
105
|
-
|
|
103
|
+
Execution ID
|
|
106
104
|
</label>
|
|
107
105
|
<CustomSelectorInput
|
|
108
|
-
inputId="query-
|
|
106
|
+
inputId="query-builder__setup__execution-id-selector"
|
|
109
107
|
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
110
|
-
placeholder="Choose an execution
|
|
111
|
-
options={queryBuilderState.
|
|
112
|
-
disabled={
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
108
|
+
placeholder="Choose an execution id..."
|
|
109
|
+
options={queryBuilderState.executionIdOptions}
|
|
110
|
+
disabled={queryBuilderState.executionIdOptions.length < 2}
|
|
111
|
+
onChange={(option: ExecutionIdOption) => {
|
|
112
|
+
queryBuilderState
|
|
113
|
+
.changeExecutionId(option)
|
|
114
|
+
.catch(applicationStore.alertUnhandledError);
|
|
115
|
+
}}
|
|
116
|
+
value={queryBuilderState.selectedExecutionIdOption}
|
|
117
|
+
formatOptionLabel={(option: ExecutionIdOption) => (
|
|
118
|
+
<div className="query-builder__setup__config-group__item__selector__option">
|
|
119
|
+
<span>{option.label}</span>
|
|
120
|
+
<span className="query-builder__setup__config-group__item__selector__option__tag">
|
|
121
|
+
{option.tag}
|
|
122
|
+
</span>
|
|
123
|
+
</div>
|
|
124
|
+
)}
|
|
121
125
|
darkMode={
|
|
122
126
|
!applicationStore.layoutService
|
|
123
127
|
.TEMPORARY__isLightColorThemeEnabled
|
|
@@ -125,42 +129,16 @@ export const DataProductQueryBuilderSetupFormContent = observer(
|
|
|
125
129
|
/>
|
|
126
130
|
</div>
|
|
127
131
|
)}
|
|
128
|
-
{
|
|
132
|
+
{!queryBuilderState.isLakehouseMode && (
|
|
129
133
|
<div className="query-builder__setup__config-group__item">
|
|
130
|
-
<
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
Access Point Group
|
|
136
|
-
</label>
|
|
137
|
-
<CustomSelectorInput
|
|
138
|
-
inputId="query-builder__setup__access-point-group-selector"
|
|
139
|
-
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
140
|
-
placeholder="Choose an access point group..."
|
|
141
|
-
options={queryBuilderState.modelAccessPointGroupOptions}
|
|
142
|
-
disabled={
|
|
143
|
-
queryBuilderState.modelAccessPointGroupOptions.length < 1
|
|
144
|
-
}
|
|
145
|
-
onChange={(option: { value: ModelAccessPointGroup }) =>
|
|
146
|
-
queryBuilderState.changeModelAccessPointGroupValue(option.value)
|
|
147
|
-
}
|
|
148
|
-
value={queryBuilderState.selectedModelAccessPointGroupOption}
|
|
149
|
-
darkMode={
|
|
150
|
-
!applicationStore.layoutService
|
|
151
|
-
.TEMPORARY__isLightColorThemeEnabled
|
|
152
|
-
}
|
|
134
|
+
<QueryBuilderClassSelector
|
|
135
|
+
queryBuilderState={queryBuilderState}
|
|
136
|
+
classes={queryBuilderState.usableClasses}
|
|
137
|
+
onClassChange={queryBuilderState.onClassChange}
|
|
138
|
+
noMatchMessage="No compatible entity found for specified execution context"
|
|
153
139
|
/>
|
|
154
140
|
</div>
|
|
155
141
|
)}
|
|
156
|
-
<div className="query-builder__setup__config-group__item">
|
|
157
|
-
<QueryBuilderClassSelector
|
|
158
|
-
queryBuilderState={queryBuilderState}
|
|
159
|
-
classes={queryBuilderState.usableClasses}
|
|
160
|
-
onClassChange={queryBuilderState.onClassChange}
|
|
161
|
-
noMatchMessage="No compatible entity found for specified execution context"
|
|
162
|
-
/>
|
|
163
|
-
</div>
|
|
164
142
|
</>
|
|
165
143
|
);
|
|
166
144
|
},
|
|
@@ -173,23 +151,23 @@ const DataProductQueryBuilderSetupPanelContent = observer(
|
|
|
173
151
|
const executionState = queryBuilderState.executionState;
|
|
174
152
|
|
|
175
153
|
// runtime options (only for model access point group)
|
|
154
|
+
const runtimeRequired =
|
|
155
|
+
executionState instanceof ModelAccessPointDataProductExecutionState ||
|
|
156
|
+
executionState instanceof LakehouseDataProductExecutionState;
|
|
176
157
|
const showRuntimeSelector =
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
? executionState.compatibleRuntimes.map(buildElementOption)
|
|
182
|
-
: [];
|
|
158
|
+
runtimeRequired && executionState.showRuntimeOptions;
|
|
159
|
+
const runtimeOptions = runtimeRequired
|
|
160
|
+
? executionState.compatibleRuntimes.map(buildElementOption)
|
|
161
|
+
: [];
|
|
183
162
|
const selectedRuntimeOption =
|
|
184
|
-
|
|
185
|
-
executionState.selectedRuntime
|
|
163
|
+
runtimeRequired && executionState.selectedRuntime
|
|
186
164
|
? buildElementOption(executionState.selectedRuntime)
|
|
187
165
|
: null;
|
|
188
166
|
|
|
189
167
|
const onRuntimeOptionChange = (
|
|
190
168
|
option: PackageableElementOption<PackageableRuntime>,
|
|
191
169
|
): void => {
|
|
192
|
-
if (
|
|
170
|
+
if (runtimeRequired) {
|
|
193
171
|
if (option.value === executionState.selectedRuntime) {
|
|
194
172
|
return;
|
|
195
173
|
}
|
|
@@ -131,6 +131,8 @@ export enum QUERY_BUILDER_SUPPORTED_FUNCTIONS {
|
|
|
131
131
|
RELATION_OVER = 'meta::pure::functions::relation::over',
|
|
132
132
|
RELATION_RANK = 'meta::pure::functions::relation::rank',
|
|
133
133
|
RELATION_DENSE_RANK = 'meta::pure::functions::relation::denseRank',
|
|
134
|
+
RELATION_ROW_NUMBER = 'meta::pure::functions::relation::rowNumber',
|
|
135
|
+
RELATION_PERCENT_RANK = 'meta::pure::functions::relation::percentRank',
|
|
134
136
|
|
|
135
137
|
// filter
|
|
136
138
|
CONTAINS = 'meta::pure::functions::string::contains',
|
package/src/index.ts
CHANGED
|
@@ -66,8 +66,11 @@ export {
|
|
|
66
66
|
buildExecOptions,
|
|
67
67
|
type ModelAccessPointGroupOption,
|
|
68
68
|
buildModelAccessPointGroupOption,
|
|
69
|
+
type ExecutionIdOption,
|
|
70
|
+
buildDataProductAccessor,
|
|
69
71
|
NativeModelDataProductExecutionState,
|
|
70
72
|
ModelAccessPointDataProductExecutionState,
|
|
73
|
+
LakehouseDataProductExecutionState,
|
|
71
74
|
} from './stores/workflows/dataProduct/DataProductQueryBuilderState.js';
|
|
72
75
|
export { DataProductQueryBuilderSetupFormContent } from './components/workflows/DataProductQueryBuilder.js';
|
|
73
76
|
export { AccessorQueryBuilderState } from './stores/workflows/accessor/AccessorQueryBuilderState.js';
|
|
@@ -86,6 +86,7 @@ export enum QUERY_BUILDER_STATE_HASH_STRUCTURE {
|
|
|
86
86
|
TDS_WINDOW_OPERATOR_MIN = 'TDS_WINDOW_OPERATOR_MIN',
|
|
87
87
|
TDS_WINDOW_OPERATOR_COUNT = 'TDS_WINDOW_OPERATOR_COUNT',
|
|
88
88
|
TDS_WINDOW_OPERATOR_AVERAGE = 'TDS_WINDOW_OPERATOR_AVERAGE',
|
|
89
|
+
TDS_WINDOW_OPERATOR_PERCENT_RANK = 'TDS_WINDOW_OPERATOR_PERCENT_RANK',
|
|
89
90
|
|
|
90
91
|
// filter state
|
|
91
92
|
FILTER_TREE_GROUP_NODE_DATA = 'FILTER_TREE_GROUP_NODE_DATA',
|
|
@@ -220,7 +220,7 @@ const buildRawLambda = (
|
|
|
220
220
|
colAliases.values.push(colAlias);
|
|
221
221
|
const columnLambda = propertyExpression
|
|
222
222
|
? buildGenericLambdaFunctionInstanceValue(
|
|
223
|
-
DEFAULT_LAMBDA_VARIABLE_NAME,
|
|
223
|
+
[DEFAULT_LAMBDA_VARIABLE_NAME],
|
|
224
224
|
[propertyExpression],
|
|
225
225
|
queryBuilderState.graphManagerState.graph,
|
|
226
226
|
)
|
|
@@ -229,7 +229,7 @@ const buildRawLambda = (
|
|
|
229
229
|
extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_AGG),
|
|
230
230
|
);
|
|
231
231
|
const aggregateLambda = buildGenericLambdaFunctionInstanceValue(
|
|
232
|
-
DEFAULT_LAMBDA_VARIABLE_NAME,
|
|
232
|
+
[DEFAULT_LAMBDA_VARIABLE_NAME],
|
|
233
233
|
[
|
|
234
234
|
aggregationOperator.buildAggregateExpression(
|
|
235
235
|
propertyExpression,
|
|
@@ -267,7 +267,7 @@ const buildRawLambda = (
|
|
|
267
267
|
colAliases.values.push(colAlias);
|
|
268
268
|
const columnLambda = propertyExpression
|
|
269
269
|
? buildGenericLambdaFunctionInstanceValue(
|
|
270
|
-
DEFAULT_LAMBDA_VARIABLE_NAME,
|
|
270
|
+
[DEFAULT_LAMBDA_VARIABLE_NAME],
|
|
271
271
|
[propertyExpression],
|
|
272
272
|
queryBuilderState.graphManagerState.graph,
|
|
273
273
|
)
|
|
@@ -322,7 +322,7 @@ const buildRawLambda = (
|
|
|
322
322
|
postFilterExpression.parametersValues.push(value);
|
|
323
323
|
}
|
|
324
324
|
const filterLambda = buildGenericLambdaFunctionInstanceValue(
|
|
325
|
-
DEFAULT_POST_FILTER_LAMBDA_VARIABLE_NAME,
|
|
325
|
+
[DEFAULT_POST_FILTER_LAMBDA_VARIABLE_NAME],
|
|
326
326
|
[postFilterExpression],
|
|
327
327
|
queryBuilderState.graphManagerState.graph,
|
|
328
328
|
);
|
|
@@ -299,7 +299,7 @@ export const generateDefaultValueForPrimitiveType = (
|
|
|
299
299
|
};
|
|
300
300
|
|
|
301
301
|
export const buildGenericLambdaFunctionInstanceValue = (
|
|
302
|
-
|
|
302
|
+
lambdaParameterNames: string[],
|
|
303
303
|
lambdaBodyExpressions: ValueSpecification[],
|
|
304
304
|
graph: PureModel,
|
|
305
305
|
): LambdaFunctionInstanceValue => {
|
|
@@ -310,9 +310,11 @@ export const buildGenericLambdaFunctionInstanceValue = (
|
|
|
310
310
|
),
|
|
311
311
|
Multiplicity.ONE,
|
|
312
312
|
);
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
|
|
314
|
+
functionType.parameters = lambdaParameterNames.map(
|
|
315
|
+
(parameterName) => new VariableExpression(parameterName, Multiplicity.ONE),
|
|
315
316
|
);
|
|
317
|
+
|
|
316
318
|
const lambdaFunction = new LambdaFunction(functionType);
|
|
317
319
|
lambdaFunction.expressionSequence = lambdaBodyExpressions;
|
|
318
320
|
functionInstanceValue.values.push(lambdaFunction);
|