@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 = qd.select.slice(0, maxVisible);
293
- const hiddenCount = qd.select.length - maxVisible;
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 = qd.orderBy.slice(0, maxVisible);
302
- const hiddenCount = qd.orderBy.length - maxVisible;
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}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react",
3
- "version": "6.21.0-dev3.20",
3
+ "version": "6.21.0-dev3.21",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",