@topconsultnpm/sdkui-react-beta 6.12.86 → 6.12.88

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.
@@ -13,6 +13,7 @@ interface ITMMessageBox extends ITMPopup {
13
13
  buttons?: ButtonNames[];
14
14
  message?: string | React.ReactNode;
15
15
  onButtonClick?: (e: ButtonNames) => void;
16
+ parentId?: string;
16
17
  }
17
18
  interface ITMExceptionBox extends ITMPopup {
18
19
  exception?: any;
@@ -21,6 +22,6 @@ declare class TMExceptionBoxManager {
21
22
  static show({ title, exception }: ITMExceptionBox): void;
22
23
  }
23
24
  declare class TMMessageBoxManager {
24
- static show({ title, buttons, onButtonClick, message }: ITMMessageBox): void;
25
+ static show({ title, buttons, onButtonClick, message, parentId }: ITMMessageBox): void;
25
26
  }
26
27
  export { TMExceptionBoxManager, TMMessageBoxManager };
@@ -126,11 +126,22 @@ class TMExceptionBoxManager {
126
126
  }
127
127
  }
128
128
  class TMMessageBoxManager {
129
- static show({ title, buttons, onButtonClick, message }) {
129
+ static show({ title, buttons, onButtonClick, message, parentId }) {
130
130
  let container = document.createElement('div');
131
- document.body.appendChild(container);
131
+ if (parentId) {
132
+ const parent = document.getElementById(parentId);
133
+ if (parent) {
134
+ parent.appendChild(container);
135
+ }
136
+ else {
137
+ document.body.appendChild(container);
138
+ }
139
+ }
140
+ else {
141
+ document.body.appendChild(container);
142
+ }
132
143
  const root = ReactDOM.createRoot(container);
133
- root.render(_jsx(TMDeviceProvider, { children: React.createElement(TMMessageBox, { title: title, buttons: buttons, onButtonClick: onButtonClick, message: message }) }));
144
+ root.render(_jsx(TMDeviceProvider, { children: React.createElement(TMMessageBox, { title, buttons, onButtonClick, message }) }));
134
145
  }
135
146
  }
136
147
  export { TMExceptionBoxManager, TMMessageBoxManager };
@@ -9,13 +9,13 @@ import { DownloadTypes, FormModes } from '../../../ts';
9
9
  import { DeviceType, useDeviceType } from '../../base/TMDeviceProvider';
10
10
  import { useDcmtOperations } from '../../../hooks/useDcmtOperations';
11
11
  import { handleArchiveVisibility, searchResultToMetadataValues } from '../../../helper/queryHelper';
12
- import { genUniqueId, IconCloseCircle, IconShow, SDKUI_Localizator, IconBoard, IconDcmtTypeSys, IconDataList, IconDetailDcmts, svgToString, IconDownload, IconHide, calcIsModified, IconMenuVertical, Globalization, getListMaxItems, getSystemMetadata, IconBoxArchiveIn, IconClear, IconUndo, calcResponsiveSizes } from '../../../helper';
12
+ import { genUniqueId, IconCloseCircle, IconShow, SDKUI_Localizator, IconBoard, IconDcmtTypeSys, IconDataList, IconDetailDcmts, svgToString, IconDownload, IconHide, calcIsModified, IconMenuVertical, Globalization, getListMaxItems, getSystemMetadata, IconBoxArchiveIn, IconClear, IconUndo } from '../../../helper';
13
13
  import { hasDetailRelations, hasMasterRelations, isXMLFileExt } from '../../../helper/dcmtsHelper';
14
14
  import { TMColors } from '../../../utils/theme';
15
15
  import { StyledFormButtonsContainer, StyledModalContainer, StyledToolbarCardContainer } from '../../base/Styled';
16
16
  import ShowAlert from '../../base/TMAlert';
17
17
  import TMButton from '../../base/TMButton';
18
- import TMLayoutContainer, { TMSplitterLayout, TMLayoutItem, TMCard } from '../../base/TMLayout';
18
+ import { TMSplitterLayout, TMLayoutItem } from '../../base/TMLayout';
19
19
  import { TMExceptionBoxManager, TMMessageBoxManager, ButtonNames } from '../../base/TMPopUp';
20
20
  import TMSpinner from '../../base/TMSpinner';
21
21
  import TMToolbarCard from '../../base/TMToolbarCard';
@@ -30,7 +30,6 @@ import TMMasterDetailDcmts from './TMMasterDetailDcmts';
30
30
  import TMDcmtBlog from './TMDcmtBlog';
31
31
  import { useInputAttachmentsDialog } from '../../../hooks/useInputDialog';
32
32
  import TMModal from '../../base/TMModal';
33
- import toppy from '../../../assets/Toppy-generico.png';
34
33
  let abortControllerLocal = new AbortController();
35
34
  //#endregion
36
35
  const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes.Update, onClose, onSavedAsyncCallback, TID, DID, formMode = FormModes.Update, canNext, canPrev, count, itemIndex, onNext, onPrev, customRightSidebarItems = [], allowNavigation = true, allowRelations = true, isClosable = false, showDcmtForm = true, showDcmtFormSidebar = true, showPreview = false, showBoard = false, showSysMetadata = false, onClosePreview, titleModal, isModal = false, widthModal = "100%", heightModal = "100%" }) => {
@@ -72,7 +71,6 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
72
71
  const [dcmtFile, setDcmtFile] = useState(null);
73
72
  const [focusedMetadataValue, setFocusedMetadataValue] = useState();
74
73
  const [showAll, setShowAll] = useState(false);
75
- const [showConfirmForClose, setShowConfirmForClose] = useState(false);
76
74
  const { openConfirmAttachmentsDialog, ConfirmAttachmentsDialog } = useInputAttachmentsDialog();
77
75
  const { abortController, showWaitPanel, waitPanelTitle, showPrimary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, showSecondary, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, downloadDcmtsAsync } = useDcmtOperations();
78
76
  const deviceType = useDeviceType();
@@ -491,7 +489,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
491
489
  _jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: getSelectionDcmtInfo(), allowNavigation: allowNavigation, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev, onBack: () => setIsOpenDetails(false) }) }), isOpenMaster &&
492
490
  _jsxs(StyledModalContainer, { style: { backgroundColor: 'white' }, children: [_jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: getSelectionDcmtInfo(), isForMaster: true, allowNavigation: allowNavigation, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev, onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
493
491
  return (_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: [dcmt], isForMaster: true, allowNavigation: false, onBack: () => handleRemoveItem(dcmt.TID, dcmt.DID), appendMasterDcmts: handleAddItem }) }, `${index}-${dcmt.DID}`));
494
- })] })] }));
492
+ })] }), (isModal && onClose) && _jsx("div", { id: "TMDcmtFormShowConfirmForClose-" + id })] }));
495
493
  };
496
494
  const handleClose = () => {
497
495
  if (!isModified) {
@@ -514,31 +512,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
514
512
  }
515
513
  });
516
514
  };
517
- const closeModal = () => {
518
- if (!isModified) {
519
- onClose?.();
520
- return;
521
- }
522
- // If confirmation for closing is not yet required, prompt the user by setting showConfirmForClose to true
523
- if (showConfirmForClose === false) {
524
- setShowConfirmForClose(true);
525
- }
526
- else {
527
- // If confirmation is already shown, reset it and proceed with closing the modal
528
- setShowConfirmForClose(false);
529
- onClose?.();
530
- }
531
- };
532
- return (_jsx(_Fragment, { children: (isModal && onClose) ? _jsx(_Fragment, { children: _jsxs(TMModal, { title: titleModal, onClose: closeModal, width: widthModal ?? '100%', height: heightModal ?? '100%', hidePopup: false, children: [_jsx("div", { style: { width: "100%", height: "100%", display: 'block', padding: "4px" }, children: renderDcmtForm() }), showConfirmForClose && _jsx(TMModal, { title: titleModal, onClose: () => { setShowConfirmForClose(false); }, width: calcResponsiveSizes(deviceType, '400px', '300px', '250px'), height: '180px', hidePopup: false, children: _jsxs(TMLayoutContainer, { children: [_jsx(TMLayoutItem, { height: 'calc(100% - 40px)', children: _jsx(TMCard, { showBorder: false, scrollY: true, children: _jsxs(TMLayoutContainer, { direction: 'horizontal', alignItems: 'center', justifyContent: 'center', gap: 10, children: [_jsx(TMLayoutItem, { width: 'fit-content', children: _jsx("img", { style: { transform: 'translateY(8px)' }, src: toppy, width: 60, height: 75, alt: "" }) }), _jsx(TMLayoutItem, { height: 'fit-content', children: _jsxs("div", { children: [" ", SDKUI_Localizator.SaveQuestion, " "] }) })] }) }) }), _jsx(TMLayoutItem, { height: '40px', children: _jsxs("div", { style: { position: "relative", display: "flex", flexDirection: "row", justifyContent: "flex-end", alignItems: "center", gap: "5px", padding: "5px", userSelect: "none", borderTop: "1px solid #f3f3f3", backgroundColor: "#ffffff", zIndex: 100, }, children: [_jsx(TMButton, { caption: SDKUI_Localizator.Yes, fontSize: '1.1rem', color: 'primaryOutline', btnStyle: 'text', onClick: async () => {
533
- await onSavedAsync?.();
534
- setShowConfirmForClose(false);
535
- onClose?.();
536
- }, showTooltip: false }), _jsx(TMButton, { caption: SDKUI_Localizator.No, fontSize: '1.1rem', btnStyle: 'text', onClick: () => {
537
- setShowConfirmForClose(false);
538
- onClose?.();
539
- }, showTooltip: false, color: 'error' }), _jsx(TMButton, { caption: SDKUI_Localizator.Cancel, fontSize: '1.1rem', btnStyle: 'text', onClick: () => {
540
- setShowConfirmForClose(false);
541
- }, showTooltip: false, color: 'error' })] }) })] }) })] }) })
515
+ return (_jsx(_Fragment, { children: (isModal && onClose) ? _jsx(_Fragment, { children: _jsx(TMModal, { title: titleModal, onClose: handleClose, width: widthModal ?? '100%', height: heightModal ?? '100%', hidePopup: false, children: _jsx("div", { style: { width: "100%", height: "100%", display: 'block', padding: "4px" }, children: renderDcmtForm() }) }) })
542
516
  : renderDcmtForm() }));
543
517
  };
544
518
  export default TMDcmtForm;
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useState } from 'react';
3
3
  import { ResultTypes } from '@topconsultnpm/sdk-ts-beta';
4
4
  import { FormModes } from '../../ts/types';
5
- import { IconArrowDown, IconArrowLeft, IconArrowUp, IconCloseCircle, IconHide, IconSave, IconShow, IconUndo, IconWarning, LocalizeFormModes, SDKUI_Localizator, calcResponsiveSizes, getColor } from '../../helper';
5
+ import { IconArrowDown, IconArrowLeft, IconArrowUp, IconCloseCircle, IconHide, IconSave, IconShow, IconUndo, IconWarning, LocalizeFormModes, SDKUI_Localizator, getColor } from '../../helper';
6
6
  import { ButtonNames, TMExceptionBoxManager, TMMessageBoxManager } from '../base/TMPopUp';
7
7
  import TMLayoutContainer, { TMCard, TMLayoutItem, TMSplitterLayout } from '../base/TMLayout';
8
8
  import { StyledResultTypeContainer, StyledToolbarForm } from '../base/Styled';
@@ -11,11 +11,9 @@ import { TMColors } from '../../utils/theme';
11
11
  import TMValidationItemsList from '../grids/TMValidationItemsList';
12
12
  import TMModal from '../base/TMModal';
13
13
  import { DeviceType, useDeviceType } from '../base/TMDeviceProvider';
14
- import toppy from '../../assets/Toppy-generico.png';
15
14
  const TMSaveForm = ({ id, formMode = FormModes.Update, showToolbar = true, skipIsModifiedCheck = false, title, children, isModal, exception, customToolbarElements, hasNavigation, showSaveButton = true, showBackButton, showWarningsCount = true, showErrorCount = true, showUndoButton = true, onClose, onSaveAsync, onNext, onPrev, canNext, canPrev, isModified, onShowList, validationItems = [], onUndo, onCancel, width, height }) => {
16
15
  const [showList, setShowList] = useState(true);
17
16
  const [showErrorGrid, setShowErrorGrid] = useState(false);
18
- const [showConfirmForClose, setShowConfirmForClose] = useState(false);
19
17
  const deviceType = useDeviceType();
20
18
  const doSaveAsync = async () => { try {
21
19
  await onSaveAsync?.();
@@ -72,6 +70,7 @@ const TMSaveForm = ({ id, formMode = FormModes.Update, showToolbar = true, skipI
72
70
  return;
73
71
  }
74
72
  TMMessageBoxManager.show({
73
+ parentId: isModal ? "TMSaveFormShowConfirmForClose-" + id : undefined,
75
74
  message: SDKUI_Localizator.SaveQuestion, buttons: [ButtonNames.YES, ButtonNames.NO, ButtonNames.CANCEL],
76
75
  onButtonClick: async (e) => {
77
76
  try {
@@ -89,25 +88,6 @@ const TMSaveForm = ({ id, formMode = FormModes.Update, showToolbar = true, skipI
89
88
  }
90
89
  });
91
90
  };
92
- const closeModal = () => {
93
- // If there are no unsaved modifications or we are skipping the modification check, close the modal immediately
94
- if (!isModified || skipIsModifiedCheck) {
95
- onClose?.();
96
- deviceType === DeviceType.MOBILE && setShowList(true), onShowList?.(true);
97
- return;
98
- }
99
- // If confirmation for closing is not yet required, prompt the user by setting showConfirmForClose to true
100
- if (showConfirmForClose === false) {
101
- setShowConfirmForClose(true);
102
- }
103
- else {
104
- // If confirmation is already shown, reset it and proceed with closing the modal
105
- setShowConfirmForClose(false);
106
- onClose?.();
107
- deviceType === DeviceType.MOBILE && setShowList(true), onShowList?.(true);
108
- return;
109
- }
110
- };
111
91
  const warningsCount = validationItems.filter(o => o.ResultType == ResultTypes.WARNING).length;
112
92
  const errorsCount = validationItems.filter(o => o.ResultType == ResultTypes.ERROR).length;
113
93
  const renderSaveForm = () => {
@@ -118,19 +98,9 @@ const TMSaveForm = ({ id, formMode = FormModes.Update, showToolbar = true, skipI
118
98
  _jsx("div", { style: { right: '50px', position: 'absolute' }, children: deviceType !== DeviceType.MOBILE && onCancel && _jsx(TMButton, { icon: _jsx(IconCloseCircle, {}), onClick: onCancel, btnStyle: 'toolbar', caption: SDKUI_Localizator.Cancel, color: 'tertiary' }) })] }) }), _jsx(TMLayoutItem, { height: showToolbar ? 'calc(100% - 35px)' : '100%', children: _jsxs(TMSplitterLayout, { separatorSize: 4, direction: 'vertical', start: showErrorGrid && validationItems.length > 0 ? ['80%', '20%'] : ['100%', '0'], min: ['0', '0'], children: [_jsx(TMCard, { showBorder: false, children: exception
119
99
  ?
120
100
  _jsx("div", { style: { width: '100%', height: '100%', marginTop: '50px', display: 'flex', alignItems: 'center', justifyContent: 'center', flexDirection: 'column', color: getColor('error') }, children: 'Si è verificato un errore' })
121
- : _jsx(_Fragment, { children: children }) }), showErrorGrid && validationItems.length > 0 ? _jsx(TMCard, { scrollY: true, padding: false, showBorder: false, children: _jsx(TMValidationItemsList, { validationItems: validationItems }) }) : _jsx(_Fragment, {})] }) })] }));
101
+ : _jsx(_Fragment, { children: children }) }), showErrorGrid && validationItems.length > 0 ? _jsx(TMCard, { scrollY: true, padding: false, showBorder: false, children: _jsx(TMValidationItemsList, { validationItems: validationItems }) }) : _jsx(_Fragment, {})] }) }), (isModal && onClose) && _jsx("div", { id: "TMSaveFormShowConfirmForClose-" + id })] }));
122
102
  };
123
- return (_jsx(_Fragment, { children: (isModal && onClose) ? _jsx(_Fragment, { children: _jsxs(TMModal, { title: `${title} - ${LocalizeFormModes(formMode)}`, onClose: closeModal, width: width ?? '100%', height: height ?? '100%', hidePopup: false, children: [_jsx("div", { style: { width: "100%", height: "100%", display: 'block' }, children: renderSaveForm() }), showConfirmForClose && _jsx(TMModal, { title: `${title} - ${LocalizeFormModes(formMode)}`, onClose: () => { setShowConfirmForClose(false); }, width: calcResponsiveSizes(deviceType, '400px', '300px', '250px'), height: '180px', hidePopup: false, children: _jsxs(TMLayoutContainer, { children: [_jsx(TMLayoutItem, { height: 'calc(100% - 40px)', children: _jsx(TMCard, { showBorder: false, scrollY: true, children: _jsxs(TMLayoutContainer, { direction: 'horizontal', alignItems: 'center', justifyContent: 'center', gap: 10, children: [_jsx(TMLayoutItem, { width: 'fit-content', children: _jsx("img", { style: { transform: 'translateY(8px)' }, src: toppy, width: 60, height: 75, alt: "" }) }), _jsx(TMLayoutItem, { height: 'fit-content', children: _jsxs("div", { children: [" ", SDKUI_Localizator.SaveQuestion, " "] }) })] }) }) }), _jsx(TMLayoutItem, { height: '40px', children: _jsxs("div", { style: { position: "relative", display: "flex", flexDirection: "row", justifyContent: "flex-end", alignItems: "center", gap: "5px", padding: "5px", userSelect: "none", borderTop: "1px solid #f3f3f3", backgroundColor: "#ffffff", zIndex: 100, }, children: [_jsx(TMButton, { caption: SDKUI_Localizator.Yes, fontSize: '1.1rem', color: 'primaryOutline', btnStyle: 'text', onClick: async () => {
124
- deviceType === DeviceType.MOBILE ? (await onSaveAsync?.(), setShowList(true), onShowList?.(true)) : await onSaveAsync?.();
125
- setShowConfirmForClose(false);
126
- onClose?.();
127
- }, showTooltip: false }), _jsx(TMButton, { caption: SDKUI_Localizator.No, fontSize: '1.1rem', btnStyle: 'text', onClick: () => {
128
- deviceType === DeviceType.MOBILE && (onUndo(), setShowList(true), onShowList?.(true));
129
- setShowConfirmForClose(false);
130
- onClose?.();
131
- }, showTooltip: false, color: 'error' }), _jsx(TMButton, { caption: SDKUI_Localizator.Cancel, fontSize: '1.1rem', btnStyle: 'text', onClick: () => {
132
- setShowConfirmForClose(false);
133
- }, showTooltip: false, color: 'error' })] }) })] }) })] }) })
103
+ return (_jsx(_Fragment, { children: (isModal && onClose) ? _jsx(_Fragment, { children: _jsx(TMModal, { title: `${title} - ${LocalizeFormModes(formMode)}`, onClose: doClose, width: width ?? '100%', height: height ?? '100%', hidePopup: false, children: _jsx("div", { style: { width: "100%", height: "100%", display: 'block' }, children: renderSaveForm() }) }) })
134
104
  : renderSaveForm() }));
135
105
  };
136
106
  export default TMSaveForm;
@@ -112,6 +112,8 @@ export declare class SDKUI_Localizator {
112
112
  static get DuplicationOperationInterrupted(): "Duplikationsvorgang abgebrochen" | "Duplication operation interrupted" | "Operación de duplicación interrumpida" | "Opération de duplication interrompue" | "Operação de duplicação interrompida" | "Operazione di duplicazione interrotta";
113
113
  static get Edit_ConfirmFor1(): "Möchten Sie '{{0}}' ändern?" | "Are you sure you want to modify '{{0}}'?" | "¿Estás seguro de que deseas modificar '{{0}}'?" | "Êtes-vous sûr de vouloir modifier '{{0}}'?" | "Você tem certeza que deseja modificar '{{0}}'?" | "Sei sicuro di voler modificare '{{0}}'?";
114
114
  static get Edit_ConfirmForN(): "{{0}} ausgewählte Objekte. Alle ändern?" | "{{0}} selected objects. Modify them all?" | "{{0}} objetos seleccionados. ¿Modificar todos?" | "{{0}} objets sélectionnés. Voulez-vous tous les modifier?" | "{{0}} objetos selecionados. Modificá-los todos?" | "{{0}} oggetti selezionati. Modificare tutti?";
115
+ static get ElectronicInvoice(): "Elektronische Rechnung" | "Electronic invoice" | "Factura electrónica" | "Facture électronique" | "Fatura eletrônica" | "Fattura elettronica";
116
+ static get ElectronicOrder(): "Elektronische Bestellung" | "Electronic order" | "Orden electrónica" | "Commande électronique" | "Pedido eletrônico" | "Ordine elettronico";
115
117
  static get EmailIsNotValid(): "Dies ist keine gültige e-mail Adresse" | "This is not a valid email address" | "Esta no es una dirección de correo electrónico válida." | "Cette adresse email n'est pas valide" | "Este não é um endereço de e-mail válido" | "Questo non è un indirizzo e-mail valido";
116
118
  static get Endpoint(): "Zugangspunkt" | "Endpoint" | "Punto de acceso" | "Point d'entrée" | "Ponto de acesso" | "Punto di accesso";
117
119
  static get EnterNameForAccess(): "Geben Sie einen Namen für den Zugriff ein" | "Enter a name for access" | "Introduzca un nombre para el acceso" | "Entrez un nom pour l'accès" | "Insira um nome para o acesso" | "Inserire un nome per l'accesso";
@@ -1075,6 +1075,26 @@ export class SDKUI_Localizator {
1075
1075
  default: return "{{0}} oggetti selezionati. Modificare tutti?";
1076
1076
  }
1077
1077
  }
1078
+ static get ElectronicInvoice() {
1079
+ switch (this._cultureID) {
1080
+ case CultureIDs.De_DE: return "Elektronische Rechnung";
1081
+ case CultureIDs.En_US: return "Electronic invoice";
1082
+ case CultureIDs.Es_ES: return "Factura electrónica";
1083
+ case CultureIDs.Fr_FR: return "Facture électronique";
1084
+ case CultureIDs.Pt_PT: return "Fatura eletrônica";
1085
+ default: return "Fattura elettronica";
1086
+ }
1087
+ }
1088
+ static get ElectronicOrder() {
1089
+ switch (this._cultureID) {
1090
+ case CultureIDs.De_DE: return "Elektronische Bestellung";
1091
+ case CultureIDs.En_US: return "Electronic order";
1092
+ case CultureIDs.Es_ES: return "Orden electrónica";
1093
+ case CultureIDs.Fr_FR: return "Commande électronique";
1094
+ case CultureIDs.Pt_PT: return "Pedido eletrônico";
1095
+ default: return "Ordine elettronico";
1096
+ }
1097
+ }
1078
1098
  static get EmailIsNotValid() {
1079
1099
  switch (this._cultureID) {
1080
1100
  case CultureIDs.De_DE: return "Dies ist keine gültige e-mail Adresse";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react-beta",
3
- "version": "6.12.86",
3
+ "version": "6.12.88",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",