@topconsultnpm/sdkui-react 6.22.0-dev2.9 → 6.22.0-dev3.3

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 (232) 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/ContextMenu/styles.d.ts +14 -14
  4. package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +6 -6
  5. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +31 -31
  6. package/lib/components/base/Styled.d.ts +4 -4
  7. package/lib/components/base/TMAccordionNew.js +7 -7
  8. package/lib/components/base/TMAlert.d.ts +32 -32
  9. package/lib/components/base/TMAreaManager.js +1 -1
  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 +1 -1
  13. package/lib/components/base/TMDataGrid.d.ts +4 -0
  14. package/lib/components/base/TMDataGrid.js +290 -10
  15. package/lib/components/base/TMDropDownMenu.js +1 -1
  16. package/lib/components/base/TMEditorBase.d.ts +2 -0
  17. package/lib/components/base/TMFileManager.js +5 -3
  18. package/lib/components/base/TMFileManagerDataGridView.js +12 -3
  19. package/lib/components/base/TMFileManagerThumbnailItems.js +20 -10
  20. package/lib/components/base/TMFileManagerUtils.d.ts +4 -2
  21. package/lib/components/base/TMFileManagerUtils.js +37 -1
  22. package/lib/components/base/TMLayout.d.ts +2 -2
  23. package/lib/components/base/TMLayout.js +3 -3
  24. package/lib/components/base/TMList.js +1 -1
  25. package/lib/components/base/TMListView.js +3 -3
  26. package/lib/components/base/TMModal.d.ts +11 -0
  27. package/lib/components/base/TMModal.js +47 -13
  28. package/lib/components/base/TMPanel.d.ts +6 -0
  29. package/lib/components/base/TMPanel.js +141 -28
  30. package/lib/components/base/TMPopUp.js +5 -2
  31. package/lib/components/base/TMResizableMenu.js +2 -2
  32. package/lib/components/base/TMRightSidebar.js +1 -1
  33. package/lib/components/base/TMShowAllOrMaxItemsButton.js +1 -1
  34. package/lib/components/base/TMSpinner.js +2 -2
  35. package/lib/components/base/TMTab.js +2 -2
  36. package/lib/components/base/TMToggleButton.js +2 -2
  37. package/lib/components/base/TMToolbarCard.js +3 -3
  38. package/lib/components/base/TMTooltip.d.ts +2 -1
  39. package/lib/components/base/TMTooltip.js +24 -8
  40. package/lib/components/base/TMTreeView.js +110 -69
  41. package/lib/components/base/TMWaitPanel.js +2 -2
  42. package/lib/components/choosers/TMCultureIDPicker.js +2 -2
  43. package/lib/components/choosers/TMDataListItemChooser.js +1 -1
  44. package/lib/components/choosers/TMDataListItemPicker.js +2 -2
  45. package/lib/components/choosers/TMDcmtTypeChooser.js +5 -4
  46. package/lib/components/choosers/TMDiskChooser.js +1 -1
  47. package/lib/components/choosers/TMDistinctValues.d.ts +9 -7
  48. package/lib/components/choosers/TMDistinctValues.js +157 -141
  49. package/lib/components/choosers/TMDynDataListItemChooser.js +1 -1
  50. package/lib/components/choosers/TMImageIDChooser.js +1 -1
  51. package/lib/components/choosers/TMMetadataChooser.js +3 -3
  52. package/lib/components/choosers/TMQuickSearchInfo.d.ts +12 -0
  53. package/lib/components/choosers/TMQuickSearchInfo.js +279 -0
  54. package/lib/components/choosers/TMQuickSearchSettingsForm.d.ts +16 -0
  55. package/lib/components/choosers/TMQuickSearchSettingsForm.js +94 -0
  56. package/lib/components/choosers/TMRelationChooser.js +1 -1
  57. package/lib/components/choosers/TMSelectedValuesSummary.d.ts +13 -0
  58. package/lib/components/choosers/TMSelectedValuesSummary.js +89 -0
  59. package/lib/components/choosers/TMUserChooser.js +1 -1
  60. package/lib/components/editors/TMCheckBox.js +1 -1
  61. package/lib/components/editors/TMDropDown.d.ts +3 -0
  62. package/lib/components/editors/TMDropDown.js +197 -5
  63. package/lib/components/editors/TMEditorStyled.d.ts +10 -10
  64. package/lib/components/editors/TMFormulaEditor.js +1 -1
  65. package/lib/components/editors/TMHtmlContentDisplay.js +1 -1
  66. package/lib/components/editors/TMLocalizedTextBox.js +1 -1
  67. package/lib/components/editors/TMMetadataValues.js +2 -2
  68. package/lib/components/editors/TMRadioButton.js +2 -2
  69. package/lib/components/editors/TMSummary.js +3 -3
  70. package/lib/components/editors/TMTextArea.js +3 -3
  71. package/lib/components/editors/TMTextBox.js +3 -3
  72. package/lib/components/editors/TMTextExpression.js +1 -1
  73. package/lib/components/features/archive/TMArchive.js +17 -3
  74. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.js +2 -2
  75. package/lib/components/features/assistant/TMToppySpeechBubble.js +1 -1
  76. package/lib/components/features/documents/TMBatchUpdateForm.js +20 -6
  77. package/lib/components/features/documents/TMDcmtBlog.d.ts +3 -0
  78. package/lib/components/features/documents/TMDcmtBlog.js +4 -4
  79. package/lib/components/features/documents/TMDcmtForm.d.ts +7 -0
  80. package/lib/components/features/documents/TMDcmtForm.js +180 -53
  81. package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +11 -0
  82. package/lib/components/features/documents/TMDcmtFormActionButtons.js +79 -9
  83. package/lib/components/features/documents/TMDcmtIcon.js +5 -3
  84. package/lib/components/features/documents/TMDcmtPreview.js +12 -8
  85. package/lib/components/features/documents/TMDownloadRelationViewerSection.js +1 -1
  86. package/lib/components/features/documents/TMFileUploader.js +3 -3
  87. package/lib/components/features/documents/TMMasterDetailDcmts.js +96 -34
  88. package/lib/components/features/documents/TMMasterInfoFields.d.ts +19 -0
  89. package/lib/components/features/documents/TMMasterInfoFields.js +184 -0
  90. package/lib/components/features/documents/TMMergeToPdfForm.d.ts +1 -2
  91. package/lib/components/features/documents/TMMergeToPdfForm.js +30 -5
  92. package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.d.ts +45 -0
  93. package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.js +323 -0
  94. package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.d.ts +370 -0
  95. package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.js +283 -0
  96. package/lib/components/features/documents/TMRelationViewer.d.ts +14 -1
  97. package/lib/components/features/documents/TMRelationViewer.js +71 -22
  98. package/lib/components/features/documents/copyAndMergeDcmtsShared.d.ts +1 -1
  99. package/lib/components/features/search/TMMetadataOutputForm.js +1 -1
  100. package/lib/components/features/search/TMMetadataSorterForm.js +1 -1
  101. package/lib/components/features/search/TMSavedQuerySelector.js +2 -2
  102. package/lib/components/features/search/TMSearch.js +78 -12
  103. package/lib/components/features/search/TMSearchQueryEditor.js +7 -5
  104. package/lib/components/features/search/TMSearchQueryPanel.d.ts +4 -0
  105. package/lib/components/features/search/TMSearchQueryPanel.js +142 -68
  106. package/lib/components/features/search/TMSearchResult.d.ts +16 -0
  107. package/lib/components/features/search/TMSearchResult.js +431 -110
  108. package/lib/components/features/search/TMSignatureInfoContent.js +1 -1
  109. package/lib/components/features/search/TMTreeSelector.js +109 -64
  110. package/lib/components/features/tasks/TMTaskForm.js +1 -1
  111. package/lib/components/features/tasks/TMTaskFormUtils.js +3 -3
  112. package/lib/components/features/tasks/TMTasksAgenda.js +1 -1
  113. package/lib/components/features/tasks/TMTasksCalendar.js +1 -1
  114. package/lib/components/features/tasks/TMTasksHeader.js +1 -1
  115. package/lib/components/features/tasks/TMTasksUtilsView.js +1 -1
  116. package/lib/components/features/tasks/TMTasksView.js +4 -4
  117. package/lib/components/features/wg/TMWGsCopyMoveForm.js +1 -1
  118. package/lib/components/features/workflow/TMWorkflowPopup.d.ts +10 -0
  119. package/lib/components/features/workflow/TMWorkflowPopup.js +9 -5
  120. package/lib/components/features/workflow/diagram/ConnectionComponent.js +3 -3
  121. package/lib/components/features/workflow/diagram/DiagramItemComponent.js +3 -3
  122. package/lib/components/features/workflow/diagram/DiagramItemForm.js +1 -1
  123. package/lib/components/features/workflow/diagram/DiagramItemSvgContent.js +1 -1
  124. package/lib/components/features/workflow/diagram/RecipientList.js +1 -1
  125. package/lib/components/features/workflow/diagram/WFDiagram.js +4 -4
  126. package/lib/components/forms/Login/Menu.js +1 -1
  127. package/lib/components/forms/Login/OTPReader.js +1 -1
  128. package/lib/components/forms/Login/PasswordStrengthChecker.js +1 -1
  129. package/lib/components/forms/Login/RapidAccessLogin.js +2 -2
  130. package/lib/components/forms/Login/RecoverPasswordFlow.js +2 -2
  131. package/lib/components/forms/Login/SelectBox.js +1 -1
  132. package/lib/components/forms/Login/StepIndicator.js +1 -1
  133. package/lib/components/forms/Login/TMLoginForm.js +7 -7
  134. package/lib/components/forms/Login/TextBox.js +1 -1
  135. package/lib/components/forms/TMApplyForm.js +3 -3
  136. package/lib/components/forms/TMChooserForm.js +1 -1
  137. package/lib/components/forms/TMSaveForm.js +3 -3
  138. package/lib/components/grids/TMBlogAttachments.js +14 -3
  139. package/lib/components/grids/TMBlogHeader.js +5 -1
  140. package/lib/components/grids/TMBlogsPost.d.ts +2 -0
  141. package/lib/components/grids/TMBlogsPost.js +31 -4
  142. package/lib/components/grids/TMBlogsPostUtils.d.ts +1 -0
  143. package/lib/components/grids/TMBlogsPostUtils.js +15 -4
  144. package/lib/components/grids/TMRecentsManager.js +4 -4
  145. package/lib/components/grids/TMValidationItemsList.js +1 -1
  146. package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +1 -0
  147. package/lib/components/layout/panelManager/TMPanelManagerContainer.js +25 -15
  148. package/lib/components/layout/panelManager/TMPanelManagerContext.js +68 -93
  149. package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +2 -2
  150. package/lib/components/layout/panelManager/TMPanelManagerToolbar.js +1 -1
  151. package/lib/components/layout/panelManager/TMPanelWrapper.js +3 -3
  152. package/lib/components/layout/panelManager/types.d.ts +3 -0
  153. package/lib/components/layout/panelManager/utils.js +13 -11
  154. package/lib/components/pages/TMPage.js +1 -1
  155. package/lib/components/query/TMQueryCountButton.js +1 -1
  156. package/lib/components/query/TMQueryEditor.js +7 -7
  157. package/lib/components/sidebar/TMCommandsPanel.js +1 -1
  158. package/lib/components/sidebar/TMHeader.js +36 -26
  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 +6 -3
  162. package/lib/components/viewers/TMTidViewer.js +89 -28
  163. package/lib/components/wizard/TMStepIndicator.js +3 -3
  164. package/lib/css/tm-sdkui.css +1 -1
  165. package/lib/devextreme-license.d.ts +1 -0
  166. package/lib/devextreme-license.js +3 -0
  167. package/lib/helper/Enum_Localizator.d.ts +4 -4
  168. package/lib/helper/Globalization.d.ts +1 -1
  169. package/lib/helper/SDKUI_Globals.d.ts +110 -0
  170. package/lib/helper/SDKUI_Globals.js +151 -0
  171. package/lib/helper/SDKUI_Localizator.d.ts +731 -687
  172. package/lib/helper/SDKUI_Localizator.js +440 -0
  173. package/lib/helper/TMAppUpdatedModal.d.ts +1 -0
  174. package/lib/helper/TMAppUpdatedModal.js +134 -0
  175. package/lib/helper/TMIcons.d.ts +1 -0
  176. package/lib/helper/TMIcons.js +4 -3
  177. package/lib/helper/TMPdfViewer.js +1 -1
  178. package/lib/helper/TMToppyMessage.js +1 -1
  179. package/lib/helper/TMUtils.d.ts +13 -0
  180. package/lib/helper/TMUtils.js +25 -3
  181. package/lib/helper/checkinCheckoutManager.d.ts +1 -1
  182. package/lib/helper/checkinCheckoutManager.js +1 -1
  183. package/lib/helper/dataGridSearchHelper.d.ts +28 -0
  184. package/lib/helper/dataGridSearchHelper.js +51 -0
  185. package/lib/helper/dcmtsHelper.d.ts +20 -0
  186. package/lib/helper/dcmtsHelper.js +58 -1
  187. package/lib/helper/helpers.d.ts +12 -1
  188. package/lib/helper/helpers.js +27 -3
  189. package/lib/helper/index.d.ts +2 -0
  190. package/lib/helper/index.js +2 -0
  191. package/lib/helper/queryHelper.d.ts +6 -1
  192. package/lib/helper/queryHelper.js +8 -3
  193. package/lib/hooks/tmDistinctValuesGridHelper.d.ts +16 -0
  194. package/lib/hooks/tmDistinctValuesGridHelper.js +31 -0
  195. package/lib/hooks/useArchiveListForm.d.ts +39 -0
  196. package/lib/hooks/useArchiveListForm.js +46 -0
  197. package/lib/hooks/useCaseFlowApprove.d.ts +56 -0
  198. package/lib/hooks/useCaseFlowApprove.js +157 -0
  199. package/lib/hooks/useDataUserIdItem.d.ts +1 -0
  200. package/lib/hooks/useDataUserIdItem.js +1 -0
  201. package/lib/hooks/useDocumentOperations.d.ts +4 -0
  202. package/lib/hooks/useDocumentOperations.js +53 -11
  203. package/lib/hooks/useInputDialog.js +1 -1
  204. package/lib/hooks/useMultiMasterDetailDcmts.d.ts +113 -0
  205. package/lib/hooks/useMultiMasterDetailDcmts.js +760 -0
  206. package/lib/hooks/useQueryParametersDialog.js +1 -1
  207. package/lib/hooks/useRelatedDocuments.d.ts +1 -0
  208. package/lib/hooks/useRelatedDocuments.js +22 -27
  209. package/lib/hooks/useShowDossiersV5.d.ts +12 -0
  210. package/lib/hooks/useShowDossiersV5.js +37 -0
  211. package/lib/hooks/useTMDistinctValuesMetadataDisplay.d.ts +18 -0
  212. package/lib/hooks/useTMDistinctValuesMetadataDisplay.js +103 -0
  213. package/lib/hooks/useTMDistinctValuesQuickSearch.d.ts +49 -0
  214. package/lib/hooks/useTMDistinctValuesQuickSearch.js +307 -0
  215. package/lib/hooks/useTMDistinctValuesSelection.d.ts +42 -0
  216. package/lib/hooks/useTMDistinctValuesSelection.js +103 -0
  217. package/lib/hooks/useTMDistinctValuesSource.d.ts +29 -0
  218. package/lib/hooks/useTMDistinctValuesSource.js +105 -0
  219. package/lib/index.d.ts +2 -0
  220. package/lib/index.js +5 -2
  221. package/lib/services/caseflow/CaseFlowService.d.ts +247 -0
  222. package/lib/services/caseflow/CaseFlowService.js +720 -0
  223. package/lib/services/caseflow/CaseFlowTemplateCacheService.d.ts +28 -0
  224. package/lib/services/caseflow/CaseFlowTemplateCacheService.js +121 -0
  225. package/lib/services/caseflow/caseFlowNameCache.d.ts +32 -0
  226. package/lib/services/caseflow/caseFlowNameCache.js +116 -0
  227. package/lib/services/caseflow/caseFlowWorkItemUtils.d.ts +61 -0
  228. package/lib/services/caseflow/caseFlowWorkItemUtils.js +113 -0
  229. package/lib/services/index.d.ts +4 -0
  230. package/lib/services/index.js +4 -0
  231. package/lib/services/platform_services.d.ts +4 -4
  232. package/package.json +71 -68
@@ -1,7 +1,7 @@
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
- import { getAvatarColor, IconCloseOutline, IconCopy, openApps, SDKUI_Localizator } from '../../helper';
4
+ import { getAvatarColor, IconCloseOutline, IconCopy, IconOpenInNew, openApps, SDKUI_Localizator, WHATS_NEWS_LINK_URL } from '../../helper';
5
5
  import styled, { keyframes } from 'styled-components';
6
6
  import { SDK_Globals, AuthenticationModes, AppModules, UserLevels, CultureIDs } from '@topconsultnpm/sdk-ts';
7
7
  import { TMColors } from '../../utils/theme';
@@ -10,6 +10,7 @@ import { DeviceType, useDeviceType } from '../base/TMDeviceProvider';
10
10
  import { TMAboutApp } from './TMAboutApp';
11
11
  import ShowAlert from '../base/TMAlert';
12
12
  import TMResizableMenu from '../base/TMResizableMenu';
13
+ import TMTooltip from '../base/TMTooltip';
13
14
  import it from '../../assets/italy.svg';
14
15
  import de from '../../assets/german.svg';
15
16
  import fr from '../../assets/france.svg';
@@ -87,7 +88,7 @@ export const copyUserInfoToClipboard = (userName, cultureId, archiveId, archiveD
87
88
  };
88
89
  export const TMSearchBar = ({ searchValue, onSearchValueChanged, maxWidth, marginLeft }) => {
89
90
  const deviceType = useDeviceType();
90
- 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 } })] }));
91
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
94
  const [appRoutes, setAppRoutes] = useState();
@@ -240,23 +241,23 @@ const TMHeader = ({ customButtons = _jsx(_Fragment, {}), onMenusOpen, showSettin
240
241
  const isOfficeConnector = useMemo(() => {
241
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;
242
243
  }, [SDK_Globals.appModule]);
243
- return (_jsxs(StyledHeaderContainer, { "$appName": SDK_Globals.appModule, children: [(isAdministrativeLevel && !isOfficeConnector) &&
244
- _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: () => {
245
246
  if (openMenuTimer.current)
246
247
  clearTimeout(openMenuTimer.current);
247
248
  openMenuTimer.current = setTimeout(() => { setShowAppMenu(true); onMenusOpen?.(); }, 200);
248
249
  }, onMouseLeave: () => {
249
250
  if (openMenuTimer.current)
250
251
  clearTimeout(openMenuTimer.current);
251
- }, 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] }), showSettingsMenu && _jsxs(StyledHeaderIcon, { onClick: () => onSettingsClick?.(), children: [" ", _jsx(IconHeaderSettings, { fontSize: 24 }), " "] }), _jsx(UserAvatarContainer, { $isSelected: menuStatus, ref: userIcon, onClick: e => {
252
253
  e.stopPropagation();
253
254
  e.preventDefault();
254
255
  setMenuStatus(prev => !prev);
255
- }, children: _jsx(UserAvatar, { "$bgColor": avatarColor, children: userInitials }) }), menuStatus &&
256
- _jsx(TMResizableMenu, { ref: menuRef, isVisible: menuStatus, top: 60, right: 10, resizable: false, maxWidth: 300, minWidth: 300, maxHeight: 180, minHeight: 180, padding: 0, children: _jsxs(MenuContainer, { children: [_jsxs(UserProfileSection, { children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, height: 'max-content' }, 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', flexDirection: 'column', alignItems: 'flex-start', justifyContent: 'center', gap: 5 }, children: [_jsx(SessionInfo, { children: endpoint }), _jsx(SessionInfo, { children: archiveId + ' (' + archiveDesc + ')' })] })] }), _jsx(CopyIcon, { onClick: (e) => {
257
- e.stopPropagation();
258
- copyUserInfoToClipboard(userName, cultureId, archiveId, archiveDesc, endpoint, domain);
259
- }, title: SDKUI_Localizator.CopyUserInfo, children: _jsx(IconCopy, { fontSize: 12 }) }), _jsx(LogoutButton, { onClick: () => {
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
+ e.stopPropagation();
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
261
  setMenuStatus(false);
261
262
  onLogout && onLogout();
262
263
  }, children: _jsx(LogoutText, { children: SDKUI_Localizator.Logout }) })] }), _jsxs(BottomActionsContainer, { children: [isTopMediaAuth && (_jsx(BottomActionButton, { onClick: () => {
@@ -468,8 +469,9 @@ const MenuContainer = styled.div `
468
469
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
469
470
  `;
470
471
  const UserProfileSection = styled.div `
472
+ position: relative;
471
473
  display: flex;
472
- padding: 20px;
474
+ padding: 16px 20px;
473
475
  background: linear-gradient(135deg, #f8f9fa 0%, #f1f3f4 100%);
474
476
  border-bottom: 1px solid #e1e5e9;
475
477
  gap: 12px;
@@ -515,7 +517,7 @@ const CultureFlag = styled.img `
515
517
  `;
516
518
  const LogoutButton = styled.div `
517
519
  position: absolute;
518
- top: 20px;
520
+ top: 16px;
519
521
  right: 20px;
520
522
  cursor: pointer;
521
523
  transition: all 0.2s ease;
@@ -546,29 +548,37 @@ const AvatarContainer = styled.div `
546
548
  position: relative;
547
549
  flex-shrink: 0;
548
550
  `;
549
- const CopyIcon = styled.div `
550
- position: absolute;
551
- bottom: 50px;
552
- right: 15px;
553
- width: 20px;
554
- height: 20px;
551
+ const HeaderMenuActions = styled.div `
552
+ display: flex;
553
+ flex-direction: column;
554
+ gap: 6px;
555
+ flex-shrink: 0;
556
+ `;
557
+ const HeaderMenuActionIcon = styled.div `
558
+ width: 22px;
559
+ height: 22px;
555
560
  background: white;
556
- border: 1px solid #e1e5e9;
561
+ border: 1px solid ${props => props.$color}55;
557
562
  border-radius: 50%;
558
563
  display: flex;
559
564
  align-items: center;
560
565
  justify-content: center;
561
566
  cursor: pointer;
562
- color: #605e5c;
563
567
  transition: all 0.2s ease;
564
568
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
565
- z-index: 10;
566
- opacity: 0.6;
569
+ text-decoration: none;
567
570
 
568
- &:hover {
569
- background: #b7b7b7;
571
+ /* "&&" alza la specificita': un eventuale "a, a:visited { color: inherit }"
572
+ dell'app ospite vincerebbe sulla singola classe di styled-components */
573
+ &&,
574
+ &&:visited {
575
+ color: ${props => props.$color};
576
+ }
577
+
578
+ &&:hover {
579
+ background: ${props => props.$color};
580
+ border-color: ${props => props.$color};
570
581
  color: white;
571
- opacity: 1;
572
582
  }
573
583
 
574
584
  &:active {
@@ -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';
@@ -92,8 +92,11 @@ export const TMMetadataIcon = ({ tid, md, color, layoutMode = LayoutModes.Update
92
92
  break;
93
93
  }
94
94
  }
95
+ // color='inherit' serve solo all'icona (eredita il colore dell'editor): il tooltip è renderizzato in overlay,
96
+ // dove 'inherit' non risolverebbe al colore dell'editor, quindi lì manteniamo la palette normale
97
+ let tooltipColor = color === 'inherit' ? undefined : color;
95
98
  return (_jsx(_Fragment, { children: icon
96
- ? _jsx(TMMetadataTooltip, { tid: tid, md: md, layoutMode: layoutMode, color: color, children: icon })
99
+ ? _jsx(TMMetadataTooltip, { tid: tid, md: md, layoutMode: layoutMode, color: tooltipColor, children: icon })
97
100
  : null }));
98
101
  };
99
102
  export const TMMetadataTooltip = ({ tid, md, color, children, layoutMode = LayoutModes.Update }) => {
@@ -107,7 +110,7 @@ export const TMMetadataTooltip = ({ tid, md, color, children, layoutMode = Layou
107
110
  let isNumeratorInArk = md?.dataDomain === MetadataDataDomains.Numerator && layoutMode === LayoutModes.Ark;
108
111
  const renderTooltipContent = (tid, md) => {
109
112
  return (!md ? null
110
- : _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}` })] })] }));
111
114
  };
112
115
  return (_jsx("div", { style: { pointerEvents: 'all' }, children: _jsx(TMTooltip, { content: renderTooltipContent(tid, md), children: children }) }));
113
116
  };
@@ -1,11 +1,12 @@
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
- import { getDTDDisplayNameInfo, IconDcmtType, IconDcmtTypeOnlyMetadata, IconLocked, IconView, isCreateCertificateEnabled, isPdfEditorEnabled, isSign4TopEnabled, LocalizeArchiveConstraints, LocalizeParametricFilterTypes, SDKUI_Localizator, TMImageLibrary } from '../../helper';
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';
5
5
  import TMSpinner from '../base/TMSpinner';
6
6
  import { StyledDivHorizontal, StyledTooltipContainer, StyledTooltipItem, StyledTooltipSeparatorItem } from '../base/Styled';
7
7
  import TMTooltip from '../base/TMTooltip';
8
8
  import { TMColors } from '../../utils/theme';
9
+ import styled, { keyframes } from 'styled-components';
9
10
  export var ImageIDList;
10
11
  (function (ImageIDList) {
11
12
  ImageIDList["arrow_001"] = "arrow_001";
@@ -242,7 +243,7 @@ export const TMDcmtTypeIcon = ({ dtd }) => {
242
243
  if (!dtd)
243
244
  return null;
244
245
  let icon = null;
245
- if (dtd.customData2 === "NOTGRANTED")
246
+ if (isNotGrantedDTD(dtd))
246
247
  icon = _jsx(IconLocked, { fontSize: 16 });
247
248
  else if (dtd.imageID && dtd.imageID.length > 0)
248
249
  icon = _jsx(TMImageLibrary, { imageID: dtd.imageID });
@@ -259,33 +260,77 @@ export const TMDcmtTypeIcon = ({ dtd }) => {
259
260
  return (_jsx(TMDcmtTypeTooltip, { dtd: dtd, children: icon }));
260
261
  };
261
262
  export const TMDcmtTypeTooltip = ({ dtd, children }) => {
262
- return (_jsx("div", { style: { pointerEvents: 'all' }, children: _jsx(TMTooltip, { content: renderDTDTooltipContent(dtd), children: children }) }));
263
+ return (_jsx("div", { style: { pointerEvents: 'all' }, children: _jsx(TMTooltip, { allowContentInteraction: true, content: renderDTDTooltipContent(dtd), children: children }) }));
263
264
  };
265
+ /** Legge il tipo documento dalle cache dell'SDK senza passare dal mutex. Serve perché
266
+ * l'espansione di una cartella nell'albero ricrea tutte le celle: senza una lettura sincrona
267
+ * ogni riga tornerebbe a mostrare il testo di "nessuna selezione" fino alla fine delle
268
+ * richieste (una per TID, serializzate dal mutex).
269
+ * GetCache restituisce le mappe vive usate dall'SDK, quindi le invalidazioni
270
+ * (RemoveAllWithMetadata, RemoveAllWithoutMetadata, logout) hanno effetto immediato. */
271
+ const getCachedDTD = (tid, tmSession) => {
272
+ if (!tid || tid <= 0)
273
+ return undefined;
274
+ const accessToken = (tmSession ?? SDK_Globals.tmSession)?.SessionDescr?.accessToken;
275
+ if (!accessToken)
276
+ return undefined;
277
+ // La cache senza metadati è popolata dalla login: copre già i tipi documento autorizzati
278
+ return DcmtTypeListCacheService.GetCache(false).get(accessToken)?.find(o => o.id === tid)
279
+ ?? DcmtTypeListCacheService.GetCache(true).get(accessToken)?.find(o => o.id === tid);
280
+ };
281
+ const shimmer = keyframes `
282
+ 0% { background-position: 200% 0; }
283
+ 100% { background-position: -200% 0; }
284
+ `;
285
+ /** Segnaposto animato mostrato al posto del nome durante il caricamento.
286
+ * Grigio semitrasparente: leggibile sia su sfondo chiaro che scuro. */
287
+ const StyledTidSkeleton = styled.span `
288
+ display: inline-block;
289
+ flex: 0 0 auto;
290
+ width: 90px;
291
+ height: 0.9em;
292
+ border-radius: 4px;
293
+ background-image: linear-gradient(90deg, rgba(127, 127, 127, 0.12) 25%, rgba(127, 127, 127, 0.28) 50%, rgba(127, 127, 127, 0.12) 75%);
294
+ background-size: 200% 100%;
295
+ animation: ${shimmer} 1.4s ease-in-out infinite;
296
+
297
+ @media (prefers-reduced-motion: reduce) { animation: none; }
298
+ `;
264
299
  const TMTidViewer = ({ tmSession, tid, did, showIcon = false, color, showId = false, noneSelectionText = `<${SDKUI_Localizator.NoneSelection}>` }) => {
265
- const [dtd, setDtd] = useState();
300
+ const accessToken = (tmSession ?? SDK_Globals.tmSession)?.SessionDescr?.accessToken;
301
+ const [dtd, setDtd] = useState(() => getCachedDTD(tid, tmSession));
302
+ const [isLoading, setIsLoading] = useState(() => !!tid && tid > 0 && !getCachedDTD(tid, tmSession));
266
303
  const fetchData = async (tid, did) => {
267
304
  if (!tid || tid <= 0) {
268
305
  setDtd(undefined);
306
+ setIsLoading(false);
269
307
  return;
270
308
  }
309
+ const cached = getCachedDTD(tid, tmSession);
310
+ if (cached)
311
+ setDtd(cached);
312
+ setIsLoading(!cached);
271
313
  let count = DcmtTypeListCacheService.CacheCount(true, 'all', tmSession);
272
314
  if (count <= 0)
273
315
  TMSpinner.show({ description: `${SDKUI_Localizator.Loading} - ${SDK_Localizator.ListDcmtTypeOrView} ...` });
274
316
  try {
275
- let resultDTD = await DcmtTypeListCacheService.GetAsync(tid);
317
+ let resultDTD = await DcmtTypeListCacheService.GetAsync(tid, true, tmSession);
276
318
  if (!resultDTD) {
277
- resultDTD = await DcmtTypeListCacheService.GetWithNotGrantedAsync(tid, did);
319
+ resultDTD = await DcmtTypeListCacheService.GetWithNotGrantedAsync(tid, did, undefined, true, tmSession);
278
320
  }
279
321
  setDtd(resultDTD);
280
322
  }
281
323
  finally {
282
324
  if (count <= 0)
283
325
  TMSpinner.hide();
326
+ setIsLoading(false);
284
327
  }
285
328
  };
329
+ // accessToken e non tmSession: la sessione è un oggetto e un'identità nuova a ogni render
330
+ // del chiamante rifarebbe la richiesta senza motivo
286
331
  useEffect(() => {
287
332
  fetchData(tid, did);
288
- }, [tid, did]);
333
+ }, [tid, did, accessToken]);
289
334
  const displayName = () => {
290
335
  if (!dtd)
291
336
  return noneSelectionText;
@@ -295,31 +340,47 @@ const TMTidViewer = ({ tmSession, tid, did, showIcon = false, color, showId = fa
295
340
  whiteSpace: 'nowrap',
296
341
  overflow: 'hidden',
297
342
  textOverflow: 'ellipsis'
298
- }, children: [showIcon && dtd && _jsx(TMDcmtTypeIcon, { dtd: dtd }), _jsx("p", { title: displayName(), style: {
299
- textAlign: 'left',
300
- marginLeft: showIcon ? '5px' : '',
301
- color: color ?? (dtd?.isView ? 'red' : TMColors.primary),
302
- whiteSpace: 'nowrap',
303
- overflow: 'hidden',
304
- textOverflow: 'ellipsis',
305
- // paddingRight: '10px'
306
- }, children: displayName() }), showId && _jsx("p", { style: { padding: '0px 3px' }, children: `(TID: ${tid})` })] }));
343
+ }, children: [showIcon && dtd && _jsx(TMDcmtTypeIcon, { dtd: dtd }), isLoading && !dtd
344
+ ? _jsx(StyledTidSkeleton, { title: `${SDKUI_Localizator.Loading} ...`, style: { marginLeft: showIcon ? '5px' : undefined } })
345
+ : _jsx("p", { title: displayName(), style: {
346
+ textAlign: 'left',
347
+ margin: 0,
348
+ marginLeft: showIcon ? '5px' : '',
349
+ color: dtd?.isView ? 'red' : (color ?? TMColors.primary),
350
+ whiteSpace: 'nowrap',
351
+ overflow: 'hidden',
352
+ textOverflow: 'ellipsis',
353
+ // paddingRight: '10px'
354
+ }, children: displayName() }), showId && _jsx("p", { style: { padding: '0px 3px', margin: 0 }, children: `(TID: ${tid})` })] }));
307
355
  };
308
356
  export default TMTidViewer;
309
357
  export const cellRenderTID = (data, noneSelectionText) => {
310
358
  return (_jsx(TMTidViewer, { tid: data.value, noneSelectionText: noneSelectionText }));
311
359
  };
312
- /** Componente per mostrare il metodo di visualizzazione del nome documento (carica i metadati dalla cache se necessario) */
360
+ /** Metodi di visualizzazione già richiesti, per non ricaricare i metadati ad ogni riapertura del tooltip */
361
+ const displayNameMethodCache = new Map();
313
362
  const TMDisplayNameMethodItem = ({ dtd }) => {
314
- const [displayNameMethod, setDisplayNameMethod] = useState('...');
315
- useEffect(() => {
316
- const fetchDisplayNameMethod = async () => {
363
+ const [displayNameMethod, setDisplayNameMethod] = useState(() => dtd.id ? displayNameMethodCache.get(dtd.id) : undefined);
364
+ const [isLoading, setIsLoading] = useState(false);
365
+ const onShowClick = async (e) => {
366
+ /* Un click qualsiasi chiude il tooltip: senza questo il risultato non sarebbe mai visibile */
367
+ e.stopPropagation();
368
+ if (isLoading || displayNameMethod)
369
+ return;
370
+ setIsLoading(true);
371
+ try {
317
372
  const method = await getDTDDisplayNameInfo(dtd);
373
+ if (dtd.id)
374
+ displayNameMethodCache.set(dtd.id, method);
318
375
  setDisplayNameMethod(method);
319
- };
320
- fetchDisplayNameMethod();
321
- }, [dtd]);
322
- return _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.DisplayNameMethod}: ${displayNameMethod}` });
376
+ }
377
+ finally {
378
+ setIsLoading(false);
379
+ }
380
+ };
381
+ return (_jsxs(StyledTooltipItem, { children: [`${SDKUI_Localizator.DisplayNameMethod}: `, displayNameMethod ?? (isLoading
382
+ ? `${SDKUI_Localizator.Loading} ...`
383
+ : _jsx("span", { style: { color: TMColors.primary, cursor: 'pointer', textDecoration: 'underline' }, onClick: onShowClick, children: SDKUI_Localizator.Details }))] }));
323
384
  };
324
385
  export const renderDTDTooltipContent = (dtd) => {
325
386
  const mapAccessLevelToLocalizedString = (level) => {
@@ -341,13 +402,13 @@ export const renderDTDTooltipContent = (dtd) => {
341
402
  }
342
403
  };
343
404
  return (!dtd ? null
344
- : _jsxs(StyledTooltipContainer, { children: [_jsx(StyledTooltipItem, { children: `${SDK_Globals.useLocalizedName ? dtd.nameLoc : dtd.name} (${dtd.isView ? 'VID' : 'TID'}: ${dtd.id}, RootTID: ${dtd.rootTID ?? 0})` }), dtd.description && _jsx(StyledTooltipItem, { children: dtd.description }), _jsx(StyledTooltipSeparatorItem, {}), dtd.customData2 === "NOTGRANTED"
405
+ : _jsxs(StyledTooltipContainer, { children: [_jsx(StyledTooltipItem, { children: `${SDK_Globals.useLocalizedName ? dtd.nameLoc : dtd.name} (${dtd.isView ? 'VID' : 'TID'}: ${dtd.id}, RootTID: ${dtd.rootTID ?? 0})` }), dtd.description && _jsx(StyledTooltipItem, { children: dtd.description }), _jsx(StyledTooltipSeparatorItem, {}), isNotGrantedDTD(dtd)
345
406
  ? _jsx(StyledTooltipItem, { style: { fontWeight: 600 }, children: 'Tipo documento NON autorizzato' })
346
407
  :
347
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 ?
348
- _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)}` })] })
349
410
  : dtd.ownershipLevel == OwnershipLevels.DirectOwner || dtd.ownershipLevel == OwnershipLevels.IndirectOwner ?
350
- _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}` })] })
351
412
  : _jsx(_Fragment, {}), (dtd.widgets && dtd.widgets.length > 0) ? (() => {
352
413
  const enabledWidgets = [
353
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 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-right,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-left,.tm-tooltip-container-base-top{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-right,.tm-tooltip-arrow-left,.tm-tooltip-arrow-top,.tm-tooltip-arrow-bottom{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-top,.tm-tooltip-container-base-left,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-right{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-bottom,.tm-tooltip-arrow-top,.tm-tooltip-arrow-left,.tm-tooltip-arrow-right{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}@keyframes show-error{0%{display:none;opacity:0;z-index:20000999}5%{display:block;opacity:1;z-index:20000999}95%{display:block;opacity:1;z-index:20000999}100%{opacity:0;display:none;z-index:20000999}}.tm-alert-animation-style{animation:show-error both;animation-timing-function:linear;animation-iteration-count:none;z-index:20000999}.tm-alert-container{position:absolute;width:100%;height:100%;z-index:20000999}@keyframes loading{from{width:0}to{width:100%}}.tm-alert-loading{width:100%;height:5px;position:absolute;bottom:0;left:0;animation:loading;animation-duration:5000ms}.tm-alert-icon{position:absolute;width:22px;height:22px;background-color:#fff;top:"20px";left:"20px";border-radius:50%;display:flex;align-items:center;justify-content:center}.dx-context-menu.dx-overlay-content{height:auto !important;max-height:none !important}.dx-context-menu .dx-menu-items-container{max-height:none !important}.custom-mentions-wrapper span.dx-mention span[contenteditable=false]>span:first-child{font-size:0;width:0;display:inline-block;overflow:hidden}.custom-mentions-wrapper span.dx-mention{color:#2559a5;font-weight:bold;background-color:rgba(0,0,0,0)}.dx-treeview-node.dx-treeview-item-with-checkbox.dx-state-selected.dx-treeview-root-node.dx-treeview-node-is-leaf[aria-disabled=true]{display:none !important}
1
+ @import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-right,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-left,.tm-tooltip-container-base-top{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-right,.tm-tooltip-arrow-left,.tm-tooltip-arrow-top,.tm-tooltip-arrow-bottom{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-top,.tm-tooltip-container-base-left,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-right{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-bottom,.tm-tooltip-arrow-top,.tm-tooltip-arrow-left,.tm-tooltip-arrow-right{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}@keyframes show-error{0%{display:none;opacity:0;z-index:20000999}5%{display:block;opacity:1;z-index:20000999}95%{display:block;opacity:1;z-index:20000999}100%{opacity:0;display:none;z-index:20000999}}.tm-alert-animation-style{animation:show-error both;animation-timing-function:linear;animation-iteration-count:none;z-index:20000999}.tm-alert-container{position:absolute;width:100%;height:100%;z-index:20000999}@keyframes loading{from{width:0}to{width:100%}}.tm-alert-loading{width:100%;height:5px;position:absolute;bottom:0;left:0;animation:loading;animation-duration:5000ms}.tm-alert-icon{position:absolute;width:22px;height:22px;background-color:#fff;top:"20px";left:"20px";border-radius:50%;display:flex;align-items:center;justify-content:center}.dx-context-menu.dx-overlay-content{height:auto !important;max-height:none !important}.dx-context-menu .dx-menu-items-container{max-height:none !important}.custom-mentions-wrapper span.dx-mention span[contenteditable=false]>span:first-child{font-size:0;width:0;display:inline-block;overflow:hidden}.custom-mentions-wrapper span.dx-mention{color:#2559a5;font-weight:bold;background-color:rgba(0,0,0,0)}.dx-treeview-node.dx-treeview-item-with-checkbox.dx-state-selected.dx-treeview-root-node.dx-treeview-node-is-leaf[aria-disabled=true]{display:none !important}.dx-overlay-wrapper.dx-tooltip-wrapper{z-index:1540 !important}
@@ -0,0 +1 @@
1
+ export declare const licenseKey = "LCPv1(%@j2<F<eQy:2N+f,7R@!i)BcQ,N374Qe%m;9etySj@gGntp77@@:<VJ77@j!_t<%yd-Siei,7FYV%!G>7a(cj%z3Ltv!ot1SeaicLr[3o,6>H:1(e,jSQt$3bREp%tv%H+4InRJ3J88Gn+aIidEee--SQVb,yVH7QRgSpm:2be9I%,;Z+Qmk%!<9jyG6%!6pLdQ6Lt<!N-Q%iR)6%fBIR+:2<)<!Qr->%X<2p@62%!F2bR62<-$2i-)2i-FI%d@G<-@!jy$2iRQ6b-v!jyvIg!:ajzvaj@Fpg!$2b-FIp9;9K-:>Q4:G_@@9Qdv6<!F6<dFI7yFI7yFI7Ll";
@@ -0,0 +1,3 @@
1
+ // Auto-generated by devextreme-license.
2
+ // Do not commit this file to source control.
3
+ export const licenseKey = 'LCPv1(%@j2<F<eQy:2N+f,7R@!i)BcQ,N374Qe%m;9etySj@gGntp77@@:<VJ77@j!_t<%yd-Siei,7FYV%!G>7a(cj%z3Ltv!ot1SeaicLr[3o,6>H:1(e,jSQt$3bREp%tv%H+4InRJ3J88Gn+aIidEee--SQVb,yVH7QRgSpm:2be9I%,;Z+Qmk%!<9jyG6%!6pLdQ6Lt<!N-Q%iR)6%fBIR+:2<)<!Qr->%X<2p@62%!F2bR62<-$2i-)2i-FI%d@G<-@!jy$2iRQ6b-v!jyvIg!:ajzvaj@Fpg!$2b-FIp9;9K-:>Q4:G_@@9Qdv6<!F6<dFI7yFI7yFI7Ll';
@@ -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;
@@ -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
  }