@finos/legend-extension-dsl-data-space-studio 0.1.336 → 0.1.338
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/DataSpaceGeneralEditor/DataSpaceGeneralEditor.d.ts.map +1 -1
- package/lib/components/DataSpaceGeneralEditor/DataSpaceGeneralEditor.js +63 -3
- package/lib/components/DataSpaceGeneralEditor/DataSpaceGeneralEditor.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/package.json +11 -11
- package/src/components/DataSpaceGeneralEditor/DataSpaceGeneralEditor.tsx +163 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSpaceGeneralEditor.d.ts","sourceRoot":"","sources":["../../../src/components/DataSpaceGeneralEditor/DataSpaceGeneralEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"DataSpaceGeneralEditor.d.ts","sourceRoot":"","sources":["../../../src/components/DataSpaceGeneralEditor/DataSpaceGeneralEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkCH,eAAO,MAAM,sBAAsB;;CAsLjC,CAAC"}
|
|
@@ -14,9 +14,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { useEditorStore } from '@finos/legend-application-studio';
|
|
18
|
-
import { PanelContentLists, PanelForm, PanelFormTextField, } from '@finos/legend-art';
|
|
17
|
+
import { useEditorStore, LEGEND_STUDIO_DOCUMENTATION_KEY, LegendStudioTelemetryHelper, } from '@finos/legend-application-studio';
|
|
18
|
+
import { clsx, PanelContentLists, PanelForm, PanelFormTextField, PanelLoadingIndicator, SparkleIcon, } from '@finos/legend-art';
|
|
19
19
|
import { observer } from 'mobx-react-lite';
|
|
20
|
+
import { useState } from 'react';
|
|
21
|
+
import { assertErrorThrown, HttpStatus, NetworkClientError, } from '@finos/legend-shared';
|
|
20
22
|
import { DataSpaceEditorState } from '../../stores/DataSpaceEditorState.js';
|
|
21
23
|
import { dataSpace_setDescription, dataSpace_setTitle, } from '../../stores/studio/DSL_DataSpace_GraphModifierHelper.js';
|
|
22
24
|
import { DataSpaceDefaultExecutionContextSection } from './DataSpaceDefaultExecutionContextSection.js';
|
|
@@ -28,6 +30,7 @@ export const DataSpaceGeneralEditor = observer(() => {
|
|
|
28
30
|
const editorStore = useEditorStore();
|
|
29
31
|
const dataSpaceState = editorStore.tabManagerState.getCurrentEditorState(DataSpaceEditorState);
|
|
30
32
|
const dataSpace = dataSpaceState.dataSpace;
|
|
33
|
+
const isReadOnly = dataSpaceState.isReadOnly;
|
|
31
34
|
// Basic properties handlers
|
|
32
35
|
const handleTitleChange = (value) => {
|
|
33
36
|
dataSpace_setTitle(dataSpace, value);
|
|
@@ -35,6 +38,63 @@ export const DataSpaceGeneralEditor = observer(() => {
|
|
|
35
38
|
const handleDescriptionChange = (value) => {
|
|
36
39
|
dataSpace_setDescription(dataSpace, value);
|
|
37
40
|
};
|
|
38
|
-
|
|
41
|
+
// AI documentation suggestion
|
|
42
|
+
const legendAIUrl = editorStore.applicationStore.config.legendAIUrl;
|
|
43
|
+
const aiDocSuggester = legendAIUrl
|
|
44
|
+
? editorStore.pluginManager
|
|
45
|
+
.getApplicationPlugins()
|
|
46
|
+
.map((p) => p.getExtraDataSpaceDocumentationAISuggester?.bind(p))
|
|
47
|
+
.find(Boolean)
|
|
48
|
+
: undefined;
|
|
49
|
+
const [isSuggestingWithAI, setIsSuggestingWithAI] = useState(false);
|
|
50
|
+
const [aiDocSuggestion, setAIDocSuggestion] = useState(undefined);
|
|
51
|
+
const suggestDocumentationWithAI = async () => {
|
|
52
|
+
if (!aiDocSuggester || !legendAIUrl) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
LegendStudioTelemetryHelper.logEvent_DataSpaceLegendAISuggestLaunched(editorStore.applicationStore.telemetryService, dataSpace.path);
|
|
56
|
+
setIsSuggestingWithAI(true);
|
|
57
|
+
setAIDocSuggestion(undefined);
|
|
58
|
+
try {
|
|
59
|
+
const definitions = await editorStore.graphManagerState.graphManager.graphToPureCode(editorStore.graphManagerState.graph);
|
|
60
|
+
const suggestion = await aiDocSuggester({ definitions, data_space_name: dataSpace.path }, legendAIUrl);
|
|
61
|
+
setAIDocSuggestion(suggestion.description);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
assertErrorThrown(error);
|
|
65
|
+
LegendStudioTelemetryHelper.logEvent_DataSpaceLegendAISuggestFailure(editorStore.applicationStore.telemetryService, dataSpace.path, error.message);
|
|
66
|
+
if (error instanceof NetworkClientError &&
|
|
67
|
+
(error.response.status === HttpStatus.UNAUTHORIZED ||
|
|
68
|
+
error.response.status === HttpStatus.FORBIDDEN)) {
|
|
69
|
+
const docEntry = editorStore.applicationStore.documentationService.getDocEntry(LEGEND_STUDIO_DOCUMENTATION_KEY.LEGENDAI_HOW_TO_GET_ENTITLEMENTS);
|
|
70
|
+
if (docEntry?.url) {
|
|
71
|
+
error.message = `${error.message}. Please check how to get entitlements: ${docEntry.url}`;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
setIsSuggestingWithAI(false);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const applyAIDocSuggestion = () => {
|
|
81
|
+
if (!aiDocSuggestion) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
LegendStudioTelemetryHelper.logEvent_DataSpaceLegendAISuggestApplied(editorStore.applicationStore.telemetryService, dataSpace.path);
|
|
85
|
+
dataSpace_setDescription(dataSpace, aiDocSuggestion);
|
|
86
|
+
setAIDocSuggestion(undefined);
|
|
87
|
+
};
|
|
88
|
+
const discardAIDocSuggestion = () => {
|
|
89
|
+
LegendStudioTelemetryHelper.logEvent_DataSpaceLegendAISuggestDiscarded(editorStore.applicationStore.telemetryService, dataSpace.path);
|
|
90
|
+
setAIDocSuggestion(undefined);
|
|
91
|
+
};
|
|
92
|
+
return (_jsx(PanelContentLists, { className: "dataSpace-editor__general", children: _jsxs(PanelForm, { children: [_jsx(PanelFormTextField, { name: "Title", value: dataSpace.title ?? '', prompt: "Provide a title for this Data Product.", update: handleTitleChange, placeholder: "Enter title" }), _jsxs("div", { className: "panel__content__form__section", children: [_jsxs("div", { className: "panel__content__form__section__header__label", children: ["Description", aiDocSuggestion && (_jsxs("span", { className: "dataSpace-editor__ai-suggestion-badge", style: { marginLeft: '0.8rem' }, children: [_jsx(SparkleIcon, {}), "AI Suggestion"] })), aiDocSuggester && !aiDocSuggestion && (_jsxs("button", { className: "dataSpace-editor__ai-suggest-btn", style: { marginLeft: '0.8rem' }, onClick: () => {
|
|
93
|
+
suggestDocumentationWithAI().catch(editorStore.applicationStore.alertUnhandledError);
|
|
94
|
+
}, disabled: isSuggestingWithAI || isReadOnly, title: "Use AI to suggest a description for this data product", children: [_jsx(SparkleIcon, {}), _jsx("span", { children: isSuggestingWithAI ? 'Suggesting...' : 'Suggest with AI' })] }))] }), _jsx("div", { className: "panel__content__form__section__header__prompt", children: "Provide a description for this Data Product." }), _jsx(PanelLoadingIndicator, { isLoading: isSuggestingWithAI }), _jsx("textarea", { className: clsx('panel__content__form__section__textarea', {
|
|
95
|
+
'textarea--ai-suggested': Boolean(aiDocSuggestion),
|
|
96
|
+
}), spellCheck: false, disabled: isReadOnly, readOnly: Boolean(aiDocSuggestion), value: aiDocSuggestion ?? dataSpace.description ?? '', onChange: (event) => {
|
|
97
|
+
handleDescriptionChange(event.target.value);
|
|
98
|
+
}, placeholder: "Enter description" }), aiDocSuggestion && (_jsxs("div", { className: "dataSpace-editor__ai-suggestion__actions", children: [_jsx("button", { className: "btn btn--dark dataSpace-editor__ai-suggestion__apply-btn", onClick: applyAIDocSuggestion, title: "Apply AI suggestion to description", children: "Apply Suggestion" }), _jsx("button", { className: "btn dataSpace-editor__ai-suggestion__dismiss-btn", onClick: discardAIDocSuggestion, title: "Dismiss AI suggestion", children: "Dismiss" })] }))] }), _jsx(DataSpaceDefaultExecutionContextSection, {}), _jsx(DataSpaceDiagramsSection, {}), _jsx(DataSpaceElementsSection, {}), _jsx(DataspaceExecutablesSection, {}), _jsx(DataSpaceSupportInfoSection, {})] }) }));
|
|
39
99
|
});
|
|
40
100
|
//# sourceMappingURL=DataSpaceGeneralEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSpaceGeneralEditor.js","sourceRoot":"","sources":["../../../src/components/DataSpaceGeneralEditor/DataSpaceGeneralEditor.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"DataSpaceGeneralEditor.js","sourceRoot":"","sources":["../../../src/components/DataSpaceGeneralEditor/DataSpaceGeneralEditor.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license @finos/legend-extension-dsl-data-space-studio v0.1.
|
|
1
|
+
/** @license @finos/legend-extension-dsl-data-space-studio v0.1.338
|
|
2
2
|
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -14,4 +14,4 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
.template-query-promotor{height:100%;position:relative;background:var(--color-bg-app)}.template-query-promotor__body{height:calc(100% - 2.2rem);width:100%}.template-query-promotor__title{font-size:3.6rem;font-family:"Roboto Condensed",sans-serif;font-weight:700;color:var(--color-text-secondary);margin-bottom:1.8rem}.template-query-promotor__title__prompt{font-family:"Roboto Mono",monospace;font-size:1.4rem;padding-bottom:1rem;border-radius:.2rem 0 0 .2rem;color:var(--color-text-disabled)}.template-query-promotor__content{height:100%;width:calc(100% - 5rem)}.template-query-promotor__content__main{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:60vh;width:60vw}.template-query-promotor__actions{margin-top:.5rem;width:100%;display:flex;justify-content:flex-end}.template-query-promotor__group__header{display:flex;align-items:center;justify-content:center;height:1.8rem;width:13rem;padding:0 1rem;background:var(--color-bg-selected);color:var(--color-text-primary);font-weight:500;font-size:1.2rem;border-radius:.2rem .2rem 0 0}.template-query-promotor__group__content{padding:.5rem;border:.1rem solid var(--color-border-strong);border-radius:0 .2rem .2rem}.template-query-promotor__group--workspace .template-query-promotor__group__header{background:var(--color-purple-400)}.template-query-promotor__group--workspace .template-query-promotor__group__content{border-color:var(--color-purple-400)}.template-query-promotor__group--template .template-query-promotor__group__header{background:var(--color-blue-200)}.template-query-promotor__group--template .template-query-promotor__group__content{border-color:var(--color-blue-200)}.template-query-promotor__group+.template-query-promotor__group{margin-top:1.5rem}.template-query-promotor__input{display:flex}.template-query-promotor__input__label{display:flex;align-items:center;width:11rem;background:var(--color-bg-tag);font-family:"Roboto Mono",monospace;font-size:1.4rem;padding:0 1rem;border-radius:.2rem 0 0 .2rem;color:var(--color-text-disabled)}.template-query-promotor__input__icon{display:flex;align-items:center;justify-content:center;height:2.8rem;width:2.8rem;background:var(--color-bg-tag);border-radius:.2rem 0 0 .2rem}.template-query-promotor__input__icon svg{color:var(--color-text-disabled)}.template-query-promotor__input__icon--query,.template-query-promotor__input__icon--project,.template-query-promotor__input__icon--workspace{font-size:1.8rem}.template-query-promotor__input__input{flex:1 0}.template-query-promotor__input+.template-query-promotor__input{margin-top:.5rem}.template-query-promotor__next-btn{padding:1rem}.dataSpace-editor--dark__header{padding-left:0;background:var(--color-dark-grey-50)}.dataSpace-editor--dark__header__configs{display:flex;width:100%}.dataSpace-editor--dark__header__name{background:var(--color-dark-grey-100);border:.1rem solid var(--color-dark-grey-300);color:var(--color-light-grey-0)}.dataSpace-editor--dark__header__name::placeholder{color:var(--color-dark-grey-300)}.dataSpace-editor .panel__content__form__section__list__item{background-color:var(--color-bg-panel);margin-bottom:.5rem;padding:.5rem;border-radius:3px;width:fit-content}.dataSpace-editor .panel__content__form__section__list__item__content__label{color:var(--color-text-secondary);font-size:1.2rem}.dataSpace-editor .panel__content__form__section__list__item__content__title{color:var(--color-text-secondary);font-size:1.2rem}.dataSpace-editor .panel__content__form__section__list__item__content__form{display:flex;flex-direction:column;width:100%;margin-right:1rem}.dataSpace-editor .panel__content__form__section__list__item__content__form .panel__content__form__section{margin-bottom:.5rem}.dataSpace-editor .panel__content__form__section__list__item__content__form .panel__content__form__section:last-child{margin-bottom:0}.dataSpace-editor .panel__content__form__section__list__item__content__actions{display:flex;align-items:center;gap:.5rem}.dataSpace-editor .panel__content__form__section__list__item__content__actions__label{color:var(--color-text-secondary);font-size:1.2rem;margin-left:.5rem}.dataSpace-editor .panel__content__form__section__list__item__content__actions__btn{background:none;border:none;cursor:pointer;color:var(--color-text-secondary)}.dataSpace-editor .panel__content__form__section__list__item__content__actions__btn:hover{color:var(--color-text-primary)}.dataSpace-editor .panel__content__form__section__list__item__form{display:flex;flex-direction:column;margin-top:.5rem}.dataSpace-editor .panel__content__form__section__list__item__form .panel__content__form__section{margin-bottom:.5rem}.dataSpace-editor .panel__content__form__section__list__item__form .panel__content__form__section:last-child{margin-bottom:0}.dataSpace-editor .panel__content__form__section__list__new-item__input{height:fit-content;width:40rem;padding:0}.dataSpace-editor .panel__content__form__section__list__add{display:flex;align-items:center;margin-top:.5rem}.dataSpace-editor .panel__content__form__section__list__add__input{flex:1}.dataSpace-editor .panel__content__form__section__list__add__actions{margin-left:.5rem}.dataSpace-editor .panel__content__form__section__list__add__actions__btn{background:none;border:none;cursor:pointer;color:var(--color-text-secondary)}.dataSpace-editor .panel__content__form__section__list__add__actions__btn:hover{color:var(--color-text-primary)}.dataSpace-editor{background-color:var(--color-bg-panel)}.dataSpace-editor .panel__content{background-color:var(--color-bg-panel)}.dataSpace-editor .panel__header{background-color:var(--color-bg-panel-header)}.dataSpace-editor .panel__header__actions{gap:.5rem}.dataSpace-editor__general .panel__content__form__section__list__item{height:fit-content}.dataSpace-editor__general .panel__content__form__section__list__item__form{flex-direction:row}.dataSpace-editor__general .panel__content__form__section__list__item__content{display:flex;align-items:center}.dataSpace-editor__general .panel__content__form__section__list__item .panel__content__form__section{margin-top:0}.dataSpace-editor__general .panel__content__form__section__list__item .dataSpace-editor__general__diagrams__title{width:25rem}.dataSpace-editor__general .panel__content__form__section__list__item .dataSpace-editor__general__diagrams__description{width:40rem}.dataSpace-editor__general__elements .panel__content__form__section__list__item__content__label{width:35rem}.dataSpace-editor__general__elements .panel__content__form__section__list__item__content__actions-exclude{display:flex;align-items:center}.dataSpace-editor__general__elements .panel__content__form__section__list__item__content__actions-exclude__btn{padding:0}.dataSpace-editor__general__elements .panel__content__form__section__list__item__content__actions__btn{margin-left:1rem}.dataSpace-editor__general__diagrams .panel__content__form__section__list__item__content{flex-direction:column;align-items:start}.dataSpace-editor__general__diagrams .panel__content__form__section__list__item__content__actions__btn{margin-top:2.4rem}.dataSpace-editor__general__support-info__content{margin-top:1rem}.dataSpace-editor__general__support-info__new-email{display:flex;align-items:center;margin-right:.5rem}.dataSpace-editor__general .panel__content__form{max-width:unset}.dataSpace-editor__general .selector-input--dark{max-width:40rem}.execution-context-editor__form-section{display:flex;flex-direction:column;margin-bottom:1rem}.execution-context-editor__form-section__label{font-size:1.2rem;font-weight:500;margin-bottom:.5rem;color:var(--color-light-grey-200)}.execution-context-editor__form-section__content__input,.execution-context-editor__form-section__content__textarea{width:100%;padding:.5rem;background-color:var(--color-bg-panel);color:var(--color-text-secondary);border:1px solid var(--color-border-default);border-radius:2px}.execution-context-editor__form-section__content__textarea{min-height:100px;resize:vertical}.service-execution-editor__configuration__items{background-color:var(--color-bg-panel);padding:1rem;border-radius:3px}.service-execution-editor__execution{background-color:var(--color-bg-panel)}.service-multi-execution-editor__panel{background-color:var(--color-bg-panel);overflow-y:auto}.service-execution-editor__configuration__item__dropdown{background-color:var(--color-bg-panel);color:var(--color-text-secondary)}/*# sourceMappingURL=index.css.map */
|
|
17
|
+
.template-query-promotor{height:100%;position:relative;background:var(--color-bg-app)}.template-query-promotor__body{height:calc(100% - 2.2rem);width:100%}.template-query-promotor__title{font-size:3.6rem;font-family:"Roboto Condensed",sans-serif;font-weight:700;color:var(--color-text-secondary);margin-bottom:1.8rem}.template-query-promotor__title__prompt{font-family:"Roboto Mono",monospace;font-size:1.4rem;padding-bottom:1rem;border-radius:.2rem 0 0 .2rem;color:var(--color-text-disabled)}.template-query-promotor__content{height:100%;width:calc(100% - 5rem)}.template-query-promotor__content__main{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:60vh;width:60vw}.template-query-promotor__actions{margin-top:.5rem;width:100%;display:flex;justify-content:flex-end}.template-query-promotor__group__header{display:flex;align-items:center;justify-content:center;height:1.8rem;width:13rem;padding:0 1rem;background:var(--color-bg-selected);color:var(--color-text-primary);font-weight:500;font-size:1.2rem;border-radius:.2rem .2rem 0 0}.template-query-promotor__group__content{padding:.5rem;border:.1rem solid var(--color-border-strong);border-radius:0 .2rem .2rem}.template-query-promotor__group--workspace .template-query-promotor__group__header{background:var(--color-purple-400)}.template-query-promotor__group--workspace .template-query-promotor__group__content{border-color:var(--color-purple-400)}.template-query-promotor__group--template .template-query-promotor__group__header{background:var(--color-blue-200)}.template-query-promotor__group--template .template-query-promotor__group__content{border-color:var(--color-blue-200)}.template-query-promotor__group+.template-query-promotor__group{margin-top:1.5rem}.template-query-promotor__input{display:flex}.template-query-promotor__input__label{display:flex;align-items:center;width:11rem;background:var(--color-bg-tag);font-family:"Roboto Mono",monospace;font-size:1.4rem;padding:0 1rem;border-radius:.2rem 0 0 .2rem;color:var(--color-text-disabled)}.template-query-promotor__input__icon{display:flex;align-items:center;justify-content:center;height:2.8rem;width:2.8rem;background:var(--color-bg-tag);border-radius:.2rem 0 0 .2rem}.template-query-promotor__input__icon svg{color:var(--color-text-disabled)}.template-query-promotor__input__icon--query,.template-query-promotor__input__icon--project,.template-query-promotor__input__icon--workspace{font-size:1.8rem}.template-query-promotor__input__input{flex:1 0}.template-query-promotor__input+.template-query-promotor__input{margin-top:.5rem}.template-query-promotor__next-btn{padding:1rem}.dataSpace-editor--dark__header{padding-left:0;background:var(--color-dark-grey-50)}.dataSpace-editor--dark__header__configs{display:flex;width:100%}.dataSpace-editor--dark__header__name{background:var(--color-dark-grey-100);border:.1rem solid var(--color-dark-grey-300);color:var(--color-light-grey-0)}.dataSpace-editor--dark__header__name::placeholder{color:var(--color-dark-grey-300)}.dataSpace-editor .panel__content__form__section__list__item{background-color:var(--color-bg-panel);margin-bottom:.5rem;padding:.5rem;border-radius:3px;width:fit-content}.dataSpace-editor .panel__content__form__section__list__item__content__label{color:var(--color-text-secondary);font-size:1.2rem}.dataSpace-editor .panel__content__form__section__list__item__content__title{color:var(--color-text-secondary);font-size:1.2rem}.dataSpace-editor .panel__content__form__section__list__item__content__form{display:flex;flex-direction:column;width:100%;margin-right:1rem}.dataSpace-editor .panel__content__form__section__list__item__content__form .panel__content__form__section{margin-bottom:.5rem}.dataSpace-editor .panel__content__form__section__list__item__content__form .panel__content__form__section:last-child{margin-bottom:0}.dataSpace-editor .panel__content__form__section__list__item__content__actions{display:flex;align-items:center;gap:.5rem}.dataSpace-editor .panel__content__form__section__list__item__content__actions__label{color:var(--color-text-secondary);font-size:1.2rem;margin-left:.5rem}.dataSpace-editor .panel__content__form__section__list__item__content__actions__btn{background:none;border:none;cursor:pointer;color:var(--color-text-secondary)}.dataSpace-editor .panel__content__form__section__list__item__content__actions__btn:hover{color:var(--color-text-primary)}.dataSpace-editor .panel__content__form__section__list__item__form{display:flex;flex-direction:column;margin-top:.5rem}.dataSpace-editor .panel__content__form__section__list__item__form .panel__content__form__section{margin-bottom:.5rem}.dataSpace-editor .panel__content__form__section__list__item__form .panel__content__form__section:last-child{margin-bottom:0}.dataSpace-editor .panel__content__form__section__list__new-item__input{height:fit-content;width:40rem;padding:0}.dataSpace-editor .panel__content__form__section__list__add{display:flex;align-items:center;margin-top:.5rem}.dataSpace-editor .panel__content__form__section__list__add__input{flex:1}.dataSpace-editor .panel__content__form__section__list__add__actions{margin-left:.5rem}.dataSpace-editor .panel__content__form__section__list__add__actions__btn{background:none;border:none;cursor:pointer;color:var(--color-text-secondary)}.dataSpace-editor .panel__content__form__section__list__add__actions__btn:hover{color:var(--color-text-primary)}.dataSpace-editor{background-color:var(--color-bg-panel)}.dataSpace-editor .panel__content{background-color:var(--color-bg-panel)}.dataSpace-editor .panel__header{background-color:var(--color-bg-panel-header)}.dataSpace-editor .panel__header__actions{gap:.5rem}.dataSpace-editor__general .panel__content__form__section__list__item{height:fit-content}.dataSpace-editor__general .panel__content__form__section__list__item__form{flex-direction:row}.dataSpace-editor__general .panel__content__form__section__list__item__content{display:flex;align-items:center}.dataSpace-editor__general .panel__content__form__section__list__item .panel__content__form__section{margin-top:0}.dataSpace-editor__general .panel__content__form__section__list__item .dataSpace-editor__general__diagrams__title{width:25rem}.dataSpace-editor__general .panel__content__form__section__list__item .dataSpace-editor__general__diagrams__description{width:40rem}.dataSpace-editor__general__elements .panel__content__form__section__list__item__content__label{width:35rem}.dataSpace-editor__general__elements .panel__content__form__section__list__item__content__actions-exclude{display:flex;align-items:center}.dataSpace-editor__general__elements .panel__content__form__section__list__item__content__actions-exclude__btn{padding:0}.dataSpace-editor__general__elements .panel__content__form__section__list__item__content__actions__btn{margin-left:1rem}.dataSpace-editor__general__diagrams .panel__content__form__section__list__item__content{flex-direction:column;align-items:start}.dataSpace-editor__general__diagrams .panel__content__form__section__list__item__content__actions__btn{margin-top:2.4rem}.dataSpace-editor__general__support-info__content{margin-top:1rem}.dataSpace-editor__general__support-info__new-email{display:flex;align-items:center;margin-right:.5rem}.dataSpace-editor__general .panel__content__form{max-width:unset}.dataSpace-editor__general .selector-input--dark{max-width:40rem}.dataSpace-editor__general .textarea--ai-suggested{border-color:var(--color-category-ai-suggestion) !important;color:var(--color-category-ai-suggestion) !important}.dataSpace-editor__ai-suggest-btn{display:flex;align-items:center;display:inline-flex;gap:.4rem;height:2rem;padding:0 .6rem;font-size:1.2rem;border:none;border-radius:.2rem;background:var(--color-accent);color:var(--color-text-on-accent);cursor:pointer}.dataSpace-editor__ai-suggest-btn svg{font-size:1.2rem}.dataSpace-editor__ai-suggest-btn:hover{background:var(--color-accent-hover)}.dataSpace-editor__ai-suggest-btn[disabled]{opacity:.5;cursor:default}.dataSpace-editor__ai-suggestion-badge{display:flex;align-items:center;display:inline-flex;gap:.4rem;font-size:1rem;font-weight:500;color:var(--color-category-ai-suggestion)}.dataSpace-editor__ai-suggestion-badge svg{font-size:1.2rem}.dataSpace-editor__ai-suggestion__actions{display:flex;align-items:center;gap:.5rem;margin-top:.6rem}.dataSpace-editor__ai-suggestion__apply-btn{height:2.8rem;padding:0 1rem;font-size:1.2rem}.dataSpace-editor__ai-suggestion__dismiss-btn{height:2.8rem;padding:0 1rem;font-size:1.2rem;background:var(--color-dark-grey-200);color:var(--color-light-grey-200)}.dataSpace-editor__ai-suggestion__dismiss-btn:hover{background:var(--color-dark-grey-250)}.execution-context-editor__form-section{display:flex;flex-direction:column;margin-bottom:1rem}.execution-context-editor__form-section__label{font-size:1.2rem;font-weight:500;margin-bottom:.5rem;color:var(--color-light-grey-200)}.execution-context-editor__form-section__content__input,.execution-context-editor__form-section__content__textarea{width:100%;padding:.5rem;background-color:var(--color-bg-panel);color:var(--color-text-secondary);border:1px solid var(--color-border-default);border-radius:2px}.execution-context-editor__form-section__content__textarea{min-height:100px;resize:vertical}.service-execution-editor__configuration__items{background-color:var(--color-bg-panel);padding:1rem;border-radius:3px}.service-execution-editor__execution{background-color:var(--color-bg-panel)}.service-multi-execution-editor__panel{background-color:var(--color-bg-panel);overflow-y:auto}.service-execution-editor__configuration__item__dropdown{background-color:var(--color-bg-panel);color:var(--color-text-secondary)}/*# sourceMappingURL=index.css.map */
|
package/lib/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../style/_data-space-template-query-promotor.scss","../../../node_modules/@finos/legend-art/scss/_mixins.scss","../style/_data-space-editor.scss","../style/components/_execution-context-editor.scss"],"names":[],"mappings":"AAkBA,yBACE,YACA,kBACA,+BAEA,+BACE,2BACA,WAGF,gCACE,iBACA,0CACA,gBACA,kCACA,qBAEA,wCACE,oCACA,iBACA,oBACA,8BACA,iCAIJ,kCACE,YACA,wBAGF,wCChCA,kBACA,QACA,SACA,gCDgCE,YACA,WAGF,kCACE,iBACA,WACA,aACA,yBAIA,wCCxCF,aACA,mBACA,uBDyCI,cACA,YACA,eACA,oCACA,gCACA,gBACA,iBACA,8BAGF,yCACE,cACA,8CACA,4BAGF,mFACE,mCAGF,oFACE,qCAGF,kFACE,iCAGF,mFACE,mCAGF,gEACE,kBAIJ,gCACE,aAEA,uCC7EF,aACA,mBD+EI,YACA,+BACA,oCACA,iBACA,eACA,8BACA,iCAGF,sCC/FF,aACA,mBACA,uBDgGI,cACA,aACA,+BACA,8BAEA,0CACE,iCAIJ,6IAGE,iBAGF,uCACE,SAGF,gEACE,iBAIJ,mCACE,aEjIF,gCACE,eACA,qCAEA,yCACE,aACA,WAGF,sCACE,sCACA,8CACA,gCAGF,mDACE,iCAUJ,6DACE,uCACA,oBACA,cACA,kBACA,kBAGE,6EACE,kCACA,iBAGF,6EACE,kCACA,iBAGF,4EACE,aACA,sBACA,WACA,kBAEA,2GACE,oBAEA,sHACE,gBAKN,+EACE,aACA,mBACA,UAEA,sFACE,kCACA,iBACA,kBAGF,oFACE,gBACA,YACA,eACA,kCAEA,0FACE,gCAMR,mEACE,aACA,sBACA,iBAEA,kGACE,oBAEA,6GACE,gBAON,wEACE,mBACA,YACA,UAIJ,4DACE,aACA,mBACA,iBAEA,mEACE,OAGF,qEACE,kBAEA,0EACE,gBACA,YACA,eACA,kCAEA,gFACE,gCAOV,kBACE,uCAEA,kCACE,uCAGF,iCACE,8CAGF,0CACE,UAIA,sEACE,mBAEA,4EACE,mBAGF,+EACE,aACA,mBAGF,qGACE,aAGF,kHACE,YAGF,wHACE,YAKF,gGACE,YAIA,0GACE,aACA,mBAEA,+GACE,UAIJ,uGACE,iBAMJ,yFACE,sBACA,kBAEA,uGACE,kBAMJ,kDACE,gBAGF,oDACE,aACA,mBACA,mBAIJ,iDACE,gBAGF,iDACE,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../style/_data-space-template-query-promotor.scss","../../../node_modules/@finos/legend-art/scss/_mixins.scss","../style/_data-space-editor.scss","../style/components/_execution-context-editor.scss"],"names":[],"mappings":"AAkBA,yBACE,YACA,kBACA,+BAEA,+BACE,2BACA,WAGF,gCACE,iBACA,0CACA,gBACA,kCACA,qBAEA,wCACE,oCACA,iBACA,oBACA,8BACA,iCAIJ,kCACE,YACA,wBAGF,wCChCA,kBACA,QACA,SACA,gCDgCE,YACA,WAGF,kCACE,iBACA,WACA,aACA,yBAIA,wCCxCF,aACA,mBACA,uBDyCI,cACA,YACA,eACA,oCACA,gCACA,gBACA,iBACA,8BAGF,yCACE,cACA,8CACA,4BAGF,mFACE,mCAGF,oFACE,qCAGF,kFACE,iCAGF,mFACE,mCAGF,gEACE,kBAIJ,gCACE,aAEA,uCC7EF,aACA,mBD+EI,YACA,+BACA,oCACA,iBACA,eACA,8BACA,iCAGF,sCC/FF,aACA,mBACA,uBDgGI,cACA,aACA,+BACA,8BAEA,0CACE,iCAIJ,6IAGE,iBAGF,uCACE,SAGF,gEACE,iBAIJ,mCACE,aEjIF,gCACE,eACA,qCAEA,yCACE,aACA,WAGF,sCACE,sCACA,8CACA,gCAGF,mDACE,iCAUJ,6DACE,uCACA,oBACA,cACA,kBACA,kBAGE,6EACE,kCACA,iBAGF,6EACE,kCACA,iBAGF,4EACE,aACA,sBACA,WACA,kBAEA,2GACE,oBAEA,sHACE,gBAKN,+EACE,aACA,mBACA,UAEA,sFACE,kCACA,iBACA,kBAGF,oFACE,gBACA,YACA,eACA,kCAEA,0FACE,gCAMR,mEACE,aACA,sBACA,iBAEA,kGACE,oBAEA,6GACE,gBAON,wEACE,mBACA,YACA,UAIJ,4DACE,aACA,mBACA,iBAEA,mEACE,OAGF,qEACE,kBAEA,0EACE,gBACA,YACA,eACA,kCAEA,gFACE,gCAOV,kBACE,uCAEA,kCACE,uCAGF,iCACE,8CAGF,0CACE,UAIA,sEACE,mBAEA,4EACE,mBAGF,+EACE,aACA,mBAGF,qGACE,aAGF,kHACE,YAGF,wHACE,YAKF,gGACE,YAIA,0GACE,aACA,mBAEA,+GACE,UAIJ,uGACE,iBAMJ,yFACE,sBACA,kBAEA,uGACE,kBAMJ,kDACE,gBAGF,oDACE,aACA,mBACA,mBAIJ,iDACE,gBAGF,iDACE,gBAGF,mDACE,4DACA,qDAKN,kCD7NE,aACA,mBC+NA,oBACA,UACA,YACA,gBACA,iBACA,YACA,oBACA,+BACA,kCACA,eAEA,sCACE,iBAGF,wCACE,qCAGF,4CACE,WACA,eAIJ,uCDzPE,aACA,mBC2PA,oBACA,UACA,eACA,gBACA,0CAEA,2CACE,iBAIJ,0CDvQE,aACA,mBCyQA,UACA,iBAGF,4CACE,cACA,eACA,iBAGF,8CACE,cACA,eACA,iBACA,sCACA,kCAEA,oDACE,sCCzSF,wCACE,aACA,sBACA,mBAEA,+CACE,iBACA,gBACA,oBACA,kCAIA,mHAEE,WACA,cACA,uCACA,kCACA,6CACA,kBAGF,2DACE,iBACA,gBAMR,gDACE,uCACA,aACA,kBAGF,qCACE,uCAGF,uCACE,uCACA,gBAWA,yDACE,uCACA","file":"index.css"}
|
package/lib/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-extension-dsl-data-space-studio",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.338",
|
|
4
4
|
"description": "Legend extension for Data Space DSL - Studio",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -42,16 +42,16 @@
|
|
|
42
42
|
"test:watch": "jest --watch"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@finos/legend-application": "16.0.
|
|
46
|
-
"@finos/legend-application-studio": "28.21.
|
|
47
|
-
"@finos/legend-art": "7.1.
|
|
48
|
-
"@finos/legend-code-editor": "2.0.
|
|
49
|
-
"@finos/legend-extension-dsl-data-space": "10.4.
|
|
50
|
-
"@finos/legend-graph": "32.6.
|
|
51
|
-
"@finos/legend-query-builder": "4.18.
|
|
52
|
-
"@finos/legend-server-depot": "6.1.
|
|
53
|
-
"@finos/legend-server-sdlc": "5.4.
|
|
54
|
-
"@finos/legend-shared": "11.0.
|
|
45
|
+
"@finos/legend-application": "16.0.118",
|
|
46
|
+
"@finos/legend-application-studio": "28.21.29",
|
|
47
|
+
"@finos/legend-art": "7.1.158",
|
|
48
|
+
"@finos/legend-code-editor": "2.0.193",
|
|
49
|
+
"@finos/legend-extension-dsl-data-space": "10.4.242",
|
|
50
|
+
"@finos/legend-graph": "32.6.24",
|
|
51
|
+
"@finos/legend-query-builder": "4.18.32",
|
|
52
|
+
"@finos/legend-server-depot": "6.1.17",
|
|
53
|
+
"@finos/legend-server-sdlc": "5.4.7",
|
|
54
|
+
"@finos/legend-shared": "11.0.27",
|
|
55
55
|
"@types/react": "19.0.10",
|
|
56
56
|
"mobx": "6.13.6",
|
|
57
57
|
"mobx-react-lite": "4.1.0",
|
|
@@ -14,13 +14,27 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { useEditorStore } from '@finos/legend-application-studio';
|
|
18
17
|
import {
|
|
18
|
+
useEditorStore,
|
|
19
|
+
LEGEND_STUDIO_DOCUMENTATION_KEY,
|
|
20
|
+
LegendStudioTelemetryHelper,
|
|
21
|
+
type DSL_DataSpace_LegendStudioApplicationPlugin_Extension,
|
|
22
|
+
} from '@finos/legend-application-studio';
|
|
23
|
+
import {
|
|
24
|
+
clsx,
|
|
19
25
|
PanelContentLists,
|
|
20
26
|
PanelForm,
|
|
21
27
|
PanelFormTextField,
|
|
28
|
+
PanelLoadingIndicator,
|
|
29
|
+
SparkleIcon,
|
|
22
30
|
} from '@finos/legend-art';
|
|
23
31
|
import { observer } from 'mobx-react-lite';
|
|
32
|
+
import { useState } from 'react';
|
|
33
|
+
import {
|
|
34
|
+
assertErrorThrown,
|
|
35
|
+
HttpStatus,
|
|
36
|
+
NetworkClientError,
|
|
37
|
+
} from '@finos/legend-shared';
|
|
24
38
|
import { DataSpaceEditorState } from '../../stores/DataSpaceEditorState.js';
|
|
25
39
|
import {
|
|
26
40
|
dataSpace_setDescription,
|
|
@@ -38,6 +52,7 @@ export const DataSpaceGeneralEditor = observer(() => {
|
|
|
38
52
|
const dataSpaceState =
|
|
39
53
|
editorStore.tabManagerState.getCurrentEditorState(DataSpaceEditorState);
|
|
40
54
|
const dataSpace = dataSpaceState.dataSpace;
|
|
55
|
+
const isReadOnly = dataSpaceState.isReadOnly;
|
|
41
56
|
|
|
42
57
|
// Basic properties handlers
|
|
43
58
|
const handleTitleChange = (value: string | undefined): void => {
|
|
@@ -48,6 +63,86 @@ export const DataSpaceGeneralEditor = observer(() => {
|
|
|
48
63
|
dataSpace_setDescription(dataSpace, value);
|
|
49
64
|
};
|
|
50
65
|
|
|
66
|
+
// AI documentation suggestion
|
|
67
|
+
const legendAIUrl = editorStore.applicationStore.config.legendAIUrl;
|
|
68
|
+
const aiDocSuggester = legendAIUrl
|
|
69
|
+
? editorStore.pluginManager
|
|
70
|
+
.getApplicationPlugins()
|
|
71
|
+
.map((p) =>
|
|
72
|
+
(
|
|
73
|
+
p as DSL_DataSpace_LegendStudioApplicationPlugin_Extension
|
|
74
|
+
).getExtraDataSpaceDocumentationAISuggester?.bind(p),
|
|
75
|
+
)
|
|
76
|
+
.find(Boolean)
|
|
77
|
+
: undefined;
|
|
78
|
+
const [isSuggestingWithAI, setIsSuggestingWithAI] = useState(false);
|
|
79
|
+
const [aiDocSuggestion, setAIDocSuggestion] = useState<string | undefined>(
|
|
80
|
+
undefined,
|
|
81
|
+
);
|
|
82
|
+
const suggestDocumentationWithAI = async (): Promise<void> => {
|
|
83
|
+
if (!aiDocSuggester || !legendAIUrl) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
LegendStudioTelemetryHelper.logEvent_DataSpaceLegendAISuggestLaunched(
|
|
87
|
+
editorStore.applicationStore.telemetryService,
|
|
88
|
+
dataSpace.path,
|
|
89
|
+
);
|
|
90
|
+
setIsSuggestingWithAI(true);
|
|
91
|
+
setAIDocSuggestion(undefined);
|
|
92
|
+
try {
|
|
93
|
+
const definitions =
|
|
94
|
+
await editorStore.graphManagerState.graphManager.graphToPureCode(
|
|
95
|
+
editorStore.graphManagerState.graph,
|
|
96
|
+
);
|
|
97
|
+
const suggestion = await aiDocSuggester(
|
|
98
|
+
{ definitions, data_space_name: dataSpace.path },
|
|
99
|
+
legendAIUrl,
|
|
100
|
+
);
|
|
101
|
+
setAIDocSuggestion(suggestion.description);
|
|
102
|
+
} catch (error) {
|
|
103
|
+
assertErrorThrown(error);
|
|
104
|
+
LegendStudioTelemetryHelper.logEvent_DataSpaceLegendAISuggestFailure(
|
|
105
|
+
editorStore.applicationStore.telemetryService,
|
|
106
|
+
dataSpace.path,
|
|
107
|
+
error.message,
|
|
108
|
+
);
|
|
109
|
+
if (
|
|
110
|
+
error instanceof NetworkClientError &&
|
|
111
|
+
(error.response.status === HttpStatus.UNAUTHORIZED ||
|
|
112
|
+
error.response.status === HttpStatus.FORBIDDEN)
|
|
113
|
+
) {
|
|
114
|
+
const docEntry =
|
|
115
|
+
editorStore.applicationStore.documentationService.getDocEntry(
|
|
116
|
+
LEGEND_STUDIO_DOCUMENTATION_KEY.LEGENDAI_HOW_TO_GET_ENTITLEMENTS,
|
|
117
|
+
);
|
|
118
|
+
if (docEntry?.url) {
|
|
119
|
+
error.message = `${error.message}. Please check how to get entitlements: ${docEntry.url}`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
throw error;
|
|
123
|
+
} finally {
|
|
124
|
+
setIsSuggestingWithAI(false);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
const applyAIDocSuggestion = (): void => {
|
|
128
|
+
if (!aiDocSuggestion) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
LegendStudioTelemetryHelper.logEvent_DataSpaceLegendAISuggestApplied(
|
|
132
|
+
editorStore.applicationStore.telemetryService,
|
|
133
|
+
dataSpace.path,
|
|
134
|
+
);
|
|
135
|
+
dataSpace_setDescription(dataSpace, aiDocSuggestion);
|
|
136
|
+
setAIDocSuggestion(undefined);
|
|
137
|
+
};
|
|
138
|
+
const discardAIDocSuggestion = (): void => {
|
|
139
|
+
LegendStudioTelemetryHelper.logEvent_DataSpaceLegendAISuggestDiscarded(
|
|
140
|
+
editorStore.applicationStore.telemetryService,
|
|
141
|
+
dataSpace.path,
|
|
142
|
+
);
|
|
143
|
+
setAIDocSuggestion(undefined);
|
|
144
|
+
};
|
|
145
|
+
|
|
51
146
|
return (
|
|
52
147
|
<PanelContentLists className="dataSpace-editor__general">
|
|
53
148
|
<PanelForm>
|
|
@@ -58,13 +153,73 @@ export const DataSpaceGeneralEditor = observer(() => {
|
|
|
58
153
|
update={handleTitleChange}
|
|
59
154
|
placeholder="Enter title"
|
|
60
155
|
/>
|
|
61
|
-
<
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
156
|
+
<div className="panel__content__form__section">
|
|
157
|
+
<div className="panel__content__form__section__header__label">
|
|
158
|
+
Description
|
|
159
|
+
{aiDocSuggestion && (
|
|
160
|
+
<span
|
|
161
|
+
className="dataSpace-editor__ai-suggestion-badge"
|
|
162
|
+
style={{ marginLeft: '0.8rem' }}
|
|
163
|
+
>
|
|
164
|
+
<SparkleIcon />
|
|
165
|
+
AI Suggestion
|
|
166
|
+
</span>
|
|
167
|
+
)}
|
|
168
|
+
{aiDocSuggester && !aiDocSuggestion && (
|
|
169
|
+
<button
|
|
170
|
+
className="dataSpace-editor__ai-suggest-btn"
|
|
171
|
+
style={{ marginLeft: '0.8rem' }}
|
|
172
|
+
onClick={(): void => {
|
|
173
|
+
suggestDocumentationWithAI().catch(
|
|
174
|
+
editorStore.applicationStore.alertUnhandledError,
|
|
175
|
+
);
|
|
176
|
+
}}
|
|
177
|
+
disabled={isSuggestingWithAI || isReadOnly}
|
|
178
|
+
title="Use AI to suggest a description for this data product"
|
|
179
|
+
>
|
|
180
|
+
<SparkleIcon />
|
|
181
|
+
<span>
|
|
182
|
+
{isSuggestingWithAI ? 'Suggesting...' : 'Suggest with AI'}
|
|
183
|
+
</span>
|
|
184
|
+
</button>
|
|
185
|
+
)}
|
|
186
|
+
</div>
|
|
187
|
+
<div className="panel__content__form__section__header__prompt">
|
|
188
|
+
Provide a description for this Data Product.
|
|
189
|
+
</div>
|
|
190
|
+
<PanelLoadingIndicator isLoading={isSuggestingWithAI} />
|
|
191
|
+
<textarea
|
|
192
|
+
className={clsx('panel__content__form__section__textarea', {
|
|
193
|
+
'textarea--ai-suggested': Boolean(aiDocSuggestion),
|
|
194
|
+
})}
|
|
195
|
+
spellCheck={false}
|
|
196
|
+
disabled={isReadOnly}
|
|
197
|
+
readOnly={Boolean(aiDocSuggestion)}
|
|
198
|
+
value={aiDocSuggestion ?? dataSpace.description ?? ''}
|
|
199
|
+
onChange={(event) => {
|
|
200
|
+
handleDescriptionChange(event.target.value);
|
|
201
|
+
}}
|
|
202
|
+
placeholder="Enter description"
|
|
203
|
+
/>
|
|
204
|
+
{aiDocSuggestion && (
|
|
205
|
+
<div className="dataSpace-editor__ai-suggestion__actions">
|
|
206
|
+
<button
|
|
207
|
+
className="btn btn--dark dataSpace-editor__ai-suggestion__apply-btn"
|
|
208
|
+
onClick={applyAIDocSuggestion}
|
|
209
|
+
title="Apply AI suggestion to description"
|
|
210
|
+
>
|
|
211
|
+
Apply Suggestion
|
|
212
|
+
</button>
|
|
213
|
+
<button
|
|
214
|
+
className="btn dataSpace-editor__ai-suggestion__dismiss-btn"
|
|
215
|
+
onClick={discardAIDocSuggestion}
|
|
216
|
+
title="Dismiss AI suggestion"
|
|
217
|
+
>
|
|
218
|
+
Dismiss
|
|
219
|
+
</button>
|
|
220
|
+
</div>
|
|
221
|
+
)}
|
|
222
|
+
</div>
|
|
68
223
|
<DataSpaceDefaultExecutionContextSection />
|
|
69
224
|
<DataSpaceDiagramsSection />
|
|
70
225
|
<DataSpaceElementsSection />
|