@topconsultnpm/sdkui-react 6.21.0 → 6.22.0-dev1.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 (93) 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 +1 -2
  5. package/lib/components/base/TMCustomButton.d.ts +1 -1
  6. package/lib/components/base/TMDataGridExportForm.d.ts +1 -2
  7. package/lib/components/base/TMFileManager.d.ts +1 -2
  8. package/lib/components/base/TMFileManagerDataGridView.d.ts +1 -2
  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 +1 -2
  13. package/lib/components/base/TMListView.d.ts +1 -1
  14. package/lib/components/base/TMSpinner.d.ts +1 -2
  15. package/lib/components/base/TMTab.d.ts +3 -4
  16. package/lib/components/base/TMTooltip.d.ts +1 -1
  17. package/lib/components/base/TMTreeView.d.ts +1 -1
  18. package/lib/components/base/TMUserAvatar.d.ts +1 -2
  19. package/lib/components/base/TMVilViewer.d.ts +1 -2
  20. package/lib/components/base/TMWaitPanel.d.ts +2 -3
  21. package/lib/components/choosers/TMDynDataListItemChooser.d.ts +1 -1
  22. package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +1 -2
  23. package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +1 -2
  24. package/lib/components/choosers/TMRelationChooser.d.ts +3 -3
  25. package/lib/components/choosers/TMUserChooser.d.ts +2 -2
  26. package/lib/components/editors/TMFormulaEditor.d.ts +1 -1
  27. package/lib/components/editors/TMHtmlContentDisplay.d.ts +1 -2
  28. package/lib/components/editors/TMHtmlEditor.d.ts +1 -2
  29. package/lib/components/editors/TMTreeDropDown.d.ts +1 -1
  30. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +1 -1
  31. package/lib/components/features/blog/TMBlogCommentForm.d.ts +1 -2
  32. package/lib/components/features/documents/TMDcmtForm.d.ts +1 -0
  33. package/lib/components/features/documents/TMDcmtForm.js +2 -2
  34. package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +1 -1
  35. package/lib/components/features/documents/TMDcmtIcon.d.ts +1 -2
  36. package/lib/components/features/documents/TMDcmtPreview.d.ts +1 -1
  37. package/lib/components/features/documents/TMDcmtTasks.d.ts +1 -2
  38. package/lib/components/features/documents/TMDragDropOverlay.d.ts +1 -1
  39. package/lib/components/features/documents/TMMergeToPdfForm.d.ts +1 -2
  40. package/lib/components/features/documents/TMMergeToPdfForm.js +21 -13
  41. package/lib/components/features/documents/mergePdfUtils.d.ts +4 -0
  42. package/lib/components/features/documents/mergePdfUtils.js +6 -0
  43. package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +1 -2
  44. package/lib/components/features/search/TMMetadataOutputForm.d.ts +1 -2
  45. package/lib/components/features/search/TMMetadataSorterForm.d.ts +1 -2
  46. package/lib/components/features/search/TMSavedQuerySelector.d.ts +2 -2
  47. package/lib/components/features/search/TMSearchResult.js +1 -0
  48. package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +1 -1
  49. package/lib/components/features/search/TMSignatureInfoContent.d.ts +1 -2
  50. package/lib/components/features/search/TMViewHistoryDcmt.d.ts +1 -2
  51. package/lib/components/features/tasks/TMTaskForm.d.ts +1 -1
  52. package/lib/components/features/tasks/TMTaskFormUtils.d.ts +10 -10
  53. package/lib/components/features/tasks/TMTasksAgenda.d.ts +1 -1
  54. package/lib/components/features/tasks/TMTasksCalendar.d.ts +1 -1
  55. package/lib/components/features/tasks/TMTasksHeader.d.ts +1 -1
  56. package/lib/components/features/tasks/TMTasksPanelContent.d.ts +1 -1
  57. package/lib/components/features/tasks/TMTasksUtilsView.d.ts +5 -5
  58. package/lib/components/features/tasks/TMTasksView.d.ts +1 -1
  59. package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +2 -3
  60. package/lib/components/features/workflow/TMWorkflowPopup.d.ts +7 -8
  61. package/lib/components/forms/Login/Chooser.d.ts +2 -2
  62. package/lib/components/forms/TMChooserForm.d.ts +1 -2
  63. package/lib/components/forms/TMSaveForm.d.ts +4 -4
  64. package/lib/components/grids/TMBlogAttachments.d.ts +1 -2
  65. package/lib/components/grids/TMBlogHeader.d.ts +1 -1
  66. package/lib/components/grids/TMBlogsPost.d.ts +1 -1
  67. package/lib/components/grids/TMBlogsPostUtils.d.ts +9 -9
  68. package/lib/components/grids/TMValidationItemsList.d.ts +1 -2
  69. package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +1 -2
  70. package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +2 -2
  71. package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +1 -1
  72. package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +2 -2
  73. package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +2 -2
  74. package/lib/components/pages/TMPage.d.ts +1 -1
  75. package/lib/components/settings/SettingsAppearance.d.ts +1 -2
  76. package/lib/components/sidebar/TMAboutApp.d.ts +1 -2
  77. package/lib/components/sidebar/TMHeader.d.ts +3 -3
  78. package/lib/components/viewers/TMDataListItemViewer.d.ts +2 -3
  79. package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +2 -3
  80. package/lib/components/viewers/TMMidViewer.d.ts +2 -2
  81. package/lib/components/viewers/TMTidViewer.d.ts +2 -2
  82. package/lib/helper/SDKUI_Localizator.d.ts +3 -0
  83. package/lib/helper/SDKUI_Localizator.js +42 -12
  84. package/lib/helper/TMCommandsContextMenu.d.ts +1 -1
  85. package/lib/helper/TMIcons.d.ts +279 -279
  86. package/lib/helper/TMPdfViewer.d.ts +1 -2
  87. package/lib/helper/TMToppyMessage.d.ts +2 -2
  88. package/lib/helper/TMUtils.d.ts +1 -1
  89. package/lib/helper/helpers.d.ts +1 -1
  90. package/lib/hooks/useDocumentOperations.js +1 -1
  91. package/lib/hooks/useInputDialog.d.ts +1 -2
  92. package/lib/services/platform_services.d.ts +2 -3
  93. package/package.json +61 -61
@@ -73,20 +73,20 @@ export declare const MenuButton: import("styled-components/dist/types").IStyledC
73
73
  export declare const ConfigButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
74
74
  export declare const ApplyButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
75
75
  export declare const CloseButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
76
- export declare const ContextMenuButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
76
+ export declare const ContextMenuButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
77
77
  $isActive?: boolean;
78
78
  }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
79
79
  $isActive?: boolean;
80
- }, never>>, "as" | "forwardedAs"> & {
80
+ }, never>> & {
81
81
  as?: import("styled-components").WebTarget | undefined;
82
82
  forwardedAs?: import("styled-components").WebTarget | undefined;
83
83
  }, "ref"> & {
84
84
  ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
85
- }, never> & Partial<Pick<Omit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
85
+ }, never> & Partial<Pick<Omit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
86
86
  $isActive?: boolean;
87
87
  }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
88
88
  $isActive?: boolean;
89
- }, never>>, "as" | "forwardedAs"> & {
89
+ }, never>> & {
90
90
  as?: import("styled-components").WebTarget | undefined;
91
91
  forwardedAs?: import("styled-components").WebTarget | undefined;
92
92
  }, "ref"> & {
@@ -73,7 +73,7 @@ export declare const StyledDxGridGroupHeader: import("styled-components/dist/typ
73
73
  }, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$backgroundColor"> & {
74
74
  $backgroundColor?: string;
75
75
  }, never>>> & string;
76
- export declare const cellRenderObjectIcon: (icon: any) => React.JSX.Element;
76
+ export declare const cellRenderObjectIcon: (icon: any) => import("react/jsx-runtime").JSX.Element;
77
77
  export declare const StyledChartOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$backgroundColor"> & {
78
78
  $backgroundColor?: string;
79
79
  }, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$backgroundColor"> & {
@@ -1,4 +1,4 @@
1
- import React, { ReactNode } from 'react';
1
+ import { ReactNode } from 'react';
2
2
  interface IProps {
3
3
  icon: ReactNode;
4
4
  text: string;
@@ -6,5 +6,5 @@ interface IProps {
6
6
  }
7
7
  declare const TMCounterBar: ({ items }: {
8
8
  items: IProps[];
9
- }) => React.JSX.Element;
9
+ }) => import("react/jsx-runtime").JSX.Element;
10
10
  export default TMCounterBar;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  export declare enum CounterItemKey {
3
2
  allItems = "allItems",
4
3
  visibleItems = "visibleItems",
@@ -20,5 +19,5 @@ export interface ITMCounterContainerProps {
20
19
  textColorItem?: string;
21
20
  hoverColorItem?: string;
22
21
  }
23
- declare const TMCounterContainer: (props: ITMCounterContainerProps) => React.JSX.Element | undefined;
22
+ declare const TMCounterContainer: (props: ITMCounterContainerProps) => import("react/jsx-runtime").JSX.Element | undefined;
24
23
  export default TMCounterContainer;
@@ -7,5 +7,5 @@ type TMCustomButtonProps = {
7
7
  selectedItems?: Array<any>;
8
8
  onClose?: () => void;
9
9
  };
10
- declare const TMCustomButton: (props: TMCustomButtonProps) => false | import("react").JSX.Element;
10
+ declare const TMCustomButton: (props: TMCustomButtonProps) => false | import("react/jsx-runtime").JSX.Element;
11
11
  export default TMCustomButton;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { IColumnProps } from 'devextreme-react/data-grid';
3
2
  import { SearchResultDescriptor } from '@topconsultnpm/sdk-ts';
4
3
  export type FormatOption = {
@@ -12,5 +11,5 @@ interface TMDataGridExportFormProps {
12
11
  selectedRowKeys: Array<number>;
13
12
  onCloseExportForm: () => void;
14
13
  }
15
- declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) => React.JSX.Element;
14
+ declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) => import("react/jsx-runtime").JSX.Element;
16
15
  export default TMDataGridExportForm;
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { FileItem } from "./TMFileManagerUtils";
3
2
  import { TMContextMenuItemProps } from '../NewComponents/ContextMenu/types';
4
3
  interface TMFileManagerProps {
@@ -43,5 +42,5 @@ interface TMFileManagerProps {
43
42
  /** Optional: Callback to handle back button */
44
43
  onMaximizePanel?: () => void;
45
44
  }
46
- declare const TMFileManager: (props: TMFileManagerProps) => React.JSX.Element;
45
+ declare const TMFileManager: (props: TMFileManagerProps) => import("react/jsx-runtime").JSX.Element;
47
46
  export default TMFileManager;
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { FileItem } from "./TMFileManagerUtils";
3
2
  import { UserDescriptor } from "@topconsultnpm/sdk-ts";
4
3
  import { TMContextMenuItemProps } from "../NewComponents/ContextMenu/types";
@@ -14,5 +13,5 @@ interface TMFileManagerDataGridViewProps {
14
13
  userID?: number;
15
14
  onDoubleClickHandler?: (fileItem: FileItem | undefined) => void;
16
15
  }
17
- declare const TMFileManagerDataGridView: (props: TMFileManagerDataGridViewProps) => React.JSX.Element;
16
+ declare const TMFileManagerDataGridView: (props: TMFileManagerDataGridViewProps) => import("react/jsx-runtime").JSX.Element;
18
17
  export default TMFileManagerDataGridView;
@@ -20,5 +20,5 @@ export interface TMFileManagerThumbnailItemsProps {
20
20
  onDoubleClick?: (file: FileItem) => void;
21
21
  userID?: number;
22
22
  }
23
- declare const TMFileManagerThumbnailItems: (props: TMFileManagerThumbnailItemsProps) => React.JSX.Element;
23
+ declare const TMFileManagerThumbnailItems: (props: TMFileManagerThumbnailItemsProps) => import("react/jsx-runtime").JSX.Element;
24
24
  export default TMFileManagerThumbnailItems;
@@ -28,5 +28,5 @@ interface TMFileManagerThumbnailsViewProps {
28
28
  };
29
29
  }>>;
30
30
  }
31
- declare const TMFileManagerThumbnailsView: (props: TMFileManagerThumbnailsViewProps) => React.JSX.Element;
31
+ declare const TMFileManagerThumbnailsView: (props: TMFileManagerThumbnailsViewProps) => import("react/jsx-runtime").JSX.Element;
32
32
  export default TMFileManagerThumbnailsView;
@@ -17,7 +17,7 @@ declare const TMCard: ({ borderRadius, onClick, scrollX, scrollY, width, height,
17
17
  scroll?: boolean;
18
18
  backgroundColor?: string;
19
19
  color?: string;
20
- }) => React.JSX.Element;
20
+ }) => import("react/jsx-runtime").JSX.Element;
21
21
  declare const TMSplitterLayout: ({ animation, showSeparator, separatorColor, overflow, separatorActiveColor, separatorSize, direction, children, start, min, }: {
22
22
  animation?: boolean;
23
23
  separatorColor?: string;
@@ -29,7 +29,7 @@ declare const TMSplitterLayout: ({ animation, showSeparator, separatorColor, ove
29
29
  children?: React.ReactNode;
30
30
  start?: string[];
31
31
  min?: string[];
32
- }) => React.JSX.Element;
32
+ }) => import("react/jsx-runtime").JSX.Element;
33
33
  declare const TMLayoutItem: ({ onClick, children, width, minWidth, maxWidth, maxHeight, height, minHeight }: {
34
34
  onClick?: () => void;
35
35
  children: React.ReactNode;
@@ -40,7 +40,7 @@ declare const TMLayoutItem: ({ onClick, children, width, minWidth, maxWidth, max
40
40
  fixed?: boolean;
41
41
  height?: string;
42
42
  minHeight?: string;
43
- }) => React.JSX.Element;
43
+ }) => import("react/jsx-runtime").JSX.Element;
44
44
  export interface ITMLayoutContainerProps {
45
45
  children: React.ReactNode;
46
46
  gap?: number;
@@ -50,6 +50,6 @@ export interface ITMLayoutContainerProps {
50
50
  onClick?: () => void;
51
51
  onContextMenu?: (e: React.MouseEvent) => void;
52
52
  }
53
- declare const TMLayoutContainer: ({ gap, onClick, justifyContent, alignItems, children, direction, onContextMenu }: ITMLayoutContainerProps) => React.JSX.Element;
53
+ declare const TMLayoutContainer: ({ gap, onClick, justifyContent, alignItems, children, direction, onContextMenu }: ITMLayoutContainerProps) => import("react/jsx-runtime").JSX.Element;
54
54
  export { TMCard, TMLayoutItem, TMSplitterLayout };
55
55
  export default TMLayoutContainer;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  interface ITMListItem {
3
2
  icon: any;
4
3
  text?: string;
@@ -6,5 +5,5 @@ interface ITMListItem {
6
5
  }
7
6
  declare const TMList: ({ items }: {
8
7
  items: ITMListItem[];
9
- }) => React.JSX.Element;
8
+ }) => import("react/jsx-runtime").JSX.Element;
10
9
  export default TMList;
@@ -37,6 +37,6 @@ interface ListProps<T> {
37
37
  onItemDblClick?: (item: T) => void;
38
38
  itemTemplate?: (item: T) => JSX.Element;
39
39
  }
40
- declare const TMListView: <T>({ customGroupingHeaders, headerBackGroundColor, header, showId, setShowId, showSearch, setShowSearch, grouping, orderBy, id, onScrollChange, scroll, searchKeys, searchable, itemTemplate, customColor, dataSource, exprKey, onSelectionChanged, onItemClick, onItemDblClick, selectedItem, autoScrollToSelectedItem }: ListProps<T>) => React.JSX.Element;
40
+ declare const TMListView: <T>({ customGroupingHeaders, headerBackGroundColor, header, showId, setShowId, showSearch, setShowSearch, grouping, orderBy, id, onScrollChange, scroll, searchKeys, searchable, itemTemplate, customColor, dataSource, exprKey, onSelectionChanged, onItemClick, onItemDblClick, selectedItem, autoScrollToSelectedItem }: ListProps<T>) => import("react/jsx-runtime").JSX.Element;
41
41
  export default TMListView;
42
42
  export declare const CustomListViewHeader: React.FC<ITMListViewHeader>;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  interface ITMSpinner {
3
2
  backgroundColor?: string;
4
3
  fontSize?: string;
@@ -8,7 +7,7 @@ interface ITMSpinner {
8
7
  onCancel?: () => void;
9
8
  cancelText?: string;
10
9
  }
11
- declare const Spinner: ({ backgroundColor, description, fontSize, width, flat, onCancel, cancelText }: ITMSpinner) => React.JSX.Element;
10
+ declare const Spinner: ({ backgroundColor, description, fontSize, width, flat, onCancel, cancelText }: ITMSpinner) => import("react/jsx-runtime").JSX.Element;
12
11
  declare class TMSpinner {
13
12
  static show({ description, backgroundColor, fontSize, flat, onCancel, cancelText }?: ITMSpinner): void;
14
13
  static hide(): void;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { ValidationItem } from '@topconsultnpm/sdk-ts';
3
2
  export interface ITMTabProps {
4
3
  title: string;
@@ -8,14 +7,14 @@ export declare const TMTab: ({ label, propsToBeValidated, children }: {
8
7
  label?: string;
9
8
  propsToBeValidated?: string[] | undefined;
10
9
  children?: any;
11
- }) => React.JSX.Element;
10
+ }) => import("react/jsx-runtime").JSX.Element;
12
11
  export declare const TMTabItemBadge: ({ vil }: {
13
12
  vil: ValidationItem[];
14
- }) => React.JSX.Element;
13
+ }) => import("react/jsx-runtime").JSX.Element;
15
14
  declare const TMTabGroup: ({ children, fontSize, validationItems, onTabIndexChanged }: {
16
15
  onTabIndexChanged?: (e: number) => void;
17
16
  children: any;
18
17
  fontSize?: string;
19
18
  validationItems?: ValidationItem[];
20
- }) => React.JSX.Element;
19
+ }) => import("react/jsx-runtime").JSX.Element;
21
20
  export default TMTabGroup;
@@ -10,5 +10,5 @@ interface ITMTooltipProps extends ITooltipOptions {
10
10
  parentStyle?: React.CSSProperties;
11
11
  childStyle?: React.CSSProperties;
12
12
  }
13
- declare const TMTooltip: ({ children, position, content, hideAfterDelay, parentStyle, childStyle }: ITMTooltipProps) => React.JSX.Element;
13
+ declare const TMTooltip: ({ children, position, content, hideAfterDelay, parentStyle, childStyle }: ITMTooltipProps) => import("react/jsx-runtime").JSX.Element;
14
14
  export default TMTooltip;
@@ -29,7 +29,7 @@ interface ITMTreeViewProps {
29
29
  showLoadMoreButton?: boolean;
30
30
  enableVirtualization?: boolean;
31
31
  }
32
- declare const TMTreeView: ({ dataSource, focusedItem, selectedItems, allowMultipleSelection, onDataChanged, calculateItemsForNode, itemRender, onNodeUpdate, onFocusedItemChanged, onSelectionChanged, shouldDelayFocusOnEvent, onItemContextMenu, autoSelectChildren, itemsPerPage, showLoadMoreButton, enableVirtualization }: ITMTreeViewProps) => React.JSX.Element;
32
+ declare const TMTreeView: ({ dataSource, focusedItem, selectedItems, allowMultipleSelection, onDataChanged, calculateItemsForNode, itemRender, onNodeUpdate, onFocusedItemChanged, onSelectionChanged, shouldDelayFocusOnEvent, onItemContextMenu, autoSelectChildren, itemsPerPage, showLoadMoreButton, enableVirtualization }: ITMTreeViewProps) => import("react/jsx-runtime").JSX.Element;
33
33
  export default TMTreeView;
34
34
  export declare const StyledTreeContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
35
35
  export declare const StyledItemContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
@@ -1,9 +1,8 @@
1
- import React from 'react';
2
1
  interface TMUserAvatarProps {
3
2
  displayName: string;
4
3
  nameForColorCalculation: string;
5
4
  tooltipName?: string;
6
5
  returnType?: 'jsx' | 'svg';
7
6
  }
8
- declare const TMUserAvatar: (props: TMUserAvatarProps) => string | React.JSX.Element;
7
+ declare const TMUserAvatar: (props: TMUserAvatarProps) => string | import("react/jsx-runtime").JSX.Element;
9
8
  export default TMUserAvatar;
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
1
  import { ValidationItem } from '@topconsultnpm/sdk-ts';
3
2
  declare const TMVilViewer: ({ vil }: {
4
3
  vil?: ValidationItem[];
5
- }) => React.JSX.Element | null;
4
+ }) => import("react/jsx-runtime").JSX.Element | null;
6
5
  export default TMVilViewer;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { ITMLayoutContainerProps } from './TMLayout';
3
2
  interface ITMWaitPanelProps {
4
3
  title?: string;
@@ -15,7 +14,7 @@ interface ITMWaitPanelProps {
15
14
  onAbortClick?: (abortController: AbortController | undefined) => void;
16
15
  useHighZIndex?: boolean;
17
16
  }
18
- export declare const TMWaitPanel: (props: ITMWaitPanelProps) => React.JSX.Element;
17
+ export declare const TMWaitPanel: (props: ITMWaitPanelProps) => import("react/jsx-runtime").JSX.Element;
19
18
  interface ITMLayoutWaitingContainerProps extends ITMLayoutContainerProps {
20
19
  showWaitPanel?: boolean;
21
20
  waitPanelTitle?: string;
@@ -31,5 +30,5 @@ interface ITMLayoutWaitingContainerProps extends ITMLayoutContainerProps {
31
30
  abortController?: AbortController;
32
31
  usePortal?: boolean;
33
32
  }
34
- export declare const TMLayoutWaitingContainer: ({ showWaitPanel, showWaitPanelPrimary, showWaitPanelSecondary, waitPanelTitle, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, isCancelable, abortController, usePortal, gap, onClick, justifyContent, alignItems, children, direction }: ITMLayoutWaitingContainerProps) => React.JSX.Element;
33
+ export declare const TMLayoutWaitingContainer: ({ showWaitPanel, showWaitPanelPrimary, showWaitPanelSecondary, waitPanelTitle, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, isCancelable, abortController, usePortal, gap, onClick, justifyContent, alignItems, children, direction }: ITMLayoutWaitingContainerProps) => import("react/jsx-runtime").JSX.Element;
35
34
  export {};
@@ -39,4 +39,4 @@ interface ITMDynDataListItemChooserFormProps extends ITMChooserFormProps<DataLis
39
39
  dynDL?: DynamicDataListDescriptor;
40
40
  searchResult?: SearchResultDescriptor;
41
41
  }
42
- export declare const TMDynDataListItemChooserForm: (props: ITMDynDataListItemChooserFormProps) => React.JSX.Element;
42
+ export declare const TMDynDataListItemChooserForm: (props: ITMDynDataListItemChooserFormProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
1
  import { InvoiceRetrieveFormats } from '@topconsultnpm/sdk-ts';
3
2
  import { ITMEnumDataBinding } from '../../ts';
4
- declare const TMInvoiceRetrieveFormats: ({ value, valueOrig, onValueChanged, valuesToExclude, label, width }: ITMEnumDataBinding<InvoiceRetrieveFormats>) => React.JSX.Element;
3
+ declare const TMInvoiceRetrieveFormats: ({ value, valueOrig, onValueChanged, valuesToExclude, label, width }: ITMEnumDataBinding<InvoiceRetrieveFormats>) => import("react/jsx-runtime").JSX.Element;
5
4
  export default TMInvoiceRetrieveFormats;
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
1
  import { OrderRetrieveFormats } from '@topconsultnpm/sdk-ts';
3
2
  import { ITMEnumDataBinding } from '../../ts';
4
- declare const TMOrderRetrieveFormats: ({ value, valueOrig, onValueChanged, valuesToExclude, label, width }: ITMEnumDataBinding<OrderRetrieveFormats>) => React.JSX.Element;
3
+ declare const TMOrderRetrieveFormats: ({ value, valueOrig, onValueChanged, valuesToExclude, label, width }: ITMEnumDataBinding<OrderRetrieveFormats>) => import("react/jsx-runtime").JSX.Element;
5
4
  export default TMOrderRetrieveFormats;
@@ -19,13 +19,13 @@ export declare const TMRelationIdViewer: ({ relationType, relationId, showIcon,
19
19
  relationId?: number;
20
20
  showIcon?: boolean;
21
21
  noneSelectionText?: string;
22
- }) => React.JSX.Element;
22
+ }) => import("react/jsx-runtime").JSX.Element;
23
23
  export declare const TMRelationIcon: ({ rd, relationType }: {
24
24
  rd: RelationDescriptor | undefined;
25
25
  relationType?: RelationTypes;
26
- }) => React.JSX.Element;
26
+ }) => import("react/jsx-runtime").JSX.Element;
27
27
  export declare const TMRelationTooltip: ({ rd, relationType, children }: {
28
28
  rd?: RelationDescriptor;
29
29
  relationType: RelationTypes | undefined;
30
30
  children: React.ReactNode;
31
- }) => React.JSX.Element;
31
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -38,8 +38,8 @@ interface ITMUserChooserFormProps extends ITMChooserFormProps<UserDescriptor> {
38
38
  export declare const TMUserChooserForm: React.FunctionComponent<ITMUserChooserFormProps>;
39
39
  export declare const TMUserIcon: ({ ud }: {
40
40
  ud?: UserDescriptor;
41
- }) => React.JSX.Element | null;
41
+ }) => import("react/jsx-runtime").JSX.Element | null;
42
42
  export declare const TMUserTooltip: ({ ud, children }: {
43
43
  ud?: UserDescriptor;
44
44
  children: React.ReactNode;
45
- }) => React.JSX.Element;
45
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -30,7 +30,7 @@ export declare class FormulaDescriptor {
30
30
  description?: string;
31
31
  syntax?: string;
32
32
  }
33
- export declare const renderFormulaIcon: (iconType: FormulaIconTypes, tid?: number, md?: MetadataDescriptor) => React.JSX.Element;
33
+ export declare const renderFormulaIcon: (iconType: FormulaIconTypes, tid?: number, md?: MetadataDescriptor) => import("react/jsx-runtime").JSX.Element;
34
34
  declare const TMFormulaEditor: React.FunctionComponent<ITMApplyFormProps<FormulaDescriptor>>;
35
35
  export default TMFormulaEditor;
36
36
  export declare class FormulaHelper {
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  interface IHtmlContentDisplay {
3
2
  markup: string;
4
3
  isSelected: boolean;
5
4
  searchText?: string;
6
5
  }
7
- declare const TMHtmlContentDisplay: (props: IHtmlContentDisplay) => React.JSX.Element;
6
+ declare const TMHtmlContentDisplay: (props: IHtmlContentDisplay) => import("react/jsx-runtime").JSX.Element;
8
7
  export default TMHtmlContentDisplay;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { ValidationItem } from '@topconsultnpm/sdk-ts';
3
2
  export declare const sanitizeAndFormatComment: (raw?: string) => string;
4
3
  export interface ITMHtmlEditor {
@@ -35,5 +34,5 @@ export interface ITMHtmlEditor {
35
34
  /** If true, displays a character count below the editor */
36
35
  showCount?: boolean;
37
36
  }
38
- declare const TMHtmlEditor: (props: ITMHtmlEditor) => React.JSX.Element;
37
+ declare const TMHtmlEditor: (props: ITMHtmlEditor) => import("react/jsx-runtime").JSX.Element;
39
38
  export default TMHtmlEditor;
@@ -14,5 +14,5 @@ interface TMTreeDropDownProps {
14
14
  isValidKey?: (key: number) => boolean;
15
15
  elementStyle?: React.CSSProperties;
16
16
  }
17
- declare const TMTreeDropDown: (props: TMTreeDropDownProps) => React.JSX.Element;
17
+ declare const TMTreeDropDown: (props: TMTreeDropDownProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export default TMTreeDropDown;
@@ -11,5 +11,5 @@ interface TMToppyDraggableHelpCenterProps {
11
11
  /** Callback chiamato quando si clicca sull'immagine di Toppy */
12
12
  onToppyImageClick?: () => void;
13
13
  }
14
- declare const TMToppyDraggableHelpCenter: (props: TMToppyDraggableHelpCenterProps) => React.JSX.Element;
14
+ declare const TMToppyDraggableHelpCenter: (props: TMToppyDraggableHelpCenterProps) => import("react/jsx-runtime").JSX.Element;
15
15
  export default TMToppyDraggableHelpCenter;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { BlogPost, UserDescriptor } from "@topconsultnpm/sdk-ts";
3
2
  import { FileItem } from '../../base/TMFileManagerUtils';
4
3
  import { TMBlogContextDescriptor } from '../../grids/TMBlogsPostUtils';
@@ -19,5 +18,5 @@ interface TMBlogCommentFormProps {
19
18
  /** External save handler - when provided, bypasses internal engine logic */
20
19
  onCustomSave?: (blogPost: BlogPost) => Promise<void>;
21
20
  }
22
- declare const TMBlogCommentForm: (props: TMBlogCommentFormProps) => React.JSX.Element;
21
+ declare const TMBlogCommentForm: (props: TMBlogCommentFormProps) => import("react/jsx-runtime").JSX.Element;
23
22
  export default TMBlogCommentForm;
@@ -48,6 +48,7 @@ interface ITMDcmtFormProps {
48
48
  allowRelations?: boolean;
49
49
  allowButtonsRefs?: boolean;
50
50
  openS4TViewer?: boolean;
51
+ editPdfForm?: boolean;
51
52
  s4TViewerDialogComponent?: React.ReactNode;
52
53
  enableDragDropOverlay?: boolean;
53
54
  taskFormDialogComponent?: React.ReactNode;
@@ -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, 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 }) => {
61
61
  const { onRefreshSearchAsyncDatagrid, onRefreshBlogDatagrid, onRefreshPreviewDatagrid } = datagridUtility || {};
62
62
  const floatingBarContainerRef = useRef(null);
63
63
  const [id, setID] = useState('');
@@ -803,7 +803,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
803
803
  // Verifica che ci siano riferimenti renderizzabili (solo Dossier o WorkingGroup)
804
804
  return dcmtReferences.some(ref => ref.objClass === ObjectClasses.Dossier || ref.objClass === ObjectClasses.WorkingGroup);
805
805
  }, [allowButtonsRefs, layoutMode, dcmtReferences, isOpenDetails, isOpenMaster]);
806
- const isToppyVisible = useMemo(() => Boolean((showToppyForApprove || showToppyForCompleteMoreInfo || showToppyForReferences) && !openS4TViewer && !showTodoDcmtForm), [showToppyForApprove, showToppyForCompleteMoreInfo, showToppyForReferences, openS4TViewer, showTodoDcmtForm]);
806
+ const isToppyVisible = useMemo(() => Boolean((showToppyForApprove || showToppyForCompleteMoreInfo || showToppyForReferences) && !openS4TViewer && !showTodoDcmtForm && !editPdfForm), [showToppyForApprove, showToppyForCompleteMoreInfo, showToppyForReferences, openS4TViewer, showTodoDcmtForm, editPdfForm]);
807
807
  const isModified = useMemo(() => calcIsModified(formData, formDataOrig), [formData, formDataOrig]);
808
808
  const formToolbar = useMemo(() => _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '10px' }, children: [allowNavigation && canPrev != undefined && _jsx("p", { style: { textAlign: 'center', padding: '1px 4px', display: 'flex' }, children: `${itemIndex}/${count}` }), allowNavigation && canPrev != undefined && _jsx(TMSaveFormButtonPrevious, { btnStyle: 'icon', iconColor: 'white', isModified: isModified, formMode: formMode, canPrev: canPrev, onPrev: onPrev }), allowNavigation && canNext != undefined && _jsx(TMSaveFormButtonNext, { btnStyle: 'icon', iconColor: 'white', isModified: isModified, formMode: formMode, canNext: canNext, onNext: onNext }), layoutMode === LayoutModes.Update &&
809
809
  _jsx(ContextMenu, { items: operationItems, trigger: "left", children: _jsx(IconMenuVertical, { color: 'white', cursor: 'pointer' }) }), layoutMode === LayoutModes.Ark &&
@@ -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) => React.JSX.Element;
33
+ declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) => import("react/jsx-runtime").JSX.Element;
34
34
  export default TMDcmtFormActionButtons;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { DcmtInfo, DownloadModes, DownloadTypes } from '../../../ts';
3
2
  import { FileDescriptor } from '@topconsultnpm/sdk-ts';
4
3
  interface ITMDcmtIconProps {
@@ -17,5 +16,5 @@ interface ITMDcmtIconProps {
17
16
  /** Se true, renderizza il wait panel nel body tramite Portal (centrato a schermo intero) */
18
17
  usePortal?: boolean;
19
18
  }
20
- declare const TMDcmtIcon: ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode, tooltipContent, openInOffice, onDownloadDcmtsAsync, usePortal }: ITMDcmtIconProps) => React.JSX.Element;
19
+ declare const TMDcmtIcon: ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode, tooltipContent, openInOffice, onDownloadDcmtsAsync, usePortal }: ITMDcmtIconProps) => import("react/jsx-runtime").JSX.Element;
21
20
  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
- }) => React.JSX.Element;
28
+ }) => import("react/jsx-runtime").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,4 +1,3 @@
1
- import React from "react";
2
1
  import { FormModes, TaskContext } from "../../../ts";
3
2
  import { HomeBlogPost, TaskDescriptor } from "@topconsultnpm/sdk-ts";
4
3
  interface TMDcmtTasksProps {
@@ -13,5 +12,5 @@ interface TMDcmtTasksProps {
13
12
  handleNavigateToDossiers?: (value: HomeBlogPost | number) => Promise<void>;
14
13
  onBack?: () => void;
15
14
  }
16
- declare const TMDcmtTasks: (props: TMDcmtTasksProps) => React.JSX.Element;
15
+ declare const TMDcmtTasks: (props: TMDcmtTasksProps) => import("react/jsx-runtime").JSX.Element;
17
16
  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.Element;
5
+ declare const TMDragDropOverlay: (props: TMDragDropOverlayProps) => import("react/jsx-runtime").JSX.Element;
6
6
  export default TMDragDropOverlay;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { DcmtInfo } from '../../../ts';
3
2
  import { HomeBlogPost, TaskDescriptor } from '@topconsultnpm/sdk-ts';
4
3
  import { TMCopyToFolderMode } from '../../../hooks/useDocumentOperations';
@@ -21,5 +20,5 @@ interface ITMMergeToPdfFormProps {
21
20
  * Condivide TMDownloadRelationViewerSection e gli helper in copyAndMergeDcmtsShared
22
21
  * con TMCopyToFolderForm.
23
22
  */
24
- declare const TMMergeToPdfForm: (props: ITMMergeToPdfFormProps) => React.JSX.Element;
23
+ declare const TMMergeToPdfForm: (props: ITMMergeToPdfFormProps) => import("react/jsx-runtime").JSX.Element;
25
24
  export default TMMergeToPdfForm;
@@ -82,7 +82,7 @@ const TMMergeToPdfForm = (props) => {
82
82
  pdfValidationItems.push(new ValidationItem(ResultTypes.ERROR, SDKUI_Localizator.PdfFileName, SDKUI_Localizator.RequiredField));
83
83
  }
84
84
  // ---- Statistiche selezione PDF / convertibili / non-PDF ----
85
- const { convertibleSelectedItems, hasConvertibleSelected, nonPdfSelectedItems, hasNonPdfSelected, metadataOnlySelectedItems, hasMetadataOnlySelected, mergeableSelectedCount, hasEnoughPdfForMerge, } = getMergePdfSelectionStats(selectedDcmtInfos, selectedItemsFull, selectedItemsRelationViewer, showTMRelationViewer);
85
+ const { convertibleSelectedItems, hasConvertibleSelected, nonPdfSelectedItems, hasNonPdfSelected, metadataOnlySelectedItems, hasMetadataOnlySelected, pdfSelectedItems, hasPdfSelected, mergeableSelectedCount, hasEnoughPdfForMerge, } = getMergePdfSelectionStats(selectedDcmtInfos, selectedItemsFull, selectedItemsRelationViewer, showTMRelationViewer);
86
86
  const isFormValid = () => pdfValidationItems.length === 0;
87
87
  // ---- Recupero dei file PDF da unire (condiviso tra Esegui e Anteprima) ----
88
88
  const collectPdfFilesToMerge = async () => {
@@ -285,7 +285,7 @@ const TMMergeToPdfForm = (props) => {
285
285
  width: 'max-content',
286
286
  backgroundColor: TMColors.default_background,
287
287
  zIndex: 1,
288
- }, children: SDKUI_Localizator.Path }), _jsxs("div", { style: { border: `1px solid ${TMColors.border_normal}`, borderRadius: '5px', padding: '4px 10px 4px 13px', display: 'flex', alignItems: 'center', gap: '8px', backgroundColor: '#fafafa' }, children: [_jsx(IconFolderOpen, {}), _jsx("span", { style: { fontSize: '0.9rem', color: '#333' }, children: "Download" })] }), _jsx("span", { style: { fontSize: '0.8rem', color: '#888', fontStyle: 'italic', marginTop: '4px', display: 'block' }, children: SDKUI_Localizator.BrowserDoesNotSupportFolderSelection })] }) })), _jsx("div", { style: { flex: '1.5 1 420px', minWidth: '350px', width: '100%' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.PdfFileName, value: pdfFileName, validationItems: pdfValidationItems, autoComplete: "one-time-code", onValueChanged: (e) => setPdfFileName(e.target.value) }) })] }), (hasConvertibleSelected || hasMetadataOnlySelected || !hasEnoughPdfForMerge || hasNonPdfSelected) && (_jsxs("div", { style: {
288
+ }, children: SDKUI_Localizator.Path }), _jsxs("div", { style: { border: `1px solid ${TMColors.border_normal}`, borderRadius: '5px', padding: '4px 10px 4px 13px', display: 'flex', alignItems: 'center', gap: '8px', backgroundColor: '#fafafa' }, children: [_jsx(IconFolderOpen, {}), _jsx("span", { style: { fontSize: '0.9rem', color: '#333' }, children: "Download" })] }), _jsx("span", { style: { fontSize: '0.8rem', color: '#888', fontStyle: 'italic', marginTop: '4px', display: 'block' }, children: SDKUI_Localizator.BrowserDoesNotSupportFolderSelection })] }) })), _jsx("div", { style: { flex: '1.5 1 420px', minWidth: '350px', width: '100%' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.PdfFileName, value: pdfFileName, validationItems: pdfValidationItems, autoComplete: "one-time-code", onValueChanged: (e) => setPdfFileName(e.target.value) }) })] }), (hasConvertibleSelected || hasMetadataOnlySelected || !hasEnoughPdfForMerge || hasNonPdfSelected || hasPdfSelected) && (_jsxs("div", { style: {
289
289
  display: 'flex',
290
290
  flexDirection: 'column',
291
291
  gap: '6px',
@@ -308,17 +308,25 @@ const TMMergeToPdfForm = (props) => {
308
308
  }, children: SDKUI_Localizator.NotesAndWarnings }), _jsxs("ul", { style: { margin: 0, paddingLeft: '18px', display: 'flex', flexDirection: 'column', gap: '4px' }, children: [(hasConvertibleSelected || hasMetadataOnlySelected) && (_jsx("li", { style: { color: '#00527a' }, children: (() => {
309
309
  // Combina convertibili + metadataOnly
310
310
  const allConvertible = [...convertibleSelectedItems, ...metadataOnlySelectedItems];
311
- const extSet = Array.from(new Set([
312
- ...convertibleSelectedItems.map(i => (i.ext ?? '').toString().trim().toLowerCase().replace(/^\./, '')).filter(e => e.length > 0),
313
- ...(hasMetadataOnlySelected ? ['metadati'] : [])
314
- ]));
315
- const extLabel = extSet.length > 0
316
- ? ` (${extSet.map(e => '.' + e).join(', ')})`
317
- : '';
318
- return allConvertible.length === 1
319
- ? SDKUI_Localizator.DocumentWillBeConvertedDuringMerge.replaceParams(extLabel)
320
- : SDKUI_Localizator.DocumentsWillBeConvertedDuringMerge.replaceParams(allConvertible.length.toString(), extLabel);
321
- })() })), !hasEnoughPdfForMerge && (_jsx("li", { style: { color: '#7a5d00' }, children: mergeableSelectedCount === 0
311
+ // Conta le occorrenze per ogni estensione
312
+ const extCounts = new Map();
313
+ convertibleSelectedItems.forEach(i => {
314
+ const ext = (i.ext ?? '').toString().trim().toLowerCase().replace(/^\./, '');
315
+ if (ext.length > 0) {
316
+ extCounts.set(ext, (extCounts.get(ext) || 0) + 1);
317
+ }
318
+ });
319
+ if (hasMetadataOnlySelected) {
320
+ extCounts.set('metadati', metadataOnlySelectedItems.length);
321
+ }
322
+ // Genera label per tooltip: "3 xml, 2 doc, 1 metadati"
323
+ const extLabel = Array.from(extCounts.entries()).map(([ext, count]) => `${count} ${ext}`).join(', ');
324
+ return (_jsxs("span", { style: { display: 'inline-flex', alignItems: 'center', gap: '6px' }, children: [_jsx("span", { children: allConvertible.length === 1
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' } }) }) }))] }));
327
+ })() })), hasPdfSelected && (_jsx("li", { style: { color: '#00527a' }, children: pdfSelectedItems.length === 1
328
+ ? SDKUI_Localizator.DocumentAlreadyInPdfNoConversionNeeded
329
+ : SDKUI_Localizator.DocumentsAlreadyInPdfNoConversionNeeded.replaceParams(pdfSelectedItems.length.toString()) })), !hasEnoughPdfForMerge && (_jsx("li", { style: { color: '#7a5d00' }, children: mergeableSelectedCount === 0
322
330
  ? SDKUI_Localizator.NoPdfOrConvertibleFilesSelected_Param.replaceParams(MIN_PDF_FOR_MERGE.toString())
323
331
  : SDKUI_Localizator.OnlyOnePdfOrConvertibleFileSelected.replaceParams(MIN_PDF_FOR_MERGE.toString()) })), hasNonPdfSelected && (_jsx("li", { style: { color: '#7a5d00' }, children: (() => {
324
332
  const extSet = Array.from(new Set(nonPdfSelectedItems.map(i => (i.ext ?? '').toString().trim().toLowerCase().replace(/^\./, '')).filter(e => e.length > 0)));
@@ -19,6 +19,10 @@ export interface IMergePdfSelectionStats {
19
19
  metadataOnlySelectedItems: Array<ISelectedItemInfo>;
20
20
  /** True se ci sono documenti di soli metadati selezionati */
21
21
  hasMetadataOnlySelected: boolean;
22
+ /** Elementi già in formato PDF (non richiedono conversione) */
23
+ pdfSelectedItems: Array<ISelectedItemInfo>;
24
+ /** True se ci sono elementi già in PDF selezionati */
25
+ hasPdfSelected: boolean;
22
26
  /** Numero totale di file unibili (PDF nativi + convertibili) */
23
27
  mergeableSelectedCount: number;
24
28
  /** True se ci sono abbastanza file per il merge (>= MIN_PDF_FOR_MERGE) */