@topconsultnpm/sdkui-react-beta 6.13.15 → 6.13.17
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.
- package/lib/components/base/TMPanel.d.ts +1 -0
- package/lib/components/base/TMPanel.js +13 -3
- package/lib/components/choosers/TMDistinctValues.d.ts +1 -0
- package/lib/components/choosers/TMDistinctValues.js +11 -19
- package/lib/components/editors/TMMetadataValues.d.ts +2 -1
- package/lib/components/editors/TMMetadataValues.js +49 -38
- package/lib/components/features/documents/TMDcmtForm.js +12 -14
- package/lib/components/features/search/TMSavedQuerySelector.js +4 -6
- package/lib/components/features/search/TMSearch.js +144 -70
- package/lib/components/features/search/TMSearchQueryEditor.d.ts +2 -0
- package/lib/components/features/search/TMSearchQueryEditor.js +22 -5
- package/lib/components/features/search/TMSearchQueryPanel.d.ts +0 -2
- package/lib/components/features/search/TMSearchQueryPanel.js +14 -7
- package/lib/components/features/search/TMSearchResult.js +1 -1
- package/lib/components/grids/TMRecentsManager.js +1 -1
- package/package.json +1 -1
@@ -15,6 +15,7 @@ export interface ITMPanelProps extends ITMRightSidebarProps {
|
|
15
15
|
onBack?: () => void;
|
16
16
|
onClose?: () => void;
|
17
17
|
onHeaderDoubleClick?: () => void;
|
18
|
+
onMaximize?: (isMaximized: boolean) => void;
|
18
19
|
}
|
19
20
|
declare const TMPanel: React.FC<ITMPanelProps>;
|
20
21
|
export default TMPanel;
|
@@ -69,7 +69,7 @@ const StyledInnerPanelDiv = styled.div `
|
|
69
69
|
outline: none;
|
70
70
|
}
|
71
71
|
`;
|
72
|
-
const TMPanel = ({ allowMaximize = true, items = [], onItemClick, selectedItem, showPanel, color, backgroundColor, backgroundColorContainer, children, showHeader = true, title, totalItems, displayedItemsCount, toolbar, padding = '5px', onBack, onClose, onHeaderDoubleClick }) => {
|
72
|
+
const TMPanel = ({ allowMaximize = true, items = [], onItemClick, selectedItem, showPanel, color, backgroundColor, backgroundColorContainer, children, showHeader = true, title, totalItems, displayedItemsCount, toolbar, padding = '5px', onBack, onClose, onHeaderDoubleClick, onMaximize }) => {
|
73
73
|
const [isActive, setIsActive] = useState(false);
|
74
74
|
const [isMaximized, setIsMaximized] = useState(false);
|
75
75
|
const [minWidth, setMinWidth] = useState(undefined);
|
@@ -79,7 +79,17 @@ const TMPanel = ({ allowMaximize = true, items = [], onItemClick, selectedItem,
|
|
79
79
|
setMinWidth(titleRowRef.current.offsetWidth);
|
80
80
|
}
|
81
81
|
}, [title, displayedItemsCount, totalItems, onBack]);
|
82
|
-
|
82
|
+
// handler for external maximize management
|
83
|
+
const handleMaximize = () => {
|
84
|
+
setIsMaximized(prevState => {
|
85
|
+
const newValue = !prevState;
|
86
|
+
if (onMaximize) {
|
87
|
+
onMaximize(newValue);
|
88
|
+
}
|
89
|
+
return newValue;
|
90
|
+
});
|
91
|
+
};
|
92
|
+
return (_jsxs(StyledPanelContainer, { "$isMaximized": onMaximize ? false : isMaximized, style: minWidth ? { minWidth } : undefined, children: [showHeader &&
|
83
93
|
_jsx(StyledPanelHeader, { "$backgroundColor": backgroundColor, "$color": color, "$isActive": isActive, onDoubleClick: () => { if (onHeaderDoubleClick)
|
84
94
|
onHeaderDoubleClick(); }, tabIndex: -1, onFocus: () => setIsActive(true), onBlur: () => setIsActive(false), onClick: () => setIsActive(true), children: _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', width: '100%' }, children: [_jsxs("div", { ref: titleRowRef, style: { display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '8px' }, children: [onBack &&
|
85
95
|
_jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconArrowLeft, {}), caption: SDKUI_Localizator.Back, onClick: onBack }), _jsx("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, children: _jsxs("p", { style: {
|
@@ -93,7 +103,7 @@ const TMPanel = ({ allowMaximize = true, items = [], onItemClick, selectedItem,
|
|
93
103
|
? ` (${totalItems})`
|
94
104
|
: ''] }) })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '5px' }, children: [toolbar, allowMaximize && _jsx(TMButton, { color: 'primaryOutline', caption: isMaximized ? SDKUI_Localizator.Minimize : SDKUI_Localizator.Maximize, icon: isMaximized
|
95
105
|
? _jsx(IconWindowMinimize, { fontSize: 16 })
|
96
|
-
: _jsx(IconWindowMaximize, { fontSize: 16 }), btnStyle: 'icon', onClick:
|
106
|
+
: _jsx(IconWindowMaximize, { fontSize: 16 }), btnStyle: 'icon', onClick: handleMaximize }), onClose && _jsx(TMButton, { color: 'primaryOutline', caption: SDKUI_Localizator.Close, icon: _jsx(IconClearButton, {}), btnStyle: 'icon', onClick: () => { setIsMaximized(false); onClose?.(); } })] })] }) }), _jsxs(StyledPanelContent, { "$height": showHeader ? "calc(100% - 40px)" : "100%", "$padding": padding, "$backgroundColor": backgroundColorContainer ?? `#FFFFFF`, tabIndex: -1, onFocus: () => setIsActive(true), onBlur: () => setIsActive(false), onClick: () => setIsActive(true), children: [_jsx(StyledInnerPanelDiv, { style: { width: items.length > 0 ? 'calc(100% - 30px)' : '100%' }, tabIndex: -1, onFocus: () => setIsActive(true), onBlur: () => setIsActive(false), onClick: () => setIsActive(true), children: children }), items.length > 0 &&
|
97
107
|
_jsx(TMRightSidebar, { items: items, onItemClick: onItemClick, selectedItem: selectedItem, showPanel: showPanel })] })] }));
|
98
108
|
};
|
99
109
|
export default TMPanel;
|
@@ -1,31 +1,24 @@
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
2
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
3
3
|
import { LayoutModes, MetadataDataDomains, AccessLevels, MetadataDataTypes, SDK_Globals, DcmtTypeListCacheService, DataColumnTypes } from '@topconsultnpm/sdk-ts-beta';
|
4
4
|
import styled from 'styled-components';
|
5
|
-
import {
|
6
|
-
import TMButton from '../base/TMButton';
|
5
|
+
import { SDKUI_Localizator, stringIsNullOrEmpty } from '../../helper';
|
7
6
|
import TMDataGrid from '../base/TMDataGrid';
|
8
7
|
import { TMExceptionBoxManager } from '../base/TMPopUp';
|
9
8
|
import TMSpinner from '../base/TMSpinner';
|
10
9
|
import TMCheckBox from '../editors/TMCheckBox';
|
11
10
|
import TMPanel from '../base/TMPanel';
|
11
|
+
import TMModal from '../base/TMModal';
|
12
12
|
const StyledDistinctValues = styled.div `display: flex; flex-direction: column; height: 100%; overflow: hidden; gap: 10px;`;
|
13
13
|
const StyledPanelContainer = styled.div ` width: 100%; height: 100%; padding: 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; `;
|
14
|
-
const TMDistinctValues = ({ tid, mid, layoutMode = LayoutModes.None, allowAppendMode = true, showHeader = true, separator = " ", onSelectionChanged, onClosePanelCallback }) => {
|
14
|
+
const TMDistinctValues = ({ tid, mid, layoutMode = LayoutModes.None, allowAppendMode = true, showHeader = true, isModal, separator = " ", onSelectionChanged, onClosePanelCallback }) => {
|
15
15
|
const [focusedItem, setFocusedItem] = useState();
|
16
16
|
const [dataSource, setDataSource] = useState([]);
|
17
17
|
const [isAppendMode, setIsAppendMode] = useState(false);
|
18
18
|
const [md, setMd] = useState();
|
19
|
-
const [hasLoadedBefore, setHasLoadedBefore] = useState(false);
|
20
|
-
const [showPrompt, setShowPrompt] = useState(false);
|
21
19
|
const [currentValue, setCurrentValue] = useState('');
|
22
20
|
useEffect(() => {
|
23
|
-
|
24
|
-
getDistictValuesAsync().then(() => setHasLoadedBefore(true));
|
25
|
-
}
|
26
|
-
else {
|
27
|
-
getDcmtTypeAsync().then(() => setShowPrompt(true));
|
28
|
-
}
|
21
|
+
getDistictValuesAsync();
|
29
22
|
}, [mid]);
|
30
23
|
useEffect(() => {
|
31
24
|
setIsAppendMode(false);
|
@@ -67,7 +60,6 @@ const TMDistinctValues = ({ tid, mid, layoutMode = LayoutModes.None, allowAppend
|
|
67
60
|
setMd(dtd?.metadata?.find(o => o.id === mid));
|
68
61
|
let result = await SDK_Globals.tmSession?.NewSearchEngine().GetDistinctValuesAsync(tid, mid, 10000);
|
69
62
|
setDataSource(convertDataTableToObject(result?.dtdResult));
|
70
|
-
setShowPrompt(false);
|
71
63
|
}
|
72
64
|
catch (e) {
|
73
65
|
let err = e;
|
@@ -93,9 +85,6 @@ const TMDistinctValues = ({ tid, mid, layoutMode = LayoutModes.None, allowAppend
|
|
93
85
|
TMSpinner.hide();
|
94
86
|
}
|
95
87
|
};
|
96
|
-
const handleLoadData = () => {
|
97
|
-
getDistictValuesAsync();
|
98
|
-
};
|
99
88
|
const onFocusedRowChanged = useCallback((e) => {
|
100
89
|
setFocusedItem(e.row?.data);
|
101
90
|
}, []);
|
@@ -141,8 +130,11 @@ const TMDistinctValues = ({ tid, mid, layoutMode = LayoutModes.None, allowAppend
|
|
141
130
|
return false;
|
142
131
|
return md.dataDomain === undefined || md.dataDomain === MetadataDataDomains.None;
|
143
132
|
};
|
144
|
-
|
145
|
-
|
146
|
-
|
133
|
+
const renderContent = () => {
|
134
|
+
return (_jsxs(StyledDistinctValues, { children: [isVisibleAppend() && _jsx(TMCheckBox, { elementStyle: { position: 'absolute', right: '15px', top: '15px', zIndex: 10000 }, label: 'Accoda', value: isAppendMode, onValueChanged: () => { setIsAppendMode(!isAppendMode); } }), _jsx(TMDataGrid, { focusedRowKey: focusedItem ? focusedItem.rowIndex : undefined, selection: { showCheckBoxesMode: 'none' }, searchPanel: { highlightCaseSensitive: true, visible: true }, dataColumns: customColumns, dataSource: dataSource, keyExpr: 'rowIndex', height: 'calc(100%)', onFocusedRowChanged: onFocusedRowChanged, paging: { pageSize: 30 }, summary: customSummary })] }));
|
135
|
+
};
|
136
|
+
return (_jsx(_Fragment, { children: isModal
|
137
|
+
? _jsx(TMModal, { title: SDKUI_Localizator.DistinctValues + (md?.nameLoc ? ` (${md?.nameLoc})` : ''), height: '600px', width: '500px', resizable: true, onClose: onClosePanelCallback, children: renderContent() })
|
138
|
+
: _jsx(TMPanel, { title: SDKUI_Localizator.DistinctValues + (md?.nameLoc ? ` (${md?.nameLoc})` : ''), showHeader: showHeader, onClose: onClosePanelCallback, children: renderContent() }) }));
|
147
139
|
};
|
148
140
|
export default TMDistinctValues;
|
@@ -13,7 +13,7 @@ export declare enum AdvancedMenuButtons {
|
|
13
13
|
FormulaEditor = 2,
|
14
14
|
DistinctValues = 3
|
15
15
|
}
|
16
|
-
type AdvancedMenuClickEventArgs = {
|
16
|
+
export type AdvancedMenuClickEventArgs = {
|
17
17
|
tid: number | undefined;
|
18
18
|
mid: number | undefined;
|
19
19
|
button: AdvancedMenuButtons;
|
@@ -24,6 +24,7 @@ interface ITMMetadataValuesProps extends DeviceContextProps {
|
|
24
24
|
metadataValuesOrig?: MetadataValueDescriptorEx[];
|
25
25
|
customMenuItems?: any[];
|
26
26
|
isExpertMode?: boolean;
|
27
|
+
isReadOnly?: boolean;
|
27
28
|
showCheckBoxes?: ShowCheckBoxesMode;
|
28
29
|
showNullValueCheckBoxes?: boolean;
|
29
30
|
validationItems: ValidationItem[];
|
@@ -23,7 +23,7 @@ export var AdvancedMenuButtons;
|
|
23
23
|
AdvancedMenuButtons[AdvancedMenuButtons["FormulaEditor"] = 2] = "FormulaEditor";
|
24
24
|
AdvancedMenuButtons[AdvancedMenuButtons["DistinctValues"] = 3] = "DistinctValues";
|
25
25
|
})(AdvancedMenuButtons || (AdvancedMenuButtons = {}));
|
26
|
-
const TMMetadataValues = ({ showCheckBoxes = ShowCheckBoxesMode.Never, checkPerms = true, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, customMenuItems = [], showNullValueCheckBoxes, isOpenDistinctValues = false, openChooserBySingleClick, selectedMID, onFocusedItemChanged, layoutMode = LayoutModes.Update, metadataValues = [], metadataValuesOrig = [], TID, onValueChanged, onAdvancedMenuClick, validationItems }) => {
|
26
|
+
const TMMetadataValues = ({ showCheckBoxes = ShowCheckBoxesMode.Never, checkPerms = true, isReadOnly = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, customMenuItems = [], showNullValueCheckBoxes, isOpenDistinctValues = false, openChooserBySingleClick, selectedMID, onFocusedItemChanged, layoutMode = LayoutModes.Update, metadataValues = [], metadataValuesOrig = [], TID, onValueChanged, onAdvancedMenuClick, validationItems }) => {
|
27
27
|
const [dynDataListsToBeRefreshed, setDynDataListsToBeRefreshed] = useState([]);
|
28
28
|
const [currentDTD, setCurrentDTD] = useState();
|
29
29
|
const [isEditableList, addOrRemoveEditableList] = useMetadataEditableList();
|
@@ -151,47 +151,58 @@ const TMMetadataValues = ({ showCheckBoxes = ShowCheckBoxesMode.Never, checkPerm
|
|
151
151
|
let md = mvd.md;
|
152
152
|
if (!md)
|
153
153
|
return [];
|
154
|
-
// let isEditable = isEditableList(mvd.mid);
|
155
154
|
let isDisabledOper = checkPerms && (md.dataDomain === MetadataDataDomains.Computed || md?.perm?.canUpdate !== AccessLevels.Yes);
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
155
|
+
const menu = [
|
156
|
+
// Only add MakeEditable/Restore and FormulaEditor if isExpertMode is true
|
157
|
+
...(isExpertMode ? [
|
158
|
+
{
|
159
|
+
text: mvd.isEditable ? SDKUI_Localizator.Restore : SDKUI_Localizator.MakeEditable,
|
160
|
+
icon: mvd.isEditable ? _jsx(IconUndo, {}) : _jsx(IconPencil, {}),
|
161
|
+
disabled: isDisabledOper,
|
162
|
+
onClick: () => {
|
163
|
+
onAdvancedMenuClick?.({ tid: mvd.tid, mid: mvd.mid, button: AdvancedMenuButtons.MakeEditable });
|
164
|
+
onValueChanged?.(metadataValues.map((item) => {
|
165
|
+
if (item.tid == mvd.tid && item.mid === mvd.mid) {
|
166
|
+
// If DateTime and value is a formula, clear value but keep formulaValue
|
167
|
+
if (item.md?.dataType === MetadataDataTypes.DateTime && FormulaHelper.isFormula(item.value)) {
|
168
|
+
return {
|
169
|
+
...item,
|
170
|
+
isEditable: !item.isEditable,
|
171
|
+
formulaValue: item.value,
|
172
|
+
value: null
|
173
|
+
};
|
174
|
+
}
|
175
|
+
// If restoring and formulaValue exists, restore it
|
176
|
+
if (item.md?.dataType === MetadataDataTypes.DateTime && !item.isEditable && item.formulaValue) {
|
177
|
+
return {
|
178
|
+
...item,
|
179
|
+
isEditable: !item.isEditable,
|
180
|
+
value: item.formulaValue,
|
181
|
+
formulaValue: undefined
|
182
|
+
};
|
183
|
+
}
|
184
|
+
return { ...item, isEditable: !item.isEditable };
|
183
185
|
}
|
184
|
-
return
|
185
|
-
}
|
186
|
-
|
187
|
-
|
186
|
+
return item;
|
187
|
+
}));
|
188
|
+
}
|
189
|
+
},
|
190
|
+
{
|
191
|
+
text: SDKUI_Localizator.FormulaEditorTitle,
|
192
|
+
icon: _jsx(IconFunction, {}),
|
193
|
+
disabled: isDisabledOper,
|
194
|
+
onClick: () => onAdvancedMenuClick?.({ tid: mvd.tid, mid: mvd.mid, button: AdvancedMenuButtons.FormulaEditor })
|
188
195
|
}
|
196
|
+
] : []),
|
197
|
+
// Always add DistinctValues
|
198
|
+
{
|
199
|
+
text: SDKUI_Localizator.DistinctValues,
|
200
|
+
icon: _jsx(IconDataList, {}),
|
201
|
+
onClick: () => onAdvancedMenuClick?.({ tid: mvd.tid, mid: mvd.mid, button: AdvancedMenuButtons.DistinctValues })
|
189
202
|
},
|
190
|
-
|
191
|
-
|
203
|
+
// Always add customMenuItems if present
|
204
|
+
...customMenuItems
|
192
205
|
];
|
193
|
-
if (customMenuItems.length > 0)
|
194
|
-
menu.push(...customMenuItems);
|
195
206
|
return menu;
|
196
207
|
};
|
197
208
|
return (_jsx(StyledMetadataValuesContainer, { children: metadataValues.map((item) => (_jsxs(StyledRow, { style: { marginTop: item.md?.dataType === MetadataDataTypes.DateTime ? '6px' : '0', gap: '8px' }, onClick: () => { handleMetadataValueSelection(item); }, onFocus: () => { handleMetadataValueSelection(item); }, children: [showCheckBoxes !== ShowCheckBoxesMode.Never &&
|
@@ -247,7 +258,7 @@ const TMMetadataValues = ({ showCheckBoxes = ShowCheckBoxesMode.Never, checkPerm
|
|
247
258
|
mvd.isSelected = !stringIsNullOrEmpty(mvd.value);
|
248
259
|
}
|
249
260
|
onValueChanged?.(newValues);
|
250
|
-
} }) }),
|
261
|
+
} }) }), !isReadOnly && _jsx("div", { style: { marginTop: item.md?.dataType === MetadataDataTypes.DateTime ? '12px' : '18px' }, onClick: () => { handleMetadataValueSelection(item); }, children: _jsx(TMDropDownMenu, { backgroundColor: 'white', color: TMColors.button_icon, borderRadius: '3px', content: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconMenuVertical, {}), showTooltip: false }), disabled: item.isLexProt === 1, items: getAdvancedMenuItems(item) }) })] }, item.mid))) }));
|
251
262
|
};
|
252
263
|
export default TMMetadataValues;
|
253
264
|
//#region Styled Components
|
@@ -9,7 +9,7 @@ import { DownloadTypes, FormModes } from '../../../ts';
|
|
9
9
|
import { DeviceType, useDeviceType } from '../../base/TMDeviceProvider';
|
10
10
|
import { useDcmtOperations } from '../../../hooks/useDcmtOperations';
|
11
11
|
import { handleArchiveVisibility, searchResultToMetadataValues } from '../../../helper/queryHelper';
|
12
|
-
import { genUniqueId, IconShow, SDKUI_Localizator, IconBoard, IconDcmtTypeSys,
|
12
|
+
import { genUniqueId, IconShow, SDKUI_Localizator, IconBoard, IconDcmtTypeSys, IconDetailDcmts, svgToString, IconDownload, calcIsModified, IconMenuVertical, Globalization, getListMaxItems, getSystemMetadata, IconBoxArchiveIn, IconClear, IconUndo, SDKUI_Globals, IconRoundFileUpload } from '../../../helper';
|
13
13
|
import { hasDetailRelations, hasMasterRelations, isXMLFileExt } from '../../../helper/dcmtsHelper';
|
14
14
|
import { TMColors } from '../../../utils/theme';
|
15
15
|
import { StyledFormButtonsContainer, StyledModalContainer, StyledToolbarCardContainer } from '../../base/Styled';
|
@@ -73,7 +73,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
73
73
|
const { openConfirmAttachmentsDialog, ConfirmAttachmentsDialog } = useInputAttachmentsDialog();
|
74
74
|
const { abortController, showWaitPanel, waitPanelTitle, showPrimary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, showSecondary, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, downloadDcmtsAsync } = useDcmtOperations();
|
75
75
|
const deviceType = useDeviceType();
|
76
|
-
const isOpenMiddlePanel = () => isOpenSysMetadata || isOpenBoard || isOpenTags ||
|
76
|
+
const isOpenMiddlePanel = () => isOpenSysMetadata || isOpenBoard || isOpenTags || isOpenFormulaEditor;
|
77
77
|
const retrieveMetadataAsync = async () => {
|
78
78
|
try {
|
79
79
|
await DcmtTypeListCacheService.GetAsync(TID).then(async (dtd) => {
|
@@ -147,19 +147,18 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
147
147
|
{ icon: fileManagerIcon, id: 'Preview', visibleName: (layoutMode === LayoutModes.Ark && fileIsNotValid) ? SDKUI_Localizator.RequiredField : layoutMode === LayoutModes.Ark ? SDKUI_Localizator.UploadFile : 'Anteprima', isActive: isOpenPreview, onClick: () => { setIsOpenPreview(!isOpenPreview); }, disabled: layoutMode === LayoutModes.Ark && fromDTD?.archiveConstraint === ArchiveConstraints.OnlyMetadata },
|
148
148
|
{ icon: _jsx(IconBoard, {}), id: 'Board', visibleName: 'Bacheca', disabled: layoutMode !== LayoutModes.Update, beginGroup: true, isActive: isOpenBoard, visible: layoutMode !== LayoutModes.Ark, onClick: () => { closeMiddlePanel(); setIsOpenBoard(!isOpenBoard); } },
|
149
149
|
{ icon: _jsx(IconDcmtTypeSys, {}), id: 'SystemMetadata', visibleName: 'Metadati di sistema', disabled: layoutMode !== LayoutModes.Update, isActive: isOpenSysMetadata, visible: layoutMode !== LayoutModes.Ark, onClick: () => { closeMiddlePanel(); setIsOpenSysMetadata(!isOpenSysMetadata); } },
|
150
|
-
{ icon: _jsx(IconDataList, {}), id: 'DistinctValues', disabled: !focusedMetadataValue, visibleName: 'Valori distiniti', isActive: isOpenDistinctValues, onClick: () => { closeMiddlePanel(); setIsOpenDistinctValues(!isOpenDistinctValues); } },
|
151
150
|
{ icon: _jsx(IconDetailDcmts, { fontSize: 20, transform: 'scale(-1, 1)' }), id: 'Master', beginGroup: true, visible: layoutMode !== LayoutModes.Ark && allowRelations && currentTIDHasMasterRelations, visibleName: SDKUI_Localizator.DcmtsMaster, disabled: layoutMode !== LayoutModes.Update || !DID, isActive: isOpenMaster, onClick: () => { setIsOpenMaster(!isOpenMaster); } },
|
152
151
|
{ icon: _jsx(IconDetailDcmts, { fontSize: 20 }), id: 'Details', visibleName: SDKUI_Localizator.DcmtsDetail, disabled: layoutMode !== LayoutModes.Update || !DID, isActive: isOpenDetails, visible: layoutMode !== LayoutModes.Ark && allowRelations && currentTIDHasDetailRelations, onClick: () => { setIsOpenDetails(!isOpenDetails); } },
|
153
152
|
];
|
154
153
|
return customRightSidebarItems.length === 0
|
155
154
|
? fixedItems
|
156
155
|
: [...fixedItems.filter(item => item.id !== 'DistinctValues'), ...customRightSidebarItems, ...fixedItems.filter(item => item.id === 'DistinctValues')];
|
157
|
-
}, [customRightSidebarItems, layoutMode,
|
156
|
+
}, [customRightSidebarItems, layoutMode, isOpenPreview, focusedMetadataValue, fromDTD?.archiveConstraint]);
|
158
157
|
const closeMiddlePanel = () => {
|
159
158
|
setIsOpenBoard(false);
|
160
159
|
setIsOpenSysMetadata(false);
|
161
160
|
setIsOpenTags(false);
|
162
|
-
setIsOpenDistinctValues(false);
|
161
|
+
// setIsOpenDistinctValues(false);
|
163
162
|
setIsOpenFormulaEditor(false);
|
164
163
|
};
|
165
164
|
const titleText = () => {
|
@@ -169,8 +168,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
169
168
|
return 'Metadati di sistema';
|
170
169
|
if (isOpenBoard)
|
171
170
|
return 'Bacheca';
|
172
|
-
if (isOpenDistinctValues)
|
173
|
-
return `${SDKUI_Localizator.DistinctValues} (${focusedMetadataValue?.md?.nameLoc})`;
|
171
|
+
// if (isOpenDistinctValues) return `${SDKUI_Localizator.DistinctValues} (${focusedMetadataValue?.md?.nameLoc})`;
|
174
172
|
if (isOpenFormulaEditor)
|
175
173
|
return `${SDKUI_Localizator.FormulaEditorTitle} (${focusedMetadataValue?.md?.nameLoc})`;
|
176
174
|
return '';
|
@@ -471,12 +469,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
471
469
|
_jsx(TMLayoutItem, { children: _jsxs(TMSplitterLayout, { separatorSize: 5, direction: 'horizontal', showSeparator: deviceType !== DeviceType.MOBILE && (isOpenPreview && isOpenMiddlePanel()), start: getSecondarySplitterStartLayout(), min: ['0', '0'], separatorColor: 'transparent', children: [isOpenMiddlePanel()
|
472
470
|
? _jsx(TMLayoutItem, { children: _jsx(TMToolbarCard, { padding: '0', showHeader: !(isOpenDetails && layoutMode === LayoutModes.Update), color: TMColors.primaryColor, backgroundColor: `${TMColors.primaryColor}25`, title: titleText(), toolbar: middlePanelToolbar, onClose: () => { closeMiddlePanel(); }, children: _jsx(StyledToolbarCardContainer, { children: _jsx(StyledSectionContainer, { children: _jsxs(StyledSidebarItemsContentContainer, { children: [isOpenBoard && layoutMode === LayoutModes.Update &&
|
473
471
|
_jsx(TMDcmtBlog, { tid: TID, did: DID }), isOpenSysMetadata && layoutMode === LayoutModes.Update &&
|
474
|
-
_jsx(TMMetadataValues, { layoutMode: layoutMode, openChooserBySingleClick: !isOpenDistinctValues, TID: TID, deviceType: deviceType, metadataValues: formData.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: formData.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] }),
|
475
|
-
_jsx(TMDistinctValues, { tid: TID, mid: focusedMetadataValue?.mid, showHeader: false, layoutMode: layoutMode, onSelectionChanged: (e) => {
|
476
|
-
if (!e)
|
477
|
-
return;
|
478
|
-
setFormData((prevItems) => prevItems.map((item) => item.tid == e.tid && item.mid === e.mid ? { ...item, value: e.newValue } : item));
|
479
|
-
} }), isOpenFormulaEditor &&
|
472
|
+
_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: [] }), isOpenFormulaEditor &&
|
480
473
|
_jsx(TMFormulaEditor, { isModal: false, formMode: FormModes.Update, inputData: getFormula(), showBack: false, onClose: () => setIsOpenFormulaEditor(false), onApplied: (newFormula) => {
|
481
474
|
setFormData((prevItems) => prevItems.map((item) => item.tid == newFormula.tid && item.mid === newFormula.mid ? { ...item, value: FormulaHelper.addFormulaTag(newFormula.expression), isSelected: true, isEditable: true } : item));
|
482
475
|
setFocusedMetadataValue(prevState => ({
|
@@ -490,7 +483,12 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
490
483
|
? _jsxs(TMLayoutItem, { children: [layoutMode === LayoutModes.Update ?
|
491
484
|
_jsx(TMDcmtPreview, { onClose: () => { setIsOpenPreview(false); onClosePreview?.(); }, dcmtData: currentDcmt, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev }) :
|
492
485
|
_jsx(TMFileUploader, { onFileUpload: (file) => setDcmtFile(file), onClose: () => setIsOpenPreview(false), isRequired: fromDTD?.archiveConstraint === ArchiveConstraints.ContentCompulsory && dcmtFile === null, defaultBlob: dcmtFile, deviceType: deviceType }), " "] })
|
493
|
-
: _jsx(_Fragment, {})] }) }) : _jsx(_Fragment, {})] }),
|
486
|
+
: _jsx(_Fragment, {})] }) }) : _jsx(_Fragment, {})] }), isOpenDistinctValues &&
|
487
|
+
_jsx(TMDistinctValues, { tid: TID, mid: focusedMetadataValue?.mid, isModal: true, showHeader: false, layoutMode: layoutMode, onSelectionChanged: (e) => {
|
488
|
+
if (!e)
|
489
|
+
return;
|
490
|
+
setFormData((prevItems) => prevItems.map((item) => item.tid == e.tid && item.mid === e.mid ? { ...item, value: e.newValue } : item));
|
491
|
+
} }), isOpenDetails &&
|
494
492
|
_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: getSelectionDcmtInfo(), allowNavigation: allowNavigation, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev, onBack: () => setIsOpenDetails(false) }) }), isOpenMaster &&
|
495
493
|
_jsxs(StyledModalContainer, { style: { backgroundColor: 'white' }, children: [_jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: getSelectionDcmtInfo(), isForMaster: true, allowNavigation: allowNavigation, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev, onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
|
496
494
|
return (_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: [dcmt], isForMaster: true, allowNavigation: false, onBack: () => handleRemoveItem(dcmt.TID, dcmt.DID), appendMasterDcmts: handleAddItem }) }, `${index}-${dcmt.DID}`));
|
@@ -16,7 +16,7 @@ const StyledSqdItem = styled.div `
|
|
16
16
|
flex-direction: column;
|
17
17
|
align-items: stretch;
|
18
18
|
min-width: 0;
|
19
|
-
padding: 10px;
|
19
|
+
padding: 10px 10px 0px 10px;
|
20
20
|
position: relative;
|
21
21
|
white-space: nowrap;
|
22
22
|
text-overflow: ellipsis;
|
@@ -123,9 +123,7 @@ const TMSavedQuerySelector = React.memo(({ items, selectedId, allowShowSearch =
|
|
123
123
|
width: '100%',
|
124
124
|
padding: '5px',
|
125
125
|
gap: '3px',
|
126
|
-
|
127
|
-
overflow: 'hidden',
|
128
|
-
textOverflow: 'ellipsis'
|
126
|
+
overflow: 'auto'
|
129
127
|
}, children: dataSource.slice(0, showAllRoot || searchText.length > 0 ? dataSource.length : initialSQDsMaxItems).filter(o => searchText.length <= 0 || (searchText.length > 0 && o.name?.toLocaleLowerCase().includes(searchText.toLocaleLowerCase())) || o.description?.toLocaleLowerCase().includes(searchText.toLocaleLowerCase())).map((sqd, index) => (_jsxs(StyledSqdItem, { id: `sqd-item-${sqd.id}`, onClick: () => {
|
130
128
|
setSelectedItem(sqd);
|
131
129
|
onItemClick?.(sqd);
|
@@ -145,14 +143,14 @@ const TMSavedQuerySelector = React.memo(({ items, selectedId, allowShowSearch =
|
|
145
143
|
overflow: 'hidden',
|
146
144
|
textOverflow: 'ellipsis',
|
147
145
|
color: TMColors.primaryColor,
|
148
|
-
paddingRight: '
|
146
|
+
paddingRight: '15px'
|
149
147
|
}, children: sqd.name }), manageDefault && sqd.isDefault == 1 && _jsx(IconStar, { fontSize: 16, color: 'rgb(248, 215, 117)' })] }), selectedItem?.id == sqd.id &&
|
150
148
|
_jsx("div", { style: {
|
151
149
|
width: '24px',
|
152
150
|
height: '24px',
|
153
151
|
borderRadius: '24px',
|
154
152
|
position: 'absolute',
|
155
|
-
top: '
|
153
|
+
top: '4px',
|
156
154
|
right: '0px',
|
157
155
|
display: 'flex',
|
158
156
|
alignItems: 'center',
|
@@ -1,18 +1,17 @@
|
|
1
|
-
import { jsx as _jsx,
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import { useCallback, useEffect, useState } from 'react';
|
3
3
|
import { SavedQueryCacheService, DcmtTypeListCacheService, SDK_Localizator } from '@topconsultnpm/sdk-ts-beta';
|
4
4
|
import TMSavedQuerySelector from './TMSavedQuerySelector';
|
5
5
|
import TMTreeSelector from './TMTreeSelector';
|
6
6
|
import { TabPanel, Item } from 'devextreme-react/tab-panel';
|
7
7
|
import TMSearchQueryPanel, { refreshLastSearch } from './TMSearchQueryPanel';
|
8
|
-
import { getSysAllDcmtsSQD,
|
9
|
-
import { TMLayoutItem, TMSplitterLayout } from '../../base/TMLayout';
|
10
|
-
import TMPanel from '../../base/TMPanel';
|
8
|
+
import { getSysAllDcmtsSQD, IconProgressReady, IconSavedQuery, IconTree, SDKUI_Globals, SDKUI_Localizator } from '../../../helper';
|
11
9
|
import TMSearchResult from './TMSearchResult';
|
12
10
|
import TMRecentsManager from '../../grids/TMRecentsManager';
|
13
11
|
import { SearchResultContext } from '../../../ts';
|
14
12
|
import { useDeviceType, DeviceType } from '../../base/TMDeviceProvider';
|
15
13
|
import { StyledMultiViewPanel } from '../../base/Styled';
|
14
|
+
import TMPanelManagerMatrix from '../../base/TMPanelManagerMatrix';
|
16
15
|
var TMSearchViews;
|
17
16
|
(function (TMSearchViews) {
|
18
17
|
TMSearchViews[TMSearchViews["None"] = 0] = "None";
|
@@ -28,14 +27,149 @@ const TMSearch = ({ inputTID, inputSqdID, isExpertMode = SDKUI_Globals.userSetti
|
|
28
27
|
const [searchResult, setSearchResult] = useState([]);
|
29
28
|
const [mruTIDs, setMruTIDs] = useState([]);
|
30
29
|
const [currentSearchView, setCurrentSearchView] = useState(TMSearchViews.None);
|
31
|
-
const [showDistinctValuesPanel, setShowDistinctValuesPanel] = useState(false);
|
32
|
-
const [showTreesPanel, setShowTreesPanel] = useState(true);
|
33
|
-
const [showRecentsPanel, setShowRecentsPanel] = useState(true);
|
34
|
-
const [showSavedQueryPanel, setShowSavedQueryPanel] = useState(true);
|
35
30
|
const [currentSQDMode, setCurrentSQDMode] = useState(1);
|
36
|
-
const [focusedTidMid, setFocusedTidMid] = useState();
|
37
31
|
const [lastQdSearched, setLastQdSearched] = useState();
|
38
32
|
const deviceType = useDeviceType();
|
33
|
+
const panelMatrixMap = new Map([
|
34
|
+
[
|
35
|
+
"column-0",
|
36
|
+
{
|
37
|
+
width: "20%",
|
38
|
+
rows: [
|
39
|
+
{
|
40
|
+
id: 'treeSelector',
|
41
|
+
height: '100%',
|
42
|
+
width: '100%',
|
43
|
+
content: (togglePanelVisibility) => _jsx(TMTreeSelector, { onClose: () => togglePanelVisibility({
|
44
|
+
id: 'toolbar-item-treeSelector',
|
45
|
+
icon: 'optionsgear',
|
46
|
+
tooltipName: 'treeSelector',
|
47
|
+
panelManagerMatrixRowId: 'treeSelector',
|
48
|
+
}), onSelectedTIDChanged: (tid) => {
|
49
|
+
setCurrentTID(tid);
|
50
|
+
if (tid && mruTIDs.includes(tid))
|
51
|
+
setCurrentMruTID(tid);
|
52
|
+
else
|
53
|
+
setCurrentMruTID(0);
|
54
|
+
} }),
|
55
|
+
hidden: false
|
56
|
+
}
|
57
|
+
],
|
58
|
+
}
|
59
|
+
],
|
60
|
+
[
|
61
|
+
"column-1",
|
62
|
+
{
|
63
|
+
width: "20%",
|
64
|
+
rows: [
|
65
|
+
{
|
66
|
+
id: 'recentsManager',
|
67
|
+
height: '100%',
|
68
|
+
width: '100%',
|
69
|
+
content: _jsx(TMRecentsManager, { mruTIDs: mruTIDs, currentMruTID: currentMruTID, deviceType: deviceType, onSelectedTID: (tid) => { setCurrentMruTID(tid); setCurrentTID(tid); }, onDeletedTID: (tid) => {
|
70
|
+
let newMruTIDS = mruTIDs.slice();
|
71
|
+
let index = newMruTIDS.findIndex(o => o == tid);
|
72
|
+
if (index >= 0)
|
73
|
+
newMruTIDS.splice(index, 1);
|
74
|
+
SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
|
75
|
+
setMruTIDs(newMruTIDS);
|
76
|
+
} }),
|
77
|
+
hidden: false,
|
78
|
+
panel: {
|
79
|
+
title: "Scorciatoie",
|
80
|
+
totalItems: mruTIDs.length
|
81
|
+
}
|
82
|
+
}
|
83
|
+
],
|
84
|
+
}
|
85
|
+
],
|
86
|
+
[
|
87
|
+
"column-2",
|
88
|
+
{
|
89
|
+
width: "40%",
|
90
|
+
rows: [
|
91
|
+
{
|
92
|
+
id: 'searchQueryPanel',
|
93
|
+
height: '100%',
|
94
|
+
width: '100%',
|
95
|
+
content: _jsx(TMSearchQueryPanel, { isExpertMode: isExpertMode, fromDTD: fromDTD, SQD: currentSQD, onBack: deviceType !== DeviceType.DESKTOP ? () => { setCurrentTID(0); } : undefined, onSearchCompleted: (searchResult, qd) => {
|
96
|
+
setSearchResult(searchResult);
|
97
|
+
if (searchResult.length <= 0)
|
98
|
+
return;
|
99
|
+
setLastQdSearched(qd);
|
100
|
+
setCurrentSearchView(TMSearchViews.Result);
|
101
|
+
// Salvataggio ultimi 10 TIDs
|
102
|
+
let fromTID = searchResult?.[0].fromTID;
|
103
|
+
let newMruTIDS = mruTIDs.slice();
|
104
|
+
let index = newMruTIDS.findIndex(o => o == fromTID);
|
105
|
+
if (index >= 0)
|
106
|
+
newMruTIDS.splice(index, 1);
|
107
|
+
if (newMruTIDS.length >= 10)
|
108
|
+
newMruTIDS.splice(0, 1);
|
109
|
+
newMruTIDS.push(fromTID);
|
110
|
+
setMruTIDs(newMruTIDS);
|
111
|
+
setCurrentMruTID(fromTID);
|
112
|
+
SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
|
113
|
+
}, onSqdSaved: async (newSqd) => {
|
114
|
+
await loadDataSQDsAsync(true, newSqd.masterTID);
|
115
|
+
await setSQDAsync(newSqd);
|
116
|
+
} }),
|
117
|
+
hidden: false
|
118
|
+
}
|
119
|
+
],
|
120
|
+
}
|
121
|
+
],
|
122
|
+
[
|
123
|
+
"column-4",
|
124
|
+
{
|
125
|
+
width: "20%",
|
126
|
+
rows: [
|
127
|
+
{
|
128
|
+
id: 'savedQuery',
|
129
|
+
height: '100%',
|
130
|
+
width: '100%',
|
131
|
+
content: _jsxs(TabPanel, { width: "100%", height: "100%", showNavButtons: true, repaintChangesOnly: true, selectedIndex: currentSQDMode, onSelectedIndexChange: (index) => setCurrentSQDMode(index), children: [(currentTID || currentSQD) ? _jsx(Item, { title: fromDTD?.nameLoc, children: _jsx(TMSavedQuerySelector, { allowShowSearch: false, items: filteredByTIDSQDs, selectedId: currentSQD?.id, onRefreshData: () => { loadDataSQDsAsync(true); }, onItemClick: (sqd) => onSQDItemClick(sqd, setSQDAsync), onDeleted: (sqd) => onSQDDeleted(sqd, sqd.id == currentSQD?.id ? filteredByTIDSQDs.find(o => o.id == 1) : currentSQD, setSQDAsync) }) }) : _jsx(_Fragment, {}), _jsx(Item, { title: SDKUI_Localizator.Alls2, children: _jsx(TMSavedQuerySelector, { allowShowSearch: true, items: allSQDs, manageDefault: false,
|
132
|
+
// selectedId={currentSQD?.id}
|
133
|
+
onItemClick: (sqd) => onSQDItemClick(sqd, setSQDAsync), onDeleted: (sqd) => onSQDDeleted(sqd, sqd.id == currentSQD?.id ? undefined : currentSQD, setSQDAsync) }) })] }),
|
134
|
+
hidden: false,
|
135
|
+
panel: {
|
136
|
+
title: SDK_Localizator.SavedQueries
|
137
|
+
}
|
138
|
+
}
|
139
|
+
],
|
140
|
+
}
|
141
|
+
]
|
142
|
+
]);
|
143
|
+
const toolbar = {
|
144
|
+
items: [
|
145
|
+
{
|
146
|
+
id: 'toolbar-item-treeSelector',
|
147
|
+
icon: _jsx(IconTree, {}),
|
148
|
+
tooltipName: 'treeSelector',
|
149
|
+
panelManagerMatrixRowId: 'treeSelector',
|
150
|
+
},
|
151
|
+
{
|
152
|
+
id: 'toolbar-item-recentsManager',
|
153
|
+
icon: _jsx(IconProgressReady, {}),
|
154
|
+
tooltipName: 'recentsManager',
|
155
|
+
panelManagerMatrixRowId: 'recentsManager',
|
156
|
+
},
|
157
|
+
{
|
158
|
+
id: 'toolbar-item-searchQueryPanel',
|
159
|
+
icon: _jsx(IconProgressReady, {}),
|
160
|
+
tooltipName: 'searchQueryPanel',
|
161
|
+
panelManagerMatrixRowId: 'searchQueryPanel',
|
162
|
+
visible: deviceType === DeviceType.MOBILE
|
163
|
+
},
|
164
|
+
{
|
165
|
+
id: 'toolbar-item-savedQuery',
|
166
|
+
icon: _jsx(IconSavedQuery, {}),
|
167
|
+
tooltipName: 'savedQuery',
|
168
|
+
panelManagerMatrixRowId: 'savedQuery',
|
169
|
+
// alternativePanelManagerMatrixRowId: ['distinctValues']
|
170
|
+
}
|
171
|
+
]
|
172
|
+
};
|
39
173
|
useEffect(() => {
|
40
174
|
setMruTIDs(SDKUI_Globals.userSettings.searchSettings.mruTIDs);
|
41
175
|
loadDataSQDsAsync(false);
|
@@ -123,67 +257,7 @@ const TMSearch = ({ inputTID, inputSqdID, isExpertMode = SDKUI_Globals.userSetti
|
|
123
257
|
if (sqdToBeSet)
|
124
258
|
await setSqdAsync?.(sqdToBeSet);
|
125
259
|
}, []);
|
126
|
-
|
127
|
-
{ icon: _jsx(IconTree, {}), id: 'trees', visibleName: 'Alberi', isActive: showTreesPanel, visible: true },
|
128
|
-
{ icon: _jsx(IconProgressReady, {}), id: 'recents', visibleName: 'Recenti', isActive: showRecentsPanel, visible: true, },
|
129
|
-
{ icon: _jsx(IconSavedQuery, {}), id: 'savedquery', visibleName: 'Ricerche rapide', isActive: showSavedQueryPanel, visible: true },
|
130
|
-
{ icon: _jsx(IconDataList, {}), id: 'DistinctValues', visibleName: 'Valori distiniti', isActive: showDistinctValuesPanel, disabled: !focusedTidMid, visible: true }
|
131
|
-
];
|
132
|
-
const rightSidebarItemClickHandler = (item) => {
|
133
|
-
switch (item.toLowerCase()) {
|
134
|
-
case 'trees':
|
135
|
-
setShowTreesPanel(!showTreesPanel);
|
136
|
-
break;
|
137
|
-
case 'recents':
|
138
|
-
setShowRecentsPanel(!showRecentsPanel);
|
139
|
-
break;
|
140
|
-
case 'savedquery':
|
141
|
-
setShowSavedQueryPanel(!showSavedQueryPanel);
|
142
|
-
break;
|
143
|
-
case 'distinctvalues':
|
144
|
-
setShowDistinctValuesPanel(!showDistinctValuesPanel);
|
145
|
-
break;
|
146
|
-
default: break;
|
147
|
-
}
|
148
|
-
};
|
149
|
-
return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.None, children: _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', showSeparator: deviceType !== DeviceType.MOBILE && showTreesPanel, separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: (deviceType === DeviceType.MOBILE) ? ['100%', '0%'] : showTreesPanel ? ['20%', '80%'] : ['0%', '100%'], children: [deviceType !== DeviceType.MOBILE &&
|
150
|
-
_jsx(TMTreeSelector, { onClose: () => setShowTreesPanel(false), onSelectedTIDChanged: (tid) => {
|
151
|
-
setCurrentTID(tid);
|
152
|
-
if (tid && mruTIDs.includes(tid))
|
153
|
-
setCurrentMruTID(tid);
|
154
|
-
else
|
155
|
-
setCurrentMruTID(0);
|
156
|
-
} }), _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', showSeparator: deviceType !== DeviceType.MOBILE && showSavedQueryPanel && !showDistinctValuesPanel, separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: (deviceType === DeviceType.MOBILE || showDistinctValuesPanel) ? ['100%', '0%'] : ((showSavedQueryPanel) ? ['70%', '30%'] : ['100%', '0%']), children: [_jsx(TMLayoutItem, { children: _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', showSeparator: deviceType !== DeviceType.MOBILE && showRecentsPanel, separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: deviceType === DeviceType.DESKTOP ? (showRecentsPanel ? ['30%', '70%'] : ['0%', '100%']) : (currentTID ? ['0%', '100%'] : ['100%', '0%']), children: [_jsx(TMPanel, { title: "Scorciatoie", totalItems: mruTIDs.length, onClose: () => setShowRecentsPanel(false), children: _jsx(TMRecentsManager, { mruTIDs: mruTIDs, currentMruTID: currentMruTID, deviceType: deviceType, onSelectedTID: (tid) => { setCurrentMruTID(tid); setCurrentTID(tid); }, onDeletedTID: (tid) => {
|
157
|
-
let newMruTIDS = mruTIDs.slice();
|
158
|
-
let index = newMruTIDS.findIndex(o => o == tid);
|
159
|
-
if (index >= 0)
|
160
|
-
newMruTIDS.splice(index, 1);
|
161
|
-
SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
|
162
|
-
setMruTIDs(newMruTIDS);
|
163
|
-
} }) }), _jsx(TMSearchQueryPanel, { isExpertMode: isExpertMode, fromDTD: fromDTD, SQD: currentSQD, isOpenDistinctValuesPanel: showDistinctValuesPanel, rightSidebarItems: rightSidebarItems, onBack: deviceType !== DeviceType.DESKTOP ? () => { setCurrentTID(0); } : undefined, onFocusedMetadataChanged: setFocusedTidMid, onRightSidebarItemClick: rightSidebarItemClickHandler, onCloseDistinctValuesPanel: () => setShowDistinctValuesPanel(false), onSearchCompleted: (searchResult, qd) => {
|
164
|
-
setSearchResult(searchResult);
|
165
|
-
if (searchResult.length <= 0)
|
166
|
-
return;
|
167
|
-
setLastQdSearched(qd);
|
168
|
-
setCurrentSearchView(TMSearchViews.Result);
|
169
|
-
// Salvataggio ultimi 10 TIDs
|
170
|
-
let fromTID = searchResult?.[0].fromTID;
|
171
|
-
let newMruTIDS = mruTIDs.slice();
|
172
|
-
let index = newMruTIDS.findIndex(o => o == fromTID);
|
173
|
-
if (index >= 0)
|
174
|
-
newMruTIDS.splice(index, 1);
|
175
|
-
if (newMruTIDS.length >= 10)
|
176
|
-
newMruTIDS.splice(0, 1);
|
177
|
-
newMruTIDS.push(fromTID);
|
178
|
-
setMruTIDs(newMruTIDS);
|
179
|
-
setCurrentMruTID(fromTID);
|
180
|
-
SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
|
181
|
-
}, onSqdSaved: async (newSqd) => {
|
182
|
-
await loadDataSQDsAsync(true, newSqd.masterTID);
|
183
|
-
await setSQDAsync(newSqd);
|
184
|
-
} })] }) }), _jsx(StyledMultiViewPanel, { "$isVisible": !showDistinctValuesPanel, children: _jsx(TMLayoutItem, { children: _jsx(TMPanel, { title: SDK_Localizator.SavedQueries, onClose: () => setShowSavedQueryPanel(false), children: _jsxs(TabPanel, { width: "100%", height: "100%", showNavButtons: true, repaintChangesOnly: true, selectedIndex: currentSQDMode, onSelectedIndexChange: (index) => setCurrentSQDMode(index), children: [(currentTID || currentSQD) ? _jsx(Item, { title: fromDTD?.nameLoc, children: _jsx(TMSavedQuerySelector, { allowShowSearch: false, items: filteredByTIDSQDs, selectedId: currentSQD?.id, onRefreshData: () => { loadDataSQDsAsync(true); }, onItemClick: (sqd) => onSQDItemClick(sqd, setSQDAsync), onDeleted: (sqd) => onSQDDeleted(sqd, sqd.id == currentSQD?.id ? filteredByTIDSQDs.find(o => o.id == 1) : currentSQD, setSQDAsync) }) }) : _jsx(_Fragment, {}), _jsx(Item, { title: SDKUI_Localizator.Alls2, children: _jsx(TMSavedQuerySelector, { allowShowSearch: true, items: allSQDs, manageDefault: false,
|
185
|
-
// selectedId={currentSQD?.id}
|
186
|
-
onItemClick: (sqd) => onSQDItemClick(sqd, setSQDAsync), onDeleted: (sqd) => onSQDDeleted(sqd, sqd.id == currentSQD?.id ? undefined : currentSQD, setSQDAsync) }) })] }) }) }) })] })] }) }), _jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Result, children: searchResult.length > 0 &&
|
260
|
+
return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.None, children: _jsx(TMPanelManagerMatrix, { panelMatrixMap: panelMatrixMap, toolbar: toolbar, initialMobilePanelID: "recentsManager" }) }), _jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Result, children: searchResult.length > 0 &&
|
187
261
|
_jsx(TMSearchResult, { context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync: async () => {
|
188
262
|
// setSearchResult([]);
|
189
263
|
setSearchResult(await refreshLastSearch(lastQdSearched) ?? []);
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { DcmtTypeDescriptor, QueryDescriptor } from '@topconsultnpm/sdk-ts-beta';
|
3
3
|
import { TID_MID } from '../../../ts';
|
4
|
+
import { AdvancedMenuClickEventArgs } from '../../editors/TMMetadataValues';
|
4
5
|
interface ITMSearchQueryEditorProps {
|
5
6
|
qd: QueryDescriptor | undefined;
|
6
7
|
fromDTD?: DcmtTypeDescriptor;
|
@@ -9,6 +10,7 @@ interface ITMSearchQueryEditorProps {
|
|
9
10
|
showAllMdWhere?: boolean;
|
10
11
|
isOpenDistinctValuesPanel: boolean;
|
11
12
|
onQdChanged?: (qd: QueryDescriptor) => void;
|
13
|
+
onAdvancedMenuClick?: (e: AdvancedMenuClickEventArgs) => void;
|
12
14
|
onFocusedMetadataChanged?: (tid_mid: TID_MID | undefined) => void;
|
13
15
|
}
|
14
16
|
declare const TMSearchQueryEditor: React.FunctionComponent<ITMSearchQueryEditorProps>;
|
@@ -13,6 +13,7 @@ import { FormulaHelper } from '../../editors/TMFormulaEditor';
|
|
13
13
|
import TMMetadataEditor, { useMetadataEditableList } from '../../editors/TMMetadataEditor';
|
14
14
|
import { colorOperator, StyledItemWrapper, StyledRowItem } from '../../query/TMQueryEditor';
|
15
15
|
import { TMMidViewer } from '../../viewers/TMMidViewer';
|
16
|
+
import { AdvancedMenuButtons } from '../../editors/TMMetadataValues';
|
16
17
|
const StyledMetadataListItem = styled.div `
|
17
18
|
padding: 5px;
|
18
19
|
border-radius: 8px;
|
@@ -27,7 +28,7 @@ const StyledMetadataListItem = styled.div `
|
|
27
28
|
cursor: pointer;
|
28
29
|
}
|
29
30
|
`;
|
30
|
-
const TMSearchQueryEditor = ({ qd, fromDTD, dcmtTypesList = [], isOpenDistinctValuesPanel, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, showAllMdWhere, onQdChanged, onFocusedMetadataChanged }) => {
|
31
|
+
const TMSearchQueryEditor = ({ qd, fromDTD, dcmtTypesList = [], isOpenDistinctValuesPanel, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, showAllMdWhere, onQdChanged, onFocusedMetadataChanged, onAdvancedMenuClick }) => {
|
31
32
|
const [dynDataListsToBeRefreshed, setDynDataListsToBeRefreshed] = useState([]);
|
32
33
|
const [showDistinctValuesPanel, setShowDistinctValuesPanel] = useState(false);
|
33
34
|
const [currentEditingMID, setCurrentEditingMID] = useState(0);
|
@@ -134,9 +135,25 @@ const TMSearchQueryEditor = ({ qd, fromDTD, dcmtTypesList = [], isOpenDistinctVa
|
|
134
135
|
let md = dtd.metadata?.find(o => o.id == mid);
|
135
136
|
if (!md)
|
136
137
|
return [];
|
137
|
-
|
138
|
-
|
139
|
-
|
138
|
+
const menu = [
|
139
|
+
// Only add MakeEditable/Restore if isExpertMode is true
|
140
|
+
...(isExpertMode ? [{
|
141
|
+
text: isEditable ? SDKUI_Localizator.Restore : SDKUI_Localizator.MakeEditable,
|
142
|
+
icon: isEditable ? _jsx(IconUndo, {}) : _jsx(IconPencil, {}),
|
143
|
+
onClick: () => {
|
144
|
+
addOrRemoveEditableList(mid);
|
145
|
+
onAdvancedMenuClick?.({ tid: tid, mid: mid, button: AdvancedMenuButtons.MakeEditable });
|
146
|
+
}
|
147
|
+
}] : []),
|
148
|
+
{
|
149
|
+
text: SDKUI_Localizator.DistinctValues,
|
150
|
+
icon: _jsx(IconDataList, {}),
|
151
|
+
onClick: () => {
|
152
|
+
handleMetadataSelection(tid, mid);
|
153
|
+
setShowDistinctValuesPanel(!showDistinctValuesPanel);
|
154
|
+
onAdvancedMenuClick?.({ tid: tid, mid: mid, button: AdvancedMenuButtons.DistinctValues });
|
155
|
+
}
|
156
|
+
}
|
140
157
|
];
|
141
158
|
return menu;
|
142
159
|
};
|
@@ -202,7 +219,7 @@ const TMSearchQueryEditor = ({ qd, fromDTD, dcmtTypesList = [], isOpenDistinctVa
|
|
202
219
|
? _jsx(IconFunction, { color: "#1a89d3", fontSize: 14, style: { position: "absolute", top: '-5px', left: '-10px' } })
|
203
220
|
: (isEditableList(whereItem.mid))
|
204
221
|
? _jsx(IconPencil, { color: "#138603", fontSize: 14, style: { position: "absolute", top: '-5px', left: '-10px' } })
|
205
|
-
: _jsx(_Fragment, {})] }),
|
222
|
+
: _jsx(_Fragment, {})] }), _jsx("div", { style: { gridColumn: 4 }, children: _jsx(TMDropDownMenu, { backgroundColor: 'white', color: TMColors.button_icon, borderRadius: '3px', content: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconMenuVertical, {}), showTooltip: false }), items: getAdvancedMenuItems(whereItem.tid, whereItem.mid) }) })] }, `${whereItem.tid}_${whereItem.mid}_${index}`));
|
206
223
|
}) }) }));
|
207
224
|
};
|
208
225
|
export default TMSearchQueryEditor;
|
@@ -5,14 +5,12 @@ import { ITMRightSidebarItem } from '../../base/TMRightSidebar';
|
|
5
5
|
interface ITMSearchQueryPanelProps {
|
6
6
|
fromDTD?: DcmtTypeDescriptor;
|
7
7
|
SQD?: SavedQueryDescriptor;
|
8
|
-
isOpenDistinctValuesPanel?: boolean;
|
9
8
|
rightSidebarItems?: ITMRightSidebarItem[];
|
10
9
|
isExpertMode?: boolean;
|
11
10
|
onBack?: () => void;
|
12
11
|
onRightSidebarItemClick?: (item: string) => void;
|
13
12
|
onSqdSaved?: (newSqd: SavedQueryDescriptor) => void;
|
14
13
|
onFocusedMetadataChanged?: (tid_mid: TID_MID | undefined) => void;
|
15
|
-
onCloseDistinctValuesPanel?: () => void;
|
16
14
|
onSearchCompleted?: (searchResult: SearchResultDescriptor[], qd: QueryDescriptor | undefined) => void;
|
17
15
|
}
|
18
16
|
declare const TMSearchQueryPanel: React.FunctionComponent<ITMSearchQueryPanelProps>;
|
@@ -8,12 +8,12 @@ import { getDcmtTypesByQdAsync, SDKUI_Localizator, getQD, IconMenuVertical, Icon
|
|
8
8
|
import { useQueryParametersDialog } from '../../../hooks/useQueryParametersDialog';
|
9
9
|
import { FormModes } from '../../../ts';
|
10
10
|
import { TMColors } from '../../../utils/theme';
|
11
|
-
import { StyledModalContainer
|
11
|
+
import { StyledModalContainer } from '../../base/Styled';
|
12
12
|
import ShowAlert from '../../base/TMAlert';
|
13
13
|
import TMButton from '../../base/TMButton';
|
14
14
|
import { useDeviceType, DeviceType } from '../../base/TMDeviceProvider';
|
15
15
|
import TMDropDownMenu from '../../base/TMDropDownMenu';
|
16
|
-
import TMLayoutContainer, {
|
16
|
+
import TMLayoutContainer, { TMLayoutItem } from '../../base/TMLayout';
|
17
17
|
import { TMExceptionBoxManager } from '../../base/TMPopUp';
|
18
18
|
import TMSpinner from '../../base/TMSpinner';
|
19
19
|
import TMPanel from '../../base/TMPanel';
|
@@ -21,7 +21,8 @@ import TMDistinctValues from '../../choosers/TMDistinctValues';
|
|
21
21
|
import { TMMetadataChooserForm } from '../../choosers/TMMetadataChooser';
|
22
22
|
import TMQueryEditor from '../../query/TMQueryEditor';
|
23
23
|
import TMSavedQueryForm from './TMSavedQueryForm';
|
24
|
-
|
24
|
+
import { AdvancedMenuButtons } from '../../editors/TMMetadataValues';
|
25
|
+
const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, SQD, onRightSidebarItemClick, onSearchCompleted, onFocusedMetadataChanged, onSqdSaved, onBack }) => {
|
25
26
|
const [confirmQueryParams, ConfirmQueryParamsDialog] = useQueryParametersDialog();
|
26
27
|
const [qd, setQd] = useState();
|
27
28
|
const [lastQdParams, setLastQdParams] = useState([]);
|
@@ -33,6 +34,7 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
|
|
33
34
|
const [showFiltersConfig, setShowFiltersConfig] = useState(false);
|
34
35
|
const [showOutputConfig, setShowOutputConfig] = useState(false);
|
35
36
|
const [showOrderByConfig, setShowOrderByConfig] = useState(false);
|
37
|
+
const [showDistinctValuesPanel, setShowDistinctValuesPanel] = useState(false);
|
36
38
|
const [focusedTidMid, setFocusedTidMid] = useState();
|
37
39
|
const deviceType = useDeviceType();
|
38
40
|
let initialMaxItems = deviceType === DeviceType.MOBILE ? 8 : 12;
|
@@ -98,7 +100,7 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
|
|
98
100
|
}
|
99
101
|
}
|
100
102
|
};
|
101
|
-
return (_jsxs(
|
103
|
+
return (_jsxs(_Fragment, { children: [_jsxs(TMPanel, { title: fromDTD?.nameLoc ?? SDKUI_Localizator.Search_Metadata, items: rightSidebarItems, onItemClick: onRightSidebarItemClick, onBack: onBack, toolbar: _jsx(_Fragment, { children: (SQD && !showSqdForm) ?
|
102
104
|
_jsx(TMDropDownMenu, { backgroundColor: 'white', borderRadius: '3px', content: _jsx(TMButton, { btnStyle: 'icon', caption: 'Altro', icon: _jsx(IconMenuVertical, { color: 'white' }), showTooltip: false }), items: [
|
103
105
|
{ icon: _jsx(IconAddCircleOutline, {}), text: SDKUI_Localizator.SavedQueryNew, onClick: () => { openSqdForm(FormModes.Create); } },
|
104
106
|
{ icon: _jsx(IconEdit, {}), text: SDKUI_Localizator.SavedQueryUpdate, disabled: (SQD && SQD.id == 1), onClick: () => { openSqdForm(FormModes.Update); } },
|
@@ -112,7 +114,11 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
|
|
112
114
|
? _jsxs("div", { style: { height: '100%', width: '100%', position: 'relative', display: 'flex', flexDirection: 'column', gap: 5 }, children: [showAdvancedSearch
|
113
115
|
? _jsx(TMQueryEditor, { formMode: FormModes.Update, showToolbar: false, inputData: qd, validateSelect: true, showApply: false, onQDChanged: (newQd) => { if (!deepCompare(qd, newQd))
|
114
116
|
setQd(newQd); } })
|
115
|
-
: _jsx(TMSearchQueryEditor, { qd: qd, fromDTD: fromDTD, dcmtTypesList: dcmtTypesList, isOpenDistinctValuesPanel:
|
117
|
+
: _jsx(TMSearchQueryEditor, { qd: qd, fromDTD: fromDTD, dcmtTypesList: dcmtTypesList, isOpenDistinctValuesPanel: showDistinctValuesPanel, isExpertMode: isExpertMode, showAllMdWhere: showAllMdWhere, onFocusedMetadataChanged: setFocusedTidMid, onAdvancedMenuClick: (e) => {
|
118
|
+
if (e.button === AdvancedMenuButtons.DistinctValues) {
|
119
|
+
setShowDistinctValuesPanel(true);
|
120
|
+
}
|
121
|
+
}, onQdChanged: (newQd) => { if (!deepCompare(qd, newQd))
|
116
122
|
setQd(newQd); } }), _jsxs("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', gap: '80px', padding: '15px', position: 'relative' }, children: [_jsxs("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', gap: '8px' }, children: [_jsx(TMButton, { btnStyle: 'advanced', icon: _jsx(IconSearch, {}), showTooltip: false, caption: SDKUI_Localizator.Search, onClick: async () => await searchAsync(qd, showAdvancedSearch), advancedColor: '#f09c0a' }), _jsx(TMButton, { btnStyle: 'advanced', showTooltip: false, caption: SDKUI_Localizator.Clear, icon: _jsx(IconClear, {}), advancedColor: TMColors.primaryColor, onClick: clearFilters })] }), (!showAdvancedSearch && qd?.where && qd?.where?.length > initialMaxItems) && _jsx(TMButton, { elementStyle: { position: 'absolute', right: '10px' }, btnStyle: 'icon', caption: showAllMdWhere ? "Mostra meno" : `Mostra tutti i metadati (+${qd?.where?.length - initialMaxItems})`, icon: showAllMdWhere ?
|
117
123
|
_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: `-${qd?.where?.length - initialMaxItems}` }) }) :
|
118
124
|
_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: `+${qd?.where?.length - initialMaxItems}` }) }), onClick: () => setShowAllMdWhere(!showAllMdWhere) })] }), showFiltersConfig &&
|
@@ -191,7 +197,8 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
|
|
191
197
|
} })] })
|
192
198
|
:
|
193
199
|
_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 &&
|
194
|
-
_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 }) })] }),
|
200
|
+
_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 &&
|
201
|
+
_jsx(TMDistinctValues, { isModal: true, tid: focusedTidMid?.tid, mid: focusedTidMid?.mid, separator: ',', onClosePanelCallback: () => setShowDistinctValuesPanel(false), onSelectionChanged: (e) => {
|
195
202
|
if (!e)
|
196
203
|
return;
|
197
204
|
let wi = qd?.where?.find(o => o.tid === focusedTidMid?.tid && o.mid === focusedTidMid?.mid);
|
@@ -206,7 +213,7 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
|
|
206
213
|
return wi;
|
207
214
|
});
|
208
215
|
setQd({ ...qd, where: whereCopy });
|
209
|
-
} })
|
216
|
+
} })] }));
|
210
217
|
};
|
211
218
|
export default TMSearchQueryPanel;
|
212
219
|
const searchByQdAsync = async (qdInput, searchParams) => {
|
@@ -456,7 +456,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
456
456
|
_jsx(TMNothingToShow, { text: 'Nessun documento selezionato.', secondText: notAvalableMsg, icon: notAvalableIcon })
|
457
457
|
:
|
458
458
|
_jsxs(StyledContainer, { children: [isOpenBoard && _jsx(TMDcmtBlog, { tid: focusedItem?.TID, did: focusedItem?.DID }), isOpenSysMetadata &&
|
459
|
-
_jsx(TMMetadataValues, { layoutMode: LayoutModes.Update, openChooserBySingleClick: !isOpenDistinctValues, TID: focusedItem?.TID, deviceType: deviceType, metadataValues: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] })] }) }) })
|
459
|
+
_jsx(TMMetadataValues, { layoutMode: LayoutModes.Update, openChooserBySingleClick: !isOpenDistinctValues, TID: focusedItem?.TID, isReadOnly: true, deviceType: deviceType, metadataValues: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] })] }) }) })
|
460
460
|
: _jsx(_Fragment, {}), isOpenPreview
|
461
461
|
? _jsx(TMLayoutItem, { children: _jsx(TMDcmtPreview, { onClose: () => { setIsOpenPreview(false); onClosePreview?.(); }, dcmtData: currentDcmt, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev') }) })
|
462
462
|
: _jsx(_Fragment, {})] }) })
|