@topconsultnpm/sdkui-react 6.22.0-t2 → 6.22.0-t3

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 (199) hide show
  1. package/lib/components/NewComponents/ContextMenu/TMContextMenu.js +3 -3
  2. package/lib/components/NewComponents/ContextMenu/hooks.d.ts +1 -1
  3. package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +6 -6
  4. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +15 -15
  5. package/lib/components/base/Styled.js +7 -5
  6. package/lib/components/base/TMAccordionNew.js +7 -7
  7. package/lib/components/base/TMAlert.d.ts +32 -32
  8. package/lib/components/base/TMAlert.js +6 -8
  9. package/lib/components/base/TMAreaManager.js +53 -55
  10. package/lib/components/base/TMButton.js +4 -4
  11. package/lib/components/base/TMClosableList.js +3 -3
  12. package/lib/components/base/TMCustomButton.js +40 -48
  13. package/lib/components/base/TMDataGrid.d.ts +2 -0
  14. package/lib/components/base/TMDataGrid.js +35 -7
  15. package/lib/components/base/TMDropDownMenu.js +1 -1
  16. package/lib/components/base/TMFileManagerDataGridView.js +1 -1
  17. package/lib/components/base/TMFileManagerThumbnailItems.js +2 -2
  18. package/lib/components/base/TMLayout.d.ts +2 -2
  19. package/lib/components/base/TMLayout.js +3 -3
  20. package/lib/components/base/TMList.js +1 -1
  21. package/lib/components/base/TMListView.js +3 -3
  22. package/lib/components/base/TMModal.js +1 -1
  23. package/lib/components/base/TMPanel.js +8 -8
  24. package/lib/components/base/TMPopUp.js +2 -2
  25. package/lib/components/base/TMResizableMenu.js +2 -2
  26. package/lib/components/base/TMRightSidebar.js +1 -1
  27. package/lib/components/base/TMShowAllOrMaxItemsButton.js +1 -1
  28. package/lib/components/base/TMSpinner.d.ts +2 -1
  29. package/lib/components/base/TMSpinner.js +9 -7
  30. package/lib/components/base/TMTab.js +2 -2
  31. package/lib/components/base/TMTabControl.d.ts +106 -0
  32. package/lib/components/base/TMTabControl.js +664 -0
  33. package/lib/components/base/TMToggleButton.js +2 -2
  34. package/lib/components/base/TMToolbarCard.js +3 -3
  35. package/lib/components/base/TMTreeView.js +35 -3
  36. package/lib/components/base/TMWaitPanel.js +3 -3
  37. package/lib/components/base/waitPanel/TMWaitPanelConfirm.d.ts +12 -0
  38. package/lib/components/base/waitPanel/TMWaitPanelConfirm.js +185 -0
  39. package/lib/components/base/waitPanel/TMWaitPanelManager.d.ts +169 -0
  40. package/lib/components/base/waitPanel/TMWaitPanelManager.js +320 -0
  41. package/lib/components/base/waitPanel/TMWaitPanelView.d.ts +53 -0
  42. package/lib/components/base/waitPanel/TMWaitPanelView.js +274 -0
  43. package/lib/components/base/waitPanel/index.d.ts +1 -0
  44. package/lib/components/base/waitPanel/index.js +1 -0
  45. package/lib/components/choosers/TMCultureIDPicker.js +2 -2
  46. package/lib/components/choosers/TMDataListItemChooser.js +1 -1
  47. package/lib/components/choosers/TMDataListItemPicker.js +2 -2
  48. package/lib/components/choosers/TMDcmtTypeChooser.js +1 -1
  49. package/lib/components/choosers/TMDiskChooser.js +1 -1
  50. package/lib/components/choosers/TMDistinctValues.js +28 -19
  51. package/lib/components/choosers/TMDynDataListItemChooser.js +1 -1
  52. package/lib/components/choosers/TMImageIDChooser.js +1 -1
  53. package/lib/components/choosers/TMMetadataChooser.js +2 -2
  54. package/lib/components/choosers/TMPathChooser.js +17 -34
  55. package/lib/components/choosers/TMQuickSearchInfo.js +4 -4
  56. package/lib/components/choosers/TMQuickSearchSettingsForm.js +1 -1
  57. package/lib/components/choosers/TMRelationChooser.js +1 -1
  58. package/lib/components/choosers/TMSelectedValuesSummary.js +1 -3
  59. package/lib/components/choosers/TMUserChooser.js +1 -1
  60. package/lib/components/editors/TMCheckBox.js +1 -1
  61. package/lib/components/editors/TMDropDown.js +7 -7
  62. package/lib/components/editors/TMEditorStyled.d.ts +1 -1
  63. package/lib/components/editors/TMFormulaEditor.js +1 -1
  64. package/lib/components/editors/TMHtmlContentDisplay.js +1 -1
  65. package/lib/components/editors/TMLocalizedTextBox.js +1 -1
  66. package/lib/components/editors/TMMetadataValues.js +6 -6
  67. package/lib/components/editors/TMRadioButton.js +2 -2
  68. package/lib/components/editors/TMSummary.js +3 -3
  69. package/lib/components/editors/TMTextArea.js +3 -3
  70. package/lib/components/editors/TMTextBox.js +3 -3
  71. package/lib/components/editors/TMTextExpression.js +1 -1
  72. package/lib/components/features/archive/TMArchive.js +7 -2
  73. package/lib/components/features/assistant/TMHelpOnLineChat.d.ts +29 -0
  74. package/lib/components/features/assistant/TMHelpOnLineChat.js +1384 -0
  75. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.js +4 -4
  76. package/lib/components/features/assistant/TMToppySpeechBubble.js +1 -1
  77. package/lib/components/features/assistant/dataset/Designer-Suggested-Questions.json +102 -0
  78. package/lib/components/features/assistant/dataset/Login-Suggested-Questions.json +32 -0
  79. package/lib/components/features/assistant/dataset/Surfer-Suggested-Questions.json +102 -0
  80. package/lib/components/features/documents/TMBatchUpdateForm.js +4 -5
  81. package/lib/components/features/documents/TMCopyToFolderForm.js +50 -42
  82. package/lib/components/features/documents/TMDcmtForm.js +53 -64
  83. package/lib/components/features/documents/TMDcmtFormActionButtons.js +2 -2
  84. package/lib/components/features/documents/TMDcmtIcon.d.ts +1 -3
  85. package/lib/components/features/documents/TMDcmtIcon.js +3 -5
  86. package/lib/components/features/documents/TMDcmtPreview.js +6 -4
  87. package/lib/components/features/documents/TMDcmtTasks.js +2 -9
  88. package/lib/components/features/documents/TMDownloadRelationViewerSection.js +1 -1
  89. package/lib/components/features/documents/TMFileUploader.js +7 -7
  90. package/lib/components/features/documents/TMMasterDetailDcmts.d.ts +2 -0
  91. package/lib/components/features/documents/TMMasterDetailDcmts.js +55 -130
  92. package/lib/components/features/documents/TMMasterInfoFields.js +4 -5
  93. package/lib/components/features/documents/TMMergeToPdfForm.js +56 -54
  94. package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.js +3 -6
  95. package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.d.ts +1 -1
  96. package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.js +4 -4
  97. package/lib/components/features/documents/TMRelationViewer.d.ts +16 -9
  98. package/lib/components/features/documents/TMRelationViewer.js +240 -168
  99. package/lib/components/features/documents/copyAndMergeDcmtsShared.d.ts +1 -1
  100. package/lib/components/features/documents/relationTreeState.d.ts +32 -0
  101. package/lib/components/features/documents/relationTreeState.js +89 -0
  102. package/lib/components/features/search/TMMetadataOutputForm.js +1 -1
  103. package/lib/components/features/search/TMMetadataSorterForm.js +1 -1
  104. package/lib/components/features/search/TMSavedQuerySelector.js +2 -2
  105. package/lib/components/features/search/TMSearch.d.ts +1 -1
  106. package/lib/components/features/search/TMSearch.js +71 -12
  107. package/lib/components/features/search/TMSearchQueryEditor.js +2 -2
  108. package/lib/components/features/search/TMSearchQueryPanel.js +1 -5
  109. package/lib/components/features/search/TMSearchResult.d.ts +5 -0
  110. package/lib/components/features/search/TMSearchResult.js +34 -18
  111. package/lib/components/features/search/TMSignatureInfoContent.js +1 -1
  112. package/lib/components/features/search/TMTreeSelector.js +38 -36
  113. package/lib/components/features/search/TMViewHistoryDcmt.js +14 -25
  114. package/lib/components/features/tasks/TMTaskForm.js +1 -1
  115. package/lib/components/features/tasks/TMTaskFormUtils.js +3 -3
  116. package/lib/components/features/tasks/TMTasksAgenda.js +1 -1
  117. package/lib/components/features/tasks/TMTasksCalendar.js +1 -1
  118. package/lib/components/features/tasks/TMTasksHeader.js +1 -1
  119. package/lib/components/features/tasks/TMTasksUtilsView.js +1 -1
  120. package/lib/components/features/tasks/TMTasksView.js +97 -102
  121. package/lib/components/features/wg/TMWGsCopyMoveForm.js +92 -92
  122. package/lib/components/features/workflow/TMWorkflowPopup.js +2 -2
  123. package/lib/components/features/workflow/diagram/ConnectionComponent.js +3 -3
  124. package/lib/components/features/workflow/diagram/DiagramItemComponent.js +3 -3
  125. package/lib/components/features/workflow/diagram/DiagramItemForm.js +1 -1
  126. package/lib/components/features/workflow/diagram/DiagramItemSvgContent.js +1 -1
  127. package/lib/components/features/workflow/diagram/RecipientList.js +1 -1
  128. package/lib/components/features/workflow/diagram/WFDiagram.js +4 -4
  129. package/lib/components/forms/Login/Menu.js +1 -1
  130. package/lib/components/forms/Login/OTPReader.js +1 -1
  131. package/lib/components/forms/Login/PasswordStrengthChecker.js +1 -1
  132. package/lib/components/forms/Login/RapidAccessLogin.js +2 -2
  133. package/lib/components/forms/Login/RecoverPasswordFlow.js +2 -2
  134. package/lib/components/forms/Login/SelectBox.js +1 -1
  135. package/lib/components/forms/Login/StepIndicator.js +1 -1
  136. package/lib/components/forms/Login/TMLoginForm.js +7 -7
  137. package/lib/components/forms/Login/TextBox.js +1 -1
  138. package/lib/components/forms/TMApplyForm.js +3 -3
  139. package/lib/components/forms/TMChooserForm.js +1 -1
  140. package/lib/components/forms/TMResultDialog.js +1 -1
  141. package/lib/components/forms/TMSaveForm.js +3 -3
  142. package/lib/components/grids/TMBlogAttachments.js +1 -1
  143. package/lib/components/grids/TMBlogsPost.js +92 -96
  144. package/lib/components/grids/TMBlogsPostUtils.js +1 -1
  145. package/lib/components/grids/TMRecentsManager.js +4 -4
  146. package/lib/components/grids/TMValidationItemsList.js +1 -1
  147. package/lib/components/index.d.ts +6 -0
  148. package/lib/components/index.js +5 -0
  149. package/lib/components/layout/panelManager/TMPanelManagerContainer.js +3 -3
  150. package/lib/components/layout/panelManager/TMPanelManagerToolbar.js +1 -1
  151. package/lib/components/layout/panelManager/TMPanelWrapper.js +1 -1
  152. package/lib/components/pages/TMPage.js +30 -32
  153. package/lib/components/query/TMQueryCountButton.js +1 -1
  154. package/lib/components/query/TMQueryEditor.d.ts +3 -0
  155. package/lib/components/query/TMQueryEditor.js +9 -8
  156. package/lib/components/sidebar/TMCommandsPanel.js +1 -1
  157. package/lib/components/sidebar/TMHeader.d.ts +1 -0
  158. package/lib/components/sidebar/TMHeader.js +9 -9
  159. package/lib/components/sidebar/TMSidebar.js +1 -1
  160. package/lib/components/sidebar/TMSidebarItem.js +1 -1
  161. package/lib/components/viewers/TMMidViewer.js +2 -2
  162. package/lib/components/viewers/TMTidViewer.js +3 -3
  163. package/lib/components/wizard/TMStepIndicator.js +3 -3
  164. package/lib/helper/Enum_Localizator.d.ts +4 -4
  165. package/lib/helper/Enum_Localizator.js +1 -0
  166. package/lib/helper/Globalization.d.ts +1 -1
  167. package/lib/helper/SDKUI_Localizator.d.ts +736 -712
  168. package/lib/helper/SDKUI_Localizator.js +240 -0
  169. package/lib/helper/TMAppUpdatedModal.js +2 -2
  170. package/lib/helper/TMIcons.js +1 -3
  171. package/lib/helper/TMPdfViewer.js +1 -1
  172. package/lib/helper/TMToppyMessage.js +1 -1
  173. package/lib/helper/TMUtils.js +1 -1
  174. package/lib/helper/ZipManager.d.ts +1 -1
  175. package/lib/helper/ZipManager.js +2 -1
  176. package/lib/helper/checkinCheckoutManager.d.ts +1 -1
  177. package/lib/helper/checkinCheckoutManager.js +1 -1
  178. package/lib/helper/dcmtsHelper.d.ts +4 -2
  179. package/lib/helper/dcmtsHelper.js +3 -1
  180. package/lib/helper/helpers.d.ts +1 -1
  181. package/lib/helper/helpers.js +2 -2
  182. package/lib/hooks/tmDistinctValuesGridHelper.d.ts +1 -1
  183. package/lib/hooks/useCaseFlowApprove.d.ts +3 -3
  184. package/lib/hooks/useCheckInOutOperations.d.ts +0 -6
  185. package/lib/hooks/useCheckInOutOperations.js +14 -34
  186. package/lib/hooks/useDcmtOperations.d.ts +3 -12
  187. package/lib/hooks/useDcmtOperations.js +187 -179
  188. package/lib/hooks/useDocumentOperations.d.ts +1 -0
  189. package/lib/hooks/useDocumentOperations.js +16 -27
  190. package/lib/hooks/useInputDialog.js +1 -1
  191. package/lib/hooks/useMultiMasterDetailDcmts.d.ts +1 -16
  192. package/lib/hooks/useMultiMasterDetailDcmts.js +65 -67
  193. package/lib/hooks/usePreventFileDrop.js +9 -0
  194. package/lib/hooks/useQueryParametersDialog.js +1 -1
  195. package/lib/hooks/useWorkflowApprove.js +33 -17
  196. package/lib/services/caseflow/CaseFlowService.d.ts +47 -6
  197. package/lib/services/caseflow/CaseFlowService.js +82 -14
  198. package/lib/services/platform_services.d.ts +4 -4
  199. package/package.json +9 -10
@@ -166,7 +166,7 @@ const TMPanelManagerContainer = (props) => {
166
166
  width: (isMobile || maximizedPanels.length > 0) ? '100%' : showToolbar ? `calc(100% - 70px)` : '100%',
167
167
  height: isMobile ? (showToolbar ? `calc(100% - 55px)` : '100%') : '100%',
168
168
  flexDirection: 'row'
169
- }, children: _jsxs("div", { style: { width: "100%", height: "100%" }, children: [_jsx(StyledPanelContainerWrapper, { ref: containerRef, "$direction": direction, "$hasVisiblePanels": hasVisiblePanels(), children: panels.map((panel, index) => {
169
+ }, children: _jsxs("div", { style: { width: "100%", height: "100%" }, children: [_jsx(StyledPanelContainerWrapper, { ref: containerRef, $direction: direction, $hasVisiblePanels: hasVisiblePanels(), children: panels.map((panel, index) => {
170
170
  // Check if current panel is visible according to context state
171
171
  const isVisible = panelVisibility[panel.id];
172
172
  /*
@@ -188,7 +188,7 @@ const TMPanelManagerContainer = (props) => {
188
188
  // If the panel has child panels, render a nested TMPanelManagerContainer or a component
189
189
  if (panel.children && panel.children.length > 0) {
190
190
  const jsxComponent = panel.contentOptions?.component;
191
- return (_jsxs(React.Fragment, { children: [showGutter && (_jsx(StyledResizerGutter, { "$direction": direction, "$size": gutters, "$canResize": canResize, onMouseDown: canResize ? (e) => startResizing(e, resizeFromId, resizeToId) : undefined })), _jsx(TMPanelWrapper, { panel: panel, children: jsxComponent
191
+ return (_jsxs(React.Fragment, { children: [showGutter && (_jsx(StyledResizerGutter, { $direction: direction, $size: gutters, $canResize: canResize, onMouseDown: canResize ? (e) => startResizing(e, resizeFromId, resizeToId) : undefined })), _jsx(TMPanelWrapper, { panel: panel, children: jsxComponent
192
192
  ? React.isValidElement(jsxComponent)
193
193
  ? React.cloneElement(jsxComponent, { groupId: panel.id, mainDirection: panel.childrenGroupDirection || direction })
194
194
  : jsxComponent
@@ -196,7 +196,7 @@ const TMPanelManagerContainer = (props) => {
196
196
  }
197
197
  // If the panel has a component specified, render it with a possible gutter before it
198
198
  if (panel.contentOptions && panel.contentOptions.component) {
199
- return (_jsxs(React.Fragment, { children: [showGutter && (_jsx(StyledResizerGutter, { "$direction": direction, "$size": gutters, "$canResize": canResize, onMouseDown: canResize ? (e) => startResizing(e, resizeFromId, resizeToId) : undefined })), _jsx(TMPanelWrapper, { panel: panel, children: panel.contentOptions.component })] }, panel.id));
199
+ return (_jsxs(React.Fragment, { children: [showGutter && (_jsx(StyledResizerGutter, { $direction: direction, $size: gutters, $canResize: canResize, onMouseDown: canResize ? (e) => startResizing(e, resizeFromId, resizeToId) : undefined })), _jsx(TMPanelWrapper, { panel: panel, children: panel.contentOptions.component })] }, panel.id));
200
200
  }
201
201
  // If no children or components, render nothing for this panel
202
202
  return null;
@@ -77,7 +77,7 @@ const TMPanelManagerToolbar = (props) => {
77
77
  const isDisabled = toolbarButtonsDisabled[visibleLeafPanel.id];
78
78
  const count = visibleLeafPanel.toolbarOptions?.count ?? 0;
79
79
  const tooltip = visibleLeafPanel.toolbarOptions?.tooltip ?? '';
80
- return _jsx(TMTooltip, { content: tooltip || (visibleLeafPanel.name + (count > 0 ? ": " + count : '')), position: isMobile ? 'top' : 'left', children: _jsxs(StyledToolbarButton, { disabled: isDisabled, "$isDisabled": isDisabled, onClick: () => onClickCallback(visibleLeafPanel.id, isActive), "$isActive": isActive || visibleLeafPanel.toolbarOptions?.alwaysActiveColor, children: [typeof visibleLeafPanel.toolbarOptions?.icon === 'string' ? (_jsx("i", { className: `dx-icon dx-icon-${visibleLeafPanel.toolbarOptions?.icon}` })) : (visibleLeafPanel.toolbarOptions?.icon), (!isActive && count > 0) && _jsxs(Badge, { "$background": visibleLeafPanel.toolbarOptions?.countBackgroundColor, children: [" ", formatCount(count), " "] })] }, visibleLeafPanel.id) }, visibleLeafPanel.id);
80
+ return _jsx(TMTooltip, { content: tooltip || (visibleLeafPanel.name + (count > 0 ? ": " + count : '')), position: isMobile ? 'top' : 'left', children: _jsxs(StyledToolbarButton, { disabled: isDisabled, $isDisabled: isDisabled, onClick: () => onClickCallback(visibleLeafPanel.id, isActive), $isActive: isActive || visibleLeafPanel.toolbarOptions?.alwaysActiveColor, children: [typeof visibleLeafPanel.toolbarOptions?.icon === 'string' ? (_jsx("i", { className: `dx-icon dx-icon-${visibleLeafPanel.toolbarOptions?.icon}` })) : (visibleLeafPanel.toolbarOptions?.icon), (!isActive && count > 0) && _jsxs(Badge, { $background: visibleLeafPanel.toolbarOptions?.countBackgroundColor, children: [" ", formatCount(count), " "] })] }, visibleLeafPanel.id) }, visibleLeafPanel.id);
81
81
  }) }));
82
82
  };
83
83
  export default TMPanelManagerToolbar;
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { useMemo, useState, useEffect } from 'react';
3
3
  import { useTMPanelManagerContext } from './TMPanelManagerContext';
4
4
  import { useDeviceType, DeviceType } from '../../base/TMDeviceProvider';
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { useState, useEffect } from "react";
3
3
  import { SDK_Globals, ObjectClasses, ResultTypes } from "@topconsultnpm/sdk-ts";
4
4
  import DataGrid, { Column, GroupPanel, Grouping, HeaderFilter, LoadPanel, Pager, Paging, Scrolling, SearchPanel, Selection } from "devextreme-react/data-grid";
@@ -14,9 +14,8 @@ import { FontSize, TMColors } from "../../utils/theme";
14
14
  import selectionManagerImage from '../../assets/multipleSelectionManager.jpg';
15
15
  import { DeviceType, useDeviceType } from "../base/TMDeviceProvider";
16
16
  import { TMResultManager } from "../forms/TMResultDialog";
17
- import { TMLayoutWaitingContainer } from "../base/TMWaitPanel";
17
+ import TMWaitPanelManager from "../base/waitPanel/TMWaitPanelManager";
18
18
  import TMToolbarCard from "../base/TMToolbarCard";
19
- let abortController = new AbortController();
20
19
  const TMPage = ({ id, objClass = ObjectClasses.None, listDisabled = false, lastRefreshTime, objType, listInsteadOfContent, detailInsteadOfContent, routePage, customButtons, customColumns, searchText, detailForm, detailTitlePathKeys, deps, onSelectionChanged, onCountersChanged }) => {
21
20
  const deviceType = useDeviceType();
22
21
  let gridInstance;
@@ -28,12 +27,6 @@ const TMPage = ({ id, objClass = ObjectClasses.None, listDisabled = false, lastR
28
27
  const [selectedItems, setSelectedItems] = useState([]);
29
28
  const [visibleItems, setVisibleItems] = useState([]);
30
29
  const [formMode, setFormMode] = useState(FormModes.Update);
31
- const [showWaitPanel, setShowWaitPanel] = useState(false);
32
- const [waitPanelTitle, setWaitPanelTitle] = useState('');
33
- const [showPrimary, setShowPrimary] = useState(false);
34
- const [waitPanelTextPrimary, setWaitPanelTextPrimary] = useState('');
35
- const [waitPanelValuePrimary, setWaitPanelValuePrimary] = useState(0);
36
- const [waitPanelMaxValuePrimary, setWaitPanelMaxValuePrimary] = useState(0);
37
30
  let objName = PlatformObjectService.getName(objClass, objType);
38
31
  let objNames = PlatformObjectService.getName(objClass, objType, true);
39
32
  useEffect(() => { gridInstance?.instance().searchByText(searchText ?? ''); }, [searchText]);
@@ -95,31 +88,36 @@ const TMPage = ({ id, objClass = ObjectClasses.None, listDisabled = false, lastR
95
88
  break;
96
89
  }
97
90
  const doOperationAsync = async () => {
98
- setShowWaitPanel(true);
99
- setShowPrimary(true);
100
- setWaitPanelTitle(operationTitle);
101
- abortController = new AbortController();
91
+ const waitPanel = TMWaitPanelManager.show({
92
+ title: operationTitle,
93
+ max: selectedItems.length,
94
+ cancelable: true,
95
+ });
102
96
  let result = [];
103
- setWaitPanelMaxValuePrimary(selectedItems.length);
104
- for (let i = 0; i < selectedItems.length; i++) {
105
- if (abortController.signal.aborted) {
106
- result.push({ rowIndex: i, id1: selectedItems[i].id, id2: 0, resultType: ResultTypes.WARNING, description: `Operazione interrotta. Elaborati ${i + 1} lavori` });
107
- break;
108
- }
109
- setWaitPanelValuePrimary(i + 1);
110
- setWaitPanelTextPrimary(`Documento ${i + 1} di ${selectedItems.length}`);
111
- try {
112
- await PlatformObjectService.deleteAsync(objClass, selectedItems[i]?.id);
113
- result.push({ rowIndex: i, id1: selectedItems[i].id, id2: 0, description: objType?.toString(), resultType: ResultTypes.SUCCESS });
114
- }
115
- catch (ex) {
116
- result.push({ rowIndex: i, id1: selectedItems[i].id, id2: 0, resultType: ResultTypes.ERROR, description: getExceptionMessage(ex) });
97
+ try {
98
+ for (let i = 0; i < selectedItems.length; i++) {
99
+ if (waitPanel.aborted) {
100
+ result.push({ rowIndex: i, id1: selectedItems[i].id, id2: 0, resultType: ResultTypes.WARNING, description: `Operazione interrotta. Elaborati ${i} lavori` });
101
+ waitPanel.warning();
102
+ break;
103
+ }
104
+ waitPanel.setSubtitle(`Documento ${i + 1} di ${selectedItems.length}`);
105
+ try {
106
+ await PlatformObjectService.deleteAsync(objClass, selectedItems[i]?.id);
107
+ result.push({ rowIndex: i, id1: selectedItems[i].id, id2: 0, description: objType?.toString(), resultType: ResultTypes.SUCCESS });
108
+ waitPanel.ok();
109
+ }
110
+ catch (ex) {
111
+ result.push({ rowIndex: i, id1: selectedItems[i].id, id2: 0, resultType: ResultTypes.ERROR, description: getExceptionMessage(ex) });
112
+ waitPanel.error();
113
+ }
114
+ // Avanza a elaborazione conclusa: con un solo elemento la barra non parte dal 100%
115
+ await waitPanel.step();
117
116
  }
118
117
  }
119
- setWaitPanelMaxValuePrimary(0);
120
- setWaitPanelValuePrimary(0);
121
- setWaitPanelTextPrimary('');
122
- setShowWaitPanel(false);
118
+ finally {
119
+ waitPanel.close();
120
+ }
123
121
  TMResultManager.show(result, operationTitle, "JobID", undefined);
124
122
  await loadDataAsync();
125
123
  };
@@ -208,7 +206,7 @@ const TMPage = ({ id, objClass = ObjectClasses.None, listDisabled = false, lastR
208
206
  });
209
207
  };
210
208
  const cellRenderObjectIcon = (data) => { return PlatformObjectService.getIcon(objClass, data.row.data); };
211
- return (_jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showWaitPanel, showWaitPanelPrimary: showPrimary, waitPanelTitle: waitPanelTitle, waitPanelTextPrimary: waitPanelTextPrimary, waitPanelValuePrimary: waitPanelValuePrimary, waitPanelMaxValuePrimary: waitPanelMaxValuePrimary, isCancelable: true, abortController: abortController, children: _jsxs(TMSplitterLayout, { direction: "horizontal", showSeparator: showList && deviceType !== DeviceType.MOBILE, separatorSize: 10, separatorColor: 'transparent', separatorActiveColor: 'transparent', start: showList ? deviceType !== DeviceType.MOBILE ? ['30%', '70%'] : ['100%', '0%'] : ['0', '100%'], min: ['0px', '0px'], children: [listInsteadOfContent ??
209
+ return (_jsx(TMLayoutContainer, { direction: 'vertical', children: _jsxs(TMSplitterLayout, { direction: "horizontal", showSeparator: showList && deviceType !== DeviceType.MOBILE, separatorSize: 10, separatorColor: 'transparent', separatorActiveColor: 'transparent', start: showList ? deviceType !== DeviceType.MOBILE ? ['30%', '70%'] : ['100%', '0%'] : ['0', '100%'], min: ['0px', '0px'], children: [listInsteadOfContent ??
212
210
  _jsxs(TMToolbarCard, { title: objNames, children: [_jsx(ToolbarPage, {}), _jsxs(DataGrid, { disabled: selectionListDisabled, ref: (grid) => (gridInstance = grid), height: "calc(100% - 35px)", width: 'calc(100% - 5px)', dataSource: items, keyExpr: "id", allowColumnResizing: true, columnResizingMode: "widget", allowColumnReordering: true, showBorders: false, onContentReady: (e) => {
213
211
  setVisibleItems(e.component.getVisibleRows().map((row) => { return row.data; }));
214
212
  e.component.selectRows(selectedItems?.map((item) => item.id), false);
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import TMButton from '../base/TMButton';
3
3
  import { getQueryCountAsync, IconCount, IsParametricQuery, SDKUI_Localizator } from '../../helper';
4
4
  import { useQueryParametersDialog } from '../../hooks/useQueryParametersDialog';
@@ -47,6 +47,9 @@ interface ITMQueryEditor extends ITMApplyFormProps<QueryDescriptor> {
47
47
  isExpertMode?: boolean;
48
48
  validateSelect?: boolean;
49
49
  validateOrderBy?: boolean;
50
+ /** Richiede almeno un filtro: senza, l'errore compare nell'elenco e l'applica resta disabilitato.
51
+ * Default false — una query senza filtri è legittima quasi ovunque nel prodotto. */
52
+ validateWhereRequired?: boolean;
50
53
  showDistinct?: boolean;
51
54
  raiseWarningForOnlyMetadataDcmtTypes?: boolean;
52
55
  borderRadius?: string;
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useState } from 'react';
3
3
  import { SDK_Localizator, AccessLevels, OnJoinItem, JoinTypes, PlatformObjectValidator, MetadataDataDomains, DcmtTypeListCacheService, JoinItem, MetadataDataTypes, OrderByItem, QueryFunctions, QueryOperators, ResultTypes, SelectItem, SDK_Globals, UserListCacheService, WhereItem, SearchEngine, SelectItemVisibilities, DataListCacheService, QueryValidatorOptions, TMPropertyNames, AppModules, LayoutModes } from '@topconsultnpm/sdk-ts';
4
4
  import styled from 'styled-components';
@@ -63,7 +63,7 @@ export function useQueryApplyForm(d, formMode, inputData, onApplied, parameters)
63
63
  const [validationItems, setValidationItems] = useState([]);
64
64
  return { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData };
65
65
  }
66
- const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDistinct = false, showToolbar = true, validateSelect = true, validateOrderBy = true, raiseWarningForOnlyMetadataDcmtTypes = false, onApplied, onClose, height = 'auto', borderRadius = '4px', searchText, showApply, showUndo, showBack, onFromTIDChanged, ShowOnlySAP, updateIsModalOpen, showSearchResultSidebar = true, showDcmtFormSidebar = true, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false }) => {
66
+ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDistinct = false, showToolbar = true, validateSelect = true, validateOrderBy = true, validateWhereRequired = false, raiseWarningForOnlyMetadataDcmtTypes = false, onApplied, onClose, height = 'auto', borderRadius = '4px', searchText, showApply, showUndo, showBack, onFromTIDChanged, ShowOnlySAP, updateIsModalOpen, showSearchResultSidebar = true, showDcmtFormSidebar = true, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false }) => {
67
67
  const [confirmQueryParams, ConfirmQueryParamsDialog] = useQueryParametersDialog();
68
68
  const { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData } = useQueryApplyForm(Descriptors.Query, formMode, inputData, onApplied);
69
69
  const [dcmtTypesList, setDcmtTypesList] = useState([]);
@@ -111,6 +111,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
111
111
  let qvo = new QueryValidatorOptions();
112
112
  qvo.DoSelectValidation = validateSelect;
113
113
  qvo.DoOrderByValidation = validateOrderBy;
114
+ qvo.DoWhereRequiredValidation = validateWhereRequired;
114
115
  qvo.RaiseWarningForOnlyMetadataDcmtTypes = raiseWarningForOnlyMetadataDcmtTypes;
115
116
  PlatformObjectValidator.QueryValidatorAsync(formData, vil, qvo).then(() => { setValidationItems(vil); });
116
117
  };
@@ -744,7 +745,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
744
745
  }
745
746
  }
746
747
  }
747
- }, children: [(!isReadOnly || fromCount > 0) && _jsx(Item, { title: SDKUI_Localizator.Source, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, fromCount, validationItems.filter((o) => [TMPropertyNames.fromTid, TMPropertyNames.join].includes(o.PropertyName))), children: _jsx(StyledAccordionItemContainer, { style: { maxHeight: fromCount > 0 ? '330px' : '100%' }, children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, style: { height: '100%' }, children: [_jsxs(StyledRowItem, { children: [!isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => { let qd = SearchEngine.NewQueryDescriptor(); setFormData({ ...qd }); } }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', elementStyle: { opacity: !formData?.from?.tid ? 0.4 : 1 }, disabled: !formData?.from?.tid, icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: onAdd_JoinItem }), _jsx("div", { style: { pointerEvents: 'all' }, children: _jsx(TMQdDropDownMenu, { content: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }), items: [
748
+ }, children: [(!isReadOnly || fromCount > 0) && _jsx(Item, { title: SDKUI_Localizator.Source, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, fromCount, validationItems.filter((o) => [TMPropertyNames.fromTid, TMPropertyNames.join].includes(o.PropertyName))), children: _jsx(StyledAccordionItemContainer, { style: { maxHeight: fromCount > 0 ? '330px' : '100%' }, children: _jsxs(StyledAccordionItemContent, { $disabled: isReadOnly, style: { height: '100%' }, children: [_jsxs(StyledRowItem, { children: [!isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => { let qd = SearchEngine.NewQueryDescriptor(); setFormData({ ...qd }); } }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', elementStyle: { opacity: !formData?.from?.tid ? 0.4 : 1 }, disabled: !formData?.from?.tid, icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: onAdd_JoinItem }), _jsx("div", { style: { pointerEvents: 'all' }, children: _jsx(TMQdDropDownMenu, { content: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }), items: [
748
749
  { icon: showId ? _jsx(IconHide, { color: TMColors.button_icon }) : _jsx(IconShow, { color: TMColors.button_icon }), name: showId ? SDKUI_Localizator.ID_Hide : SDKUI_Localizator.ID_Show, onClick: () => setShowId(!showId) },
749
750
  { icon: showCompleteMetadataName ? _jsx(IconHide, { color: TMColors.primary }) : _jsx(IconShow, { color: TMColors.primary }), name: showCompleteMetadataName ? SDKUI_Localizator.Hide_CompleteName : SDKUI_Localizator.Show_CompleteName, onClick: () => setShowCompleteMetadataName(!showCompleteMetadataName) }
750
751
  ] }) }), _jsx(TMDcmtTypeChooser, { disabled: isReadOnly, showEditButton: false, placeHolder: `<${SDKUI_Localizator.DcmtTypeSelect} ...>`, borderRadius: borderRadius, ShowOnlySAP: ShowOnlySAP, openEditorOnSummaryClick: true, showBorder: false, showId: showId, backgroundColor: getColorIndex({ tid: formData.from?.tid, alias: undefined }), values: [formData.from?.tid], validationItems: validationItems.filter((o) => o.PropertyName === TMPropertyNames.fromTid), onValueChanged: (tids) => { let qd = SearchEngine.NewQueryDescriptor(); qd.from.tid = tids[0]; setFormData({ ...qd }); onFromTIDChanged?.(tids[0]); }, updateIsModalOpen: updateIsModalOpen })] }), formData?.join?.map((ji, index) => {
@@ -774,12 +775,12 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
774
775
  { name: 'OR', onClick: () => onChange_OnJoinItem_Or(true, index, indexOn) }
775
776
  ] }), _jsx(TMQdEditableItem, { value: onItem.leftBrackets, allowedPattern: /\(/g, backgroundColor: colorBrackets, onValueChanged: (value) => { onChange_OnJoinItem_Brackets(value, true, index, indexOn); } }), _jsx(TMMetadataChooser, { disabled: isReadOnly, showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, borderRadius: borderRadius, showId: showId, backgroundColor: getColorIndex({ tid: onItem.leftTID, alias: onItem.leftAlias }), qd: formData, values: onItem.leftTID ? [{ tid: onItem.leftTID, mid: onItem.leftMID, aliasTID: onItem.leftAlias }] : [], onValueChanged: (values) => { values.length > 0 && onChange_OnJoinMetadatoLeft(values[0], index, indexOn); }, updateIsModalOpen: updateIsModalOpen }), _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, color: 'green', borderRadius: borderRadius, content: _jsx(StyledItemWrapper, { children: LocalizeQueryOperators(onItem.operator) }), items: [] }), _jsx(TMMetadataChooser, { disabled: isReadOnly, showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, borderRadius: borderRadius, showId: showId, backgroundColor: getColorIndex({ tid: onItem.rightTID, alias: onItem.rightAlias }), qd: formData, values: onItem.rightTID ? [{ tid: onItem.rightTID, mid: onItem.rightMID, aliasTID: onItem.rightAlias }] : [], onValueChanged: (values) => { values.length > 0 && onChange_OnJoinMetadatoRight(values[0], index, indexOn); }, updateIsModalOpen: updateIsModalOpen }), _jsx(TMQdEditableItem, { value: onItem.rightBrackets, allowedPattern: /\)/g, backgroundColor: colorBrackets, onValueChanged: (value) => { onChange_OnJoinItem_Brackets(value, false, index, indexOn); } })] }, indexOn));
776
777
  })] }, `${ji.tid}_${index}`));
777
- }), _jsx(TMVilViewer, { vil: validationItems.filter((o) => o.PropertyName === TMPropertyNames.join) })] }) }) }), canShowSelect && _jsx(Item, { title: SDK_Localizator.QuerySelect, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, selectCount, validationItems.filter((o) => o.PropertyName == TMPropertyNames.select)), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, children: [_jsx(TMVilViewer, { vil: validationItems.filter((o) => o.PropertyName === TMPropertyNames.select) }), (!formData?.select || formData?.select.length <= 0) && !isReadOnly &&
778
+ }), _jsx(TMVilViewer, { vil: validationItems.filter((o) => o.PropertyName === TMPropertyNames.join) })] }) }) }), canShowSelect && _jsx(Item, { title: SDK_Localizator.QuerySelect, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, selectCount, validationItems.filter((o) => o.PropertyName == TMPropertyNames.select)), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { $disabled: isReadOnly, children: [_jsx(TMVilViewer, { vil: validationItems.filter((o) => o.PropertyName === TMPropertyNames.select) }), (!formData?.select || formData?.select.length <= 0) && !isReadOnly &&
778
779
  _jsxs(StyledRowItem, { children: [_jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.Add, onClick: onAdd_SelectItem }), dcmtTypesList.length == 1
779
780
  ? _jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.AddAlls, onClick: () => { onAddAll_SelectItem(qdTIDs[0]); } })
780
781
  : _jsx(TMQdDropDownMenu, { backgroundColor: 'white', borderRadius: '3px', content: _jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.AddAlls }), items: qdTIDs.map((tid_alias) => ({ name: `${getDisplayAlias(getDcmtTypeName(tid_alias.tid), tid_alias.alias)}`, onClick: () => { onAddAll_SelectItem(tid_alias); } })) })] }), formData?.select?.map((si, index) => {
781
782
  return (_jsxs(StyledRowItem, { onDragEnd: dragEnd, onDragOver: dragOver, onDrop: (e) => dropSelect(e, si), children: [!isReadOnly && _jsx(StyledDraggableDiv, { draggable: true, onDragStart: (e) => dragStart(e, si), children: _jsx(IconDraggabledots, { fontSize: 15, color: TMColors.button_icon }) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => onRemove_SelectItem(index) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: () => onAdd_SelectItem(index + 1) }), !isReadOnly && _jsx(TMQdDropDownMenu, { content: _jsx(TMTooltip, { content: SDK_Localizator.toCaseWord(SDKUI_Localizator.OneMore), children: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }) }), items: getSelectMenuItems(index) }), (!isReadOnly || (si.function && si.function != QueryFunctions.None)) && _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, color: 'green', borderRadius: borderRadius, content: _jsx(StyledItemWrapper, { children: si.function === QueryFunctions.None ? "..." : LocalizeQueryFunctions(si.function) }), items: getQueryFunctionsMenuItems(si, index) }), _jsx(TMMetadataChooser, { disabled: isReadOnly, filterMetadata: (o => o.perm?.canView === AccessLevels.Yes || o.perm?.canUpdate === AccessLevels.Yes), showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, borderRadius: borderRadius, showId: showId, backgroundColor: getColorIndex({ tid: si.tid, alias: si.alias }), qd: formData, values: [{ tid: si.tid, mid: si.mid, aliasTID: si.alias }], onValueChanged: (values) => { values.length > 0 && onChange_SelectItem_MID(values[0], index); }, updateIsModalOpen: updateIsModalOpen }), (!isReadOnly || si.as) && _jsx(TMQdEditableItem, { value: si.as, backgroundColor: colorValue, placeHolder: `<${SDKUI_Localizator.Query_EnterAlias}...>`, width: '100%', onValueChanged: (value) => { onChange_SelectItem_As(value, index); } })] }, `${si.tid}_${si.mid}_${index}`));
782
- })] }) }) }), fromCount > 0 && (!isReadOnly || whereCount > 0) && _jsx(Item, { title: SDK_Localizator.QueryWhere, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, whereCount, validationItems.filter((o) => o.PropertyName == TMPropertyNames.where)), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, children: [_jsx(TMVilViewer, { vil: validationItems.filter((o) => o.PropertyName === TMPropertyNames.where) }), (!formData?.where || formData?.where.length <= 0) && !isReadOnly &&
783
+ })] }) }) }), fromCount > 0 && (!isReadOnly || whereCount > 0) && _jsx(Item, { title: SDK_Localizator.QueryWhere, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, whereCount, validationItems.filter((o) => o.PropertyName == TMPropertyNames.where)), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { $disabled: isReadOnly, children: [_jsx(TMVilViewer, { vil: validationItems.filter((o) => o.PropertyName === TMPropertyNames.where) }), (!formData?.where || formData?.where.length <= 0) && !isReadOnly &&
783
784
  _jsx(StyledRowItem, { children: _jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.Add, onClick: onAdd_WhereItem }) }), formData?.where?.map((wi, index) => {
784
785
  return (_jsxs(StyledRowItem, { onDragEnd: dragEnd, onDragOver: dragOver, onDrop: (e) => dropWhere(e, wi), children: [!isReadOnly && _jsx(StyledDraggableDiv, { draggable: true, onDragStart: (e) => dragStart(e, wi), children: _jsx(IconDraggabledots, { fontSize: 15, color: TMColors.button_icon }) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => onRemove_WhereItem(index) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: () => onAdd_WhereItem(index + 1) }), !isReadOnly && _jsx(TMQdDropDownMenu, { content: _jsx(TMTooltip, { content: SDK_Localizator.toCaseWord(SDKUI_Localizator.OneMore), children: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }) }), items: [
785
786
  { name: SDKUI_Localizator.AddAbove, onClick: () => onAdd_WhereItem(index) },
@@ -797,7 +798,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
797
798
  { name: 'AND', onClick: () => onChange_WhereItem_Or(false, index) },
798
799
  { name: 'OR', onClick: () => onChange_WhereItem_Or(true, index) }
799
800
  ] }), _jsx(TMQdEditableItem, { value: wi.leftBrackets, allowedPattern: /\(/g, backgroundColor: colorBrackets, onValueChanged: (value) => { onChange_WhereItem_Brackets(value, true, index); } }), _jsx(TMMetadataChooser, { disabled: isReadOnly, filterMetadata: (o => o.perm?.canSearch === AccessLevels.Yes), showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, borderRadius: borderRadius, showId: showId, backgroundColor: getColorIndex({ tid: wi.tid, alias: wi.alias }), qd: formData, values: [{ tid: wi.tid, mid: wi.mid, aliasTID: wi.alias }], onValueChanged: (values) => { values.length > 0 && onChange_WhereItem_Metadato(values[0], index); }, updateIsModalOpen: updateIsModalOpen }), _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, color: 'green', borderRadius: borderRadius, content: _jsx(StyledDivHorizontal, { children: _jsx(StyledItemWrapper, { children: LocalizeQueryOperators(wi.operator) }) }), items: getQueryOperatorsMenuItems(wi, index) }), _jsx(TMQdWhereItemValue, { whereItem: wi, index: index, onValueChanged: (values) => { onChange_WhereItem_Values(values[0], values[1], index); }, updateIsModalOpen: updateIsModalOpen }), _jsx(TMQdEditableItem, { value: wi.rightBrackets, allowedPattern: /\)/g, backgroundColor: colorBrackets, onValueChanged: (value) => { onChange_WhereItem_Brackets(value, false, index); } })] }, `${wi.tid}_${wi.mid}_${index}`));
800
- })] }) }) }), fromCount > 0 && (!isReadOnly || orderByCount > 0) && _jsx(Item, { title: SDK_Localizator.QueryOrderBy, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, orderByCount, validationItems.filter((o) => o.PropertyName == TMPropertyNames.orderBy)), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, children: [(!formData?.orderBy || formData?.orderBy.length <= 0) && !isReadOnly &&
801
+ })] }) }) }), fromCount > 0 && (!isReadOnly || orderByCount > 0) && _jsx(Item, { title: SDK_Localizator.QueryOrderBy, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, orderByCount, validationItems.filter((o) => o.PropertyName == TMPropertyNames.orderBy)), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { $disabled: isReadOnly, children: [(!formData?.orderBy || formData?.orderBy.length <= 0) && !isReadOnly &&
801
802
  _jsx(StyledRowItem, { children: _jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.Add, onClick: onAdd_OrderByItem }) }), formData?.orderBy?.map((oi, index) => {
802
803
  return (_jsxs(StyledRowItem, { onDragEnd: dragEnd, onDragOver: dragOver, onDrop: (e) => dropOrderBy(e, oi), children: [!isReadOnly && _jsx(StyledDraggableDiv, { draggable: true, onDragStart: (e) => dragStart(e, oi), children: _jsx(IconDraggabledots, { fontSize: 15, color: TMColors.button_icon }) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => onRemove_OrderByItem(index) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: () => onAdd_OrderByItem(index + 1) }), !isReadOnly && _jsx(TMQdDropDownMenu, { content: _jsx(TMTooltip, { content: SDK_Localizator.toCaseWord(SDKUI_Localizator.OneMore), children: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }) }), items: [
803
804
  { name: SDKUI_Localizator.AddAbove, onClick: () => onAdd_OrderByItem(index) },
@@ -808,7 +809,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
808
809
  { name: 'ASC', onClick: () => onChange_OrderByItem_Asc(true, oi, index) },
809
810
  { name: 'DESC', onClick: () => onChange_OrderByItem_Asc(false, oi, index) }
810
811
  ] })] }, `${oi.tid}_${oi.mid}_${index}`));
811
- })] }) }) }), fromCount > 0 && _jsx(Item, { title: SDKUI_Localizator.Options, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, undefined, []), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, children: [showDistinct && _jsx(TMCheckBox, { label: SDK_Localizator.QueryDistinct, value: formData.isDistinct, onValueChanged: () => { setFormData({ ...formData, isDistinct: !formData.isDistinct }); } }), _jsx(TMTextBox, { type: 'number', width: '200px', label: SDKUI_Localizator.MaxDcmtsToBeReturned, validationItems: validationItems.filter((o) => o.PropertyName == TMPropertyNames.maxDcmtsToBeReturned), value: formData.maxDcmtsToBeReturned, onBlur: (newValue) => setFormData({ ...formData, maxDcmtsToBeReturned: Number(newValue) }) })] }) }) })] }), _jsx(ConfirmQueryParamsDialog, {})] }), showResultSearch && _jsxs(StyledModalContainer, { style: { backgroundColor: 'white' }, children: [" ", renderResultSearchForm, " "] })] }));
812
+ })] }) }) }), fromCount > 0 && _jsx(Item, { title: SDKUI_Localizator.Options, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, undefined, []), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { $disabled: isReadOnly, children: [showDistinct && _jsx(TMCheckBox, { label: SDK_Localizator.QueryDistinct, value: formData.isDistinct, onValueChanged: () => { setFormData({ ...formData, isDistinct: !formData.isDistinct }); } }), _jsx(TMTextBox, { type: 'number', width: '200px', label: SDKUI_Localizator.MaxDcmtsToBeReturned, validationItems: validationItems.filter((o) => o.PropertyName == TMPropertyNames.maxDcmtsToBeReturned), value: formData.maxDcmtsToBeReturned, onBlur: (newValue) => setFormData({ ...formData, maxDcmtsToBeReturned: Number(newValue) }) })] }) }) })] }), _jsx(ConfirmQueryParamsDialog, {})] }), showResultSearch && _jsxs(StyledModalContainer, { style: { backgroundColor: 'white' }, children: [" ", renderResultSearchForm, " "] })] }));
812
813
  };
813
814
  export default TMQueryEditor;
814
815
  const TMQdEditableItem = ({ value, placeHolder, width, backgroundColor, allowedPattern, onValueChanged }) => {
@@ -1038,5 +1039,5 @@ const StyledContent = styled.div `
1038
1039
  const TMQdDropDownMenu = ({ content, items, disabled = false, color = TMColors.text_normal, backgroundColor = TMColors.default_background, borderRadius }) => {
1039
1040
  const [id, setID] = useState('');
1040
1041
  useEffect(() => { setID(genUniqueId()); }, [content]);
1041
- return (_jsx(ContextMenu, { target: `#idContainer${id}`, items: items || [], trigger: "left", children: _jsx(StyledContent, { id: `idContainer${id}`, tabIndex: disabled ? -1 : 0, "$disabled": disabled, "$color": color, "$backgroundColor": backgroundColor, "$borderRadius": borderRadius, children: content }) }));
1042
+ return (_jsx(ContextMenu, { target: `#idContainer${id}`, items: items || [], trigger: "left", children: _jsx(StyledContent, { id: `idContainer${id}`, tabIndex: disabled ? -1 : 0, $disabled: disabled, $color: color, $backgroundColor: backgroundColor, $borderRadius: borderRadius, children: content }) }));
1042
1043
  };
@@ -11,7 +11,7 @@ export const StyledCommandsPanel = styled.div `
11
11
  padding: 10px;
12
12
  gap: 10px;
13
13
  `;
14
- const TMCommandsPanel = ({ isMobile, items }) => (_jsx(StyledCommandsPanel, { "$isMobile": isMobile, children: items.map((iconProps, idx) => (_jsx("span", { style: {
14
+ const TMCommandsPanel = ({ isMobile, items }) => (_jsx(StyledCommandsPanel, { $isMobile: isMobile, children: items.map((iconProps, idx) => (_jsx("span", { style: {
15
15
  background: iconProps.selected ? 'white' : 'transparent',
16
16
  borderRadius: '6px',
17
17
  color: iconProps.selected ? '#005B97' : 'white',
@@ -16,6 +16,7 @@ interface ITMHeader {
16
16
  searchContext?: TMSearchContext;
17
17
  settingsMenuContext?: React.ReactNode;
18
18
  customButtons?: React.ReactNode;
19
+ toppyButton?: React.ReactNode;
19
20
  onMenusOpen?: VoidFunction;
20
21
  onChangePassword?: VoidFunction;
21
22
  onLogout?: VoidFunction;
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect, useRef, useMemo } from 'react';
3
3
  import six from '../../assets/six.png';
4
4
  import { getAvatarColor, IconCloseOutline, IconCopy, IconOpenInNew, openApps, SDKUI_Localizator, WHATS_NEWS_LINK_URL } from '../../helper';
@@ -88,9 +88,9 @@ export const copyUserInfoToClipboard = (userName, cultureId, archiveId, archiveD
88
88
  };
89
89
  export const TMSearchBar = ({ searchValue, onSearchValueChanged, maxWidth, marginLeft }) => {
90
90
  const deviceType = useDeviceType();
91
- return (_jsxs(StyledSearchBarContainer, { style: { maxWidth: maxWidth ? maxWidth : deviceType === DeviceType.MOBILE ? '65%' : '650px', marginLeft: marginLeft ? marginLeft : deviceType === DeviceType.MOBILE ? '10px' : '20px' }, "$isMobile": deviceType === DeviceType.MOBILE, children: [" ", _jsx(StyledSearchBar, { placeholder: SDKUI_Localizator.Search + '...', type: "text", value: searchValue, onChange: (e) => onSearchValueChanged(e.target.value) }), searchValue.length > 0 && _jsx(IconCloseOutline, { onClick: () => onSearchValueChanged(''), color: '#00000060', style: { cursor: 'pointer', position: 'absolute', width: '20px', height: '20px', right: '5px', top: '5px', zIndex: 1 } })] }));
91
+ return (_jsxs(StyledSearchBarContainer, { style: { maxWidth: maxWidth ? maxWidth : deviceType === DeviceType.MOBILE ? '65%' : '650px', marginLeft: marginLeft ? marginLeft : deviceType === DeviceType.MOBILE ? '10px' : '20px' }, $isMobile: deviceType === DeviceType.MOBILE, children: [" ", _jsx(StyledSearchBar, { placeholder: SDKUI_Localizator.Search + '...', type: "text", value: searchValue, onChange: (e) => onSearchValueChanged(e.target.value) }), searchValue.length > 0 && _jsx(IconCloseOutline, { onClick: () => onSearchValueChanged(''), color: '#00000060', style: { cursor: 'pointer', position: 'absolute', width: '20px', height: '20px', right: '5px', top: '5px', zIndex: 1 } })] }));
92
92
  };
93
- const TMHeader = ({ customButtons = _jsx(_Fragment, {}), onMenusOpen, showSettingsMenu = true, showSearchBar = true, clearSearchJobValue, clearSearchQEValue, searchContext = TMSearchContext.JOBS, onChangePassword, onLogout, settingsMenuContext, onSeacrhJobsValueChange, onSeacrhJobslistValueChange, onSeacrhProcessMonitorValueChange, onSeacrhProcessValueChange, onSeacrhPlatformValueChange, onSeacrhQEValueChange, onSettingsClick }) => {
93
+ const TMHeader = ({ customButtons = _jsx(_Fragment, {}), toppyButton = _jsx(_Fragment, {}), onMenusOpen, showSettingsMenu = true, showSearchBar = true, clearSearchJobValue, clearSearchQEValue, searchContext = TMSearchContext.JOBS, onChangePassword, onLogout, settingsMenuContext, onSeacrhJobsValueChange, onSeacrhJobslistValueChange, onSeacrhProcessMonitorValueChange, onSeacrhProcessValueChange, onSeacrhPlatformValueChange, onSeacrhQEValueChange, onSettingsClick }) => {
94
94
  const [appRoutes, setAppRoutes] = useState();
95
95
  const [menuStatus, setMenuStatus] = useState(false);
96
96
  const [showAppMenu, setShowAppMenu] = useState(false);
@@ -241,23 +241,23 @@ const TMHeader = ({ customButtons = _jsx(_Fragment, {}), onMenusOpen, showSettin
241
241
  const isOfficeConnector = useMemo(() => {
242
242
  return SDK_Globals.appModule === AppModules.WORD_CONNECTOR || SDK_Globals.appModule === AppModules.EXCEL_CONNECTOR || SDK_Globals.appModule === AppModules.POWERPOINT_CONNECTOR || SDK_Globals.appModule === AppModules.OUTLOOK_CONNECTOR;
243
243
  }, [SDK_Globals.appModule]);
244
- return (_jsxs(StyledHeaderContainer, { "$appName": SDK_Globals.appModule, children: [(isAdministrativeLevel && !isOfficeConnector) &&
245
- _jsx(TMResizableMenu, { ref: appMenuRef, isVisible: showAppMenu, top: 58, left: 10, resizable: false, maxWidth: 215, minWidth: 215, maxHeight: 180, minHeight: 180, onClose: () => { }, children: _jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: [_jsx("h5", { style: { color: TMColors.primary }, children: "Accessi ad altre applicazioni " }), _jsx("hr", {}), _jsxs("div", { style: { display: 'flex', gap: '10px', alignItems: 'center', width: '100%' }, children: [_jsxs(AppMenuButton, { onClick: () => openAppsHandler(appModuleHandler.app_1, tmSession, appRoutes), "$bgColor": '#482234', children: [_jsx("img", { src: six, alt: appModuleHandler.app_1, width: 30, height: 30 }), " ", appModuleHandler.app_1.toUpperCase()] }), _jsxs(AppMenuButton, { onClick: () => openAppsHandler(appModuleHandler.app_2, tmSession, appRoutes), "$bgColor": '#1d6f42', children: [_jsx("img", { src: six, alt: appModuleHandler.app_2, width: 30, height: 30 }), " ", appModuleHandler.app_2.toUpperCase()] })] })] }) }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'flex-start', width: '100%', gap: isMobile ? 5 : 15 }, children: [_jsxs("div", { style: { height: '50px', display: 'flex', alignItems: 'center', gap: 20, justifyContent: 'center' }, children: [_jsx(StyledLogo, { ref: logoRef, style: { cursor: (isAdministrativeLevel && !isOfficeConnector) ? 'pointer' : 'default' }, onMouseEnter: () => {
244
+ return (_jsxs(StyledHeaderContainer, { $appName: SDK_Globals.appModule, children: [(isAdministrativeLevel && !isOfficeConnector) &&
245
+ _jsx(TMResizableMenu, { ref: appMenuRef, isVisible: showAppMenu, top: 58, left: 10, resizable: false, maxWidth: 215, minWidth: 215, maxHeight: 180, minHeight: 180, onClose: () => { }, children: _jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: [_jsx("h5", { style: { color: TMColors.primary }, children: "Accessi ad altre applicazioni " }), _jsx("hr", {}), _jsxs("div", { style: { display: 'flex', gap: '10px', alignItems: 'center', width: '100%' }, children: [_jsxs(AppMenuButton, { onClick: () => openAppsHandler(appModuleHandler.app_1, tmSession, appRoutes), $bgColor: '#482234', children: [_jsx("img", { src: six, alt: appModuleHandler.app_1, width: 30, height: 30 }), " ", appModuleHandler.app_1.toUpperCase()] }), _jsxs(AppMenuButton, { onClick: () => openAppsHandler(appModuleHandler.app_2, tmSession, appRoutes), $bgColor: '#1d6f42', children: [_jsx("img", { src: six, alt: appModuleHandler.app_2, width: 30, height: 30 }), " ", appModuleHandler.app_2.toUpperCase()] })] })] }) }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'flex-start', width: '100%', gap: isMobile ? 5 : 15 }, children: [_jsxs("div", { style: { height: '50px', display: 'flex', alignItems: 'center', gap: 20, justifyContent: 'center' }, children: [_jsx(StyledLogo, { ref: logoRef, style: { cursor: (isAdministrativeLevel && !isOfficeConnector) ? 'pointer' : 'default' }, onMouseEnter: () => {
246
246
  if (openMenuTimer.current)
247
247
  clearTimeout(openMenuTimer.current);
248
248
  openMenuTimer.current = setTimeout(() => { setShowAppMenu(true); onMenusOpen?.(); }, 200);
249
249
  }, onMouseLeave: () => {
250
250
  if (openMenuTimer.current)
251
251
  clearTimeout(openMenuTimer.current);
252
- }, src: six, height: isMobile ? 35 : 40, alt: "" }), (!isMobile || SDK_Globals.appModule === AppModules.WORD_CONNECTOR) && _jsx(StyledHeaderAppText, { children: headerAppName })] }), showSearchBar && _jsxs(_Fragment, { children: [searchContext === TMSearchContext.JOBS_LIST && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchJobListValue(e), searchValue: searchJobListValue }), searchContext === TMSearchContext.JOBS && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchJobsValue(e), searchValue: searchJobsValue }), searchContext === TMSearchContext.PROCESSES && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchProcessesValue(e), searchValue: searchProcessesValue }), searchContext === TMSearchContext.PROCESS_MONITOR && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchProcessMonitorValue(e), searchValue: searchProcessMonitorValue }), searchContext === TMSearchContext.PLATFORM && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchPlatformValue(e), searchValue: searchPlatformValue }), searchContext === TMSearchContext.QE && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchQEValue(e), searchValue: searchQEValue })] }), customButtons] }), showSettingsMenu && _jsxs(StyledHeaderIcon, { onClick: () => onSettingsClick?.(), children: [" ", _jsx(IconHeaderSettings, { fontSize: 24 }), " "] }), _jsx(UserAvatarContainer, { "$isSelected": menuStatus, ref: userIcon, onClick: e => {
252
+ }, src: six, height: isMobile ? 35 : 40, alt: "" }), (!isMobile || SDK_Globals.appModule === AppModules.WORD_CONNECTOR) && _jsx(StyledHeaderAppText, { children: headerAppName })] }), showSearchBar && _jsxs(_Fragment, { children: [searchContext === TMSearchContext.JOBS_LIST && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchJobListValue(e), searchValue: searchJobListValue }), searchContext === TMSearchContext.JOBS && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchJobsValue(e), searchValue: searchJobsValue }), searchContext === TMSearchContext.PROCESSES && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchProcessesValue(e), searchValue: searchProcessesValue }), searchContext === TMSearchContext.PROCESS_MONITOR && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchProcessMonitorValue(e), searchValue: searchProcessMonitorValue }), searchContext === TMSearchContext.PLATFORM && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchPlatformValue(e), searchValue: searchPlatformValue }), searchContext === TMSearchContext.QE && _jsx(TMSearchBar, { onSearchValueChanged: (e) => setSearchQEValue(e), searchValue: searchQEValue })] }), customButtons] }), toppyButton, showSettingsMenu && _jsxs(StyledHeaderIcon, { onClick: () => onSettingsClick?.(), children: [" ", _jsx(IconHeaderSettings, { fontSize: 24 }), " "] }), _jsx(UserAvatarContainer, { $isSelected: menuStatus, ref: userIcon, onClick: e => {
253
253
  e.stopPropagation();
254
254
  e.preventDefault();
255
255
  setMenuStatus(prev => !prev);
256
- }, children: _jsx(UserAvatar, { "$bgColor": avatarColor, children: userInitials }) }), menuStatus &&
257
- _jsx(TMResizableMenu, { ref: menuRef, isVisible: menuStatus, top: 60, right: 10, resizable: false, maxWidth: 300, minWidth: 300, maxHeight: 188, minHeight: 188, padding: 0, children: _jsxs(MenuContainer, { children: [_jsxs(UserProfileSection, { children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, height: 'max-content', flex: 1, minWidth: 0 }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, height: 'max-content' }, children: [_jsx(AvatarContainer, { children: _jsx(UserAvatarLarge, { "$bgColor": avatarColor, children: userInitials }) }), _jsxs(UserInfo, { children: [_jsxs(UserNameContainer, { children: [_jsx(UserName, { children: userName }), _jsx(CultureFlag, { src: cultureFlag, alt: cultureName, title: cultureName })] }), domain && _jsx(SessionInfo, { style: { padding: 0, margin: 0 }, children: `(${domain})` })] })] }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'flex-start', justifyContent: 'center', gap: 5, flex: 1, minWidth: 0 }, children: [_jsx(SessionInfo, { children: endpoint }), _jsx(SessionInfo, { children: archiveId + ' (' + archiveDesc + ')' })] }), _jsxs(HeaderMenuActions, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.CopyUserInfo, children: _jsx(HeaderMenuActionIcon, { "$color": '#605e5c', onClick: (e) => {
256
+ }, children: _jsx(UserAvatar, { $bgColor: avatarColor, children: userInitials }) }), menuStatus &&
257
+ _jsx(TMResizableMenu, { ref: menuRef, isVisible: menuStatus, top: 60, right: 10, resizable: false, maxWidth: 300, minWidth: 300, maxHeight: 188, minHeight: 188, padding: 0, children: _jsxs(MenuContainer, { children: [_jsxs(UserProfileSection, { children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, height: 'max-content', flex: 1, minWidth: 0 }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, height: 'max-content' }, children: [_jsx(AvatarContainer, { children: _jsx(UserAvatarLarge, { $bgColor: avatarColor, children: userInitials }) }), _jsxs(UserInfo, { children: [_jsxs(UserNameContainer, { children: [_jsx(UserName, { children: userName }), _jsx(CultureFlag, { src: cultureFlag, alt: cultureName, title: cultureName })] }), domain && _jsx(SessionInfo, { style: { padding: 0, margin: 0 }, children: `(${domain})` })] })] }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'flex-start', justifyContent: 'center', gap: 5, flex: 1, minWidth: 0 }, children: [_jsx(SessionInfo, { children: endpoint }), _jsx(SessionInfo, { children: archiveId + ' (' + archiveDesc + ')' })] }), _jsxs(HeaderMenuActions, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.CopyUserInfo, children: _jsx(HeaderMenuActionIcon, { $color: '#605e5c', onClick: (e) => {
258
258
  e.stopPropagation();
259
259
  copyUserInfoToClipboard(userName, cultureId, archiveId, archiveDesc, endpoint, domain);
260
- }, children: _jsx(IconCopy, { fontSize: 14 }) }) }), _jsx(TMTooltip, { content: SDKUI_Localizator.ShowReleaseNotesInfo, children: _jsx(HeaderMenuActionIcon, { as: 'a', "$color": TMColors.primary, href: WHATS_NEWS_LINK_URL, target: '_blank', rel: 'noopener noreferrer', onClick: (e) => e.stopPropagation(), children: _jsx(IconOpenInNew, { fontSize: 14 }) }) })] })] })] }), _jsx(LogoutButton, { onClick: () => {
260
+ }, children: _jsx(IconCopy, { fontSize: 14 }) }) }), _jsx(TMTooltip, { content: SDKUI_Localizator.ShowReleaseNotesInfo, children: _jsx(HeaderMenuActionIcon, { as: 'a', $color: TMColors.primary, href: WHATS_NEWS_LINK_URL, target: '_blank', rel: 'noopener noreferrer', onClick: (e) => e.stopPropagation(), children: _jsx(IconOpenInNew, { fontSize: 14 }) }) })] })] })] }), _jsx(LogoutButton, { onClick: () => {
261
261
  setMenuStatus(false);
262
262
  onLogout && onLogout();
263
263
  }, children: _jsx(LogoutText, { children: SDKUI_Localizator.Logout }) })] }), _jsxs(BottomActionsContainer, { children: [isTopMediaAuth && (_jsx(BottomActionButton, { onClick: () => {
@@ -22,7 +22,7 @@ const StyledTMSidebarContainer = styled.div `
22
22
  z-index: 100;
23
23
  `;
24
24
  const TMSidebar = ({ items, height, borderRightRadius, left, top, width }) => {
25
- return (_jsx(StyledTMSidebarContainer, { "$borderRightRadius": borderRightRadius, "$left": left, "$top": top, "$width": width, "$appName": SDK_Globals.appModule, "$height": height, children: _jsx(ScrollView, { height: "calc(100%)", width: "100%", useNative: true, children: _jsx("div", { style: {
25
+ return (_jsx(StyledTMSidebarContainer, { $borderRightRadius: borderRightRadius, $left: left, $top: top, $width: width, $appName: SDK_Globals.appModule, $height: height, children: _jsx(ScrollView, { height: "calc(100%)", width: "100%", useNative: true, children: _jsx("div", { style: {
26
26
  display: "flex",
27
27
  flexDirection: "column",
28
28
  alignItems: "center",
@@ -37,7 +37,7 @@ const StyledTMSidebarItemContainer = styled.div `
37
37
  `;
38
38
  const TMSidebarItem = (props) => {
39
39
  let app = SDK_Globals.appModule;
40
- return (_jsx(TMTooltip, { hideAfterDelay: true, content: props.tooltipContent ?? props.name, children: _jsxs(StyledTMSidebarItemContainer, { "$app": app, "$isApp": props.isAppIcon, onClick: () => props.onClick?.(props), "$isSelected": props.isSelected, children: [_jsxs("div", { children: [_jsx("i", { children: props.icon }), _jsx("p", { children: props.name })] }), props.badgeNumber > 0 && (_jsx("div", { style: {
40
+ return (_jsx(TMTooltip, { hideAfterDelay: true, content: props.tooltipContent ?? props.name, children: _jsxs(StyledTMSidebarItemContainer, { $app: app, $isApp: props.isAppIcon, onClick: () => props.onClick?.(props), $isSelected: props.isSelected, children: [_jsxs("div", { children: [_jsx("i", { children: props.icon }), _jsx("p", { children: props.name })] }), props.badgeNumber > 0 && (_jsx("div", { style: {
41
41
  position: 'absolute',
42
42
  top: '4px',
43
43
  right: '4px',
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { IconLocked, IconMetadata_Computed, IconMetadata_DataList, IconMetadata_Date, IconMetadata_DynamicDataList, IconMetadata_Numerator, IconMetadata_Numeric, IconMetadata_Special, IconMetadata_Text, IconMetadata_User, LocalizeMetadataFormats, SDKUI_Localizator, getCompleteMetadataName, getTIDByMID } from '../../helper';
4
4
  import { DcmtTypeListCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, MetadataFormats, ObjectClasses, SDK_Globals } from '@topconsultnpm/sdk-ts';
@@ -110,7 +110,7 @@ export const TMMetadataTooltip = ({ tid, md, color, children, layoutMode = Layou
110
110
  let isNumeratorInArk = md?.dataDomain === MetadataDataDomains.Numerator && layoutMode === LayoutModes.Ark;
111
111
  const renderTooltipContent = (tid, md) => {
112
112
  return (!md ? null
113
- : _jsxs(StyledTooltipContainer, { children: [_jsx(StyledTooltipItem, { "$color": color, children: `${SDK_Globals.useLocalizedName ? md.nameLoc : md.name} (TID: ${tid}, MID: ${md.id})` }), md.description && _jsx(StyledTooltipItem, { "$color": color, children: md.description }), _jsx(StyledTooltipSeparatorItem, { color: color }), md.objectClass === ObjectClasses.Permission && _jsx(StyledTooltipItem, { style: { fontWeight: 600 }, children: 'Tipo documento NON autorizzato' }), _jsx(StyledTooltipSeparatorItem, { color: color }), _jsxs(StyledTooltipItem, { "$color": color, children: [md.dataType, " ", md.dataType == MetadataDataTypes.Varchar ? `(${md.length ?? 0})` : md.dataType == MetadataDataTypes.Number ? `(${md.length ?? 0},${md.scale ?? 0})` : '', md.isPrimaryKey === 1 ? ' (PK)' : ''] }), _jsx(StyledTooltipItem, { style: { color: md.isRequired === 1 && !isNumeratorInArk ? TMColors.error : color }, children: md.isRequired === 1 && !isNumeratorInArk ? SDKUI_Localizator.Required : SDKUI_Localizator.RequiredNOT }), md.dataDomain && _jsx(StyledTooltipItem, { "$color": color, children: md.dataDomain }), md.isLexProt == 1 && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.Yes}` }), md.isLexProt == 2 && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.MetadataFlag}` }), md.isLexProt == 3 && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.Yes} (${SDKUI_Localizator.MetadataFlag})` }), md.isFreeSearchInput && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.Search_Free}: ${SDKUI_Localizator.Yes}` }), md.isSpecialSearchOutput && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.Search_Special}: ${SDKUI_Localizator.Yes}` }), md.format?.format && md.format.format != MetadataFormats.None && _jsx(StyledTooltipItem, { color: color, children: `${SDKUI_Localizator.Format}: ${LocalizeMetadataFormats(md.format.format)}` }), md.format?.format === MetadataFormats.CustomRegEx && md.format.formatCustom && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.PatternRegex}: ${md.format.formatCustom}` }), md.defaultValue && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.Default}: ${_setDefaultValueForUI(md.defaultValue)}` }), md.fromTID && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.MetadataRoot}: ${md.isRootMID == 1 ? SDKUI_Localizator.Yes : SDKUI_Localizator.No}` }), md.templateMID && _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.Template}: ${md.templateMID}` }), md.perm && _jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { "$color": 'primary', "$marginTop": '5px', children: SDKUI_Localizator.Perms }), _jsx(StyledTooltipSeparatorItem, { color: color }), _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.Archive}: ${md.perm.canArchive ?? SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.View_Metadato}: ${md.perm.canView ?? SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.Search}: ${md.perm.canSearch ?? SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { "$color": color, children: `${SDKUI_Localizator.Update}: ${md.perm.canUpdate ?? SDKUI_Localizator.No}` })] })] }));
113
+ : _jsxs(StyledTooltipContainer, { children: [_jsx(StyledTooltipItem, { $color: color, children: `${SDK_Globals.useLocalizedName ? md.nameLoc : md.name} (TID: ${tid}, MID: ${md.id})` }), md.description && _jsx(StyledTooltipItem, { $color: color, children: md.description }), _jsx(StyledTooltipSeparatorItem, { color: color }), md.objectClass === ObjectClasses.Permission && _jsx(StyledTooltipItem, { style: { fontWeight: 600 }, children: 'Tipo documento NON autorizzato' }), _jsx(StyledTooltipSeparatorItem, { color: color }), _jsxs(StyledTooltipItem, { $color: color, children: [md.dataType, " ", md.dataType == MetadataDataTypes.Varchar ? `(${md.length ?? 0})` : md.dataType == MetadataDataTypes.Number ? `(${md.length ?? 0},${md.scale ?? 0})` : '', md.isPrimaryKey === 1 ? ' (PK)' : ''] }), _jsx(StyledTooltipItem, { style: { color: md.isRequired === 1 && !isNumeratorInArk ? TMColors.error : color }, children: md.isRequired === 1 && !isNumeratorInArk ? SDKUI_Localizator.Required : SDKUI_Localizator.RequiredNOT }), md.dataDomain && _jsx(StyledTooltipItem, { $color: color, children: md.dataDomain }), md.isLexProt == 1 && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.Yes}` }), md.isLexProt == 2 && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.MetadataFlag}` }), md.isLexProt == 3 && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.Yes} (${SDKUI_Localizator.MetadataFlag})` }), md.isFreeSearchInput && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.Search_Free}: ${SDKUI_Localizator.Yes}` }), md.isSpecialSearchOutput && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.Search_Special}: ${SDKUI_Localizator.Yes}` }), md.format?.format && md.format.format != MetadataFormats.None && _jsx(StyledTooltipItem, { color: color, children: `${SDKUI_Localizator.Format}: ${LocalizeMetadataFormats(md.format.format)}` }), md.format?.format === MetadataFormats.CustomRegEx && md.format.formatCustom && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.PatternRegex}: ${md.format.formatCustom}` }), md.defaultValue && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.Default}: ${_setDefaultValueForUI(md.defaultValue)}` }), md.fromTID && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.MetadataRoot}: ${md.isRootMID == 1 ? SDKUI_Localizator.Yes : SDKUI_Localizator.No}` }), md.templateMID && _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.Template}: ${md.templateMID}` }), md.perm && _jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { $color: 'primary', $marginTop: '5px', children: SDKUI_Localizator.Perms }), _jsx(StyledTooltipSeparatorItem, { color: color }), _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.Archive}: ${md.perm.canArchive ?? SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.View_Metadato}: ${md.perm.canView ?? SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.Search}: ${md.perm.canSearch ?? SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { $color: color, children: `${SDKUI_Localizator.Update}: ${md.perm.canUpdate ?? SDKUI_Localizator.No}` })] })] }));
114
114
  };
115
115
  return (_jsx("div", { style: { pointerEvents: 'all' }, children: _jsx(TMTooltip, { content: renderTooltipContent(tid, md), children: children }) }));
116
116
  };
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { getDTDDisplayNameInfo, IconDcmtType, IconDcmtTypeOnlyMetadata, IconLocked, IconView, isCreateCertificateEnabled, isPdfEditorEnabled, isSign4TopEnabled, LocalizeArchiveConstraints, isNotGrantedDTD, LocalizeParametricFilterTypes, SDKUI_Localizator, TMImageLibrary } from '../../helper';
4
4
  import { AccessLevels, AccessLevelsEx, ArchiveConstraints, DcmtTypeListCacheService, OwnershipLevels, ParametricFilterTypes, SDK_Globals, SDK_Localizator, TemplateTIDs } from '@topconsultnpm/sdk-ts';
@@ -406,9 +406,9 @@ export const renderDTDTooltipContent = (dtd) => {
406
406
  ? _jsx(StyledTooltipItem, { style: { fontWeight: 600 }, children: 'Tipo documento NON autorizzato' })
407
407
  :
408
408
  _jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ArchiveConstraint}: ${LocalizeArchiveConstraints(dtd.archiveConstraint)}` }), dtd.isView && dtd.parametricFilterType != ParametricFilterTypes.None && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ParametricFilter}: ${LocalizeParametricFilterTypes(dtd.parametricFilterType)}` }), dtd.isView && dtd.withCheckOption && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ViewWithCheckOption}: ${SDKUI_Localizator.Yes}` }), dtd.isLexProt && dtd.isLexProt > 0 && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.Yes}` }), dtd.isFreeSearchable && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Search_Free}: ${SDKUI_Localizator.Yes}` }), dtd.templateTID && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Template}: ${dtd.templateTID}` }), dtd.traceTID && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Tracing}: ${SDKUI_Localizator.Yes} - ${dtd.templateTID == TemplateTIDs.Trace_DcmtType ? SDKUI_Localizator.Destination : SDKUI_Localizator.Source} ${dtd.traceTID < 0 ? SDKUI_Localizator.Disabled : ''}` }), dtd.wfAppr && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.WorkflowApproval}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.BlogCase}: ${dtd.hasBlog ? SDKUI_Localizator.Yes : SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.CheckIn}: ${dtd.cico ? SDKUI_Localizator.Yes : SDKUI_Localizator.No}` }), dtd.perm ?
409
- _jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { "$color": 'primary', "$marginTop": '5px', children: SDKUI_Localizator.Perms }), _jsx(StyledTooltipSeparatorItem, {}), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Archive}: ${mapAccessLevelToLocalizedString(dtd.perm.canArchive)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.View_Metadato}: ${mapAccessLevelToLocalizedString(dtd.perm.canView)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Search}: ${mapAccessLevelToLocalizedString(dtd.perm.canSearch)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Update}: ${mapAccessLevelToLocalizedString(dtd.perm.canUpdate)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.RetrieveFile}: ${mapAccessLevelToLocalizedString(dtd.perm.canRetrieveFile)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.AddOrSubstFile}: ${mapAccessLevelToLocalizedString(dtd.perm.canSubstFile)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.LogDelete}: ${mapAccessLevelToLocalizedString(dtd.perm.canLogicalDelete)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.PhysDelete}: ${mapAccessLevelToLocalizedString(dtd.perm.canPhysicalDelete)}` }), dtd.hasBlog && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Blog_Read}: ${mapAccessLevelToLocalizedString(dtd.perm.canReadBlog)}` }), dtd.hasBlog && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Blog_Write}: ${mapAccessLevelToLocalizedString(dtd.perm.canWriteBlog)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.CheckIn}: ${mapAccessLevelToLocalizedString(dtd.perm.canCICO)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ChronologyDelete}: ${mapAccessLevelToLocalizedString(dtd.perm.canDelChron)}` })] })
409
+ _jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { $color: 'primary', $marginTop: '5px', children: SDKUI_Localizator.Perms }), _jsx(StyledTooltipSeparatorItem, {}), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Archive}: ${mapAccessLevelToLocalizedString(dtd.perm.canArchive)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.View_Metadato}: ${mapAccessLevelToLocalizedString(dtd.perm.canView)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Search}: ${mapAccessLevelToLocalizedString(dtd.perm.canSearch)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Update}: ${mapAccessLevelToLocalizedString(dtd.perm.canUpdate)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.RetrieveFile}: ${mapAccessLevelToLocalizedString(dtd.perm.canRetrieveFile)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.AddOrSubstFile}: ${mapAccessLevelToLocalizedString(dtd.perm.canSubstFile)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.LogDelete}: ${mapAccessLevelToLocalizedString(dtd.perm.canLogicalDelete)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.PhysDelete}: ${mapAccessLevelToLocalizedString(dtd.perm.canPhysicalDelete)}` }), dtd.hasBlog && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Blog_Read}: ${mapAccessLevelToLocalizedString(dtd.perm.canReadBlog)}` }), dtd.hasBlog && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Blog_Write}: ${mapAccessLevelToLocalizedString(dtd.perm.canWriteBlog)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.CheckIn}: ${mapAccessLevelToLocalizedString(dtd.perm.canCICO)}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ChronologyDelete}: ${mapAccessLevelToLocalizedString(dtd.perm.canDelChron)}` })] })
410
410
  : dtd.ownershipLevel == OwnershipLevels.DirectOwner || dtd.ownershipLevel == OwnershipLevels.IndirectOwner ?
411
- _jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { "$color": 'primary', "$marginTop": '5px', children: SDKUI_Localizator.Perms }), _jsx(StyledTooltipSeparatorItem, {}), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Archive}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.View_Metadato}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Search}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Update}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.RetrieveFile}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.AddOrSubstFile}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.LogDelete}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.PhysDelete}: ${SDKUI_Localizator.Yes}` }), dtd.hasBlog && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Blog_Read}: ${SDKUI_Localizator.Yes}` }), dtd.hasBlog && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Blog_Write}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.CheckIn}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ChronologyDelete}: ${SDKUI_Localizator.Yes}` })] })
411
+ _jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { $color: 'primary', $marginTop: '5px', children: SDKUI_Localizator.Perms }), _jsx(StyledTooltipSeparatorItem, {}), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Archive}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.View_Metadato}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Search}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Update}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.RetrieveFile}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.AddOrSubstFile}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.LogDelete}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.PhysDelete}: ${SDKUI_Localizator.Yes}` }), dtd.hasBlog && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Blog_Read}: ${SDKUI_Localizator.Yes}` }), dtd.hasBlog && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Blog_Write}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.CheckIn}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ChronologyDelete}: ${SDKUI_Localizator.Yes}` })] })
412
412
  : _jsx(_Fragment, {}), (dtd.widgets && dtd.widgets.length > 0) ? (() => {
413
413
  const enabledWidgets = [
414
414
  isSign4TopEnabled(dtd.widgets) ? 'Sign4Top' : null,
@@ -141,7 +141,7 @@ const StepIndicator = ({ steps, currentStepIndex, stepValidityStatuses }) => {
141
141
  : 0;
142
142
  const errors = stepValidityStatuses[currentStepIndex].filter(v => v.ResultType === ResultTypes.ERROR);
143
143
  const isCurrentStepError = errors.length > 0;
144
- return (_jsxs(IndicatorContainer, { children: [_jsxs(StepBar, { children: [steps.length > 1 && (_jsxs(LineContainer, { "$numSteps": steps.length, children: [_jsx(BaseLine, {}), _jsx(ProgressLine, { "$widthPercentage": progressPercentage })] })), steps.map((step, index) => {
144
+ return (_jsxs(IndicatorContainer, { children: [_jsxs(StepBar, { children: [steps.length > 1 && (_jsxs(LineContainer, { $numSteps: steps.length, children: [_jsx(BaseLine, {}), _jsx(ProgressLine, { $widthPercentage: progressPercentage })] })), steps.map((step, index) => {
145
145
  const isCompleted = index < currentStepIndex;
146
146
  const isCurrent = index === currentStepIndex;
147
147
  // CORREZIONE: Controlla se l'array di ValidationItem per lo step contiene almeno un errore
@@ -159,7 +159,7 @@ const StepIndicator = ({ steps, currentStepIndex, stepValidityStatuses }) => {
159
159
  else {
160
160
  content = index + 1;
161
161
  }
162
- return (_jsx(StepItem, { children: _jsx(StepRhombusContainer, { "$isCompleted": isCompleted, "$isCurrent": isCurrent, "$isError": displayError, children: _jsx(StepContent, { "$isCompleted": isCompleted, "$isCurrent": isCurrent, "$isError": displayError, children: content }) }) }, index));
163
- })] }), _jsxs(StepTitle, { "$isError": isCurrentStepError, children: [steps[currentStepIndex]?.title, isCurrentStepError && (_jsx(IconWarning, { className: "error-icon" }))] })] }));
162
+ return (_jsx(StepItem, { children: _jsx(StepRhombusContainer, { $isCompleted: isCompleted, $isCurrent: isCurrent, $isError: displayError, children: _jsx(StepContent, { $isCompleted: isCompleted, $isCurrent: isCurrent, $isError: displayError, children: content }) }) }, index));
163
+ })] }), _jsxs(StepTitle, { $isError: isCurrentStepError, children: [steps[currentStepIndex]?.title, isCurrentStepError && (_jsx(IconWarning, { className: "error-icon" }))] })] }));
164
164
  };
165
165
  export default StepIndicator;
@@ -1,17 +1,17 @@
1
1
  import { ArchiveConstraints, InvoiceRetrieveFormats, JobTypes, JoinTypes, MetadataFormats, OrderRetrieveFormats, OwnershipLevels, ParametricFilterTypes, QueryFunctions, QueryOperators, SharingModes, UserLevels } from "@topconsultnpm/sdk-ts";
2
2
  import { DcmtOperationTypes, FormModes } from "../ts";
3
3
  import { DiagramItemTypes } from "../components/features/workflow/diagram/interfaces";
4
- export declare function LocalizeArchiveConstraints(value: ArchiveConstraints | undefined): "Archivierung nur mit Dateien erlauben" | "Allow file only archiving" | "Permitir solo almacenamientos con archivo" | "Autorise uniquement l'archivage de fichiers" | "Permitir somente depósitos com arquivos" | "Consenti solo archiviazioni con file" | "Alles zulassen" | "Allow everything" | "Permitir todo" | "Autorise tout" | "Permitir que todos" | "Consenti tutto" | "Nur Methadatenarchivierung erlauben" | "Allow metadata only archiving" | "Permitir solo almacenamiento de metadatos" | "Autorise uniquement l'archivage de métadonnées" | "Permitir somente os metadados de arquivamento" | "Consenti solo archiviazioni di metadati";
4
+ export declare function LocalizeArchiveConstraints(value: ArchiveConstraints | undefined): "Alles zulassen" | "Allow everything" | "Allow file only archiving" | "Allow metadata only archiving" | "Archivierung nur mit Dateien erlauben" | "Autorise tout" | "Autorise uniquement l'archivage de fichiers" | "Autorise uniquement l'archivage de métadonnées" | "Consenti solo archiviazioni con file" | "Consenti solo archiviazioni di metadati" | "Consenti tutto" | "Nur Methadatenarchivierung erlauben" | "Permitir que todos" | "Permitir solo almacenamiento de metadatos" | "Permitir solo almacenamientos con archivo" | "Permitir somente depósitos com arquivos" | "Permitir somente os metadados de arquivamento" | "Permitir todo";
5
5
  export declare function LocalizeDcmtOperationTypes(value: DcmtOperationTypes | undefined): string;
6
6
  export declare function LocalizeDiagramItemType(type: DiagramItemTypes | undefined | null): string;
7
- export declare function LocalizeFormModes(value: FormModes | undefined): "Erstellen" | "Create" | "Crear" | "Créer" | "Criar" | "Crea" | "Duplikat" | "Duplicate" | "Duplicar" | "Dupliquer" | "Duplicado" | "Duplica" | "Nur Lesen" | "Read only" | "Solo lectura" | "En lecture seule" | "Somente leitura" | "Solo lettura" | "Bearbeiten" | "Update" | "Modificar" | "Modifie" | "Modificação" | "Modifica" | "None" | "Niemand" | "Ninguno" | "Aucun" | "Nenhum" | "Nessuno";
7
+ export declare function LocalizeFormModes(value: FormModes | undefined): "Aucun" | "Bearbeiten" | "Crea" | "Crear" | "Create" | "Criar" | "Créer" | "Duplica" | "Duplicado" | "Duplicar" | "Duplicate" | "Duplikat" | "Dupliquer" | "En lecture seule" | "Erstellen" | "Modifica" | "Modificar" | "Modificação" | "Modifie" | "Nenhum" | "Nessuno" | "Niemand" | "Ninguno" | "None" | "Nur Lesen" | "Read only" | "Solo lectura" | "Solo lettura" | "Somente leitura" | "Update";
8
8
  export declare function LocalizeInvoiceRetrieveFormats(value: InvoiceRetrieveFormats): string;
9
9
  export declare function LocalizeJobTypes(value: JobTypes | undefined): string;
10
10
  export declare function LocalizeMetadataFormats(value: MetadataFormats): string;
11
11
  export declare function LocalizeOwnershipLevels(value: OwnershipLevels | undefined): string | undefined;
12
12
  export declare function LocalizeOrderRetrieveFormats(value: OrderRetrieveFormats): string;
13
- export declare function LocalizeParametricFilterTypes(value: ParametricFilterTypes | undefined): "Personalisierter Ausdruck" | "Custom expression" | "Expresión personalizada" | "Expression personnalisée" | "Expressão personalizado" | "Espressione personalizzata" | "Filtern nach {@UserID}" | "Filter on {@UserID}" | "Filtro en {@UserID}" | "Filtre sur {@UserID}" | "Filtre on {@UserID}" | "Filtro su {@UserID}" | "Filtern nach {@Benutzername} (=)" | "Filter on {@UserName} (=)" | "Filtro en {@UserName} (=)" | "Filtre sur {@UserName} (=)" | "Filtre on {@UserName} (=)" | "Filtro su {@UserName} (=)" | "Filter nach {@Benutzername} (Enthält)" | "Filter on {@UserName} (Contains)" | "Filtro en {@UserName} (Contiene)" | "Filtre sur {@UserName} (Contient)" | "Filtre on {@UserName} (Contém)" | "Filtro su {@UserName} (Contiene)" | "None" | "Niemand" | "Ninguno" | "Aucun" | "Nenhum" | "Nessuno";
14
- export declare function LocalizeQueryFunctions(value: QueryFunctions | undefined): "Zählen" | "Count" | "Contar" | "Compte" | "Contagem" | "Conta" | "" | "None" | "Niemand" | "Ninguno" | "Aucun" | "Nenhum" | "Nessuno" | "Max" | "Höchstwert" | "Máximo" | "Massimo" | "Min" | "Mindestwert" | "Mínimo" | "Minimo" | "Sum" | "Summe" | "Suma" | "Somme" | "Soma" | "Somma";
13
+ export declare function LocalizeParametricFilterTypes(value: ParametricFilterTypes | undefined): "Aucun" | "Custom expression" | "Espressione personalizzata" | "Expresión personalizada" | "Expression personnalisée" | "Expressão personalizado" | "Filter nach {@Benutzername} (Enthält)" | "Filter on {@UserID}" | "Filter on {@UserName} (=)" | "Filter on {@UserName} (Contains)" | "Filtern nach {@Benutzername} (=)" | "Filtern nach {@UserID}" | "Filtre on {@UserID}" | "Filtre on {@UserName} (=)" | "Filtre on {@UserName} (Contém)" | "Filtre sur {@UserID}" | "Filtre sur {@UserName} (=)" | "Filtre sur {@UserName} (Contient)" | "Filtro en {@UserID}" | "Filtro en {@UserName} (=)" | "Filtro en {@UserName} (Contiene)" | "Filtro su {@UserID}" | "Filtro su {@UserName} (=)" | "Filtro su {@UserName} (Contiene)" | "Nenhum" | "Nessuno" | "Niemand" | "Ninguno" | "None" | "Personalisierter Ausdruck";
14
+ export declare function LocalizeQueryFunctions(value: QueryFunctions | undefined): "" | "Aucun" | "Compte" | "Conta" | "Contagem" | "Contar" | "Count" | "Höchstwert" | "Massimo" | "Max" | "Min" | "Mindestwert" | "Minimo" | "Máximo" | "Mínimo" | "Nenhum" | "Nessuno" | "Niemand" | "Ninguno" | "None" | "Soma" | "Somma" | "Somme" | "Sum" | "Suma" | "Summe" | "Zählen";
15
15
  export declare function LocalizeQueryJoinTypes(value: JoinTypes | undefined): string;
16
16
  export declare function LocalizeQueryOperators(value: QueryOperators | undefined): string;
17
17
  export declare function LocalizeSharingModes(value: SharingModes | undefined): string;
@@ -83,6 +83,7 @@ export function LocalizeJobTypes(value) {
83
83
  switch (value) {
84
84
  case JobTypes.FileExec: return "CustomExec";
85
85
  case JobTypes.Signer: return "DcmtSigner";
86
+ case JobTypes.DcmtCreator: return "DcmtStudio";
86
87
  case JobTypes.CassettoFiscaleQuery:
87
88
  switch (cultureID) {
88
89
  case CultureIDs.It_IT: return value?.toString();
@@ -9,7 +9,7 @@ export declare class Globalization {
9
9
  static getDateTimeDisplayValueCompact(value: Date | string | undefined, displayType?: DateDisplayTypes, metadataFormat?: MetadataFormats): string;
10
10
  static getDateDisplayFormat(displayType?: DateDisplayTypes): string;
11
11
  static getNumberDisplayValue(value: Number, withThousandsSeparator?: boolean, numberDisplayFormat?: string): string;
12
- static metadataFormatToDateDisplayFormat(format: MetadataFormats): "" | "dd/MM/yyyy" | "HH:mm" | "HH:mm:ss" | "MM/dd/yyyy" | "EEEE dd MMMM yyyy" | "MM/dd/yyyy HH:mm:ss" | "dd/MM/yyyy HH:mm:ss" | "MM/dd/yyyy HH:mm" | "dd/MM/yyyy HH:mm" | "EEEE dd MMMM yyyy HH:mm" | "EEEE dd MMMM yyyy HH:mm:ss";
12
+ static metadataFormatToDateDisplayFormat(format: MetadataFormats): "" | "EEEE dd MMMM yyyy" | "EEEE dd MMMM yyyy HH:mm" | "EEEE dd MMMM yyyy HH:mm:ss" | "HH:mm" | "HH:mm:ss" | "MM/dd/yyyy" | "MM/dd/yyyy HH:mm" | "MM/dd/yyyy HH:mm:ss" | "dd/MM/yyyy" | "dd/MM/yyyy HH:mm" | "dd/MM/yyyy HH:mm:ss";
13
13
  static getDecimalSeparator(): string | undefined;
14
14
  static getThousandsSeparator(): string | undefined;
15
15
  }