@topconsultnpm/sdkui-react-beta 6.16.64 → 6.16.65

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.
@@ -589,7 +589,7 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, readOnly = false, zoomLevel
589
589
  return;
590
590
  }
591
591
  }, [wfDiagram, selectedItems, selectedConnections, handleUndo, handleRedo, handleDelete, updateDiagram, handleCopy, handleCut, handlePaste, readOnly]);
592
- const handleExportDiagram = useCallback(() => {
592
+ const handleExportDiagram = useCallback(async () => {
593
593
  if (!wfDiagram) {
594
594
  // Visualizza un errore se il diagramma non è stato caricato o è vuoto
595
595
  TMExceptionBoxManager.show({ exception: new Error('Diagram not loaded.') });
@@ -597,7 +597,7 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, readOnly = false, zoomLevel
597
597
  }
598
598
  try {
599
599
  // 1. Serializza il diagramma in XML
600
- const xmlString = serializeWfDiagramToXml(wfDiagram);
600
+ const xmlString = await serializeWfDiagramToXml(wfDiagram);
601
601
  // 2. Determina il nome del file (usa l'ID o un UUID se non disponibile)
602
602
  const filename = `WorkflowDiagram_${wfDiagram.Info?.ID || generateUUID()}.xml`;
603
603
  // 3. Avvia il download (la cartella è scelta dal browser)
@@ -8,4 +8,4 @@ export declare const getWFAppTypesNumber: (appType: WFAppTypes | undefined) => n
8
8
  export declare const mapCultureIDs: (cultureIDValue: number) => CultureIDs;
9
9
  export declare const serializeQueryDescriptorXml: (qd: QueryDescriptor | undefined) => Promise<string>;
10
10
  export declare const parseWfDiagramXml: (xmlString: string) => WfDiagram;
11
- export declare const serializeWfDiagramToXml: (wfDiagram: WfDiagram | null) => string;
11
+ export declare const serializeWfDiagramToXml: (wfDiagram: WfDiagram | null) => Promise<string>;
@@ -174,12 +174,16 @@ const mapWFAppTypes = (appTypeValue) => {
174
174
  }
175
175
  };
176
176
  export const serializeQueryDescriptorXml = async (qd) => {
177
- console.log('serializeQueryDescriptorXml qd', qd);
177
+ // try {
178
178
  if (!qd)
179
179
  return '';
180
180
  let xml = await SDK_Globals.tmSession?.NewDcmtPlatformEngine().UtilsSerializeQdAsync(qd) ?? '';
181
- console.log('serializeQueryDescriptorXml xml', xml);
182
181
  return xml;
182
+ // } catch (error) {
183
+ // console.error('Error serializing QueryDescriptor to XML:', error);
184
+ //TODO: gestire errore
185
+ // return '';
186
+ // }
183
187
  };
184
188
  // Placeholder per la serializzazione di MetadataValues in XML (DA MODIFICARE CON LA LOGICA REALE)
185
189
  const serializeMetadataValuesXml = (values) => {
@@ -192,7 +196,6 @@ const serializeMetadataValuesXml = (values) => {
192
196
  export const parseWfDiagramXml = (xmlString) => {
193
197
  const parser = new DOMParser();
194
198
  const xmlDoc = parser.parseFromString(xmlString, "application/xml");
195
- console.log('xmlDoc', xmlDoc);
196
199
  const wfDiagram = {
197
200
  Info: {
198
201
  ID: "",
@@ -336,11 +339,10 @@ export const parseWfDiagramXml = (xmlString) => {
336
339
  return wfDiagram;
337
340
  };
338
341
  // Funzione di serializzazione (inclusa per completezza, se l'avevi)
339
- export const serializeWfDiagramToXml = (wfDiagram) => {
342
+ export const serializeWfDiagramToXml = async (wfDiagram) => {
340
343
  if (!wfDiagram) {
341
344
  return '<?xml version="1.0" encoding="utf-8"?>\n<Root></Root>';
342
345
  }
343
- console.log('qd', escapeXml('<QueryDescriptor xmlns="http://schemas.datacontract.org/2004/07/TopConsult.TM5.Server.WEBSDK.Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Description i:nil="true"/><ID>0</ID><Name i:nil="true"/><Fetch>0</Fetch><From><TID>8601</TID></From><IsDistinct>false</IsDistinct><IsLexProt>0</IsLexProt><Join i:nil="true"/><MaxDcmtsToBeReturned>1000</MaxDcmtsToBeReturned><Offset>0</Offset><OrderBy i:nil="true"/><Params i:nil="true"/><Select><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601001</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601002</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601006</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601003</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601004</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601005</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem></Select><Where><WhereItem><Alias i:nil="true"/><LeftBrackets>(</LeftBrackets><MID>8601006</MID><Operator>GreaterOrEqual</Operator><Or>false</Or><RightBrackets>)</RightBrackets><TID>8601</TID><Value1>100</Value1><Value2 i:nil="true"/></WhereItem></Where></QueryDescriptor>'));
344
346
  let xml = '<?xml version="1.0" encoding="utf-8"?>\n';
345
347
  xml += '<Root>\n';
346
348
  // 1. Serializzazione WfInfo
@@ -354,7 +356,8 @@ export const serializeWfDiagramToXml = (wfDiagram) => {
354
356
  }
355
357
  // 2. Serializzazione DiagramItems
356
358
  xml += ' <DiagramItems>\n';
357
- wfDiagram.DiagramItems.forEach(async (item) => {
359
+ // Usa Promise.all con map invece di forEach
360
+ for (const item of wfDiagram.DiagramItems) {
358
361
  xml += ' <DiagramItem>\n';
359
362
  xml += ` <ID>${escapeXml(item.ID)}</ID>\n`;
360
363
  xml += ` <L>${item.Left}</L>\n`;
@@ -414,15 +417,18 @@ export const serializeWfDiagramToXml = (wfDiagram) => {
414
417
  if (item.EndWFInstance !== undefined)
415
418
  xml += ` <EndWFInstance>${item.EndWFInstance}</EndWFInstance>\n`;
416
419
  // QueryDescriptor (QD)
417
- if (item.QD)
418
- xml += ` <QD>${escapeXml(await serializeQueryDescriptorXml(item.QD))}</QD>\n`;
420
+ if (item.QD) {
421
+ let qdXmlContent = await serializeQueryDescriptorXml(item.QD);
422
+ let qdEscaped = escapeXml(qdXmlContent);
423
+ xml += ` <QD>${qdEscaped}</QD>\n`;
424
+ }
419
425
  if (item.SOD)
420
426
  xml += ` <SOD>${escapeXml(item.SOD)}</SOD>\n`;
421
427
  // MetadataValues
422
- if (item.MetadataValues && item.MetadataValues.length > 0) {
423
- const mvXmlContent = serializeMetadataValuesXml(item.MetadataValues);
424
- xml += ` <MetadataValues><![CDATA[${mvXmlContent}]]></MetadataValues>\n`;
425
- }
428
+ // if (item.MetadataValues && item.MetadataValues.length > 0) {
429
+ // const mvXmlContent = serializeMetadataValuesXml(item.MetadataValues);
430
+ // xml += ` <MetadataValues><![CDATA[${mvXmlContent}]]></MetadataValues>\n`;
431
+ // }
426
432
  if (item.Severity !== undefined)
427
433
  xml += ` <Severity>${getSeveritiesNumber(item.Severity)}</Severity>\n`;
428
434
  if (item.RegAsWfInstPart !== undefined)
@@ -454,7 +460,7 @@ export const serializeWfDiagramToXml = (wfDiagram) => {
454
460
  if (item.Trunc !== undefined)
455
461
  xml += ` <Trunc>${item.Trunc}</Trunc>\n`;
456
462
  xml += ' </DiagramItem>\n';
457
- });
463
+ }
458
464
  xml += ' </DiagramItems>\n';
459
465
  // 3. Serializzazione Connections
460
466
  xml += ' <Connections>\n';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react-beta",
3
- "version": "6.16.64",
3
+ "version": "6.16.65",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",