@topconsultnpm/sdkui-react 6.19.0-test.1 → 6.19.0

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 (216) 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/icomoon.svg +96 -96
  34. package/lib/assets/italy.svg +16 -16
  35. package/lib/assets/six.svg +3 -3
  36. package/lib/assets/thumbnails/index.ts +39 -39
  37. package/lib/assets/topmedia-six.svg +65 -65
  38. package/lib/assets/topmeida-six-bianco.svg +65 -65
  39. package/lib/components/base/Styled.js +302 -302
  40. package/lib/components/base/TMAccordion.js +43 -43
  41. package/lib/components/base/TMAccordionNew.d.ts +28 -0
  42. package/lib/components/base/TMAccordionNew.js +326 -0
  43. package/lib/components/base/TMAreaManager.js +23 -23
  44. package/lib/components/base/TMButton.d.ts +1 -0
  45. package/lib/components/base/TMButton.js +136 -136
  46. package/lib/components/base/TMClosableList.js +46 -46
  47. package/lib/components/base/TMConfirm.js +20 -20
  48. package/lib/components/base/TMContextMenu.js +4 -4
  49. package/lib/components/base/TMContextMenuOLD.js +25 -25
  50. package/lib/components/base/TMCounterBar.js +32 -32
  51. package/lib/components/base/TMCounterContainer.js +30 -30
  52. package/lib/components/base/TMCustomButton.d.ts +1 -1
  53. package/lib/components/base/TMCustomButton.js +90 -35
  54. package/lib/components/base/TMDataGridExportForm.d.ts +1 -1
  55. package/lib/components/base/TMDataGridExportForm.js +9 -3
  56. package/lib/components/base/TMDropDownMenu.js +24 -24
  57. package/lib/components/base/TMFileManager.js +12 -3
  58. package/lib/components/base/TMFileManagerDataGridView.d.ts +2 -0
  59. package/lib/components/base/TMFileManagerDataGridView.js +12 -3
  60. package/lib/components/base/TMFileManagerThumbnailItems.d.ts +2 -0
  61. package/lib/components/base/TMFileManagerThumbnailItems.js +12 -2
  62. package/lib/components/base/TMFileManagerThumbnailsView.d.ts +2 -0
  63. package/lib/components/base/TMFileManagerThumbnailsView.js +2 -2
  64. package/lib/components/base/TMFileManagerUtils.js +19 -19
  65. package/lib/components/base/TMFloatingToolbar.js +34 -34
  66. package/lib/components/base/TMLayout.js +44 -44
  67. package/lib/components/base/TMList.js +34 -34
  68. package/lib/components/base/TMModal.d.ts +2 -0
  69. package/lib/components/base/TMModal.js +79 -34
  70. package/lib/components/base/TMPanel.js +57 -57
  71. package/lib/components/base/TMPopUp.js +186 -117
  72. package/lib/components/base/TMProgressBar.js +20 -20
  73. package/lib/components/base/TMResizableMenu.js +28 -28
  74. package/lib/components/base/TMRightSidebar.js +40 -40
  75. package/lib/components/base/TMSpinner.js +121 -121
  76. package/lib/components/base/TMTab.js +11 -11
  77. package/lib/components/base/TMToggleButton.js +36 -36
  78. package/lib/components/base/TMToolbarCard.js +35 -35
  79. package/lib/components/base/TMTooltip.d.ts +1 -1
  80. package/lib/components/base/TMTooltip.js +1 -1
  81. package/lib/components/base/TMTreeView.js +16 -16
  82. package/lib/components/base/TMUserAvatar.js +7 -7
  83. package/lib/components/base/TMWaitPanel.js +30 -24
  84. package/lib/components/choosers/TMCultureIDPicker.js +35 -35
  85. package/lib/components/choosers/TMDataListItemChooser.js +1 -1
  86. package/lib/components/choosers/TMDataListItemPicker.js +54 -54
  87. package/lib/components/choosers/TMDcmtTypeChooser.js +2 -2
  88. package/lib/components/choosers/TMDynDataListItemChooser.js +5 -4
  89. package/lib/components/choosers/TMMetadataChooser.d.ts +4 -1
  90. package/lib/components/choosers/TMMetadataChooser.js +31 -8
  91. package/lib/components/choosers/TMUserChooser.d.ts +4 -0
  92. package/lib/components/choosers/TMUserChooser.js +21 -5
  93. package/lib/components/editors/TMCheckBox.js +24 -24
  94. package/lib/components/editors/TMDateBox.d.ts +1 -1
  95. package/lib/components/editors/TMDropDown.js +43 -43
  96. package/lib/components/editors/TMEditorStyled.js +71 -71
  97. package/lib/components/editors/TMHtmlContentDisplay.js +16 -16
  98. package/lib/components/editors/TMLocalizedTextBox.js +31 -31
  99. package/lib/components/editors/TMMetadataValues.js +71 -22
  100. package/lib/components/editors/TMRadioButton.js +39 -39
  101. package/lib/components/editors/TMSummary.js +39 -39
  102. package/lib/components/editors/TMTextArea.d.ts +1 -0
  103. package/lib/components/editors/TMTextArea.js +56 -22
  104. package/lib/components/editors/TMTextBox.js +53 -23
  105. package/lib/components/editors/TMTextExpression.js +36 -28
  106. package/lib/components/features/assistant/ToppyDraggableHelpCenter.d.ts +30 -0
  107. package/lib/components/features/assistant/ToppyDraggableHelpCenter.js +482 -0
  108. package/lib/components/features/assistant/ToppySpeechBubble.d.ts +9 -0
  109. package/lib/components/features/assistant/ToppySpeechBubble.js +117 -0
  110. package/lib/components/features/blog/TMBlogCommentForm.d.ts +2 -0
  111. package/lib/components/features/blog/TMBlogCommentForm.js +21 -9
  112. package/lib/components/features/documents/TMDcmtBlog.js +1 -1
  113. package/lib/components/features/documents/TMDcmtForm.d.ts +1 -0
  114. package/lib/components/features/documents/TMDcmtForm.js +331 -65
  115. package/lib/components/features/documents/TMDcmtIcon.js +17 -12
  116. package/lib/components/features/documents/TMDcmtPreview.js +75 -38
  117. package/lib/components/features/documents/TMFileUploader.js +21 -21
  118. package/lib/components/features/documents/TMRelationViewer.js +56 -23
  119. package/lib/components/features/search/TMSavedQuerySelector.js +53 -53
  120. package/lib/components/features/search/TMSearch.js +2 -2
  121. package/lib/components/features/search/TMSearchQueryEditor.js +14 -14
  122. package/lib/components/features/search/TMSearchQueryPanel.js +41 -59
  123. package/lib/components/features/search/TMSearchResult.js +256 -51
  124. package/lib/components/features/search/TMSearchResultCheckoutInfoForm.d.ts +8 -0
  125. package/lib/components/features/search/TMSearchResultCheckoutInfoForm.js +134 -0
  126. package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +3 -2
  127. package/lib/components/features/search/TMSearchResultsMenuItems.js +94 -59
  128. package/lib/components/features/search/TMSignSettingsForm.d.ts +9 -0
  129. package/lib/components/features/search/TMSignSettingsForm.js +621 -0
  130. package/lib/components/features/search/TMTreeSelector.js +67 -67
  131. package/lib/components/features/search/TMViewHistoryDcmtForm.d.ts +18 -0
  132. package/lib/components/features/search/TMViewHistoryDcmtForm.js +215 -0
  133. package/lib/components/features/tasks/TMTaskForm.js +42 -36
  134. package/lib/components/features/tasks/TMTasksAgenda.js +4 -4
  135. package/lib/components/features/tasks/TMTasksCalendar.js +2 -2
  136. package/lib/components/features/tasks/TMTasksHeader.js +1 -1
  137. package/lib/components/features/tasks/TMTasksUtils.d.ts +2 -1
  138. package/lib/components/features/tasks/TMTasksUtils.js +18 -3
  139. package/lib/components/features/tasks/TMTasksUtilsView.js +26 -4
  140. package/lib/components/features/tasks/TMTasksView.js +12 -6
  141. package/lib/components/features/wg/TMWGsCopyMoveForm.js +9 -9
  142. package/lib/components/features/workflow/TMWorkflowPopup.js +44 -44
  143. package/lib/components/features/workflow/diagram/ConnectionComponent.js +29 -29
  144. package/lib/components/features/workflow/diagram/ConnectionForm.js +10 -10
  145. package/lib/components/features/workflow/diagram/DiagramItemComponent.js +57 -57
  146. package/lib/components/features/workflow/diagram/DiagramItemForm.js +40 -35
  147. package/lib/components/features/workflow/diagram/DiagramItemSvgContent.js +12 -12
  148. package/lib/components/features/workflow/diagram/RecipientList.js +39 -39
  149. package/lib/components/features/workflow/diagram/WFDiagram.js +317 -285
  150. package/lib/components/features/workflow/diagram/WorkitemRecipientsEditor.js +4 -4
  151. package/lib/components/forms/Login/Chooser.js +35 -35
  152. package/lib/components/forms/Login/Menu.js +22 -22
  153. package/lib/components/forms/Login/SelectBox.js +46 -46
  154. package/lib/components/forms/Login/TMLoginForm.js +14 -14
  155. package/lib/components/forms/Login/TextBox.js +57 -57
  156. package/lib/components/forms/TMResultDialog.js +8 -2
  157. package/lib/components/forms/TMSaveForm.js +3 -11
  158. package/lib/components/grids/TMBlogAttachments.d.ts +0 -14
  159. package/lib/components/grids/TMBlogAttachments.js +10 -5
  160. package/lib/components/grids/TMBlogsPost.d.ts +8 -3
  161. package/lib/components/grids/TMBlogsPost.js +100 -39
  162. package/lib/components/grids/TMBlogsPostUtils.d.ts +1 -0
  163. package/lib/components/grids/TMBlogsPostUtils.js +32 -11
  164. package/lib/components/grids/TMRecentsManager.js +52 -52
  165. package/lib/components/grids/TMValidationItemsList.js +48 -48
  166. package/lib/components/index.d.ts +2 -1
  167. package/lib/components/index.js +2 -1
  168. package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +1 -0
  169. package/lib/components/layout/panelManager/TMPanelManagerContainer.js +14 -14
  170. package/lib/components/layout/panelManager/TMPanelManagerContext.js +0 -1
  171. package/lib/components/layout/panelManager/TMPanelManagerToolbar.js +36 -35
  172. package/lib/components/layout/panelManager/types.d.ts +1 -0
  173. package/lib/components/pages/TMPage.js +1 -1
  174. package/lib/components/query/TMQueryEditor.js +17 -17
  175. package/lib/components/query/TMQuerySummary.d.ts +1 -0
  176. package/lib/components/query/TMQuerySummary.js +15 -15
  177. package/lib/components/settings/SettingsAppearance.js +9 -1
  178. package/lib/components/sidebar/TMCommandsPanel.js +10 -10
  179. package/lib/components/sidebar/TMHeader.js +307 -307
  180. package/lib/components/sidebar/TMSidebar.js +24 -24
  181. package/lib/components/sidebar/TMSidebarItem.js +21 -21
  182. package/lib/components/viewers/TMDataListItemViewer.d.ts +1 -1
  183. package/lib/components/viewers/TMMidViewer.d.ts +1 -1
  184. package/lib/components/viewers/TMTidViewer.d.ts +1 -1
  185. package/lib/components/wizard/TMStepIndicator.js +102 -102
  186. package/lib/components/wizard/TMWizard.js +29 -29
  187. package/lib/helper/GlobalStyles.d.ts +2 -0
  188. package/lib/helper/GlobalStyles.js +10 -0
  189. package/lib/helper/Globalization.d.ts +1 -0
  190. package/lib/helper/Globalization.js +30 -0
  191. package/lib/helper/SDKUI_Globals.d.ts +9 -0
  192. package/lib/helper/SDKUI_Globals.js +10 -1
  193. package/lib/helper/SDKUI_Localizator.d.ts +59 -2
  194. package/lib/helper/SDKUI_Localizator.js +617 -22
  195. package/lib/helper/TMCustomSearchBar.js +1 -1
  196. package/lib/helper/TMIcons.d.ts +6 -1
  197. package/lib/helper/TMIcons.js +22 -2
  198. package/lib/helper/TMToppyMessage.d.ts +1 -0
  199. package/lib/helper/TMToppyMessage.js +33 -32
  200. package/lib/helper/TMUtils.d.ts +42 -4
  201. package/lib/helper/TMUtils.js +227 -60
  202. package/lib/helper/cicoHelper.d.ts +31 -0
  203. package/lib/helper/cicoHelper.js +155 -0
  204. package/lib/helper/dcmtsHelper.d.ts +2 -1
  205. package/lib/helper/dcmtsHelper.js +56 -17
  206. package/lib/helper/helpers.d.ts +8 -1
  207. package/lib/helper/helpers.js +43 -21
  208. package/lib/helper/index.d.ts +1 -0
  209. package/lib/helper/index.js +1 -0
  210. package/lib/hooks/useDcmtOperations.d.ts +1 -1
  211. package/lib/hooks/useDcmtOperations.js +10 -6
  212. package/lib/hooks/useRelatedDocuments.js +35 -26
  213. package/lib/ts/types.d.ts +3 -1
  214. package/package.json +54 -54
  215. package/lib/components/features/assistant/ToppyHelpCenter.d.ts +0 -12
  216. package/lib/components/features/assistant/ToppyHelpCenter.js +0 -173
@@ -15,44 +15,44 @@ const CULTUREIDs_DATASOURCE = [
15
15
  { value: CultureIDs.Es_ES, display: "Español", icon: _jsx("img", { src: getCultureIDImg(CultureIDs.Es_ES), alt: "Lang", width: 16, height: 16 }) },
16
16
  { value: CultureIDs.De_DE, display: "Deutsch", icon: _jsx("img", { src: getCultureIDImg(CultureIDs.De_DE), alt: "Lang", width: 16, height: 16 }) },
17
17
  ];
18
- const PickerContainer = styled.div `
19
- display: flex;
20
- flex-direction: column;
21
- gap: 10px;
22
- padding: 20px;
18
+ const PickerContainer = styled.div `
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: 10px;
22
+ padding: 20px;
23
23
  `;
24
- const ItemsContainer = styled.div `
25
- display: flex;
26
- flex-wrap: wrap;
27
- gap: 15px;
28
- justify-content: center;
24
+ const ItemsContainer = styled.div `
25
+ display: flex;
26
+ flex-wrap: wrap;
27
+ gap: 15px;
28
+ justify-content: center;
29
29
  `;
30
- const CultureItem = styled.div `
31
- display: flex;
32
- flex-direction: column;
33
- align-items: center;
34
- justify-content: center;
35
- cursor: pointer;
36
- text-align: center;
37
- font-size: 0.9em;
38
- padding: 10px 15px;
39
- border-radius: 8px;
40
- border: 2px solid transparent;
41
- transition: all 0.2s ease-in-out;
42
- width: 120px;
43
-
44
- &:hover {
45
- background-color: #f0f0f0;
46
- }
47
-
48
- ${props => props.$isSelected && `
49
- border-color: #007bff;
50
- background-color: #e6f2ff;
51
- `}
30
+ const CultureItem = styled.div `
31
+ display: flex;
32
+ flex-direction: column;
33
+ align-items: center;
34
+ justify-content: center;
35
+ cursor: pointer;
36
+ text-align: center;
37
+ font-size: 0.9em;
38
+ padding: 10px 15px;
39
+ border-radius: 8px;
40
+ border: 2px solid transparent;
41
+ transition: all 0.2s ease-in-out;
42
+ width: 120px;
43
+
44
+ &:hover {
45
+ background-color: #f0f0f0;
46
+ }
47
+
48
+ ${props => props.$isSelected && `
49
+ border-color: #007bff;
50
+ background-color: #e6f2ff;
51
+ `}
52
52
  `;
53
- const FlagIcon = styled.div `
54
- margin-bottom: 5px;
55
- font-size: 2em;
53
+ const FlagIcon = styled.div `
54
+ margin-bottom: 5px;
55
+ font-size: 2em;
56
56
  `;
57
57
  const TMCultureIDPicker = ({ selectedValue, onSelectCultureID, placeHolder, width = '100%', icon, backgroundColor, readOnly = false, openChooserBySingleClick = false, buttons = [], elementStyle, isModifiedWhen, label, showClearButton = false, validationItems = [], onValueChanged }) => {
58
58
  const [showPicker, setShowPicker] = useState(false);
@@ -33,7 +33,7 @@ export const TMDataListItemChooserForm = (props) => {
33
33
  if (!props.dataListId)
34
34
  return [];
35
35
  if (refreshCache)
36
- DataListCacheService.RemoveAll();
36
+ DataListCacheService.Remove();
37
37
  TMSpinner.show({ description: `${SDKUI_Localizator.Loading} - ${SDK_Localizator.DataList} ...` });
38
38
  let dataList = await DataListCacheService.GetAsync(props.dataListId);
39
39
  TMSpinner.hide();
@@ -3,64 +3,64 @@ import { useEffect, useState } from 'react';
3
3
  import styled, { keyframes } from 'styled-components';
4
4
  import { DataListCacheService, SDK_Localizator } from '@topconsultnpm/sdk-ts';
5
5
  import { SDKUI_Localizator, TMImageLibrary } from '../../helper';
6
- const PickerContainer = styled.div `
7
- display: flex;
8
- flex-direction: column;
9
- gap: 10px;
10
- padding: 5px;
11
- border: 1px solid #ccc;
12
- border-radius: 4px;
6
+ const PickerContainer = styled.div `
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: 10px;
10
+ padding: 5px;
11
+ border: 1px solid #ccc;
12
+ border-radius: 4px;
13
13
  `;
14
- const ItemsContainer = styled.div `
15
- display: flex;
16
- flex-direction: row;
17
- flex-wrap: nowrap;
18
- gap: 3px;
19
- align-items: center;
20
- overflow-x: auto;
21
- padding: 10px;
14
+ const ItemsContainer = styled.div `
15
+ display: flex;
16
+ flex-direction: row;
17
+ flex-wrap: nowrap;
18
+ gap: 3px;
19
+ align-items: center;
20
+ overflow-x: auto;
21
+ padding: 10px;
22
22
  `;
23
- const slideIn = keyframes `
24
- from {
25
- opacity: 0;
26
- transform: translateX(-50px);
27
- }
28
- to {
29
- opacity: 1;
30
- transform: translateX(0);
31
- }
23
+ const slideIn = keyframes `
24
+ from {
25
+ opacity: 0;
26
+ transform: translateX(-50px);
27
+ }
28
+ to {
29
+ opacity: 1;
30
+ transform: translateX(0);
31
+ }
32
32
  `;
33
- const StatusItem = styled.div `
34
- display: flex;
35
- flex-direction: column;
36
- align-items: center;
37
- justify-content: center;
38
- cursor: pointer;
39
- text-align: center;
40
- font-size: 0.8em;
41
- padding: 5px 10px;
42
- border-radius: 8px;
43
- border: 2px solid transparent;
44
- transition: all 0.2s ease-in-out;
45
- flex-shrink: 0;
46
-
47
- // Aggiungi l'animazione con un ritardo basato sull'indice
48
- animation: ${slideIn} 0.5s ease-out forwards;
49
- animation-delay: ${props => props.$index * 0.1}s;
50
- opacity: 0; // Inizialmente l'elemento è invisibile
51
-
52
- &:hover {
53
- background-color: #f0f0f0;
54
- }
55
-
56
- ${props => props.$isSelected && `
57
- border-color: #007bff;
58
- background-color: #e6f2ff;
59
- `}
33
+ const StatusItem = styled.div `
34
+ display: flex;
35
+ flex-direction: column;
36
+ align-items: center;
37
+ justify-content: center;
38
+ cursor: pointer;
39
+ text-align: center;
40
+ font-size: 0.8em;
41
+ padding: 5px 10px;
42
+ border-radius: 8px;
43
+ border: 2px solid transparent;
44
+ transition: all 0.2s ease-in-out;
45
+ flex-shrink: 0;
46
+
47
+ // Aggiungi l'animazione con un ritardo basato sull'indice
48
+ animation: ${slideIn} 0.5s ease-out forwards;
49
+ animation-delay: ${props => props.$index * 0.1}s;
50
+ opacity: 0; // Inizialmente l'elemento è invisibile
51
+
52
+ &:hover {
53
+ background-color: #f0f0f0;
54
+ }
55
+
56
+ ${props => props.$isSelected && `
57
+ border-color: #007bff;
58
+ background-color: #e6f2ff;
59
+ `}
60
60
  `;
61
- const Label = styled.div `
62
- font-weight: bold;
63
- margin-bottom: 5px;
61
+ const Label = styled.div `
62
+ font-weight: bold;
63
+ margin-bottom: 5px;
64
64
  `;
65
65
  const TMDataListItemPicker = ({ dataListID, selectedValue, onItemSelect }) => {
66
66
  const [dataList, setDataList] = useState(undefined);
@@ -23,7 +23,7 @@ const TMDcmtTypeChooser = ({ tmSession, dataSource, disabled, backgroundColor, f
23
23
  export default TMDcmtTypeChooser;
24
24
  const cellRenderIcon = (data) => _jsx(TMDcmtTypeIcon, { dtd: data.data });
25
25
  const cellRenderNameAndDesc = (data) => _jsx("p", { style: { textAlign: 'left', color: data.data.isView ? 'red' : '' }, children: data.value });
26
- export const TMDcmtTypeChooserForm = ({ tmSession, allowMultipleSelection, width, height, selectedIDs, dataSource, ShowOnlyDcmtTypes, ShowOnlySAP, filterTemplateTID, accessFilter = 'all', filter, onClose, onChoose }) => {
26
+ export const TMDcmtTypeChooserForm = ({ tmSession, allowMultipleSelection, width, height, selectedIDs, dataSource, ShowOnlyDcmtTypes, ShowOnlySAP, filterTemplateTID, accessFilter = 'all', startWithShowOnlySelectedItems = true, filter, onClose, onChoose }) => {
27
27
  const isPermitted = (accessLevel) => accessLevel === AccessLevelsEx.Yes || accessLevel === AccessLevelsEx.Mixed;
28
28
  const getItems = async (refreshCache) => {
29
29
  let tms = tmSession ?? SDK_Globals.tmSession;
@@ -57,5 +57,5 @@ export const TMDcmtTypeChooserForm = ({ tmSession, allowMultipleSelection, width
57
57
  return false;
58
58
  return true;
59
59
  };
60
- return (_jsx(TMChooserForm, { title: SDK_Localizator.ListDcmtTypeOrView, allowMultipleSelection: allowMultipleSelection, hasShowOnlySelectedItems: true, width: width, height: height, selectedIDs: selectedIDs, cellRenderIcon: cellRenderIcon, cellRenderNameAndDesc: cellRenderNameAndDesc, dataSource: dataSource, getItems: getItems, onClose: onClose, onChoose: (IDs) => onChoose?.(IDs) }));
60
+ return (_jsx(TMChooserForm, { title: SDK_Localizator.ListDcmtTypeOrView, allowMultipleSelection: allowMultipleSelection, hasShowOnlySelectedItems: true, startWithShowOnlySelectedItems: startWithShowOnlySelectedItems, width: width, height: height, selectedIDs: selectedIDs, cellRenderIcon: cellRenderIcon, cellRenderNameAndDesc: cellRenderNameAndDesc, dataSource: dataSource, getItems: getItems, onClose: onClose, onChoose: (IDs) => onChoose?.(IDs) }));
61
61
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from 'react';
3
3
  import { DataColumnTypes, SDK_Localizator, DataListCacheService, SDK_Globals, LayoutModes } from '@topconsultnpm/sdk-ts';
4
- import { IconDetails, IconSearch, getDataColumnName, Globalization, SDKUI_Localizator, searchResultDescriptorToSimpleArray, IsParametricQuery, IconWarning } from '../../helper';
4
+ import { IconDetails, IconSearch, generateUniqueColumnKeys, Globalization, SDKUI_Localizator, searchResultDescriptorToSimpleArray, IsParametricQuery, IconWarning } from '../../helper';
5
5
  import { StyledDivHorizontal } from '../base/Styled';
6
6
  import TMSpinner from '../base/TMSpinner';
7
7
  import TMSummary from '../editors/TMSummary';
@@ -125,8 +125,9 @@ const TMDynDataListItemChooser = ({ tid, md, width = '100%', titleForm, openChoo
125
125
  export default TMDynDataListItemChooser;
126
126
  const cellRenderIcon = () => _jsx(IconDetails, {});
127
127
  export const TMDynDataListItemChooserForm = (props) => {
128
+ // Generate unique keys for all columns
129
+ const uniqueKeys = generateUniqueColumnKeys(props.searchResult?.dtdResult?.columns, props.searchResult?.fromTID);
128
130
  const dataColumns = props.searchResult?.dtdResult?.columns?.map((col, index) => {
129
- let keyField = getDataColumnName(props.searchResult?.fromTID, col);
130
131
  const isVisible = col.extendedProperties?.["Visibility"] != "Hidden";
131
132
  const dataType = () => {
132
133
  switch (col.dataType) {
@@ -136,9 +137,9 @@ export const TMDynDataListItemChooserForm = (props) => {
136
137
  default: return "string";
137
138
  }
138
139
  };
139
- return { dataField: keyField, caption: col.caption, visible: isVisible, dataType: dataType(), format: col.dataType === DataColumnTypes.DateTime ? Globalization.getDateDisplayFormat() : "" };
140
+ return { dataField: uniqueKeys[index], caption: col.caption, visible: isVisible, dataType: dataType(), format: col.dataType === DataColumnTypes.DateTime ? Globalization.getDateDisplayFormat() : "" };
140
141
  });
141
- const keyValue = props.searchResult ? getDataColumnName(props.searchResult?.fromTID, props.searchResult?.dtdResult?.columns?.[props.dynDL?.selectItemForValue ?? 0]) : '';
142
+ const keyValue = uniqueKeys[props.dynDL?.selectItemForValue ?? 0] ?? '';
142
143
  const getItems = async (refreshCache) => {
143
144
  if (!props.searchResult)
144
145
  return [];
@@ -2,6 +2,9 @@ import React from 'react';
2
2
  import { MetadataDescriptor, QueryDescriptor, ValidationItem } from '@topconsultnpm/sdk-ts';
3
3
  import { ITMChooserFormProps, ITMChooserProps, TID_MID } from '../../ts';
4
4
  import { TID_Alias } from '../../helper/queryHelper';
5
+ type MetadataDescriptorWithKey = MetadataDescriptor & {
6
+ uniqueKey: string;
7
+ };
5
8
  interface ITMMetadataChooserProps extends ITMChooserProps {
6
9
  /** Allows you to view system metadata */
7
10
  allowSysMetadata?: boolean;
@@ -32,7 +35,7 @@ interface ITMMetadataChooserProps extends ITMChooserProps {
32
35
  }
33
36
  declare const TMMetadataChooser: React.FunctionComponent<ITMMetadataChooserProps>;
34
37
  export default TMMetadataChooser;
35
- interface ITMMetadataChooserFormProps extends ITMChooserFormProps<MetadataDescriptor> {
38
+ interface ITMMetadataChooserFormProps extends ITMChooserFormProps<MetadataDescriptorWithKey> {
36
39
  /** Allows you to view system metadata */
37
40
  allowSysMetadata?: boolean;
38
41
  /** TIDs of document types to retrieve metadata from */
@@ -38,7 +38,18 @@ export const TMMetadataChooserForm = ({ tmSession, tids, qd, filterMetadata, qdS
38
38
  if (checkProps)
39
39
  throw Error('Le props qd | tids | dataSource devono essere in alternativa');
40
40
  try {
41
- if (qd) {
41
+ if (dataSource) {
42
+ // Se ho dataSource, aggiungo tutti i suoi metadati con uniqueKey
43
+ dataSource.forEach((md) => {
44
+ const mdWithKey = md;
45
+ mdWithKey.uniqueKey = `${mdWithKey.customData1 ?? 0}_${md.id}_${mdWithKey.customData2 ?? ''}`;
46
+ metadata.push(mdWithKey);
47
+ });
48
+ setDcmtTypes(dtdList);
49
+ setHasSysMetadata(allowSysMetadata && metadata.findIndex(md => md.isSystem == 1) >= 0);
50
+ return showSysMetadata ? metadata : metadata.filter(o => o.isSystem != 1);
51
+ }
52
+ else if (qd) {
42
53
  let tids = getTIDsByQd(qd);
43
54
  let inputTIDs = tids.map((item) => item.tid);
44
55
  TMSpinner.show({ description: `${SDKUI_Localizator.Loading} - ${SDK_Localizator.DcmtType} ...` });
@@ -48,20 +59,26 @@ export const TMMetadataChooserForm = ({ tmSession, tids, qd, filterMetadata, qdS
48
59
  dtd.init({ ...dtds[i] });
49
60
  const alias = tids?.[i].alias ?? '';
50
61
  dtd.customData2 = alias;
62
+ let mds;
51
63
  if (!qdShowOnlySelectItems) {
52
64
  dtd.metadata?.forEach((md) => {
53
- md.customData1 = dtd.id;
54
- md.customData2 = alias;
65
+ const mdWithKey = md;
66
+ mdWithKey.customData1 = dtd.id;
67
+ mdWithKey.customData2 = alias;
68
+ mdWithKey.uniqueKey = `${dtd.id}_${md.id}_${alias}`;
55
69
  });
70
+ mds = filterMetadata ? dtd.metadata?.filter(filterMetadata) : dtd.metadata;
56
71
  }
57
72
  else {
58
73
  let newMetadata = dtd.metadata?.filter(o => qd.select?.some(s => s.tid == dtd.id && s.mid == o.id && ((s.alias ?? '') == alias)));
59
74
  newMetadata?.forEach((md) => {
60
- md.customData1 = dtd.id;
61
- md.customData2 = alias;
75
+ const mdWithKey = md;
76
+ mdWithKey.customData1 = dtd.id;
77
+ mdWithKey.customData2 = alias;
78
+ mdWithKey.uniqueKey = `${dtd.id}_${md.id}_${alias}`;
62
79
  });
80
+ mds = filterMetadata ? newMetadata?.filter(filterMetadata) : newMetadata;
63
81
  }
64
- let mds = filterMetadata ? dtd.metadata?.filter(filterMetadata) : dtd.metadata;
65
82
  dtdList.push({ ...dtd, metadata: mds });
66
83
  }
67
84
  }
@@ -81,7 +98,11 @@ export const TMMetadataChooserForm = ({ tmSession, tids, qd, filterMetadata, qdS
81
98
  continue;
82
99
  }
83
100
  let mds = filterMetadata ? dtd.metadata?.filter(filterMetadata) : dtd.metadata;
84
- mds?.forEach((md) => { md.customData1 = dtd?.id; });
101
+ mds?.forEach((md) => {
102
+ const mdWithKey = md;
103
+ mdWithKey.customData1 = dtd?.id;
104
+ mdWithKey.uniqueKey = `${dtd.id}_${md.id}_${md.customData2 ?? ''}`;
105
+ });
85
106
  dtdList.push({ ...dtd, metadata: mds });
86
107
  }
87
108
  }
@@ -130,5 +151,7 @@ export const TMMetadataChooserForm = ({ tmSession, tids, qd, filterMetadata, qdS
130
151
  const cellRenderNameAndDesc = useCallback((data) => {
131
152
  return _jsx("p", { style: { textAlign: 'left', color: data.data.isRequired == 1 ? 'red' : '' }, children: data.value });
132
153
  }, []);
133
- return (_jsx(TMChooserForm, { title: SDK_Localizator.Metadatas, allowMultipleSelection: allowMultipleSelection, allowSorting: false, allowGrouping: dcmtTypes.length > 1, width: width, height: height, selectedIDs: selectedIDs?.map((item) => item.mid), convertID: convertID, cellRenderIcon: cellRenderIcon, cellRenderNameAndDesc: cellRenderNameAndDesc, dataSource: dataSource, getItems: getItems, customButtons: renderCustomButtons(), columns: dataColumns, summaryItems: renderSummaryItems, onClose: onClose, onChoose: (IDs) => { onChoose?.(IDs); } }));
154
+ return (_jsx(TMChooserForm, { title: SDK_Localizator.Metadatas, allowMultipleSelection: allowMultipleSelection, allowSorting: false, allowGrouping: dcmtTypes.length > 1, width: width, height: height, keyName: 'uniqueKey', selectedIDs: selectedIDs?.map((item) => `${item.tid}_${item.mid}_${item.aliasTID ?? ''}`), convertID: convertID, cellRenderIcon: cellRenderIcon, cellRenderNameAndDesc: cellRenderNameAndDesc,
155
+ // dataSource={dataSource}
156
+ getItems: getItems, customButtons: renderCustomButtons(), columns: dataColumns, summaryItems: renderSummaryItems, onClose: onClose, onChoose: (IDs) => { onChoose?.(IDs); } }));
134
157
  };
@@ -14,6 +14,8 @@ interface ITMUserChooserProps extends ITMChooserProps {
14
14
  hideShowId?: boolean;
15
15
  /** Initial value for showChooser */
16
16
  initialShowChooser?: boolean;
17
+ /** Allow showing all users with toggle button */
18
+ allowShowAllUsers?: boolean;
17
19
  }
18
20
  declare const TMUserChooser: React.FunctionComponent<ITMUserChooserProps>;
19
21
  export default TMUserChooser;
@@ -24,6 +26,8 @@ interface ITMUserChooserFormProps extends ITMChooserFormProps<UserDescriptor> {
24
26
  hideRefresh?: boolean;
25
27
  /** Nascondi pulsante mostra ID */
26
28
  hideShowId?: boolean;
29
+ /** Allow showing all users with toggle button */
30
+ allowShowAllUsers?: boolean;
27
31
  }
28
32
  export declare const TMUserChooserForm: React.FunctionComponent<ITMUserChooserFormProps>;
29
33
  export declare const TMUserIdViewer: ({ userId, showIcon, noneSelectionText }: {
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useRef, useState } from 'react';
3
3
  import { OwnershipLevels, SDK_Localizator, UserLevels, UserListCacheService } from '@topconsultnpm/sdk-ts';
4
- import { SDKUI_Localizator, IconSearch, IconUserLevelMember, IconUserLevelAdministrator, IconUserLevelSystemAdministrator, IconUserLevelAutonomousAdministrator, IconWarning, LocalizeOwnershipLevels, LocalizeUserLevels } from '../../helper';
4
+ import { SDKUI_Localizator, IconSearch, IconUserLevelMember, IconUserLevelAdministrator, IconUserLevelSystemAdministrator, IconUserLevelAutonomousAdministrator, IconWarning, LocalizeOwnershipLevels, LocalizeUserLevels, IconShowAllUsersOff, IconShowAllUsers } from '../../helper';
5
5
  import { StyledDivHorizontal, StyledTooltipContainer, StyledTooltipSeparatorItem } from '../base/Styled';
6
6
  import TMSpinner from '../base/TMSpinner';
7
7
  import TMTooltip from '../base/TMTooltip';
@@ -9,7 +9,8 @@ import TMSummary from '../editors/TMSummary';
9
9
  import TMChooserForm from '../forms/TMChooserForm';
10
10
  import { TMColors } from '../../utils/theme';
11
11
  import { TMExceptionBoxManager } from '../base/TMPopUp';
12
- const TMUserChooser = ({ labelColor, titleForm, filter, readOnly = false, icon, width, dataSource, backgroundColor, openChooserBySingleClick, buttons = [], disabled = false, showBorder = true, hideRefresh = false, hideShowId = false, elementStyle, allowMultipleSelection, values, isModifiedWhen, label, placeHolder, validationItems = [], onValueChanged, showClearButton, initialShowChooser = false }) => {
12
+ import TMButton from '../base/TMButton';
13
+ const TMUserChooser = ({ labelColor, titleForm, filter, readOnly = false, icon, width, dataSource, backgroundColor, openChooserBySingleClick, buttons = [], disabled = false, showBorder = true, hideRefresh = false, hideShowId = false, elementStyle, allowMultipleSelection, values, isModifiedWhen, label, placeHolder, validationItems = [], onValueChanged, showClearButton, initialShowChooser = false, allowShowAllUsers = false }) => {
13
14
  const [showChooser, setShowChooser] = useState(initialShowChooser);
14
15
  useEffect(() => {
15
16
  setShowChooser(initialShowChooser);
@@ -20,13 +21,15 @@ const TMUserChooser = ({ labelColor, titleForm, filter, readOnly = false, icon,
20
21
  return (_jsxs(StyledDivHorizontal, { style: { minWidth: '125px', color: isPlaceholder ? '#a9a9a9' : 'inherit' }, children: [values && values.length > 0 && _jsx(TMUserIdViewer, { userId: values?.[0], showIcon: true, noneSelectionText: '' }), values && values.length > 1 && _jsx("p", { style: { marginLeft: '10px' }, children: `(+${values.length - 1} ${values.length == 2 ? 'altro' : 'altri'})` })] }));
21
22
  };
22
23
  return (_jsxs(_Fragment, { children: [_jsx(TMSummary, { ref: summaryInputRef, width: width, disabled: disabled, placeHolder: placeHolder, readOnly: readOnly, labelColor: labelColor, icon: icon, backgroundColor: backgroundColor, buttons: buttons, showBorder: showBorder, hasValue: values && values.length > 0, showClearButton: showClearButton, iconEditButton: _jsx(IconSearch, { fontSize: 16 }), onEditorClick: () => !readOnly && setShowChooser(true), elementStyle: elementStyle, isModifiedWhen: isModifiedWhen, openEditorOnSummaryClick: openChooserBySingleClick, label: label, template: renderTemplate(), onClearClick: showClearButton ? () => { onValueChanged?.([]); } : undefined, validationItems: validationItems }), showChooser &&
23
- _jsx(TMUserChooserForm, { title: titleForm, allowMultipleSelection: allowMultipleSelection, hasShowOnlySelectedItems: true, dataSource: dataSource, filter: filter, selectedIDs: values, hideRefresh: hideRefresh, hideShowId: hideShowId, onClose: () => {
24
+ _jsx(TMUserChooserForm, { title: titleForm, allowMultipleSelection: allowMultipleSelection, hasShowOnlySelectedItems: true, dataSource: dataSource, filter: filter, selectedIDs: values, hideRefresh: hideRefresh, hideShowId: hideShowId, allowShowAllUsers: allowShowAllUsers, onClose: () => {
24
25
  setShowChooser(false);
25
26
  summaryInputRef.current?.focus();
26
27
  }, onChoose: (IDs) => { onValueChanged?.(IDs); } })] }));
27
28
  };
28
29
  export default TMUserChooser;
29
- export const TMUserChooserForm = ({ allowMultipleSelection, columns, hideRefresh = false, hideShowId = false, startWithShowOnlySelectedItems = true, filter, title, hasShowOnlySelectedItems, width, height, selectedIDs, dataSource, onClose, onChoose }) => {
30
+ export const TMUserChooserForm = ({ allowMultipleSelection, columns, hideRefresh = false, hideShowId = false, startWithShowOnlySelectedItems = true, filter, title, hasShowOnlySelectedItems, width, height, selectedIDs, dataSource, onClose, onChoose, allowShowAllUsers = false }) => {
31
+ const [currentDataSource, setCurrentDataSource] = useState(dataSource);
32
+ const [showingAllUsers, setShowingAllUsers] = useState(false);
30
33
  const dataColumns = useMemo(() => {
31
34
  return [
32
35
  { dataField: 'domain', caption: SDKUI_Localizator.Domain, dataType: 'string' },
@@ -42,6 +45,18 @@ export const TMUserChooserForm = ({ allowMultipleSelection, columns, hideRefresh
42
45
  TMSpinner.hide();
43
46
  return users;
44
47
  };
48
+ const handleToggleAllUsers = () => {
49
+ if (showingAllUsers) {
50
+ // Torna indietro: ripristina il dataSource originale
51
+ setCurrentDataSource(dataSource);
52
+ setShowingAllUsers(false);
53
+ }
54
+ else {
55
+ // Mostra tutti: rimuove il dataSource per usare getItems
56
+ setCurrentDataSource(undefined);
57
+ setShowingAllUsers(true);
58
+ }
59
+ };
45
60
  const getTitle = () => {
46
61
  let title = SDK_Localizator.Users;
47
62
  if (title)
@@ -49,7 +64,8 @@ export const TMUserChooserForm = ({ allowMultipleSelection, columns, hideRefresh
49
64
  return title;
50
65
  };
51
66
  const cellRenderIcon = (data) => _jsx(TMUserIcon, { ud: data.data });
52
- return (_jsx(TMChooserForm, { title: getTitle(), allowMultipleSelection: allowMultipleSelection, startWithShowOnlySelectedItems: startWithShowOnlySelectedItems, hasShowOnlySelectedItems: hasShowOnlySelectedItems, width: width, height: height, manageUseLocalizedName: false, columns: columns ?? dataColumns, showDefaultColumns: false, selectedIDs: selectedIDs, cellRenderIcon: cellRenderIcon, dataSource: dataSource, getItems: getItems, hasShowId: !hideShowId, hideRefresh: hideRefresh, onClose: onClose, onChoose: (IDs) => onChoose?.(IDs) }));
67
+ const customButton = (allowShowAllUsers && dataSource) ? (_jsx(TMButton, { btnStyle: 'toolbar', caption: showingAllUsers ? SDKUI_Localizator.HideAll : SDKUI_Localizator.ShowAll, onClick: handleToggleAllUsers, icon: showingAllUsers ? _jsx(IconShowAllUsersOff, {}) : _jsx(IconShowAllUsers, {}) })) : undefined;
68
+ return (_jsx(TMChooserForm, { title: getTitle(), allowMultipleSelection: allowMultipleSelection, startWithShowOnlySelectedItems: startWithShowOnlySelectedItems, hasShowOnlySelectedItems: hasShowOnlySelectedItems, width: width, height: height, manageUseLocalizedName: false, columns: columns ?? dataColumns, showDefaultColumns: false, selectedIDs: selectedIDs, cellRenderIcon: cellRenderIcon, dataSource: currentDataSource, getItems: getItems, hasShowId: !hideShowId, hideRefresh: hideRefresh, customButtons: customButton, onClose: onClose, onChoose: (IDs) => onChoose?.(IDs) }));
53
69
  };
54
70
  export const TMUserIdViewer = ({ userId, showIcon = false, noneSelectionText = `<${SDKUI_Localizator.NoneSelection}>` }) => {
55
71
  const [ud, setUd] = useState();
@@ -2,32 +2,32 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { FontSize, TMColors } from '../../utils/theme';
4
4
  import styled from 'styled-components';
5
- const StyledCheckBoxContainer = styled.div `
6
- display: flex;
7
- flex-direction: ${props => props.$labelPosition === 'right' ? 'row-reverse' : 'row'} ;
8
- justify-content: flex-start;
9
- align-items: center;
10
- width: fit-content;
11
- cursor: ${props => !props.$disabled && 'pointer'};
5
+ const StyledCheckBoxContainer = styled.div `
6
+ display: flex;
7
+ flex-direction: ${props => props.$labelPosition === 'right' ? 'row-reverse' : 'row'} ;
8
+ justify-content: flex-start;
9
+ align-items: center;
10
+ width: fit-content;
11
+ cursor: ${props => !props.$disabled && 'pointer'};
12
12
  `;
13
- const StyledCheckBoxLabel = styled.div `
14
- margin-right: ${props => props.$labelPosition === 'left' ? '5px' : '0'};
15
- margin-left: ${props => props.$labelPosition === 'right' ? '5px' : '0'};
16
- color: ${props => !props.$disabled ? props.$isModifiedWhen ? TMColors.isModified : props.$labelColor ? props.$labelColor : TMColors.text_normal : TMColors.disabled};
17
- font-size: ${props => props.$fontSize};
18
- user-select: none;
19
- &:focus{
20
- outline: none;
21
- background-image: linear-gradient(white, #E4E9F7);
22
- border-bottom: 2px solid;
23
- border-bottom-color: ${props => !props.$isModifiedWhen ? TMColors.primary : TMColors.isModified};
24
- }
13
+ const StyledCheckBoxLabel = styled.div `
14
+ margin-right: ${props => props.$labelPosition === 'left' ? '5px' : '0'};
15
+ margin-left: ${props => props.$labelPosition === 'right' ? '5px' : '0'};
16
+ color: ${props => !props.$disabled ? props.$isModifiedWhen ? TMColors.isModified : props.$labelColor ? props.$labelColor : TMColors.text_normal : TMColors.disabled};
17
+ font-size: ${props => props.$fontSize};
18
+ user-select: none;
19
+ &:focus{
20
+ outline: none;
21
+ background-image: linear-gradient(white, #E4E9F7);
22
+ border-bottom: 2px solid;
23
+ border-bottom-color: ${props => !props.$isModifiedWhen ? TMColors.primary : TMColors.isModified};
24
+ }
25
25
  `;
26
- const StyledCheckbox = styled.input `
27
- accent-color: ${props => !props.$disabled ? props.$isModifiedWhen ? TMColors.isModified : TMColors.primary : TMColors.disabled};
28
- width: 14px;
29
- height: 14px;
30
- cursor: ${props => !props.$disabled && 'pointer'};
26
+ const StyledCheckbox = styled.input `
27
+ accent-color: ${props => !props.$disabled ? props.$isModifiedWhen ? TMColors.isModified : TMColors.primary : TMColors.disabled};
28
+ width: 14px;
29
+ height: 14px;
30
+ cursor: ${props => !props.$disabled && 'pointer'};
31
31
  `;
32
32
  const TMCheckBox = ({ labelColor, isModifiedWhen, elementStyle, disabled = false, label, value, labelPosition = 'right', fontSize = FontSize.defaultFontSize, onValueChanged }) => {
33
33
  const [initialValue, setInitialValue] = useState(value);
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ValidationItem } from '@topconsultnpm/sdk-ts';
3
- import { IDateBoxOptions } from 'devextreme-react/cjs/date-box';
3
+ import { IDateBoxOptions } from 'devextreme-react/date-box';
4
4
  import { DateDisplayTypes } from '../../helper';
5
5
  interface ITMDateBoxProps extends IDateBoxOptions {
6
6
  dateDisplayType?: DateDisplayTypes;
@@ -6,53 +6,53 @@ import { StyledEditorContainer, StyledEditorIcon, StyledEditorLabel, TMEditorsDe
6
6
  import TMLayoutContainer, { TMLayoutItem } from "../base/TMLayout";
7
7
  import TMVilViewer from "../base/TMVilViewer";
8
8
  import TMTooltip from "../base/TMTooltip";
9
- const StyledDropDownWrapper = styled.div `
10
- position: relative;
11
- width: ${props => props.$width};
12
- display: flex;
13
- align-items: center;
9
+ const StyledDropDownWrapper = styled.div `
10
+ position: relative;
11
+ width: ${props => props.$width};
12
+ display: flex;
13
+ align-items: center;
14
14
  `;
15
- const StyledDropDown = styled.select `
16
- width: 100%;
17
- padding: 5px 35px 3px 9px; /* padding-right leaves space for buttons + custom arrow */
18
- border: 1px solid;
19
- border-color: ${props => props.$isModified ? TMColors.isModified : TMColors.border_normal};
20
- border-bottom: ${props => (props.$vil.length > 0) ? '3px' : '1px'} solid;
21
- border-bottom-color: ${props => (props.$vil.length === 0) ? !props.$isModified ? TMColors.border_normal : TMColors.isModified : editorColorManager(props.$vil)};
22
- color: ${props => !props.$disabled ? (props.$vil.length === 0 ? (!props.$isModified ? TMColors.text_normal : TMColors.isModified) : editorColorManager(props.$vil)) : TMColors.disabled};
23
- border-radius: ${props => props.$borderRadius ?? TMEditorsDefaultBorderRadius};
24
- font-size: ${props => props.$fontSize};
25
- appearance: none; /* remove native arrow */
26
- background-color: white;
27
-
28
- &:focus {
29
- outline: none;
30
- background-image: linear-gradient(white, #E4E9F7);
31
- border: ${props => props.$isModified ? `1px solid ${TMColors.isModified}` : '1px solid rgb(180,180,180)'};
32
- border-bottom: 2px solid;
33
- border-bottom-color: ${props => (props.$vil.length === 0) ? !props.$isModified ? TMColors.primary : TMColors.isModified : editorColorManager(props.$vil)};
34
- }
15
+ const StyledDropDown = styled.select `
16
+ width: 100%;
17
+ padding: 5px 35px 3px 9px; /* padding-right leaves space for buttons + custom arrow */
18
+ border: 1px solid;
19
+ border-color: ${props => props.$isModified ? TMColors.isModified : TMColors.border_normal};
20
+ border-bottom: ${props => (props.$vil.length > 0) ? '3px' : '1px'} solid;
21
+ border-bottom-color: ${props => (props.$vil.length === 0) ? !props.$isModified ? TMColors.border_normal : TMColors.isModified : editorColorManager(props.$vil)};
22
+ color: ${props => !props.$disabled ? (props.$vil.length === 0 ? (!props.$isModified ? TMColors.text_normal : TMColors.isModified) : editorColorManager(props.$vil)) : TMColors.disabled};
23
+ border-radius: ${props => props.$borderRadius ?? TMEditorsDefaultBorderRadius};
24
+ font-size: ${props => props.$fontSize};
25
+ appearance: none; /* remove native arrow */
26
+ background-color: white;
27
+
28
+ &:focus {
29
+ outline: none;
30
+ background-image: linear-gradient(white, #E4E9F7);
31
+ border: ${props => props.$isModified ? `1px solid ${TMColors.isModified}` : '1px solid rgb(180,180,180)'};
32
+ border-bottom: 2px solid;
33
+ border-bottom-color: ${props => (props.$vil.length === 0) ? !props.$isModified ? TMColors.primary : TMColors.isModified : editorColorManager(props.$vil)};
34
+ }
35
35
  `;
36
- const ButtonsContainer = styled.div `
37
- position: absolute;
38
- right: 20px; /* adjust depending on arrow size */
39
- display: flex;
40
- align-items: center;
41
- gap: 5px; /* spacing between buttons */
36
+ const ButtonsContainer = styled.div `
37
+ position: absolute;
38
+ right: 20px; /* adjust depending on arrow size */
39
+ display: flex;
40
+ align-items: center;
41
+ gap: 5px; /* spacing between buttons */
42
42
  `;
43
- const CustomArrow = styled.div `
44
- position: absolute;
45
- right: 5px;
46
- pointer-events: none;
47
- border-left: 5px solid transparent;
48
- border-right: 5px solid transparent;
49
- border-top: 5px solid ${TMColors.text_normal};
43
+ const CustomArrow = styled.div `
44
+ position: absolute;
45
+ right: 5px;
46
+ pointer-events: none;
47
+ border-left: 5px solid transparent;
48
+ border-right: 5px solid transparent;
49
+ border-top: 5px solid ${TMColors.text_normal};
50
50
  `;
51
- const StyledDropDownEditorButton = styled.div `
52
- color: ${TMColors.button_icon};
53
- display: flex;
54
- align-items: center;
55
- cursor: pointer;
51
+ const StyledDropDownEditorButton = styled.div `
52
+ color: ${TMColors.button_icon};
53
+ display: flex;
54
+ align-items: center;
55
+ cursor: pointer;
56
56
  `;
57
57
  const TMDropDown = ({ validationItems = [], disabled = false, elementStyle, isModifiedWhen, labelPosition = 'left', label, icon, width = '100%', fontSize = FontSize.defaultFontSize, dataSource, value, onValueChanged, buttons = [], }) => {
58
58
  const [isFocused, setIsFocused] = useState(false);