@topconsultnpm/sdkui-react-beta 6.17.0 → 6.17.2

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 (127) hide show
  1. package/lib/assets/IconsS4t/add.svg +12 -12
  2. package/lib/assets/IconsS4t/aggiorna.svg +18 -18
  3. package/lib/assets/IconsS4t/bookmark.svg +42 -42
  4. package/lib/assets/IconsS4t/cancella.svg +15 -15
  5. package/lib/assets/IconsS4t/check-box.svg +19 -19
  6. package/lib/assets/IconsS4t/down-arrow-signBook.svg +40 -40
  7. package/lib/assets/IconsS4t/down.svg +28 -28
  8. package/lib/assets/IconsS4t/edit-file.svg +19 -19
  9. package/lib/assets/IconsS4t/edita.svg +32 -32
  10. package/lib/assets/IconsS4t/firma.svg +19 -19
  11. package/lib/assets/IconsS4t/icona_download.svg +16 -16
  12. package/lib/assets/IconsS4t/info.svg +51 -51
  13. package/lib/assets/IconsS4t/left.svg +20 -20
  14. package/lib/assets/IconsS4t/line.svg +40 -40
  15. package/lib/assets/IconsS4t/more.svg +19 -19
  16. package/lib/assets/IconsS4t/plus.svg +23 -23
  17. package/lib/assets/IconsS4t/printer.svg +49 -49
  18. package/lib/assets/IconsS4t/radio-on-button.svg +25 -25
  19. package/lib/assets/IconsS4t/rectangle.svg +41 -41
  20. package/lib/assets/IconsS4t/redo.svg +19 -19
  21. package/lib/assets/IconsS4t/right-arrow-signBook-finish.svg +40 -40
  22. package/lib/assets/IconsS4t/right-arrow-signBook.svg +40 -40
  23. package/lib/assets/IconsS4t/right.svg +22 -22
  24. package/lib/assets/IconsS4t/searchbar.svg +21 -21
  25. package/lib/assets/IconsS4t/text-box.svg +36 -36
  26. package/lib/assets/IconsS4t/tick.svg +8 -8
  27. package/lib/assets/IconsS4t/trash-white.svg +10 -10
  28. package/lib/assets/IconsS4t/undo.svg +19 -19
  29. package/lib/assets/IconsS4t/up.svg +32 -32
  30. package/lib/assets/IconsS4t/video-streaming.svg +2 -2
  31. package/lib/assets/IconsS4t/zoom-in.svg +58 -58
  32. package/lib/assets/IconsS4t/zoom-out.svg +56 -56
  33. package/lib/assets/six.svg +3 -3
  34. package/lib/assets/thumbnails/index.ts +38 -38
  35. package/lib/components/base/Styled.js +263 -263
  36. package/lib/components/base/TMAccordion.js +43 -43
  37. package/lib/components/base/TMAreaManager.js +23 -23
  38. package/lib/components/base/TMButton.js +130 -130
  39. package/lib/components/base/TMClosableList.js +46 -46
  40. package/lib/components/base/TMConfirm.js +20 -20
  41. package/lib/components/base/TMContextMenu.js +4 -4
  42. package/lib/components/base/TMContextMenuOLD.js +25 -25
  43. package/lib/components/base/TMCounterBar.js +32 -32
  44. package/lib/components/base/TMCounterContainer.js +30 -30
  45. package/lib/components/base/TMDropDownMenu.js +24 -24
  46. package/lib/components/base/TMFileManagerUtils.js +19 -19
  47. package/lib/components/base/TMFloatingToolbar.js +34 -34
  48. package/lib/components/base/TMLayout.js +44 -44
  49. package/lib/components/base/TMList.js +34 -34
  50. package/lib/components/base/TMModal.js +31 -31
  51. package/lib/components/base/TMPanel.js +57 -57
  52. package/lib/components/base/TMPopUp.js +131 -131
  53. package/lib/components/base/TMProgressBar.js +20 -20
  54. package/lib/components/base/TMResizableMenu.js +28 -28
  55. package/lib/components/base/TMRightSidebar.js +40 -40
  56. package/lib/components/base/TMTab.js +11 -11
  57. package/lib/components/base/TMToggleButton.js +36 -36
  58. package/lib/components/base/TMToolbarCard.js +35 -35
  59. package/lib/components/base/TMTreeView.js +12 -12
  60. package/lib/components/base/TMUserAvatar.js +7 -7
  61. package/lib/components/base/TMWaitPanel.js +22 -22
  62. package/lib/components/choosers/TMCultureIDPicker.js +35 -35
  63. package/lib/components/choosers/TMDataListItemPicker.js +54 -54
  64. package/lib/components/editors/TMCheckBox.js +24 -24
  65. package/lib/components/editors/TMDropDown.js +43 -43
  66. package/lib/components/editors/TMEditorStyled.js +71 -71
  67. package/lib/components/editors/TMHtmlContentDisplay.js +16 -16
  68. package/lib/components/editors/TMLocalizedTextBox.js +31 -31
  69. package/lib/components/editors/TMMetadataValues.js +12 -12
  70. package/lib/components/editors/TMRadioButton.js +39 -39
  71. package/lib/components/editors/TMSummary.js +39 -39
  72. package/lib/components/editors/TMTextArea.js +12 -12
  73. package/lib/components/editors/TMTextBox.js +19 -19
  74. package/lib/components/features/archive/TMArchive.js +1 -0
  75. package/lib/components/features/assistant/ToppyHelpCenter.js +114 -114
  76. package/lib/components/features/blog/TMBlogCommentForm.js +3 -3
  77. package/lib/components/features/documents/TMDcmtIcon.js +8 -8
  78. package/lib/components/features/documents/TMDcmtPreview.js +30 -30
  79. package/lib/components/features/documents/TMFileUploader.js +21 -21
  80. package/lib/components/features/search/TMSavedQuerySelector.js +51 -51
  81. package/lib/components/features/search/TMSearch.d.ts +2 -0
  82. package/lib/components/features/search/TMSearch.js +11 -6
  83. package/lib/components/features/search/TMSearchQueryEditor.js +13 -13
  84. package/lib/components/features/search/TMSearchQueryPanel.d.ts +1 -0
  85. package/lib/components/features/search/TMSearchQueryPanel.js +33 -32
  86. package/lib/components/features/search/TMSearchResult.d.ts +1 -0
  87. package/lib/components/features/search/TMSearchResult.js +7 -7
  88. package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +1 -1
  89. package/lib/components/features/search/TMSearchResultsMenuItems.js +12 -2
  90. package/lib/components/features/search/TMTreeSelector.js +66 -66
  91. package/lib/components/features/wg/TMWGsCopyMoveForm.js +9 -9
  92. package/lib/components/features/workflow/TMWorkflowPopup.js +41 -41
  93. package/lib/components/features/workflow/diagram/ConnectionComponent.js +29 -29
  94. package/lib/components/features/workflow/diagram/ConnectionForm.js +10 -10
  95. package/lib/components/features/workflow/diagram/DiagramItemComponent.js +57 -57
  96. package/lib/components/features/workflow/diagram/DiagramItemForm.js +29 -29
  97. package/lib/components/features/workflow/diagram/DiagramItemSvgContent.js +12 -12
  98. package/lib/components/features/workflow/diagram/RecipientList.js +40 -40
  99. package/lib/components/features/workflow/diagram/WFDiagram.js +279 -279
  100. package/lib/components/features/workflow/diagram/WorkitemRecipientsEditor.js +4 -4
  101. package/lib/components/features/workflow/diagram/workflowHelpers.js +1 -1
  102. package/lib/components/forms/Login/Chooser.js +35 -35
  103. package/lib/components/forms/Login/Menu.js +22 -22
  104. package/lib/components/forms/Login/SelectBox.js +46 -46
  105. package/lib/components/forms/Login/TMLoginForm.js +4 -4
  106. package/lib/components/forms/Login/TextBox.js +57 -57
  107. package/lib/components/grids/TMBlogsUtils.js +25 -25
  108. package/lib/components/grids/TMRecentsManager.js +50 -50
  109. package/lib/components/grids/TMValidationItemsList.js +48 -48
  110. package/lib/components/layout/panelManager/TMPanelManagerContainer.js +12 -12
  111. package/lib/components/layout/panelManager/TMPanelManagerToolbar.js +34 -34
  112. package/lib/components/query/TMQueryEditor.js +17 -17
  113. package/lib/components/query/TMQuerySummary.js +12 -12
  114. package/lib/components/sidebar/TMCommandsPanel.js +10 -10
  115. package/lib/components/sidebar/TMHeader.js +307 -307
  116. package/lib/components/sidebar/TMSidebar.js +24 -24
  117. package/lib/components/sidebar/TMSidebarItem.js +21 -21
  118. package/lib/helper/SDKUI_Localizator.d.ts +1 -0
  119. package/lib/helper/SDKUI_Localizator.js +10 -0
  120. package/lib/helper/TMUtils.js +19 -19
  121. package/lib/hooks/useForm.d.ts +1 -1
  122. package/lib/hooks/useForm.js +4 -4
  123. package/lib/services/platform_services.d.ts +1 -1
  124. package/lib/services/platform_services.js +2 -2
  125. package/lib/stories/TMHtmlContentDisplay.stories.js +16 -16
  126. package/lib/stories/TMHtmlEditor.stories.js +3 -3
  127. package/package.json +1 -1
@@ -12,6 +12,7 @@ interface ITMSearchQueryPanelProps {
12
12
  onClosePanel?: () => void;
13
13
  allowMaximize?: boolean;
14
14
  onMaximizePanel?: () => void;
15
+ passToArchiveCallback?: () => void;
15
16
  }
16
17
  declare const TMSearchQueryPanel: React.FunctionComponent<ITMSearchQueryPanelProps>;
17
18
  export default TMSearchQueryPanel;
@@ -4,7 +4,7 @@ import { PlatformObjectValidator, WhereItem, SDK_Localizator, OrderByItem, Selec
4
4
  import styled from 'styled-components';
5
5
  import TMSearchQueryEditor from './TMSearchQueryEditor';
6
6
  import Toppy from '../../../assets/Toppy-generico.png';
7
- import { getDcmtTypesByQdAsync, SDKUI_Localizator, getQD, IconMenuVertical, IconAddCircleOutline, IconEdit, IconEasy, IconAdvanced, deepCompare, IconSearch, IconClear, getDefaultOperator, prepareQdForSearchAsync, IsParametricQuery, SDKUI_Globals, IconArrowRight } from '../../../helper';
7
+ import { getDcmtTypesByQdAsync, SDKUI_Localizator, getQD, IconMenuVertical, IconAddCircleOutline, IconEdit, IconEasy, IconAdvanced, deepCompare, IconSearch, IconClear, getDefaultOperator, prepareQdForSearchAsync, IsParametricQuery, SDKUI_Globals, IconArrowRight, IconMenuCAArchive } from '../../../helper';
8
8
  import { useQueryParametersDialog } from '../../../hooks/useQueryParametersDialog';
9
9
  import { FormModes } from '../../../ts';
10
10
  import { TMColors } from '../../../utils/theme';
@@ -23,7 +23,7 @@ import TMQueryEditor from '../../query/TMQueryEditor';
23
23
  import TMSavedQueryForm from './TMSavedQueryForm';
24
24
  import { AdvancedMenuButtons } from '../../editors/TMMetadataValues';
25
25
  import TMShowAllOrMaxItemsButton from '../../base/TMShowAllOrMaxItemsButton';
26
- const TMSearchQueryPanel = ({ fromDTD, showBackToResultButton, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, SQD, onSearchCompleted, onSqdSaved, onBack, onClosePanel, allowMaximize = true, onMaximizePanel, onBackToResult }) => {
26
+ const TMSearchQueryPanel = ({ fromDTD, showBackToResultButton, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, SQD, onSearchCompleted, onSqdSaved, onBack, onClosePanel, allowMaximize = true, onMaximizePanel, onBackToResult, passToArchiveCallback }) => {
27
27
  const [confirmQueryParams, ConfirmQueryParamsDialog] = useQueryParametersDialog();
28
28
  const [qd, setQd] = useState();
29
29
  const [shouldSearch, setShouldSearch] = useState(false);
@@ -240,6 +240,7 @@ const TMSearchQueryPanel = ({ fromDTD, showBackToResultButton, isExpertMode = SD
240
240
  { icon: _jsx(IconEdit, {}), beginGroup: true, text: `${SDKUI_Localizator.Configure} - ${SDK_Localizator.QueryWhere}`, onClick: () => { setShowFiltersConfig(true); } },
241
241
  { icon: _jsx(IconEdit, {}), text: `${SDKUI_Localizator.Configure} - ${SDK_Localizator.QuerySelect}`, onClick: () => { setShowOutputConfig(true); } },
242
242
  { icon: _jsx(IconEdit, {}), text: `${SDKUI_Localizator.Configure} - ${SDK_Localizator.QueryOrderBy}`, onClick: () => { setShowOrderByConfig(true); } },
243
+ { icon: _jsx(IconMenuCAArchive, { fontSize: 24 }), beginGroup: true, text: SDKUI_Localizator.PassToArchive, onClick: () => passToArchiveCallback?.() }
243
244
  ] })
244
245
  : _jsx(_Fragment, {}) }), children: [_jsx(ConfirmQueryParamsDialog, {}), SQD
245
246
  ? _jsxs("div", { style: { height: '100%', width: '100%', position: 'relative', display: 'flex', flexDirection: 'column', gap: 5 }, children: [showAdvancedSearch
@@ -324,36 +325,36 @@ export const refreshLastSearch = async (qd) => {
324
325
  }
325
326
  return searchResults;
326
327
  };
327
- export const StyledToppyTextContainer = styled.div `
328
- padding: 22px 8px;
329
- width: 100%;
330
- max-width: 300px;
331
- border: 1px solid #2559A5;
332
- border-radius: 30px;
333
- display: flex;
334
- align-items: center;
335
- justify-content: center;
336
- box-sizing: border-box;
337
- min-height: 100px;
328
+ export const StyledToppyTextContainer = styled.div `
329
+ padding: 22px 8px;
330
+ width: 100%;
331
+ max-width: 300px;
332
+ border: 1px solid #2559A5;
333
+ border-radius: 30px;
334
+ display: flex;
335
+ align-items: center;
336
+ justify-content: center;
337
+ box-sizing: border-box;
338
+ min-height: 100px;
338
339
  `;
339
- export const StyledToppyText = styled.p `
340
- text-align: center;
341
- color: #2559A5;
342
- font-size: 1rem;
343
- user-select: none;
344
- margin: 0;
345
- display: -webkit-box;
346
- -webkit-box-orient: vertical;
347
- -webkit-line-clamp: 3; /* non è una proprietà standard ma è così diffusa e ben supportata che è considerata una "best practice pragmatica" */
348
- overflow: hidden;
349
- text-overflow: ellipsis;
350
- white-space: normal;
351
- word-break: break-word;
352
- line-height: 1.2;
340
+ export const StyledToppyText = styled.p `
341
+ text-align: center;
342
+ color: #2559A5;
343
+ font-size: 1rem;
344
+ user-select: none;
345
+ margin: 0;
346
+ display: -webkit-box;
347
+ -webkit-box-orient: vertical;
348
+ -webkit-line-clamp: 3; /* non è una proprietà standard ma è così diffusa e ben supportata che è considerata una "best practice pragmatica" */
349
+ overflow: hidden;
350
+ text-overflow: ellipsis;
351
+ white-space: normal;
352
+ word-break: break-word;
353
+ line-height: 1.2;
353
354
  `;
354
- export const StyledToppyImage = styled.img `
355
- width: 100%;
356
- max-width: 120px;
357
- height: auto;
358
- display: block;
355
+ export const StyledToppyImage = styled.img `
356
+ width: 100%;
357
+ max-width: 120px;
358
+ height: auto;
359
+ display: block;
359
360
  `;
@@ -34,6 +34,7 @@ interface ITMSearchResultProps {
34
34
  openAddDocumentForm?: () => void;
35
35
  openS4TViewer?: boolean;
36
36
  onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, onRefreshSearchAsync?: (() => Promise<void>)) => void;
37
+ passToArchiveCallback?: () => void;
37
38
  showTodoDcmtForm?: boolean;
38
39
  }
39
40
  declare const TMSearchResult: React.FC<ITMSearchResultProps>;
@@ -55,7 +55,7 @@ const orderByName = (array) => {
55
55
  return 1;
56
56
  } return 0; });
57
57
  };
58
- const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisible = true, allowRelations = true, openDcmtFormAsModal = false, searchResults = [], showSearchResultSidebar = true, showSelector = false, groupId, title, isClosable = false, allowFloatingBar = true, showToolbarHeader = true, selectedSearchResultTID, workingGroupContext = undefined, disableAccordionIfSingleCategory = false, floatingActionConfig, openInOffice, onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync, onSelectedTIDChanged, onWFOperationCompleted, onClose, onFileOpened, onTaskCreateRequest, openWGsCopyMoveForm, openEditPdf, openCommentFormCallback, openAddDocumentForm, openS4TViewer = false, onOpenS4TViewerRequest, showTodoDcmtForm = false }) => {
58
+ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisible = true, allowRelations = true, openDcmtFormAsModal = false, searchResults = [], showSearchResultSidebar = true, showSelector = false, groupId, title, isClosable = false, allowFloatingBar = true, showToolbarHeader = true, selectedSearchResultTID, workingGroupContext = undefined, disableAccordionIfSingleCategory = false, floatingActionConfig, openInOffice, onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync, onSelectedTIDChanged, onWFOperationCompleted, onClose, onFileOpened, onTaskCreateRequest, openWGsCopyMoveForm, openEditPdf, openCommentFormCallback, openAddDocumentForm, openS4TViewer = false, onOpenS4TViewerRequest, passToArchiveCallback, showTodoDcmtForm = false }) => {
59
59
  const [id, setID] = useState('');
60
60
  const [showApprovePopup, setShowApprovePopup] = useState(false);
61
61
  const [showRejectPopup, setShowRejectPopup] = useState(false);
@@ -241,7 +241,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
241
241
  return;
242
242
  if (e.target === 'content') {
243
243
  e.items = e.items || [];
244
- const menuItems = getCommandsMenuItems(isMobile, fromDTD, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm);
244
+ const menuItems = getCommandsMenuItems(isMobile, fromDTD, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm, passToArchiveCallback);
245
245
  e.items.push(...menuItems);
246
246
  }
247
247
  };
@@ -368,7 +368,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
368
368
  }
369
369
  };
370
370
  const searchResutlToolbar = _jsxs(_Fragment, { children: [(dcmtsReturned != dcmtsFound) && _jsx("p", { style: { backgroundColor: `white`, color: TMColors.primaryColor, textAlign: 'center', padding: '1px 4px', borderRadius: '3px', display: 'flex' }, children: `${dcmtsReturned}/${dcmtsFound} restituiti` }), context === SearchResultContext.FAVORITES_AND_RECENTS &&
371
- _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '5px' }, children: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconDelete, { color: 'white' }), caption: "Rimuovi da " + (selectedSearchResult?.category === "Favorites" ? '"Preferiti"' : '"Recenti"'), disabled: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length <= 0, onClick: removeDcmtFromFavsOrRecents }) }), _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconRefresh, { color: 'white' }), caption: SDKUI_Localizator.Refresh, onClick: onRefreshSearchAsync }), _jsx(IconMenuVertical, { id: `commands-header-${id}`, color: 'white', cursor: 'pointer' }), _jsx(TMCommandsContextMenu, { target: `#commands-header-${id}`, showEvent: "click", menuItems: getCommandsMenuItems(isMobile, fromDTD, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm) })] });
371
+ _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '5px' }, children: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconDelete, { color: 'white' }), caption: "Rimuovi da " + (selectedSearchResult?.category === "Favorites" ? '"Preferiti"' : '"Recenti"'), disabled: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length <= 0, onClick: removeDcmtFromFavsOrRecents }) }), _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconRefresh, { color: 'white' }), caption: SDKUI_Localizator.Refresh, onClick: onRefreshSearchAsync }), _jsx(IconMenuVertical, { id: `commands-header-${id}`, color: 'white', cursor: 'pointer' }), _jsx(TMCommandsContextMenu, { target: `#commands-header-${id}`, showEvent: "click", menuItems: getCommandsMenuItems(isMobile, fromDTD, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm, passToArchiveCallback) })] });
372
372
  const middlePanelToolbar = _jsxs("div", { style: { width: 'max-content', display: 'flex', alignItems: 'center', gap: '10px' }, children: [_jsx(TMSaveFormButtonPrevious, { btnStyle: 'icon', isModified: false, iconColor: TMColors.default_background, formMode: FormModes.ReadOnly, canPrev: canNavigateHandler('prev'), onPrev: () => onNavigateHandler('prev') }), _jsx(TMSaveFormButtonNext, { btnStyle: 'icon', isModified: false, iconColor: TMColors.default_background, formMode: FormModes.ReadOnly, canNext: canNavigateHandler('next'), onNext: () => onNavigateHandler('next') })] });
373
373
  const handleAddItem = (tid, did) => {
374
374
  let newItem = { TID: tid ?? 0, DID: did ?? 0 };
@@ -385,7 +385,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
385
385
  _jsx(TMLayoutItem, { children: _jsx(TMSearchResultSelector, { searchResults: currentSearchResults, disableAccordionIfSingleCategory: disableAccordionIfSingleCategory, selectedTID: selectedSearchResultTID, onSelectionChanged: onSearchResultSelectionChanged }) })
386
386
  :
387
387
  _jsx(_Fragment, {}), _jsxs(TMLayoutItem, { children: [_jsx(TMSearchResultGrid, { showSearch: showSearch, inputFocusedItem: focusedItem, inputSelectedItems: selectedItems, searchResult: searchResults.length > 1 ? selectedSearchResult : searchResults[0], lastUpdateSearchTime: lastUpdateSearchTime, openInOffice: openInOffice, onDblClick: () => openFormHandler(LayoutModes.Update), onContextMenuPreparing: onContextMenuPreparing, onSelectionChanged: (items) => { setSelectedItems(items); }, onVisibleItemChanged: setVisibleItems, onFocusedItemChanged: setFocusedItem, onDownloadDcmtsAsync: async (inputDcmts, downloadType, downloadMode, _y, confirmAttachments) => await downloadDcmtsAsync(inputDcmts, downloadType, downloadMode, onFileOpened, confirmAttachments), showExportForm: showExportForm, onCloseExportForm: onCloseExportForm }), allowFloatingBar && showFloatingBar && deviceType !== DeviceType.MOBILE &&
388
- _jsxs(TMFloatingToolbar, { backgroundColor: TMColors.primaryColor, initialLeft: '10px', initialTop: 'calc(100% - 75px)', children: [fromDTD?.perm?.canRetrieveFile === AccessLevels.Yes && _jsx(TMButton, { btnStyle: 'icon', caption: "Download file", disabled: fromDTD?.perm?.canRetrieveFile !== AccessLevels.Yes || !focusedItem?.DID, icon: _jsx(IconDownload, { color: 'white' }), onClick: () => { downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Dcmt, "download"); } }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasDetailRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white' }), caption: SDKUI_Localizator.DcmtsDetail, onClick: () => setIsOpenDetails(true) }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasMasterRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white', transform: 'scale(-1, 1)' }), caption: SDKUI_Localizator.DcmtsMaster, onClick: () => setIsOpenMaster(true) }), _jsx(IconMenuVertical, { id: `commands-floating-${id}`, color: 'white', cursor: 'pointer' }), _jsx(TMCommandsContextMenu, { target: `#commands-floating-${id}`, showEvent: "click", menuItems: getCommandsMenuItems(isMobile, fromDTD, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm) })] })] })] }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), onClose: () => setShowReAssignPopup(false) }), showMoreInfoPopup && _jsx(WorkFlowMoreInfoPopUp, { TID: focusedItem?.TID, DID: focusedItem?.DID, deviceType: deviceType, onCompleted: onWFOperationCompleted, onClose: () => setShowMoreInfoPopup(false) }), isOpenBatchUpdate && _jsx(TMBatchUpdateForm, { isModal: true, titleModal: `${SDKUI_Localizator.BatchUpdate} (${getSelectionDcmtInfo().length} documenti selezionati)`, inputDcmts: getSelectionDcmtInfo(), TID: focusedItem ? focusedItem?.TID : selectedItems[0]?.TID, DID: focusedItem ? focusedItem?.DID : selectedItems[0]?.DID, onBack: () => {
388
+ _jsxs(TMFloatingToolbar, { backgroundColor: TMColors.primaryColor, initialLeft: '10px', initialTop: 'calc(100% - 75px)', children: [fromDTD?.perm?.canRetrieveFile === AccessLevels.Yes && _jsx(TMButton, { btnStyle: 'icon', caption: "Download file", disabled: fromDTD?.perm?.canRetrieveFile !== AccessLevels.Yes || !focusedItem?.DID, icon: _jsx(IconDownload, { color: 'white' }), onClick: () => { downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Dcmt, "download"); } }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasDetailRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white' }), caption: SDKUI_Localizator.DcmtsDetail, onClick: () => setIsOpenDetails(true) }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasMasterRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white', transform: 'scale(-1, 1)' }), caption: SDKUI_Localizator.DcmtsMaster, onClick: () => setIsOpenMaster(true) }), _jsx(IconMenuVertical, { id: `commands-floating-${id}`, color: 'white', cursor: 'pointer' }), _jsx(TMCommandsContextMenu, { target: `#commands-floating-${id}`, showEvent: "click", menuItems: getCommandsMenuItems(isMobile, fromDTD, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm, passToArchiveCallback) })] })] })] }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), onClose: () => setShowReAssignPopup(false) }), showMoreInfoPopup && _jsx(WorkFlowMoreInfoPopUp, { TID: focusedItem?.TID, DID: focusedItem?.DID, deviceType: deviceType, onCompleted: onWFOperationCompleted, onClose: () => setShowMoreInfoPopup(false) }), isOpenBatchUpdate && _jsx(TMBatchUpdateForm, { isModal: true, titleModal: `${SDKUI_Localizator.BatchUpdate} (${getSelectionDcmtInfo().length} documenti selezionati)`, inputDcmts: getSelectionDcmtInfo(), TID: focusedItem ? focusedItem?.TID : selectedItems[0]?.TID, DID: focusedItem ? focusedItem?.DID : selectedItems[0]?.DID, onBack: () => {
389
389
  setIsOpenBatchUpdate(false);
390
390
  }, onSavedCallbackAsync: async () => {
391
391
  setIsOpenBatchUpdate(false);
@@ -703,9 +703,9 @@ const TMSearchResultGrid = ({ openInOffice, inputFocusedItem, showSearch, allowM
703
703
  return _jsxs("div", { style: { width: "100%", height: "100%" }, children: [_jsx(TMDataGrid, { id: "tm-search-result", keyExpr: "rowIndex", dataColumns: dataColumns, dataSource: dataSource, repaintChangesOnly: true, selectedRowKeys: selectedRowKeys, focusedRowKey: Number(focusedItem?.rowIndex ?? 0), showSearchPanel: showSearch, showFilterPanel: true, sorting: { mode: "multiple" }, selection: { mode: allowMultipleSelection ? 'multiple' : 'single' }, pageSize: TMDataGridPageSize.Small, onSelectionChanged: handleSelectionChange, onFocusedRowChanged: handleFocusedRowChange, onRowDblClick: onRowDblClick, onContentReady: onContentReady, onContextMenuPreparing: onContextMenuPreparing, onKeyDown: onKeyDown, counterConfig: { show: true } }), (showExportForm && searchResult && onCloseExportForm) && _jsx(TMDataGridExportForm, { dataColumns: dataColumns, dataSource: dataSource, selectedRowKeys: selectedRowKeys, onCloseExportForm: onCloseExportForm, searchResult: searchResult })] });
704
704
  };
705
705
  //#region TMSearchResultSelector
706
- const StyledItemTemplate = styled.div `
707
- background: ${(props) => props.$isSelected ? 'oklch(from var(--dx-color-primary) l c h / .2) !important' : 'transparent'};
708
- cursor: pointer;
706
+ const StyledItemTemplate = styled.div `
707
+ background: ${(props) => props.$isSelected ? 'oklch(from var(--dx-color-primary) l c h / .2) !important' : 'transparent'};
708
+ cursor: pointer;
709
709
  `;
710
710
  const MemoizedStyledItemTemplate = React.memo(StyledItemTemplate);
711
711
  const TMSearchResultSelector = ({ searchResults = [], disableAccordionIfSingleCategory = false, selectedTID, onSelectionChanged }) => {
@@ -4,4 +4,4 @@ import { TMDataGridContextMenuItem } from '../../base/TMDataGrid';
4
4
  import { DcmtInfo, DcmtOperationTypes, DownloadModes, DownloadTypes, SearchResultContext } from '../../../ts';
5
5
  export declare const getSelectedDcmtsOrFocused: (selectedItems: Array<any>, focusedItem: any, fileFormat?: FileFormats) => DcmtInfo[];
6
6
  export declare const signatureInformationCallback: (isMobile: boolean, inputDcmts: DcmtInfo[] | undefined) => Promise<void>;
7
- export declare const getCommandsMenuItems: (isMobile: boolean, dtd: DcmtTypeDescriptor | undefined, selectedItems: Array<any>, focusedItem: any, context: SearchResultContext, showFloatingBar: boolean, workingGroupContext: WorkingGroupDescriptor | undefined, showSearch: boolean, setShowFloatingBar: React.Dispatch<React.SetStateAction<boolean>>, openFormHandler: (layoutMode: LayoutModes) => void, downloadDcmtsAsync: (inputDcmts: DcmtInfo[] | undefined, downloadType: DownloadTypes, downloadMode: DownloadModes, onFileDownloaded?: (dcmtFile: File | undefined) => void, confirmAttachments?: (list: FileDescriptor[]) => Promise<string[] | undefined>) => Promise<void>, runOperationAsync: (inputDcmts: DcmtInfo[] | undefined, dcmtOperationType: DcmtOperationTypes, actionAfterOperationAsync?: () => Promise<void>) => Promise<void>, onRefreshSearchAsync: (() => Promise<void>) | undefined, onRefreshDataRowsAsync: (() => Promise<void>) | undefined, onRefreshAfterAddDcmtToFavs: (() => void) | undefined, confirmFormat: () => Promise<FileFormats>, confirmAttachments: (list: FileDescriptor[]) => Promise<string[] | undefined>, openTaskFormHandler: () => void, openDetailDcmtsFormHandler: (value: boolean) => void, openMasterDcmtsFormHandler: (value: boolean) => void, openBatchUpdateFormHandler: (value: boolean) => void, openExportForm: () => void, handleToggleSearch: () => void, handleSignApprove: () => void, openWGsCopyMoveForm?: ((mode: "copyToWgDraft" | "copyToWgArchivedDoc", dcmtTypeDescriptor: DcmtTypeDescriptor, documents: Array<DcmtInfo>) => void), openCommentFormCallback?: ((documents: Array<DcmtInfo>) => void), openEditPdf?: ((documents: Array<DcmtInfo>) => void), openAddDocumentForm?: () => void) => Array<TMDataGridContextMenuItem>;
7
+ export declare const getCommandsMenuItems: (isMobile: boolean, dtd: DcmtTypeDescriptor | undefined, selectedItems: Array<any>, focusedItem: any, context: SearchResultContext, showFloatingBar: boolean, workingGroupContext: WorkingGroupDescriptor | undefined, showSearch: boolean, setShowFloatingBar: React.Dispatch<React.SetStateAction<boolean>>, openFormHandler: (layoutMode: LayoutModes) => void, downloadDcmtsAsync: (inputDcmts: DcmtInfo[] | undefined, downloadType: DownloadTypes, downloadMode: DownloadModes, onFileDownloaded?: (dcmtFile: File | undefined) => void, confirmAttachments?: (list: FileDescriptor[]) => Promise<string[] | undefined>) => Promise<void>, runOperationAsync: (inputDcmts: DcmtInfo[] | undefined, dcmtOperationType: DcmtOperationTypes, actionAfterOperationAsync?: () => Promise<void>) => Promise<void>, onRefreshSearchAsync: (() => Promise<void>) | undefined, onRefreshDataRowsAsync: (() => Promise<void>) | undefined, onRefreshAfterAddDcmtToFavs: (() => void) | undefined, confirmFormat: () => Promise<FileFormats>, confirmAttachments: (list: FileDescriptor[]) => Promise<string[] | undefined>, openTaskFormHandler: () => void, openDetailDcmtsFormHandler: (value: boolean) => void, openMasterDcmtsFormHandler: (value: boolean) => void, openBatchUpdateFormHandler: (value: boolean) => void, openExportForm: () => void, handleToggleSearch: () => void, handleSignApprove: () => void, openWGsCopyMoveForm?: ((mode: "copyToWgDraft" | "copyToWgArchivedDoc", dcmtTypeDescriptor: DcmtTypeDescriptor, documents: Array<DcmtInfo>) => void), openCommentFormCallback?: ((documents: Array<DcmtInfo>) => void), openEditPdf?: ((documents: Array<DcmtInfo>) => void), openAddDocumentForm?: () => void, passToArchiveCallback?: () => void) => Array<TMDataGridContextMenuItem>;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { AccessLevels, AccessLevelsEx, AppModules, FileFormats, LayoutModes, SDK_Globals } from '@topconsultnpm/sdk-ts-beta';
3
- import { IconActivity, IconArchiveDoc, IconBatchUpdate, IconCheckFile, IconCheckIn, IconCircleInfo, IconCloseCircle, IconConvertFilePdf, IconDelete, IconDotsVerticalCircleOutline, IconDownload, IconEdit, IconExportTo, IconFileDots, IconHide, IconInfo, IconPlatform, IconPreview, IconRelation, IconSearch, IconShow, IconSignature, IconStar, IconSubstFile, IconUndo, IconUserGroupOutline, SDKUI_Localizator, svgToString } from '../../../helper';
3
+ import { IconActivity, IconArchiveDoc, IconBatchUpdate, IconCheckFile, IconCheckIn, IconCircleInfo, IconCloseCircle, IconConvertFilePdf, IconDelete, IconDotsVerticalCircleOutline, IconDownload, IconEdit, IconExportTo, IconFileDots, IconHide, IconInfo, IconMenuCAArchive, IconPlatform, IconPreview, IconRelation, IconSearch, IconShow, IconSignature, IconStar, IconSubstFile, IconUndo, IconUserGroupOutline, SDKUI_Localizator, svgToString } from '../../../helper';
4
4
  import ShowAlert from '../../base/TMAlert';
5
5
  import { TMMessageBoxManager, ButtonNames, TMExceptionBoxManager } from '../../base/TMPopUp';
6
6
  import TMSpinner from '../../base/TMSpinner';
@@ -75,7 +75,7 @@ export const signatureInformationCallback = async (isMobile, inputDcmts) => {
75
75
  TMExceptionBoxManager.show({ exception: error });
76
76
  }
77
77
  };
78
- export const getCommandsMenuItems = (isMobile, dtd, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, onRefreshDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, confirmAttachments, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm) => {
78
+ export const getCommandsMenuItems = (isMobile, dtd, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, onRefreshDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, confirmAttachments, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm, passToArchiveCallback) => {
79
79
  const addToFavoriteMenuItem = () => {
80
80
  return {
81
81
  icon: svgToString(_jsx(IconStar, {})),
@@ -208,6 +208,15 @@ export const getCommandsMenuItems = (isMobile, dtd, selectedItems, focusedItem,
208
208
  onClick: () => openBatchUpdateFormHandler?.(true)
209
209
  };
210
210
  };
211
+ const passToArchive = () => {
212
+ return {
213
+ icon: svgToString(_jsx(IconMenuCAArchive, { fontSize: 24 })),
214
+ text: SDKUI_Localizator.PassToArchive,
215
+ operationType: 'singleRow',
216
+ disabled: disabledForSingleRow(selectedItems, focusedItem),
217
+ onClick: async () => { passToArchiveCallback && passToArchiveCallback(); }
218
+ };
219
+ };
211
220
  const pdfEditorMenuItem = (openEditPdfCallback) => {
212
221
  return {
213
222
  icon: svgToString(_jsx(IconEdit, {})),
@@ -572,6 +581,7 @@ export const getCommandsMenuItems = (isMobile, dtd, selectedItems, focusedItem,
572
581
  downloadXMLAttachmentsMenuItem(),
573
582
  duplicateDocumentMenuItem(),
574
583
  batchUpdateMenuItem(),
584
+ passToArchive(),
575
585
  ...((openEditPdf && getSelectedDcmtsOrFocused(selectedItems, focusedItem)?.[0]?.FILEEXT?.toLowerCase() === "pdf") ? [pdfEditorMenuItem(openEditPdf)] : []),
576
586
  ]
577
587
  },
@@ -201,70 +201,70 @@ const TMTreeSelector = ({ layoutMode = LayoutModes.Update, isVisible, onSelected
201
201
  : _jsx("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%', fontSize: '1.5rem' }, children: SDKUI_Localizator.TreesNoAvailable }) }));
202
202
  };
203
203
  export default TMTreeSelector;
204
- const StyledTreeListWrapper = styled.div `
205
- width: 100%;
206
- height: 100%;
207
- min-height: 0;
208
- flex: 1;
209
- display: flex;
210
- flex-direction: column;
211
-
212
- .dx-treelist,
213
- .dx-treelist-rowsview,
214
- .dx-scrollable,
215
- .dx-scrollable-wrapper,
216
- .dx-scrollable-container,
217
- .dx-scrollable-content {
218
- height: 100% !important;
219
- min-height: 0 !important;
220
- max-height: 100% !important;
221
- box-sizing: border-box;
222
- }
223
-
224
- .dx-scrollable-scrollbar.dx-scrollbar-vertical {
225
- /* Mostra solo quando serve */
226
- opacity: 1 !important;
227
- }
228
-
229
- .dx-scrollable-scrollbar.dx-scrollbar-horizontal {
230
- display: none !important;
231
- }
232
-
233
- .dx-treelist-container>.dx-treelist-headers,
234
- .dx-treelist-container>.dx-treelist-rowsview {
235
- background-color: transparent;
236
- }
237
-
238
- .dx-treelist-rowsview .dx-treelist-empty-space {
239
- position: relative;
240
- top: 4px;
241
- display: inline-block;
242
- width: 16px;
243
- }
244
-
245
- .dx-row > td {
246
- padding: 10px 4px;
247
- font-size: 1rem;
248
- white-space: nowrap;
249
- overflow: hidden;
250
- text-overflow: ellipsis;
251
- }
252
-
253
- .dx-selection td {
254
- background: oklch(from var(--dx-color-primary) l c h / .2) !important;
255
- }
256
-
257
- .dx-data-row:hover {
258
- cursor: pointer;
259
- background: linear-gradient(
260
- 270deg,
261
- rgba(70, 181, 162, 0.15) 16%,
262
- rgba(59, 170, 188, 0.15) 34%,
263
- rgba(59, 170, 188, 0.15) 34%,
264
- rgba(54, 129, 173, 0.15) 54%,
265
- rgba(51, 104, 165, 0.15) 72%,
266
- rgba(47, 84, 157, 0.15) 88%,
267
- rgba(48, 79, 153, 0.15) 100%
268
- );
269
- }
204
+ const StyledTreeListWrapper = styled.div `
205
+ width: 100%;
206
+ height: 100%;
207
+ min-height: 0;
208
+ flex: 1;
209
+ display: flex;
210
+ flex-direction: column;
211
+
212
+ .dx-treelist,
213
+ .dx-treelist-rowsview,
214
+ .dx-scrollable,
215
+ .dx-scrollable-wrapper,
216
+ .dx-scrollable-container,
217
+ .dx-scrollable-content {
218
+ height: 100% !important;
219
+ min-height: 0 !important;
220
+ max-height: 100% !important;
221
+ box-sizing: border-box;
222
+ }
223
+
224
+ .dx-scrollable-scrollbar.dx-scrollbar-vertical {
225
+ /* Mostra solo quando serve */
226
+ opacity: 1 !important;
227
+ }
228
+
229
+ .dx-scrollable-scrollbar.dx-scrollbar-horizontal {
230
+ display: none !important;
231
+ }
232
+
233
+ .dx-treelist-container>.dx-treelist-headers,
234
+ .dx-treelist-container>.dx-treelist-rowsview {
235
+ background-color: transparent;
236
+ }
237
+
238
+ .dx-treelist-rowsview .dx-treelist-empty-space {
239
+ position: relative;
240
+ top: 4px;
241
+ display: inline-block;
242
+ width: 16px;
243
+ }
244
+
245
+ .dx-row > td {
246
+ padding: 10px 4px;
247
+ font-size: 1rem;
248
+ white-space: nowrap;
249
+ overflow: hidden;
250
+ text-overflow: ellipsis;
251
+ }
252
+
253
+ .dx-selection td {
254
+ background: oklch(from var(--dx-color-primary) l c h / .2) !important;
255
+ }
256
+
257
+ .dx-data-row:hover {
258
+ cursor: pointer;
259
+ background: linear-gradient(
260
+ 270deg,
261
+ rgba(70, 181, 162, 0.15) 16%,
262
+ rgba(59, 170, 188, 0.15) 34%,
263
+ rgba(59, 170, 188, 0.15) 34%,
264
+ rgba(54, 129, 173, 0.15) 54%,
265
+ rgba(51, 104, 165, 0.15) 72%,
266
+ rgba(47, 84, 157, 0.15) 88%,
267
+ rgba(48, 79, 153, 0.15) 100%
268
+ );
269
+ }
270
270
  `;
@@ -419,15 +419,15 @@ const TMWGsCopyMoveForm = (props) => {
419
419
  }, children: SDKUI_Localizator.Cancel })] })] }) });
420
420
  };
421
421
  export default TMWGsCopyMoveForm;
422
- const StepSpan = styled.span `
423
- color: ${({ $isCurrent, $isPast }) => ($isCurrent ? TMColors.primary : $isPast ? '#555' : '#888')};
424
- font-weight: ${({ $isCurrent }) => ($isCurrent ? 600 : 400)};
425
- cursor: ${({ $isPast }) => ($isPast ? 'pointer' : 'default')};
426
- transition: color 0.3s ease;
427
- &:hover {
428
- color: ${({ $isPast }) => ($isPast ? '#007bff' : undefined)};
429
- text-decoration: ${({ $isPast }) => ($isPast ? 'underline' : 'none')};
430
- }
422
+ const StepSpan = styled.span `
423
+ color: ${({ $isCurrent, $isPast }) => ($isCurrent ? TMColors.primary : $isPast ? '#555' : '#888')};
424
+ font-weight: ${({ $isCurrent }) => ($isCurrent ? 600 : 400)};
425
+ cursor: ${({ $isPast }) => ($isPast ? 'pointer' : 'default')};
426
+ transition: color 0.3s ease;
427
+ &:hover {
428
+ color: ${({ $isPast }) => ($isPast ? '#007bff' : undefined)};
429
+ text-decoration: ${({ $isPast }) => ($isPast ? 'underline' : 'none')};
430
+ }
431
431
  `;
432
432
  export const TMStepNavigator = (props) => {
433
433
  const { steps, currentStep, onStepChange } = props;
@@ -15,55 +15,55 @@ import TMTextArea from "../../editors/TMTextArea";
15
15
  import TMDropDown from "../../editors/TMDropDown";
16
16
  import TMDateBox from "../../editors/TMDateBox";
17
17
  import ShowAlert from "../../base/TMAlert";
18
- const StyledWorkFlowOperationButtonsContainer = styled.div `
19
- display: flex;
20
- align-items: center;
21
- gap: 10px;
22
- flex-direction: column;
18
+ const StyledWorkFlowOperationButtonsContainer = styled.div `
19
+ display: flex;
20
+ align-items: center;
21
+ gap: 10px;
22
+ flex-direction: column;
23
23
  `;
24
24
  const StyledTextArea = styled.textarea.attrs({
25
25
  maxLength: 200
26
- }) `
27
- width: 100%;
28
- height: 100%;
29
- border: 1px solid ${props => props.$isValid ? '#b4b4b4' : TMColors.error};
30
- border-radius: 10px;
31
- padding: 10px;
32
- &:focus{
33
- outline: none;
34
- border-bottom: 4px solid ${props => props.$isValid ? TMColors.primaryColor : TMColors.error};
35
- }
26
+ }) `
27
+ width: 100%;
28
+ height: 100%;
29
+ border: 1px solid ${props => props.$isValid ? '#b4b4b4' : TMColors.error};
30
+ border-radius: 10px;
31
+ padding: 10px;
32
+ &:focus{
33
+ outline: none;
34
+ border-bottom: 4px solid ${props => props.$isValid ? TMColors.primaryColor : TMColors.error};
35
+ }
36
36
  `;
37
- const CharacterCounter = styled.div `
38
- text-align: right;
39
- font-size: 0.8rem;
40
- color: #6c757d;
41
- margin-top: 2px;
37
+ const CharacterCounter = styled.div `
38
+ text-align: right;
39
+ font-size: 0.8rem;
40
+ color: #6c757d;
41
+ margin-top: 2px;
42
42
  `;
43
- const StyledModalBodyWrapper = styled.div `
44
- display: flex;
45
- flex-direction: column;
46
- height: 100%;
43
+ const StyledModalBodyWrapper = styled.div `
44
+ display: flex;
45
+ flex-direction: column;
46
+ height: 100%;
47
47
  `;
48
- const StyledModalFooter = styled.div `
49
- padding: 16px 0 12px 0;
50
- height: 60px;
51
- display: flex;
52
- justify-content: center;
48
+ const StyledModalFooter = styled.div `
49
+ padding: 16px 0 12px 0;
50
+ height: 60px;
51
+ display: flex;
52
+ justify-content: center;
53
53
  `;
54
- const StyledModalContentContainer = styled.div `
55
- width: 100%;
56
- padding: 10px;
57
- flex: 1; /* Questo fa sì che prenda tutto lo spazio verticale disponibile */
58
- overflow-y: auto;
59
- display: flex;
60
- flex-direction: column;
61
- gap: 5px;
54
+ const StyledModalContentContainer = styled.div `
55
+ width: 100%;
56
+ padding: 10px;
57
+ flex: 1; /* Questo fa sì che prenda tutto lo spazio verticale disponibile */
58
+ overflow-y: auto;
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: 5px;
62
62
  `;
63
- const StyledHorizontalContainer = styled.div `
64
- display: flex;
65
- gap: 10px;
66
- /* align-items: flex-end; */
63
+ const StyledHorizontalContainer = styled.div `
64
+ display: flex;
65
+ gap: 10px;
66
+ /* align-items: flex-end; */
67
67
  `;
68
68
  export const WorkFlowOperationButtons = ({ deviceType = DeviceType.DESKTOP, approveDisable = false, signApproveDisable = false, reassignDisable = false, rejectDisable = false, infoDisable = false, onApprove, onSignApprove, onReAssign, onReject, onMoreInfo }) => {
69
69
  const isMobile = deviceType === DeviceType.MOBILE;
@@ -3,39 +3,39 @@ import React, { useCallback } from 'react';
3
3
  import { ArrowSymbol } from './interfaces';
4
4
  import styled, { css } from 'styled-components';
5
5
  import { getConnectionColor } from './workflowHelpers';
6
- const StyledPath = styled.path ` // Aggiungi $isTemporary
7
- fill: none;
8
- stroke: ${props => getConnectionColor(props.$outputStatus)};
9
- stroke-width: ${props => props.$isSelected ? 3 : 1};
10
- cursor: pointer;
11
- transition: stroke-width 0.1s ease-in-out;
12
- pointer-events: stroke;
13
-
14
- ${props => props.$isTemporary && css `
15
- stroke: #888;
16
- stroke-dasharray: 5 5;
17
- opacity: 0.5;
18
- `}
6
+ const StyledPath = styled.path ` // Aggiungi $isTemporary
7
+ fill: none;
8
+ stroke: ${props => getConnectionColor(props.$outputStatus)};
9
+ stroke-width: ${props => props.$isSelected ? 3 : 1};
10
+ cursor: pointer;
11
+ transition: stroke-width 0.1s ease-in-out;
12
+ pointer-events: stroke;
13
+
14
+ ${props => props.$isTemporary && css `
15
+ stroke: #888;
16
+ stroke-dasharray: 5 5;
17
+ opacity: 0.5;
18
+ `}
19
19
  `;
20
20
  // Path invisibile e più spesso per migliorare l'area di click
21
- const StyledPathHitArea = styled.path `
22
- fill: none;
23
- stroke: transparent;
24
- stroke-width: 10;
25
- cursor: pointer;
26
- pointer-events: stroke;
21
+ const StyledPathHitArea = styled.path `
22
+ fill: none;
23
+ stroke: transparent;
24
+ stroke-width: 10;
25
+ cursor: pointer;
26
+ pointer-events: stroke;
27
27
  `;
28
- const StyledArrow = styled.path `
29
- fill: ${props => props.$color};
30
- stroke: ${props => props.$color};
31
- stroke-width: 1;
32
- pointer-events: none;
28
+ const StyledArrow = styled.path `
29
+ fill: ${props => props.$color};
30
+ stroke: ${props => props.$color};
31
+ stroke-width: 1;
32
+ pointer-events: none;
33
33
  `;
34
- const StyledSquareConnector = styled.rect `
35
- fill: #007bff;
36
- stroke: #007bff;
37
- stroke-width: 1;
38
- pointer-events: all;
34
+ const StyledSquareConnector = styled.rect `
35
+ fill: #007bff;
36
+ stroke: #007bff;
37
+ stroke-width: 1;
38
+ pointer-events: all;
39
39
  `;
40
40
  const ConnectionComponent = ({ connection, isSelected, sourcePoint, sinkPoint, isTemporary, onClick, onDoubleClick, onConnectionEndpointMouseDown }) => {
41
41
  const connectionColor = getConnectionColor(connection.OutputStatus);
@@ -7,17 +7,17 @@ import TMModal from '../../../base/TMModal';
7
7
  import { TMColors } from '../../../../utils/theme';
8
8
  import { CultureIDs, WorkItemStatus } from '@topconsultnpm/sdk-ts-beta';
9
9
  import TMLocalizedTextBox from '../../../editors/TMLocalizedTextBox';
10
- const FormContainer = styled.div `
11
- display: flex;
12
- flex-direction: column;
13
- gap: 5px;
14
- padding: 10px;
10
+ const FormContainer = styled.div `
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 5px;
14
+ padding: 10px;
15
15
  `;
16
- const ModalFooter = styled.div `
17
- display: flex;
18
- justify-content: flex-end;
19
- gap: 10px;
20
- margin-top: 20px;
16
+ const ModalFooter = styled.div `
17
+ display: flex;
18
+ justify-content: flex-end;
19
+ gap: 10px;
20
+ margin-top: 20px;
21
21
  `;
22
22
  const WORKITEMSTATUS_DATASOURCE = [
23
23
  { value: WorkItemStatus.New, display: SDKUI_Localizator.WorkItemStatus_New },