@topconsultnpm/sdkui-react 6.21.0-dev3.20 → 6.21.0-dev3.21
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.
|
@@ -282,24 +282,65 @@ const TMSearchQueryPanel = ({ fromDTD, showBackToResultButton, isExpertMode = SD
|
|
|
282
282
|
const captionText = showAllMdWhere ? SDKUI_Localizator.ShowLess : SDKUI_Localizator.ShowAll;
|
|
283
283
|
let maxItems = getListMaxItems(deviceType ?? DeviceType.DESKTOP);
|
|
284
284
|
const diff = (qd?.where?.length ?? 0) - maxItems;
|
|
285
|
+
// Calcola se mostrare i badges di output
|
|
286
|
+
// Non mostrare se: modalità avanzata, tutti i metadati selezionati, o tutti tranne quelli di sistema
|
|
287
|
+
const shouldShowOutputBadges = useMemo(() => {
|
|
288
|
+
// In modalità avanzata non mostrare mai i badges di output
|
|
289
|
+
if (showAdvancedSearch)
|
|
290
|
+
return false;
|
|
291
|
+
if (!qd?.select || qd.select.length === 0)
|
|
292
|
+
return false;
|
|
293
|
+
if (!fromDTD?.metadata)
|
|
294
|
+
return true;
|
|
295
|
+
// Filtra i metadati disponibili per output (stessa logica usata in TMMetadataOutputForm)
|
|
296
|
+
const availableOutputMetadata = fromDTD.metadata.filter(o => o.perm?.canView === AccessLevels.Yes || o.perm?.canUpdate === AccessLevels.Yes);
|
|
297
|
+
// Metadati non di sistema disponibili per output
|
|
298
|
+
const availableNonSystemMetadata = availableOutputMetadata.filter(o => o.isSystem !== 1);
|
|
299
|
+
const selectedCount = qd.select.length;
|
|
300
|
+
const totalAvailable = availableOutputMetadata.length;
|
|
301
|
+
const totalNonSystem = availableNonSystemMetadata.length;
|
|
302
|
+
// Non mostrare se sono selezionati tutti i metadati disponibili
|
|
303
|
+
if (selectedCount === totalAvailable)
|
|
304
|
+
return false;
|
|
305
|
+
// Non mostrare se sono selezionati tutti i metadati non di sistema
|
|
306
|
+
// (verifica che tutti quelli selezionati siano non di sistema e che siano tutti)
|
|
307
|
+
const selectedMids = new Set(qd.select.map(s => s.mid));
|
|
308
|
+
const allSelectedAreNonSystem = qd.select.every(s => {
|
|
309
|
+
const md = fromDTD.metadata?.find(m => m.id === s.mid);
|
|
310
|
+
return md && md.isSystem !== 1;
|
|
311
|
+
});
|
|
312
|
+
const allNonSystemAreSelected = availableNonSystemMetadata.every(m => selectedMids.has(m.id));
|
|
313
|
+
if (allSelectedAreNonSystem && allNonSystemAreSelected && selectedCount === totalNonSystem) {
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
316
|
+
return true;
|
|
317
|
+
}, [showAdvancedSearch, qd?.select, fromDTD?.metadata]);
|
|
318
|
+
// In modalità avanzata non mostrare i badges di ordinamento
|
|
319
|
+
const shouldShowOrderByBadges = useMemo(() => {
|
|
320
|
+
if (showAdvancedSearch)
|
|
321
|
+
return false;
|
|
322
|
+
return qd?.orderBy && qd.orderBy.length > 0;
|
|
323
|
+
}, [showAdvancedSearch, qd?.orderBy]);
|
|
285
324
|
return (_jsxs(_Fragment, { children: [_jsxs(TMPanel, { title: fromDTD?.nameLoc ?? SDKUI_Localizator.Search_Metadata, allowMaximize: allowMaximize, onMaximize: onMaximizePanel, onHeaderDoubleClick: onMaximizePanel, onBack: onBack, onActiveChanged: handlePanelActiveChanged, toolbar: _jsx(_Fragment, { children: (SQD && !showSqdForm) ?
|
|
286
325
|
_jsx(ContextMenu, { items: contextMenuItems, trigger: "left", children: _jsx(TMButton, { btnStyle: 'icon', caption: 'Altro', icon: _jsx(IconMenuVertical, { color: 'white' }), showTooltip: false, onClick: () => setIsQueryPanelActive(true) }) })
|
|
287
326
|
: _jsx(_Fragment, {}) }), children: [_jsx(ConfirmQueryParamsDialog, {}), SQD
|
|
288
327
|
? _jsxs("div", { onContextMenu: (e) => e.preventDefault(), style: { height: '100%', width: '100%', position: 'relative', display: showSqdForm ? 'none' : 'flex', flexDirection: 'column', gap: 5 }, children: [showAdvancedSearch
|
|
289
328
|
? _jsx(TMQueryEditor, { formMode: FormModes.Update, showToolbar: false, inputData: qd, validateSelect: true, showApply: false, onQDChanged: handleQdChanged, updateIsModalOpen: updateIsModalOpen })
|
|
290
|
-
: _jsx(TMSearchQueryEditor, { qd: qd, dcmtTypesList: dcmtTypesList, isExpertMode: isExpertMode, showAllMdWhere: showAllMdWhere, onQdChanged: handleQdChanged, onFocusedMetadataChanged: setFocusedTidMid, onAdvancedMenuClick: handleAdvancedMenuClick, updateIsModalOpen: updateIsModalOpen }), qd?.select && qd.select.length > 0 && (_jsxs(StyledSelectBadgesContainer, { children: [_jsxs(StyledSelectLabel, { children: [SDK_Localizator.QuerySelect, ":"] }), _jsx(StyledSelectBadgesWrapper, { children: (() => {
|
|
329
|
+
: _jsx(TMSearchQueryEditor, { qd: qd, dcmtTypesList: dcmtTypesList, isExpertMode: isExpertMode, showAllMdWhere: showAllMdWhere, onQdChanged: handleQdChanged, onFocusedMetadataChanged: setFocusedTidMid, onAdvancedMenuClick: handleAdvancedMenuClick, updateIsModalOpen: updateIsModalOpen }), shouldShowOutputBadges && qd?.select && qd.select.length > 0 && (_jsxs(StyledSelectBadgesContainer, { children: [_jsxs(StyledSelectLabel, { children: [SDK_Localizator.QuerySelect, ":"] }), _jsx(StyledSelectBadgesWrapper, { children: (() => {
|
|
330
|
+
const selectItems = qd.select ?? [];
|
|
291
331
|
const maxVisible = isMobile ? 1 : 2;
|
|
292
|
-
const visibleItems =
|
|
293
|
-
const hiddenCount =
|
|
332
|
+
const visibleItems = selectItems.slice(0, maxVisible);
|
|
333
|
+
const hiddenCount = selectItems.length - maxVisible;
|
|
294
334
|
return (_jsxs(_Fragment, { children: [visibleItems.map((si, index) => {
|
|
295
335
|
const md = fromDTD?.metadata?.find(m => m.id === si.mid);
|
|
296
336
|
const mdName = md?.nameLoc ?? md?.name ?? `MID ${si.mid}`;
|
|
297
337
|
return (_jsxs(StyledSelectBadge, { children: [_jsx(IconColumns, { fontSize: 12 }), _jsx("span", { className: "badge-name", children: mdName })] }, `${si.tid}-${si.mid}-${index}`));
|
|
298
338
|
}), hiddenCount > 0 && (_jsxs(StyledSelectBadgeMore, { onClick: () => setShowOutputConfig(true), children: ["+", hiddenCount] }))] }));
|
|
299
|
-
})() }), _jsx(StyledSelectEditButton, { title: SDKUI_Localizator.Configure, onClick: () => setShowOutputConfig(true), children: _jsx(IconEdit, { fontSize: 16 }) })] })), qd?.orderBy && qd.orderBy.length > 0 && (_jsxs(StyledOrderByBadgesContainer, { children: [_jsxs(StyledOrderByLabel, { children: [qd.orderBy.length === 1 ? SDKUI_Localizator.SortBy : SDKUI_Localizator.SortByPlural, ":"] }), _jsx(StyledOrderByBadgesWrapper, { children: (() => {
|
|
339
|
+
})() }), _jsx(StyledSelectEditButton, { title: SDKUI_Localizator.Configure, onClick: () => setShowOutputConfig(true), children: _jsx(IconEdit, { fontSize: 16 }) })] })), shouldShowOrderByBadges && qd?.orderBy && qd.orderBy.length > 0 && (_jsxs(StyledOrderByBadgesContainer, { children: [_jsxs(StyledOrderByLabel, { children: [qd.orderBy.length === 1 ? SDKUI_Localizator.SortBy : SDKUI_Localizator.SortByPlural, ":"] }), _jsx(StyledOrderByBadgesWrapper, { children: (() => {
|
|
340
|
+
const orderByItems = qd.orderBy ?? [];
|
|
300
341
|
const maxVisible = isMobile ? 1 : 2;
|
|
301
|
-
const visibleItems =
|
|
302
|
-
const hiddenCount =
|
|
342
|
+
const visibleItems = orderByItems.slice(0, maxVisible);
|
|
343
|
+
const hiddenCount = orderByItems.length - maxVisible;
|
|
303
344
|
return (_jsxs(_Fragment, { children: [visibleItems.map((obi, index) => {
|
|
304
345
|
const md = fromDTD?.metadata?.find(m => m.id === obi.mid);
|
|
305
346
|
const mdName = md?.nameLoc ?? md?.name ?? `MID ${obi.mid}`;
|