@topconsultnpm/sdkui-react 6.22.0-dev2.50 → 6.22.0-dev2.52

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,11 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
3
  import TMDcmtPreview from './TMDcmtPreview';
4
- import { AccessLevelsEx, AppModules, ArchiveConstraints, ArchiveEngineByID, DcmtTypeListCacheService, DossierCacheService, LayoutCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, MetadataFormats, ObjectClasses, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, SystemTIDs, Task_States, TID_DID, UpdateEngineByID, UserListCacheService, ValidationItem, WorkflowCacheService, WorkingGroupCacheService, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts';
4
+ import { AccessLevels, AccessLevelsEx, AppModules, ArchiveConstraints, ArchiveEngineByID, DcmtTypeDescriptor, DcmtTypeListCacheService, DcmtTypePermission, DossierCacheService, LayoutCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, MetadataFormats, ObjectClasses, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, SystemTIDs, Task_States, TID_DID, UpdateEngineByID, UserListCacheService, ValidationItem, WorkflowCacheService, WorkingGroupCacheService, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts';
5
5
  import { FormModes, SearchResultContext } from '../../../ts';
6
6
  import { DeviceType, useDeviceType } from '../../base/TMDeviceProvider';
7
7
  import { getWorkItemSetIDAsync, handleArchiveVisibility, searchResultToMetadataValues } from '../../../helper/queryHelper';
8
- import { genUniqueId, IconShow, SDKUI_Localizator, updateMruTids, IconBoard, IconDcmtTypeSys, calcIsModified, IconMenuVertical, Globalization, getListMaxItems, getSystemMetadata, IconBoxArchiveIn, IconClear, IconUndo, SDKUI_Globals, IconPreview, isTaskMoreInfo, IconWorkflow, IconSearch, deepCompare, IconActivity, getExceptionMessage, isApprovalWorkflowView, getDcmtCicoStatus, buildWorkItemsFromWFCtrl, IconLock, getDcmtFormToolbarVisibility, taskModalSizes, IconArchiveMultipleDetailDocuments } from '../../../helper';
8
+ import { genUniqueId, IconShow, SDKUI_Localizator, updateMruTids, IconBoard, IconDcmtTypeSys, calcIsModified, IconMenuVertical, Globalization, getListMaxItems, getSystemMetadata, IconBoxArchiveIn, IconClear, IconUndo, SDKUI_Globals, IconPreview, isTaskMoreInfo, IconWorkflow, IconSearch, deepCompare, IconActivity, getExceptionMessage, isApprovalWorkflowView, getDcmtCicoStatus, buildWorkItemsFromWFCtrl, IconLock, getDcmtFormToolbarVisibility, taskModalSizes, IconArchiveMultipleDetailDocuments, isNotGrantedDraftsDTD } from '../../../helper';
9
9
  import { hasDetailRelations, hasMasterRelations } from '../../../helper/dcmtsHelper';
10
10
  import { Gutters, TMColors } from '../../../utils/theme';
11
11
  import { StyledFormButtonsContainer, StyledLoadingContainer, StyledSpinner, StyledToolbarCardContainer } from '../../base/Styled';
@@ -336,6 +336,14 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
336
336
  }
337
337
  // Carica DTD e metadata
338
338
  let dtd = await DcmtTypeListCacheService.GetWithNotGrantedAsync(TID, DID, getMetadataResult);
339
+ // Le bozze dei gruppi di lavoro vivono su un tipo documento non autorizzato e quindi privo di
340
+ // permessi: si concede la sola lettura del file, altrimenti non sarebbe scaricabile dal form.
341
+ if (isNotGrantedDraftsDTD(dtd)) {
342
+ const perm = new DcmtTypePermission();
343
+ perm.canRetrieveFile = AccessLevels.Yes;
344
+ // Su una copia: GetWithNotGrantedAsync restituisce l'istanza in cache, condivisa con gli altri consumer
345
+ dtd = Object.assign(new DcmtTypeDescriptor(), dtd, { perm });
346
+ }
339
347
  setFromDTD(dtd);
340
348
  if (layoutMode === LayoutModes.Update || (layoutMode === LayoutModes.Ark && DID)) {
341
349
  await setMetadataList(dtd?.metadata ?? [], getMetadataResult);
@@ -1068,18 +1076,32 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
1068
1076
  setUseWaitPanelLocalState(false);
1069
1077
  }
1070
1078
  }, [TID, connectorFileSave, onSavedAsyncCallback, onSaveRecents, onClose, DID, setMetadataList, handleReset, layoutMode, isSharedDcmt]);
1079
+ // Messaggio di conferma dell'archiviazione in base al vincolo del tipo documento (ArchiveConstraints).
1080
+ const getArchiveConfirmMessage = useCallback(() => {
1081
+ // Con connectorFileSave il file viene prodotto dal connettore solo alla conferma: si assume che ci sarà.
1082
+ const hasFile = !!connectorFileSave || !!dcmtFileRef.current;
1083
+ switch (fromDTDRef.current?.archiveConstraint) {
1084
+ // Solo metadati: il file non è previsto.
1085
+ case ArchiveConstraints.OnlyMetadata: return SDKUI_Localizator.ArchiveDocument_Confirm;
1086
+ // File obbligatorio: senza file il pulsante Archivia è disabilitato, quindi qui il file c'è.
1087
+ case ArchiveConstraints.ContentCompulsory: return SDKUI_Localizator.ArchiveDocument_Confirm;
1088
+ // Metadati e/o file: se il file manca lo segnala, come in v5.
1089
+ default: return hasFile ? SDKUI_Localizator.ArchiveDocument_Confirm : SDKUI_Localizator.ArchiveOnlyMetadata_Confirm;
1090
+ }
1091
+ }, [connectorFileSave]);
1071
1092
  const handleConfirmAction = useCallback(async () => {
1093
+ const isUpdate = layoutMode === LayoutModes.Update;
1072
1094
  TMMessageBoxManager.show({
1073
1095
  parentId: isModal ? "TMDcmtFormShowConfirmForClose-" + id : undefined,
1074
1096
  buttons: [ButtonNames.YES, ButtonNames.NO],
1075
- message: layoutMode === LayoutModes.Update ? SDKUI_Localizator.SaveQuestion : 'Sei sicuro di voler archiviare questo documento?',
1076
- onButtonClick(e) {
1097
+ message: isUpdate ? SDKUI_Localizator.SaveQuestion : getArchiveConfirmMessage(),
1098
+ onButtonClick: (e) => {
1077
1099
  if (e !== ButtonNames.YES)
1078
1100
  return;
1079
- layoutMode === LayoutModes.Update ? handleSave() : handleArchiveCompleted();
1101
+ isUpdate ? handleSave() : handleArchiveCompleted();
1080
1102
  },
1081
1103
  });
1082
- }, [isModal, id, layoutMode, handleSave, handleArchiveCompleted]);
1104
+ }, [isModal, id, layoutMode, getArchiveConfirmMessage, handleSave, handleArchiveCompleted]);
1083
1105
  // Azione secondaria del form di archiviazione: archivia il master e, subito dopo,
1084
1106
  // apre il modale di archiviazione dei documenti di dettaglio multipli usando il master appena creato.
1085
1107
  const handleArchiveMasterAndDetails = useCallback(async () => {
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
- import { getDTDDisplayNameInfo, IconDcmtType, IconDcmtTypeOnlyMetadata, IconLocked, IconView, isCreateCertificateEnabled, isPdfEditorEnabled, isSign4TopEnabled, LocalizeArchiveConstraints, LocalizeParametricFilterTypes, SDKUI_Localizator, TMImageLibrary } from '../../helper';
3
+ import { getDTDDisplayNameInfo, IconDcmtType, IconDcmtTypeOnlyMetadata, IconLocked, IconView, isCreateCertificateEnabled, isPdfEditorEnabled, isSign4TopEnabled, LocalizeArchiveConstraints, isNotGrantedDTD, LocalizeParametricFilterTypes, SDKUI_Localizator, TMImageLibrary } from '../../helper';
4
4
  import { AccessLevels, AccessLevelsEx, ArchiveConstraints, DcmtTypeListCacheService, OwnershipLevels, ParametricFilterTypes, SDK_Globals, SDK_Localizator, TemplateTIDs } from '@topconsultnpm/sdk-ts';
5
5
  import TMSpinner from '../base/TMSpinner';
6
6
  import { StyledDivHorizontal, StyledTooltipContainer, StyledTooltipItem, StyledTooltipSeparatorItem } from '../base/Styled';
@@ -243,7 +243,7 @@ export const TMDcmtTypeIcon = ({ dtd }) => {
243
243
  if (!dtd)
244
244
  return null;
245
245
  let icon = null;
246
- if (dtd.customData2 === "NOTGRANTED")
246
+ if (isNotGrantedDTD(dtd))
247
247
  icon = _jsx(IconLocked, { fontSize: 16 });
248
248
  else if (dtd.imageID && dtd.imageID.length > 0)
249
249
  icon = _jsx(TMImageLibrary, { imageID: dtd.imageID });
@@ -402,7 +402,7 @@ export const renderDTDTooltipContent = (dtd) => {
402
402
  }
403
403
  };
404
404
  return (!dtd ? null
405
- : _jsxs(StyledTooltipContainer, { children: [_jsx(StyledTooltipItem, { children: `${SDK_Globals.useLocalizedName ? dtd.nameLoc : dtd.name} (${dtd.isView ? 'VID' : 'TID'}: ${dtd.id}, RootTID: ${dtd.rootTID ?? 0})` }), dtd.description && _jsx(StyledTooltipItem, { children: dtd.description }), _jsx(StyledTooltipSeparatorItem, {}), dtd.customData2 === "NOTGRANTED"
405
+ : _jsxs(StyledTooltipContainer, { children: [_jsx(StyledTooltipItem, { children: `${SDK_Globals.useLocalizedName ? dtd.nameLoc : dtd.name} (${dtd.isView ? 'VID' : 'TID'}: ${dtd.id}, RootTID: ${dtd.rootTID ?? 0})` }), dtd.description && _jsx(StyledTooltipItem, { children: dtd.description }), _jsx(StyledTooltipSeparatorItem, {}), isNotGrantedDTD(dtd)
406
406
  ? _jsx(StyledTooltipItem, { style: { fontWeight: 600 }, children: 'Tipo documento NON autorizzato' })
407
407
  :
408
408
  _jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ArchiveConstraint}: ${LocalizeArchiveConstraints(dtd.archiveConstraint)}` }), dtd.isView && dtd.parametricFilterType != ParametricFilterTypes.None && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ParametricFilter}: ${LocalizeParametricFilterTypes(dtd.parametricFilterType)}` }), dtd.isView && dtd.withCheckOption && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ViewWithCheckOption}: ${SDKUI_Localizator.Yes}` }), dtd.isLexProt && dtd.isLexProt > 0 && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.Yes}` }), dtd.isFreeSearchable && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Search_Free}: ${SDKUI_Localizator.Yes}` }), dtd.templateTID && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Template}: ${dtd.templateTID}` }), dtd.traceTID && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Tracing}: ${SDKUI_Localizator.Yes} - ${dtd.templateTID == TemplateTIDs.Trace_DcmtType ? SDKUI_Localizator.Destination : SDKUI_Localizator.Source} ${dtd.traceTID < 0 ? SDKUI_Localizator.Disabled : ''}` }), dtd.wfAppr && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.WorkflowApproval}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.BlogCase}: ${dtd.hasBlog ? SDKUI_Localizator.Yes : SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.CheckIn}: ${dtd.cico ? SDKUI_Localizator.Yes : SDKUI_Localizator.No}` }), dtd.perm ?
@@ -61,6 +61,8 @@ export declare class SDKUI_Localizator {
61
61
  static get ArchiveMultipleDetailDocuments(): "Mehrere Details archivieren" | "Archive multiple details" | "Archivar múltiples detalles" | "Archiver plusieurs détails" | "Arquivar múltiplos detalhes" | "Archivia dettagli multipli";
62
62
  static get ArchiveMasterAndMultipleDetailDocuments(): "Master mit mehreren Details archivieren" | "Archive master with multiple details" | "Archivar maestro con múltiples detalles" | "Archiver le maître avec plusieurs détails" | "Arquivar mestre com múltiplos detalhes" | "Archivia master con dettagli multipli";
63
63
  static get ArchiveMasterAndDetails_Confirm(): "Master archivieren und mit den Details fortfahren?" | "Archive the master and proceed with the details?" | "¿Archivar el maestro y continuar con los detalles?" | "Archiver le maître et poursuivre avec les détails ?" | "Arquivar o mestre e prosseguir com os detalhes?" | "Archiviare il master e proseguire con i dettagli?";
64
+ static get ArchiveDocument_Confirm(): "Möchten Sie dieses Dokument wirklich archivieren?" | "Are you sure you want to archive this document?" | "¿Está seguro de que desea archivar este documento?" | "Êtes-vous sûr de vouloir archiver ce document ?" | "Tem a certeza de que pretende arquivar este documento?" | "Sei sicuro di voler archiviare questo documento?";
65
+ static get ArchiveOnlyMetadata_Confirm(): "Keine Datei ausgewählt.<br>Mit einer Archivierung von nur Metadaten fortfahren?" | "No file selected.<br>Proceed with a metadata-only archiving?" | "Ningún archivo seleccionado.<br>¿Continuar con un archivado de solo metadatos?" | "Aucun fichier sélectionné.<br>Poursuivre avec un archivage de métadonnées uniquement ?" | "Nenhum ficheiro selecionado.<br>Prosseguir com um arquivamento apenas de metadados?" | "Nessun file selezionato.<br>Procedere con una archiviazione di soli metadati?";
64
66
  static get ExitWithoutArchiving_Confirm(): "Möchten Sie wirklich beenden? Die eingegebenen Dokumente werden nicht archiviert. Fortfahren?" | "Are you sure you want to exit? The entered documents will not be archived. Continue?" | "¿Está seguro de que desea salir? Los documentos introducidos no se archivarán. ¿Continuar?" | "Êtes-vous sûr de vouloir quitter ? Les documents saisis ne seront pas archivés. Continuer ?" | "Tem a certeza de que pretende sair? Os documentos introduzidos não serão arquivados. Continuar?" | "Sei sicuro di voler uscire? I documenti inseriti non verranno archiviati. Continuare?";
65
67
  static get Archiving(): string;
66
68
  static get ArchivingCompletionInProgress(): string;
@@ -564,6 +564,26 @@ export class SDKUI_Localizator {
564
564
  default: return "Archiviare il master e proseguire con i dettagli?";
565
565
  }
566
566
  }
567
+ static get ArchiveDocument_Confirm() {
568
+ switch (this._cultureID) {
569
+ case CultureIDs.De_DE: return "Möchten Sie dieses Dokument wirklich archivieren?";
570
+ case CultureIDs.En_US: return "Are you sure you want to archive this document?";
571
+ case CultureIDs.Es_ES: return "¿Está seguro de que desea archivar este documento?";
572
+ case CultureIDs.Fr_FR: return "Êtes-vous sûr de vouloir archiver ce document ?";
573
+ case CultureIDs.Pt_PT: return "Tem a certeza de que pretende arquivar este documento?";
574
+ default: return "Sei sicuro di voler archiviare questo documento?";
575
+ }
576
+ }
577
+ static get ArchiveOnlyMetadata_Confirm() {
578
+ switch (this._cultureID) {
579
+ case CultureIDs.De_DE: return "Keine Datei ausgewählt.<br>Mit einer Archivierung von nur Metadaten fortfahren?";
580
+ case CultureIDs.En_US: return "No file selected.<br>Proceed with a metadata-only archiving?";
581
+ case CultureIDs.Es_ES: return "Ningún archivo seleccionado.<br>¿Continuar con un archivado de solo metadatos?";
582
+ case CultureIDs.Fr_FR: return "Aucun fichier sélectionné.<br>Poursuivre avec un archivage de métadonnées uniquement ?";
583
+ case CultureIDs.Pt_PT: return "Nenhum ficheiro selecionado.<br>Prosseguir com um arquivamento apenas de metadados?";
584
+ default: return "Nessun file selezionato.<br>Procedere con una archiviazione di soli metadati?";
585
+ }
586
+ }
567
587
  static get ExitWithoutArchiving_Confirm() {
568
588
  switch (this._cultureID) {
569
589
  case CultureIDs.De_DE: return "Möchten Sie wirklich beenden? Die eingegebenen Dokumente werden nicht archiviert. Fortfahren?";
@@ -42,6 +42,12 @@ export declare const isCreateCertificateEnabled: (widgetsString: string) => bool
42
42
  export declare const isPdfEditorEnabled: (widgetsString: string) => boolean;
43
43
  /** Verifica se l'editor PDF è disponibile: richiede file PDF, licenza attiva e widget abilitato sul tipo documento. */
44
44
  export declare const isPdfEditorAvailable: (fromDTD: DcmtTypeDescriptor | undefined, ext: string | undefined) => boolean;
45
+ /** Verifica se il tipo documento è quello delle bozze dei gruppi di lavoro. */
46
+ export declare const isDraftsDTD: (dtd: DcmtTypeDescriptor | undefined) => boolean;
47
+ /** Verifica se il tipo documento non è autorizzato per l'utente corrente. */
48
+ export declare const isNotGrantedDTD: (dtd: DcmtTypeDescriptor | undefined) => boolean;
49
+ /** Verifica se il tipo documento è quello delle bozze dei gruppi di lavoro non autorizzato, e quindi privo di permessi. */
50
+ export declare const isNotGrantedDraftsDTD: (dtd: DcmtTypeDescriptor | undefined) => boolean;
45
51
  interface TabItemProps {
46
52
  $isSelected: boolean;
47
53
  $activeGradient?: string;
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import styled from "styled-components";
3
3
  import { TMTooltip } from '../components';
4
4
  import { IconCADossier, IconKey, IconMenuCAWorkingGroups } from './TMIcons';
5
- import { AccessLevels, AppModules, DataColumnTypes, DataListCacheService, DcmtTypeListCacheService, LicenseModuleStatus, MetadataDataDomains, MetadataFormats, PdGs, SDK_Globals, SystemMIDs } from '@topconsultnpm/sdk-ts';
5
+ import { AccessLevels, AppModules, DataColumnTypes, DataListCacheService, DcmtTypeListCacheService, LicenseModuleStatus, MetadataDataDomains, MetadataFormats, PdGs, SDK_Globals, SystemMIDs, SystemTIDs } from '@topconsultnpm/sdk-ts';
6
6
  import { SDKUI_Localizator } from './SDKUI_Localizator';
7
7
  /**
8
8
  * Estensioni di firma/marca temporale note che possono avvolgere altre estensioni.
@@ -242,6 +242,14 @@ export const isPdfEditorAvailable = (fromDTD, ext) => {
242
242
  const isPdfEditorLicensed = SDK_Globals?.license?.dcmtArchiveLicenses?.[0]?.siX_60007?.status === LicenseModuleStatus.Licensed;
243
243
  return isPdfEditorLicensed && isPdfEditorEnabled(fromDTD.widgets);
244
244
  };
245
+ /** Valore di customData2 con cui il server marca i tipi documento non autorizzati per l'utente corrente. */
246
+ const NOT_GRANTED_DTD = 'NOTGRANTED';
247
+ /** Verifica se il tipo documento è quello delle bozze dei gruppi di lavoro. */
248
+ export const isDraftsDTD = (dtd) => dtd?.id === SystemTIDs.Drafts;
249
+ /** Verifica se il tipo documento non è autorizzato per l'utente corrente. */
250
+ export const isNotGrantedDTD = (dtd) => dtd?.customData2 === NOT_GRANTED_DTD;
251
+ /** Verifica se il tipo documento è quello delle bozze dei gruppi di lavoro non autorizzato, e quindi privo di permessi. */
252
+ export const isNotGrantedDraftsDTD = (dtd) => !!dtd && !dtd.perm && isDraftsDTD(dtd) && isNotGrantedDTD(dtd);
245
253
  export const StyledTabItem = styled.div `
246
254
  display: flex;
247
255
  align-items: center;
@@ -21,7 +21,7 @@ import { useDcmtOperations } from "./useDcmtOperations";
21
21
  import useFloatingBarPinnedItems from "./useFloatingBarPinnedItems";
22
22
  import { useInputAttachmentsDialog, useInputCvtFormatDialog } from "./useInputDialog";
23
23
  import { useRelatedDocuments } from "./useRelatedDocuments";
24
- import { convertSearchResultDescriptorToFileItems, dcmtsFileCachePreview, getDcmtCicoStatus, getMoreInfoTasksForDocument, IconActivity, IconArchiveDetail, IconArchiveDoc, IconArchiveMaster, IconBatchUpdate, IconCheck, IconCheckFile, IconCheckIn, IconCircleInfo, IconCloseCircle, IconConvertFilePdf, IconCopy, IconCustom, IconDelete, IconDetailDcmts, IconDotsVerticalCircleOutline, IconDownload, IconEdit, IconExportTo, IconFileDots, IconHide, IconInfo, IconMenuCAArchive, IconMoveToFolder, IconPair, IconPin, IconPlatform, IconPreview, IconRelation, IconSearch, IconShare, IconSharedDcmt, IconShow, IconSignaturePencil, IconStar, IconSubstFile, IconUndo, IconUnpair, IconUserGroupOutline, isConvertibleToPdfExt, isPdfEditorAvailable, S4T_USER_REGISTRY_MASTER, SDKUI_Globals, SDKUI_Localizator, searchResultToMetadataValues, TMImageLibrary, IconCertificateBadge, IconArchiveMultipleDetailDocuments } from '../helper';
24
+ import { convertSearchResultDescriptorToFileItems, dcmtsFileCachePreview, getDcmtCicoStatus, getMoreInfoTasksForDocument, IconActivity, IconArchiveDetail, IconArchiveDoc, IconArchiveMaster, IconBatchUpdate, IconCheck, IconCheckFile, IconCheckIn, IconCircleInfo, IconCloseCircle, IconConvertFilePdf, IconCopy, IconCustom, IconDelete, IconDetailDcmts, IconDotsVerticalCircleOutline, IconDownload, IconEdit, IconExportTo, IconFileDots, IconHide, IconInfo, IconMenuCAArchive, IconMoveToFolder, IconPair, IconPin, IconPlatform, IconPreview, IconRelation, IconSearch, IconShare, IconSharedDcmt, IconShow, IconSignaturePencil, IconStar, IconSubstFile, IconUndo, IconUnpair, IconUserGroupOutline, isConvertibleToPdfExt, isPdfEditorAvailable, S4T_USER_REGISTRY_MASTER, SDKUI_Globals, SDKUI_Localizator, searchResultToMetadataValues, TMImageLibrary, IconCertificateBadge, IconArchiveMultipleDetailDocuments, isDraftsDTD } from '../helper';
25
25
  import { isXMLFileExt } from "../helper/dcmtsHelper";
26
26
  import TMCopyToFolderForm from "../components/features/documents/TMCopyToFolderForm";
27
27
  import TMMergeToPdfForm from "../components/features/documents/TMMergeToPdfForm";
@@ -764,6 +764,7 @@ export const useDocumentOperations = (props) => {
764
764
  id: 'cico',
765
765
  icon: _jsx(IconFileDots, {}),
766
766
  name: "Check in/Check out",
767
+ visible: !isDraftsDTD(dtd), // Non disponibile per le bozze dei gruppi di lavoro
767
768
  disabled: dcmt === undefined || isDisabledForSingleRow(),
768
769
  submenu: [
769
770
  {
@@ -886,6 +887,7 @@ export const useDocumentOperations = (props) => {
886
887
  name: SDKUI_Localizator.Relations,
887
888
  operationType: 'multiRow',
888
889
  disabled: isDisabledForMultiRow(),
890
+ visible: !isDraftsDTD(dtd), // Non disponibile per le bozze dei gruppi di lavoro
889
891
  submenu: [
890
892
  {
891
893
  id: 'rel-pair',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react",
3
- "version": "6.22.0-dev2.50",
3
+ "version": "6.22.0-dev2.52",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",