@finos/legend-application 4.0.3 → 5.1.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/application/LegendApplication.d.ts +9 -1
- package/lib/application/LegendApplication.d.ts.map +1 -1
- package/lib/application/LegendApplication.js +54 -1
- package/lib/application/LegendApplication.js.map +1 -1
- package/lib/components/VirtualAssistant.d.ts.map +1 -1
- package/lib/components/VirtualAssistant.js +91 -11
- package/lib/components/VirtualAssistant.js.map +1 -1
- package/lib/components/{BasicValueSpecificationEditor.d.ts → shared/BasicValueSpecificationEditor.d.ts} +2 -2
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -0
- package/lib/components/{BasicValueSpecificationEditor.js → shared/BasicValueSpecificationEditor.js} +29 -20
- package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -0
- package/lib/components/{CustomDatePicker.d.ts → shared/CustomDatePicker.d.ts} +1 -1
- package/lib/components/shared/CustomDatePicker.d.ts.map +1 -0
- package/lib/components/{CustomDatePicker.js → shared/CustomDatePicker.js} +20 -20
- package/lib/components/shared/CustomDatePicker.js.map +1 -0
- package/lib/components/{DocumentationLink.d.ts → shared/DocumentationLink.d.ts} +0 -0
- package/lib/components/shared/DocumentationLink.d.ts.map +1 -0
- package/lib/components/{DocumentationLink.js → shared/DocumentationLink.js} +1 -1
- package/lib/components/shared/DocumentationLink.js.map +1 -0
- package/lib/components/{LambdaEditor.d.ts → shared/LambdaEditor.d.ts} +1 -1
- package/lib/components/shared/LambdaEditor.d.ts.map +1 -0
- package/lib/components/{LambdaEditor.js → shared/LambdaEditor.js} +3 -3
- package/lib/components/shared/LambdaEditor.js.map +1 -0
- package/lib/components/{LambdaParameterValuesEditor.d.ts → shared/LambdaParameterValuesEditor.d.ts} +1 -1
- package/lib/components/shared/LambdaParameterValuesEditor.d.ts.map +1 -0
- package/lib/components/{LambdaParameterValuesEditor.js → shared/LambdaParameterValuesEditor.js} +2 -2
- package/lib/components/shared/LambdaParameterValuesEditor.js.map +1 -0
- package/lib/components/shared/PackageableElementOptionRenderer.d.ts +21 -0
- package/lib/components/shared/PackageableElementOptionRenderer.d.ts.map +1 -0
- package/lib/components/shared/PackageableElementOptionRenderer.js +8 -0
- package/lib/components/shared/PackageableElementOptionRenderer.js.map +1 -0
- package/lib/components/{TextInputEditor.d.ts → shared/TextInputEditor.d.ts} +1 -1
- package/lib/components/shared/TextInputEditor.d.ts.map +1 -0
- package/lib/components/{TextInputEditor.js → shared/TextInputEditor.js} +2 -2
- package/lib/components/shared/TextInputEditor.js.map +1 -0
- package/lib/components/shared/execution-plan-viewer/ExecutionPlanViewer.d.ts +28 -0
- package/lib/components/shared/execution-plan-viewer/ExecutionPlanViewer.d.ts.map +1 -0
- package/lib/components/shared/execution-plan-viewer/ExecutionPlanViewer.js +182 -0
- package/lib/components/shared/execution-plan-viewer/ExecutionPlanViewer.js.map +1 -0
- package/lib/components/shared/execution-plan-viewer/SQLExecutionNodeViewer.d.ts +31 -0
- package/lib/components/shared/execution-plan-viewer/SQLExecutionNodeViewer.d.ts.map +1 -0
- package/lib/components/shared/execution-plan-viewer/SQLExecutionNodeViewer.js +32 -0
- package/lib/components/shared/execution-plan-viewer/SQLExecutionNodeViewer.js.map +1 -0
- package/lib/const.d.ts +0 -3
- package/lib/const.d.ts.map +1 -1
- package/lib/const.js +0 -3
- package/lib/const.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +12 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +13 -9
- package/lib/index.js.map +1 -1
- package/lib/stores/ApplicationEvent.d.ts +4 -2
- package/lib/stores/ApplicationEvent.d.ts.map +1 -1
- package/lib/stores/ApplicationEvent.js +4 -2
- package/lib/stores/ApplicationEvent.js.map +1 -1
- package/lib/stores/ApplicationStore.d.ts.map +1 -1
- package/lib/stores/ApplicationStore.js +2 -1
- package/lib/stores/ApplicationStore.js.map +1 -1
- package/lib/stores/LegendApplicationAssistantService.d.ts +7 -2
- package/lib/stores/LegendApplicationAssistantService.d.ts.map +1 -1
- package/lib/stores/LegendApplicationAssistantService.js +22 -10
- package/lib/stores/LegendApplicationAssistantService.js.map +1 -1
- package/lib/stores/LegendApplicationConfig.d.ts +8 -5
- package/lib/stores/LegendApplicationConfig.d.ts.map +1 -1
- package/lib/stores/LegendApplicationConfig.js +15 -13
- package/lib/stores/LegendApplicationConfig.js.map +1 -1
- package/lib/stores/LegendApplicationDocumentationService.d.ts +34 -24
- package/lib/stores/LegendApplicationDocumentationService.d.ts.map +1 -1
- package/lib/stores/LegendApplicationDocumentationService.js +64 -60
- package/lib/stores/LegendApplicationDocumentationService.js.map +1 -1
- package/lib/stores/LegendApplicationPlugin.d.ts +14 -3
- package/lib/stores/LegendApplicationPlugin.d.ts.map +1 -1
- package/lib/stores/LegendApplicationPlugin.js.map +1 -1
- package/lib/stores/PureLanguageSupport.d.ts.map +1 -1
- package/lib/stores/PureLanguageSupport.js +8 -3
- package/lib/stores/PureLanguageSupport.js.map +1 -1
- package/lib/stores/shared/ExecutionPlanState.d.ts +62 -0
- package/lib/stores/shared/ExecutionPlanState.d.ts.map +1 -0
- package/lib/stores/shared/ExecutionPlanState.js +118 -0
- package/lib/stores/shared/ExecutionPlanState.js.map +1 -0
- package/lib/stores/{LambdaEditorState.d.ts → shared/LambdaEditorState.d.ts} +0 -0
- package/lib/stores/shared/LambdaEditorState.d.ts.map +1 -0
- package/lib/stores/{LambdaEditorState.js → shared/LambdaEditorState.js} +0 -0
- package/lib/stores/shared/LambdaEditorState.js.map +1 -0
- package/lib/stores/{LambdaParameterState.d.ts → shared/LambdaParameterState.d.ts} +1 -3
- package/lib/stores/shared/LambdaParameterState.d.ts.map +1 -0
- package/lib/stores/{LambdaParameterState.js → shared/LambdaParameterState.js} +3 -52
- package/lib/stores/shared/LambdaParameterState.js.map +1 -0
- package/lib/stores/{PackageableElementOption.d.ts → shared/PackageableElementOption.d.ts} +0 -0
- package/lib/stores/shared/PackageableElementOption.d.ts.map +1 -0
- package/lib/stores/{PackageableElementOption.js → shared/PackageableElementOption.js} +0 -0
- package/lib/stores/shared/PackageableElementOption.js.map +1 -0
- package/lib/stores/{ValueSpecificationModifierHelper.d.ts → shared/ValueSpecificationModifierHelper.d.ts} +0 -0
- package/lib/stores/shared/ValueSpecificationModifierHelper.d.ts.map +1 -0
- package/lib/stores/{ValueSpecificationModifierHelper.js → shared/ValueSpecificationModifierHelper.js} +0 -0
- package/lib/stores/shared/ValueSpecificationModifierHelper.js.map +1 -0
- package/package.json +13 -12
- package/src/application/LegendApplication.tsx +100 -4
- package/src/components/VirtualAssistant.tsx +106 -16
- package/src/components/{BasicValueSpecificationEditor.tsx → shared/BasicValueSpecificationEditor.tsx} +50 -19
- package/src/components/{CustomDatePicker.tsx → shared/CustomDatePicker.tsx} +44 -27
- package/src/components/{DocumentationLink.tsx → shared/DocumentationLink.tsx} +1 -1
- package/src/components/{LambdaEditor.tsx → shared/LambdaEditor.tsx} +4 -4
- package/src/components/{LambdaParameterValuesEditor.tsx → shared/LambdaParameterValuesEditor.tsx} +5 -3
- package/src/components/shared/PackageableElementOptionRenderer.tsx +40 -0
- package/src/components/{TextInputEditor.tsx → shared/TextInputEditor.tsx} +2 -2
- package/src/components/shared/execution-plan-viewer/ExecutionPlanViewer.tsx +550 -0
- package/src/components/shared/execution-plan-viewer/SQLExecutionNodeViewer.tsx +46 -0
- package/src/const.ts +0 -5
- package/src/index.ts +16 -13
- package/src/stores/ApplicationEvent.ts +4 -2
- package/src/stores/ApplicationStore.ts +3 -1
- package/src/stores/LegendApplicationAssistantService.ts +30 -16
- package/src/stores/LegendApplicationConfig.ts +28 -27
- package/src/stores/LegendApplicationDocumentationService.ts +128 -124
- package/src/stores/LegendApplicationPlugin.ts +17 -3
- package/src/stores/PureLanguageSupport.ts +8 -3
- package/src/stores/shared/ExecutionPlanState.ts +154 -0
- package/src/stores/{LambdaEditorState.ts → shared/LambdaEditorState.ts} +0 -0
- package/src/stores/{LambdaParameterState.ts → shared/LambdaParameterState.ts} +2 -100
- package/src/stores/{PackageableElementOption.ts → shared/PackageableElementOption.ts} +0 -0
- package/src/stores/{ValueSpecificationModifierHelper.ts → shared/ValueSpecificationModifierHelper.ts} +0 -0
- package/tsconfig.json +14 -10
- package/lib/components/BasicValueSpecificationEditor.d.ts.map +0 -1
- package/lib/components/BasicValueSpecificationEditor.js.map +0 -1
- package/lib/components/CustomDatePicker.d.ts.map +0 -1
- package/lib/components/CustomDatePicker.js.map +0 -1
- package/lib/components/DocumentationLink.d.ts.map +0 -1
- package/lib/components/DocumentationLink.js.map +0 -1
- package/lib/components/LambdaEditor.d.ts.map +0 -1
- package/lib/components/LambdaEditor.js.map +0 -1
- package/lib/components/LambdaParameterValuesEditor.d.ts.map +0 -1
- package/lib/components/LambdaParameterValuesEditor.js.map +0 -1
- package/lib/components/TextInputEditor.d.ts.map +0 -1
- package/lib/components/TextInputEditor.js.map +0 -1
- package/lib/stores/LambdaEditorState.d.ts.map +0 -1
- package/lib/stores/LambdaEditorState.js.map +0 -1
- package/lib/stores/LambdaParameterState.d.ts.map +0 -1
- package/lib/stores/LambdaParameterState.js.map +0 -1
- package/lib/stores/PackageableElementOption.d.ts.map +0 -1
- package/lib/stores/PackageableElementOption.js.map +0 -1
- package/lib/stores/ValueSpecificationModifierHelper.d.ts.map +0 -1
- package/lib/stores/ValueSpecificationModifierHelper.js.map +0 -1
|
@@ -17,6 +17,7 @@ import type { LegendApplicationConfig, LegendApplicationConfigurationData, Legen
|
|
|
17
17
|
import { type AbstractPlugin, type AbstractPreset, LogEvent } from '@finos/legend-shared';
|
|
18
18
|
import type { GraphPluginManager } from '@finos/legend-graph';
|
|
19
19
|
import type { LegendApplicationPluginManager } from './LegendApplicationPluginManager.js';
|
|
20
|
+
import { type LegendApplicationDocumentationConfigEntry } from '../stores/LegendApplicationDocumentationService.js';
|
|
20
21
|
export declare abstract class LegendApplicationLogger {
|
|
21
22
|
abstract debug(event: LogEvent, ...data: unknown[]): void;
|
|
22
23
|
abstract info(event: LogEvent, ...data: unknown[]): void;
|
|
@@ -30,6 +31,12 @@ export declare class LegendApplicationWebConsole extends LegendApplicationLogger
|
|
|
30
31
|
error(event: LogEvent, ...data: unknown[]): void;
|
|
31
32
|
}
|
|
32
33
|
export declare const setupLegendApplicationUILibrary: (pluginManager: GraphPluginManager, logger: LegendApplicationLogger) => Promise<void>;
|
|
34
|
+
export interface LegendApplicationConfigurationInput<T extends LegendApplicationConfigurationData> {
|
|
35
|
+
baseUrl: string;
|
|
36
|
+
configData: T;
|
|
37
|
+
versionData: LegendApplicationVersionData;
|
|
38
|
+
docEntries?: Record<string, LegendApplicationDocumentationConfigEntry>;
|
|
39
|
+
}
|
|
33
40
|
export declare abstract class LegendApplication {
|
|
34
41
|
protected config: LegendApplicationConfig;
|
|
35
42
|
protected logger: LegendApplicationLogger;
|
|
@@ -54,7 +61,8 @@ export declare abstract class LegendApplication {
|
|
|
54
61
|
withPresets(presets: AbstractPreset[]): LegendApplication;
|
|
55
62
|
withPlugins(plugins: AbstractPlugin[]): LegendApplication;
|
|
56
63
|
fetchApplicationConfiguration(baseUrl: string): Promise<[LegendApplicationConfig, Record<PropertyKey, object>]>;
|
|
57
|
-
|
|
64
|
+
loadDocumentationRegistryData(config: LegendApplicationConfig): Promise<void>;
|
|
65
|
+
protected abstract configureApplication(input: LegendApplicationConfigurationInput<LegendApplicationConfigurationData>): Promise<LegendApplicationConfig>;
|
|
58
66
|
protected abstract loadApplication(): Promise<void>;
|
|
59
67
|
start(): Promise<void>;
|
|
60
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendApplication.d.ts","sourceRoot":"","sources":["../../src/application/LegendApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EACV,uBAAuB,EACvB,kCAAkC,EAClC,4BAA4B,EAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,QAAQ,
|
|
1
|
+
{"version":3,"file":"LegendApplication.d.ts","sourceRoot":"","sources":["../../src/application/LegendApplication.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ import { assertErrorThrown, LogEvent, guaranteeNonEmptyString, assertNonNullable
|
|
|
20
20
|
import { APPLICATION_EVENT } from '../stores/ApplicationEvent.js';
|
|
21
21
|
import { configureComponents } from '@finos/legend-art';
|
|
22
22
|
import { setupPureLanguageService } from '../stores/PureLanguageSupport.js';
|
|
23
|
+
import { collectKeyedDocumnetationEntriesFromConfig, } from '../stores/LegendApplicationDocumentationService.js';
|
|
23
24
|
export class LegendApplicationLogger {
|
|
24
25
|
}
|
|
25
26
|
export class LegendApplicationWebConsole extends LegendApplicationLogger {
|
|
@@ -108,6 +109,7 @@ export class LegendApplication {
|
|
|
108
109
|
}
|
|
109
110
|
async fetchApplicationConfiguration(baseUrl) {
|
|
110
111
|
const client = new NetworkClient();
|
|
112
|
+
// app config
|
|
111
113
|
let configData;
|
|
112
114
|
try {
|
|
113
115
|
configData = await client.get(`${window.location.origin}${baseUrl}config.json`);
|
|
@@ -117,6 +119,7 @@ export class LegendApplication {
|
|
|
117
119
|
this.logger.error(LogEvent.create(APPLICATION_EVENT.APPLICATION_CONFIGURATION_FAILURE), error);
|
|
118
120
|
}
|
|
119
121
|
assertNonNullable(configData, `Can't fetch Legend application configuration`);
|
|
122
|
+
// app version
|
|
120
123
|
let versionData;
|
|
121
124
|
try {
|
|
122
125
|
versionData = await client.get(`${window.location.origin}${baseUrl}version.json`);
|
|
@@ -127,10 +130,56 @@ export class LegendApplication {
|
|
|
127
130
|
}
|
|
128
131
|
assertNonNullable(versionData, `Can't fetch Legend application version`);
|
|
129
132
|
return [
|
|
130
|
-
await this.configureApplication(
|
|
133
|
+
await this.configureApplication({
|
|
134
|
+
configData,
|
|
135
|
+
versionData,
|
|
136
|
+
baseUrl,
|
|
137
|
+
}),
|
|
131
138
|
(configData.extensions ?? {}),
|
|
132
139
|
];
|
|
133
140
|
}
|
|
141
|
+
async loadDocumentationRegistryData(config) {
|
|
142
|
+
const entries = {};
|
|
143
|
+
await Promise.all([
|
|
144
|
+
...config.documentationRegistryEntries,
|
|
145
|
+
...this.pluginManager
|
|
146
|
+
.getApplicationPlugins()
|
|
147
|
+
.flatMap((plugin) => plugin.getExtraDocumentationRegistryEntries?.() ?? []),
|
|
148
|
+
].map(async (entry) => {
|
|
149
|
+
try {
|
|
150
|
+
const client = new NetworkClient(entry.simple
|
|
151
|
+
? {
|
|
152
|
+
/**
|
|
153
|
+
* NOTE: see the documentation for `simple` flag {@link LegendApplicationDocumentationRegistryEntry}
|
|
154
|
+
* here, basically, we expect to fetch just the JSON from an endpoint where `Access-Control-Allow-Origin", "*"` is set
|
|
155
|
+
* as such, we must not include the credential in our request
|
|
156
|
+
* See https://stackoverflow.com/questions/19743396/cors-cannot-use-wildcard-in-access-control-allow-origin-when-credentials-flag-i
|
|
157
|
+
*/
|
|
158
|
+
options: {
|
|
159
|
+
credentials: 'omit',
|
|
160
|
+
},
|
|
161
|
+
}
|
|
162
|
+
: {});
|
|
163
|
+
const docData = await client.get(guaranteeNonEmptyString(entry.url, `Can't load documentation registry: 'url' field is missing or empty`));
|
|
164
|
+
assertNonNullable(docData.entries, `Can't load documentation registry data: 'entries' field is missing`);
|
|
165
|
+
Object.entries(docData.entries).forEach(([key, docEntry]) => {
|
|
166
|
+
// NOTE: entries will NOT override
|
|
167
|
+
if (!entries[key]) {
|
|
168
|
+
entries[key] = docEntry;
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
assertErrorThrown(error);
|
|
174
|
+
this.logger.warn(LogEvent.create(APPLICATION_EVENT.APPLICATION_DOCUMENTATION_FETCH_FAILURE), error);
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
177
|
+
// NOTE: config entries will override
|
|
178
|
+
config.keyedDocumentationEntries = [
|
|
179
|
+
...collectKeyedDocumnetationEntriesFromConfig(entries),
|
|
180
|
+
...config.keyedDocumentationEntries,
|
|
181
|
+
];
|
|
182
|
+
}
|
|
134
183
|
async start() {
|
|
135
184
|
assertNonNullable(this._isConfigured, 'Legend application has not been configured properly. Make sure to run setup() before start()');
|
|
136
185
|
try {
|
|
@@ -141,6 +190,10 @@ export class LegendApplication {
|
|
|
141
190
|
this.pluginRegister?.(this.pluginManager, this.config);
|
|
142
191
|
this.pluginManager.configure(extensionConfigData);
|
|
143
192
|
this.pluginManager.install();
|
|
193
|
+
// Other setups
|
|
194
|
+
await Promise.all(
|
|
195
|
+
// NOTE: to be done in parallel to save time
|
|
196
|
+
[this.loadDocumentationRegistryData(config)]);
|
|
144
197
|
await this.loadApplication();
|
|
145
198
|
this.logger.info(LogEvent.create(APPLICATION_EVENT.APPLICATION_LOADED), 'Legend application loaded');
|
|
146
199
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendApplication.js","sourceRoot":"","sources":["../../src/application/LegendApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAMrD,OAAO,EAGL,iBAAiB,EACjB,QAAQ,EACR,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,
|
|
1
|
+
{"version":3,"file":"LegendApplication.js","sourceRoot":"","sources":["../../src/application/LegendApplication.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualAssistant.d.ts","sourceRoot":"","sources":["../../src/components/VirtualAssistant.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;
|
|
1
|
+
{"version":3,"file":"VirtualAssistant.d.ts","sourceRoot":"","sources":["../../src/components/VirtualAssistant.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;AAqiBH,eAAO,MAAM,gBAAgB;;CA8H3B,CAAC"}
|
|
@@ -14,15 +14,16 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { clsx,
|
|
17
|
+
import { clsx, TimesIcon, SearchIcon, MapMarkerIcon, CloseIcon, ContextMenu, MenuContent, MenuContentItem, MarkdownTextViewer, ChevronDownIcon, ChevronRightIcon, BlankPanelContent, BeardIcon, SunglassesIcon, WizardHatIcon, FaceLaughWinkIcon, VerticalDragHandleThinIcon, CircleIcon, PanelLoadingIndicator, BasePopover, FaceSadTearIcon, } from '@finos/legend-art';
|
|
18
18
|
import { ContentType, debounce, downloadFileUsingDataURI, isString, uuid, } from '@finos/legend-shared';
|
|
19
19
|
import { format } from 'date-fns';
|
|
20
20
|
import { observer } from 'mobx-react-lite';
|
|
21
21
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
22
|
-
import {
|
|
22
|
+
import { TAB_SIZE } from '../const.js';
|
|
23
23
|
import { VIRTUAL_ASSISTANT_TAB, } from '../stores/LegendApplicationAssistantService.js';
|
|
24
24
|
import { useApplicationStore } from './ApplicationStoreProvider.js';
|
|
25
25
|
import Draggable from 'react-draggable';
|
|
26
|
+
import { DATE_TIME_FORMAT } from '@finos/legend-graph';
|
|
26
27
|
const WIZARD_GREETING = `Bonjour, It's Pierre!`;
|
|
27
28
|
const VirtualAssistantDocumentationEntryViewer = observer((props) => {
|
|
28
29
|
const { entry } = props;
|
|
@@ -52,7 +53,7 @@ const VirtualAssistantContextualSupportPanel = observer(() => {
|
|
|
52
53
|
classes: {
|
|
53
54
|
root: 'virtual-assistant__context-menu',
|
|
54
55
|
},
|
|
55
|
-
}, content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: copyContextIDToClipboard, children: "Copy Context ID" }), _jsx(MenuContentItem, { onClick: copyCurrentContextIDToClipboard, children: "Copy Current Context ID" }), _jsx(MenuContentItem, { onClick: copyContextStackToClipboard, children: "Copy Context Stack" })] }), children: [contextualEntry && (_jsxs("div", { className: "virtual-assistant__contextual-support__content", children: [contextualEntry.title && (_jsx("div", { className: "virtual-assistant__contextual-support__title", children: contextualEntry.title })), contextualEntry.content && (_jsx(_Fragment, { children: isString(contextualEntry.content) ? (_jsx("div", { className: "virtual-assistant__contextual-support__text", children: contextualEntry.content })) : (_jsx(MarkdownTextViewer, { className: "virtual-assistant__contextual-support__markdown-text", value: contextualEntry.content })) })), contextualEntry.related.length && (_jsxs("div", { className: "virtual-assistant__contextual-support__relevant-entries", children: [_jsxs("div", { className: "virtual-assistant__contextual-support__relevant-entries__title", children: ["Related entries (", contextualEntry.related.length, ")"] }), contextualEntry.related.map((entry) => (_jsx(VirtualAssistantDocumentationEntryViewer, { entry: entry }, entry.uuid)))] }))] })), !contextualEntry && (_jsx(BlankPanelContent, { children: _jsxs("div", { className: "virtual-
|
|
56
|
+
}, content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: copyContextIDToClipboard, children: "Copy Context ID" }), _jsx(MenuContentItem, { onClick: copyCurrentContextIDToClipboard, children: "Copy Current Context ID" }), _jsx(MenuContentItem, { onClick: copyContextStackToClipboard, children: "Copy Context Stack" })] }), children: [contextualEntry && (_jsxs("div", { className: "virtual-assistant__contextual-support__content", children: [contextualEntry.title && (_jsx("div", { className: "virtual-assistant__contextual-support__title", children: contextualEntry.title })), contextualEntry.content && (_jsx(_Fragment, { children: isString(contextualEntry.content) ? (_jsx("div", { className: "virtual-assistant__contextual-support__text", children: contextualEntry.content })) : (_jsx(MarkdownTextViewer, { className: "virtual-assistant__contextual-support__markdown-text", value: contextualEntry.content })) })), contextualEntry.related.length && (_jsxs("div", { className: "virtual-assistant__contextual-support__relevant-entries", children: [_jsxs("div", { className: "virtual-assistant__contextual-support__relevant-entries__title", children: ["Related entries (", contextualEntry.related.length, ")"] }), contextualEntry.related.map((entry) => (_jsx(VirtualAssistantDocumentationEntryViewer, { entry: entry }, entry.uuid)))] }))] })), !contextualEntry && (_jsx(BlankPanelContent, { children: _jsxs("div", { className: "virtual-assistant__panel__placeholder", children: [_jsx(FaceLaughWinkIcon, { className: "virtual-assistant__panel__placeholder__icon" }), _jsx("div", { className: "virtual-assistant__panel__placeholder__message", children: "No contextual documentation found!" }), _jsx("div", { className: "virtual-assistant__panel__placeholder__instruction", children: "Keep using the app, when contextual doc available, we will let you know!" })] }) }))] }));
|
|
56
57
|
});
|
|
57
58
|
const VirtualAssistantSearchPanel = observer(() => {
|
|
58
59
|
const applicationStore = useApplicationStore();
|
|
@@ -75,20 +76,50 @@ const VirtualAssistantSearchPanel = observer(() => {
|
|
|
75
76
|
const downloadDocRegistry = () => {
|
|
76
77
|
downloadFileUsingDataURI(`documentation-registry_${format(new Date(Date.now()), DATE_TIME_FORMAT)}.json`, JSON.stringify(applicationStore.documentationService.publishDocRegistry(), undefined, TAB_SIZE), ContentType.APPLICATION_JSON);
|
|
77
78
|
};
|
|
78
|
-
const
|
|
79
|
-
downloadFileUsingDataURI(`documentation-registry_${format(new Date(Date.now()), DATE_TIME_FORMAT)}.json`, JSON.stringify(applicationStore.documentationService.
|
|
79
|
+
const downloadContextualDocMap = () => {
|
|
80
|
+
downloadFileUsingDataURI(`documentation-registry_${format(new Date(Date.now()), DATE_TIME_FORMAT)}.json`, JSON.stringify(applicationStore.documentationService.publishContextualDocMap(), undefined, TAB_SIZE), ContentType.APPLICATION_JSON);
|
|
80
81
|
};
|
|
81
82
|
useEffect(() => {
|
|
82
83
|
searchInputRef.current?.focus();
|
|
83
84
|
}, []);
|
|
84
|
-
return (_jsxs("div", { className: "virtual-assistant__search", children: [_jsxs("div", { className: "virtual-assistant__search__header", children: [_jsx("input", { ref: searchInputRef,
|
|
85
|
+
return (_jsxs("div", { className: "virtual-assistant__search", children: [_jsxs("div", { className: "virtual-assistant__search__header", children: [_jsx("input", { ref: searchInputRef,
|
|
86
|
+
/**
|
|
87
|
+
* NOTE: In the scenario where another modal is opened at the same time the assistant panel
|
|
88
|
+
* is open, the focus will be stolen by the newly opened modal. In that case, we need
|
|
89
|
+
* to take back the focus. The trick here is to remount the whole panel (modal/popover)
|
|
90
|
+
* by refreshing the `key` prop of the panel. This will cause `mui` to recompute the
|
|
91
|
+
* focus-trap and allow the input field to be selectable again. Basically, we are stealing
|
|
92
|
+
* back the focus for the assistant.
|
|
93
|
+
*
|
|
94
|
+
* However, the caveat is that this will cause the component states, such as scroll positions,
|
|
95
|
+
* to be reset as such, we need to do this really sparingly. In fact, the only
|
|
96
|
+
* scenario where we need to do this is when a new modal is opened when the assistant panel
|
|
97
|
+
* is already opened. Basically, Other scenarios, such as when the assistant is opened after the modal
|
|
98
|
+
* is opened seem to pose no issue.
|
|
99
|
+
*/
|
|
100
|
+
onClick: () => {
|
|
101
|
+
if (
|
|
102
|
+
// only when there are dialogs being opened
|
|
103
|
+
// NOTE: this seems rather hacky, but querying by role is the least
|
|
104
|
+
// vendor-dependent approach we can think of at the moment
|
|
105
|
+
document.querySelectorAll('[role="dialog"]').length &&
|
|
106
|
+
// only when the focus is not already with the input field
|
|
107
|
+
// this means the focus is being stolen from the assistant because
|
|
108
|
+
// the newly opened modal is opened more recently than the assistant
|
|
109
|
+
//
|
|
110
|
+
// once the focus has been gained by the assistant
|
|
111
|
+
// we will not need to do this anymore
|
|
112
|
+
searchInputRef.current !== document.activeElement) {
|
|
113
|
+
assistantService.refreshPanelRendering();
|
|
114
|
+
}
|
|
115
|
+
}, className: clsx('virtual-assistant__search__input input--dark', {
|
|
85
116
|
'virtual-assistant__search__input--searching': searchText,
|
|
86
|
-
}), onChange: onSearchTextChange, value: searchText, placeholder: "Ask me a question" }), !searchText ? (_jsx("div", { className: "virtual-assistant__search__input__search__icon", children: _jsx(SearchIcon, {}) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "virtual-assistant__search__input__search__count", children: resultCount }), _jsx("button", { className: "virtual-assistant__search__input__clear-btn", tabIndex: -1, onClick: clearSearchText, title: "Clear", children: _jsx(TimesIcon, {}) })] }))] }), _jsxs("div", { className: "virtual-assistant__search__content", children: [_jsx(PanelLoadingIndicator, { isLoading: assistantService.searchState.isInProgress }), Boolean(results.length) && (_jsx("div", { className: "virtual-assistant__search__results", children: results.map((result) => (_jsx(VirtualAssistantDocumentationEntryViewer, { entry: result }, result.uuid))) })), searchText && !results.length && (_jsx(BlankPanelContent, { children: _jsx("div", { className: "virtual-
|
|
117
|
+
}), onChange: onSearchTextChange, value: searchText, placeholder: "Ask me a question" }), !searchText ? (_jsx("div", { className: "virtual-assistant__search__input__search__icon", children: _jsx(SearchIcon, {}) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "virtual-assistant__search__input__search__count", children: resultCount }), _jsx("button", { className: "virtual-assistant__search__input__clear-btn", tabIndex: -1, onClick: clearSearchText, title: "Clear", children: _jsx(TimesIcon, {}) })] }))] }), _jsxs("div", { className: "virtual-assistant__search__content", children: [_jsx(PanelLoadingIndicator, { isLoading: assistantService.searchState.isInProgress }), Boolean(results.length) && (_jsx("div", { className: "virtual-assistant__search__results", children: results.map((result) => (_jsx(VirtualAssistantDocumentationEntryViewer, { entry: result }, result.uuid))) })), searchText && !results.length && (_jsx(BlankPanelContent, { children: _jsxs("div", { className: "virtual-assistant__panel__placeholder", children: [_jsx(FaceSadTearIcon, { className: "virtual-assistant__panel__placeholder__icon" }), _jsx("div", { className: "virtual-assistant__panel__placeholder__message", children: "No result..." })] }) })), !searchText && !results.length && (_jsx(ContextMenu, { className: "virtual-assistant__character__container", menuProps: {
|
|
87
118
|
elevation: 7,
|
|
88
119
|
classes: {
|
|
89
120
|
root: 'virtual-assistant__context-menu',
|
|
90
121
|
},
|
|
91
|
-
}, content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: downloadDocRegistry, children: "Download documentation registry" }), _jsx(MenuContentItem, { onClick:
|
|
122
|
+
}, content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: downloadDocRegistry, children: "Download documentation registry" }), _jsx(MenuContentItem, { onClick: downloadContextualDocMap, children: "Download contextual documentation mapping" })] }), children: _jsxs("div", { className: "virtual-assistant__character", children: [_jsxs("div", { className: "virtual-assistant__character__figure", children: [_jsx(WizardHatIcon, { className: "virtual-assistant__character__hat" }), _jsx(SunglassesIcon, { className: "virtual-assistant__character__glasses" }), _jsx(BeardIcon, { className: "virtual-assistant__character__beard" })] }), _jsx("div", { className: "virtual-assistant__character__greeting", children: WIZARD_GREETING }), _jsx("div", { className: "virtual-assistant__character__question", children: "How can I help today?" })] }) }))] })] }));
|
|
92
123
|
});
|
|
93
124
|
const VirtualAssistantPanel = observer((props) => {
|
|
94
125
|
const { triggerElement } = props;
|
|
@@ -99,13 +130,62 @@ const VirtualAssistantPanel = observer((props) => {
|
|
|
99
130
|
const selectSearch = () => assistantService.setSelectedTab(VIRTUAL_ASSISTANT_TAB.SEARCH);
|
|
100
131
|
const selectContextualDoc = () => assistantService.setSelectedTab(VIRTUAL_ASSISTANT_TAB.CONTEXTUAL_SUPPORT);
|
|
101
132
|
const closeAssistantPanel = () => assistantService.setIsOpen(false);
|
|
102
|
-
return (
|
|
133
|
+
return (
|
|
134
|
+
/**
|
|
135
|
+
* The most appropriate component to use is `Popper`
|
|
136
|
+
* as it does not block click-away
|
|
137
|
+
* See https://mui.com/material-ui/react-popper/
|
|
138
|
+
*
|
|
139
|
+
* However, the caveat is that in the implementation of mui Popper
|
|
140
|
+
* focus trap is not supported. As such, we could end up in a situation
|
|
141
|
+
* where the assistant input fields will not be focusable
|
|
142
|
+
* when another modal is being opened, as that newly opened modal will
|
|
143
|
+
* **steal** the focus
|
|
144
|
+
*
|
|
145
|
+
* See https://github.com/finos/legend-studio/issues/1255
|
|
146
|
+
* See https://mui.com/material-ui/react-modal/#focus-trap
|
|
147
|
+
* See https://github.com/mui/material-ui/issues/17497
|
|
148
|
+
*/
|
|
149
|
+
_jsx(BasePopover, { open: assistantService.isOpen, className: "virtual-assistant__panel__container", anchorEl: triggerElement,
|
|
150
|
+
// we need to get rid of the backdrop and the click-away trap
|
|
151
|
+
// to make popover behave like a popper
|
|
152
|
+
hideBackdrop: true, PaperProps: {
|
|
153
|
+
// we will cancel the effect of click-away trap using CSS
|
|
154
|
+
classes: { root: 'virtual-assistant__panel__container__root' },
|
|
155
|
+
},
|
|
156
|
+
// allow other modals to take the focus from the virtual assistant
|
|
157
|
+
disableEnforceFocus: true,
|
|
103
158
|
// NOTE: make sure the assistant is always fully displayed (not cropped)
|
|
104
|
-
|
|
159
|
+
anchorOrigin: {
|
|
160
|
+
vertical: 'bottom',
|
|
161
|
+
horizontal: 'left',
|
|
162
|
+
}, transformOrigin: {
|
|
163
|
+
vertical: 'bottom',
|
|
164
|
+
horizontal: 'right',
|
|
165
|
+
}, children: _jsxs("div", { className: "virtual-assistant__panel",
|
|
166
|
+
// NOTE: here we block `tabbing` (to move focus). This is to counter the effect of
|
|
167
|
+
// `disableEnforceFocus={true}` set in the assistant panel popover
|
|
168
|
+
// this is the poor-man focus trap for the assistant to ensure
|
|
169
|
+
// that we don't leak focus tab down to other parts of the app
|
|
170
|
+
//
|
|
171
|
+
// Especially, due to the hack we do to compete for focus when another modal
|
|
172
|
+
// is opened, we need to do this to avoid leaking of focus to components
|
|
173
|
+
// beneath the modal via assistant
|
|
174
|
+
//
|
|
175
|
+
// setting `tabIndex={0}` is a hack to make this DOM node focusable
|
|
176
|
+
// and hence, we could trap the focus here using `onKeyDown`
|
|
177
|
+
// See https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
|
|
178
|
+
tabIndex: 0, onKeyDown: (event) => {
|
|
179
|
+
if (event.key === 'Tab') {
|
|
180
|
+
event.preventDefault();
|
|
181
|
+
event.stopPropagation();
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
}, children: [_jsxs("div", { className: "virtual-assistant__panel__header", children: [_jsxs("div", { className: "virtual-assistant__panel__header__tabs", children: [_jsx("div", { className: clsx('virtual-assistant__panel__header__tab', {
|
|
105
185
|
'virtual-assistant__panel__header__tab--active': selectedTab === VIRTUAL_ASSISTANT_TAB.SEARCH,
|
|
106
186
|
}), onClick: selectSearch, title: "Search", children: _jsx("div", { className: "virtual-assistant__panel__header__tab__content", children: _jsx(SearchIcon, {}) }) }), _jsx("div", { className: clsx('virtual-assistant__panel__header__tab', {
|
|
107
187
|
'virtual-assistant__panel__header__tab--active': selectedTab === VIRTUAL_ASSISTANT_TAB.CONTEXTUAL_SUPPORT,
|
|
108
|
-
}), onClick: selectContextualDoc, title: "Contextual Support", children: _jsxs("div", { className: "virtual-assistant__panel__header__tab__content", children: [_jsx(MapMarkerIcon, {}), currentContextualDocumentationEntry && (_jsx("div", { className: "virtual-assistant__panel__header__tab__indicator", title: "Contextual support available" }))] }) })] }), _jsx("div", { className: "virtual-assistant__panel__header__actions", children: _jsx("button", { className: "virtual-assistant__panel__header__action", tabIndex: -1, onClick: closeAssistantPanel, title: "Close panel", children: _jsx(CloseIcon, { className: "virtual-assistant__panel__icon__close" }) }) })] }), _jsxs("div", { className: "virtual-assistant__panel__content", children: [selectedTab === VIRTUAL_ASSISTANT_TAB.SEARCH && (_jsx(VirtualAssistantSearchPanel, {})), selectedTab === VIRTUAL_ASSISTANT_TAB.CONTEXTUAL_SUPPORT && (_jsx(VirtualAssistantContextualSupportPanel, {}))] })] }) }));
|
|
188
|
+
}), onClick: selectContextualDoc, title: "Contextual Support", children: _jsxs("div", { className: "virtual-assistant__panel__header__tab__content", children: [_jsx(MapMarkerIcon, {}), currentContextualDocumentationEntry && (_jsx("div", { className: "virtual-assistant__panel__header__tab__indicator", title: "Contextual support available" }))] }) })] }), _jsx("div", { className: "virtual-assistant__panel__header__actions", children: _jsx("button", { className: "virtual-assistant__panel__header__action", tabIndex: -1, onClick: closeAssistantPanel, title: "Close panel", children: _jsx(CloseIcon, { className: "virtual-assistant__panel__icon__close" }) }) })] }), _jsxs("div", { className: "virtual-assistant__panel__content", children: [selectedTab === VIRTUAL_ASSISTANT_TAB.SEARCH && (_jsx(VirtualAssistantSearchPanel, {})), selectedTab === VIRTUAL_ASSISTANT_TAB.CONTEXTUAL_SUPPORT && (_jsx(VirtualAssistantContextualSupportPanel, {}))] })] }) }, assistantService.panelRenderingKey));
|
|
109
189
|
});
|
|
110
190
|
export const VirtualAssistant = observer(() => {
|
|
111
191
|
const [isDragging, setIsDragging] = useState(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualAssistant.js","sourceRoot":"","sources":["../../src/components/VirtualAssistant.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VirtualAssistant.js","sourceRoot":"","sources":["../../src/components/VirtualAssistant.tsx"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ declare type TypeCheckOption = {
|
|
|
27
27
|
match?: boolean;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
|
-
* TODO we should pass in the props `
|
|
30
|
+
* TODO we should pass in the props `resetValueSpecification`. Reset
|
|
31
31
|
* should be part of this editor. Also through here we can call `observe_` accordingly.
|
|
32
32
|
*
|
|
33
33
|
* See https://github.com/finos/legend-studio/pull/1021
|
|
@@ -37,7 +37,7 @@ export declare const BasicValueSpecificationEditor: React.FC<{
|
|
|
37
37
|
graph: PureModel;
|
|
38
38
|
typeCheckOption: TypeCheckOption;
|
|
39
39
|
className?: string | undefined;
|
|
40
|
-
|
|
40
|
+
setValueSpecification: (val: ValueSpecification) => void;
|
|
41
41
|
resetValue: () => void;
|
|
42
42
|
}>;
|
|
43
43
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasicValueSpecificationEditor.d.ts","sourceRoot":"","sources":["../../../src/components/shared/BasicValueSpecificationEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;AAeH,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAgBf,MAAM,qBAAqB,CAAC;AAgB7B,aAAK,eAAe,GAAG;IACrB,YAAY,EAAE,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAsgBF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAAC;IACnD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,qBAAqB,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CA+HA,CAAC"}
|
package/lib/components/{BasicValueSpecificationEditor.js → shared/BasicValueSpecificationEditor.js}
RENAMED
|
@@ -20,7 +20,7 @@ import { guaranteeNonNullable, isNonNullable, returnUndefOnError, uniq, } from '
|
|
|
20
20
|
import { observer } from 'mobx-react-lite';
|
|
21
21
|
import CSVParser from 'papaparse';
|
|
22
22
|
import { useEffect, useRef, useState } from 'react';
|
|
23
|
-
import { instanceValue_changeValue, instanceValue_changeValues, } from '
|
|
23
|
+
import { instanceValue_changeValue, instanceValue_changeValues, } from '../../stores/shared/ValueSpecificationModifierHelper.js';
|
|
24
24
|
import { CustomDatePicker } from './CustomDatePicker.js';
|
|
25
25
|
const ParameterInfoTooltip = (props) => {
|
|
26
26
|
const { variable, children, placement } = props;
|
|
@@ -42,21 +42,27 @@ const VariableExpressionParameterEditor = observer((props) => {
|
|
|
42
42
|
return (_jsxs("div", { className: clsx('value-spec-editor__parameter', className), children: [_jsx("div", { className: "value-spec-editor__parameter__icon", children: _jsx(DollarIcon, {}) }), _jsxs("div", { className: "value-spec-editor__parameter__label", children: [_jsx("div", { className: "value-spec-editor__parameter__text", children: varName }), _jsx(ParameterInfoTooltip, { variable: valueSpecification, children: _jsx("div", { className: "value-spec-editor__parameter__info", children: _jsx(InfoCircleIcon, {}) }) }), _jsx("button", { className: "value-spec-editor__parameter__reset-btn", title: "Reset", onClick: resetValue, children: _jsx(RefreshIcon, {}) })] })] }));
|
|
43
43
|
});
|
|
44
44
|
const StringPrimitiveInstanceValueEditor = observer((props) => {
|
|
45
|
-
const { valueSpecification, className, resetValue } = props;
|
|
45
|
+
const { valueSpecification, className, resetValue, setValueSpecification } = props;
|
|
46
46
|
const value = valueSpecification.values[0];
|
|
47
|
-
const changeValue = (event) =>
|
|
47
|
+
const changeValue = (event) => {
|
|
48
|
+
instanceValue_changeValue(valueSpecification, event.target.value, 0);
|
|
49
|
+
setValueSpecification(valueSpecification);
|
|
50
|
+
};
|
|
48
51
|
return (_jsxs("div", { className: clsx('value-spec-editor', className), children: [_jsx("input", { className: "panel__content__form__section__input value-spec-editor__input", spellCheck: false, value: value, placeholder: value === '' ? '(empty)' : undefined, onChange: changeValue }), _jsx("button", { className: "value-spec-editor__reset-btn", title: "Reset", onClick: resetValue, children: _jsx(RefreshIcon, {}) })] }));
|
|
49
52
|
});
|
|
50
53
|
const BooleanPrimitiveInstanceValueEditor = observer((props) => {
|
|
51
|
-
const { valueSpecification, className, resetValue } = props;
|
|
54
|
+
const { valueSpecification, className, resetValue, setValueSpecification } = props;
|
|
52
55
|
const value = valueSpecification.values[0];
|
|
53
|
-
const toggleValue = () =>
|
|
56
|
+
const toggleValue = () => {
|
|
57
|
+
instanceValue_changeValue(valueSpecification, !value, 0);
|
|
58
|
+
setValueSpecification(valueSpecification);
|
|
59
|
+
};
|
|
54
60
|
return (_jsxs("div", { className: clsx('value-spec-editor', className), children: [_jsx("button", { className: clsx('value-spec-editor__toggler__btn', {
|
|
55
61
|
'value-spec-editor__toggler__btn--toggled': value,
|
|
56
62
|
}), onClick: toggleValue, children: value ? _jsx(CheckSquareIcon, {}) : _jsx(SquareIcon, {}) }), _jsx("button", { className: "value-spec-editor__reset-btn", title: "Reset", onClick: resetValue, children: _jsx(RefreshIcon, {}) })] }));
|
|
57
63
|
});
|
|
58
64
|
const NumberPrimitiveInstanceValueEditor = observer((props) => {
|
|
59
|
-
const { valueSpecification, isInteger, className, resetValue } = props;
|
|
65
|
+
const { valueSpecification, isInteger, className, resetValue, setValueSpecification, } = props;
|
|
60
66
|
const value = valueSpecification.values[0];
|
|
61
67
|
const changeValue = (event) => {
|
|
62
68
|
let inputVal = isInteger
|
|
@@ -64,11 +70,12 @@ const NumberPrimitiveInstanceValueEditor = observer((props) => {
|
|
|
64
70
|
: parseFloat(event.target.value);
|
|
65
71
|
inputVal = isNaN(inputVal) ? 0 : inputVal;
|
|
66
72
|
instanceValue_changeValue(valueSpecification, inputVal, 0);
|
|
73
|
+
setValueSpecification(valueSpecification);
|
|
67
74
|
};
|
|
68
75
|
return (_jsxs("div", { className: clsx('value-spec-editor', className), children: [_jsx("input", { className: "panel__content__form__section__input value-spec-editor__input", spellCheck: false, type: "number", value: value, onChange: changeValue }), _jsx("button", { className: "value-spec-editor__reset-btn", title: "Reset", onClick: resetValue, children: _jsx(RefreshIcon, {}) })] }));
|
|
69
76
|
});
|
|
70
77
|
const EnumValueInstanceValueEditor = observer((props) => {
|
|
71
|
-
const { valueSpecification, className, resetValue } = props;
|
|
78
|
+
const { valueSpecification, className, resetValue, setValueSpecification } = props;
|
|
72
79
|
const enumValueRef = guaranteeNonNullable(valueSpecification.values[0]);
|
|
73
80
|
const enumValue = enumValueRef.value;
|
|
74
81
|
const options = enumValue._OWNER.values.map((value) => ({
|
|
@@ -77,6 +84,7 @@ const EnumValueInstanceValueEditor = observer((props) => {
|
|
|
77
84
|
}));
|
|
78
85
|
const changeValue = (val) => {
|
|
79
86
|
instanceValue_changeValue(valueSpecification, EnumValueExplicitReference.create(val.value), 0);
|
|
87
|
+
setValueSpecification(valueSpecification);
|
|
80
88
|
};
|
|
81
89
|
return (_jsxs("div", { className: clsx('value-spec-editor', className), children: [_jsx(CustomSelectorInput, { className: "value-spec-editor__enum-selector", options: options, onChange: changeValue, value: { value: enumValue, label: enumValue.name }, darkMode: true }), _jsx("button", { className: "value-spec-editor__reset-btn", title: "Reset", onClick: resetValue, children: _jsx(RefreshIcon, {}) })] }));
|
|
82
90
|
});
|
|
@@ -181,7 +189,7 @@ const setCollectionValue = (valueSpecification, graph, expectedType, value) => {
|
|
|
181
189
|
};
|
|
182
190
|
const COLLECTION_PREVIEW_CHAR_LIMIT = 50;
|
|
183
191
|
const CollectionValueInstanceValueEditor = observer((props) => {
|
|
184
|
-
const { valueSpecification, graph, expectedType, className, resetValue } = props;
|
|
192
|
+
const { valueSpecification, graph, expectedType, className, resetValue, setValueSpecification, } = props;
|
|
185
193
|
const inputRef = useRef(null);
|
|
186
194
|
const [text, setText] = useState(stringifyValue(valueSpecification.values));
|
|
187
195
|
const [editable, setEditable] = useState(false);
|
|
@@ -198,6 +206,7 @@ const CollectionValueInstanceValueEditor = observer((props) => {
|
|
|
198
206
|
setEditable(false);
|
|
199
207
|
setCollectionValue(valueSpecification, graph, expectedType, text);
|
|
200
208
|
setText(stringifyValue(valueSpecification.values));
|
|
209
|
+
setValueSpecification(valueSpecification);
|
|
201
210
|
};
|
|
202
211
|
const changeValue = (event) => setText(event.target.value);
|
|
203
212
|
// focus the input box when edit is enabled
|
|
@@ -213,54 +222,54 @@ const CollectionValueInstanceValueEditor = observer((props) => {
|
|
|
213
222
|
});
|
|
214
223
|
const UnsupportedValueSpecificationEditor = () => (_jsx("div", { className: "value-spec-editor--unsupported", children: "unsupported" }));
|
|
215
224
|
const DateInstanceValueEditor = observer((props) => {
|
|
216
|
-
const { valueSpecification,
|
|
217
|
-
return (_jsxs("div", { className: "value-spec-editor", children: [_jsx(CustomDatePicker, { valueSpecification: valueSpecification, graph: graph, typeCheckOption: typeCheckOption,
|
|
225
|
+
const { valueSpecification, setValueSpecification, graph, typeCheckOption, resetValue, } = props;
|
|
226
|
+
return (_jsxs("div", { className: "value-spec-editor", children: [_jsx(CustomDatePicker, { valueSpecification: valueSpecification, graph: graph, typeCheckOption: typeCheckOption, setValueSpecification: setValueSpecification }), _jsx("button", { className: "value-spec-editor__reset-btn", title: "Reset", onClick: resetValue, children: _jsx(RefreshIcon, {}) })] }));
|
|
218
227
|
});
|
|
219
228
|
/**
|
|
220
|
-
* TODO we should pass in the props `
|
|
229
|
+
* TODO we should pass in the props `resetValueSpecification`. Reset
|
|
221
230
|
* should be part of this editor. Also through here we can call `observe_` accordingly.
|
|
222
231
|
*
|
|
223
232
|
* See https://github.com/finos/legend-studio/pull/1021
|
|
224
233
|
*/
|
|
225
234
|
export const BasicValueSpecificationEditor = (props) => {
|
|
226
|
-
const { className, valueSpecification, graph, typeCheckOption,
|
|
235
|
+
const { className, valueSpecification, graph, typeCheckOption, setValueSpecification, resetValue, } = props;
|
|
227
236
|
if (valueSpecification instanceof PrimitiveInstanceValue) {
|
|
228
237
|
const _type = valueSpecification.genericType.value.rawType;
|
|
229
238
|
switch (_type.path) {
|
|
230
239
|
case PRIMITIVE_TYPE.STRING:
|
|
231
|
-
return (_jsx(StringPrimitiveInstanceValueEditor, { valueSpecification: valueSpecification, className: className, resetValue: resetValue }));
|
|
240
|
+
return (_jsx(StringPrimitiveInstanceValueEditor, { valueSpecification: valueSpecification, setValueSpecification: setValueSpecification, className: className, resetValue: resetValue }));
|
|
232
241
|
case PRIMITIVE_TYPE.BOOLEAN:
|
|
233
|
-
return (_jsx(BooleanPrimitiveInstanceValueEditor, { valueSpecification: valueSpecification, className: className, resetValue: resetValue }));
|
|
242
|
+
return (_jsx(BooleanPrimitiveInstanceValueEditor, { valueSpecification: valueSpecification, setValueSpecification: setValueSpecification, className: className, resetValue: resetValue }));
|
|
234
243
|
case PRIMITIVE_TYPE.NUMBER:
|
|
235
244
|
case PRIMITIVE_TYPE.FLOAT:
|
|
236
245
|
case PRIMITIVE_TYPE.DECIMAL:
|
|
237
246
|
case PRIMITIVE_TYPE.INTEGER:
|
|
238
|
-
return (_jsx(NumberPrimitiveInstanceValueEditor, { valueSpecification: valueSpecification, isInteger: _type.path === PRIMITIVE_TYPE.INTEGER, className: className, resetValue: resetValue }));
|
|
247
|
+
return (_jsx(NumberPrimitiveInstanceValueEditor, { valueSpecification: valueSpecification, isInteger: _type.path === PRIMITIVE_TYPE.INTEGER, setValueSpecification: setValueSpecification, className: className, resetValue: resetValue }));
|
|
239
248
|
case PRIMITIVE_TYPE.DATE:
|
|
240
249
|
case PRIMITIVE_TYPE.STRICTDATE:
|
|
241
250
|
case PRIMITIVE_TYPE.DATETIME:
|
|
242
251
|
case PRIMITIVE_TYPE.LATESTDATE:
|
|
243
|
-
return (_jsx(DateInstanceValueEditor, { valueSpecification: valueSpecification, graph: graph, typeCheckOption: typeCheckOption, className: className,
|
|
252
|
+
return (_jsx(DateInstanceValueEditor, { valueSpecification: valueSpecification, graph: graph, typeCheckOption: typeCheckOption, className: className, setValueSpecification: setValueSpecification, resetValue: resetValue }));
|
|
244
253
|
default:
|
|
245
254
|
return _jsx(UnsupportedValueSpecificationEditor, {});
|
|
246
255
|
}
|
|
247
256
|
}
|
|
248
257
|
else if (valueSpecification instanceof EnumValueInstanceValue) {
|
|
249
|
-
return (_jsx(EnumValueInstanceValueEditor, { valueSpecification: valueSpecification, className: className, resetValue: resetValue }));
|
|
258
|
+
return (_jsx(EnumValueInstanceValueEditor, { valueSpecification: valueSpecification, className: className, resetValue: resetValue, setValueSpecification: setValueSpecification }));
|
|
250
259
|
}
|
|
251
260
|
else if (valueSpecification instanceof CollectionInstanceValue &&
|
|
252
261
|
valueSpecification.genericType) {
|
|
253
262
|
// NOTE: since when we fill in the arguments, `[]` (or `nullish` value in Pure)
|
|
254
263
|
// is used for parameters we don't handle, we should not attempt to support empty collection
|
|
255
264
|
// without generic type here as that is equivalent to `[]`
|
|
256
|
-
return (_jsx(CollectionValueInstanceValueEditor, { valueSpecification: valueSpecification, graph: graph, expectedType: typeCheckOption.expectedType, className: className, resetValue: resetValue }));
|
|
265
|
+
return (_jsx(CollectionValueInstanceValueEditor, { valueSpecification: valueSpecification, graph: graph, expectedType: typeCheckOption.expectedType, className: className, resetValue: resetValue, setValueSpecification: setValueSpecification }));
|
|
257
266
|
}
|
|
258
267
|
// property expression
|
|
259
268
|
else if (valueSpecification instanceof VariableExpression) {
|
|
260
269
|
return (_jsx(VariableExpressionParameterEditor, { valueSpecification: valueSpecification, className: className, resetValue: resetValue }));
|
|
261
270
|
}
|
|
262
271
|
else if (valueSpecification instanceof INTERNAL__PropagatedValue) {
|
|
263
|
-
return (_jsx(BasicValueSpecificationEditor, { valueSpecification: valueSpecification.getValue(), graph: graph, typeCheckOption: typeCheckOption,
|
|
272
|
+
return (_jsx(BasicValueSpecificationEditor, { valueSpecification: valueSpecification.getValue(), graph: graph, typeCheckOption: typeCheckOption, setValueSpecification: setValueSpecification, resetValue: resetValue }));
|
|
264
273
|
}
|
|
265
274
|
else if (valueSpecification instanceof SimpleFunctionExpression &&
|
|
266
275
|
[
|
|
@@ -269,7 +278,7 @@ export const BasicValueSpecificationEditor = (props) => {
|
|
|
269
278
|
PRIMITIVE_TYPE.DATETIME.toString(),
|
|
270
279
|
PRIMITIVE_TYPE.LATESTDATE.toString(),
|
|
271
280
|
].includes(typeCheckOption.expectedType.path)) {
|
|
272
|
-
return (_jsx(DateInstanceValueEditor, { valueSpecification: valueSpecification, graph: graph, typeCheckOption: typeCheckOption, className: className,
|
|
281
|
+
return (_jsx(DateInstanceValueEditor, { valueSpecification: valueSpecification, graph: graph, typeCheckOption: typeCheckOption, className: className, setValueSpecification: setValueSpecification, resetValue: resetValue }));
|
|
273
282
|
}
|
|
274
283
|
return _jsx(UnsupportedValueSpecificationEditor, {});
|
|
275
284
|
};
|