@finos/legend-application-studio 28.18.145 → 28.18.147
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/editor/editor-group/dataProduct/DataPoductEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/DataPoductEditor.js +31 -7
- package/lib/components/editor/editor-group/dataProduct/DataPoductEditor.js.map +1 -1
- package/lib/components/editor/editor-group/function-activator/FunctionEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/function-activator/FunctionEditor.js +7 -4
- package/lib/components/editor/editor-group/function-activator/FunctionEditor.js.map +1 -1
- package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.js +21 -16
- package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.js.map +1 -1
- package/lib/components/editor/ingest-definition-editor.css +1 -0
- package/lib/components/editor/ingest-definition-editor.css.map +1 -0
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/editor/GraphEditFormModeState.d.ts.map +1 -1
- package/lib/stores/editor/GraphEditFormModeState.js +1 -0
- package/lib/stores/editor/GraphEditFormModeState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.js +7 -33
- package/lib/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.js.map +1 -1
- package/lib/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.d.ts +1 -0
- package/lib/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.d.ts.map +1 -1
- package/lib/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.js +3 -0
- package/lib/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.js.map +1 -1
- package/lib/stores/ingestion/IngestDeploymentServerClient.d.ts +2 -0
- package/lib/stores/ingestion/IngestDeploymentServerClient.d.ts.map +1 -1
- package/lib/stores/ingestion/IngestDeploymentServerClient.js +7 -3
- package/lib/stores/ingestion/IngestDeploymentServerClient.js.map +1 -1
- package/lib/stores/ingestion/IngestionDeploymentResponse.d.ts +1 -0
- package/lib/stores/ingestion/IngestionDeploymentResponse.d.ts.map +1 -1
- package/lib/stores/ingestion/IngestionDeploymentResponse.js +1 -0
- package/lib/stores/ingestion/IngestionDeploymentResponse.js.map +1 -1
- package/lib/stores/ingestion/IngestionManager.d.ts +1 -0
- package/lib/stores/ingestion/IngestionManager.d.ts.map +1 -1
- package/lib/stores/ingestion/IngestionManager.js +11 -1
- package/lib/stores/ingestion/IngestionManager.js.map +1 -1
- package/package.json +3 -3
- package/src/components/editor/editor-group/dataProduct/DataPoductEditor.tsx +111 -29
- package/src/components/editor/editor-group/function-activator/FunctionEditor.tsx +12 -5
- package/src/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.tsx +82 -53
- package/src/stores/editor/GraphEditFormModeState.ts +1 -0
- package/src/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.ts +9 -41
- package/src/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.ts +6 -0
- package/src/stores/ingestion/IngestDeploymentServerClient.ts +14 -3
- package/src/stores/ingestion/IngestionDeploymentResponse.ts +1 -0
- package/src/stores/ingestion/IngestionManager.ts +18 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"IngestionDeploymentResponse.d.ts","sourceRoot":"","sources":["../../../src/stores/ingestion/IngestionDeploymentResponse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAG9E,oBAAY,wCAAwC;IAClD,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,qBAAa,gCAAgC;IAC3C,MAAM,EAAG,wCAAwC,CAAC;CACnD;AAED,qBAAa,kCAAkC;IAC7C,MAAM,EAAG,wCAAwC,CAAC;IAClD,OAAO,EAAG,WAAW,CAAC;IAEtB,MAAM,CAAC,QAAQ,CAAC,aAAa,2DAI3B;CACH;AAED,eAAO,MAAM,wCAAwC,GACnD,MAAM,WAAW,CAAC,kCAAkC,CAAC,KACpD,kCAOF,CAAC;AAEF,qBAAa,kCAAkC;IAC7C,mBAAmB,EAAG,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"IngestionDeploymentResponse.d.ts","sourceRoot":"","sources":["../../../src/stores/ingestion/IngestionDeploymentResponse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAG9E,oBAAY,wCAAwC;IAClD,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,qBAAa,gCAAgC;IAC3C,MAAM,EAAG,wCAAwC,CAAC;CACnD;AAED,qBAAa,kCAAkC;IAC7C,MAAM,EAAG,wCAAwC,CAAC;IAClD,OAAO,EAAG,WAAW,CAAC;IAEtB,MAAM,CAAC,QAAQ,CAAC,aAAa,2DAI3B;CACH;AAED,eAAO,MAAM,wCAAwC,GACnD,MAAM,WAAW,CAAC,kCAAkC,CAAC,KACpD,kCAOF,CAAC;AAEF,qBAAa,kCAAkC;IAC7C,mBAAmB,EAAG,MAAM,CAAC;IAC7B,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IAExC,MAAM,CAAC,QAAQ,CAAC,aAAa,2DAI3B;CACH;AAED,qBAAa,6BAA6B;IACxC,kBAAkB,EAAE,kCAAkC,CAAC;IACvD,kBAAkB,EAAE,kCAAkC,GAAG,SAAS,CAAC;gBAGjE,kBAAkB,EAAE,kCAAkC,EACtD,kBAAkB,EAAE,kCAAkC,GAAG,SAAS;CAKrE"}
|
@@ -40,6 +40,7 @@ export const createIngestDefinitionValidationResponse = (json) => {
|
|
40
40
|
};
|
41
41
|
export class IngestDefinitionDeploymentResponse {
|
42
42
|
ingestDefinitionUrn;
|
43
|
+
write_location;
|
43
44
|
static serialization = new SerializationFactory(createModelSchema(IngestDefinitionDeploymentResponse, {
|
44
45
|
ingestDefinitionUrn: primitive(),
|
45
46
|
}));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"IngestionDeploymentResponse.js","sourceRoot":"","sources":["../../../src/stores/ingestion/IngestionDeploymentResponse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAoB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,CAAN,IAAY,wCAIX;AAJD,WAAY,wCAAwC;IAClD,uEAA2B,CAAA;IAC3B,+DAAmB,CAAA;IACnB,+DAAmB,CAAA;AACrB,CAAC,EAJW,wCAAwC,KAAxC,wCAAwC,QAInD;AAED,MAAM,OAAO,gCAAgC;IAC3C,MAAM,CAA4C;CACnD;AAED,MAAM,OAAO,kCAAkC;IAC7C,MAAM,CAA4C;IAClD,OAAO,CAAe;IAEtB,MAAM,CAAU,aAAa,GAAG,IAAI,oBAAoB,CACtD,iBAAiB,CAAC,kCAAkC,EAAE;QACpD,MAAM,EAAE,SAAS,EAAE;KACpB,CAAC,CACH,CAAC;;AAGJ,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,IAAqD,EACjB,EAAE;IACtC,MAAM,kCAAkC,GACtC,IAAI,kCAAkC,EAAE,CAAC;IAC3C,kCAAkC,CAAC,MAAM;QACvC,IAAI,CAAC,MAAkD,CAAC;IAC1D,kCAAkC,CAAC,OAAO,GAAG,IAAI,CAAC;IAClD,OAAO,kCAAkC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,OAAO,kCAAkC;IAC7C,mBAAmB,CAAU;
|
1
|
+
{"version":3,"file":"IngestionDeploymentResponse.js","sourceRoot":"","sources":["../../../src/stores/ingestion/IngestionDeploymentResponse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,oBAAoB,EAAoB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,CAAN,IAAY,wCAIX;AAJD,WAAY,wCAAwC;IAClD,uEAA2B,CAAA;IAC3B,+DAAmB,CAAA;IACnB,+DAAmB,CAAA;AACrB,CAAC,EAJW,wCAAwC,KAAxC,wCAAwC,QAInD;AAED,MAAM,OAAO,gCAAgC;IAC3C,MAAM,CAA4C;CACnD;AAED,MAAM,OAAO,kCAAkC;IAC7C,MAAM,CAA4C;IAClD,OAAO,CAAe;IAEtB,MAAM,CAAU,aAAa,GAAG,IAAI,oBAAoB,CACtD,iBAAiB,CAAC,kCAAkC,EAAE;QACpD,MAAM,EAAE,SAAS,EAAE;KACpB,CAAC,CACH,CAAC;;AAGJ,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,IAAqD,EACjB,EAAE;IACtC,MAAM,kCAAkC,GACtC,IAAI,kCAAkC,EAAE,CAAC;IAC3C,kCAAkC,CAAC,MAAM;QACvC,IAAI,CAAC,MAAkD,CAAC;IAC1D,kCAAkC,CAAC,OAAO,GAAG,IAAI,CAAC;IAClD,OAAO,kCAAkC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,OAAO,kCAAkC;IAC7C,mBAAmB,CAAU;IAC7B,cAAc,CAA0B;IAExC,MAAM,CAAU,aAAa,GAAG,IAAI,oBAAoB,CACtD,iBAAiB,CAAC,kCAAkC,EAAE;QACpD,mBAAmB,EAAE,SAAS,EAAE;KACjC,CAAC,CACH,CAAC;;AAGJ,MAAM,OAAO,6BAA6B;IACxC,kBAAkB,CAAqC;IACvD,kBAAkB,CAAiD;IAEnE,YACE,kBAAsD,EACtD,kBAAkE;QAElE,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;CACF"}
|
@@ -32,6 +32,7 @@ export declare class IngestionManager {
|
|
32
32
|
deployDataProduct(grammarText: string, appDirNode: AppDirNode, messageCallBack: (message: string) => void, token: string | undefined): Promise<AdhocDataProductDeployResponse>;
|
33
33
|
private _validate;
|
34
34
|
private _deploy;
|
35
|
+
private _fetchDeployLocations;
|
35
36
|
private identifyIngestDeploymentServer;
|
36
37
|
}
|
37
38
|
//# sourceMappingURL=IngestionManager.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"IngestionManager.d.ts","sourceRoot":"","sources":["../../../src/stores/ingestion/IngestionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAM/E,OAAO,EAIL,6BAA6B,EAE9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,qCAAqC,CAAC;AAE7C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,4BAA4B,CAA+B;IACnE,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,gBAAgB,CAAS;gBAG/B,MAAM,EAAE,4BAA4B,EACpC,gBAAgB,EAAE,6BAA6B;IAkBjD,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAOpD,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAK5C,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,6BAA6B,CAAC;
|
1
|
+
{"version":3,"file":"IngestionManager.d.ts","sourceRoot":"","sources":["../../../src/stores/ingestion/IngestionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAM/E,OAAO,EAIL,6BAA6B,EAE9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,qCAAqC,CAAC;AAE7C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,4BAA4B,CAA+B;IACnE,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,gBAAgB,CAAS;gBAG/B,MAAM,EAAE,4BAA4B,EACpC,gBAAgB,EAAE,6BAA6B;IAkBjD,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAOpD,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAK5C,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,6BAA6B,CAAC;IAyCnC,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,8BAA8B,CAAC;YAgB5B,SAAS;YAyBT,OAAO;YAgBP,qBAAqB;YAWrB,8BAA8B;CAkB7C"}
|
@@ -54,7 +54,13 @@ export class IngestionManager {
|
|
54
54
|
}
|
55
55
|
messageCallBack(`Validation Success. Deploying ingest with server ${this.ingestDeploymentServerClient.baseUrl ?? ''} for realm ${this.ingestDeploymentServerClient.environmentClassification}...`);
|
56
56
|
const deployResponse = await this._deploy(ingestDefinition, undefined, token);
|
57
|
-
|
57
|
+
try {
|
58
|
+
messageCallBack(`Deployment Success. Fetching write location...`);
|
59
|
+
await this._fetchDeployLocations(deployResponse, token);
|
60
|
+
}
|
61
|
+
catch (error) {
|
62
|
+
assertErrorThrown(error);
|
63
|
+
}
|
58
64
|
return fullResponse;
|
59
65
|
}
|
60
66
|
async deployDataProduct(grammarText, appDirNode, messageCallBack, token) {
|
@@ -88,6 +94,10 @@ export class IngestionManager {
|
|
88
94
|
const response = (await this.ingestDeploymentServerClient.deploy(ingestDefinition, token));
|
89
95
|
return IngestDefinitionDeploymentResponse.serialization.fromJson(response);
|
90
96
|
}
|
97
|
+
async _fetchDeployLocations(depploymentResponse, token) {
|
98
|
+
const response = (await this.ingestDeploymentServerClient.write_location(depploymentResponse.ingestDefinitionUrn, token));
|
99
|
+
depploymentResponse.write_location = response;
|
100
|
+
}
|
91
101
|
async identifyIngestDeploymentServer(appDirNode, token) {
|
92
102
|
// we do not change if current appDirNode is the same as the one we are trying to set
|
93
103
|
if (this.useDefaultServer || this.isCurrentAppDirNode(appDirNode)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"IngestionManager.js","sourceRoot":"","sources":["../../../src/stores/ingestion/IngestionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,OAAO,EACL,kBAAkB,EAElB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,kCAAkC,EAClC,wCAAwC,EACxC,6BAA6B,EAC7B,wCAAwC,GACzC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,4BAA4B,GAE7B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,oCAAoC,GAErC,MAAM,qCAAqC,CAAC;AAE7C,MAAM,OAAO,gBAAgB;IACV,gBAAgB,CAAgC;IACzD,2BAA2B,CAA8B;IACzD,4BAA4B,CAA+B;IAC3D,aAAa,CAAqB;IAClC,aAAa,CAAqB;IAClC,gBAAgB,GAAG,KAAK,CAAC;IAEjC,YACE,MAAoC,EACpC,gBAA+C;QAE/C,IAAI,CAAC,2BAA2B,GAAG,IAAI,2BAA2B,CAChE,MAAM,CAAC,YAAY,CACpB,CAAC;QACF,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAC/C,gBAAgB,CAAC,aAAa,CAC/B,CAAC;QACF,IAAI,CAAC,4BAA4B,GAAG,IAAI,4BAA4B,CAClE,MAAM,CAAC,UAAU,CAAC,aAAa,CAChC,CAAC;QACF,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAChD,gBAAgB,CAAC,aAAa,CAC/B,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,mBAAmB,CAAC,UAAsB;QACxC,OAAO,CACL,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,QAAQ;YAC1C,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,KAAK,CACxC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,UAAsB;QACzC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,UAAsB,EACtB,eAA0C,EAC1C,KAAyB;QAEzB,eAAe,CACb,qDAAqD,UAAU,CAAC,QAAQ,KAAK,CAC9E,CAAC;QACF,MAAM,IAAI,CAAC,8BAA8B,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC7D,eAAe,CACb,iCAAiC,IAAI,CAAC,4BAA4B,CAAC,OAAO,IAAI,EAAE,cAAc,IAAI,CAAC,4BAA4B,CAAC,yBAAyB,KAAK,CAC/J,CAAC;QACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAC1C,gBAAgB,EAChB,SAAS,EACT,KAAK,CACN,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,6BAA6B,CACpD,eAAe,EACf,SAAS,CACV,CAAC;QACF,IACE,eAAe,CAAC,MAAM;YACtB,wCAAwC,CAAC,OAAO,EAChD,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,eAAe,CACb,oDAAoD,IAAI,CAAC,4BAA4B,CAAC,OAAO,IAAI,EAAE,cAAc,IAAI,CAAC,4BAA4B,CAAC,yBAAyB,KAAK,CAClL,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CACvC,gBAAgB,EAChB,SAAS,EACT,KAAK,CACN,CAAC;QACF,
|
1
|
+
{"version":3,"file":"IngestionManager.js","sourceRoot":"","sources":["../../../src/stores/ingestion/IngestionManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@finos/legend-application-studio",
|
3
|
-
"version": "28.18.
|
3
|
+
"version": "28.18.147",
|
4
4
|
"description": "Legend Studio application core",
|
5
5
|
"keywords": [
|
6
6
|
"legend",
|
@@ -48,10 +48,10 @@
|
|
48
48
|
"@finos/legend-application": "16.0.49",
|
49
49
|
"@finos/legend-art": "7.1.103",
|
50
50
|
"@finos/legend-code-editor": "2.0.83",
|
51
|
-
"@finos/legend-data-cube": "0.2.
|
51
|
+
"@finos/legend-data-cube": "0.2.17",
|
52
52
|
"@finos/legend-graph": "32.1.41",
|
53
53
|
"@finos/legend-lego": "2.0.89",
|
54
|
-
"@finos/legend-query-builder": "4.16.
|
54
|
+
"@finos/legend-query-builder": "4.16.53",
|
55
55
|
"@finos/legend-server-depot": "6.0.92",
|
56
56
|
"@finos/legend-server-sdlc": "5.3.58",
|
57
57
|
"@finos/legend-server-showcase": "0.2.54",
|
@@ -17,6 +17,7 @@
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
18
18
|
import { useEditorStore } from '../../EditorStoreProvider.js';
|
19
19
|
import {
|
20
|
+
type AccessPointGroupState,
|
20
21
|
DataProductEditorState,
|
21
22
|
generateUrlToDeployOnOpen,
|
22
23
|
LakehouseAccessPointState,
|
@@ -48,6 +49,7 @@ import {
|
|
48
49
|
MenuContent,
|
49
50
|
MenuContentItem,
|
50
51
|
CaretDownIcon,
|
52
|
+
WarningIcon,
|
51
53
|
} from '@finos/legend-art';
|
52
54
|
import React, { useRef, useState, useEffect } from 'react';
|
53
55
|
import { filterByType } from '@finos/legend-shared';
|
@@ -57,10 +59,12 @@ import { useAuth } from 'react-oidc-context';
|
|
57
59
|
import { CODE_EDITOR_LANGUAGE } from '@finos/legend-code-editor';
|
58
60
|
import { CodeEditor } from '@finos/legend-lego/code-editor';
|
59
61
|
import {
|
62
|
+
type AccessPointGroup,
|
60
63
|
LakehouseTargetEnv,
|
61
64
|
type LakehouseAccessPoint,
|
62
65
|
} from '@finos/legend-graph';
|
63
66
|
import {
|
67
|
+
accessPointGroup_setDescription,
|
64
68
|
dataProduct_setDescription,
|
65
69
|
dataProduct_setTitle,
|
66
70
|
} from '../../../../stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.js';
|
@@ -178,18 +182,24 @@ const NewAccessPointAccessPOint = observer(
|
|
178
182
|
);
|
179
183
|
|
180
184
|
interface DescriptionTextAreaProps {
|
181
|
-
accessPoint: LakehouseAccessPoint;
|
185
|
+
accessPoint: LakehouseAccessPoint | AccessPointGroup;
|
182
186
|
handleMouseOver: (event: React.MouseEvent<HTMLDivElement>) => void;
|
183
187
|
handleMouseOut: (event: React.MouseEvent<HTMLDivElement>) => void;
|
188
|
+
className?: string;
|
184
189
|
}
|
185
190
|
|
186
191
|
const DescriptionTextArea: React.FC<DescriptionTextAreaProps> = ({
|
187
192
|
accessPoint,
|
188
193
|
handleMouseOver,
|
189
194
|
handleMouseOut,
|
195
|
+
className,
|
190
196
|
}) => {
|
191
197
|
return (
|
192
|
-
<div
|
198
|
+
<div
|
199
|
+
onMouseOver={handleMouseOver}
|
200
|
+
onMouseOut={handleMouseOut}
|
201
|
+
className={clsx(className)}
|
202
|
+
>
|
193
203
|
{accessPoint.description}
|
194
204
|
</div>
|
195
205
|
);
|
@@ -444,6 +454,91 @@ const DataProductDeploymentResponseModal = observer(
|
|
444
454
|
},
|
445
455
|
);
|
446
456
|
|
457
|
+
const AccessPointGroupSection = observer(
|
458
|
+
(props: { groupState: AccessPointGroupState; isReadOnly: boolean }) => {
|
459
|
+
const { groupState, isReadOnly } = props;
|
460
|
+
const [editingDescription, setEditingDescription] = useState(false);
|
461
|
+
const [isHovering, setIsHovering] = useState(false);
|
462
|
+
|
463
|
+
const handleEdit = () => setEditingDescription(true);
|
464
|
+
const handleBlur = () => {
|
465
|
+
setEditingDescription(false);
|
466
|
+
setIsHovering(false);
|
467
|
+
};
|
468
|
+
const handleMouseOver: React.MouseEventHandler<HTMLDivElement> = () => {
|
469
|
+
setIsHovering(true);
|
470
|
+
};
|
471
|
+
const handleMouseOut: React.MouseEventHandler<HTMLDivElement> = () => {
|
472
|
+
setIsHovering(false);
|
473
|
+
};
|
474
|
+
|
475
|
+
const updateGroupDescription = (val: string): void => {
|
476
|
+
accessPointGroup_setDescription(groupState.value, val);
|
477
|
+
};
|
478
|
+
return (
|
479
|
+
<div
|
480
|
+
key={groupState.value.id}
|
481
|
+
className="access-point-editor__group-container"
|
482
|
+
>
|
483
|
+
<div className="access-point-editor__group-container__title">
|
484
|
+
{groupState.value.id}
|
485
|
+
</div>
|
486
|
+
<div className="access-point-editor__group-container__description-editor">
|
487
|
+
{editingDescription ? (
|
488
|
+
<textarea
|
489
|
+
className="panel__content__form__section__input"
|
490
|
+
spellCheck={false}
|
491
|
+
value={groupState.value.description ?? ''}
|
492
|
+
onChange={(event) => updateGroupDescription(event.target.value)}
|
493
|
+
placeholder="Provide a description for this Access Point Group"
|
494
|
+
onBlur={handleBlur}
|
495
|
+
style={{
|
496
|
+
overflow: 'hidden',
|
497
|
+
resize: 'none',
|
498
|
+
padding: '0.25rem',
|
499
|
+
}}
|
500
|
+
/>
|
501
|
+
) : (
|
502
|
+
<div
|
503
|
+
onClick={handleEdit}
|
504
|
+
title="Click to edit description"
|
505
|
+
className="access-point-editor__description-container"
|
506
|
+
>
|
507
|
+
{groupState.value.description ? (
|
508
|
+
<DescriptionTextArea
|
509
|
+
accessPoint={groupState.value}
|
510
|
+
handleMouseOver={handleMouseOver}
|
511
|
+
handleMouseOut={handleMouseOut}
|
512
|
+
className="access-point-editor__group-container__description"
|
513
|
+
/>
|
514
|
+
) : (
|
515
|
+
<div
|
516
|
+
className="access-point-editor__group-container__description--warning"
|
517
|
+
onMouseOver={handleMouseOver}
|
518
|
+
onMouseOut={handleMouseOut}
|
519
|
+
>
|
520
|
+
<WarningIcon />
|
521
|
+
No description provided
|
522
|
+
</div>
|
523
|
+
)}
|
524
|
+
{isHovering && hoverIcon()}
|
525
|
+
</div>
|
526
|
+
)}
|
527
|
+
</div>
|
528
|
+
{groupState.accessPointStates
|
529
|
+
.filter(filterByType(LakehouseAccessPointState))
|
530
|
+
.map((apState) => (
|
531
|
+
<LakehouseDataProductAcccessPointEditor
|
532
|
+
key={apState.accessPoint.id}
|
533
|
+
isReadOnly={isReadOnly}
|
534
|
+
accessPointState={apState}
|
535
|
+
/>
|
536
|
+
))}
|
537
|
+
</div>
|
538
|
+
);
|
539
|
+
},
|
540
|
+
);
|
541
|
+
|
447
542
|
export const DataProductEditor = observer(() => {
|
448
543
|
const editorStore = useEditorStore();
|
449
544
|
const dataProductEditorState =
|
@@ -565,38 +660,25 @@ export const DataProductEditor = observer(() => {
|
|
565
660
|
</PanelHeaderActionItem>
|
566
661
|
</PanelHeaderActions>
|
567
662
|
</PanelHeader>
|
568
|
-
<
|
569
|
-
<
|
663
|
+
<PanelContent>
|
664
|
+
<div style={{ overflow: 'auto' }}>
|
570
665
|
{dataProductEditorState.accessPointGroupStates.map(
|
571
666
|
(groupState) => (
|
572
|
-
<
|
667
|
+
<AccessPointGroupSection
|
573
668
|
key={groupState.value.id}
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
<div className="panel__header__title__content">
|
578
|
-
{groupState.value.id}
|
579
|
-
</div>
|
580
|
-
</div>
|
581
|
-
{groupState.accessPointStates
|
582
|
-
.filter(filterByType(LakehouseAccessPointState))
|
583
|
-
.map((apState) => (
|
584
|
-
<LakehouseDataProductAcccessPointEditor
|
585
|
-
key={apState.accessPoint.id}
|
586
|
-
isReadOnly={isReadOnly}
|
587
|
-
accessPointState={apState}
|
588
|
-
/>
|
589
|
-
))}
|
590
|
-
</div>
|
669
|
+
groupState={groupState}
|
670
|
+
isReadOnly={isReadOnly}
|
671
|
+
/>
|
591
672
|
),
|
592
673
|
)}
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
</
|
674
|
+
</div>
|
675
|
+
{!accessPointStates.length && (
|
676
|
+
<DataProductEditorSplashScreen
|
677
|
+
dataProductEditorState={dataProductEditorState}
|
678
|
+
/>
|
679
|
+
)}
|
680
|
+
</PanelContent>
|
681
|
+
|
600
682
|
{dataProductEditorState.accessPointModal && (
|
601
683
|
<NewAccessPointAccessPOint
|
602
684
|
dataProductEditorState={dataProductEditorState}
|
@@ -1046,7 +1046,6 @@ const FunctionDefinitionEditor = observer(
|
|
1046
1046
|
}
|
1047
1047
|
return <BlankPanelContent>Function Did Not Run</BlankPanelContent>;
|
1048
1048
|
};
|
1049
|
-
|
1050
1049
|
return (
|
1051
1050
|
<>
|
1052
1051
|
<PanelLoadingIndicator
|
@@ -1056,7 +1055,7 @@ const FunctionDefinitionEditor = observer(
|
|
1056
1055
|
}
|
1057
1056
|
/>
|
1058
1057
|
<div className="function-editor__definition">
|
1059
|
-
<div className="function-editor__definition__item">
|
1058
|
+
<div className="function-editor__definition__item function-editor__definition__item-params">
|
1060
1059
|
<div className="function-editor__definition__item__header">
|
1061
1060
|
<div className="function-editor__definition__item__header__title">
|
1062
1061
|
PARAMETERS
|
@@ -1100,7 +1099,7 @@ const FunctionDefinitionEditor = observer(
|
|
1100
1099
|
)}
|
1101
1100
|
</div>
|
1102
1101
|
</div>
|
1103
|
-
<div className="function-editor__definition__item">
|
1102
|
+
<div className="function-editor__definition__item function-editor__definition__item-lambda">
|
1104
1103
|
<div className="function-editor__definition__item__header">
|
1105
1104
|
<div className="function-editor__definition__item__header-wrapper">
|
1106
1105
|
<div className="function-editor__definition__item__header__title">
|
@@ -1154,7 +1153,15 @@ const FunctionDefinitionEditor = observer(
|
|
1154
1153
|
})}
|
1155
1154
|
>
|
1156
1155
|
<LambdaEditor
|
1157
|
-
className=
|
1156
|
+
className={clsx(
|
1157
|
+
'function-editor__definition__lambda-editor lambda-editor--dark',
|
1158
|
+
{
|
1159
|
+
'function-editor__definition__lambda-editor-error': Boolean(
|
1160
|
+
lambdaEditorState.parserError ??
|
1161
|
+
lambdaEditorState.compilationError,
|
1162
|
+
),
|
1163
|
+
},
|
1164
|
+
)}
|
1158
1165
|
disabled={
|
1159
1166
|
lambdaEditorState.isConvertingFunctionBodyToString ||
|
1160
1167
|
isReadOnly
|
@@ -1165,7 +1172,7 @@ const FunctionDefinitionEditor = observer(
|
|
1165
1172
|
/>
|
1166
1173
|
</div>
|
1167
1174
|
</div>
|
1168
|
-
<div className="function-editor__definition__item">
|
1175
|
+
<div className="function-editor__definition__item function-editor__definition__item-result function-editor__definition__result">
|
1169
1176
|
<div className="function-editor__definition__item__header">
|
1170
1177
|
<div className="function-editor__definition__item__header__title">
|
1171
1178
|
RESULT
|
@@ -41,7 +41,7 @@ import { CODE_EDITOR_LANGUAGE } from '@finos/legend-code-editor';
|
|
41
41
|
import { flowResult } from 'mobx';
|
42
42
|
import { useAuth } from 'react-oidc-context';
|
43
43
|
import {
|
44
|
-
|
44
|
+
IngestDefinitionDeploymentResponse,
|
45
45
|
IngestDefinitionValidationResponse,
|
46
46
|
} from '../../../../stores/ingestion/IngestionDeploymentResponse.js';
|
47
47
|
|
@@ -95,75 +95,81 @@ const IngestValidationError = observer(
|
|
95
95
|
},
|
96
96
|
);
|
97
97
|
|
98
|
-
// TODO: show full report i.e write envs etc
|
99
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
100
98
|
const IngestDeploymentResponseModal = observer(
|
101
99
|
(props: {
|
102
|
-
|
100
|
+
closeModal: () => void;
|
103
101
|
deploymentResponse: IngestDefinitionDeploymentResponse;
|
102
|
+
copyHandler: (text: string, successMessage: string) => void;
|
104
103
|
}) => {
|
105
|
-
const {
|
106
|
-
const applicationStore = state.editorStore.applicationStore;
|
107
|
-
const closeModal = (): void =>
|
108
|
-
state.setValidateAndDeployResponse(undefined);
|
104
|
+
const { closeModal, deploymentResponse, copyHandler } = props;
|
109
105
|
const copyURN = (text: string): void => {
|
110
|
-
|
111
|
-
.copyTextToClipboard(text)
|
112
|
-
.then(() =>
|
113
|
-
state.editorStore.applicationStore.notificationService.notifySuccess(
|
114
|
-
'Ingest URN copied to clipboard',
|
115
|
-
undefined,
|
116
|
-
2500,
|
117
|
-
),
|
118
|
-
)
|
119
|
-
.catch(state.editorStore.applicationStore.alertUnhandledError);
|
106
|
+
copyHandler(text, 'Ingest URN copied to clipboard');
|
120
107
|
};
|
121
108
|
return (
|
122
109
|
<Dialog
|
123
110
|
open={true}
|
124
111
|
classes={{
|
125
|
-
root: '
|
126
|
-
container: '
|
127
|
-
paper: '
|
112
|
+
root: 'ingestion-modal__root-container',
|
113
|
+
container: 'ingestion-modal__container',
|
114
|
+
paper: 'ingestion-modal__content',
|
128
115
|
}}
|
129
|
-
onClose={closeModal}
|
130
116
|
>
|
131
|
-
<Modal
|
132
|
-
darkMode={
|
133
|
-
!applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled
|
134
|
-
}
|
135
|
-
className="editor-modal"
|
136
|
-
>
|
117
|
+
<Modal darkMode={true} className="ingestion-modal">
|
137
118
|
<ModalHeader>
|
138
119
|
<ModalTitle
|
139
|
-
icon={<CheckCircleIcon />}
|
140
|
-
title="Deployment
|
120
|
+
icon={<CheckCircleIcon className="ingestion-modal--success" />}
|
121
|
+
title="Deployment Response"
|
141
122
|
></ModalTitle>
|
142
123
|
</ModalHeader>
|
143
124
|
<ModalBody>
|
144
|
-
<
|
145
|
-
<div>
|
146
|
-
<div
|
147
|
-
|
148
|
-
|
149
|
-
<div className="
|
150
|
-
|
151
|
-
className="data-space__viewer__quickstart__tds__query-text__action"
|
152
|
-
tabIndex={-1}
|
153
|
-
title="Copy"
|
154
|
-
onClick={() => {
|
155
|
-
copyURN(deploymentResponse.ingestDefinitionUrn);
|
156
|
-
}}
|
157
|
-
>
|
158
|
-
<CopyIcon />
|
159
|
-
</button>
|
160
|
-
<button
|
161
|
-
className="data-space__viewer__quickstart__tds__query-text__action"
|
162
|
-
tabIndex={-1}
|
163
|
-
></button>
|
125
|
+
<div className="ingestion-modal__urn">
|
126
|
+
<div className="ingestion-modal__urn__info">
|
127
|
+
<div className="panel__content__form__section__header__label">
|
128
|
+
Deployment URN
|
129
|
+
</div>
|
130
|
+
<div className="ingestion-modal__urn__value">
|
131
|
+
{deploymentResponse.ingestDefinitionUrn}
|
164
132
|
</div>
|
165
133
|
</div>
|
166
|
-
|
134
|
+
<div className="ingestion-modal__urn__copy">
|
135
|
+
<button
|
136
|
+
className="ingestion-modal__urn__copy--btn"
|
137
|
+
tabIndex={-1}
|
138
|
+
title="Copy"
|
139
|
+
onClick={() => {
|
140
|
+
copyURN(deploymentResponse.ingestDefinitionUrn);
|
141
|
+
}}
|
142
|
+
>
|
143
|
+
<CopyIcon />
|
144
|
+
</button>
|
145
|
+
</div>
|
146
|
+
</div>
|
147
|
+
<div className="ingestion-modal__write">
|
148
|
+
<div className="ingestion-modal__write__label">
|
149
|
+
Write Location
|
150
|
+
</div>
|
151
|
+
<div className="ingestion-modal__write--value">
|
152
|
+
{deploymentResponse.write_location ? (
|
153
|
+
<CodeEditor
|
154
|
+
inputValue={JSON.stringify(
|
155
|
+
deploymentResponse.write_location,
|
156
|
+
null,
|
157
|
+
2,
|
158
|
+
)}
|
159
|
+
isReadOnly={true}
|
160
|
+
language={CODE_EDITOR_LANGUAGE.JSON}
|
161
|
+
extraEditorOptions={{
|
162
|
+
wordWrap: 'on',
|
163
|
+
}}
|
164
|
+
hideActionBar={true}
|
165
|
+
/>
|
166
|
+
) : (
|
167
|
+
<div className="ingestion-modal__write--no-value">
|
168
|
+
No write location provided
|
169
|
+
</div>
|
170
|
+
)}
|
171
|
+
</div>
|
172
|
+
</div>
|
167
173
|
</ModalBody>
|
168
174
|
<ModalFooter>
|
169
175
|
<ModalFooterButton
|
@@ -186,7 +192,6 @@ export const IngestDefinitionEditor = observer(() => {
|
|
186
192
|
);
|
187
193
|
const ingestDef = ingestDefinitionEditorState.ingest;
|
188
194
|
const auth = useAuth();
|
189
|
-
|
190
195
|
const deployIngest = (): void => {
|
191
196
|
// Trigger OAuth flow if not authenticated
|
192
197
|
if (!auth.isAuthenticated) {
|
@@ -220,8 +225,32 @@ export const IngestDefinitionEditor = observer(() => {
|
|
220
225
|
validateResponse={response}
|
221
226
|
/>
|
222
227
|
);
|
228
|
+
} else if (response instanceof IngestDefinitionDeploymentResponse) {
|
229
|
+
const copyHanlder = (text: string, successMessage: string): void => {
|
230
|
+
ingestDefinitionEditorState.editorStore.applicationStore.clipboardService
|
231
|
+
.copyTextToClipboard(text)
|
232
|
+
.then(() =>
|
233
|
+
ingestDefinitionEditorState.editorStore.applicationStore.notificationService.notifySuccess(
|
234
|
+
successMessage,
|
235
|
+
undefined,
|
236
|
+
2500,
|
237
|
+
),
|
238
|
+
)
|
239
|
+
.catch(
|
240
|
+
ingestDefinitionEditorState.editorStore.applicationStore
|
241
|
+
.alertUnhandledError,
|
242
|
+
);
|
243
|
+
};
|
244
|
+
return (
|
245
|
+
<IngestDeploymentResponseModal
|
246
|
+
closeModal={() =>
|
247
|
+
ingestDefinitionEditorState.setValidateAndDeployResponse(undefined)
|
248
|
+
}
|
249
|
+
deploymentResponse={response}
|
250
|
+
copyHandler={copyHanlder}
|
251
|
+
/>
|
252
|
+
);
|
223
253
|
}
|
224
|
-
|
225
254
|
return null;
|
226
255
|
};
|
227
256
|
|
@@ -557,6 +557,7 @@ export class GraphEditFormModeState extends GraphEditorMode {
|
|
557
557
|
*onLeave(): GeneratorFn<void> {
|
558
558
|
this.editorStore.sqlPlaygroundState.setConnection(undefined);
|
559
559
|
this.editorStore.tabManagerState.cacheAndClose();
|
560
|
+
this.editorStore.applicationStore.layoutService.setShowBackdrop(false);
|
560
561
|
}
|
561
562
|
|
562
563
|
*cleanupBeforeEntering(fallbackOptions?: {
|
package/src/stores/editor/editor-state/element-editor-state/ingest/IngestDefinitionEditorState.ts
CHANGED
@@ -47,10 +47,6 @@ import {
|
|
47
47
|
} from '../ElementEditorInitialConfiguration.js';
|
48
48
|
import type { AuthContextProps } from 'react-oidc-context';
|
49
49
|
import { EXTERNAL_APPLICATION_NAVIGATION__generateUrlWithEditorConfig } from '../../../../../__lib__/LegendStudioNavigation.js';
|
50
|
-
import {
|
51
|
-
ActionAlertActionType,
|
52
|
-
ActionAlertType,
|
53
|
-
} from '@finos/legend-application';
|
54
50
|
import { LEGEND_STUDIO_APP_EVENT } from '../../../../../__lib__/LegendStudioEvent.js';
|
55
51
|
|
56
52
|
const createEditorInitialConfiguration = (): EditorInitialConfiguration => {
|
@@ -98,9 +94,12 @@ export class IngestDefinitionEditorState extends ElementEditorState {
|
|
98
94
|
init_with_deploy: flow,
|
99
95
|
deploy: flow,
|
100
96
|
});
|
101
|
-
|
102
|
-
|
103
|
-
|
97
|
+
if (
|
98
|
+
config?.elementEditorConfiguration instanceof
|
99
|
+
IngestElementEditorInitialConfiguration
|
100
|
+
) {
|
101
|
+
this.deployOnOpen =
|
102
|
+
config.elementEditorConfiguration.deployOnOpen ?? false;
|
104
103
|
}
|
105
104
|
}
|
106
105
|
|
@@ -170,44 +169,13 @@ export class IngestDefinitionEditorState extends ElementEditorState {
|
|
170
169
|
this.editorStore.applicationStore.alertService.setBlockingAlert(
|
171
170
|
undefined,
|
172
171
|
);
|
173
|
-
|
174
|
-
if (deploymentResponse) {
|
172
|
+
if (response.deploymentResponse) {
|
175
173
|
this.editorStore.applicationStore.logService.info(
|
176
174
|
LogEvent.create(LEGEND_STUDIO_APP_EVENT.INGESTION_DEPLOY_SUCCESS_URN),
|
177
|
-
deploymentResponse.ingestDefinitionUrn,
|
175
|
+
response.deploymentResponse.ingestDefinitionUrn,
|
178
176
|
);
|
179
|
-
this.editorStore.applicationStore.alertService.setActionAlertInfo({
|
180
|
-
title: `Ingest Definition Deployment`,
|
181
|
-
message: `Ingest definition deployed successfully. You may use URN for ingestion of Data`,
|
182
|
-
prompt: `${deploymentResponse.ingestDefinitionUrn}`,
|
183
|
-
type: ActionAlertType.STANDARD,
|
184
|
-
actions: [
|
185
|
-
{
|
186
|
-
label: 'Copy URN',
|
187
|
-
type: ActionAlertActionType.PROCEED,
|
188
|
-
handler: (): void => {
|
189
|
-
this.editorStore.applicationStore.clipboardService
|
190
|
-
.copyTextToClipboard(deploymentResponse.ingestDefinitionUrn)
|
191
|
-
.then(() =>
|
192
|
-
this.editorStore.applicationStore.notificationService.notifySuccess(
|
193
|
-
'Ingest URN copied to clipboard',
|
194
|
-
undefined,
|
195
|
-
2500,
|
196
|
-
),
|
197
|
-
)
|
198
|
-
.catch(this.editorStore.applicationStore.alertUnhandledError);
|
199
|
-
},
|
200
|
-
default: true,
|
201
|
-
},
|
202
|
-
{
|
203
|
-
label: 'Close',
|
204
|
-
type: ActionAlertActionType.PROCEED_WITH_CAUTION,
|
205
|
-
},
|
206
|
-
],
|
207
|
-
});
|
208
|
-
} else {
|
209
|
-
this.setValidateAndDeployResponse(response);
|
210
177
|
}
|
178
|
+
this.setValidateAndDeployResponse(response);
|
211
179
|
} catch (error) {
|
212
180
|
this.editorStore.applicationStore.alertService.setBlockingAlert(
|
213
181
|
undefined,
|
@@ -37,6 +37,12 @@ export const dataProduct_addAccessPoint = action(
|
|
37
37
|
},
|
38
38
|
);
|
39
39
|
|
40
|
+
export const accessPointGroup_setDescription = action(
|
41
|
+
(product: AccessPointGroup, description: string) => {
|
42
|
+
product.description = description;
|
43
|
+
},
|
44
|
+
);
|
45
|
+
|
40
46
|
export const dataProduct_addAccessPointGroup = action(
|
41
47
|
(product: DataProduct, accessPointGroup: AccessPointGroup) => {
|
42
48
|
addUniqueEntry(
|