@topconsultnpm/sdkui-react 6.20.0-dev1.11 → 6.20.0-dev1.111

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 (177) hide show
  1. package/lib/assets/Toppy-help-center.png +0 -0
  2. package/lib/assets/headergradient.svg +87 -0
  3. package/lib/components/NewComponents/ContextMenu/TMContextMenu.js +285 -28
  4. package/lib/components/NewComponents/ContextMenu/hooks.d.ts +8 -1
  5. package/lib/components/NewComponents/ContextMenu/hooks.js +80 -8
  6. package/lib/components/NewComponents/ContextMenu/index.d.ts +3 -0
  7. package/lib/components/NewComponents/ContextMenu/index.js +2 -0
  8. package/lib/components/NewComponents/ContextMenu/styles.d.ts +9 -1
  9. package/lib/components/NewComponents/ContextMenu/styles.js +157 -37
  10. package/lib/components/NewComponents/ContextMenu/types.d.ts +14 -1
  11. package/lib/components/NewComponents/ContextMenu/useLongPress.d.ts +21 -0
  12. package/lib/components/NewComponents/ContextMenu/useLongPress.js +112 -0
  13. package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +563 -112
  14. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +21 -5
  15. package/lib/components/NewComponents/FloatingMenuBar/styles.js +210 -58
  16. package/lib/components/NewComponents/FloatingMenuBar/types.d.ts +8 -2
  17. package/lib/components/base/TMAccordionNew.js +35 -14
  18. package/lib/components/base/TMCustomButton.js +61 -17
  19. package/lib/components/base/TMDataGrid.d.ts +7 -4
  20. package/lib/components/base/TMDataGrid.js +153 -11
  21. package/lib/components/base/TMDropDownMenu.js +19 -18
  22. package/lib/components/base/TMFileManager.d.ts +4 -3
  23. package/lib/components/base/TMFileManager.js +32 -24
  24. package/lib/components/base/TMFileManagerDataGridView.d.ts +3 -2
  25. package/lib/components/base/TMFileManagerDataGridView.js +1 -11
  26. package/lib/components/base/TMFileManagerThumbnailItems.d.ts +7 -1
  27. package/lib/components/base/TMFileManagerThumbnailItems.js +5 -2
  28. package/lib/components/base/TMFileManagerThumbnailsView.d.ts +17 -4
  29. package/lib/components/base/TMFileManagerThumbnailsView.js +18 -6
  30. package/lib/components/base/TMFileManagerUtils.d.ts +0 -12
  31. package/lib/components/base/TMListView.js +33 -15
  32. package/lib/components/base/TMPanel.d.ts +1 -1
  33. package/lib/components/base/TMPanel.js +1 -1
  34. package/lib/components/base/TMTreeView.d.ts +2 -1
  35. package/lib/components/base/TMTreeView.js +33 -26
  36. package/lib/components/choosers/TMDistinctValues.js +2 -2
  37. package/lib/components/choosers/TMInvoiceRetrieveFormats.js +1 -1
  38. package/lib/components/choosers/TMMetadataChooser.js +8 -1
  39. package/lib/components/choosers/TMOrderRetrieveFormats.js +1 -1
  40. package/lib/components/choosers/TMUserChooser.d.ts +0 -5
  41. package/lib/components/choosers/TMUserChooser.js +25 -45
  42. package/lib/components/editors/TMDateBox.js +18 -9
  43. package/lib/components/editors/TMLocalizedTextBox.d.ts +3 -1
  44. package/lib/components/editors/TMLocalizedTextBox.js +16 -14
  45. package/lib/components/editors/TMMetadataTextBox.d.ts +9 -0
  46. package/lib/components/editors/TMMetadataTextBox.js +92 -0
  47. package/lib/components/editors/TMMetadataValues.js +23 -5
  48. package/lib/components/editors/TMTextArea.js +18 -30
  49. package/lib/components/editors/TMTextBox.d.ts +1 -1
  50. package/lib/components/editors/TMTextBox.js +6 -3
  51. package/lib/components/editors/TMTextExpression.js +6 -91
  52. package/lib/components/features/archive/TMArchive.js +2 -2
  53. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +15 -0
  54. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.js +460 -0
  55. package/lib/components/features/assistant/TMToppySpeechBubble.d.ts +11 -0
  56. package/lib/components/features/assistant/TMToppySpeechBubble.js +126 -0
  57. package/lib/components/features/documents/TMDcmtForm.d.ts +14 -2
  58. package/lib/components/features/documents/TMDcmtForm.js +457 -206
  59. package/lib/components/features/documents/TMDcmtPreview.js +44 -110
  60. package/lib/components/features/documents/TMDcmtTasks.js +9 -9
  61. package/lib/components/features/documents/TMMasterDetailDcmts.js +38 -53
  62. package/lib/components/features/documents/TMRelationViewer.d.ts +1 -1
  63. package/lib/components/features/documents/TMRelationViewer.js +2 -2
  64. package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +8 -0
  65. package/lib/components/features/search/{TMSearchResultCheckoutInfoForm.js → TMDcmtCheckoutInfoForm.js} +2 -2
  66. package/lib/components/features/search/TMSavedQuerySelector.js +72 -67
  67. package/lib/components/features/search/TMSearch.d.ts +3 -0
  68. package/lib/components/features/search/TMSearch.js +50 -11
  69. package/lib/components/features/search/TMSearchQueryPanel.d.ts +1 -0
  70. package/lib/components/features/search/TMSearchQueryPanel.js +29 -21
  71. package/lib/components/features/search/TMSearchResult.d.ts +3 -0
  72. package/lib/components/features/search/TMSearchResult.js +208 -250
  73. package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +3 -3
  74. package/lib/components/features/search/TMSearchResultsMenuItems.js +205 -169
  75. package/lib/components/features/search/TMSignSettingsForm.js +1 -1
  76. package/lib/components/features/search/TMSignatureInfoContent.d.ts +6 -0
  77. package/lib/components/features/search/TMSignatureInfoContent.js +140 -0
  78. package/lib/components/features/search/TMViewHistoryDcmt.js +2 -2
  79. package/lib/components/features/tasks/TMTaskForm.js +20 -1
  80. package/lib/components/features/tasks/TMTasksAgenda.d.ts +3 -1
  81. package/lib/components/features/tasks/TMTasksAgenda.js +48 -9
  82. package/lib/components/features/tasks/TMTasksCalendar.d.ts +2 -0
  83. package/lib/components/features/tasks/TMTasksCalendar.js +19 -7
  84. package/lib/components/features/tasks/TMTasksUtils.d.ts +2 -2
  85. package/lib/components/features/tasks/TMTasksUtils.js +43 -36
  86. package/lib/components/features/tasks/TMTasksView.js +28 -19
  87. package/lib/components/features/workflow/TMWorkflowPopup.d.ts +33 -2
  88. package/lib/components/features/workflow/TMWorkflowPopup.js +139 -34
  89. package/lib/components/features/workflow/diagram/DiagramItemComponent.d.ts +2 -0
  90. package/lib/components/features/workflow/diagram/DiagramItemComponent.js +12 -7
  91. package/lib/components/features/workflow/diagram/DiagramItemForm.js +1 -1
  92. package/lib/components/features/workflow/diagram/RecipientList.js +3 -2
  93. package/lib/components/features/workflow/diagram/WFDiagram.d.ts +4 -0
  94. package/lib/components/features/workflow/diagram/WFDiagram.js +164 -13
  95. package/lib/components/forms/Login/LoginValidatorService.d.ts +2 -0
  96. package/lib/components/forms/Login/LoginValidatorService.js +7 -2
  97. package/lib/components/forms/Login/TMLoginForm.js +34 -6
  98. package/lib/components/forms/TMChooserForm.js +1 -1
  99. package/lib/components/grids/TMBlogsPost.js +56 -31
  100. package/lib/components/grids/TMRecentsManager.js +20 -10
  101. package/lib/components/index.d.ts +6 -3
  102. package/lib/components/index.js +6 -3
  103. package/lib/components/query/TMQueryEditor.d.ts +2 -1
  104. package/lib/components/query/TMQueryEditor.js +92 -92
  105. package/lib/components/settings/SettingsAppearance.d.ts +2 -1
  106. package/lib/components/settings/SettingsAppearance.js +99 -30
  107. package/lib/components/sidebar/TMHeader.js +7 -7
  108. package/lib/components/sidebar/TMSidebar.d.ts +0 -1
  109. package/lib/components/sidebar/TMSidebar.js +16 -44
  110. package/lib/components/sidebar/TMSidebarItem.js +34 -17
  111. package/lib/components/viewers/TMDataListItemViewer.d.ts +2 -1
  112. package/lib/components/viewers/TMDataListItemViewer.js +35 -71
  113. package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +8 -0
  114. package/lib/components/viewers/TMDataUserIdItemViewer.js +39 -0
  115. package/lib/css/tm-sdkui.css +1 -1
  116. package/lib/helper/SDKUI_Globals.d.ts +22 -0
  117. package/lib/helper/SDKUI_Globals.js +10 -1
  118. package/lib/helper/SDKUI_Localizator.d.ts +17 -1
  119. package/lib/helper/SDKUI_Localizator.js +167 -1
  120. package/lib/helper/TMCommandsContextMenu.d.ts +4 -2
  121. package/lib/helper/TMCommandsContextMenu.js +15 -4
  122. package/lib/helper/TMIcons.d.ts +4 -0
  123. package/lib/helper/TMIcons.js +13 -3
  124. package/lib/helper/TMPdfViewer.d.ts +8 -0
  125. package/lib/helper/TMPdfViewer.js +373 -0
  126. package/lib/helper/checkinCheckoutManager.d.ts +31 -1
  127. package/lib/helper/checkinCheckoutManager.js +112 -30
  128. package/lib/helper/devextremeCustomMessages.d.ts +30 -0
  129. package/lib/helper/devextremeCustomMessages.js +30 -0
  130. package/lib/helper/helpers.d.ts +28 -1
  131. package/lib/helper/helpers.js +130 -3
  132. package/lib/helper/index.d.ts +2 -0
  133. package/lib/helper/index.js +2 -0
  134. package/lib/helper/queryHelper.d.ts +1 -1
  135. package/lib/helper/queryHelper.js +33 -3
  136. package/lib/helper/workItemsHelper.d.ts +6 -0
  137. package/lib/helper/workItemsHelper.js +230 -0
  138. package/lib/hooks/useCheckInOutOperations.d.ts +28 -0
  139. package/lib/hooks/useCheckInOutOperations.js +223 -0
  140. package/lib/hooks/useDataListItem.d.ts +12 -0
  141. package/lib/hooks/useDataListItem.js +132 -0
  142. package/lib/hooks/useDataUserIdItem.d.ts +10 -0
  143. package/lib/hooks/useDataUserIdItem.js +96 -0
  144. package/lib/hooks/useMetadataExpression.d.ts +19 -0
  145. package/lib/hooks/useMetadataExpression.js +99 -0
  146. package/lib/hooks/useSettingsFeedback.d.ts +11 -0
  147. package/lib/hooks/useSettingsFeedback.js +38 -0
  148. package/lib/hooks/useWorkflowApprove.d.ts +4 -0
  149. package/lib/hooks/useWorkflowApprove.js +14 -1
  150. package/lib/index.d.ts +1 -0
  151. package/lib/index.js +3 -2
  152. package/lib/services/platform_services.d.ts +3 -3
  153. package/lib/ts/types.d.ts +61 -1
  154. package/lib/utils/theme.d.ts +1 -1
  155. package/lib/utils/theme.js +1 -1
  156. package/package.json +7 -4
  157. package/lib/components/NewComponents/Notification/Notification.d.ts +0 -4
  158. package/lib/components/NewComponents/Notification/Notification.js +0 -60
  159. package/lib/components/NewComponents/Notification/NotificationContainer.d.ts +0 -8
  160. package/lib/components/NewComponents/Notification/NotificationContainer.js +0 -33
  161. package/lib/components/NewComponents/Notification/index.d.ts +0 -2
  162. package/lib/components/NewComponents/Notification/index.js +0 -2
  163. package/lib/components/NewComponents/Notification/styles.d.ts +0 -21
  164. package/lib/components/NewComponents/Notification/styles.js +0 -180
  165. package/lib/components/NewComponents/Notification/types.d.ts +0 -18
  166. package/lib/components/NewComponents/Notification/types.js +0 -1
  167. package/lib/components/base/TMContextMenu.d.ts +0 -25
  168. package/lib/components/base/TMContextMenu.js +0 -109
  169. package/lib/components/base/TMContextMenuOLD.d.ts +0 -26
  170. package/lib/components/base/TMContextMenuOLD.js +0 -56
  171. package/lib/components/base/TMFloatingToolbar.d.ts +0 -9
  172. package/lib/components/base/TMFloatingToolbar.js +0 -101
  173. package/lib/components/features/assistant/ToppyDraggableHelpCenter.d.ts +0 -30
  174. package/lib/components/features/assistant/ToppyDraggableHelpCenter.js +0 -482
  175. package/lib/components/features/assistant/ToppySpeechBubble.d.ts +0 -9
  176. package/lib/components/features/assistant/ToppySpeechBubble.js +0 -117
  177. package/lib/components/features/search/TMSearchResultCheckoutInfoForm.d.ts +0 -8
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { useCallback, useEffect, useRef, useState } from "react";
3
- import { DossierEngine, LayoutModes, ResultTypes, SDK_Globals, TaskDescriptor, WorkingGroupEngine } from "@topconsultnpm/sdk-ts";
4
- import { ContextMenu } from "devextreme-react";
5
- import { SDKUI_Localizator, Globalization, getExceptionMessage, TMConditionalWrapper, calcResponsiveSizes } from "../../helper";
3
+ import { DossierEngine, LayoutModes, ObjectClasses, ResultTypes, SDK_Globals, TaskDescriptor, WorkingGroupEngine } from "@topconsultnpm/sdk-ts";
4
+ import { ContextMenu as TMContextMenu } from "../NewComponents/ContextMenu";
5
+ import { SDKUI_Localizator, Globalization, getExceptionMessage, TMConditionalWrapper, calcResponsiveSizes, getMoreInfoTasksForDocument } from "../../helper";
6
6
  import TMToppyMessage from "../../helper/TMToppyMessage";
7
7
  import { useDcmtOperations } from "../../hooks/useDcmtOperations";
8
8
  import { DownloadTypes, FormModes } from "../../ts";
@@ -68,7 +68,8 @@ const TMBlogsPost = (props) => {
68
68
  const [showTaskForm, setShowTaskForm] = useState(false);
69
69
  // State to manage show selected file
70
70
  const [dcmtForm, setDcmtForm] = useState({ show: false, dcmt: undefined });
71
- const [anchorEl, setAnchorEl] = useState(null);
71
+ const [menuVisible, setMenuVisible] = useState(false);
72
+ const [menuPosition, setMenuPosition] = useState({ x: 0, y: 0 });
72
73
  const [menuItems, setMenuItems] = useState([]);
73
74
  const [localShowWaitPanel, setLocalShowWaitPanel] = useState(false);
74
75
  const [localWaitPanelTitle, setLocalWaitPanelTitle] = useState('');
@@ -500,8 +501,8 @@ const TMBlogsPost = (props) => {
500
501
  const classId = targetItem ? targetItem.classID : undefined;
501
502
  if (contextMenuParams.isDownloadAttachmentEnabled && focusedAttachment !== undefined) {
502
503
  menuItems.push({
503
- icon: "download",
504
- text: 'Download',
504
+ icon: _jsx("span", { className: "dx-icon-download" }),
505
+ name: 'Download',
505
506
  onClick: async () => {
506
507
  await downloadDcmtsAsync([
507
508
  { TID: focusedAttachment.TID, DID: focusedAttachment.DID, fileName: focusedAttachment.fileName }
@@ -511,26 +512,26 @@ const TMBlogsPost = (props) => {
511
512
  }
512
513
  if (contextMenuParams.isViewEditMetadata && focusedAttachment !== undefined) {
513
514
  menuItems.push({
514
- icon: 'eyeopen',
515
- text: SDKUI_Localizator.OpenForm,
515
+ icon: _jsx("span", { className: "dx-icon-eyeopen" }),
516
+ name: SDKUI_Localizator.OpenForm,
516
517
  onClick: () => openDcmtForm(focusedAttachment),
517
518
  });
518
519
  }
519
520
  if (contextMenuParams.isCommentEnabled && showCommentFormCallback !== undefined) {
520
521
  menuItems.push({
521
- icon: 'chat',
522
- text: SDKUI_Localizator.Comment,
522
+ icon: _jsx("span", { className: "dx-icon-chat" }),
523
+ name: SDKUI_Localizator.Comment,
523
524
  disabled: isGroupArchived ? true : false,
524
525
  onClick: () => {
525
526
  showCommentFormCallback(focusedAttachment);
526
527
  },
527
- beginGroup: true
528
+ beginGroup: menuItems.length > 0
528
529
  });
529
530
  }
530
531
  if (targetItem && contextMenuParams.isDeleteEnabled) {
531
532
  menuItems.push({
532
- icon: "trash",
533
- text: SDKUI_Localizator.Delete,
533
+ icon: _jsx("span", { className: "dx-icon-trash" }),
534
+ name: SDKUI_Localizator.Delete,
534
535
  visible: contextMenuParams.isDeleteEnabled,
535
536
  onClick: () => deleteOrUndeleteCommentCallback(targetItem, true),
536
537
  disabled: isNotOwner || isDeleted || isGroupArchived,
@@ -538,24 +539,24 @@ const TMBlogsPost = (props) => {
538
539
  }
539
540
  if (targetItem && contextMenuParams.isRestoreEnabled) {
540
541
  menuItems.push({
541
- icon: "undo",
542
- text: SDKUI_Localizator.Restore,
542
+ icon: _jsx("span", { className: "dx-icon-undo" }),
543
+ name: SDKUI_Localizator.Restore,
543
544
  onClick: () => deleteOrUndeleteCommentCallback(targetItem, false),
544
545
  disabled: isNotOwner || (targetItem && (targetItem.isDel === undefined || targetItem.isDel === 0)),
545
546
  });
546
547
  }
547
548
  if (targetItem && contextMenuParams.isCopyToClipboardEnabled) {
548
549
  menuItems.push({
549
- text: SDKUI_Localizator.CopyToClipboard,
550
- icon: 'copy',
550
+ name: SDKUI_Localizator.CopyToClipboard,
551
+ icon: _jsx("span", { className: "dx-icon-copy" }),
551
552
  disabled: false,
552
553
  onClick: () => { copyInClipboard(targetItem); }
553
554
  });
554
555
  }
555
556
  if (contextMenuParams.isCreateContextualTask) {
556
557
  menuItems.push({
557
- text: SDKUI_Localizator.CreateContextualTask,
558
- icon: 'plus',
558
+ name: SDKUI_Localizator.CreateContextualTask,
559
+ icon: _jsx("span", { className: "dx-icon-plus" }),
559
560
  onClick: () => openTaskFormCallback(targetItem),
560
561
  disabled: isGroupArchived ? true : false,
561
562
  beginGroup: true
@@ -563,15 +564,15 @@ const TMBlogsPost = (props) => {
563
564
  }
564
565
  if (targetItem && Boolean(classId && (classId === 'WG' || classId === 'DS'))) {
565
566
  menuItems.push({
566
- icon: "eyeclose",
567
- text: SDKUI_Localizator.Unfollow,
567
+ icon: _jsx("span", { className: "dx-icon-eyeclose" }),
568
+ name: SDKUI_Localizator.Unfollow,
568
569
  onClick: () => (targetItem && classId) && unFollowCallback(targetItem, classId),
569
570
  });
570
571
  }
571
572
  if (contextMenuParams.isShowHideFilterEnabled) {
572
573
  menuItems.push({
573
- icon: isHeaderHidden ? 'eyeopen' : 'eyeclose',
574
- text: isHeaderHidden ? SDKUI_Localizator.ShowFilters : SDKUI_Localizator.HideFilters,
574
+ icon: _jsx("span", { className: isHeaderHidden ? "dx-icon-eyeopen" : "dx-icon-eyeclose" }),
575
+ name: isHeaderHidden ? SDKUI_Localizator.ShowFilters : SDKUI_Localizator.HideFilters,
575
576
  onClick: toggleHeaderClick,
576
577
  disabled: false,
577
578
  beginGroup: true
@@ -579,23 +580,24 @@ const TMBlogsPost = (props) => {
579
580
  }
580
581
  if (contextMenuParams.isShowHideIDEnaled) {
581
582
  menuItems.push({
582
- icon: localShowId ? 'eyeclose' : 'eyeopen',
583
+ icon: _jsx("span", { className: localShowId ? "dx-icon-eyeclose" : "dx-icon-eyeopen" }),
583
584
  onClick: () => setLocalShowId(prevShowId => !prevShowId),
584
- text: localShowId ? SDKUI_Localizator.ID_Hide : SDKUI_Localizator.ID_Show,
585
+ name: localShowId ? SDKUI_Localizator.ID_Hide : SDKUI_Localizator.ID_Show,
585
586
  disabled: false,
586
587
  });
587
588
  }
588
589
  if (contextMenuParams.isRefreshEnabled && refreshCallback !== undefined) {
589
590
  menuItems.push({
590
- icon: "refresh",
591
- text: SDKUI_Localizator.Refresh,
591
+ icon: _jsx("span", { className: "dx-icon-refresh" }),
592
+ name: SDKUI_Localizator.Refresh,
592
593
  onClick: refresh,
593
594
  disabled: false,
594
595
  });
595
596
  }
596
597
  if (menuItems.length > 0) {
597
- setAnchorEl(event.currentTarget);
598
+ setMenuPosition({ x: event.clientX, y: event.clientY });
598
599
  setMenuItems(menuItems);
600
+ setMenuVisible(true);
599
601
  }
600
602
  };
601
603
  const handlePostsToShowChange = (value) => {
@@ -606,12 +608,31 @@ const TMBlogsPost = (props) => {
606
608
  setSearchText(value);
607
609
  };
608
610
  const closeContextMenu = useCallback(() => {
609
- setAnchorEl(null);
611
+ setMenuVisible(false);
610
612
  }, []);
613
+ const handleNavigateToReference = (ref) => {
614
+ switch (ref.objClass) {
615
+ case ObjectClasses.Dossier:
616
+ if (ref.objID)
617
+ handleNavigateToDossiers?.(ref.objID);
618
+ else
619
+ console.log("Dossier reference missing objID");
620
+ break;
621
+ case ObjectClasses.WorkingGroup:
622
+ if (ref.objID)
623
+ handleNavigateToWGs?.(ref.objID);
624
+ else
625
+ console.log("Working Group reference missing objID");
626
+ break;
627
+ // Handle other object types as needed
628
+ default:
629
+ console.warn(`Unhandled object type: ${ref.objClass}`);
630
+ }
631
+ };
611
632
  return _jsx("div", { ref: containerRef, style: { height: height, width: width }, children: _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showWaitPanel, showWaitPanelPrimary: showPrimary, showWaitPanelSecondary: showSecondary, waitPanelTitle: waitPanelTitle, waitPanelTextPrimary: waitPanelTextPrimary, waitPanelValuePrimary: waitPanelValuePrimary, waitPanelMaxValuePrimary: waitPanelMaxValuePrimary, waitPanelTextSecondary: waitPanelTextSecondary, waitPanelValueSecondary: waitPanelValueSecondary, waitPanelMaxValueSecondary: waitPanelMaxValueSecondary, isCancelable: true, abortController: abortController, children: _jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: localShowWaitPanel, showWaitPanelPrimary: localShowPrimary, waitPanelTitle: localWaitPanelTitle, waitPanelTextPrimary: localWaitPanelTextPrimary, waitPanelValuePrimary: localWaitPanelValuePrimary, waitPanelMaxValuePrimary: localWaitPanelMaxValuePrimary, isCancelable: true, abortController: localAbortController, children: [_jsx(TMBlogHeader, { isVisible: currentHeader !== undefined && !isHeaderHidden, layoutMode: layoutMode, height: layoutMode === 'extended' ? "40px" : "70px", width: "100%", allPosts: posts, postsToShow: postsToShow, onPostsToShowChange: handlePostsToShowChange, categoryIdDataSource: categoryIdDataSource, appliedCategoryIdFilters: appliedCategoryIdFilters, setAppliedCategoryIdFilters: setAppliedCategoryIdFilters, searchText: searchText, onSearchChange: handleSearchChange }), _jsxs("div", { style: {
612
633
  width: "100%",
613
634
  height: currentHeader !== undefined && !isHeaderHidden ? `calc(100% - ${layoutMode === 'extended' ? "40px" : "70px"})` : "100%",
614
- }, children: [blogPosts.length === 0 && _jsx(TMToppyMessage, { message: searchText.length > 0 ? SDKUI_Localizator.NoMessagesFound : SDKUI_Localizator.NoMessages }), blogPosts.length > 0 && _jsxs("div", { tabIndex: 0, onKeyDown: handleKeyDown, onContextMenu: onContextMenu, style: {
635
+ }, children: [blogPosts.length === 0 && _jsx(TMToppyMessage, { message: searchText.length > 0 ? SDKUI_Localizator.NoMessagesFound : SDKUI_Localizator.NoMessages }), blogPosts.length > 0 && _jsxs("div", { id: `${id}-blogs-container`, tabIndex: 0, onKeyDown: handleKeyDown, onContextMenu: onContextMenu, style: {
615
636
  height: '100%',
616
637
  width: '100%',
617
638
  outline: "none",
@@ -659,7 +680,11 @@ const TMBlogsPost = (props) => {
659
680
  boxShadow: isFocused ? "0 4px 12px rgba(19, 85, 150, 0.6)" : "none",
660
681
  cursor: 'pointer',
661
682
  }, children: [_jsx(BlogPostTitle, { displayMode: displayMode, layoutMode: layoutMode, blogPost: blogPost, isSelected: isSelected, isOwnComment: isOwnComment, searchText: searchText, isSys: isSys, isHomeBlogPost: isHomeBlogPost, showId: localShowId, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), isNew && _jsx(NewBadge, { layoutMode: layoutMode }), _jsx("div", { style: { fontSize: '1rem', color: "#000", marginTop: "10px", overflow: "hidden" }, children: _jsx(TMHtmlContentDisplay, { markup: blogPost.description ?? '-', searchText: searchText, isSelected: isSelected }) }), showExtendedAttachments && blogPost.attachments && blogPost.attachments.length > 0 && (_jsx(TMBlogAttachments, { attachments: blogPost.attachments, layoutMode: layoutMode, isSelected: isSelected, searchText: searchText, dcmtTypeDescriptors: dcmtTypeDescriptors, treeFs: treeFs, draftLatestInfoMap: draftLatestInfoMap, archivedDocumentMap: archivedDocumentMap, handleAttachmentFocus: handleFocusedAttachment, openDcmtForm: openDcmtForm }))] }, `${id}-blogpost-${blogPost.id}`) })] }, "blog-post-wrapper-" + id + "-" + blogPost.id);
662
- }), _jsx("div", { ref: bottomRef }), anchorEl && _jsx("div", { style: { position: 'fixed', zIndex: 9999 }, children: _jsx(ContextMenu, { dataSource: menuItems, target: anchorEl, onHiding: closeContextMenu }) })] }), (showTaskForm && handleNavigateToWGs && handleNavigateToDossiers && getAllTasks && deleteTaskByIdsCallback && addTaskCallback && editTaskCallback) && _jsx("div", { style: { height: "100%", width: "100%" }, children: _jsx(TMTaskForm, { id: -1, title: SDKUI_Localizator.ContextualTask, isModal: true, width: calcResponsiveSizes(deviceType, '700px', '700px', '95%'), height: calcResponsiveSizes(deviceType, '670px', '80%', '95%'), formMode: FormModes.Create, visualizedTasks: [], currentTask: currentTask, setCurrentTask: () => { }, selectedRowKeys: [], handleFocusedRowKeyChange: () => { }, onStatusChanged: () => { }, onSaved: onSavedTaskFormCallback, onClose: () => closeTaskFormCallback(), onCancel: () => closeTaskFormCallback(), usersList: participants, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, isContextualCreate: true, taskContext: taskContext, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback }) }), (dcmtForm.dcmt && dcmtForm.dcmt.TID && dcmtForm.dcmt.DID) && _jsx(TMDcmtForm, { TID: Number(dcmtForm.dcmt.TID), DID: Number(dcmtForm.dcmt.DID), layoutMode: LayoutModes.Update, onClose: closeDcmtForm, isClosable: true, titleModal: SDKUI_Localizator.Attachment + ": " + dcmtForm.dcmt.fileName, isModal: true, widthModal: "95%", heightModal: "95%", allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), (showFloatingCommentButton && showCommentFormCallback && !(context?.engine === 'WorkingGroupEngine' && context?.object?.customData1 === 1)) && _jsx("button", { style: {
683
+ }), _jsx("div", { ref: bottomRef }), _jsx(TMContextMenu, { items: menuItems, target: `#${id}-blogs-container`, externalControl: {
684
+ visible: menuVisible,
685
+ position: menuPosition,
686
+ onClose: closeContextMenu,
687
+ } })] }), (showTaskForm && handleNavigateToWGs && handleNavigateToDossiers && getAllTasks && deleteTaskByIdsCallback && addTaskCallback && editTaskCallback) && _jsx("div", { style: { height: "100%", width: "100%" }, children: _jsx(TMTaskForm, { id: -1, title: SDKUI_Localizator.ContextualTask, isModal: true, width: calcResponsiveSizes(deviceType, '700px', '700px', '95%'), height: calcResponsiveSizes(deviceType, '670px', '80%', '95%'), formMode: FormModes.Create, visualizedTasks: [], currentTask: currentTask, setCurrentTask: () => { }, selectedRowKeys: [], handleFocusedRowKeyChange: () => { }, onStatusChanged: () => { }, onSaved: onSavedTaskFormCallback, onClose: () => closeTaskFormCallback(), onCancel: () => closeTaskFormCallback(), usersList: participants, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, isContextualCreate: true, taskContext: taskContext, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback }) }), (dcmtForm.dcmt && dcmtForm.dcmt.TID && dcmtForm.dcmt.DID) && _jsx(TMDcmtForm, { TID: Number(dcmtForm.dcmt.TID), DID: Number(dcmtForm.dcmt.DID), layoutMode: LayoutModes.Update, onClose: closeDcmtForm, isClosable: true, titleModal: SDKUI_Localizator.Attachment + ": " + dcmtForm.dcmt.fileName, isModal: true, widthModal: "95%", heightModal: "95%", allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, onReferenceClick: handleNavigateToReference, moreInfoTasks: getMoreInfoTasksForDocument(allTasks, Number(dcmtForm.dcmt.TID), Number(dcmtForm.dcmt.DID)) }), (showFloatingCommentButton && showCommentFormCallback && !(context?.engine === 'WorkingGroupEngine' && context?.object?.customData1 === 1)) && _jsx("button", { style: {
663
688
  position: 'absolute',
664
689
  bottom: '18px',
665
690
  right: '20px',
@@ -1,9 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import styled from 'styled-components';
3
3
  import { useCallback, useEffect, useState } from 'react';
4
- import ReactDOMServer from 'react-dom/server';
5
4
  import { DcmtTypeListCacheService } from '@topconsultnpm/sdk-ts';
6
- import ContextMenu from 'devextreme-react/context-menu';
5
+ import { ContextMenu as TMContextMenu } from '../NewComponents/ContextMenu';
7
6
  import { IconDelete, SDKUI_Localizator, IconApply, IconInfo, IconCloseOutline } from '../../helper';
8
7
  import { TMColors } from '../../utils/theme';
9
8
  import { DeviceType } from '../base/TMDeviceProvider';
@@ -62,11 +61,15 @@ const StyledRecentTidItem = styled.div `
62
61
  margin-bottom: 0;
63
62
  }
64
63
  `;
65
- const iconDelete = () => ReactDOMServer.renderToString(_jsx(IconDelete, {}));
66
64
  const TMRecentsManager = ({ deviceType, mruTIDs, currentMruTID, accessFilter = 'all', onSelectedTID, onDeletedTID }) => {
67
65
  const [showDcmtTypeChooser, setShowDcmtTypeChooser] = useState(false);
68
66
  const [recentDcmtTypes, setRecentDcmtTypes] = useState([]);
69
67
  const [infoDTD, setInfoDTD] = useState();
68
+ const [contextMenuState, setContextMenuState] = useState({
69
+ visible: false,
70
+ position: { x: 0, y: 0 },
71
+ tid: null
72
+ });
70
73
  // Handler for the cache refresh event
71
74
  const handleCacheRefresh = useCallback(async () => {
72
75
  // Retrieve all document types without metadata from the refreshed cache
@@ -114,7 +117,10 @@ const TMRecentsManager = ({ deviceType, mruTIDs, currentMruTID, accessFilter = '
114
117
  textOverflow: 'ellipsis'
115
118
  }, children: `${SDKUI_Localizator.AllDcmtTypes} (${DcmtTypeListCacheService.CacheCount(true, accessFilter)})` }) }) }, 0), recentDcmtTypes.map((dtd) => {
116
119
  const isCurrent = currentMruTID == dtd.id;
117
- return (_jsxs(StyledRecentTidItem, { id: `tid-${dtd.id}`, "$isMobile": isMobile, onClick: () => { onSelectedTID?.(dtd.id ?? 0); }, children: [_jsxs(StyledDivHorizontal, { style: { alignItems: 'center', gap: 8, width: '100%' }, children: [!isMobile && (_jsx("span", { className: "info-icon", style: {
120
+ return (_jsxs(StyledRecentTidItem, { id: `tid-${dtd.id}`, "$isMobile": isMobile, onClick: () => { onSelectedTID?.(dtd.id ?? 0); }, onContextMenu: (e) => {
121
+ e.preventDefault();
122
+ setContextMenuState({ visible: true, position: { x: e.clientX, y: e.clientY }, tid: dtd.id ?? null });
123
+ }, children: [_jsxs(StyledDivHorizontal, { style: { alignItems: 'center', gap: 8, width: '100%' }, children: [!isMobile && (_jsx("span", { className: "info-icon", style: {
118
124
  marginRight: 4,
119
125
  display: 'flex',
120
126
  alignItems: 'center'
@@ -135,20 +141,24 @@ const TMRecentsManager = ({ deviceType, mruTIDs, currentMruTID, accessFilter = '
135
141
  fontWeight: 'bold',
136
142
  marginLeft: 8,
137
143
  visibility: isCurrent ? 'visible' : 'hidden'
138
- }, children: _jsx(IconApply, { fontSize: 24, color: 'green' }) })] }), _jsx(ContextMenu, { dataSource: [
144
+ }, children: _jsx(IconApply, { fontSize: 24, color: 'green' }) })] }), contextMenuState.tid === dtd.id && (_jsx(TMContextMenu, { items: [
139
145
  {
140
- text: SDKUI_Localizator.Remove,
141
- icon: iconDelete(),
146
+ name: SDKUI_Localizator.Remove,
147
+ icon: _jsx(IconDelete, {}),
142
148
  onClick: () => { onDeletedTID?.(dtd.id ?? 0); }
143
149
  },
144
150
  ...(isMobile ? [
145
151
  {
146
- text: SDKUI_Localizator.About,
147
- icon: ReactDOMServer.renderToString(_jsx(IconInfo, { color: TMColors.info })),
152
+ name: SDKUI_Localizator.About,
153
+ icon: _jsx(IconInfo, { color: TMColors.info }),
148
154
  onClick: () => { setInfoDTD(dtd); }
149
155
  }
150
156
  ] : [])
151
- ], target: `#tid-${dtd.id}` })] }, dtd.id));
157
+ ], target: `#tid-${dtd.id}`, externalControl: {
158
+ visible: contextMenuState.visible,
159
+ position: contextMenuState.position,
160
+ onClose: () => setContextMenuState({ visible: false, position: { x: 0, y: 0 }, tid: null })
161
+ } }))] }, dtd.id));
152
162
  })] }), showDcmtTypeChooser &&
153
163
  _jsx(TMDcmtTypeChooserForm, { accessFilter: accessFilter, onClose: () => setShowDcmtTypeChooser(false), onChoose: (tids) => { onSelectedTID?.(tids?.[0] ?? 0); } }), _jsxs(StyledOffCanvasPanel, { ref: panelRef, "$isOpen": isMobile && infoDTD !== undefined, children: [_jsxs(StyledDivHorizontal, { style: { gap: 10, padding: '10px 8px', width: '100%', alignItems: 'center' }, children: [_jsx("p", { style: { fontSize: '1.1rem', fontWeight: 'bold' }, children: `${SDKUI_Localizator.DcmtType} - ${SDKUI_Localizator.About}` }), _jsx(IconCloseOutline, { style: { marginLeft: 'auto', cursor: 'pointer' }, onClick: () => setInfoDTD(undefined) })] }), renderDTDTooltipContent(infoDTD)] })] }));
154
164
  };
@@ -1,7 +1,6 @@
1
1
  export { default as ShowAlert } from './base/TMAlert';
2
2
  export { default as TMButton } from './base/TMButton';
3
3
  export { default as TMClosableList } from './base/TMClosableList';
4
- export * from './base/TMContextMenu';
5
4
  export { default as TMDropDownMenu } from './base/TMDropDownMenu';
6
5
  export * from './base/TMListView';
7
6
  export { default as TMList } from './base/TMList';
@@ -16,6 +15,7 @@ export * from './base/TMTreeView';
16
15
  export * from './base/TMPanel';
17
16
  export * from './base/TMResizableMenu';
18
17
  export * from './base/TMAccordionNew';
18
+ export * from './NewComponents/ContextMenu';
19
19
  export { default as CounterBar } from './base/TMCounterBar';
20
20
  export { default as TMProgressBar } from './base/TMProgressBar';
21
21
  export { default as TMSpinner } from './base/TMSpinner';
@@ -24,13 +24,13 @@ export { default as TMToggleButton } from './base/TMToggleButton';
24
24
  export { default as TMTooltip } from './base/TMTooltip';
25
25
  export { default as TMVilViewer } from './base/TMVilViewer';
26
26
  export { default as TMUserAvatar } from './base/TMUserAvatar';
27
- export { default as TMFloatingToolbar } from './base/TMFloatingToolbar';
28
27
  export { default as TMDropDown } from './editors/TMDropDown';
29
28
  export { default as TMTreeDropDown } from './editors/TMTreeDropDown';
30
29
  export { default as TMSummary } from './editors/TMSummary';
31
30
  export { default as TMTextBox } from './editors/TMTextBox';
32
31
  export { default as TMTextArea } from './editors/TMTextArea';
33
32
  export { default as TMTextExpression } from './editors/TMTextExpression';
33
+ export { default as TMMetadataTextBox } from './editors/TMMetadataTextBox';
34
34
  export { default as TMCheckBox } from './editors/TMCheckBox';
35
35
  export { default as TMRadioButton } from './editors/TMRadioButton';
36
36
  export { default as TMDateBox } from './editors/TMDateBox';
@@ -60,7 +60,7 @@ export { default as TMBlogAttachments } from './grids/TMBlogAttachments';
60
60
  export { default as TMBlogCommentForm } from './features/blog/TMBlogCommentForm';
61
61
  export * from './query/TMQueryEditor';
62
62
  export * from './query/TMQuerySummary';
63
- export { default as ToppyDraggableHelpCenter } from './features/assistant/ToppyDraggableHelpCenter';
63
+ export { default as TMToppyDraggableHelpCenter } from './features/assistant/TMToppyDraggableHelpCenter';
64
64
  export * from './features/documents/TMDcmtForm';
65
65
  export * from './features/documents/TMDcmtIcon';
66
66
  export * from './features/documents/TMDcmtPreview';
@@ -92,6 +92,7 @@ export { default as SettingsAppearance } from "./settings/SettingsAppearance";
92
92
  export * from "./viewers/TMTidViewer";
93
93
  export * from "./viewers/TMMidViewer";
94
94
  export * from "./viewers/TMDataListItemViewer";
95
+ export * from "./viewers/TMDataUserIdItemViewer";
95
96
  export * from "./base/TMDeviceProvider";
96
97
  export { default as TMDataGrid } from "./base/TMDataGrid";
97
98
  export { default as TMFileManager } from "./base/TMFileManager";
@@ -112,5 +113,7 @@ export * from "./features/workflow/diagram/WFDiagram";
112
113
  export * from "./features/workflow/diagram/workflowHelpers";
113
114
  export * from "./features/workflow/diagram/xmlParser";
114
115
  export * from "./features/workflow/diagram/interfaces";
116
+ export * from "./features/workflow/diagram/DiagramItemSvgContent";
117
+ export * from "./features/workflow/TMWorkflowPopup";
115
118
  export { default as TMWizard } from './wizard/TMWizard';
116
119
  export * from './wizard/TMWizard';
@@ -2,7 +2,6 @@
2
2
  export { default as ShowAlert } from './base/TMAlert';
3
3
  export { default as TMButton } from './base/TMButton';
4
4
  export { default as TMClosableList } from './base/TMClosableList';
5
- export * from './base/TMContextMenu';
6
5
  export { default as TMDropDownMenu } from './base/TMDropDownMenu';
7
6
  export * from './base/TMListView';
8
7
  export { default as TMList } from './base/TMList';
@@ -17,6 +16,7 @@ export * from './base/TMTreeView';
17
16
  export * from './base/TMPanel';
18
17
  export * from './base/TMResizableMenu';
19
18
  export * from './base/TMAccordionNew';
19
+ export * from './NewComponents/ContextMenu';
20
20
  export { default as CounterBar } from './base/TMCounterBar';
21
21
  export { default as TMProgressBar } from './base/TMProgressBar';
22
22
  export { default as TMSpinner } from './base/TMSpinner';
@@ -25,7 +25,6 @@ export { default as TMToggleButton } from './base/TMToggleButton';
25
25
  export { default as TMTooltip } from './base/TMTooltip';
26
26
  export { default as TMVilViewer } from './base/TMVilViewer';
27
27
  export { default as TMUserAvatar } from './base/TMUserAvatar';
28
- export { default as TMFloatingToolbar } from './base/TMFloatingToolbar';
29
28
  //editors
30
29
  export { default as TMDropDown } from './editors/TMDropDown';
31
30
  export { default as TMTreeDropDown } from './editors/TMTreeDropDown';
@@ -33,6 +32,7 @@ export { default as TMSummary } from './editors/TMSummary';
33
32
  export { default as TMTextBox } from './editors/TMTextBox';
34
33
  export { default as TMTextArea } from './editors/TMTextArea';
35
34
  export { default as TMTextExpression } from './editors/TMTextExpression';
35
+ export { default as TMMetadataTextBox } from './editors/TMMetadataTextBox';
36
36
  export { default as TMCheckBox } from './editors/TMCheckBox';
37
37
  export { default as TMRadioButton } from './editors/TMRadioButton';
38
38
  export { default as TMDateBox } from './editors/TMDateBox';
@@ -67,7 +67,7 @@ export { default as TMBlogCommentForm } from './features/blog/TMBlogCommentForm'
67
67
  export * from './query/TMQueryEditor';
68
68
  export * from './query/TMQuerySummary';
69
69
  //assistant
70
- export { default as ToppyDraggableHelpCenter } from './features/assistant/ToppyDraggableHelpCenter';
70
+ export { default as TMToppyDraggableHelpCenter } from './features/assistant/TMToppyDraggableHelpCenter';
71
71
  //documents
72
72
  export * from './features/documents/TMDcmtForm';
73
73
  export * from './features/documents/TMDcmtIcon';
@@ -110,6 +110,7 @@ export { default as SettingsAppearance } from "./settings/SettingsAppearance";
110
110
  export * from "./viewers/TMTidViewer";
111
111
  export * from "./viewers/TMMidViewer";
112
112
  export * from "./viewers/TMDataListItemViewer";
113
+ export * from "./viewers/TMDataUserIdItemViewer";
113
114
  //TMDeviceProvider
114
115
  export * from "./base/TMDeviceProvider";
115
116
  export { default as TMDataGrid } from "./base/TMDataGrid";
@@ -133,6 +134,8 @@ export * from "./features/workflow/diagram/WFDiagram";
133
134
  export * from "./features/workflow/diagram/workflowHelpers";
134
135
  export * from "./features/workflow/diagram/xmlParser";
135
136
  export * from "./features/workflow/diagram/interfaces";
137
+ export * from "./features/workflow/diagram/DiagramItemSvgContent";
138
+ export * from "./features/workflow/TMWorkflowPopup";
136
139
  // wizard
137
140
  export { default as TMWizard } from './wizard/TMWizard';
138
141
  export * from './wizard/TMWizard';
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { QueryDescriptor, ValidationItem } from '@topconsultnpm/sdk-ts';
3
3
  import { ITMApplyFormProps, FormModes } from '../../ts';
4
+ import type { TMContextMenuItemProps } from '../NewComponents/ContextMenu/types';
4
5
  export declare const StyledRowItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
5
6
  export declare const StyledItemWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
6
7
  $borderRadius?: string;
@@ -54,5 +55,5 @@ export interface ITMQdDropDownMenuProps {
54
55
  backgroundColor?: string;
55
56
  disabled?: boolean;
56
57
  borderRadius?: string;
57
- items?: any[];
58
+ items?: TMContextMenuItemProps[];
58
59
  }