@finos/legend-query-builder 4.2.4 → 4.3.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.
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +3 -1
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderSideBar.d.ts +16 -0
- package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +85 -7
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/QueryChat.d.ts.map +1 -1
- package/lib/components/QueryChat.js +1 -1
- package/lib/components/QueryChat.js.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js +2 -2
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js +5 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/workflows/ClassQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/ClassQueryBuilder.js +13 -9
- package/lib/components/workflows/ClassQueryBuilder.js.map +1 -1
- package/lib/components/workflows/MappingQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/MappingQueryBuilder.js +13 -11
- package/lib/components/workflows/MappingQueryBuilder.js.map +1 -1
- package/lib/components/workflows/ServiceQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/ServiceQueryBuilder.js +3 -2
- package/lib/components/workflows/ServiceQueryBuilder.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/QueryBuilderExecutionContextState.d.ts +34 -0
- package/lib/stores/QueryBuilderExecutionContextState.d.ts.map +1 -0
- package/lib/stores/QueryBuilderExecutionContextState.js +59 -0
- package/lib/stores/QueryBuilderExecutionContextState.js.map +1 -0
- package/lib/stores/QueryBuilderInternalizeState.d.ts +24 -0
- package/lib/stores/QueryBuilderInternalizeState.d.ts.map +1 -0
- package/lib/stores/QueryBuilderInternalizeState.js +26 -0
- package/lib/stores/QueryBuilderInternalizeState.js.map +1 -0
- package/lib/stores/QueryBuilderResultState.js +5 -5
- package/lib/stores/QueryBuilderResultState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +7 -5
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +19 -17
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.d.ts +1 -1
- package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js +27 -2
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js +28 -2
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.d.ts.map +1 -1
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.js +2 -2
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.js.map +1 -1
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.d.ts.map +1 -1
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js +6 -4
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js +9 -9
- package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.d.ts +2 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js +25 -2
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +3 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.js +2 -1
- package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/workflows/ClassQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/ClassQueryBuilderState.js +2 -1
- package/lib/stores/workflows/ClassQueryBuilderState.js.map +1 -1
- package/lib/stores/workflows/FunctionQueryBuilderState.d.ts +23 -0
- package/lib/stores/workflows/FunctionQueryBuilderState.d.ts.map +1 -0
- package/lib/stores/workflows/FunctionQueryBuilderState.js +27 -0
- package/lib/stores/workflows/FunctionQueryBuilderState.js.map +1 -0
- package/lib/stores/workflows/ServiceQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/ServiceQueryBuilderState.js +7 -7
- package/lib/stores/workflows/ServiceQueryBuilderState.js.map +1 -1
- package/package.json +4 -4
- package/src/components/QueryBuilder.tsx +5 -1
- package/src/components/QueryBuilderSideBar.tsx +211 -7
- package/src/components/QueryChat.tsx +2 -1
- package/src/components/__test-utils__/QueryBuilderComponentTestUtils.tsx +2 -2
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +5 -1
- package/src/components/workflows/ClassQueryBuilder.tsx +17 -9
- package/src/components/workflows/MappingQueryBuilder.tsx +15 -11
- package/src/components/workflows/ServiceQueryBuilder.tsx +3 -2
- package/src/index.ts +1 -0
- package/src/stores/QueryBuilderExecutionContextState.ts +69 -0
- package/src/stores/QueryBuilderInternalizeState.ts +34 -0
- package/src/stores/QueryBuilderResultState.ts +6 -6
- package/src/stores/QueryBuilderState.ts +28 -21
- package/src/stores/QueryBuilderStateBuilder.ts +79 -1
- package/src/stores/QueryBuilderValueSpecificationBuilder.ts +50 -1
- package/src/stores/__test-utils__/QueryBuilderStateTestUtils.ts +4 -2
- package/src/stores/entitlements/QueryBuilderCheckEntitlementsState.ts +6 -4
- package/src/stores/explorer/QueryBuilderExplorerState.ts +9 -9
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.ts +64 -2
- package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +1 -1
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +4 -2
- package/src/stores/filter/QueryBuilderFilterState.ts +5 -2
- package/src/stores/workflows/ClassQueryBuilderState.ts +2 -1
- package/src/stores/workflows/FunctionQueryBuilderState.ts +38 -0
- package/src/stores/workflows/ServiceQueryBuilderState.ts +7 -11
- package/tsconfig.json +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceQueryBuilderState.js","sourceRoot":"","sources":["../../../src/stores/workflows/ServiceQueryBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAKL,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,0CAA0C,EAAE,MAAM,mDAAmD,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQ5D,MAAM,OAAO,wBAAyB,SAAQ,iBAAiB;IACpD,OAAO,CAAU;IACjB,cAAc,CAAwB;IACtC,iBAAiB,GAA8B,EAAE,CAAC;IAClD,eAAe,CAAwC;IACvD,wBAAwB,CAEnB;IAEL,oCAAoC,GAAG,GAAoB,EAAE,CACpE,0CAA0C,CAAC,IAAI,CAAC,CAAC;IAEnD,wBAAwB,CAAuC;IAE/D,YACE,gBAA+C,EAC/C,iBAAoC,EACpC,OAAgB,EAChB,cAAqC,EACrC,mBAAwC,EACxC,eAAsD,EACtD,wBAEa;QAEb,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAE3C,cAAc,CAAC,IAAI,EAAE;YACnB,wBAAwB,EAAE,UAAU;YACpC,2BAA2B,EAAE,MAAM;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QAEzD,IAAI,OAAO,CAAC,SAAS,YAAY,mBAAmB,EAAE;YACpD,
|
|
1
|
+
{"version":3,"file":"ServiceQueryBuilderState.js","sourceRoot":"","sources":["../../../src/stores/workflows/ServiceQueryBuilderState.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-query-builder",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "Legend query builder core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@finos/legend-application": "15.0.36",
|
|
46
46
|
"@finos/legend-art": "7.0.36",
|
|
47
|
-
"@finos/legend-graph": "31.1.
|
|
48
|
-
"@finos/legend-lego": "1.1.
|
|
49
|
-
"@finos/legend-server-depot": "6.0.
|
|
47
|
+
"@finos/legend-graph": "31.1.2",
|
|
48
|
+
"@finos/legend-lego": "1.1.18",
|
|
49
|
+
"@finos/legend-server-depot": "6.0.24",
|
|
50
50
|
"@finos/legend-shared": "10.0.22",
|
|
51
51
|
"@finos/legend-storage": "3.0.72",
|
|
52
52
|
"@testing-library/react": "14.0.0",
|
|
@@ -127,10 +127,14 @@ const QueryBuilderStatusBar = observer(
|
|
|
127
127
|
<button
|
|
128
128
|
className={clsx(
|
|
129
129
|
'query-builder__status-bar__action query-builder__status-bar__action__toggler',
|
|
130
|
+
{
|
|
131
|
+
'query-builder__status-bar__action__toggler--toggled':
|
|
132
|
+
queryBuilderState.isQueryChatOpened === true,
|
|
133
|
+
},
|
|
130
134
|
)}
|
|
131
135
|
onClick={openQueryChat}
|
|
132
136
|
tabIndex={-1}
|
|
133
|
-
title="Open
|
|
137
|
+
title="Open Query Chat"
|
|
134
138
|
>
|
|
135
139
|
<ChatIcon />
|
|
136
140
|
</button>
|
|
@@ -212,6 +212,206 @@ export const QueryBuilderClassSelector = observer(
|
|
|
212
212
|
},
|
|
213
213
|
);
|
|
214
214
|
|
|
215
|
+
export const QueryBuilderMappingSelector = observer(
|
|
216
|
+
(props: {
|
|
217
|
+
queryBuilderState: QueryBuilderState;
|
|
218
|
+
classes: Class[];
|
|
219
|
+
onClassChange?: ((val: Class) => void) | undefined;
|
|
220
|
+
noMatchMessage?: string | undefined;
|
|
221
|
+
}) => {
|
|
222
|
+
const { queryBuilderState, classes, onClassChange, noMatchMessage } = props;
|
|
223
|
+
const milestoningState = queryBuilderState.milestoningState;
|
|
224
|
+
const applicationStore = useApplicationStore();
|
|
225
|
+
|
|
226
|
+
// class
|
|
227
|
+
const elementFilterOption = createFilter({
|
|
228
|
+
ignoreCase: true,
|
|
229
|
+
ignoreAccents: false,
|
|
230
|
+
stringify: (option: PackageableElementOption<Class>): string =>
|
|
231
|
+
option.value.path,
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
const classOptions = classes.map((_class) => ({
|
|
235
|
+
value: _class,
|
|
236
|
+
label: generateClassLabel(_class, queryBuilderState),
|
|
237
|
+
}));
|
|
238
|
+
const selectedClassOption = queryBuilderState.class
|
|
239
|
+
? {
|
|
240
|
+
value: queryBuilderState.class,
|
|
241
|
+
label: generateClassLabel(queryBuilderState.class, queryBuilderState),
|
|
242
|
+
}
|
|
243
|
+
: null;
|
|
244
|
+
const changeClass = (val: PackageableElementOption<Class>): void => {
|
|
245
|
+
if (val.value === queryBuilderState.class) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
queryBuilderState.changeClass(val.value);
|
|
249
|
+
onClassChange?.(val.value);
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
// milestoning
|
|
253
|
+
const showMilestoningEditor = (): void =>
|
|
254
|
+
milestoningState.setShowMilestoningEditor(true);
|
|
255
|
+
|
|
256
|
+
return (
|
|
257
|
+
<div className="query-builder__setup__config-group query-builder__setup__config-group--class">
|
|
258
|
+
<div className="query-builder__setup__config-group__content">
|
|
259
|
+
<div className="query-builder__setup__config-group__item ">
|
|
260
|
+
<div
|
|
261
|
+
className="btn--sm query-builder__setup__config-group__item__label"
|
|
262
|
+
title="class"
|
|
263
|
+
>
|
|
264
|
+
<PURE_ClassIcon />
|
|
265
|
+
</div>
|
|
266
|
+
<CustomSelectorInput
|
|
267
|
+
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector query-builder__setup__config-group__item__selector__milestoned"
|
|
268
|
+
placeholder={
|
|
269
|
+
classOptions.length
|
|
270
|
+
? 'Choose a class...'
|
|
271
|
+
: noMatchMessage ?? 'No class found'
|
|
272
|
+
}
|
|
273
|
+
disabled={
|
|
274
|
+
classOptions.length < 1 ||
|
|
275
|
+
(classOptions.length === 1 && Boolean(selectedClassOption))
|
|
276
|
+
}
|
|
277
|
+
noMatchMessage={noMatchMessage}
|
|
278
|
+
options={classOptions}
|
|
279
|
+
onChange={changeClass}
|
|
280
|
+
value={selectedClassOption}
|
|
281
|
+
darkMode={
|
|
282
|
+
!applicationStore.layoutService
|
|
283
|
+
.TEMPORARY__isLightColorThemeEnabled
|
|
284
|
+
}
|
|
285
|
+
filterOption={elementFilterOption}
|
|
286
|
+
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
287
|
+
darkMode:
|
|
288
|
+
!applicationStore.layoutService
|
|
289
|
+
.TEMPORARY__isLightColorThemeEnabled,
|
|
290
|
+
})}
|
|
291
|
+
/>
|
|
292
|
+
{queryBuilderState.isQuerySupported && (
|
|
293
|
+
<button
|
|
294
|
+
className="btn--dark btn__icon--dark query-builder__setup__milestoning"
|
|
295
|
+
tabIndex={-1}
|
|
296
|
+
onClick={showMilestoningEditor}
|
|
297
|
+
disabled={!milestoningState.isMilestonedQuery}
|
|
298
|
+
title="Edit Milestoning Parameters"
|
|
299
|
+
>
|
|
300
|
+
<ClockIcon />
|
|
301
|
+
</button>
|
|
302
|
+
)}
|
|
303
|
+
{milestoningState.isMilestonedQuery && (
|
|
304
|
+
<MilestoningParametersEditor
|
|
305
|
+
queryBuilderState={queryBuilderState}
|
|
306
|
+
/>
|
|
307
|
+
)}
|
|
308
|
+
</div>
|
|
309
|
+
</div>
|
|
310
|
+
</div>
|
|
311
|
+
);
|
|
312
|
+
},
|
|
313
|
+
);
|
|
314
|
+
|
|
315
|
+
export const QueryBuilderFunction = observer(
|
|
316
|
+
(props: {
|
|
317
|
+
queryBuilderState: QueryBuilderState;
|
|
318
|
+
classes: Class[];
|
|
319
|
+
onClassChange?: ((val: Class) => void) | undefined;
|
|
320
|
+
noMatchMessage?: string | undefined;
|
|
321
|
+
}) => {
|
|
322
|
+
const { queryBuilderState, classes, onClassChange, noMatchMessage } = props;
|
|
323
|
+
const milestoningState = queryBuilderState.milestoningState;
|
|
324
|
+
const applicationStore = useApplicationStore();
|
|
325
|
+
|
|
326
|
+
// class
|
|
327
|
+
const elementFilterOption = createFilter({
|
|
328
|
+
ignoreCase: true,
|
|
329
|
+
ignoreAccents: false,
|
|
330
|
+
stringify: (option: PackageableElementOption<Class>): string =>
|
|
331
|
+
option.value.path,
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
const classOptions = classes.map((_class) => ({
|
|
335
|
+
value: _class,
|
|
336
|
+
label: generateClassLabel(_class, queryBuilderState),
|
|
337
|
+
}));
|
|
338
|
+
const selectedClassOption = queryBuilderState.class
|
|
339
|
+
? {
|
|
340
|
+
value: queryBuilderState.class,
|
|
341
|
+
label: generateClassLabel(queryBuilderState.class, queryBuilderState),
|
|
342
|
+
}
|
|
343
|
+
: null;
|
|
344
|
+
const changeClass = (val: PackageableElementOption<Class>): void => {
|
|
345
|
+
if (val.value === queryBuilderState.class) {
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
queryBuilderState.changeClass(val.value);
|
|
349
|
+
onClassChange?.(val.value);
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
// milestoning
|
|
353
|
+
const showMilestoningEditor = (): void =>
|
|
354
|
+
milestoningState.setShowMilestoningEditor(true);
|
|
355
|
+
|
|
356
|
+
return (
|
|
357
|
+
<div className="query-builder__setup__config-group query-builder__setup__config-group--class">
|
|
358
|
+
<div className="query-builder__setup__config-group__content">
|
|
359
|
+
<div className="query-builder__setup__config-group__item ">
|
|
360
|
+
<div
|
|
361
|
+
className="btn--sm query-builder__setup__config-group__item__label"
|
|
362
|
+
title="class"
|
|
363
|
+
>
|
|
364
|
+
<PURE_ClassIcon />
|
|
365
|
+
</div>
|
|
366
|
+
<CustomSelectorInput
|
|
367
|
+
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector query-builder__setup__config-group__item__selector__milestoned"
|
|
368
|
+
placeholder={
|
|
369
|
+
classOptions.length
|
|
370
|
+
? 'Choose a class...'
|
|
371
|
+
: noMatchMessage ?? 'No class found'
|
|
372
|
+
}
|
|
373
|
+
disabled={
|
|
374
|
+
classOptions.length < 1 ||
|
|
375
|
+
(classOptions.length === 1 && Boolean(selectedClassOption))
|
|
376
|
+
}
|
|
377
|
+
noMatchMessage={noMatchMessage}
|
|
378
|
+
options={classOptions}
|
|
379
|
+
onChange={changeClass}
|
|
380
|
+
value={selectedClassOption}
|
|
381
|
+
darkMode={
|
|
382
|
+
!applicationStore.layoutService
|
|
383
|
+
.TEMPORARY__isLightColorThemeEnabled
|
|
384
|
+
}
|
|
385
|
+
filterOption={elementFilterOption}
|
|
386
|
+
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
387
|
+
darkMode:
|
|
388
|
+
!applicationStore.layoutService
|
|
389
|
+
.TEMPORARY__isLightColorThemeEnabled,
|
|
390
|
+
})}
|
|
391
|
+
/>
|
|
392
|
+
{queryBuilderState.isQuerySupported && (
|
|
393
|
+
<button
|
|
394
|
+
className="btn--dark btn__icon--dark query-builder__setup__milestoning"
|
|
395
|
+
tabIndex={-1}
|
|
396
|
+
onClick={showMilestoningEditor}
|
|
397
|
+
disabled={!milestoningState.isMilestonedQuery}
|
|
398
|
+
title="Edit Milestoning Parameters"
|
|
399
|
+
>
|
|
400
|
+
<ClockIcon />
|
|
401
|
+
</button>
|
|
402
|
+
)}
|
|
403
|
+
{milestoningState.isMilestonedQuery && (
|
|
404
|
+
<MilestoningParametersEditor
|
|
405
|
+
queryBuilderState={queryBuilderState}
|
|
406
|
+
/>
|
|
407
|
+
)}
|
|
408
|
+
</div>
|
|
409
|
+
</div>
|
|
410
|
+
</div>
|
|
411
|
+
);
|
|
412
|
+
},
|
|
413
|
+
);
|
|
414
|
+
|
|
215
415
|
export const buildRuntimeValueOption = (
|
|
216
416
|
runtimeValue: Runtime,
|
|
217
417
|
): { label: string; value: Runtime } => ({
|
|
@@ -257,13 +457,14 @@ const BasicQueryBuilderSetup = observer(
|
|
|
257
457
|
queryBuilderState.graphManagerState.usableMappings.map(
|
|
258
458
|
buildElementOption,
|
|
259
459
|
);
|
|
260
|
-
const selectedMappingOption = queryBuilderState.
|
|
261
|
-
|
|
460
|
+
const selectedMappingOption = queryBuilderState.executionContextState
|
|
461
|
+
.mapping
|
|
462
|
+
? buildElementOption(queryBuilderState.executionContextState.mapping)
|
|
262
463
|
: null;
|
|
263
464
|
const changeMapping = (val: PackageableElementOption<Mapping>): void => {
|
|
264
465
|
if (
|
|
265
466
|
!queryBuilderState.class ||
|
|
266
|
-
val.value === queryBuilderState.mapping ||
|
|
467
|
+
val.value === queryBuilderState.executionContextState.mapping ||
|
|
267
468
|
queryBuilderState.isMappingReadOnly
|
|
268
469
|
) {
|
|
269
470
|
return;
|
|
@@ -284,12 +485,15 @@ const BasicQueryBuilderSetup = observer(
|
|
|
284
485
|
new RuntimePointer(PackageableElementExplicitReference.create(rt)),
|
|
285
486
|
)
|
|
286
487
|
.map(buildRuntimeValueOption);
|
|
287
|
-
const selectedRuntimeOption = queryBuilderState.
|
|
288
|
-
|
|
488
|
+
const selectedRuntimeOption = queryBuilderState.executionContextState
|
|
489
|
+
.runtimeValue
|
|
490
|
+
? buildRuntimeValueOption(
|
|
491
|
+
queryBuilderState.executionContextState.runtimeValue,
|
|
492
|
+
)
|
|
289
493
|
: null;
|
|
290
494
|
const changeRuntime = (val: { value: Runtime }): void => {
|
|
291
495
|
if (
|
|
292
|
-
val.value === queryBuilderState.runtimeValue ||
|
|
496
|
+
val.value === queryBuilderState.executionContextState.runtimeValue ||
|
|
293
497
|
queryBuilderState.isRuntimeReadOnly
|
|
294
498
|
) {
|
|
295
499
|
return;
|
|
@@ -368,7 +572,7 @@ const BasicQueryBuilderSetup = observer(
|
|
|
368
572
|
disabled={
|
|
369
573
|
queryBuilderState.isRuntimeReadOnly ||
|
|
370
574
|
!queryBuilderState.class ||
|
|
371
|
-
!queryBuilderState.mapping
|
|
575
|
+
!queryBuilderState.executionContextState.mapping
|
|
372
576
|
}
|
|
373
577
|
options={runtimeOptions}
|
|
374
578
|
onChange={changeRuntime}
|
|
@@ -62,8 +62,9 @@ export const QueryChat = observer(
|
|
|
62
62
|
</ModalBody>
|
|
63
63
|
<ModalFooter>
|
|
64
64
|
<ModalFooterButton
|
|
65
|
+
className="btn--caution"
|
|
65
66
|
onClick={() => queryBuilderState.setIsQueryChatOpened(false)}
|
|
66
|
-
text="Close"
|
|
67
|
+
text="Discard and Close"
|
|
67
68
|
/>
|
|
68
69
|
</ModalFooter>
|
|
69
70
|
</Modal>
|
|
@@ -84,8 +84,8 @@ export const TEST__setUpQueryBuilder = async (
|
|
|
84
84
|
graphManagerState,
|
|
85
85
|
);
|
|
86
86
|
const mapping = graphManagerState.graph.getMapping(mappingPath);
|
|
87
|
-
queryBuilderState.setMapping(mapping);
|
|
88
|
-
queryBuilderState.setRuntimeValue(
|
|
87
|
+
queryBuilderState.executionContextState.setMapping(mapping);
|
|
88
|
+
queryBuilderState.executionContextState.setRuntimeValue(
|
|
89
89
|
new RuntimePointer(
|
|
90
90
|
PackageableElementExplicitReference.create(
|
|
91
91
|
graphManagerState.graph.getRuntime(runtimePath),
|
|
@@ -849,7 +849,11 @@ export const QueryBuilderExplorerPanel = observer(
|
|
|
849
849
|
flowResult(explorerState.analyzeMappingModelCoverage()).catch(
|
|
850
850
|
applicationStore.alertUnhandledError,
|
|
851
851
|
);
|
|
852
|
-
}, [
|
|
852
|
+
}, [
|
|
853
|
+
applicationStore,
|
|
854
|
+
explorerState,
|
|
855
|
+
queryBuilderState.executionContextState.mapping,
|
|
856
|
+
]);
|
|
853
857
|
return (
|
|
854
858
|
<div
|
|
855
859
|
data-testid={QUERY_BUILDER_TEST_ID.QUERY_BUILDER_EXPLORER}
|
|
@@ -71,11 +71,15 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
|
71
71
|
)
|
|
72
72
|
: []
|
|
73
73
|
).map(buildElementOption);
|
|
74
|
-
const selectedMappingOption = queryBuilderState.
|
|
75
|
-
|
|
74
|
+
const selectedMappingOption = queryBuilderState.executionContextState
|
|
75
|
+
.mapping
|
|
76
|
+
? buildElementOption(queryBuilderState.executionContextState.mapping)
|
|
76
77
|
: null;
|
|
77
78
|
const changeMapping = (val: PackageableElementOption<Mapping>): void => {
|
|
78
|
-
if (
|
|
79
|
+
if (
|
|
80
|
+
!queryBuilderState.class ||
|
|
81
|
+
val.value === queryBuilderState.executionContextState.mapping
|
|
82
|
+
) {
|
|
79
83
|
return;
|
|
80
84
|
}
|
|
81
85
|
queryBuilderState.changeMapping(val.value);
|
|
@@ -90,9 +94,9 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
|
90
94
|
|
|
91
95
|
// runtime
|
|
92
96
|
const runtimeOptions = (
|
|
93
|
-
queryBuilderState.mapping
|
|
97
|
+
queryBuilderState.executionContextState.mapping
|
|
94
98
|
? getMappingCompatibleRuntimes(
|
|
95
|
-
queryBuilderState.mapping,
|
|
99
|
+
queryBuilderState.executionContextState.mapping,
|
|
96
100
|
queryBuilderState.graphManagerState.usableRuntimes,
|
|
97
101
|
)
|
|
98
102
|
: []
|
|
@@ -102,11 +106,14 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
|
102
106
|
new RuntimePointer(PackageableElementExplicitReference.create(rt)),
|
|
103
107
|
)
|
|
104
108
|
.map(buildRuntimeValueOption);
|
|
105
|
-
const selectedRuntimeOption = queryBuilderState.
|
|
106
|
-
|
|
109
|
+
const selectedRuntimeOption = queryBuilderState.executionContextState
|
|
110
|
+
.runtimeValue
|
|
111
|
+
? buildRuntimeValueOption(
|
|
112
|
+
queryBuilderState.executionContextState.runtimeValue,
|
|
113
|
+
)
|
|
107
114
|
: null;
|
|
108
115
|
const changeRuntime = (val: { value: Runtime }): void => {
|
|
109
|
-
if (val.value === queryBuilderState.runtimeValue) {
|
|
116
|
+
if (val.value === queryBuilderState.executionContextState.runtimeValue) {
|
|
110
117
|
return;
|
|
111
118
|
}
|
|
112
119
|
queryBuilderState.changeRuntime(val.value);
|
|
@@ -177,7 +184,8 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
|
177
184
|
placeholder="Choose a runtime..."
|
|
178
185
|
noMatchMessage="No compatible runtime found for specified mapping"
|
|
179
186
|
disabled={
|
|
180
|
-
!queryBuilderState.class ||
|
|
187
|
+
!queryBuilderState.class ||
|
|
188
|
+
!queryBuilderState.executionContextState.mapping
|
|
181
189
|
}
|
|
182
190
|
options={runtimeOptions}
|
|
183
191
|
onChange={changeRuntime}
|
|
@@ -62,11 +62,12 @@ const MappingQueryBuilderSetupPanelContent = observer(
|
|
|
62
62
|
queryBuilderState.graphManagerState.usableMappings.map(
|
|
63
63
|
buildElementOption,
|
|
64
64
|
);
|
|
65
|
-
const selectedMappingOption = queryBuilderState.
|
|
66
|
-
|
|
65
|
+
const selectedMappingOption = queryBuilderState.executionContextState
|
|
66
|
+
.mapping
|
|
67
|
+
? buildElementOption(queryBuilderState.executionContextState.mapping)
|
|
67
68
|
: null;
|
|
68
69
|
const changeMapping = (val: PackageableElementOption<Mapping>): void => {
|
|
69
|
-
if (val.value === queryBuilderState.mapping) {
|
|
70
|
+
if (val.value === queryBuilderState.executionContextState.mapping) {
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
72
73
|
queryBuilderState.changeMapping(val.value);
|
|
@@ -82,9 +83,9 @@ const MappingQueryBuilderSetupPanelContent = observer(
|
|
|
82
83
|
|
|
83
84
|
// runtime
|
|
84
85
|
const runtimeOptions = (
|
|
85
|
-
queryBuilderState.mapping
|
|
86
|
+
queryBuilderState.executionContextState.mapping
|
|
86
87
|
? getMappingCompatibleRuntimes(
|
|
87
|
-
queryBuilderState.mapping,
|
|
88
|
+
queryBuilderState.executionContextState.mapping,
|
|
88
89
|
queryBuilderState.graphManagerState.usableRuntimes,
|
|
89
90
|
)
|
|
90
91
|
: []
|
|
@@ -94,11 +95,14 @@ const MappingQueryBuilderSetupPanelContent = observer(
|
|
|
94
95
|
new RuntimePointer(PackageableElementExplicitReference.create(rt)),
|
|
95
96
|
)
|
|
96
97
|
.map(buildRuntimeValueOption);
|
|
97
|
-
const selectedRuntimeOption = queryBuilderState.
|
|
98
|
-
|
|
98
|
+
const selectedRuntimeOption = queryBuilderState.executionContextState
|
|
99
|
+
.runtimeValue
|
|
100
|
+
? buildRuntimeValueOption(
|
|
101
|
+
queryBuilderState.executionContextState.runtimeValue,
|
|
102
|
+
)
|
|
99
103
|
: null;
|
|
100
104
|
const changeRuntime = (val: { value: Runtime }): void => {
|
|
101
|
-
if (val.value === queryBuilderState.runtimeValue) {
|
|
105
|
+
if (val.value === queryBuilderState.executionContextState.runtimeValue) {
|
|
102
106
|
return;
|
|
103
107
|
}
|
|
104
108
|
queryBuilderState.changeRuntime(val.value);
|
|
@@ -113,9 +117,9 @@ const MappingQueryBuilderSetupPanelContent = observer(
|
|
|
113
117
|
});
|
|
114
118
|
|
|
115
119
|
// class
|
|
116
|
-
const classes = queryBuilderState.mapping
|
|
120
|
+
const classes = queryBuilderState.executionContextState.mapping
|
|
117
121
|
? getMappingCompatibleClasses(
|
|
118
|
-
queryBuilderState.mapping,
|
|
122
|
+
queryBuilderState.executionContextState.mapping,
|
|
119
123
|
queryBuilderState.graphManagerState.usableClasses,
|
|
120
124
|
)
|
|
121
125
|
: [];
|
|
@@ -170,7 +174,7 @@ const MappingQueryBuilderSetupPanelContent = observer(
|
|
|
170
174
|
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
171
175
|
placeholder="Choose a runtime..."
|
|
172
176
|
noMatchMessage="No compatible runtime found for specified mapping"
|
|
173
|
-
disabled={!queryBuilderState.mapping}
|
|
177
|
+
disabled={!queryBuilderState.executionContextState.mapping}
|
|
174
178
|
options={runtimeOptions}
|
|
175
179
|
onChange={changeRuntime}
|
|
176
180
|
value={selectedRuntimeOption}
|
|
@@ -47,6 +47,7 @@ const buildExecutionContextOption = (
|
|
|
47
47
|
*
|
|
48
48
|
* See details on propagation/cascading in {@link ServiceQueryBuilderState}
|
|
49
49
|
*/
|
|
50
|
+
// TODO: add mapping/runtime for `from` queries
|
|
50
51
|
const ServiceQueryBuilderSetupPanelContent = observer(
|
|
51
52
|
(props: { queryBuilderState: ServiceQueryBuilderState }) => {
|
|
52
53
|
const { queryBuilderState } = props;
|
|
@@ -87,9 +88,9 @@ const ServiceQueryBuilderSetupPanelContent = observer(
|
|
|
87
88
|
};
|
|
88
89
|
|
|
89
90
|
// class
|
|
90
|
-
const classes = queryBuilderState.mapping
|
|
91
|
+
const classes = queryBuilderState.executionContextState.mapping
|
|
91
92
|
? getMappingCompatibleClasses(
|
|
92
|
-
queryBuilderState.mapping,
|
|
93
|
+
queryBuilderState.executionContextState.mapping,
|
|
93
94
|
queryBuilderState.graphManagerState.usableClasses,
|
|
94
95
|
)
|
|
95
96
|
: [];
|
package/src/index.ts
CHANGED
|
@@ -37,6 +37,7 @@ export {
|
|
|
37
37
|
getRuntimeOptionFormatter,
|
|
38
38
|
} from './components/QueryBuilderSideBar.js';
|
|
39
39
|
export { ClassQueryBuilderState } from './stores/workflows/ClassQueryBuilderState.js';
|
|
40
|
+
export { FunctionQueryBuilderState } from './stores/workflows/FunctionQueryBuilderState.js';
|
|
40
41
|
export { MappingQueryBuilderState } from './stores/workflows/MappingQueryBuilderState.js';
|
|
41
42
|
export {
|
|
42
43
|
type ServiceExecutionContext,
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import type { Mapping, Runtime } from '@finos/legend-graph';
|
|
18
|
+
import type { QueryBuilderState } from './QueryBuilderState.js';
|
|
19
|
+
import { action, makeObservable, observable } from 'mobx';
|
|
20
|
+
|
|
21
|
+
export abstract class QueryBuilderExecutionContextState {
|
|
22
|
+
readonly queryBuilderState: QueryBuilderState;
|
|
23
|
+
mapping: Mapping | undefined;
|
|
24
|
+
runtimeValue: Runtime | undefined;
|
|
25
|
+
|
|
26
|
+
constructor(queryBuilderState: QueryBuilderState) {
|
|
27
|
+
this.queryBuilderState = queryBuilderState;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
setMapping(val: Mapping | undefined): void {
|
|
31
|
+
this.mapping = val;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
setRuntimeValue(val: Runtime | undefined): void {
|
|
35
|
+
this.runtimeValue = val;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get specifiedInQuery(): boolean {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export class QueryBuilderEmbeddedFromExecutionContextState extends QueryBuilderExecutionContextState {
|
|
44
|
+
constructor(queryBuilderState: QueryBuilderState) {
|
|
45
|
+
super(queryBuilderState);
|
|
46
|
+
makeObservable(this, {
|
|
47
|
+
mapping: observable,
|
|
48
|
+
runtimeValue: observable,
|
|
49
|
+
setMapping: action,
|
|
50
|
+
setRuntimeValue: action,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export class QueryBuilderExternalExecutionContextState extends QueryBuilderExecutionContextState {
|
|
56
|
+
constructor(queryBuilderState: QueryBuilderState) {
|
|
57
|
+
super(queryBuilderState);
|
|
58
|
+
makeObservable(this, {
|
|
59
|
+
mapping: observable,
|
|
60
|
+
runtimeValue: observable,
|
|
61
|
+
setMapping: action,
|
|
62
|
+
setRuntimeValue: action,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
override get specifiedInQuery(): boolean {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import type { QueryBuilderState } from './QueryBuilderState.js';
|
|
18
|
+
import type { Binding, VariableExpression } from '@finos/legend-graph';
|
|
19
|
+
|
|
20
|
+
export class QueryBuilderInternalizeState {
|
|
21
|
+
readonly queryBuilderState: QueryBuilderState;
|
|
22
|
+
binding: Binding;
|
|
23
|
+
inputData: VariableExpression;
|
|
24
|
+
|
|
25
|
+
constructor(
|
|
26
|
+
binding: Binding,
|
|
27
|
+
inputData: VariableExpression,
|
|
28
|
+
queryBuilderState: QueryBuilderState,
|
|
29
|
+
) {
|
|
30
|
+
this.queryBuilderState = queryBuilderState;
|
|
31
|
+
this.binding = binding;
|
|
32
|
+
this.inputData = inputData;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -217,8 +217,8 @@ export class QueryBuilderResultState {
|
|
|
217
217
|
const result =
|
|
218
218
|
(yield this.queryBuilderState.graphManagerState.graphManager.runQuery(
|
|
219
219
|
query,
|
|
220
|
-
this.queryBuilderState.mapping,
|
|
221
|
-
this.queryBuilderState.runtimeValue,
|
|
220
|
+
this.queryBuilderState.executionContextState.mapping,
|
|
221
|
+
this.queryBuilderState.executionContextState.runtimeValue,
|
|
222
222
|
this.queryBuilderState.graphManagerState.graph,
|
|
223
223
|
{
|
|
224
224
|
serializationFormat,
|
|
@@ -260,11 +260,11 @@ export class QueryBuilderResultState {
|
|
|
260
260
|
this.setIsRunningQuery(true);
|
|
261
261
|
const currentHashCode = this.queryBuilderState.hashCode;
|
|
262
262
|
const mapping = guaranteeNonNullable(
|
|
263
|
-
this.queryBuilderState.mapping,
|
|
263
|
+
this.queryBuilderState.executionContextState.mapping,
|
|
264
264
|
'Mapping is required to execute query',
|
|
265
265
|
);
|
|
266
266
|
const runtime = guaranteeNonNullable(
|
|
267
|
-
this.queryBuilderState.runtimeValue,
|
|
267
|
+
this.queryBuilderState.executionContextState.runtimeValue,
|
|
268
268
|
`Runtime is required to execute query`,
|
|
269
269
|
);
|
|
270
270
|
const query = this.buildExecutionRawLambda();
|
|
@@ -350,11 +350,11 @@ export class QueryBuilderResultState {
|
|
|
350
350
|
try {
|
|
351
351
|
this.isGeneratingPlan = true;
|
|
352
352
|
const mapping = guaranteeNonNullable(
|
|
353
|
-
this.queryBuilderState.mapping,
|
|
353
|
+
this.queryBuilderState.executionContextState.mapping,
|
|
354
354
|
'Mapping is required to execute query',
|
|
355
355
|
);
|
|
356
356
|
const runtime = guaranteeNonNullable(
|
|
357
|
-
this.queryBuilderState.runtimeValue,
|
|
357
|
+
this.queryBuilderState.executionContextState.runtimeValue,
|
|
358
358
|
`Runtime is required to execute query`,
|
|
359
359
|
);
|
|
360
360
|
const query = this.queryBuilderState.buildQuery();
|