@topconsultnpm/sdkui-react-beta 6.16.21 → 6.16.23

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.
@@ -38,7 +38,7 @@ interface ITMDcmtFormProps {
38
38
  mid: number;
39
39
  value: string;
40
40
  }>;
41
- onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>) => void;
41
+ onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, onRefreshSearchAsync?: (() => Promise<void>)) => void;
42
42
  s4TViewerDialogComponent?: React.ReactNode;
43
43
  }
44
44
  declare const TMDcmtForm: React.FC<ITMDcmtFormProps>;
@@ -14,7 +14,7 @@ interface ITMSearchProps {
14
14
  openWGsCopyMoveForm?: (mode: "copyToWgDraft" | "copyToWgArchivedDoc", dcmtTypeDescriptor: DcmtTypeDescriptor, documents: Array<DcmtInfo>) => void;
15
15
  openEditPdf?: (documents: Array<DcmtInfo>) => void;
16
16
  openS4TViewer?: boolean;
17
- onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>) => void;
17
+ onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, onRefreshSearchAsync?: (() => Promise<void>)) => void;
18
18
  showTodoDcmtForm?: boolean;
19
19
  openInOffice?: (selectedDcmtsOrFocused: Array<DcmtInfo>) => Promise<void>;
20
20
  }
@@ -119,6 +119,18 @@ const TMSearch = ({ openInOffice, isVisible, inputTID, inputSqdID, isExpertMode
119
119
  if (sqdToBeSet)
120
120
  await setSqdAsync?.(sqdToBeSet);
121
121
  }, []);
122
+ const onRefreshSearchAsync = async () => {
123
+ try {
124
+ const newResult = (await refreshLastSearch(lastQdSearched)) ?? [];
125
+ setSearchResult(newResult);
126
+ if (newResult.length <= 0) {
127
+ setCurrentSearchView(TMSearchViews.Search);
128
+ }
129
+ }
130
+ catch (error) {
131
+ console.error("Error refreshing search:", error);
132
+ }
133
+ };
122
134
  const isMobile = deviceType === DeviceType.MOBILE;
123
135
  // --- JSX WRAPPERS ---
124
136
  const tmTreeSelectorElement = useMemo(() => _jsx(TMTreeSelectorWrapper, { isMobile: isMobile, onSelectedTIDChanged: (tid) => {
@@ -196,13 +208,7 @@ const TMSearch = ({ openInOffice, isVisible, inputTID, inputSqdID, isExpertMode
196
208
  toolbarOptions: { icon: _jsx(IconSavedQuery, { fontSize: 24 }), visible: true, orderNumber: 4, isActive: allInitialPanelVisibility['TMSavedQuerySelector'] }
197
209
  }
198
210
  ], [tmTreeSelectorElement, tmRecentsManagerElement, tmSearchQueryPanelElement, tmSavedQuerySelectorElement, fromDTD, mruTIDs]);
199
- return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Search, children: _jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'TMRecentsManager', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", showToolbar: true }) }) }), _jsx(TMSearchResult, { isVisible: isVisible && currentSearchView === TMSearchViews.Result, context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, floatingActionConfig: floatingActionConfig, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, openInOffice: openInOffice, onRefreshSearchAsync: async () => {
200
- let newResult = await refreshLastSearch(lastQdSearched) ?? [];
201
- setSearchResult(newResult);
202
- if (newResult.length <= 0) {
203
- setCurrentSearchView(TMSearchViews.Search);
204
- }
205
- }, onClose: () => { setCurrentSearchView(TMSearchViews.Search); }, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, openEditPdf: openEditPdf, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, showTodoDcmtForm: showTodoDcmtForm })] }));
211
+ return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Search, children: _jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'TMRecentsManager', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", showToolbar: true }) }) }), _jsx(TMSearchResult, { isVisible: isVisible && currentSearchView === TMSearchViews.Result, context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, floatingActionConfig: floatingActionConfig, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, openInOffice: openInOffice, onRefreshSearchAsync: onRefreshSearchAsync, onClose: () => { setCurrentSearchView(TMSearchViews.Search); }, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, openEditPdf: openEditPdf, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, showTodoDcmtForm: showTodoDcmtForm })] }));
206
212
  };
207
213
  export default TMSearch;
208
214
  const TMTreeSelectorWrapper = ({ isMobile, onSelectedTIDChanged }) => {
@@ -33,7 +33,7 @@ interface ITMSearchResultProps {
33
33
  openCommentFormCallback?: (documents: Array<DcmtInfo>) => void;
34
34
  openAddDocumentForm?: () => void;
35
35
  openS4TViewer?: boolean;
36
- onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>) => void;
36
+ onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, onRefreshSearchAsync?: (() => Promise<void>)) => void;
37
37
  showTodoDcmtForm?: boolean;
38
38
  }
39
39
  declare const TMSearchResult: React.FC<ITMSearchResultProps>;
@@ -205,12 +205,12 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
205
205
  };
206
206
  const handleSignApprove = () => {
207
207
  if (onOpenS4TViewerRequest) {
208
- onOpenS4TViewerRequest(getSelectedDcmtsOrFocused(selectedItems, focusedItem));
208
+ onOpenS4TViewerRequest(getSelectedDcmtsOrFocused(selectedItems, focusedItem), onRefreshSearchAsync);
209
209
  return;
210
210
  }
211
211
  ShowAlert({
212
- message: "TODO",
213
- mode: "info",
212
+ message: "Non è stato possibile proseguire con la firma e l'approvazione.",
213
+ mode: "warning",
214
214
  duration: 3000,
215
215
  title: SDKUI_Localizator.SignatureAndApprove,
216
216
  });
@@ -86,8 +86,8 @@ const TMChooserForm = ({ children, title, allowMultipleSelection = false, allowA
86
86
  ...summaryItems ?? {}
87
87
  });
88
88
  }, [manageUseLocalizedName, summaryItems]);
89
- return (_jsx(TMModal, { title: renderTitle(), width: width ?? '550px', height: height ?? '600px', toolbar: _jsx(ToolbarButtons, {}), onClose: onClose, children: children ??
90
- filteredItems.length > 0
89
+ return (_jsx(TMModal, { title: renderTitle(), width: width ?? '550px', height: height ?? '600px', toolbar: _jsx(ToolbarButtons, {}), onClose: onClose, children: (children ??
90
+ filteredItems.length > 0)
91
91
  ? _jsx(TMDataGrid, { dataSource: filteredItems, keyExpr: keyName, dataColumns: dataColumns, focusedRowKey: focusedRowKey, selectedRowKeys: selectedRowKeys, searchPanelFocusStarting: true, headerFilter: { visible: true }, selection: { mode: allowMultipleSelection ? 'multiple' : 'single', showCheckBoxesMode: 'always', selectAllMode: 'allPages' }, grouping: allowGrouping ? { autoExpandAll: false, expandMode: 'rowClick' } : undefined, summary: customSummary, onFocusedRowChanged: handleFocusedRowChange, onSelectionChanged: handleSelectionChanged, onRowDblClick: handleRowDoubleClick })
92
92
  : _jsx(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: _jsx(TMLayoutItem, { children: _jsx("p", { style: { height: "100%", color: TMColors.primaryColor, fontSize: "1.5rem", display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: SDKUI_Localizator.NoDataToDisplay }) }) }) }));
93
93
  };
@@ -49,7 +49,6 @@ export * from './choosers/TMInvoiceRetrieveFormats';
49
49
  export * from './choosers/TMMetadataChooser';
50
50
  export * from './choosers/TMOrderRetrieveFormats';
51
51
  export * from './choosers/TMUserChooser';
52
- export * from './connectors/connectors.styles';
53
52
  export { default as TMValidationItemsList } from './grids/TMValidationItemsList';
54
53
  export { default as TMBlogs } from './grids/TMBlogs';
55
54
  export { default as TMBlogCommentForm } from './features/blog/TMBlogCommentForm';
@@ -52,8 +52,6 @@ export * from './choosers/TMInvoiceRetrieveFormats';
52
52
  export * from './choosers/TMMetadataChooser';
53
53
  export * from './choosers/TMOrderRetrieveFormats';
54
54
  export * from './choosers/TMUserChooser';
55
- // connectors
56
- export * from './connectors/connectors.styles';
57
55
  //grids
58
56
  export { default as TMValidationItemsList } from './grids/TMValidationItemsList';
59
57
  // blogs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react-beta",
3
- "version": "6.16.21",
3
+ "version": "6.16.23",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -1,18 +0,0 @@
1
- export declare const StyledConnectorButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
2
- $isActive?: boolean;
3
- $isCompact?: boolean;
4
- $isCurrentDocument?: boolean;
5
- }>> & string;
6
- export declare const StyledConnectorContentArea: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
7
- export declare const StyledConnectorFirstPageContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
8
- ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
9
- }, never>> & string;
10
- export declare const StyledConnectorCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
11
- export declare const StyledConnectorToppyImage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, never>> & string;
12
- export declare const StyledConnectorSuccessMessage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
13
- export declare const StyledConnectorPillContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
14
- export declare const StyledConnectorPillRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
15
- export declare const StyledConnectorPill: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
16
- export declare const StyledConnectorWelcomeMessage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
17
- export declare const StyledConnectorWelcomeSub: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
18
- export declare const StyledConnectorCloseButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
@@ -1,178 +0,0 @@
1
- import styled from "styled-components";
2
- import { TMColors } from "../../utils/theme";
3
- export const StyledConnectorButton = styled.button `
4
- display: flex;
5
- align-items: center;
6
- justify-content: center;
7
- gap: ${props => props.$isCompact ? '0' : '6px'};
8
- padding: ${props => props.$isCompact ? '8px' : '8px 16px'};
9
- min-height: 36px;
10
- width: ${props => props.$isCompact ? '36px' : 'auto'};
11
- background-color: ${props => props.$isActive
12
- ? props.$isCurrentDocument
13
- ? TMColors.success
14
- : '#0078d4'
15
- : '#ffffff'};
16
- color: ${props => props.$isActive ? '#ffffff' : '#323130'};
17
- border: 1px solid ${props => props.$isActive
18
- ? props.$isCurrentDocument
19
- ? TMColors.success
20
- : '#0078d4'
21
- : '#d1d1d1'};
22
- border-radius: 6px;
23
- cursor: pointer;
24
- font-size: 13px;
25
- font-weight: 500;
26
- transition: all 0.2s ease;
27
- box-shadow: ${props => props.$isActive
28
- ? props.$isCurrentDocument
29
- ? `0 2px 6px ${TMColors.success}40`
30
- : '0 2px 6px rgba(0, 120, 212, 0.25)'
31
- : '0 1px 2px rgba(0, 0, 0, 0.08)'};
32
- white-space: nowrap;
33
- position: relative;
34
-
35
- &:hover {
36
- background-color: ${props => props.$isActive
37
- ? props.$isCurrentDocument
38
- ? TMColors.success
39
- : '#106ebe'
40
- : '#f3f2f1'};
41
- transform: translateY(-1px);
42
- box-shadow: ${props => props.$isActive
43
- ? props.$isCurrentDocument
44
- ? `0 3px 8px ${TMColors.success}50`
45
- : '0 3px 8px rgba(0, 120, 212, 0.3)'
46
- : '0 2px 4px rgba(0, 0, 0, 0.12)'};
47
- }
48
-
49
- &:focus {
50
- outline: 2px solid ${props => props.$isCurrentDocument && props.$isActive ? TMColors.success : '#0078d4'};
51
- outline-offset: 2px;
52
- }
53
-
54
- &:active {
55
- transform: translateY(0);
56
- }
57
-
58
- &:disabled {
59
- background-color: #f3f2f1;
60
- color: #b3b3b3;
61
- border-color: #e0e0e0;
62
- cursor: not-allowed;
63
- box-shadow: none;
64
- opacity: 0.7;
65
- }
66
-
67
- svg {
68
- width: 16px;
69
- height: 16px;
70
- }
71
-
72
- span {
73
- display: ${props => props.$isCompact ? 'none' : 'inline'};
74
- }
75
- `;
76
- export const StyledConnectorContentArea = styled.div `
77
- position: absolute;
78
- top: 60px;
79
- left: 10px;
80
- width: calc(100% - 20px);
81
- height: calc(100% - 70px);
82
- background-color: #efefef;
83
- border-radius: 10px;
84
- overflow: hidden;
85
- `;
86
- export const StyledConnectorFirstPageContent = styled(StyledConnectorContentArea) `
87
- display: flex;
88
- flex-direction: column;
89
- align-items: center;
90
- justify-content: center;
91
- background: linear-gradient(135deg, #f8fafc 0%, #e3e9f3 100%);
92
- `;
93
- export const StyledConnectorCard = styled.div `
94
- background: #fff;
95
- border-radius: 18px;
96
- box-shadow: 0 6px 32px 0 rgba(0,0,0,0.10);
97
- padding: 40px 36px 32px 36px;
98
- min-width: 420px;
99
- max-width: 500px;
100
- display: flex;
101
- flex-direction: column;
102
- align-items: center;
103
- border: 1.5px solid #e3e9f3;
104
- `;
105
- export const StyledConnectorToppyImage = styled.img `
106
- width: 80px;
107
- filter: drop-shadow(0 2px 8px #e3e9f3);
108
- `;
109
- export const StyledConnectorSuccessMessage = styled.div `
110
- font-size: 13px;
111
- color: #666;
112
- font-weight: 600;
113
- margin-bottom: 10px;
114
- text-align: center;
115
- letter-spacing: 0.1px;
116
- `;
117
- export const StyledConnectorPillContainer = styled.div `
118
- width: 100%;
119
- margin-bottom: 10px;
120
- `;
121
- export const StyledConnectorPillRow = styled.div `
122
- display: flex;
123
- width: 100%;
124
- gap: 10px;
125
- margin-bottom: 6px;
126
- &:last-child {
127
- margin-bottom: 0;
128
- }
129
- `;
130
- export const StyledConnectorPill = styled.span `
131
- background: #e6f0fa;
132
- color: #0078d4;
133
- border-radius: 16px;
134
- padding: 8px 20px;
135
- font-weight: 600;
136
- font-size: 13px;
137
- letter-spacing: 0.1px;
138
- box-shadow: 0 1px 4px 0 rgba(0,120,212,0.07);
139
- border: 1px solid #cbe2fa;
140
- display: inline-block;
141
- text-align: center;
142
- line-height: 1.3;
143
- `;
144
- export const StyledConnectorWelcomeMessage = styled.div `
145
- font-size: 19px;
146
- color: #666;
147
- text-align: center;
148
- line-height: 1.5;
149
- `;
150
- export const StyledConnectorWelcomeSub = styled.span `
151
- font-size: 16px;
152
- color: #888;
153
- `;
154
- export const StyledConnectorCloseButton = styled.button `
155
- position: absolute;
156
- bottom: 16px;
157
- right: 16px;
158
- background: #dc3545;
159
- color: white;
160
- border: none;
161
- border-radius: 8px;
162
- padding: 8px 16px;
163
- font-size: 13px;
164
- font-weight: 500;
165
- cursor: pointer;
166
- transition: all 0.2s ease;
167
- box-shadow: 0 2px 4px rgba(220, 53, 69, 0.25);
168
-
169
- &:hover {
170
- background: #c82333;
171
- transform: translateY(-1px);
172
- box-shadow: 0 3px 6px rgba(220, 53, 69, 0.35);
173
- }
174
-
175
- &:active {
176
- transform: translateY(0);
177
- }
178
- `;