@topconsultnpm/sdkui-react-beta 6.13.65 → 6.13.67

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.
@@ -1,18 +1,19 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { getListMaxItems } from '../../helper';
2
+ import { getListMaxItems, SDKUI_Localizator } from '../../helper';
3
+ import { TMColors } from '../../utils/theme';
3
4
  import TMButton from './TMButton';
4
5
  import { useDeviceType, DeviceType } from './TMDeviceProvider';
5
6
  const TMShowAllOrMaxItemsButton = ({ showAll, dataSourceLength, onClick }) => {
6
7
  const deviceType = useDeviceType();
7
8
  let maxItems = getListMaxItems(deviceType ?? DeviceType.DESKTOP);
8
- const captionText = showAll ? "Mostra meno" : `Mostra tutti`;
9
+ const captionText = showAll ? SDKUI_Localizator.ShowLess : SDKUI_Localizator.ShowAll;
9
10
  const isMobile = deviceType === DeviceType.MOBILE;
10
11
  return (_jsx(_Fragment, { children: isMobile ?
11
12
  _jsx(TMButton, { elementStyle: { position: 'absolute', right: '10px' }, btnStyle: 'icon', caption: captionText, icon: showAll ?
12
- _jsx("div", { style: { backgroundColor: '#4A96D2', minWidth: '30px', minHeight: '30px', borderRadius: '10px', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { style: { color: 'white' }, children: `-${dataSourceLength - maxItems}` }) }) :
13
- _jsx("div", { style: { backgroundColor: '#4A96D2', minWidth: '30px', minHeight: '30px', borderRadius: '10px', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { style: { color: 'white' }, children: `+${dataSourceLength - maxItems}` }) }), onClick: () => onClick?.() })
13
+ _jsx("div", { style: { backgroundColor: TMColors.button_primary, minWidth: '30px', minHeight: '30px', borderRadius: '10px', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { style: { color: 'white' }, children: `-${dataSourceLength - maxItems}` }) }) :
14
+ _jsx("div", { style: { backgroundColor: TMColors.button_primary, minWidth: '30px', minHeight: '30px', borderRadius: '10px', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { style: { color: 'white' }, children: `+${dataSourceLength - maxItems}` }) }), onClick: () => onClick?.() })
14
15
  :
15
- _jsx(TMButton, { elementStyle: { position: 'absolute', right: '10px' }, width: 'auto', btnStyle: 'advanced', advancedColor: '#4A96D2', caption: captionText, showTooltip: false, icon: showAll
16
+ _jsx(TMButton, { elementStyle: { position: 'absolute', right: '10px' }, width: 'auto', btnStyle: 'advanced', advancedColor: TMColors.button_primary, caption: captionText, showTooltip: false, icon: showAll
16
17
  ? _jsx("p", { style: { color: 'white' }, children: `-${dataSourceLength - maxItems}` })
17
18
  : _jsx("p", { style: { color: 'white' }, children: `+${dataSourceLength - maxItems}` }), onClick: () => onClick?.() }) }));
18
19
  };
@@ -1,22 +1,23 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useMemo, useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useState } from 'react';
3
3
  import Logo from '../../../assets/Toppy-generico.png';
4
- import { LayoutModes } from '@topconsultnpm/sdk-ts-beta';
5
- import { IconTree, IconProgressReady, SDKUI_Globals } from '../../../helper';
4
+ import { DcmtTypeListCacheService, LayoutModes, SDK_Localizator } from '@topconsultnpm/sdk-ts-beta';
5
+ import { IconTree, SDKUI_Globals, SDKUI_Localizator, IconRecentlyViewed, IconPreview, IconShow, IconBoard, IconDcmtTypeSys } from '../../../helper';
6
6
  import { useDeviceType, DeviceType } from '../../base/TMDeviceProvider';
7
- import TMLayoutContainer, { TMSplitterLayout, TMLayoutItem } from '../../base/TMLayout';
7
+ import TMLayoutContainer, { TMLayoutItem } from '../../base/TMLayout';
8
8
  import TMRecentsManager from '../../grids/TMRecentsManager';
9
9
  import TMDcmtForm from '../documents/TMDcmtForm';
10
10
  import { StyledToppyTextContainer, StyledToppyText } from '../search/TMSearchQueryPanel';
11
11
  import TMTreeSelector from '../search/TMTreeSelector';
12
12
  import TMPanel from '../../base/TMPanel';
13
- import TMCommandsPanel from '../../sidebar/TMCommandsPanel';
13
+ import { TMPanelManagerProvider, useTMPanelManagerContext } from '../../layout/panelManager/TMPanelManagerContext';
14
+ import TMPanelManagerContainer from '../../layout/panelManager/TMPanelManagerContainer';
14
15
  const TMArchive = ({ inputTID }) => {
15
16
  const TIDs = SDKUI_Globals.userSettings.archivingSettings.mruTIDs;
16
17
  const [currentTID, setCurrentTID] = useState(0);
17
18
  const [mruTIDs, setMruTIDs] = useState(TIDs);
18
- const [showRecentsPanel, setShowRecentsPanel] = useState(true);
19
- const [showTreesPanel, setShowTreesPanel] = useState(true);
19
+ const [currentMruTID, setCurrentMruTID] = useState(0);
20
+ const [fromDTD, setFromDTD] = useState();
20
21
  const deviceType = useDeviceType();
21
22
  useEffect(() => { setMruTIDs(TIDs); }, []);
22
23
  useEffect(() => {
@@ -24,43 +25,128 @@ const TMArchive = ({ inputTID }) => {
24
25
  return;
25
26
  setCurrentTID(inputTID);
26
27
  }, [inputTID]);
27
- const setSearchByTID = (tid) => { setCurrentTID(tid); };
28
- const getPrimarySplitterStartValues = useCallback(() => {
29
- if (deviceType === DeviceType.MOBILE) {
30
- return ['0%', '100%'];
31
- }
32
- return showTreesPanel ? ['20%', '80%'] : ['0', '100%'];
33
- }, [deviceType, showTreesPanel]);
34
- const getSecondarySplitterStartValues = useCallback(() => {
35
- if (deviceType === DeviceType.MOBILE) {
36
- return currentTID ? ['0', '100%'] : ['100%', '0%'];
28
+ useEffect(() => {
29
+ if (!currentTID || currentTID <= 0) {
30
+ return;
37
31
  }
38
- return showRecentsPanel ? ['25%', '75%'] : ['0', '100%'];
39
- }, [deviceType, currentTID, showRecentsPanel]);
40
- let customSidebarItems = useMemo(() => {
41
- return ([
42
- { icon: _jsx(IconTree, {}), selected: showTreesPanel, onClick: () => { setShowTreesPanel(!showTreesPanel); } },
43
- { icon: _jsx(IconProgressReady, {}), selected: showRecentsPanel, onClick: () => { setShowRecentsPanel(!showRecentsPanel); } }
44
- ]);
45
- }, [showTreesPanel, showRecentsPanel]);
32
+ DcmtTypeListCacheService.GetAsync(currentTID).then(async (dtd) => {
33
+ setFromDTD(dtd);
34
+ });
35
+ }, [currentTID]);
36
+ const setSearchByTID = (tid) => { setCurrentTID(tid); };
46
37
  const isMobile = deviceType === DeviceType.MOBILE;
47
- return (_jsxs("div", { style: {
48
- display: 'flex',
49
- flexDirection: isMobile ? 'column' : 'row',
50
- justifyContent: 'space-between',
51
- gap: SDKUI_Globals.userSettings.themeSettings.gutters,
52
- width: '100%',
53
- height: '100%',
54
- }, children: [_jsx("div", { style: { flex: 1, minWidth: 0, height: '100%' }, children: _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, showSeparator: deviceType !== DeviceType.MOBILE && showTreesPanel, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: getPrimarySplitterStartValues(), children: [showTreesPanel ? _jsx(TMLayoutItem, { children: deviceType !== DeviceType.MOBILE && _jsx(TMTreeSelector, { onClosePanel: () => setShowTreesPanel(false), layoutMode: LayoutModes.Ark, onSelectedTIDChanged: (tid) => { setSearchByTID(tid); } }) }) : _jsx(_Fragment, {}), _jsx(TMLayoutItem, { children: _jsxs(TMSplitterLayout, { separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, direction: 'horizontal', overflow: 'visible', showSeparator: deviceType !== DeviceType.MOBILE && showRecentsPanel, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: getSecondarySplitterStartValues(), children: [showRecentsPanel ? _jsx(TMLayoutItem, { children: _jsx(TMPanel, { title: 'Recenti', onClose: () => setShowRecentsPanel(false), totalItems: mruTIDs.length, children: _jsx(TMRecentsManager, { mruTIDs: mruTIDs, deviceType: deviceType, onSelectedTID: (tid) => setCurrentTID(tid), onDeletedTID: (tid) => {
55
- let newMruTIDS = mruTIDs.slice();
56
- let index = newMruTIDS.findIndex(o => o == tid);
57
- if (index >= 0)
58
- newMruTIDS.splice(index, 1);
59
- SDKUI_Globals.userSettings.archivingSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
60
- setMruTIDs(newMruTIDS);
61
- } }) }) }) : _jsx(_Fragment, {}), _jsx(TMLayoutItem, { children: currentTID ?
62
- _jsx(TMDcmtForm, { TID: currentTID, DID: undefined, layoutMode: LayoutModes.Ark, customRightSidebarItems: customSidebarItems, showPreview: deviceType !== DeviceType.MOBILE, onClose: deviceType === DeviceType.MOBILE ? () => setCurrentTID(undefined) : undefined, onSaveRecents: (TIDs) => setMruTIDs(TIDs) })
63
- :
64
- _jsx(TMPanel, { title: 'Archiviazione', children: _jsxs(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: [_jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsxs(StyledToppyTextContainer, { children: [" ", _jsxs(StyledToppyText, { children: [" ", 'Selezionare un tipo documento', " "] }), " "] }), " "] }), _jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsx("img", { src: Logo, width: 120, alt: '' }), " "] })] }) }) })] }) })] }) }), !currentTID ? _jsx(TMCommandsPanel, { isMobile: isMobile, items: customSidebarItems }) : _jsx(_Fragment, {})] }));
38
+ const tmTreeSelectorElement = useMemo(() => _jsx(TMTreeSelectorWrapper, { isMobile: isMobile, onSelectedTIDChanged: (tid) => {
39
+ setSearchByTID(tid);
40
+ if (tid && mruTIDs.includes(tid))
41
+ setCurrentMruTID(tid);
42
+ else
43
+ setCurrentMruTID(0);
44
+ } }), [isMobile]);
45
+ const tmRecentsManagerElement = useMemo(() => _jsx(TMRecentsManagerWrapper, { mruTIDs: mruTIDs, currentMruTID: currentMruTID, deviceType: deviceType, onSelectedTID: (tid) => {
46
+ setCurrentMruTID(tid);
47
+ setCurrentTID(tid);
48
+ }, onDeletedTID: (tid) => {
49
+ let newMruTIDS = mruTIDs.slice();
50
+ let index = newMruTIDS.findIndex(o => o == tid);
51
+ if (index >= 0)
52
+ newMruTIDS.splice(index, 1);
53
+ SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
54
+ setMruTIDs(newMruTIDS);
55
+ } }), [mruTIDs, currentMruTID, deviceType]);
56
+ const tmFormElement = useMemo(() => currentTID ?
57
+ _jsx(TMDcmtForm, { TID: currentTID, DID: undefined, groupId: 'tmForm', layoutMode: LayoutModes.Ark, showPreview: deviceType !== DeviceType.MOBILE, onClose: deviceType === DeviceType.MOBILE ? () => setCurrentTID(undefined) : undefined, onSaveRecents: (TIDs) => setMruTIDs(TIDs), showDcmtFormSidebar: false })
58
+ :
59
+ _jsx(TMPanel, { title: 'Archiviazione', children: _jsxs(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: [_jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsxs(StyledToppyTextContainer, { children: [" ", _jsxs(StyledToppyText, { children: [" ", SDKUI_Localizator.DcmtTypeSelect, " "] }), " "] }), " "] }), _jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsx("img", { src: Logo, width: 120, alt: '' }), " "] })] }) }), [currentTID, deviceType, mruTIDs]);
60
+ const allInitialPanelVisibility = {
61
+ 'tmTreeSelector': true,
62
+ 'tmRecentsManager': true,
63
+ 'tmForm': true,
64
+ 'tmDcmtForm': true,
65
+ 'tmBlog': false,
66
+ 'tmSysMetadata': false,
67
+ 'tmDcmtPreview': true,
68
+ };
69
+ const initialPanelDimensions = {
70
+ 'tmTreeSelector': { width: '20%', height: '100%' },
71
+ 'tmRecentsManager': { width: '20%', height: '100%' },
72
+ 'tmForm': { width: '60%', height: '100%' },
73
+ 'tmDcmtForm': { width: '25%', height: '100%' },
74
+ 'tmBlog': { width: '25%', height: '100%' },
75
+ 'tmSysMetadata': { width: '25%', height: '100%' },
76
+ 'tmDcmtPreview': { width: '25%', height: '100%' },
77
+ };
78
+ const initialPanels = useMemo(() => [
79
+ {
80
+ id: 'tmTreeSelector',
81
+ name: SDK_Localizator.Trees,
82
+ contentOptions: { component: tmTreeSelectorElement },
83
+ toolbarOptions: { icon: _jsx(IconTree, { fontSize: 24 }), visible: true, orderNumber: 1, isActive: allInitialPanelVisibility['tmTreeSelector'] }
84
+ },
85
+ {
86
+ id: 'tmRecentsManager',
87
+ name: SDKUI_Localizator.Shortcuts,
88
+ contentOptions: { component: tmRecentsManagerElement, panelContainer: { title: SDKUI_Localizator.Shortcuts, totalItems: mruTIDs.length } },
89
+ toolbarOptions: { icon: _jsx(IconRecentlyViewed, { fontSize: 24 }), visible: true, orderNumber: 2, isActive: allInitialPanelVisibility['tmRecentsManager'] }
90
+ },
91
+ {
92
+ id: 'tmForm',
93
+ name: fromDTD?.nameLoc ?? SDK_Localizator.Metadatas,
94
+ contentOptions: { component: tmFormElement },
95
+ toolbarOptions: { icon: _jsx(IconPreview, { fontSize: 24 }), visible: false, orderNumber: 3, isActive: allInitialPanelVisibility['tmForm'] },
96
+ children: [
97
+ {
98
+ id: 'tmDcmtForm',
99
+ name: SDK_Localizator.Metadatas,
100
+ toolbarOptions: { icon: _jsx(IconPreview, { fontSize: 24 }), visible: false, orderNumber: 4, isActive: allInitialPanelVisibility['tmDcmtForm'] }
101
+ },
102
+ {
103
+ id: 'tmBlog',
104
+ name: SDKUI_Localizator.BlogCase,
105
+ toolbarOptions: { icon: _jsx(IconBoard, { fontSize: 24 }), visible: false, orderNumber: 5, isActive: allInitialPanelVisibility['tmBlog'] }
106
+ },
107
+ {
108
+ id: 'tmSysMetadata',
109
+ name: SDKUI_Localizator.MetadataSystem,
110
+ toolbarOptions: { icon: _jsx(IconDcmtTypeSys, { fontSize: 24 }), visible: false, orderNumber: 6, isActive: allInitialPanelVisibility['tmSysMetadata'] }
111
+ },
112
+ {
113
+ id: 'tmDcmtPreview',
114
+ name: SDKUI_Localizator.PreviewDocument,
115
+ toolbarOptions: { icon: _jsx(IconShow, { fontSize: 24 }), visible: false, orderNumber: 7, isActive: allInitialPanelVisibility['tmDcmtPreview'] }
116
+ }
117
+ ]
118
+ },
119
+ ], [tmTreeSelectorElement, tmRecentsManagerElement, tmFormElement, currentTID, mruTIDs]);
120
+ return (_jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'tmRecentsManager', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", showToolbar: true }) }));
65
121
  };
66
122
  export default TMArchive;
123
+ const TMTreeSelectorWrapper = ({ isMobile, onSelectedTIDChanged }) => {
124
+ const { setPanelVisibilityById, toggleMaximize, setToolbarButtonVisibility } = useTMPanelManagerContext();
125
+ return (_jsx(TMTreeSelector, { onClosePanel: () => setPanelVisibilityById('tmTreeSelector', false), onMaximizePanel: () => toggleMaximize('tmTreeSelector'), onSelectedTIDChanged: (tid) => {
126
+ onSelectedTIDChanged?.(tid);
127
+ if (isMobile)
128
+ setPanelVisibilityById('tmForm', true);
129
+ else {
130
+ setPanelVisibilityById('tmDcmtForm', true);
131
+ setPanelVisibilityById('tmDcmtPreview', true);
132
+ }
133
+ setToolbarButtonVisibility('tmDcmtPreview', true);
134
+ setToolbarButtonVisibility('tmDcmtForm', true);
135
+ } }));
136
+ };
137
+ const TMRecentsManagerWrapper = ({ mruTIDs, currentMruTID, deviceType, onSelectedTID, onDeletedTID }) => {
138
+ const { setPanelVisibilityById, setToolbarButtonVisibility } = useTMPanelManagerContext();
139
+ return (_jsx(TMRecentsManager, { mruTIDs: mruTIDs, currentMruTID: currentMruTID, deviceType: deviceType, onSelectedTID: (tid) => {
140
+ onSelectedTID?.(tid);
141
+ if (deviceType === DeviceType.MOBILE)
142
+ setPanelVisibilityById('tmForm', true);
143
+ else {
144
+ setPanelVisibilityById('tmDcmtForm', true);
145
+ setPanelVisibilityById('tmDcmtPreview', true);
146
+ }
147
+ setToolbarButtonVisibility('tmDcmtPreview', true);
148
+ setToolbarButtonVisibility('tmDcmtForm', true);
149
+ }, onDeletedTID: (tid) => {
150
+ onDeletedTID?.(tid);
151
+ } }));
152
+ };
@@ -435,10 +435,10 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
435
435
  } }), _jsxs(StyledFormButtonsContainer, { children: [_jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: _jsx("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', gap: '8px' }, children: layoutMode === LayoutModes.Update ? _jsxs(_Fragment, { children: [_jsx(TMSaveFormButtonSave, { showTooltip: false, btnStyle: 'advanced', advancedColor: '#f09c0a', isModified: isModified, formMode: formMode, errorsCount: validationItems.filter(o => o.ResultType == ResultTypes.ERROR).length, onSaveAsync: confirmActionPopup }), _jsx(TMSaveFormButtonUndo, { btnStyle: 'toolbar', showTooltip: true, color: 'primary', isModified: isModified, formMode: formMode, onUndo: onUndoHandler })] }) :
436
436
  _jsxs(_Fragment, { children: [_jsx(TMButton, { disabled: archiveBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconBoxArchiveIn, {}), width: 'auto', showTooltip: false, caption: SDKUI_Localizator.Archive, advancedColor: TMColors.success, onClick: confirmActionPopup }), _jsx(TMButton, { disabled: !clearFormBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconClear, {}), width: 'auto', showTooltip: false, caption: SDKUI_Localizator.Clear, advancedColor: TMColors.tertiary, onClick: clearFormHandler }), DID && _jsx(TMButton, { disabled: undoBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconUndo, {}), width: '150px', showTooltip: false, caption: SDKUI_Localizator.Undo, advancedColor: TMColors.tertiary, onClick: onUndoHandler })] }) }) }), totalItems > listMaxItems && _jsx(TMShowAllOrMaxItemsButton, { showAll: showAll, dataSourceLength: totalItems, onClick: () => { setShowAll(!showAll); } })] }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, TID: TID, DID: DID, op: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, TID: TID, DID: DID, op: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, TID: TID, DID: DID, onClose: () => setShowReAssignPopup(false) }), _jsx(ConfirmAttachmentsDialog, {})] }) }), [TID, DID, formData, formDataOrig, focusedMetadataValue, isOpenDistinctValues, isOpenFormulaEditor, validationItems, showAll]);
437
437
  const tmBlog = useMemo(() => _jsx(TMDcmtBlog, { tid: TID, did: DID }), [TID, DID]);
438
- const tmSysMetadata = useMemo(() => _jsx(TMMetadataValues, { layoutMode: layoutMode, openChooserBySingleClick: !isOpenDistinctValues, TID: TID, isReadOnly: true, deviceType: deviceType, metadataValues: formData.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: formData.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] }), [TID, formData, deviceType]);
438
+ const tmSysMetadata = useMemo(() => _jsx(TMMetadataValues, { layoutMode: layoutMode, openChooserBySingleClick: !isOpenDistinctValues, TID: TID, isReadOnly: true, deviceType: deviceType, metadataValues: formData.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: formData.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] }), [TID, layoutMode, formData, deviceType]);
439
439
  const tmDcmtPreview = useMemo(() => _jsx(TMDcmtPreviewWrapper, { currentDcmt: currentDcmt, dcmtFile: dcmtFile, deviceType: deviceType, fromDTD: fromDTD, layoutMode: layoutMode, onFileUpload: (setFile) => {
440
440
  setDcmtFile(setFile);
441
- } }), [currentDcmt]);
441
+ } }), [currentDcmt, dcmtFile, deviceType, fromDTD, layoutMode]);
442
442
  const allInitialPanelVisibility = {
443
443
  'tmDcmtForm': true,
444
444
  'tmBlog': false,
@@ -519,10 +519,9 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
519
519
  gap: SDKUI_Globals.userSettings.themeSettings.gutters,
520
520
  width: '100%',
521
521
  height: '100%',
522
- }, children: [_jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: useWaitPanelLocalState ? showWaitPanelLocal : showWaitPanel, showWaitPanelPrimary: useWaitPanelLocalState ? showPrimaryLocal : showPrimary, showWaitPanelSecondary: useWaitPanelLocalState ? showSecondaryLocal : showSecondary, waitPanelTitle: useWaitPanelLocalState ? waitPanelTitleLocal : waitPanelTitle, waitPanelTextPrimary: useWaitPanelLocalState ? waitPanelTextPrimaryLocal : waitPanelTextPrimary, waitPanelValuePrimary: useWaitPanelLocalState ? waitPanelValuePrimaryLocal : waitPanelValuePrimary, waitPanelMaxValuePrimary: useWaitPanelLocalState ? waitPanelMaxValuePrimaryLocal : waitPanelMaxValuePrimary, waitPanelTextSecondary: useWaitPanelLocalState ? waitPanelTextSecondaryLocal : waitPanelTextSecondary, waitPanelValueSecondary: useWaitPanelLocalState ? waitPanelValueSecondaryLocal : waitPanelValueSecondary, waitPanelMaxValueSecondary: useWaitPanelLocalState ? waitPanelMaxValueSecondaryLocal : waitPanelMaxValueSecondary, isCancelable: useWaitPanelLocalState ? dcmtFile ? dcmtFile.size >= 1000000 : false : true, abortController: useWaitPanelLocalState ? abortControllerLocal : abortController, children: [(groupId && groupId.length > 0) ?
523
- _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })
524
- :
525
- _jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'tmDcmtForm', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar }) }), isOpenDistinctValues &&
522
+ }, children: [_jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: useWaitPanelLocalState ? showWaitPanelLocal : showWaitPanel, showWaitPanelPrimary: useWaitPanelLocalState ? showPrimaryLocal : showPrimary, showWaitPanelSecondary: useWaitPanelLocalState ? showSecondaryLocal : showSecondary, waitPanelTitle: useWaitPanelLocalState ? waitPanelTitleLocal : waitPanelTitle, waitPanelTextPrimary: useWaitPanelLocalState ? waitPanelTextPrimaryLocal : waitPanelTextPrimary, waitPanelValuePrimary: useWaitPanelLocalState ? waitPanelValuePrimaryLocal : waitPanelValuePrimary, waitPanelMaxValuePrimary: useWaitPanelLocalState ? waitPanelMaxValuePrimaryLocal : waitPanelMaxValuePrimary, waitPanelTextSecondary: useWaitPanelLocalState ? waitPanelTextSecondaryLocal : waitPanelTextSecondary, waitPanelValueSecondary: useWaitPanelLocalState ? waitPanelValueSecondaryLocal : waitPanelValueSecondary, waitPanelMaxValueSecondary: useWaitPanelLocalState ? waitPanelMaxValueSecondaryLocal : waitPanelMaxValueSecondary, isCancelable: useWaitPanelLocalState ? dcmtFile ? dcmtFile.size >= 1000000 : false : true, abortController: useWaitPanelLocalState ? abortControllerLocal : abortController, children: [(groupId && groupId.length > 0)
523
+ ? _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar })
524
+ : _jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'tmDcmtForm', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showDcmtFormSidebar }) }), isOpenDistinctValues &&
526
525
  _jsx(TMDistinctValues, { tid: TID, mid: focusedMetadataValue?.mid, isModal: true, showHeader: false, layoutMode: layoutMode, onSelectionChanged: (e) => {
527
526
  if (!e)
528
527
  return;
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useRef, useState } from 'react';
3
3
  import styled from 'styled-components';
4
4
  import { RetrieveFileOptions, DcmtOpers, GeneralRetrieveFormats, FileFormats } from '@topconsultnpm/sdk-ts-beta';
5
- import { extensionHandler, sleep, getExceptionMessage, formatBytes, IconMenuVertical, IconCloseCircle, IconClear, IconCloseOutline, IconPreview, SDKUI_Globals, IconZoomOutLinear, IconZoomInLinear, IconPrintOutline } from '../../../helper';
5
+ import { extensionHandler, sleep, getExceptionMessage, formatBytes, IconMenuVertical, IconCloseCircle, IconClear, IconCloseOutline, IconPreview, SDKUI_Globals, IconZoomOutLinear, IconZoomInLinear, IconPrintOutline, SDKUI_Localizator } from '../../../helper';
6
6
  import { useDcmtOperations } from '../../../hooks/useDcmtOperations';
7
7
  import { FileExtensionHandler, FormModes } from '../../../ts';
8
8
  import { TMColors } from '../../../utils/theme';
@@ -129,7 +129,7 @@ export const TMFileViewer = ({ fileBlob, isResizingActive }) => {
129
129
  return () => { };
130
130
  }, [fileBlob]);
131
131
  if (!fileBlob) {
132
- return _jsx("div", { children: "Caricamento file..." });
132
+ return _jsx("div", { children: `${SDKUI_Localizator.FileUpload}...` });
133
133
  }
134
134
  if (fileBlob.type.includes('image')) {
135
135
  return (_jsx(ImageViewer, { fileBlob: fileBlob, alt: '' }));
@@ -73,7 +73,7 @@ const TMFileUploader = ({ deviceType = DeviceType.DESKTOP, onClose, onFileUpload
73
73
  _jsx("div", { style: { display: 'flex', gap: 10, width: '100%', height: '100%' }, children: _jsxs(UploadContainer, { ref: uploaderRef, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, style: { backgroundColor: dragOver ? '#76b1e6' : 'white' }, onDoubleClick: browseHandler, "$isRequired": isRequired, children: [_jsx("div", { style: { display: 'flex', gap: '10px', flexDirection: 'column', position: 'absolute', right: 5, top: 5 }, children: _jsx(TMButton, { btnStyle: 'icon', caption: 'Sfoglia', color: isRequired && !uploadedFile ? 'error' : 'primary', onClick: browseHandler, icon: _jsx(IconFolderOpen, { fontSize: 22 }) }) }), _jsx("p", { style: { fontSize: '1.2rem', fontWeight: 'bold' }, children: deviceType === DeviceType.MOBILE ? 'Clicca per sfogliare il tuo file' : 'Trascina il tuo file qui o fai doppio click per sfogliarlo' }), isRequired && _jsxs("p", { style: { fontWeight: 'bold' }, children: [" ", SDKUI_Localizator.RequiredField, " "] })] }) }) :
74
74
  _jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 10, width: '100%', height: '100%' }, children: [_jsxs("div", { style: { backgroundColor: 'white', padding: '5px 10px', borderRadius: 8, display: 'flex', alignItems: 'center', justifyContent: 'space-between', color: TMColors.primaryColor }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 5 }, children: [_jsx("p", { children: "File name:" }), _jsxs("div", { style: { fontWeight: 'bold' }, children: [fileName, " ", _jsxs("span", { children: [" ", ` (${formatBytes(fileSize)})`, " "] })] })] }), uploadedFile && _jsx(TMButton, { btnStyle: 'icon', color: 'error', caption: 'Pulisci', onClick: clearFile, icon: _jsx(IconClear, { fontSize: 22 }) })] }), extensionHandler(fileExt) === FileExtensionHandler.READY_TO_SHOW ? _jsx(TMFileViewer, { fileBlob: uploadedFile, isResizingActive: isResizingActive }) :
75
75
  _jsx("div", { style: { backgroundColor: '#f6dbdb', padding: '5px 10px', borderRadius: 8, display: 'flex', alignItems: 'center', justifyContent: 'space-between', color: TMColors.error }, children: _jsxs("div", { children: [" ", 'Anteprima non disponibile.', fileExt && _jsx("b", { children: ` (*.${fileExt})` })] }) })] });
76
- return (_jsx(TMPanel, { title: 'Caricamento File', onBack: deviceType === DeviceType.MOBILE ? () => onClose?.() : undefined, toolbar: deviceType !== DeviceType.MOBILE ? _jsx(StyledHeaderIcon, { onClick: onClose, "$color": 'white', children: _jsx(TMTooltip, { content: SDKUI_Localizator.Close, children: _jsx(IconCloseOutline, {}) }) }) : undefined, children: _jsxs("div", { style: { width: '100%', height: '100%', padding: '2px', display: 'flex', flexDirection: 'column', gap: 10 }, children: [_jsx(HiddenInput, { id: "fileInput", type: "file", onChange: handleInputChange }), content] }) }));
76
+ return (_jsx(TMPanel, { title: SDKUI_Localizator.FileUpload, onBack: deviceType === DeviceType.MOBILE ? () => onClose?.() : undefined, toolbar: deviceType !== DeviceType.MOBILE ? _jsx(StyledHeaderIcon, { onClick: onClose, "$color": 'white', children: _jsx(TMTooltip, { content: SDKUI_Localizator.Close, children: _jsx(IconCloseOutline, {}) }) }) : undefined, children: _jsxs("div", { style: { width: '100%', height: '100%', padding: '2px', display: 'flex', flexDirection: 'column', gap: 10 }, children: [_jsx(HiddenInput, { id: "fileInput", type: "file", onChange: handleInputChange }), content] }) }));
77
77
  };
78
78
  const UploadContainer = styled.div `
79
79
  position: relative;
@@ -7,7 +7,6 @@ import ContextMenu from 'devextreme-react/cjs/context-menu';
7
7
  import { SDKUI_Localizator, Globalization, svgToString, IconStar, IconDelete, IconDashboard, IconSavedQuery, IconApply, IconInfo, IconCloseOutline } from '../../../helper';
8
8
  import { TMColors } from '../../../utils/theme';
9
9
  import ShowAlert from '../../base/TMAlert';
10
- import TMButton from '../../base/TMButton';
11
10
  import { TMMessageBoxManager, ButtonNames, TMExceptionBoxManager } from '../../base/TMPopUp';
12
11
  import TMSpinner from '../../base/TMSpinner';
13
12
  import TMTooltip from '../../base/TMTooltip';
@@ -15,6 +14,7 @@ import { TMSearchBar } from '../../sidebar/TMHeader';
15
14
  import { DeviceType, useDeviceType } from '../../base/TMDeviceProvider';
16
15
  import { StyledDivHorizontal, StyledOffCanvasPanel } from '../../base/Styled';
17
16
  import { useOutsideClick } from '../../../hooks/useOutsideClick';
17
+ import TMShowAllOrMaxItemsButton from '../../base/TMShowAllOrMaxItemsButton';
18
18
  const StyledSqdItem = styled.div `
19
19
  display: flex;
20
20
  flex-direction: column;
@@ -33,7 +33,7 @@ const StyledSqdItem = styled.div `
33
33
  .info-icon {
34
34
  position: absolute;
35
35
  left: -2px;
36
- top: 50%;
36
+ top: calc(50% - 5px);
37
37
  transform: translateY(-50%);
38
38
  opacity: 0;
39
39
  transition: opacity 0.2s;
@@ -177,6 +177,7 @@ const TMSavedQuerySelector = React.memo(({ items, selectedId, allowShowSearch =
177
177
  display: 'flex',
178
178
  flexDirection: 'column',
179
179
  width: '100%',
180
+ height: 'calc(100% - 150px)',
180
181
  padding: '5px 10px',
181
182
  gap: '3px',
182
183
  overflow: 'auto'
@@ -214,8 +215,6 @@ const TMSavedQuerySelector = React.memo(({ items, selectedId, allowShowSearch =
214
215
  fontSize: '1rem',
215
216
  fontWeight: 'bold'
216
217
  }, children: _jsx(IconApply, { fontSize: 24, color: 'green' }) }), _jsx(SavedQueryContexMenu, { sqd: sqd, manageDefault: manageDefault, isMobile: isMobile, setInfoSQD: setInfoSQD, setDefaultAsync: () => setDefaultSQDAsync(sqd), deleteAsync: () => deleteSQDAsync(sqd), favManageAsync: () => favManageSQDAsync(sqd) })] }, sqd.id))) }), dataSource.length > initialSQDsMaxItems && searchText.length <= 0 &&
217
- _jsx(TMButton, { elementStyle: { display: 'flex', justifyContent: 'flex-end', padding: '10px' }, btnStyle: 'icon', caption: showAllRoot ? "Mostra meno" : `Mostra tutte le ricerche (+${dataSource.length - initialSQDsMaxItems})`, icon: showAllRoot ?
218
- _jsx("div", { style: { backgroundColor: TMColors.primaryColor, minWidth: '30px', minHeight: '30px', borderRadius: '10px', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { style: { color: 'white' }, children: `-${dataSource.length - initialSQDsMaxItems}` }) }) :
219
- _jsx("div", { style: { backgroundColor: TMColors.primaryColor, minWidth: '30px', minHeight: '30px', borderRadius: '10px', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { style: { color: 'white' }, children: `+${dataSource.length - initialSQDsMaxItems}` }) }), onClick: () => setShowAllRoot(!showAllRoot) }), _jsxs(StyledOffCanvasPanel, { ref: panelRef, "$isOpen": isMobile && infoSQD !== undefined, children: [_jsxs(StyledDivHorizontal, { style: { gap: 10, padding: '10px 8px', width: '100%', alignItems: 'center' }, children: [_jsx("p", { style: { fontSize: '1.1rem', fontWeight: 'bold' }, children: `${SDK_Localizator.SavedQuery} - ${SDKUI_Localizator.About}` }), _jsx(IconCloseOutline, { style: { marginLeft: 'auto', cursor: 'pointer' }, onClick: () => setInfoSQD(undefined) })] }), getTooltipBySqd(infoSQD)] })] }));
218
+ _jsx("div", { style: { display: 'flex', justifyContent: 'flex-end', padding: '10px', position: 'relative' }, children: _jsx(TMShowAllOrMaxItemsButton, { showAll: showAllRoot, dataSourceLength: dataSource.length, onClick: () => { setShowAllRoot(!showAllRoot); } }) }), _jsxs(StyledOffCanvasPanel, { ref: panelRef, "$isOpen": isMobile && infoSQD !== undefined, children: [_jsxs(StyledDivHorizontal, { style: { gap: 10, padding: '10px 8px', width: '100%', alignItems: 'center' }, children: [_jsx("p", { style: { fontSize: '1.1rem', fontWeight: 'bold' }, children: `${SDK_Localizator.SavedQuery} - ${SDKUI_Localizator.About}` }), _jsx(IconCloseOutline, { style: { marginLeft: 'auto', cursor: 'pointer' }, onClick: () => setInfoSQD(undefined) })] }), getTooltipBySqd(infoSQD)] })] }));
220
219
  });
221
220
  export default TMSavedQuerySelector;
@@ -188,7 +188,7 @@ const TMSearch = ({ inputTID, inputSqdID, isExpertMode = SDKUI_Globals.userSetti
188
188
  {
189
189
  id: 'TMRecentsManager',
190
190
  name: SDKUI_Localizator.Shortcuts,
191
- contentOptions: { component: tmRecentsManagerElement, panelContainer: { title: SDKUI_Localizator.Shortcuts } },
191
+ contentOptions: { component: tmRecentsManagerElement, panelContainer: { title: SDKUI_Localizator.Shortcuts, totalItems: mruTIDs.length } },
192
192
  toolbarOptions: { icon: _jsx(IconRecentlyViewed, { fontSize: 24 }), visible: true, orderNumber: 2, isActive: allInitialPanelVisibility['TMRecentsManager'] }
193
193
  },
194
194
  {
@@ -203,7 +203,7 @@ const TMSearch = ({ inputTID, inputSqdID, isExpertMode = SDKUI_Globals.userSetti
203
203
  contentOptions: { component: tmSavedQuerySelectorElement, panelContainer: { title: SDK_Localizator.SavedQueries } },
204
204
  toolbarOptions: { icon: _jsx(IconSavedQuery, { fontSize: 24 }), visible: true, orderNumber: 4, isActive: allInitialPanelVisibility['TMSavedQuerySelector'] }
205
205
  }
206
- ], [tmTreeSelectorElement, tmRecentsManagerElement, tmSearchQueryPanelElement, tmSavedQuerySelectorElement, fromDTD]);
206
+ ], [tmTreeSelectorElement, tmRecentsManagerElement, tmSearchQueryPanelElement, tmSavedQuerySelectorElement, fromDTD, mruTIDs]);
207
207
  return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Search, children: _jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'TMRecentsManager', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", showToolbar: true }) }) }), searchResult.length > 0 &&
208
208
  _jsx(TMSearchResult, { isVisible: currentSearchView === TMSearchViews.Result, context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync: async () => {
209
209
  setSearchResult(await refreshLastSearch(lastQdSearched) ?? []);
@@ -198,7 +198,7 @@ const TMSearchQueryPanel = ({ fromDTD, isExpertMode = SDKUI_Globals.userSettings
198
198
  setQd({ ...qd, orderBy: newOrderBy });
199
199
  } })] })
200
200
  :
201
- _jsxs(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: [_jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsxs(StyledToppyTextContainer, { children: [" ", _jsxs(StyledToppyText, { children: [" ", 'Selezionare un tipo documento o ricerca rapida', " "] }), " "] }), " "] }), _jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsx("img", { src: Logo, width: 120, alt: '' }), " "] })] }), showSqdForm &&
201
+ _jsxs(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: [_jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsxs(StyledToppyTextContainer, { children: [" ", _jsxs(StyledToppyText, { children: [" ", SDKUI_Localizator.DcmtTypeSelectOrQuickSearch, " "] }), " "] }), " "] }), _jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsx("img", { src: Logo, width: 120, alt: '' }), " "] })] }), showSqdForm &&
202
202
  _jsx(StyledModalContainer, { style: { backgroundColor: `${TMColors.backgroundColorHeader}12` }, children: _jsx(TMSavedQueryForm, { height: '50%', width: '50%', id: formModeSqdForm === FormModes.Create ? -1 : SQD?.id, title: 'Ricerca rapida', formMode: formModeSqdForm, showBackButton: true, qd: qd, isAdvancedSearch: showAdvancedSearch, isModal: false, onClose: () => { setShowSqdForm(false); }, onSaved: onSqdSaved }) })] }), showDistinctValuesPanel &&
203
203
  _jsx(TMDistinctValues, { isModal: true, tid: focusedTidMid?.tid, mid: focusedTidMid?.mid, separator: ',', onClosePanelCallback: () => setShowDistinctValuesPanel(false), onSelectionChanged: (e) => {
204
204
  if (!e)
@@ -27,7 +27,7 @@ const StyledRecentTidItem = styled.div `
27
27
  .info-icon {
28
28
  position: absolute;
29
29
  left: -7px;
30
- top: 50%;
30
+ top: calc(50% - 5px);
31
31
  transform: translateY(-50%);
32
32
  opacity: 0;
33
33
  transition: opacity 0.2s;
@@ -14,9 +14,6 @@ export * from './base/TMToolbarCard';
14
14
  export * from './base/TMRightSidebar';
15
15
  export * from './base/TMTreeView';
16
16
  export * from './base/TMPanel';
17
- export { default as TMPanelManager } from './base/TMPanelManager';
18
- export { default as TMPanelManagerToolbar } from './base/TMPanelManagerToolbar';
19
- export * from './base/TMPanelManagerUtils';
20
17
  export { default as CounterBar } from './base/TMCounterBar';
21
18
  export { default as TMProgressBar } from './base/TMProgressBar';
22
19
  export { default as TMSpinner } from './base/TMSpinner';
@@ -15,9 +15,6 @@ export * from './base/TMToolbarCard';
15
15
  export * from './base/TMRightSidebar';
16
16
  export * from './base/TMTreeView';
17
17
  export * from './base/TMPanel';
18
- export { default as TMPanelManager } from './base/TMPanelManager';
19
- export { default as TMPanelManagerToolbar } from './base/TMPanelManagerToolbar';
20
- export * from './base/TMPanelManagerUtils';
21
18
  export { default as CounterBar } from './base/TMCounterBar';
22
19
  export { default as TMProgressBar } from './base/TMProgressBar';
23
20
  export { default as TMSpinner } from './base/TMSpinner';
@@ -36,11 +36,11 @@ const TMPanelManagerToolbar = (props) => {
36
36
  useEffect(() => {
37
37
  // Flatten panels, filter visible leaf nodes, and sort by orderNumber
38
38
  const visibleLeafPanelsSorted = flattenPanels(panels)
39
- .filter(panel => panel.toolbarOptions?.visible && !panel.children?.length)
39
+ .filter(panel => toolbarButtonsVisibility[panel.id] && !panel.children?.length)
40
40
  .sort((a, b) => (a.toolbarOptions?.orderNumber ?? 0) - (b.toolbarOptions?.orderNumber ?? 0));
41
41
  // Update state with the filtered and sorted leaf panels for the toolbar
42
42
  setVisibleLeafPanels(visibleLeafPanelsSorted);
43
- }, [panels]);
43
+ }, [toolbarButtonsVisibility]);
44
44
  return (_jsx("div", { style: {
45
45
  display: 'flex',
46
46
  flexDirection: isMobile ? 'row' : 'column',
@@ -88,6 +88,7 @@ export declare class SDKUI_Localizator {
88
88
  static get DcmtType(): "Dokumententyp" | "Document type" | "Tipo de documento" | "Type de document" | "Tipo documento";
89
89
  static get DcmtTypesSelected(): "Ausgewählte Dokumenttypen" | "Selected document types" | "Tipos de documentos seleccionados" | "Types de documents sélectionnés" | "Tipos de documentos selecionados" | "Tipi documento selezionati";
90
90
  static get DcmtTypeSelect(): "Wählen Sie einen Dokumenttyp aus" | "Select a document type" | "Seleccione un tipo de documento" | "Sélectionnez un type de document" | "Selecione um tipo de documento" | "Selezionare un tipo documento";
91
+ static get DcmtTypeSelectOrQuickSearch(): "Wählen Sie einen Dokumenttyp oder eine Schnellsuche aus" | "Select a document type or quick search" | "Seleccione un tipo de documento o búsqueda rápida" | "Sélectionnez un type de document ou une recherche rapide" | "Selecione um tipo de documento ou pesquisa rápida" | "Selezionare un tipo documento o ricerca rapida";
91
92
  static get Default(): "Standard" | "Default" | "Predeterminado" | "Defaultão";
92
93
  static get Details(): "Einzelheiten" | "Details" | "Detalles" | "Détails" | "detalhes" | "Dettagli";
93
94
  static get Delete(): "Löschen" | "Delete" | "Borrar" | "Supprimer" | "Excluir" | "Elimina";
@@ -146,6 +147,7 @@ export declare class SDKUI_Localizator {
146
147
  static get FEFormats_SDI_PDF(): "SdI Style Sheet (PDF)" | "Hoja de estilo SdI (PDF)" | "Feuille de style SdI (PDF)" | "Folha de estilo SdI (PDF)" | "Foglio di stile SdI (PDF)";
147
148
  static get FileManager_QuestionAlreadyExistsFile(): "Ziel enthält bereits eine Datei mit der Bezeichnung {{0}}, ersetzen durch die neue Datei?" | "The destination already contains a file called {{0}}, replace with the new file?" | "El destino ya contiene un archivo llamado {{0}}, ¿sustituir con el nuevo archivo?" | "La destination contient déjà un fichier appelé {{0}}, remplacer avec le nouveau fichier?" | "O destino já contém um ficheiro chamado {{0}}, substitua com o novo arquivo?" | "La destinazione contiene già un file denominato {{0}}, sostituire con il nuovo file?";
148
149
  static get FileManager_QuestionAlreadyExistsFiles(): "Ziel enthält {{0}} Datei mit dem gleichen Namen, ersetzen durch neue Dateien?" | "Destination contains {{0}} files with the same name, replace with new files?" | "El destino contiene {{0}} archivos con el mismo nombre, ¿sustituir con los nuevos archivos?" | "La destination contient {{0}} fichier portant le même nom, remplacer avec les nouveaux fichiers?" | "O destino contém ficheiros {{0}} com o mesmo nome, substitua por novos arquivos?" | "La destinazione contiene {{0}} file con lo stesso nome, sostituire con i nuovi file?";
150
+ static get FileUpload(): "Datei hochladen" | "File upload" | "Carga de archivo" | "Téléchargement de fichier" | "Carregamento de arquivo" | "Caricamento File";
149
151
  static get FolderExist(): "Ordner existiert bereits. Bitte versuchen Sie einen anderen Namen" | "Folder already exists. Please try another name" | "La carpeta ya existe. Intente con otro nombre." | "Le dossier existe déjà. Veuillez essayer un autre nom" | "A pasta já existe. Por favor tente outro nome" | "La cartella esiste già. Prova un altro nome";
150
152
  static get FolderIsEmpty(): string;
151
153
  static get ForgetPassword(): "Passwort vergessen" | "Forgot password" | "Has olvidado tu contraseña" | "Mot de passe oublié" | "Esqueceu sua senha" | "Password dimenticata";
@@ -355,6 +357,8 @@ export declare class SDKUI_Localizator {
355
357
  static get SharingModes_Public(): "Öffentlich" | "Public" | "Pública" | "Público" | "Pubblica";
356
358
  static get SharingModes_Shared(): "Geteilt" | "Shared" | "Compartida" | "Partagé" | "Partilhada" | "Condivisa";
357
359
  static get Shortcuts(): "Tastenkombinationen" | "Shortcuts" | "Atajos" | "Raccourcis" | "Atalhos" | "Scorciatoie";
360
+ static get ShowAll(): "Alle anzeigen" | "Show all" | "Mostrar todo" | "Tout afficher" | "Mostrar tudo" | "Mostra tutti";
361
+ static get ShowLess(): "Weniger anzeigen" | "Show less" | "Mostrar menos" | "Afficher moins" | "Mostra meno";
358
362
  static get Show_CompleteName(): "Vollständigen Namen anzeigen" | "View full name" | "Mostrar nombre completo" | "Afficher le nom complet" | "Mostrar nome completo" | "Visualizza nome completo";
359
363
  static get ShowDetails(): "Details anzeigen" | "Show details" | "Mostrar detalles" | "Afficher les détails" | "Mostrar detalhes" | "Mostra dettagli";
360
364
  static get ShowFilters(): string;
@@ -829,6 +829,16 @@ export class SDKUI_Localizator {
829
829
  default: return "Selezionare un tipo documento";
830
830
  }
831
831
  }
832
+ static get DcmtTypeSelectOrQuickSearch() {
833
+ switch (this._cultureID) {
834
+ case CultureIDs.De_DE: return "Wählen Sie einen Dokumenttyp oder eine Schnellsuche aus";
835
+ case CultureIDs.En_US: return "Select a document type or quick search";
836
+ case CultureIDs.Es_ES: return "Seleccione un tipo de documento o búsqueda rápida";
837
+ case CultureIDs.Fr_FR: return "Sélectionnez un type de document ou une recherche rapide";
838
+ case CultureIDs.Pt_PT: return "Selecione um tipo de documento ou pesquisa rápida";
839
+ default: return "Selezionare un tipo documento o ricerca rapida";
840
+ }
841
+ }
832
842
  static get Default() {
833
843
  switch (this._cultureID) {
834
844
  case CultureIDs.De_DE: return "Standard";
@@ -1421,6 +1431,16 @@ export class SDKUI_Localizator {
1421
1431
  default: return "La destinazione contiene {{0}} file con lo stesso nome, sostituire con i nuovi file?";
1422
1432
  }
1423
1433
  }
1434
+ static get FileUpload() {
1435
+ switch (this._cultureID) {
1436
+ case CultureIDs.De_DE: return "Datei hochladen";
1437
+ case CultureIDs.En_US: return "File upload";
1438
+ case CultureIDs.Es_ES: return "Carga de archivo";
1439
+ case CultureIDs.Fr_FR: return "Téléchargement de fichier";
1440
+ case CultureIDs.Pt_PT: return "Carregamento de arquivo";
1441
+ default: return "Caricamento File";
1442
+ }
1443
+ }
1424
1444
  static get FolderExist() {
1425
1445
  switch (this._cultureID) {
1426
1446
  case CultureIDs.De_DE: return "Ordner existiert bereits. Bitte versuchen Sie einen anderen Namen";
@@ -3508,6 +3528,26 @@ export class SDKUI_Localizator {
3508
3528
  default: return "Scorciatoie";
3509
3529
  }
3510
3530
  }
3531
+ static get ShowAll() {
3532
+ switch (this._cultureID) {
3533
+ case CultureIDs.De_DE: return "Alle anzeigen";
3534
+ case CultureIDs.En_US: return "Show all";
3535
+ case CultureIDs.Es_ES: return "Mostrar todo";
3536
+ case CultureIDs.Fr_FR: return "Tout afficher";
3537
+ case CultureIDs.Pt_PT: return "Mostrar tudo";
3538
+ default: return "Mostra tutti";
3539
+ }
3540
+ }
3541
+ static get ShowLess() {
3542
+ switch (this._cultureID) {
3543
+ case CultureIDs.De_DE: return "Weniger anzeigen";
3544
+ case CultureIDs.En_US: return "Show less";
3545
+ case CultureIDs.Es_ES: return "Mostrar menos";
3546
+ case CultureIDs.Fr_FR: return "Afficher moins";
3547
+ case CultureIDs.Pt_PT: return "Mostrar menos";
3548
+ default: return "Mostra meno";
3549
+ }
3550
+ }
3511
3551
  static get Show_CompleteName() {
3512
3552
  switch (this._cultureID) {
3513
3553
  case CultureIDs.De_DE: return "Vollständigen Namen anzeigen";
@@ -2,7 +2,7 @@ import { useState } from 'react';
2
2
  import { LocalizeDcmtOperationTypes } from '../helper/Enum_Localizator';
3
3
  import { SDK_Globals, RetrieveFileOptions, DcmtOpers, ResultTypes, RecentCategories, MetadataDataTypes, MetadataDataDomains, DataListCacheService } from '@topconsultnpm/sdk-ts-beta';
4
4
  import { ShowAlert, TMResultManager, FormulaHelper, TMExceptionBoxManager, TMSpinner } from '../components';
5
- import { Globalization, getExceptionMessage, dialogConfirmOperation, extensionHandler, downloadBase64File, SDKUI_Globals, dcmtsFileCacheDownload, CACHE_SIZE_LIMIT, clearDcmtsFileCache, dcmtsFileCachePreview, isDcmtFileInCache, removeDcmtsFileCache } from '../helper';
5
+ import { Globalization, getExceptionMessage, dialogConfirmOperation, extensionHandler, downloadBase64File, SDKUI_Globals, dcmtsFileCacheDownload, CACHE_SIZE_LIMIT, clearDcmtsFileCache, dcmtsFileCachePreview, isDcmtFileInCache, removeDcmtsFileCache, SDKUI_Localizator } from '../helper';
6
6
  import { DcmtOperationTypes, DownloadTypes, FileExtensionHandler } from '../ts';
7
7
  import { useFileDialog } from './useInputDialog';
8
8
  import { isXMLFileExt } from '../helper/dcmtsHelper';
@@ -189,7 +189,7 @@ export function useDcmtOperations() {
189
189
  break;
190
190
  }
191
191
  try {
192
- setWaitPanelTextPrimary(`Caricamento file ${i + 1} di ${inputDcmts.length}`);
192
+ setWaitPanelTextPrimary(`${SDKUI_Localizator.FileUpload} ${i + 1} di ${inputDcmts.length}`);
193
193
  const cacheKey = `${inputDcmts[i].TID}-${inputDcmts[i].DID}`;
194
194
  if (dcmtsFileCachePreview.has(cacheKey))
195
195
  removeDcmtsFileCache(cacheKey);
@@ -48,6 +48,7 @@ declare class TMColors {
48
48
  static get colorHeader(): string | undefined;
49
49
  static set colorHeader(theColorHeader: string | undefined);
50
50
  static separator: string;
51
+ static button_primary: string;
51
52
  }
52
53
  declare class FontSize {
53
54
  static defaultFontSize: string;
@@ -48,6 +48,7 @@ TMColors.card_background = "#CAD9EB";
48
48
  TMColors._backgroundColorHeader = "#CAD9EB";
49
49
  TMColors._colorHeader = "black";
50
50
  TMColors.separator = "#00A99D";
51
+ TMColors.button_primary = '#4A96D2';
51
52
  class FontSize {
52
53
  }
53
54
  FontSize.defaultFontSize = '1rem';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react-beta",
3
- "version": "6.13.65",
3
+ "version": "6.13.67",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -1,11 +0,0 @@
1
- import { TMPanelItemConfig } from './TMPanelManagerUtils';
2
- type TMPanelManagerProps = {
3
- panels: Array<TMPanelItemConfig>;
4
- initialMobilePanelId: string;
5
- showToolbar?: boolean;
6
- toolbarMode?: number;
7
- gutters?: number;
8
- minPanelPercent?: number;
9
- };
10
- declare const TMPanelManager: (props: TMPanelManagerProps) => import("react/jsx-runtime").JSX.Element;
11
- export default TMPanelManager;