@topconsultnpm/sdkui-react 6.22.0-dev3.3 → 6.22.0-dev3.30

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.
Files changed (172) hide show
  1. package/lib/components/NewComponents/ContextMenu/styles.d.ts +45 -43
  2. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +67 -60
  3. package/lib/components/base/Styled.d.ts +93 -77
  4. package/lib/components/base/Styled.js +7 -5
  5. package/lib/components/base/TMAlert.js +6 -8
  6. package/lib/components/base/TMAreaManager.js +53 -55
  7. package/lib/components/base/TMCounterBar.d.ts +2 -2
  8. package/lib/components/base/TMCounterContainer.d.ts +2 -1
  9. package/lib/components/base/TMCustomButton.d.ts +1 -1
  10. package/lib/components/base/TMCustomButton.js +40 -48
  11. package/lib/components/base/TMDataGrid.js +2 -2
  12. package/lib/components/base/TMDataGridExportForm.d.ts +2 -1
  13. package/lib/components/base/TMFileManager.d.ts +2 -1
  14. package/lib/components/base/TMFileManagerDataGridView.d.ts +2 -1
  15. package/lib/components/base/TMFileManagerThumbnailItems.d.ts +1 -1
  16. package/lib/components/base/TMFileManagerThumbnailsView.d.ts +1 -1
  17. package/lib/components/base/TMFileManagerUtils.d.ts +4 -6
  18. package/lib/components/base/TMLayout.d.ts +4 -4
  19. package/lib/components/base/TMList.d.ts +2 -1
  20. package/lib/components/base/TMListView.d.ts +1 -1
  21. package/lib/components/base/TMPanel.js +167 -167
  22. package/lib/components/base/TMSpinner.d.ts +2 -1
  23. package/lib/components/base/TMTab.d.ts +4 -3
  24. package/lib/components/base/TMTabControl.d.ts +106 -0
  25. package/lib/components/base/TMTabControl.js +664 -0
  26. package/lib/components/base/TMTooltip.d.ts +1 -1
  27. package/lib/components/base/TMTreeView.d.ts +14 -8
  28. package/lib/components/base/TMTreeView.js +33 -1
  29. package/lib/components/base/TMUserAvatar.d.ts +2 -1
  30. package/lib/components/base/TMVilViewer.d.ts +2 -1
  31. package/lib/components/base/TMWaitPanel.d.ts +3 -2
  32. package/lib/components/base/TMWaitPanel.js +1 -1
  33. package/lib/components/base/waitPanel/TMWaitPanelConfirm.d.ts +12 -0
  34. package/lib/components/base/waitPanel/TMWaitPanelConfirm.js +185 -0
  35. package/lib/components/base/waitPanel/TMWaitPanelManager.d.ts +169 -0
  36. package/lib/components/base/waitPanel/TMWaitPanelManager.js +320 -0
  37. package/lib/components/base/waitPanel/TMWaitPanelView.d.ts +53 -0
  38. package/lib/components/base/waitPanel/TMWaitPanelView.js +274 -0
  39. package/lib/components/base/waitPanel/index.d.ts +1 -0
  40. package/lib/components/base/waitPanel/index.js +1 -0
  41. package/lib/components/choosers/TMDynDataListItemChooser.d.ts +1 -1
  42. package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +2 -1
  43. package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +2 -1
  44. package/lib/components/choosers/TMPathChooser.js +17 -34
  45. package/lib/components/choosers/TMQuickSearchInfo.d.ts +2 -1
  46. package/lib/components/choosers/TMRelationChooser.d.ts +3 -3
  47. package/lib/components/choosers/TMUserChooser.d.ts +2 -2
  48. package/lib/components/editors/TMEditorStyled.d.ts +20 -42
  49. package/lib/components/editors/TMFormulaEditor.d.ts +1 -1
  50. package/lib/components/editors/TMHtmlContentDisplay.d.ts +2 -1
  51. package/lib/components/editors/TMHtmlEditor.d.ts +2 -1
  52. package/lib/components/editors/TMMetadataValues.js +5 -5
  53. package/lib/components/editors/TMTreeDropDown.d.ts +1 -1
  54. package/lib/components/features/archive/TMArchive.js +7 -2
  55. package/lib/components/features/assistant/TMHelpOnLineChat.d.ts +28 -0
  56. package/lib/components/features/assistant/TMHelpOnLineChat.js +888 -0
  57. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +1 -1
  58. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.js +2 -2
  59. package/lib/components/features/blog/TMBlogCommentForm.d.ts +2 -1
  60. package/lib/components/features/documents/TMBatchUpdateForm.js +3 -4
  61. package/lib/components/features/documents/TMCopyToFolderForm.js +50 -42
  62. package/lib/components/features/documents/TMDcmtForm.js +51 -62
  63. package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +1 -1
  64. package/lib/components/features/documents/TMDcmtIcon.d.ts +2 -3
  65. package/lib/components/features/documents/TMDcmtIcon.js +3 -5
  66. package/lib/components/features/documents/TMDcmtPreview.d.ts +8 -6
  67. package/lib/components/features/documents/TMDcmtPreview.js +5 -3
  68. package/lib/components/features/documents/TMDcmtTasks.d.ts +2 -1
  69. package/lib/components/features/documents/TMDragDropOverlay.d.ts +1 -1
  70. package/lib/components/features/documents/TMFileUploader.js +26 -26
  71. package/lib/components/features/documents/TMMasterDetailDcmts.d.ts +2 -0
  72. package/lib/components/features/documents/TMMasterDetailDcmts.js +54 -129
  73. package/lib/components/features/documents/TMMasterInfoFields.d.ts +2 -1
  74. package/lib/components/features/documents/TMMasterInfoFields.js +3 -2
  75. package/lib/components/features/documents/TMMergeToPdfForm.d.ts +2 -1
  76. package/lib/components/features/documents/TMMergeToPdfForm.js +56 -54
  77. package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.d.ts +2 -1
  78. package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.js +2 -5
  79. package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.d.ts +5 -5
  80. package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.js +3 -3
  81. package/lib/components/features/documents/TMRelationViewer.d.ts +16 -9
  82. package/lib/components/features/documents/TMRelationViewer.js +238 -166
  83. package/lib/components/features/documents/relationTreeState.d.ts +32 -0
  84. package/lib/components/features/documents/relationTreeState.js +89 -0
  85. package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +2 -1
  86. package/lib/components/features/search/TMMetadataOutputForm.d.ts +2 -1
  87. package/lib/components/features/search/TMMetadataSorterForm.d.ts +2 -1
  88. package/lib/components/features/search/TMSavedQuerySelector.d.ts +2 -2
  89. package/lib/components/features/search/TMSearch.d.ts +1 -1
  90. package/lib/components/features/search/TMSearch.js +68 -9
  91. package/lib/components/features/search/TMSearchQueryPanel.d.ts +9 -3
  92. package/lib/components/features/search/TMSearchResult.d.ts +5 -0
  93. package/lib/components/features/search/TMSearchResult.js +19 -12
  94. package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +1 -1
  95. package/lib/components/features/search/TMSignatureInfoContent.d.ts +2 -1
  96. package/lib/components/features/search/TMTreeSelector.js +38 -36
  97. package/lib/components/features/search/TMViewHistoryDcmt.d.ts +2 -1
  98. package/lib/components/features/search/TMViewHistoryDcmt.js +14 -25
  99. package/lib/components/features/tasks/TMTaskForm.d.ts +1 -1
  100. package/lib/components/features/tasks/TMTaskFormUtils.d.ts +10 -10
  101. package/lib/components/features/tasks/TMTasksAgenda.d.ts +1 -1
  102. package/lib/components/features/tasks/TMTasksCalendar.d.ts +1 -1
  103. package/lib/components/features/tasks/TMTasksHeader.d.ts +1 -1
  104. package/lib/components/features/tasks/TMTasksPanelContent.d.ts +1 -1
  105. package/lib/components/features/tasks/TMTasksUtilsView.d.ts +5 -5
  106. package/lib/components/features/tasks/TMTasksView.d.ts +1 -1
  107. package/lib/components/features/tasks/TMTasksView.js +96 -101
  108. package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +3 -2
  109. package/lib/components/features/wg/TMWGsCopyMoveForm.js +91 -91
  110. package/lib/components/features/workflow/TMWorkflowPopup.d.ts +8 -7
  111. package/lib/components/features/workflow/diagram/WorkitemRecipientsEditor.d.ts +3 -1
  112. package/lib/components/forms/Login/ChangePasswordInputs.d.ts +3 -1
  113. package/lib/components/forms/Login/Chooser.d.ts +2 -2
  114. package/lib/components/forms/TMChooserForm.d.ts +2 -1
  115. package/lib/components/forms/TMResultDialog.js +1 -1
  116. package/lib/components/forms/TMSaveForm.d.ts +4 -4
  117. package/lib/components/grids/TMBlogAttachments.d.ts +2 -1
  118. package/lib/components/grids/TMBlogHeader.d.ts +1 -1
  119. package/lib/components/grids/TMBlogsPost.d.ts +1 -1
  120. package/lib/components/grids/TMBlogsPost.js +92 -96
  121. package/lib/components/grids/TMBlogsPostUtils.d.ts +9 -9
  122. package/lib/components/grids/TMValidationItemsList.d.ts +2 -1
  123. package/lib/components/index.d.ts +6 -0
  124. package/lib/components/index.js +5 -0
  125. package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +2 -1
  126. package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +2 -2
  127. package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +5 -6
  128. package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +2 -2
  129. package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +2 -2
  130. package/lib/components/pages/TMPage.d.ts +1 -1
  131. package/lib/components/pages/TMPage.js +29 -31
  132. package/lib/components/query/TMQueryEditor.d.ts +17 -10
  133. package/lib/components/query/TMQueryEditor.js +2 -1
  134. package/lib/components/settings/SettingsAppearance.d.ts +2 -1
  135. package/lib/components/sidebar/TMAboutApp.d.ts +2 -1
  136. package/lib/components/sidebar/TMCommandsPanel.d.ts +4 -4
  137. package/lib/components/sidebar/TMHeader.d.ts +4 -3
  138. package/lib/components/sidebar/TMHeader.js +2 -2
  139. package/lib/components/viewers/TMDataListItemViewer.d.ts +3 -2
  140. package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +3 -2
  141. package/lib/components/viewers/TMMidViewer.d.ts +2 -2
  142. package/lib/components/viewers/TMTidViewer.d.ts +2 -2
  143. package/lib/helper/Enum_Localizator.js +1 -0
  144. package/lib/helper/SDKUI_Localizator.d.ts +24 -0
  145. package/lib/helper/SDKUI_Localizator.js +240 -0
  146. package/lib/helper/TMAppUpdatedModal.d.ts +2 -1
  147. package/lib/helper/TMAppUpdatedModal.js +93 -93
  148. package/lib/helper/TMCommandsContextMenu.d.ts +1 -1
  149. package/lib/helper/TMIcons.d.ts +280 -280
  150. package/lib/helper/TMPdfViewer.d.ts +2 -1
  151. package/lib/helper/TMToppyMessage.d.ts +2 -2
  152. package/lib/helper/TMUtils.d.ts +10 -4
  153. package/lib/helper/ZipManager.d.ts +1 -1
  154. package/lib/helper/ZipManager.js +2 -1
  155. package/lib/helper/dcmtsHelper.d.ts +2 -0
  156. package/lib/helper/dcmtsHelper.js +3 -1
  157. package/lib/helper/helpers.d.ts +1 -1
  158. package/lib/hooks/useCheckInOutOperations.d.ts +0 -6
  159. package/lib/hooks/useCheckInOutOperations.js +14 -34
  160. package/lib/hooks/useDcmtOperations.d.ts +3 -12
  161. package/lib/hooks/useDcmtOperations.js +187 -179
  162. package/lib/hooks/useDocumentOperations.d.ts +1 -0
  163. package/lib/hooks/useDocumentOperations.js +14 -25
  164. package/lib/hooks/useInputDialog.d.ts +2 -1
  165. package/lib/hooks/useMultiMasterDetailDcmts.d.ts +0 -15
  166. package/lib/hooks/useMultiMasterDetailDcmts.js +65 -67
  167. package/lib/hooks/usePreventFileDrop.js +9 -0
  168. package/lib/hooks/useWorkflowApprove.js +33 -17
  169. package/lib/services/caseflow/CaseFlowService.d.ts +36 -6
  170. package/lib/services/caseflow/CaseFlowService.js +55 -14
  171. package/lib/services/platform_services.d.ts +3 -2
  172. package/package.json +71 -71
@@ -1,10 +1,11 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState, useMemo } from 'react';
3
3
  import TMModal from './TMModal';
4
4
  import styled from 'styled-components';
5
- import { SDKUI_Localizator, TMLayoutWaitingContainer } from '../..';
5
+ import { SDKUI_Localizator } from '../..';
6
6
  import { getButtonAttributes, getSelectedItem } from '../../helper/dcmtsHelper';
7
7
  import { DeviceType, useDeviceType } from './TMDeviceProvider';
8
+ import TMWaitPanelManager from './waitPanel/TMWaitPanelManager';
8
9
  const IframeContainer = styled.div `
9
10
  display: flex;
10
11
  height: 100%;
@@ -53,12 +54,6 @@ const TMCustomButton = (props) => {
53
54
  const [loading, setLoading] = useState(true);
54
55
  const [error, setError] = useState(false);
55
56
  const itemsToProcess = useMemo(() => selectedItems && selectedItems.length > 0 ? selectedItems : [attributes], [selectedItems, attributes]);
56
- // Stati per il wait panel
57
- const [showWaitPanel, setShowWaitPanel] = useState(itemsToProcess.length > 0 && !RunOnce);
58
- const [waitPanelText, setWaitPanelText] = useState(SDKUI_Localizator.CustomButtonActions.replaceParams(1, itemsToProcess.length));
59
- const [waitPanelValue, setWaitPanelValue] = useState(0);
60
- const [waitPanelMaxValue, setWaitPanelMaxValue] = useState(itemsToProcess.length);
61
- const [abortController, setAbortController] = useState(undefined);
62
57
  // Aggiungi timestamp all'URL per evitare cache
63
58
  const iframeUrl = useMemo(() => {
64
59
  if (!scriptUrl)
@@ -83,41 +78,45 @@ const TMCustomButton = (props) => {
83
78
  setLoading(false);
84
79
  setError(true);
85
80
  };
86
- const executeSequentially = async (controller) => {
81
+ const executeSequentially = async () => {
87
82
  if (!itemsToProcess)
88
83
  return;
89
- for (const [index, item] of itemsToProcess.entries()) {
90
- if (controller.signal.aborted)
91
- break;
92
- setWaitPanelText(SDKUI_Localizator.CustomButtonActions.replaceParams(index + 1, itemsToProcess.length));
93
- setWaitPanelValue(index);
94
- // Attendi che l'iframe sia pronto e invia il messaggio
95
- await new Promise((resolve) => {
96
- const checkIframe = setInterval(() => {
97
- if (iframeRef.current?.contentWindow) {
98
- clearInterval(checkIframe);
99
- if (selectedItems && selectedItems.length > 0) {
100
- //devo convertire item in formData
101
- const processedItem = getSelectedItem(args, formData, item);
102
- postMessageIframe(processedItem);
103
- }
104
- else {
105
- postMessageIframe(item);
84
+ const waitPanel = TMWaitPanelManager.show({
85
+ title: SDKUI_Localizator.CustomButtonAction,
86
+ max: itemsToProcess.length,
87
+ cancelable: true,
88
+ showCounters: false,
89
+ });
90
+ try {
91
+ for (const [index, item] of itemsToProcess.entries()) {
92
+ if (waitPanel.aborted)
93
+ break;
94
+ waitPanel.setSubtitle(SDKUI_Localizator.CustomButtonActions.replaceParams(index + 1, itemsToProcess.length));
95
+ // Attendi che l'iframe sia pronto e invia il messaggio
96
+ await new Promise((resolve) => {
97
+ const checkIframe = setInterval(() => {
98
+ if (iframeRef.current?.contentWindow) {
99
+ clearInterval(checkIframe);
100
+ if (selectedItems && selectedItems.length > 0) {
101
+ //devo convertire item in formData
102
+ const processedItem = getSelectedItem(args, formData, item);
103
+ postMessageIframe(processedItem);
104
+ }
105
+ else {
106
+ postMessageIframe(item);
107
+ }
108
+ // Attendi prima di passare al prossimo
109
+ setTimeout(resolve, 500);
106
110
  }
107
- //imposta 100% se sono all'ultimo item
108
- if (index === itemsToProcess.length - 1)
109
- setWaitPanelValue(index + 1);
110
- // Attendi prima di passare al prossimo
111
- setTimeout(() => {
112
- setWaitPanelValue(index + 1);
113
- resolve();
114
- }, 500);
115
- }
116
- }, 100);
117
- });
111
+ }, 100);
112
+ });
113
+ await waitPanel.step();
114
+ }
115
+ }
116
+ finally {
117
+ waitPanel.close();
118
+ onClose?.();
118
119
  }
119
- setShowWaitPanel(false);
120
- onClose?.();
121
120
  };
122
121
  const postMessageIframe = (data) => {
123
122
  console.log("TMCustomButton - postMessageIframe - data:", data);
@@ -130,14 +129,7 @@ const TMCustomButton = (props) => {
130
129
  return;
131
130
  if (!RunOnce && itemsToProcess.length > 0) {
132
131
  // esegui per ogni item selezionato
133
- const controller = new AbortController();
134
- controller.signal.addEventListener('abort', () => {
135
- setShowWaitPanel(false);
136
- onClose?.();
137
- });
138
- setAbortController(controller);
139
- setWaitPanelMaxValue(itemsToProcess.length);
140
- executeSequentially(controller);
132
+ executeSequentially();
141
133
  }
142
134
  else {
143
135
  // Modalità RunOnce: invia dati all'iframe quando è caricato
@@ -157,6 +149,6 @@ const TMCustomButton = (props) => {
157
149
  }
158
150
  }, []);
159
151
  const iframeContent = (_jsxs(IframeContainer, { style: !RunOnce ? { visibility: 'hidden' } : {}, children: [loading && _jsx(LoadingOverlay, {}), error && _jsx("div", { children: "Si \u00E8 verificato un errore nel caricamento del contenuto." }), !error && _jsx(StyledIframe, { ref: iframeRef, loading: 'lazy', onLoad: handleLoad, onError: handleError, src: iframeUrl })] }));
160
- return isModal && RunOnce ? (_jsx(TMModal, { title: button.title, width: isMobile ? '95%' : '60%', height: isMobile ? '95%' : '70%', resizable: isMobile ? false : true, expandable: isMobile ? false : true, onClose: onClose, children: iframeContent })) : !RunOnce && (_jsxs(_Fragment, { children: [_jsx(TMLayoutWaitingContainer, { showWaitPanel: showWaitPanel, waitPanelTitle: SDKUI_Localizator.CustomButtonAction, showWaitPanelPrimary: true, waitPanelTextPrimary: waitPanelText, waitPanelValuePrimary: waitPanelValue, waitPanelMaxValuePrimary: waitPanelMaxValue, showWaitPanelSecondary: false, isCancelable: true, abortController: abortController, children: undefined }), iframeContent] }));
152
+ return isModal && RunOnce ? (_jsx(TMModal, { title: button.title, width: isMobile ? '95%' : '60%', height: isMobile ? '95%' : '70%', resizable: isMobile ? false : true, expandable: isMobile ? false : true, onClose: onClose, children: iframeContent })) : !RunOnce && iframeContent;
161
153
  };
162
154
  export default TMCustomButton;
@@ -23,7 +23,7 @@ const TMDataGrid = React.forwardRef((props, ref) => {
23
23
  // events and callbacks
24
24
  onSelectionChanged, onFocusedRowChanged, onRowDblClick, onRowClick, onCellClick, onCellDblClick, onOptionChanged, onContentReady, onContextMenuPreparing, onInitialized, onEditorPreparing, onCellPrepared, onRowPrepared, onRowUpdating, onRowExpanded, onRowCollapsed, onRowUpdated, onSaved, onEditCanceled, onEditingStart, onEditingChange, customizeColumns, onKeyDown, scrolling = { mode: 'standard', useNative: SDKUI_Globals.userSettings?.themeSettings.gridSettings.useNativeScrollbar === 1 }, paging = { enabled: true, pageSize: pageSize }, pager = { visible: true, showInfo: true, showNavigationButtons: true }, selection = { mode: 'multiple', showCheckBoxesMode: "always", selectAllMode: "allPages" }, sorting, summary, stateStoring, grouping, groupPanel, filterRow, headerFilter, editing, rowDragging, masterDetail,
25
25
  // other properties
26
- disabled = false, autoNavigateToFocusedRow = true, columnResizingMode = 'widget', columnHidingEnabled = true, columnAutoWidth = true, allowColumnResizing = true, allowColumnReordering = true, showBorders = true, showRowLines = SDKUI_Globals.userSettings?.themeSettings.gridSettings.showRowLines === 1, showColumnLines = SDKUI_Globals.userSettings?.themeSettings.gridSettings.showColumnLines === 1, showColumnHeaders = true, rowAlternationEnabled = false, wordWrapEnabled = false, noDataText, columnMinWidth,
26
+ disabled = false, autoNavigateToFocusedRow = true, columnResizingMode = 'widget', columnHidingEnabled = true, columnAutoWidth = true, allowColumnResizing = true, allowColumnReordering = true, showBorders = true, showRowLines = SDKUI_Globals.userSettings?.themeSettings.gridSettings.showRowLines === 1, showColumnLines = SDKUI_Globals.userSettings?.themeSettings.gridSettings.showColumnLines === 1, showColumnHeaders = true, rowAlternationEnabled = false, repaintChangesOnly = false, wordWrapEnabled = false, noDataText, columnMinWidth,
27
27
  // styles
28
28
  id, width = '100%', height = '100%', } = props;
29
29
  const internalRef = React.useRef(null);
@@ -416,7 +416,7 @@ const TMDataGrid = React.forwardRef((props, ref) => {
416
416
  // events and callbacks
417
417
  onSelectionChanged: onSelectionChangedCallback, onRowDblClick: onRowDblClickCallback, onRowPrepared: onRowPrepared, onContextMenuPreparing: onContextMenuPreparingCallback, onToolbarPreparing: onToolbarPreparingCallback, onFocusedRowChanged: onFocusedRowChanged, onRowClick: onRowClick, onCellClick: onCellClick, onCellDblClick: onCellDblClick, onOptionChanged: onOptionChangedCallback, onContentReady: onContentReadyCallback, onInitialized: onInitialized, customizeColumns: customizeColumns, onEditorPreparing: onEditorPreparing, onCellPrepared: onCellPrepared, onRowUpdating: onRowUpdating, onRowExpanded: onRowExpanded, onRowCollapsed: onRowCollapsed, onRowUpdated: onRowUpdated, onSaved: onSaved, onEditCanceled: onEditCanceled, onEditingStart: onEditingStart, onEditingChange: onEditingChange, onKeyDown: onKeyDown,
418
418
  // other properties
419
- disabled: disabled, autoNavigateToFocusedRow: autoNavigateToFocusedRow, focusedRowKey: focusedRowKey, columnHidingEnabled: columnHidingEnabled, columnResizingMode: columnResizingMode, columnAutoWidth: columnAutoWidth, allowColumnResizing: allowColumnResizing, allowColumnReordering: allowColumnReordering, showBorders: showBorders, showRowLines: showRowLines, showColumnLines: showColumnLines, showColumnHeaders: showColumnHeaders, rowAlternationEnabled: rowAlternationEnabled, wordWrapEnabled: wordWrapEnabled, columnMinWidth: columnMinWidth, noDataText: noDataText,
419
+ disabled: disabled, autoNavigateToFocusedRow: autoNavigateToFocusedRow, focusedRowKey: focusedRowKey, columnHidingEnabled: columnHidingEnabled, columnResizingMode: columnResizingMode, columnAutoWidth: columnAutoWidth, allowColumnResizing: allowColumnResizing, allowColumnReordering: allowColumnReordering, showBorders: showBorders, showRowLines: showRowLines, showColumnLines: showColumnLines, showColumnHeaders: showColumnHeaders, rowAlternationEnabled: rowAlternationEnabled, repaintChangesOnly: repaintChangesOnly, wordWrapEnabled: wordWrapEnabled, columnMinWidth: columnMinWidth, noDataText: noDataText,
420
420
  // styles
421
421
  width: width, height: height, style: {
422
422
  userSelect: 'none',
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { IColumnProps } from 'devextreme-react/data-grid';
2
3
  import { SearchResultDescriptor } from '@topconsultnpm/sdk-ts';
3
4
  export type FormatOption = {
@@ -11,5 +12,5 @@ interface TMDataGridExportFormProps {
11
12
  selectedRowKeys: Array<number>;
12
13
  onCloseExportForm: () => void;
13
14
  }
14
- declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) => import("react/jsx-runtime").JSX.Element;
15
+ declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) => React.JSX.Element;
15
16
  export default TMDataGridExportForm;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { FileItem } from "./TMFileManagerUtils";
2
3
  import { TMContextMenuItemProps } from '../NewComponents/ContextMenu/types';
3
4
  interface TMFileManagerProps {
@@ -42,5 +43,5 @@ interface TMFileManagerProps {
42
43
  /** Optional: Callback to handle back button */
43
44
  onMaximizePanel?: () => void;
44
45
  }
45
- declare const TMFileManager: (props: TMFileManagerProps) => import("react/jsx-runtime").JSX.Element;
46
+ declare const TMFileManager: (props: TMFileManagerProps) => React.JSX.Element;
46
47
  export default TMFileManager;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { FileItem } from "./TMFileManagerUtils";
2
3
  import { UserDescriptor } from "@topconsultnpm/sdk-ts";
3
4
  import { TMContextMenuItemProps } from "../NewComponents/ContextMenu/types";
@@ -13,5 +14,5 @@ interface TMFileManagerDataGridViewProps {
13
14
  userID?: number;
14
15
  onDoubleClickHandler?: (fileItem: FileItem | undefined) => void;
15
16
  }
16
- declare const TMFileManagerDataGridView: (props: TMFileManagerDataGridViewProps) => import("react/jsx-runtime").JSX.Element;
17
+ declare const TMFileManagerDataGridView: (props: TMFileManagerDataGridViewProps) => React.JSX.Element;
17
18
  export default TMFileManagerDataGridView;
@@ -20,5 +20,5 @@ export interface TMFileManagerThumbnailItemsProps {
20
20
  onDoubleClick?: (file: FileItem) => void;
21
21
  userID?: number;
22
22
  }
23
- declare const TMFileManagerThumbnailItems: (props: TMFileManagerThumbnailItemsProps) => import("react/jsx-runtime").JSX.Element;
23
+ declare const TMFileManagerThumbnailItems: (props: TMFileManagerThumbnailItemsProps) => React.JSX.Element;
24
24
  export default TMFileManagerThumbnailItems;
@@ -28,5 +28,5 @@ interface TMFileManagerThumbnailsViewProps {
28
28
  };
29
29
  }>>;
30
30
  }
31
- declare const TMFileManagerThumbnailsView: (props: TMFileManagerThumbnailsViewProps) => import("react/jsx-runtime").JSX.Element;
31
+ declare const TMFileManagerThumbnailsView: (props: TMFileManagerThumbnailsViewProps) => React.JSX.Element;
32
32
  export default TMFileManagerThumbnailsView;
@@ -48,15 +48,13 @@ export declare const colors: {
48
48
  LIGHT_YELLOW: string;
49
49
  MEDIUM_GREEN: string;
50
50
  };
51
- export declare const TMFileItemContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$backgroundColor" | "$bgHoverColor" | "$textColor"> & {
51
+ export declare const TMFileItemContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
52
+ style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
53
+ }, {
52
54
  $backgroundColor?: string;
53
55
  $textColor?: string;
54
56
  $bgHoverColor?: string;
55
- }, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$backgroundColor" | "$bgHoverColor" | "$textColor"> & {
56
- $backgroundColor?: string;
57
- $textColor?: string;
58
- $bgHoverColor?: string;
59
- }, never>>> & string;
57
+ }>> & string;
60
58
  export declare const getFileItemLinkUrl: (fileItem: FileItem | undefined) => string | undefined;
61
59
  export declare const findFileItems: (items: Array<FileItem>, id: number) => FileItem | undefined;
62
60
  export declare const setFolderTreeViewItems: (items: Array<FileItem>) => Array<TMFileManagerTreeViewDirectory>;
@@ -17,7 +17,7 @@ declare const TMCard: ({ borderRadius, onClick, scrollX, scrollY, width, height,
17
17
  scroll?: boolean;
18
18
  backgroundColor?: string;
19
19
  color?: string;
20
- }) => import("react/jsx-runtime").JSX.Element;
20
+ }) => React.JSX.Element;
21
21
  declare const TMSplitterLayout: ({ animation, showSeparator, separatorColor, overflow, separatorActiveColor, separatorSize, direction, children, start, min, }: {
22
22
  animation?: boolean;
23
23
  separatorColor?: string;
@@ -29,7 +29,7 @@ declare const TMSplitterLayout: ({ animation, showSeparator, separatorColor, ove
29
29
  children?: React.ReactNode;
30
30
  start?: string[];
31
31
  min?: string[];
32
- }) => import("react/jsx-runtime").JSX.Element;
32
+ }) => React.JSX.Element;
33
33
  declare const TMLayoutItem: ({ onClick, children, width, minWidth, maxWidth, maxHeight, height, minHeight }: {
34
34
  onClick?: () => void;
35
35
  children: React.ReactNode;
@@ -40,7 +40,7 @@ declare const TMLayoutItem: ({ onClick, children, width, minWidth, maxWidth, max
40
40
  fixed?: boolean;
41
41
  height?: string;
42
42
  minHeight?: string;
43
- }) => import("react/jsx-runtime").JSX.Element;
43
+ }) => React.JSX.Element;
44
44
  export interface ITMLayoutContainerProps {
45
45
  children: React.ReactNode;
46
46
  gap?: number;
@@ -50,6 +50,6 @@ export interface ITMLayoutContainerProps {
50
50
  onClick?: () => void;
51
51
  onContextMenu?: (e: React.MouseEvent) => void;
52
52
  }
53
- declare const TMLayoutContainer: ({ gap, onClick, justifyContent, alignItems, children, direction, onContextMenu }: ITMLayoutContainerProps) => import("react/jsx-runtime").JSX.Element;
53
+ declare const TMLayoutContainer: ({ gap, onClick, justifyContent, alignItems, children, direction, onContextMenu }: ITMLayoutContainerProps) => React.JSX.Element;
54
54
  export { TMCard, TMLayoutItem, TMSplitterLayout };
55
55
  export default TMLayoutContainer;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  interface ITMListItem {
2
3
  icon: any;
3
4
  text?: string;
@@ -5,5 +6,5 @@ interface ITMListItem {
5
6
  }
6
7
  declare const TMList: ({ items }: {
7
8
  items: ITMListItem[];
8
- }) => import("react/jsx-runtime").JSX.Element;
9
+ }) => React.JSX.Element;
9
10
  export default TMList;
@@ -37,6 +37,6 @@ interface ListProps<T> {
37
37
  onItemDblClick?: (item: T) => void;
38
38
  itemTemplate?: (item: T) => JSX.Element;
39
39
  }
40
- declare const TMListView: <T>({ customGroupingHeaders, headerBackGroundColor, header, showId, setShowId, showSearch, setShowSearch, grouping, orderBy, id, onScrollChange, scroll, searchKeys, searchable, itemTemplate, customColor, dataSource, exprKey, onSelectionChanged, onItemClick, onItemDblClick, selectedItem, autoScrollToSelectedItem }: ListProps<T>) => import("react/jsx-runtime").JSX.Element;
40
+ declare const TMListView: <T>({ customGroupingHeaders, headerBackGroundColor, header, showId, setShowId, showSearch, setShowSearch, grouping, orderBy, id, onScrollChange, scroll, searchKeys, searchable, itemTemplate, customColor, dataSource, exprKey, onSelectionChanged, onItemClick, onItemDblClick, selectedItem, autoScrollToSelectedItem }: ListProps<T>) => React.JSX.Element;
41
41
  export default TMListView;
42
42
  export declare const CustomListViewHeader: React.FC<ITMListViewHeader>;
@@ -6,97 +6,97 @@ import TMButton from './TMButton';
6
6
  import { LoadIndicator } from 'devextreme-react/load-indicator';
7
7
  import { TMExceptionBoxManager } from './TMPopUp';
8
8
  import { Gutters, TMColors } from '../../utils/theme';
9
- const StyledBackButton = styled.button `
10
- display: flex;
11
- align-items: center;
12
- justify-content: center;
13
- gap: 4px;
14
- padding: 4px 10px;
15
- border: 1px solid ${({ $isActive }) => $isActive ? 'rgba(37, 89, 165, 0.3)' : 'rgba(255, 255, 255, 0.4)'};
16
- border-radius: 6px;
17
- cursor: pointer;
18
- font-weight: 500;
19
- font-size: 0.85rem;
20
- flex-shrink: 0;
21
- transition: all 0.15s ease;
22
- background-color: ${({ $isActive }) => $isActive ? '#FFFFFF' : '#2559A5'};
23
- box-shadow: none;
24
-
25
- &&, && * {
26
- color: ${({ $isActive }) => $isActive ? '#2559A5' : '#FFFFFF'} !important;
27
- }
28
-
29
- svg {
30
- font-size: 14px;
31
- }
9
+ const StyledBackButton = styled.button `
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ gap: 4px;
14
+ padding: 4px 10px;
15
+ border: 1px solid ${({ $isActive }) => $isActive ? 'rgba(37, 89, 165, 0.3)' : 'rgba(255, 255, 255, 0.4)'};
16
+ border-radius: 6px;
17
+ cursor: pointer;
18
+ font-weight: 500;
19
+ font-size: 0.85rem;
20
+ flex-shrink: 0;
21
+ transition: all 0.15s ease;
22
+ background-color: ${({ $isActive }) => $isActive ? '#FFFFFF' : '#2559A5'};
23
+ box-shadow: none;
24
+
25
+ &&, && * {
26
+ color: ${({ $isActive }) => $isActive ? '#2559A5' : '#FFFFFF'} !important;
27
+ }
28
+
29
+ svg {
30
+ font-size: 14px;
31
+ }
32
32
  `;
33
33
  import { AppModules, SDK_Globals } from '@topconsultnpm/sdk-ts';
34
34
  import { DeviceType, useDeviceType } from './TMDeviceProvider';
35
- const StyledPanelContainer = styled.div `
36
- width: 100%;
37
- height: 100%;
38
- font-size: 1rem;
39
- box-shadow: 3px 3px 5px #D3D3D3BF;
40
- border-radius: 10px;
41
- opacity: 1;
42
- background: #FFFFFF;
43
- min-height: 0;
44
- overflow: hidden;
45
- position: ${({ $isMaximized }) => $isMaximized ? 'fixed' : 'relative'};
46
- top: ${({ $isMaximized }) => $isMaximized ? '50px' : 'auto'};
47
- left: ${({ $isMaximized }) => $isMaximized ? '50px' : 'auto'};
48
- width: ${({ $isMaximized }) => $isMaximized ? `calc(100vw - 50px - (${Gutters.getGutters()}px * 2))` : '100%'};
49
- height: ${({ $isMaximized }) => $isMaximized ? `calc(100vh - 50px - (${Gutters.getGutters()}px * 2))` : '100%'};
50
- z-index: ${({ $isMaximized }) => $isMaximized ? 2000 : 'auto'};
51
- margin: ${({ $isMaximized }) => $isMaximized ? `${Gutters.getGutters()}px` : '0'};
52
- outline: none;
53
- /* transition: all 0.2s; */
35
+ const StyledPanelContainer = styled.div `
36
+ width: 100%;
37
+ height: 100%;
38
+ font-size: 1rem;
39
+ box-shadow: 3px 3px 5px #D3D3D3BF;
40
+ border-radius: 10px;
41
+ opacity: 1;
42
+ background: #FFFFFF;
43
+ min-height: 0;
44
+ overflow: hidden;
45
+ position: ${({ $isMaximized }) => $isMaximized ? 'fixed' : 'relative'};
46
+ top: ${({ $isMaximized }) => $isMaximized ? '50px' : 'auto'};
47
+ left: ${({ $isMaximized }) => $isMaximized ? '50px' : 'auto'};
48
+ width: ${({ $isMaximized }) => $isMaximized ? `calc(100vw - 50px - (${Gutters.getGutters()}px * 2))` : '100%'};
49
+ height: ${({ $isMaximized }) => $isMaximized ? `calc(100vh - 50px - (${Gutters.getGutters()}px * 2))` : '100%'};
50
+ z-index: ${({ $isMaximized }) => $isMaximized ? 2000 : 'auto'};
51
+ margin: ${({ $isMaximized }) => $isMaximized ? `${Gutters.getGutters()}px` : '0'};
52
+ outline: none;
53
+ /* transition: all 0.2s; */
54
54
  `;
55
- const StyledPanelHeader = styled.div `
56
- width:100% ;
57
- display: flex;
58
- flex-direction: row;
59
- align-items: center;
60
- justify-content: flex-start;
61
- padding: 4px 10px;
55
+ const StyledPanelHeader = styled.div `
56
+ width:100% ;
57
+ display: flex;
58
+ flex-direction: row;
59
+ align-items: center;
60
+ justify-content: flex-start;
61
+ padding: 4px 10px;
62
62
  background: ${({ $isActive, $backgroundColor, $activeGradient }) => $isActive
63
63
  ? ($activeGradient ??
64
64
  'linear-gradient(270deg, #46B5A2 16%, #3BAABC 34%, #3BAABC 34%, #3681AD 54%, #3368A5 72%, #2F549D 88%, #304F99 100%)')
65
- : ($backgroundColor ?? '#F4F4F4')};
66
- box-shadow: 3px 3px 5px #D3D3D3BF;
67
- color: ${({ $isActive, $color }) => $isActive ? '#FFFFFF' : ($color ?? '#2559A5')};
68
- border-top-right-radius: 10px;
69
- border-top-left-radius: 10px;
70
- height: 40px;
71
- font-weight: 600;
72
- outline: none;
73
- &:focus {
74
- outline: none;
75
- }
76
- // Ensure all children inherit the header color
77
- &,
78
- * {
79
- color: ${({ $isActive, $color }) => $isActive ? '#FFFFFF' : ($color ?? '#2559A5')} !important;
80
- }
65
+ : ($backgroundColor ?? '#F4F4F4')};
66
+ box-shadow: 3px 3px 5px #D3D3D3BF;
67
+ color: ${({ $isActive, $color }) => $isActive ? '#FFFFFF' : ($color ?? '#2559A5')};
68
+ border-top-right-radius: 10px;
69
+ border-top-left-radius: 10px;
70
+ height: 40px;
71
+ font-weight: 600;
72
+ outline: none;
73
+ &:focus {
74
+ outline: none;
75
+ }
76
+ // Ensure all children inherit the header color
77
+ &,
78
+ * {
79
+ color: ${({ $isActive, $color }) => $isActive ? '#FFFFFF' : ($color ?? '#2559A5')} !important;
80
+ }
81
81
  `;
82
- const StyledPanelContent = styled.div `
83
- width: 100%;
84
- height: ${props => props.$height};
85
- min-height: 0;
86
- overflow: hidden;
87
- border-bottom-right-radius: 10px;
88
- border-bottom-left-radius: 10px;
89
- padding: ${props => props.$padding};
90
- display: flex;
91
- justify-content: space-between;
92
- position: relative;
93
- user-select: none;
94
- -webkit-touch-callout: none;
95
- -webkit-user-select: none;
96
- outline: none;
97
- &:focus {
98
- outline: none;
99
- }
82
+ const StyledPanelContent = styled.div `
83
+ width: 100%;
84
+ height: ${props => props.$height};
85
+ min-height: 0;
86
+ overflow: hidden;
87
+ border-bottom-right-radius: 10px;
88
+ border-bottom-left-radius: 10px;
89
+ padding: ${props => props.$padding};
90
+ display: flex;
91
+ justify-content: space-between;
92
+ position: relative;
93
+ user-select: none;
94
+ -webkit-touch-callout: none;
95
+ -webkit-user-select: none;
96
+ outline: none;
97
+ &:focus {
98
+ outline: none;
99
+ }
100
100
  `;
101
101
  // Allineata al TABLET_BREAKPOINT (768) di TMDeviceProvider
102
102
  const MOBILE_MEDIA_QUERY = '(max-width: 767.98px)';
@@ -105,102 +105,102 @@ const MOBILE_MEDIA_QUERY = '(max-width: 767.98px)';
105
105
  // la track (larga quanto il viewport) va a +100% della PROPRIA larghezza, il testo a -100%
106
106
  // della SUA. Le due animazioni hanno stessa durata ed easing, quindi lo scostamento netto
107
107
  // in ogni istante è esattamente e(t) * (viewport - testo).
108
- const panelTitleTrackMarquee = keyframes `
109
- 0%, 15% { transform: translateX(0); }
110
- 45%, 55% { transform: translateX(100%); }
111
- 85%, 100% { transform: translateX(0); }
108
+ const panelTitleTrackMarquee = keyframes `
109
+ 0%, 15% { transform: translateX(0); }
110
+ 45%, 55% { transform: translateX(100%); }
111
+ 85%, 100% { transform: translateX(0); }
112
112
  `;
113
- const panelTitleTextMarquee = keyframes `
114
- 0%, 15% { transform: translateX(0); }
115
- 45%, 55% { transform: translateX(-100%); }
116
- 85%, 100% { transform: translateX(0); }
113
+ const panelTitleTextMarquee = keyframes `
114
+ 0%, 15% { transform: translateX(0); }
115
+ 45%, 55% { transform: translateX(-100%); }
116
+ 85%, 100% { transform: translateX(0); }
117
117
  `;
118
118
  // Ritaglia il testo in eccesso: è l'unico box con overflow hidden, la track ci scorre dentro
119
- const StyledPanelTitleViewport = styled.div `
120
- flex: 1;
121
- display: flex;
122
- align-items: center;
123
- justify-content: flex-start;
124
- min-width: 0;
125
- overflow: hidden;
126
- padding: 0 8px;
119
+ const StyledPanelTitleViewport = styled.div `
120
+ flex: 1;
121
+ display: flex;
122
+ align-items: center;
123
+ justify-content: flex-start;
124
+ min-width: 0;
125
+ overflow: hidden;
126
+ padding: 0 8px;
127
127
  `;
128
128
  // Larga quanto il viewport: è il metro con cui il -100% del testo viene compensato.
129
- const StyledPanelTitleTrack = styled.div `
130
- flex: 1;
131
- min-width: 0;
132
- display: flex;
133
- align-items: center;
134
-
135
- ${({ $marquee }) => $marquee && css `
136
- @media ${MOBILE_MEDIA_QUERY} {
137
- animation: ${panelTitleTrackMarquee} 10s ease-in-out infinite;
138
-
139
- @media (prefers-reduced-motion: reduce) {
140
- animation: none;
141
- }
142
- }
143
- `}
129
+ const StyledPanelTitleTrack = styled.div `
130
+ flex: 1;
131
+ min-width: 0;
132
+ display: flex;
133
+ align-items: center;
134
+
135
+ ${({ $marquee }) => $marquee && css `
136
+ @media ${MOBILE_MEDIA_QUERY} {
137
+ animation: ${panelTitleTrackMarquee} 10s ease-in-out infinite;
138
+
139
+ @media (prefers-reduced-motion: reduce) {
140
+ animation: none;
141
+ }
142
+ }
143
+ `}
144
144
  `;
145
145
  // Senza $marquee resta il troncamento con i puntini di sempre
146
- const StyledPanelTitle = styled.div `
147
- margin: 0;
148
- white-space: nowrap;
149
- overflow: hidden;
150
- text-overflow: ellipsis;
151
-
152
- ${({ $marquee }) => $marquee && css `
153
- @media ${MOBILE_MEDIA_QUERY} {
154
- flex: 0 0 auto;
155
- width: max-content;
156
- min-width: 100%;
157
- max-width: none;
158
- overflow: visible;
159
- text-overflow: clip;
160
- animation: ${panelTitleTextMarquee} 10s ease-in-out infinite;
161
-
162
- @media (prefers-reduced-motion: reduce) {
163
- animation: none;
164
- width: auto;
165
- min-width: 0;
166
- overflow: hidden;
167
- text-overflow: ellipsis;
168
- }
169
- }
170
- `}
146
+ const StyledPanelTitle = styled.div `
147
+ margin: 0;
148
+ white-space: nowrap;
149
+ overflow: hidden;
150
+ text-overflow: ellipsis;
151
+
152
+ ${({ $marquee }) => $marquee && css `
153
+ @media ${MOBILE_MEDIA_QUERY} {
154
+ flex: 0 0 auto;
155
+ width: max-content;
156
+ min-width: 100%;
157
+ max-width: none;
158
+ overflow: visible;
159
+ text-overflow: clip;
160
+ animation: ${panelTitleTextMarquee} 10s ease-in-out infinite;
161
+
162
+ @media (prefers-reduced-motion: reduce) {
163
+ animation: none;
164
+ width: auto;
165
+ min-width: 0;
166
+ overflow: hidden;
167
+ text-overflow: ellipsis;
168
+ }
169
+ }
170
+ `}
171
171
  `;
172
- const refreshSpin = keyframes `
173
- from { transform: rotate(0deg); }
174
- to { transform: rotate(360deg); }
172
+ const refreshSpin = keyframes `
173
+ from { transform: rotate(0deg); }
174
+ to { transform: rotate(360deg); }
175
175
  `;
176
176
  // Fa girare l'icona per tutta la durata del ricaricamento
177
- const StyledRefreshIcon = styled.span `
178
- display: flex;
179
- align-items: center;
180
- justify-content: center;
181
-
182
- ${({ $isSpinning }) => $isSpinning && css `
183
- animation: ${refreshSpin} 1s linear infinite;
184
-
185
- @media (prefers-reduced-motion: reduce) {
186
- animation: none;
187
- }
188
- `}
177
+ const StyledRefreshIcon = styled.span `
178
+ display: flex;
179
+ align-items: center;
180
+ justify-content: center;
181
+
182
+ ${({ $isSpinning }) => $isSpinning && css `
183
+ animation: ${refreshSpin} 1s linear infinite;
184
+
185
+ @media (prefers-reduced-motion: reduce) {
186
+ animation: none;
187
+ }
188
+ `}
189
189
  `;
190
190
  // Copre il solo contenuto del pannello (StyledPanelContent è position: relative con overflow hidden)
191
- const StyledPanelLoaderOverlay = styled.div `
192
- position: absolute;
193
- inset: 0;
194
- z-index: 10;
195
- display: flex;
196
- flex-direction: column;
197
- align-items: center;
198
- justify-content: center;
199
- gap: 10px;
200
- background: rgba(255, 255, 255, 0.65);
201
- border-bottom-right-radius: 10px;
202
- border-bottom-left-radius: 10px;
203
- color: ${TMColors.primaryColor};
191
+ const StyledPanelLoaderOverlay = styled.div `
192
+ position: absolute;
193
+ inset: 0;
194
+ z-index: 10;
195
+ display: flex;
196
+ flex-direction: column;
197
+ align-items: center;
198
+ justify-content: center;
199
+ gap: 10px;
200
+ background: rgba(255, 255, 255, 0.65);
201
+ border-bottom-right-radius: 10px;
202
+ border-bottom-left-radius: 10px;
203
+ color: ${TMColors.primaryColor};
204
204
  `;
205
205
  /**
206
206
  * TMPanel - Pannello con supporto Controlled/Uncontrolled