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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +4 -4
  2. package/lib/components/base/Styled.d.ts +1 -1
  3. package/lib/components/base/TMCounterBar.d.ts +2 -2
  4. package/lib/components/base/TMCounterContainer.d.ts +2 -1
  5. package/lib/components/base/TMCustomButton.d.ts +1 -1
  6. package/lib/components/base/TMDataGridExportForm.d.ts +2 -1
  7. package/lib/components/base/TMFileManager.d.ts +2 -1
  8. package/lib/components/base/TMFileManagerDataGridView.d.ts +2 -1
  9. package/lib/components/base/TMFileManagerThumbnailItems.d.ts +1 -1
  10. package/lib/components/base/TMFileManagerThumbnailsView.d.ts +1 -1
  11. package/lib/components/base/TMLayout.d.ts +4 -4
  12. package/lib/components/base/TMList.d.ts +2 -1
  13. package/lib/components/base/TMListView.d.ts +1 -1
  14. package/lib/components/base/TMModal.js +1 -1
  15. package/lib/components/base/TMSpinner.d.ts +2 -1
  16. package/lib/components/base/TMTab.d.ts +4 -3
  17. package/lib/components/base/TMTooltip.d.ts +1 -1
  18. package/lib/components/base/TMTreeView.d.ts +1 -1
  19. package/lib/components/base/TMUserAvatar.d.ts +2 -1
  20. package/lib/components/base/TMVilViewer.d.ts +2 -1
  21. package/lib/components/base/TMWaitPanel.d.ts +3 -2
  22. package/lib/components/choosers/TMDynDataListItemChooser.d.ts +3 -1
  23. package/lib/components/choosers/TMDynDataListItemChooser.js +4 -6
  24. package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +2 -1
  25. package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +2 -1
  26. package/lib/components/choosers/TMRelationChooser.d.ts +3 -3
  27. package/lib/components/choosers/TMUserChooser.d.ts +2 -2
  28. package/lib/components/editors/TMFormulaEditor.d.ts +1 -1
  29. package/lib/components/editors/TMHtmlContentDisplay.d.ts +2 -1
  30. package/lib/components/editors/TMHtmlEditor.d.ts +2 -1
  31. package/lib/components/editors/TMTextBox.js +10 -5
  32. package/lib/components/editors/TMTreeDropDown.d.ts +1 -1
  33. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +1 -1
  34. package/lib/components/features/blog/TMBlogCommentForm.d.ts +2 -1
  35. package/lib/components/features/documents/TMDcmtForm.d.ts +2 -1
  36. package/lib/components/features/documents/TMDcmtForm.js +52 -5
  37. package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +1 -1
  38. package/lib/components/features/documents/TMDcmtIcon.d.ts +2 -1
  39. package/lib/components/features/documents/TMDcmtPreview.d.ts +1 -1
  40. package/lib/components/features/documents/TMDcmtTasks.d.ts +2 -1
  41. package/lib/components/features/documents/TMDragDropOverlay.d.ts +1 -1
  42. package/lib/components/features/documents/TMMergeToPdfForm.d.ts +2 -1
  43. package/lib/components/features/documents/TMMergeToPdfForm.js +1 -1
  44. package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +2 -1
  45. package/lib/components/features/search/TMMetadataOutputForm.d.ts +2 -1
  46. package/lib/components/features/search/TMMetadataSorterForm.d.ts +2 -1
  47. package/lib/components/features/search/TMSavedQuerySelector.d.ts +2 -2
  48. package/lib/components/features/search/TMSearch.d.ts +2 -1
  49. package/lib/components/features/search/TMSearch.js +2 -2
  50. package/lib/components/features/search/TMSearchResult.d.ts +2 -1
  51. package/lib/components/features/search/TMSearchResult.js +3 -2
  52. package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +1 -1
  53. package/lib/components/features/search/TMSignatureInfoContent.d.ts +5 -2
  54. package/lib/components/features/search/TMSignatureInfoContent.js +373 -79
  55. package/lib/components/features/search/TMViewHistoryDcmt.d.ts +2 -1
  56. package/lib/components/features/tasks/TMTaskForm.d.ts +1 -1
  57. package/lib/components/features/tasks/TMTaskFormUtils.d.ts +10 -10
  58. package/lib/components/features/tasks/TMTasksAgenda.d.ts +1 -1
  59. package/lib/components/features/tasks/TMTasksCalendar.d.ts +1 -1
  60. package/lib/components/features/tasks/TMTasksHeader.d.ts +1 -1
  61. package/lib/components/features/tasks/TMTasksPanelContent.d.ts +1 -1
  62. package/lib/components/features/tasks/TMTasksUtilsView.d.ts +5 -5
  63. package/lib/components/features/tasks/TMTasksView.d.ts +1 -1
  64. package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +3 -2
  65. package/lib/components/features/workflow/TMWorkflowPopup.d.ts +8 -7
  66. package/lib/components/forms/Login/Chooser.d.ts +2 -2
  67. package/lib/components/forms/Login/TMLoginForm.d.ts +2 -0
  68. package/lib/components/forms/Login/TMLoginForm.js +17 -3
  69. package/lib/components/forms/Login/TextBox.d.ts +3 -0
  70. package/lib/components/forms/Login/TextBox.js +2 -2
  71. package/lib/components/forms/TMChooserForm.d.ts +2 -1
  72. package/lib/components/forms/TMSaveForm.d.ts +4 -4
  73. package/lib/components/grids/TMBlogAttachments.d.ts +2 -1
  74. package/lib/components/grids/TMBlogHeader.d.ts +1 -1
  75. package/lib/components/grids/TMBlogsPost.d.ts +1 -1
  76. package/lib/components/grids/TMBlogsPostUtils.d.ts +9 -9
  77. package/lib/components/grids/TMValidationItemsList.d.ts +2 -1
  78. package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +2 -1
  79. package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +2 -2
  80. package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +1 -1
  81. package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +2 -2
  82. package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +2 -2
  83. package/lib/components/pages/TMPage.d.ts +1 -1
  84. package/lib/components/pages/TMPage.js +3 -1
  85. package/lib/components/query/TMQueryEditor.js +1 -1
  86. package/lib/components/settings/SettingsAppearance.d.ts +2 -1
  87. package/lib/components/sidebar/TMAboutApp.d.ts +2 -1
  88. package/lib/components/sidebar/TMHeader.d.ts +3 -3
  89. package/lib/components/viewers/TMDataListItemViewer.d.ts +3 -2
  90. package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +3 -2
  91. package/lib/components/viewers/TMMidViewer.d.ts +2 -2
  92. package/lib/components/viewers/TMTidViewer.d.ts +2 -2
  93. package/lib/helper/SDKUI_Globals.js +22 -2
  94. package/lib/helper/TMCommandsContextMenu.d.ts +1 -1
  95. package/lib/helper/TMIcons.d.ts +279 -279
  96. package/lib/helper/TMPdfViewer.d.ts +2 -1
  97. package/lib/helper/TMToppyMessage.d.ts +2 -2
  98. package/lib/helper/TMUtils.d.ts +1 -1
  99. package/lib/helper/grafometricSignaturesCache.d.ts +45 -0
  100. package/lib/helper/grafometricSignaturesCache.js +56 -0
  101. package/lib/helper/helpers.d.ts +1 -1
  102. package/lib/helper/index.d.ts +1 -0
  103. package/lib/helper/index.js +1 -0
  104. package/lib/hooks/useDocumentOperations.d.ts +2 -1
  105. package/lib/hooks/useDocumentOperations.js +15 -15
  106. package/lib/hooks/useInputDialog.d.ts +2 -1
  107. package/lib/hooks/usePreventFileDrop.js +14 -3
  108. package/lib/services/platform_services.d.ts +3 -2
  109. package/lib/ts/graphometricTypes.d.ts +62 -0
  110. package/lib/ts/graphometricTypes.js +1 -0
  111. package/lib/ts/index.d.ts +1 -0
  112. package/lib/ts/index.js +1 -0
  113. package/package.json +66 -61
@@ -57,7 +57,7 @@ export var InvocationContext;
57
57
  let abortControllerLocal = new AbortController();
58
58
  ;
59
59
  //#endregion
60
- const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMode = FormModes.Update, invocationContext = InvocationContext.Default, showHeader = true, showBackButton = true, showDcmtFormSidebar = true, isClosable = false, showTodoDcmtForm = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, isModal = false, titleModal, widthModal = "100%", heightModal = "100%", allowNavigation = true, canNext, canPrev, count, itemIndex, onNext, onPrev, inputFile = null, inputMids = [], connectorFileSave = undefined, isSharedDcmt = false, sharedSourceTID, sharedSourceDID, allowRelations = true, allowButtonsRefs = false, openS4TViewer = false, enableDragDropOverlay = false, editPdfForm = false, onClose, onSavedAsyncCallback, onSaveRecents, onWFOperationCompleted, allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, onTaskCompleted, onTaskCreateRequest, moreInfoTasks, taskFormDialogComponent, handleNavigateToWGs, handleNavigateToDossiers, onReferenceClick, onOpenS4TViewerRequest, onOpenPdfEditorRequest, openFileUploaderPdfEditor, s4TViewerDialogComponent, onScanRequest, passToSearch, fetchRemoteCertificates, datagridUtility }) => {
60
+ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMode = FormModes.Update, invocationContext = InvocationContext.Default, showHeader = true, showBackButton = true, showDcmtFormSidebar = true, isClosable = false, showTodoDcmtForm = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, isModal = false, titleModal, widthModal = "100%", heightModal = "100%", allowNavigation = true, canNext, canPrev, count, itemIndex, onNext, onPrev, inputFile = null, inputMids = [], connectorFileSave = undefined, isSharedDcmt = false, sharedSourceTID, sharedSourceDID, allowRelations = true, allowButtonsRefs = false, openS4TViewer = false, enableDragDropOverlay = false, editPdfForm = false, onClose, onSavedAsyncCallback, onSaveRecents, onWFOperationCompleted, allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, onTaskCompleted, onTaskCreateRequest, moreInfoTasks, taskFormDialogComponent, handleNavigateToWGs, handleNavigateToDossiers, onReferenceClick, onOpenS4TViewerRequest, onOpenPdfEditorRequest, openFileUploaderPdfEditor, s4TViewerDialogComponent, onScanRequest, passToSearch, fetchRemoteCertificates, datagridUtility, graphometricManager }) => {
61
61
  const { onRefreshSearchAsyncDatagrid, onRefreshBlogDatagrid, onRefreshPreviewDatagrid } = datagridUtility || {};
62
62
  const floatingBarContainerRef = useRef(null);
63
63
  const [id, setID] = useState('');
@@ -423,6 +423,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
423
423
  enablePinIcons: false,
424
424
  allowRelations,
425
425
  inputDcmtFormLayoutMode: layoutMode,
426
+ graphometricManager
426
427
  },
427
428
  tasks: {
428
429
  allTasks: allTasks,
@@ -1425,7 +1426,49 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
1425
1426
  return undefined;
1426
1427
  const settings = getCurrentDcmtFormSetting()?.setting;
1427
1428
  // Return the appropriate layout based on context
1428
- return invocationContext === InvocationContext.Todo ? settings?.layoutToDo : settings?.layout;
1429
+ const persistedState = invocationContext === InvocationContext.Todo ? settings?.layoutToDo : settings?.layout;
1430
+ // tmWF must always start hidden - PanelDisabledStateHandler will restore it
1431
+ // when workflow data becomes available and isWFDisabled becomes false
1432
+ if (persistedState && persistedState['tmWF']?.visible) {
1433
+ // Get tmWF width to redistribute
1434
+ const tmWFWidth = parseFloat(persistedState['tmWF'].width) || 0;
1435
+ // Find other visible panels to redistribute width
1436
+ const otherVisiblePanels = Object.keys(persistedState).filter(key => key !== 'tmWF' && persistedState[key]?.visible);
1437
+ // Calculate extra width per visible panel
1438
+ const extraWidthPerPanel = otherVisiblePanels.length > 0
1439
+ ? tmWFWidth / otherVisiblePanels.length
1440
+ : 0;
1441
+ // Build new state with redistributed widths
1442
+ const newState = {};
1443
+ for (const key of Object.keys(persistedState)) {
1444
+ if (key === 'tmWF') {
1445
+ // Hide tmWF
1446
+ newState[key] = { ...persistedState[key], visible: false };
1447
+ }
1448
+ else if (otherVisiblePanels.includes(key)) {
1449
+ // Add extra width to visible panels
1450
+ const currentWidth = parseFloat(persistedState[key].width) || 0;
1451
+ newState[key] = {
1452
+ ...persistedState[key],
1453
+ width: `${currentWidth + extraWidthPerPanel}%`
1454
+ };
1455
+ }
1456
+ else {
1457
+ // Keep other panels as-is
1458
+ newState[key] = persistedState[key];
1459
+ }
1460
+ }
1461
+ return newState;
1462
+ }
1463
+ return persistedState;
1464
+ };
1465
+ // Returns whether tmWF was visible in persisted state (for restoring after WF data loads)
1466
+ const getPersistedWFVisible = () => {
1467
+ if (isMobile)
1468
+ return false;
1469
+ const settings = getCurrentDcmtFormSetting()?.setting;
1470
+ const persistedState = invocationContext === InvocationContext.Todo ? settings?.layoutToDo : settings?.layout;
1471
+ return persistedState?.['tmWF']?.visible ?? false;
1429
1472
  };
1430
1473
  const onBlogCommentFormCustomSave = useCallback(async (blogPost) => {
1431
1474
  try {
@@ -1514,7 +1557,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
1514
1557
  overflow: 'hidden'
1515
1558
  }, children: [_jsxs("div", { style: { width: '100%', height: '100%', display: isOpenDetails || isOpenMaster ? 'none' : 'flex' }, children: [isNavigating && _jsx(Spinner, { description: SDKUI_Localizator.Loading, flat: false }), (fromDTD) && _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: useWaitPanelLocalState ? showWaitPanelLocal : showWaitPanel, showWaitPanelPrimary: useWaitPanelLocalState ? showPrimaryLocal : showPrimary, showWaitPanelSecondary: useWaitPanelLocalState ? showSecondaryLocal : showSecondary, waitPanelTitle: useWaitPanelLocalState ? waitPanelTitleLocal : waitPanelTitle, waitPanelTextPrimary: useWaitPanelLocalState ? waitPanelTextPrimaryLocal : waitPanelTextPrimary, waitPanelValuePrimary: useWaitPanelLocalState ? waitPanelValuePrimaryLocal : waitPanelValuePrimary, waitPanelMaxValuePrimary: useWaitPanelLocalState ? waitPanelMaxValuePrimaryLocal : waitPanelMaxValuePrimary, waitPanelTextSecondary: useWaitPanelLocalState ? waitPanelTextSecondaryLocal : waitPanelTextSecondary, waitPanelValueSecondary: useWaitPanelLocalState ? waitPanelValueSecondaryLocal : waitPanelValueSecondary, waitPanelMaxValueSecondary: useWaitPanelLocalState ? waitPanelMaxValueSecondaryLocal : waitPanelMaxValueSecondary, isCancelable: useWaitPanelLocalState ? dcmtFile ? dcmtFile.size >= 1000000 : false : true, abortController: useWaitPanelLocalState ? abortControllerLocal : abortController, children: _jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showCicoWaitPanel, showWaitPanelPrimary: showCicoPrimaryProgress, waitPanelTitle: cicoWaitPanelTitle, waitPanelTextPrimary: cicoPrimaryProgressText, waitPanelValuePrimary: cicoPrimaryProgressValue, waitPanelMaxValuePrimary: cicoPrimaryProgressMax, isCancelable: true, abortController: abortControllerLocal, children: [(groupId && groupId.length > 0)
1516
1559
  ? _jsxs(_Fragment, { children: [_jsx(PanelDisabledStateHandler, { isWFDisabled: isWFDisabled, isSysMetadataDisabled: isSysMetadataDisabled, isBoardDisabled: isBoardDisabled, isDcmtTasksDisabled: isDcmtTasksDisabled, isPreviewDisabled: isPreviewDisabled }), _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })] })
1517
- : _jsxs(TMPanelManagerWithPersistenceProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: defaultPanelDimensions, initialDimensions: defaultPanelDimensions, initialMobilePanelId: 'tmDcmtForm', isPersistenceEnabled: !isMobile ? hasSavedLayout() : false, persistPanelStates: !isMobile ? (state) => persistPanelStates(state) : undefined, persistedPanelStates: getPersistedPanelStates(), children: [_jsx(PanelDisabledStateHandler, { isWFDisabled: isWFDisabled, isSysMetadataDisabled: isSysMetadataDisabled, isBoardDisabled: isBoardDisabled, isDcmtTasksDisabled: isDcmtTasksDisabled, isPreviewDisabled: isPreviewDisabled }), _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })] }), isOpenDistinctValues &&
1560
+ : _jsxs(TMPanelManagerWithPersistenceProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: defaultPanelDimensions, initialDimensions: defaultPanelDimensions, initialMobilePanelId: 'tmDcmtForm', isPersistenceEnabled: !isMobile && layoutMode !== LayoutModes.Ark ? hasSavedLayout() : false, persistPanelStates: !isMobile && layoutMode !== LayoutModes.Ark ? (state) => persistPanelStates(state) : undefined, persistedPanelStates: layoutMode !== LayoutModes.Ark ? getPersistedPanelStates() : undefined, children: [_jsx(PanelDisabledStateHandler, { isWFDisabled: isWFDisabled, isSysMetadataDisabled: isSysMetadataDisabled, isBoardDisabled: isBoardDisabled, isDcmtTasksDisabled: isDcmtTasksDisabled, isPreviewDisabled: isPreviewDisabled, persistedWFVisible: getPersistedWFVisible() }), _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })] }), isOpenDistinctValues &&
1518
1561
  _jsx(TMDistinctValues, { tid: TID, mid: focusedMetadataValue?.mid, isModal: true, showHeader: false, layoutMode: layoutMode, onClosePanelCallback: () => setIsOpenDistinctValues(false), onSelectionChanged: (e) => {
1519
1562
  if (!e)
1520
1563
  return;
@@ -1604,7 +1647,7 @@ const validateMaxLength = (mvd, value, validationItems) => {
1604
1647
  };
1605
1648
  //#endregion Validation
1606
1649
  // Synchronizes panel visibility and toolbar button disabled states when panels become disabled
1607
- const PanelDisabledStateHandler = ({ isWFDisabled, isSysMetadataDisabled, isBoardDisabled, isDcmtTasksDisabled, isPreviewDisabled }) => {
1650
+ const PanelDisabledStateHandler = ({ isWFDisabled, isSysMetadataDisabled, isBoardDisabled, isDcmtTasksDisabled, isPreviewDisabled, persistedWFVisible = false }) => {
1608
1651
  const { setPanelVisibilityById, setToolbarButtonDisabled } = useTMPanelManagerContext();
1609
1652
  useEffect(() => {
1610
1653
  if (isSysMetadataDisabled) {
@@ -1631,8 +1674,12 @@ const PanelDisabledStateHandler = ({ isWFDisabled, isSysMetadataDisabled, isBoar
1631
1674
  }
1632
1675
  else {
1633
1676
  setToolbarButtonDisabled('tmWF', false);
1677
+ // Restore persisted visibility when WF becomes enabled
1678
+ if (persistedWFVisible) {
1679
+ setPanelVisibilityById('tmWF', true);
1680
+ }
1634
1681
  }
1635
- }, [isWFDisabled]);
1682
+ }, [isWFDisabled, persistedWFVisible]);
1636
1683
  useEffect(() => {
1637
1684
  if (isDcmtTasksDisabled) {
1638
1685
  setToolbarButtonDisabled('tmDcmtTasks', true);
@@ -30,5 +30,5 @@ interface TMDcmtFormActionButtonsProps {
30
30
  setShowMoreInfoTaskPopup: React.Dispatch<React.SetStateAction<boolean>>;
31
31
  setShowMoreInfoTaskTask: React.Dispatch<React.SetStateAction<TaskDescriptor | undefined>>;
32
32
  }
33
- declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) => import("react/jsx-runtime").JSX.Element;
33
+ declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) => React.JSX.Element;
34
34
  export default TMDcmtFormActionButtons;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { DcmtInfo, DownloadModes, DownloadTypes } from '../../../ts';
2
3
  import { FileDescriptor } from '@topconsultnpm/sdk-ts';
3
4
  interface ITMDcmtIconProps {
@@ -16,5 +17,5 @@ interface ITMDcmtIconProps {
16
17
  /** Se true, renderizza il wait panel nel body tramite Portal (centrato a schermo intero) */
17
18
  usePortal?: boolean;
18
19
  }
19
- declare const TMDcmtIcon: ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode, tooltipContent, openInOffice, onDownloadDcmtsAsync, usePortal }: ITMDcmtIconProps) => import("react/jsx-runtime").JSX.Element;
20
+ declare const TMDcmtIcon: ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode, tooltipContent, openInOffice, onDownloadDcmtsAsync, usePortal }: ITMDcmtIconProps) => React.JSX.Element;
20
21
  export default TMDcmtIcon;
@@ -25,7 +25,7 @@ export declare const TMNothingToShow: ({ text, secondText, fileExt, icon }: {
25
25
  secondText?: any;
26
26
  fileExt?: string;
27
27
  icon?: any;
28
- }) => import("react/jsx-runtime").JSX.Element;
28
+ }) => React.JSX.Element;
29
29
  export declare const StyledHeaderIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$color"> & {
30
30
  $color: string;
31
31
  }, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$color"> & {
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { FormModes, TaskContext } from "../../../ts";
2
3
  import { HomeBlogPost, TaskDescriptor } from "@topconsultnpm/sdk-ts";
3
4
  interface TMDcmtTasksProps {
@@ -12,5 +13,5 @@ interface TMDcmtTasksProps {
12
13
  handleNavigateToDossiers?: (value: HomeBlogPost | number) => Promise<void>;
13
14
  onBack?: () => void;
14
15
  }
15
- declare const TMDcmtTasks: (props: TMDcmtTasksProps) => import("react/jsx-runtime").JSX.Element;
16
+ declare const TMDcmtTasks: (props: TMDcmtTasksProps) => React.JSX.Element;
16
17
  export default TMDcmtTasks;
@@ -2,5 +2,5 @@ interface TMDragDropOverlayProps {
2
2
  handleFile: (file: File) => void;
3
3
  refocusAfterFileInput: () => void;
4
4
  }
5
- declare const TMDragDropOverlay: (props: TMDragDropOverlayProps) => import("react/jsx-runtime").JSX.Element;
5
+ declare const TMDragDropOverlay: (props: TMDragDropOverlayProps) => import("react").JSX.Element;
6
6
  export default TMDragDropOverlay;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { DcmtInfo } from '../../../ts';
2
3
  import { HomeBlogPost, TaskDescriptor } from '@topconsultnpm/sdk-ts';
3
4
  import { TMCopyToFolderMode } from '../../../hooks/useDocumentOperations';
@@ -20,5 +21,5 @@ interface ITMMergeToPdfFormProps {
20
21
  * Condivide TMDownloadRelationViewerSection e gli helper in copyAndMergeDcmtsShared
21
22
  * con TMCopyToFolderForm.
22
23
  */
23
- declare const TMMergeToPdfForm: (props: ITMMergeToPdfFormProps) => import("react/jsx-runtime").JSX.Element;
24
+ declare const TMMergeToPdfForm: (props: ITMMergeToPdfFormProps) => React.JSX.Element;
24
25
  export default TMMergeToPdfForm;
@@ -323,7 +323,7 @@ const TMMergeToPdfForm = (props) => {
323
323
  const extLabel = Array.from(extCounts.entries()).map(([ext, count]) => `${count} ${ext}`).join(', ');
324
324
  return (_jsxs("span", { style: { display: 'inline-flex', alignItems: 'center', gap: '6px' }, children: [_jsx("span", { children: allConvertible.length === 1
325
325
  ? SDKUI_Localizator.DocumentWillBeConvertedDuringMerge
326
- : SDKUI_Localizator.DocumentsWillBeConvertedDuringMerge.replaceParams(allConvertible.length.toString()) }), extLabel && (_jsx(TMTooltip, { content: _jsxs("div", { style: { minWidth: 180, padding: "10px 12px", borderRadius: 8 }, children: [_jsxs("div", { style: { textAlign: "center", fontWeight: 600, fontSize: 13, marginBottom: 10, paddingBottom: 8, borderBottom: "1px solid rgba(255,255,255,0.15)" }, children: [SDKUI_Localizator.ConversionDetails, " (", Array.from(extCounts.values()).reduce((a, b) => a + b, 0), ")"] }), _jsx("div", { style: { display: "flex", flexDirection: "column", gap: 4, maxHeight: 150, overflowY: "auto" }, children: Array.from(extCounts.entries()).sort((a, b) => a[0].localeCompare(b[0])).map(([ext, count]) => (_jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", padding: "4px 8px", background: "rgba(255,255,255,0.08)", borderRadius: 4 }, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 500, textTransform: "uppercase" }, children: ext }), _jsx("span", { style: { display: "inline-flex", alignItems: "center", justifyContent: "center", minWidth: 24, height: 24, padding: "0 6px", background: "transparent", border: "2px solid #4caf50", borderRadius: 12, fontSize: 11, fontWeight: 600, lineHeight: 1 }, children: count > 99 ? '99+' : count })] }, ext))) })] }), children: _jsx("span", { style: { display: 'inline-flex', alignItems: 'center', cursor: 'help' }, children: _jsx("i", { className: "dx-icon-info", style: { fontSize: '16px', color: '#00527a' } }) }) }))] }));
326
+ : SDKUI_Localizator.DocumentsWillBeConvertedDuringMerge.replaceParams(allConvertible.length.toString()) }), extLabel && (_jsx(TMTooltip, { content: _jsxs("div", { style: { minWidth: 180, padding: "10px 12px", borderRadius: 8 }, children: [_jsxs("div", { style: { textAlign: "center", fontWeight: 600, fontSize: 13, marginBottom: 10, paddingBottom: 8, borderBottom: "1px solid rgba(255,255,255,0.15)" }, children: [SDKUI_Localizator.ConversionDetails, " (", Array.from(extCounts.values()).reduce((a, b) => a + b, 0), ")"] }), _jsx("div", { style: { display: "flex", flexDirection: "column", gap: 4, maxHeight: 150, overflowY: "auto" }, children: Array.from(extCounts.entries()).sort((a, b) => a[0].localeCompare(b[0])).map(([ext, count]) => (_jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", padding: "4px 8px", background: "rgba(255,255,255,0.08)", borderRadius: 4 }, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 500, textTransform: "uppercase" }, children: ext }), _jsx("span", { style: { display: "inline-flex", alignItems: "center", justifyContent: "center", minWidth: 24, height: 24, padding: "0 6px", background: "transparent", border: "2px solid #4caf50", borderRadius: 12, fontSize: 11, fontWeight: 600, lineHeight: 1 }, children: count > 99 ? '99+' : count })] }, ext))) })] }), children: _jsx("span", { style: { display: 'inline-flex', alignItems: 'center' }, children: _jsx("i", { className: "dx-icon-info", style: { fontSize: '16px', color: '#00527a' } }) }) }))] }));
327
327
  })() })), hasPdfSelected && (_jsx("li", { style: { color: '#00527a' }, children: pdfSelectedItems.length === 1
328
328
  ? SDKUI_Localizator.DocumentAlreadyInPdfNoConversionNeeded
329
329
  : SDKUI_Localizator.DocumentsAlreadyInPdfNoConversionNeeded.replaceParams(pdfSelectedItems.length.toString()) })), !hasEnoughPdfForMerge && (_jsx("li", { style: { color: '#7a5d00' }, children: mergeableSelectedCount === 0
@@ -1,8 +1,9 @@
1
+ import React from "react";
1
2
  import { DcmtInfo } from "../../../ts";
2
3
  interface TMDcmtCheckoutInfoFormProps {
3
4
  dtdName: string;
4
5
  selectedDcmtOrFocused: DcmtInfo;
5
6
  onClose: () => void;
6
7
  }
7
- declare const TMDcmtCheckoutInfoForm: (props: TMDcmtCheckoutInfoFormProps) => import("react/jsx-runtime").JSX.Element;
8
+ declare const TMDcmtCheckoutInfoForm: (props: TMDcmtCheckoutInfoFormProps) => React.JSX.Element;
8
9
  export default TMDcmtCheckoutInfoForm;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { MetadataDescriptor, QueryDescriptor, SelectItem } from "@topconsultnpm/sdk-ts";
2
3
  interface TMMetadataOutputFormProps {
3
4
  /** QueryDescriptor da cui estrarre i metadati disponibili */
@@ -13,5 +14,5 @@ interface TMMetadataOutputFormProps {
13
14
  /** Callback chiamata quando l'utente conferma la selezione dei SelectItem */
14
15
  onChoose?: (selectItems: SelectItem[] | undefined) => void;
15
16
  }
16
- declare const TMMetadataOutputForm: (props: TMMetadataOutputFormProps) => import("react/jsx-runtime").JSX.Element;
17
+ declare const TMMetadataOutputForm: (props: TMMetadataOutputFormProps) => React.JSX.Element;
17
18
  export default TMMetadataOutputForm;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { MetadataDescriptor, OrderByItem, QueryDescriptor } from "@topconsultnpm/sdk-ts";
2
3
  interface TMMetadataSorterFormProps {
3
4
  /** QueryDescriptor da cui estrarre i metadati disponibili */
@@ -13,5 +14,5 @@ interface TMMetadataSorterFormProps {
13
14
  /** Callback chiamata quando l'utente conferma la selezione degli OrderByItem */
14
15
  onChoose?: (orderByItems: OrderByItem[] | undefined) => void;
15
16
  }
16
- declare const TMMetadataSorterForm: (props: TMMetadataSorterFormProps) => import("react/jsx-runtime").JSX.Element;
17
+ declare const TMMetadataSorterForm: (props: TMMetadataSorterFormProps) => React.JSX.Element;
17
18
  export default TMMetadataSorterForm;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { SavedQueryDescriptor } from '@topconsultnpm/sdk-ts';
3
- export declare const getTooltipBySqd: (sqd: SavedQueryDescriptor | undefined) => import("react/jsx-runtime").JSX.Element | null;
3
+ export declare const getTooltipBySqd: (sqd: SavedQueryDescriptor | undefined) => React.JSX.Element | null;
4
4
  interface ITMSavedQuerySelectorProps {
5
5
  height?: string;
6
6
  items?: SavedQueryDescriptor[];
@@ -12,5 +12,5 @@ interface ITMSavedQuerySelectorProps {
12
12
  refreshFavoriteSavedQueries?: (sqd: SavedQueryDescriptor) => void;
13
13
  onRefreshData?: () => void;
14
14
  }
15
- declare const TMSavedQuerySelector: React.MemoExoticComponent<({ items, selectedId, allowShowSearch, height, manageDefault, onItemClick, onDeleted, refreshFavoriteSavedQueries, onRefreshData }: ITMSavedQuerySelectorProps) => import("react/jsx-runtime").JSX.Element>;
15
+ declare const TMSavedQuerySelector: React.MemoExoticComponent<({ items, selectedId, allowShowSearch, height, manageDefault, onItemClick, onDeleted, refreshFavoriteSavedQueries, onRefreshData }: ITMSavedQuerySelectorProps) => React.JSX.Element>;
16
16
  export default TMSavedQuerySelector;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { SavedQueryDescriptor, DcmtTypeDescriptor, TaskDescriptor, ObjectRef, HomeBlogPost } from '@topconsultnpm/sdk-ts';
3
3
  import { IntesiCertificateData } from '../../../helper';
4
- import { DcmtInfo, TaskContext } from '../../../ts';
4
+ import { DcmtInfo, IGraphometricManagerProp, TaskContext } from '../../../ts';
5
5
  import { TMSearchResultFloatingActionConfig } from './TMSearchResultFloatingActionButton';
6
6
  interface ITMSearchProps {
7
7
  allTasks?: Array<TaskDescriptor>;
@@ -44,6 +44,7 @@ interface ITMSearchProps {
44
44
  inputDID?: number;
45
45
  formAutoOpen?: boolean;
46
46
  fetchRemoteCertificates?: (email: string) => Promise<IntesiCertificateData[]>;
47
+ graphometricManager?: IGraphometricManagerProp;
47
48
  }
48
49
  declare const TMSearch: React.FunctionComponent<ITMSearchProps>;
49
50
  export default TMSearch;
@@ -20,7 +20,7 @@ var TMSearchViews;
20
20
  TMSearchViews[TMSearchViews["Search"] = 0] = "Search";
21
21
  TMSearchViews[TMSearchViews["Result"] = 1] = "Result";
22
22
  })(TMSearchViews || (TMSearchViews = {}));
23
- const TMSearch = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers, openInOffice, isVisible, inputTID, inputSqdID, inputMids, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, floatingActionConfig, onFileOpened, onRefreshAfterAddDcmtToFavs, onTaskCreateRequest, openWGsCopyMoveForm, editPdfForm = false, openS4TViewer, onOpenS4TViewerRequest, onOpenPdfEditorRequest, openFileUploaderPdfEditor, showTodoDcmtForm, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false, passToArchiveCallback, onCurrentTIDChangedCallback, onlyShowSearchQueryPanel, onReferenceClick, refreshFavoriteSavedQueries, inputDID, formAutoOpen, fetchRemoteCertificates }) => {
23
+ const TMSearch = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers, openInOffice, isVisible, inputTID, inputSqdID, inputMids, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, floatingActionConfig, onFileOpened, onRefreshAfterAddDcmtToFavs, onTaskCreateRequest, openWGsCopyMoveForm, editPdfForm = false, openS4TViewer, onOpenS4TViewerRequest, onOpenPdfEditorRequest, openFileUploaderPdfEditor, showTodoDcmtForm, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false, passToArchiveCallback, onCurrentTIDChangedCallback, onlyShowSearchQueryPanel, onReferenceClick, refreshFavoriteSavedQueries, inputDID, formAutoOpen, fetchRemoteCertificates, graphometricManager }) => {
24
24
  const [allSQDs, setAllSQDs] = useState([]);
25
25
  const [filteredByTIDSQDs, setFilteredByTIDSQDs] = useState([]);
26
26
  const [currentSQD, setCurrentSQD] = useState();
@@ -266,7 +266,7 @@ const TMSearch = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTask
266
266
  toolbarOptions: { icon: _jsx(IconSavedQuery, { fontSize: 24 }), visible: true, orderNumber: 4, isActive: allInitialPanelVisibility['TMSavedQuerySelector'] }
267
267
  }
268
268
  ], [tmTreeSelectorElement, showSearchResults, tmRecentsManagerElement, tmSearchQueryPanelElement, tmSavedQuerySelectorElement, fromDTD, mruTIDs]);
269
- return (_jsxs(_Fragment, { children: [showSearchResults ? _jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Search, children: _jsx(TMPanelManagerWithPersistenceProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'TMRecentsManager', isPersistenceEnabled: !isMobile ? hasSavedLayout() : false, persistPanelStates: !isMobile ? (state) => persistPanelStates(state) : undefined, persistedPanelStates: getPersistedPanelStates(), children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", showToolbar: true, minPanelSizePx: !isMobile ? 250 : 150 }) }) }) : tmSearchQueryPanelElement, showSearchResults && _jsx(TMSearchResult, { isVisible: isVisible && currentSearchView === TMSearchViews.Result, context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, floatingActionConfig: floatingActionConfig, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, openInOffice: openInOffice, onRefreshSearchAsyncDatagrid: onRefreshSearchAsyncDatagrid, onClose: () => { onlyShowSearchQueryPanel ? setShowSearchResults(false) : setCurrentSearchView(TMSearchViews.Search); }, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, editPdfForm: editPdfForm, onOpenPdfEditorRequest: onOpenPdfEditorRequest, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, openFileUploaderPdfEditor: openFileUploaderPdfEditor, passToArchiveCallback: passToArchiveCallback, onSelectedTIDChanged: onCurrentTIDChangedCallback, showTodoDcmtForm: showTodoDcmtForm, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal, onReferenceClick: onReferenceClick, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, inputDID: inputDID, formAutoOpen: formAutoOpen, fetchRemoteCertificates: fetchRemoteCertificates })] }));
269
+ return (_jsxs(_Fragment, { children: [showSearchResults ? _jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Search, children: _jsx(TMPanelManagerWithPersistenceProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'TMRecentsManager', isPersistenceEnabled: !isMobile ? hasSavedLayout() : false, persistPanelStates: !isMobile ? (state) => persistPanelStates(state) : undefined, persistedPanelStates: getPersistedPanelStates(), children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", showToolbar: true, minPanelSizePx: !isMobile ? 250 : 150 }) }) }) : tmSearchQueryPanelElement, showSearchResults && _jsx(TMSearchResult, { isVisible: isVisible && currentSearchView === TMSearchViews.Result, context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, floatingActionConfig: floatingActionConfig, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, openInOffice: openInOffice, onRefreshSearchAsyncDatagrid: onRefreshSearchAsyncDatagrid, onClose: () => { onlyShowSearchQueryPanel ? setShowSearchResults(false) : setCurrentSearchView(TMSearchViews.Search); }, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, editPdfForm: editPdfForm, onOpenPdfEditorRequest: onOpenPdfEditorRequest, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, openFileUploaderPdfEditor: openFileUploaderPdfEditor, passToArchiveCallback: passToArchiveCallback, onSelectedTIDChanged: onCurrentTIDChangedCallback, showTodoDcmtForm: showTodoDcmtForm, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal, onReferenceClick: onReferenceClick, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, inputDID: inputDID, formAutoOpen: formAutoOpen, fetchRemoteCertificates: fetchRemoteCertificates, graphometricManager: graphometricManager })] }));
270
270
  };
271
271
  export default TMSearch;
272
272
  const TMTreeSelectorWrapper = ({ isMobile, onSelectedTIDChanged }) => {
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { DcmtTypeDescriptor, HomeBlogPost, ObjectRef, SearchResultDescriptor, TaskDescriptor, WorkingGroupDescriptor } from '@topconsultnpm/sdk-ts';
3
3
  import { IntesiCertificateData } from '../../../helper';
4
- import { DcmtInfo, SearchResultContext, TaskContext } from '../../../ts';
4
+ import { DcmtInfo, IGraphometricManagerProp, SearchResultContext, TaskContext } from '../../../ts';
5
5
  import { TMSearchResultFloatingActionConfig } from './TMSearchResultFloatingActionButton';
6
6
  export declare const getSearchResultCountersSingleCategory: (searchResults: SearchResultDescriptor[]) => string;
7
7
  interface ITMSearchResultProps {
@@ -53,6 +53,7 @@ interface ITMSearchResultProps {
53
53
  openCommentFormCallback?: (documents: Array<DcmtInfo>) => void;
54
54
  openAddDocumentForm?: () => void;
55
55
  fetchRemoteCertificates?: (email: string) => Promise<IntesiCertificateData[]>;
56
+ graphometricManager?: IGraphometricManagerProp;
56
57
  allTasks?: Array<TaskDescriptor>;
57
58
  getAllTasks?: () => Promise<void>;
58
59
  deleteTaskByIdsCallback?: (deletedTaskIds: Array<number>) => Promise<void>;
@@ -61,7 +61,7 @@ openInOffice, onRefreshAfterAddDcmtToFavs, onRefreshSearchAsyncDatagrid, onSelec
61
61
  // Tasks
62
62
  allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback,
63
63
  // Navigation
64
- handleNavigateToWGs, handleNavigateToDossiers, fetchRemoteCertificates, }) => {
64
+ handleNavigateToWGs, handleNavigateToDossiers, fetchRemoteCertificates, graphometricManager, }) => {
65
65
  // Ref for the floating bar container (used to position the floating action buttons)
66
66
  const floatingBarContainerRef = useRef(null);
67
67
  // Ref per tracciare se autoFocusFirstRow=false deve bloccare l'auto-focus.
@@ -341,7 +341,8 @@ handleNavigateToWGs, handleNavigateToDossiers, fetchRemoteCertificates, }) => {
341
341
  allowFloatingBar,
342
342
  enablePinIcons,
343
343
  allowRelations,
344
- showTodoDcmtForm
344
+ showTodoDcmtForm,
345
+ graphometricManager,
345
346
  },
346
347
  tasks: {
347
348
  allTasks: allTasks,
@@ -12,5 +12,5 @@ interface TMSearchResultFloatingActionButtonProps {
12
12
  selectedDcmtsOrFocused: Array<DcmtInfo>;
13
13
  config: TMSearchResultFloatingActionConfig;
14
14
  }
15
- export declare const TMSearchResultFloatingActionButton: (props: TMSearchResultFloatingActionButtonProps) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const TMSearchResultFloatingActionButton: (props: TMSearchResultFloatingActionButtonProps) => React.JSX.Element;
16
16
  export default TMSearchResultFloatingActionButton;
@@ -1,6 +1,9 @@
1
- import { DcmtInfo } from "../../../ts";
1
+ import React from "react";
2
+ import { DcmtInfo, IGraphometricManagerProp } from "../../../ts";
2
3
  interface TMSignatureInfoContentProps {
3
4
  inputDcmt: DcmtInfo;
5
+ graphometricManager?: IGraphometricManagerProp;
6
+ onClose?: () => void;
4
7
  }
5
- declare const TMSignatureInfoContent: (props: TMSignatureInfoContentProps) => import("react/jsx-runtime").JSX.Element | null;
8
+ declare const TMSignatureInfoContent: (props: TMSignatureInfoContentProps) => React.JSX.Element;
6
9
  export default TMSignatureInfoContent;