@topconsultnpm/sdkui-react-beta 6.14.140 → 6.14.142

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,7 +1,7 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
3
  import styled from "styled-components";
4
- import { AccessLevels, DcmtTypeListCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, SDK_Globals, TemplateTIDs, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts-beta';
4
+ import { AccessLevels, DcmtTypeListCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, SDK_Globals, SystemMIDsAsNumber, SystemTIDs, TemplateTIDs, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts-beta';
5
5
  import { IconUndo, IconPencil, IconFunction, IconMenuVertical, IconDataList, SDKUI_Localizator, IconNull, stringIsNullOrEmpty, deepCompare, SDKUI_Globals, IconDcmtTypeSys } from "../../helper";
6
6
  import { TMColors } from "../../utils/theme";
7
7
  import TMButton from "../base/TMButton";
@@ -10,6 +10,7 @@ import TMTooltip from "../base/TMTooltip";
10
10
  import TMCheckBox from "./TMCheckBox";
11
11
  import TMMetadataEditor, { useMetadataEditableList } from "./TMMetadataEditor";
12
12
  import { FormulaHelper } from "./TMFormulaEditor";
13
+ import { DraftsMIDs } from "../../ts";
13
14
  import { TMNothingToShow } from "../features/documents/TMDcmtPreview";
14
15
  import TMAccordion from "../base/TMAccordion";
15
16
  export var ShowCheckBoxesMode;
@@ -221,7 +222,7 @@ const TMMetadataValues = ({ showCheckBoxes = ShowCheckBoxesMode.Never, checkPerm
221
222
  if (mvd)
222
223
  mvd.isSelected = newValue;
223
224
  onValueChanged?.(newValues);
224
- } }), _jsxs("div", { style: { position: 'relative', height: '100%', width: '100%', opacity: showNullValueCheckBoxes && item.isNull ? 0.4 : 1 }, children: [_jsx(TMMetadataEditor, { tid: TID, mid: item.mid, layoutMode: layoutMode, isLexProt: item.isLexProt, isSelected: isOpenDistinctValues && item.mid === selectedMID, isModifiedWhen: (item.value ?? '') !== (metadataValuesOrig.find(m => m.mid === item.mid)?.value ?? ''), isReadOnly: isReadOnly || isReadOnlyOverride || (showNullValueCheckBoxes ? item.isNull : undefined), isEditable: item.isEditable, validationItems: editorValidationHandler(item.mid ?? 0), value: item.value, openChooserBySingleClick: openChooserBySingleClick, onValueChanged: (newValue) => { onChangeHandler(newValue, item.mid ?? 0); }, onValueChange: (newValue) => { onChangeHandler(newValue, item.mid ?? 0); }, queryParamsDynDataList: dynDataListsToBeRefreshed.find(o => o.mid == item.mid)?.queryParams ?? [], onCascadeRefreshDynDataLists: (ddlToBeRefreshed) => {
225
+ } }), _jsxs("div", { style: { position: 'relative', height: '100%', width: '100%', opacity: showNullValueCheckBoxes && item.isNull ? 0.4 : 1 }, children: [_jsx(TMMetadataEditor, { tid: TID, mid: item.mid, customLabel: item.customName, layoutMode: layoutMode, isLexProt: item.isLexProt, isSelected: isOpenDistinctValues && item.mid === selectedMID, isModifiedWhen: (item.value ?? '') !== (metadataValuesOrig.find(m => m.mid === item.mid)?.value ?? ''), isReadOnly: isReadOnly || isReadOnlyOverride || item.isReadOnly || (showNullValueCheckBoxes ? item.isNull : undefined), isEditable: item.isEditable, validationItems: editorValidationHandler(item.mid ?? 0), value: item.value, openChooserBySingleClick: openChooserBySingleClick, onValueChanged: (newValue) => { onChangeHandler(newValue, item.mid ?? 0); }, onValueChange: (newValue) => { onChangeHandler(newValue, item.mid ?? 0); }, queryParamsDynDataList: dynDataListsToBeRefreshed.find(o => o.mid == item.mid)?.queryParams ?? [], onCascadeRefreshDynDataLists: (ddlToBeRefreshed) => {
225
226
  let newDynDataListsToBeRefreshed = [];
226
227
  for (const item of dynDataListsToBeRefreshed) {
227
228
  let index = ddlToBeRefreshed.findIndex(o => o.mid == item.mid || (o.mid == -1 && o.midStarter == item.midStarter));
@@ -299,11 +300,69 @@ const TMMetadataValues = ({ showCheckBoxes = ShowCheckBoxesMode.Never, checkPerm
299
300
  });
300
301
  return (_jsxs("div", { style: { width: '100%' }, children: [documentData.length > 0 && _jsx(TMAccordion, { title: SDKUI_Localizator.DocumentData, children: documentData.map(item => renderMetadataItem(item)) }), workItemData.length > 0 && _jsx(TMAccordion, { title: SDKUI_Localizator.WorkItemData, children: workItemData.map(item => renderMetadataItem(item, true)) }), technicalWorkItemData.length > 0 && _jsx(TMAccordion, { title: SDKUI_Localizator.WorkItemTechnicalData, defaultCollapsed: true, children: technicalWorkItemData.map(item => renderMetadataItem(item, true)) })] }));
301
302
  };
303
+ const layoutDraft = () => {
304
+ // Definiamo l'ordine desiderato per gli elementi in draftData
305
+ const desiredDraftOrder = [
306
+ DraftsMIDs.Name,
307
+ DraftsMIDs.Description,
308
+ DraftsMIDs.Ver,
309
+ DraftsMIDs.LastVer,
310
+ SystemMIDsAsNumber.FileExt,
311
+ SystemMIDsAsNumber.FileSize,
312
+ SystemMIDsAsNumber.LastUpdateTime,
313
+ SystemMIDsAsNumber.CreationTime,
314
+ ];
315
+ // Usiamo una mappa temporanea per raccogliere gli elementi per ID,
316
+ // in modo da poterli poi ordinare facilmente.
317
+ const tempDraftDataMap = {};
318
+ const checkOutData = [];
319
+ metadataValues.forEach(item => {
320
+ switch (item.md?.id) {
321
+ case DraftsMIDs.Name:
322
+ case DraftsMIDs.Description:
323
+ tempDraftDataMap[item.md.id] = item;
324
+ break;
325
+ case DraftsMIDs.Ver:
326
+ case DraftsMIDs.LastVer:
327
+ case SystemMIDsAsNumber.FileExt:
328
+ case SystemMIDsAsNumber.FileSize:
329
+ case SystemMIDsAsNumber.LastUpdateTime:
330
+ case SystemMIDsAsNumber.CreationTime:
331
+ item.isReadOnly = true;
332
+ tempDraftDataMap[item.md.id] = item;
333
+ break;
334
+ case DraftsMIDs.CheckOutDate:
335
+ case DraftsMIDs.CheckOutUserID:
336
+ checkOutData.push(item);
337
+ break;
338
+ default: break;
339
+ }
340
+ });
341
+ // Ora creiamo l'array draftData finale nell'ordine desiderato
342
+ const draftData = [];
343
+ desiredDraftOrder.forEach(id => {
344
+ if (tempDraftDataMap[id]) {
345
+ draftData.push(tempDraftDataMap[id]);
346
+ }
347
+ });
348
+ return (_jsxs("div", { style: { width: '100%' }, children: [draftData.length > 0 && _jsx(TMAccordion, { title: SDKUI_Localizator.Draft, children: draftData.map(item => renderMetadataItem(item)) }), checkOutData.length > 0 && _jsx(TMAccordion, { title: `${SDKUI_Localizator.CheckIn}/${SDKUI_Localizator.CheckOut}`, children: checkOutData.map(item => renderMetadataItem(item, true)) })] }));
349
+ };
350
+ const renderForm = () => {
351
+ if (currentDTD?.templateTID === TemplateTIDs.WF_WIApprView && !isReadOnly) {
352
+ return layoutWorkItem();
353
+ }
354
+ switch (currentDTD?.id) {
355
+ case SystemTIDs.Drafts: return !isReadOnly ? layoutDraft() : metadataValues.map((item) => renderMetadataItem(item));
356
+ // case SystemTIDs.Chronology: break;
357
+ // case SystemTIDs.DSAttachs: break;
358
+ default:
359
+ // Condizione di default se nessuna delle precedenti condizioni è vera
360
+ return metadataValues.map((item) => renderMetadataItem(item));
361
+ }
362
+ };
302
363
  return (_jsx(StyledMetadataValuesContainer, { children: !TID ?
303
- _jsx(TMNothingToShow, { text: 'Nessun documento selezionato.', secondText: 'Metadati di sistema non disponibile.', icon: _jsx(IconDcmtTypeSys, { fontSize: 96 }) }) :
304
- _jsx(_Fragment, { children: currentDTD?.templateTID === TemplateTIDs.WF_WIApprView && !isReadOnly ?
305
- layoutWorkItem() :
306
- metadataValues.map((item) => renderMetadataItem(item)) }) }));
364
+ _jsx(TMNothingToShow, { text: `${SDKUI_Localizator.NoDcmtSelected}.`, secondText: `${SDKUI_Localizator.MetadataSystem} - ${SDKUI_Localizator.NotAvailable}`, icon: _jsx(IconDcmtTypeSys, { fontSize: 96 }) }) :
365
+ _jsx(_Fragment, { children: renderForm() }) }));
307
366
  };
308
367
  export default TMMetadataValues;
309
368
  //#region Styled Components
@@ -31,7 +31,7 @@ const TMBlogCommentForm = (props) => {
31
31
  const { participants, selectedAttachments, selectedAttachmentDid, allFileItems, allArchivedDocumentsFileItems = [], onClose, refreshCallback, context, showAttachmentsSection = true, updateShouldSelectLastBlog } = props;
32
32
  // Initialize state with combined array
33
33
  const [dataSource, setDataSource] = useState(() => [...getNonDirectoryFiles(allFileItems?.items || [], []), ...allArchivedDocumentsFileItems]);
34
- const [isEditorEnabled, setIsEditorEnabled] = useState(false);
34
+ const [isEditorEnabled, setIsEditorEnabled] = useState(true);
35
35
  const [showAttachmentsForm, setShowAttachmentsForm] = useState(false);
36
36
  const [mentionsConfig, setMentionsConfig] = useState([]);
37
37
  // Get the current device type (e.g., mobile, tablet, desktop) using a custom hook.
@@ -6,7 +6,7 @@ import { TMExceptionBoxManager } from '../../base/TMPopUp';
6
6
  import TMSpinner from '../../base/TMSpinner';
7
7
  import TMBlogs from '../../grids/TMBlogs';
8
8
  import { TMNothingToShow } from './TMDcmtPreview';
9
- import { IconBoard } from '../../../helper';
9
+ import { IconBoard, SDKUI_Localizator } from '../../../helper';
10
10
  import TMBlogCommentForm from '../blog/TMBlogCommentForm';
11
11
  const TMDcmtBlog = ({ tid, did, isVisible }) => {
12
12
  const [blogsDatasource, setBlogsDatasource] = useState([]);
@@ -57,7 +57,7 @@ const TMDcmtBlog = ({ tid, did, isVisible }) => {
57
57
  const refreshCallback = async () => {
58
58
  await fetchDataAsync(tid, did);
59
59
  };
60
- return (_jsxs("div", { style: { width: '100%', height: '100%' }, children: [_jsx(StyledContainer, { children: _jsx(StyledSectionContainer, { style: { position: 'relative' }, children: _jsx(StyledBoardContainer, { children: !did ? _jsx(TMNothingToShow, { text: 'Nessun documento selezionato.', secondText: 'Bacheca non disponibile.', icon: _jsx(IconBoard, { fontSize: 96 }) }) :
60
+ return (_jsxs("div", { style: { width: '100%', height: '100%' }, children: [_jsx(StyledContainer, { children: _jsx(StyledSectionContainer, { style: { position: 'relative' }, children: _jsx(StyledBoardContainer, { children: !did ? _jsx(TMNothingToShow, { text: `${SDKUI_Localizator.NoDcmtSelected}.`, secondText: `${SDKUI_Localizator.BlogCase} - ${SDKUI_Localizator.NotAvailable}`, icon: _jsx(IconBoard, { fontSize: 96 }) }) :
61
61
  _jsx(TMBlogs, { context: { engine: 'SearchEngine', object: { tid, did } }, id: "dcmt-blog", allData: blogsDatasource, showExtendedAttachments: false, showFloatingCommentButton: true, showCommentFormCallback: showCommentFormCallback, refreshCallback: refreshCallback, contextMenuParams: {
62
62
  isShowHideFilterEnabled: true,
63
63
  isShowHideIDEnaled: true,
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useState } from 'react';
3
3
  import TMDcmtPreview from './TMDcmtPreview';
4
- import { AccessLevels, ArchiveConstraints, ArchiveEngineByID, DcmtTypeListCacheService, LayoutModes, MetadataDataTypes, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, Task_States, TemplateTIDs, TID_DID, UpdateEngineByID, ValidationItem } from '@topconsultnpm/sdk-ts-beta';
4
+ import { AccessLevels, ArchiveConstraints, ArchiveEngineByID, DcmtTypeListCacheService, LayoutModes, MetadataDataTypes, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, SystemTIDs, Task_States, TemplateTIDs, TID_DID, UpdateEngineByID, ValidationItem } from '@topconsultnpm/sdk-ts-beta';
5
5
  import { ContextMenu } from 'devextreme-react';
6
6
  import { WorkFlowApproveRejectPopUp, WorkFlowMoreInfoPopUp, WorkFlowOperationButtons, WorkFlowReAssignPopUp } from '../workflow/TMWorkflowPopup';
7
7
  import { DownloadTypes, FormModes } from '../../../ts';
@@ -424,11 +424,11 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
424
424
  const listMaxItems = getListMaxItems(deviceType ?? DeviceType.DESKTOP);
425
425
  const totalItems = formData.filter(o => o.mid && o.mid > 100).length;
426
426
  const metadataValuesSource = useMemo(() => {
427
- return showAll ? formData.filter(o => o.mid && o.mid > 100) : formData.filter(o => o.mid && o.mid > 100).slice(0, listMaxItems);
428
- }, [showAll, formData]);
427
+ return applyMetadataFilter(formData, showAll, listMaxItems, TID);
428
+ }, [showAll, formData, listMaxItems, TID]); // Aggiungi TID e listMaxItems alle dipendenze
429
429
  const metadataValuesSourceOrig = useMemo(() => {
430
- return showAll ? formDataOrig.filter(o => o.mid && o.mid > 100) : formDataOrig.filter(o => o.mid && o.mid > 100).slice(0, listMaxItems);
431
- }, [showAll, formDataOrig]);
430
+ return applyMetadataFilter(formDataOrig, showAll, listMaxItems, TID);
431
+ }, [showAll, formDataOrig, listMaxItems, TID]);
432
432
  const handleClose = () => {
433
433
  if (!isModified) {
434
434
  onClose?.();
@@ -659,6 +659,21 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
659
659
  : renderDcmtForm() }));
660
660
  };
661
661
  export default TMDcmtForm;
662
+ // Funzione di utilità per applicare la logica di filtro
663
+ const applyMetadataFilter = (data, showAll, listMaxItems, TID) => {
664
+ // funzione di filtro base
665
+ const baseFilter = (o) => o.mid && o.mid > 100;
666
+ // funzione di filtro per il caso Draft
667
+ const draftFilter = (o) => baseFilter(o) ||
668
+ o.mid === SystemMIDsAsNumber.FileExt ||
669
+ o.mid === SystemMIDsAsNumber.FileSize ||
670
+ o.mid === SystemMIDsAsNumber.LastUpdateTime ||
671
+ o.mid === SystemMIDsAsNumber.CreationTime;
672
+ // Scegli il filtro appropriato
673
+ const currentFilter = TID === SystemTIDs.Drafts ? draftFilter : baseFilter;
674
+ const filteredData = data.filter(currentFilter);
675
+ return showAll ? filteredData : filteredData.slice(0, listMaxItems);
676
+ };
662
677
  //#region Validaion
663
678
  const validateMetadataList = (mvdList = []) => {
664
679
  if (!Array.isArray(mvdList)) {
@@ -426,9 +426,9 @@ export const TMNothingToShow = ({ text = '', secondText, fileExt, icon = _jsx(Ic
426
426
  };
427
427
  const renderedPreview = (tid, did, fileExt, fileSize, fileCount, extHandler, showPreview, isResizingActive, onDownloadShowPreviewClick, dcmtBlob) => {
428
428
  if (!did)
429
- return _jsx(TMNothingToShow, { text: 'Nessun documento selezionato.' });
429
+ return _jsx(TMNothingToShow, { text: `${SDKUI_Localizator.NoDcmtSelected}.` });
430
430
  if (fileCount == 0) {
431
- return _jsx(TMNothingToShow, { text: 'Documento di soli metadati.' });
431
+ return _jsx(TMNothingToShow, { text: SDKUI_Localizator.MetadataOnlyDocument });
432
432
  }
433
433
  if (fileExt && extHandler === FileExtensionHandler.NONE) {
434
434
  return _jsx(TMNothingToShow, { fileExt: fileExt });
@@ -216,14 +216,6 @@ const TMBlogs = (props) => {
216
216
  const isDeleted = focusedBlog && (focusedBlog.isDel !== undefined && focusedBlog.isDel !== 0);
217
217
  const isInvalid = focusedBlog === undefined;
218
218
  let menuItemsElements = [
219
- {
220
- icon: "chat",
221
- text: SDKUI_Localizator.Comment,
222
- visible: contextMenuParams.isCommentEnabled,
223
- disabled: isGroupArchived ? true : false,
224
- onClick: () => { if (showCommentFormCallback)
225
- showCommentFormCallback(); },
226
- },
227
219
  {
228
220
  icon: "download",
229
221
  text: 'Download',
@@ -232,26 +224,27 @@ const TMBlogs = (props) => {
232
224
  onClick: downloadAttachment,
233
225
  },
234
226
  {
235
- icon: showDcmtForm ? 'eyeclose' : 'eyeopen',
236
- text: showDcmtForm ? SDKUI_Localizator.HideMetadata : SDKUI_Localizator.ViewEditMetadata,
227
+ icon: 'eyeopen',
228
+ text: SDKUI_Localizator.OpenForm,
237
229
  visible: contextMenuParams.isViewEditMetadata && focusedAttachment !== undefined,
238
230
  disabled: focusedAttachment === undefined,
239
231
  onClick: () => setShowDcmtForm(true),
240
232
  },
233
+ {
234
+ icon: "chat",
235
+ text: SDKUI_Localizator.Comment,
236
+ visible: contextMenuParams.isCommentEnabled,
237
+ disabled: isGroupArchived ? true : false,
238
+ onClick: () => { if (showCommentFormCallback)
239
+ showCommentFormCallback(); },
240
+ beginGroup: true
241
+ },
241
242
  {
242
243
  icon: "trash",
243
244
  text: SDKUI_Localizator.Delete,
244
245
  visible: contextMenuParams.isDeleteEnabled,
245
246
  onClick: () => deleteOrUndeleteCommentCallback(true),
246
247
  disabled: isNotOwner || isInvalid || isDeleted || isGroupArchived,
247
- beginGroup: true
248
- },
249
- {
250
- text: SDKUI_Localizator.CopyToClipboard,
251
- visible: contextMenuParams.isCopyToClipboardEnabled,
252
- icon: 'copy',
253
- disabled: isInvalid,
254
- onClick: () => { copyInClipboard(focusedBlog); }
255
248
  },
256
249
  {
257
250
  icon: "undo",
@@ -260,6 +253,13 @@ const TMBlogs = (props) => {
260
253
  onClick: () => deleteOrUndeleteCommentCallback(false),
261
254
  disabled: isNotOwner || isInvalid || (focusedBlog && (focusedBlog.isDel === undefined || focusedBlog.isDel === 0)),
262
255
  },
256
+ {
257
+ text: SDKUI_Localizator.CopyToClipboard,
258
+ visible: contextMenuParams.isCopyToClipboardEnabled,
259
+ icon: 'copy',
260
+ disabled: isInvalid,
261
+ onClick: () => { copyInClipboard(focusedBlog); }
262
+ },
263
263
  {
264
264
  text: SDKUI_Localizator.CreateContextualTask,
265
265
  icon: 'plus',
@@ -290,7 +290,6 @@ const TMBlogs = (props) => {
290
290
  visible: contextMenuParams.isRefreshEnabled,
291
291
  onClick: refresh,
292
292
  disabled: false,
293
- beginGroup: true
294
293
  },
295
294
  ];
296
295
  return menuItemsElements;
@@ -127,6 +127,7 @@ export declare class SDKUI_Localizator {
127
127
  static get DownloadFile(): string;
128
128
  static get Download_in_Process(): "Download läuft" | "Download in progress" | "Descarga en curso" | "Téléchargement en cours" | "Download em progresso" | "Download in corso";
129
129
  static get DownloadXMLAttachments(): string;
130
+ static get Draft(): string;
130
131
  static get Drafts(): string;
131
132
  static get Duplicate(): "Duplikat" | "Duplicate" | "Duplicar" | "Dupliquer" | "Duplicado" | "Duplica";
132
133
  static get Duplicate_ConfirmFor1(): "Möchten Sie '{{0}}' duplizieren?" | "Are you sure you want to duplicate '{{0}}'?" | "¿Estás seguro de que deseas duplicar '{{0}}'?" | "Êtes-vous sûr de vouloir dupliquer '{{0}}'?" | "Você tem certeza que deseja duplicar '{{0}}'?" | "Sei sicuro di voler duplicare '{{0}}'?";
@@ -290,11 +291,13 @@ export declare class SDKUI_Localizator {
290
291
  static get NoCredentialsSaved(): "Keine gespeicherten Anmeldedaten" | "No credentials saved" | "No se han guardado credenciales" | "Aucune information d'identification enregistrée" | "Nenhuma credencial salva" | "Nessuna credenziale salvata";
291
292
  static get NoDataToDisplay(): "Keine Daten zum Anzeigen" | "No data to display" | "No hay datos para mostrar" | "Aucune donnée à afficher" | "Sem dados para exibir" | "Nessun dato da visualizzare";
292
293
  static get NoDcmtFound(): "Kein Dokument gefunden" | "No documents found" | "Ningún documento encontrado" | "Pas de documents trouvés" | "Nenhum documento encontrado" | "Nessun documento trovato";
294
+ static get NoDcmtSelected(): string;
293
295
  static get NoMessages(): string;
294
296
  static get NoMessagesFound(): string;
295
297
  static get NoPanelSelected(): string;
296
298
  static get NoResultsFound(): string;
297
299
  static get NoneSelection(): "Keine Auswahl" | "No selection" | "Ninguna selección" | "Pas de sélections" | "Nenhuma seleção" | "Nessuna selezione";
300
+ static get NotAvailable(): string;
298
301
  static get OfSystem(): "Des Systems" | "Of system" | "Del sistema" | "Du système" | "Do sistema" | "Di sistema";
299
302
  static get OldPassword(): "Altes Kennwort" | "Old password" | "Contraseña anterior" | "Ancien mot de passe" | "Senha Antiga" | "Password vecchia";
300
303
  static get OpenForm(): string;
@@ -1219,6 +1219,16 @@ export class SDKUI_Localizator {
1219
1219
  default: return "Download allegati XML"; // Italiano come default
1220
1220
  }
1221
1221
  }
1222
+ static get Draft() {
1223
+ switch (this._cultureID) {
1224
+ case CultureIDs.De_DE: return "Entwurf";
1225
+ case CultureIDs.En_US: return "Draft";
1226
+ case CultureIDs.Es_ES: return "Borrador";
1227
+ case CultureIDs.Fr_FR: return "Brouillon";
1228
+ case CultureIDs.Pt_PT: return "Rascunho";
1229
+ default: return "Bozza";
1230
+ }
1231
+ }
1222
1232
  static get Drafts() {
1223
1233
  switch (this._cultureID) {
1224
1234
  case CultureIDs.De_DE: return "Entwürfe";
@@ -2851,6 +2861,16 @@ export class SDKUI_Localizator {
2851
2861
  default: return "Nessun documento trovato";
2852
2862
  }
2853
2863
  }
2864
+ static get NoDcmtSelected() {
2865
+ switch (this._cultureID) {
2866
+ case CultureIDs.De_DE: return "Kein Dokument ausgewählt";
2867
+ case CultureIDs.En_US: return "No document selected";
2868
+ case CultureIDs.Es_ES: return "Ningún documento seleccionado";
2869
+ case CultureIDs.Fr_FR: return "Aucun document sélectionné";
2870
+ case CultureIDs.Pt_PT: return "Nenhum documento selecionado";
2871
+ default: return "Nessun documento selezionato";
2872
+ }
2873
+ }
2854
2874
  static get NoMessages() {
2855
2875
  switch (this._cultureID) {
2856
2876
  case CultureIDs.De_DE: return "Keine Nachrichten vorhanden";
@@ -2901,6 +2921,16 @@ export class SDKUI_Localizator {
2901
2921
  default: return "Nessuna selezione";
2902
2922
  }
2903
2923
  }
2924
+ static get NotAvailable() {
2925
+ switch (this._cultureID) {
2926
+ case CultureIDs.De_DE: return "Nicht verfügbar";
2927
+ case CultureIDs.En_US: return "Not available";
2928
+ case CultureIDs.Es_ES: return "No disponible";
2929
+ case CultureIDs.Fr_FR: return "Non disponible";
2930
+ case CultureIDs.Pt_PT: return "Não disponível";
2931
+ default: return "Non disponibile";
2932
+ }
2933
+ }
2904
2934
  static get OfSystem() {
2905
2935
  switch (this._cultureID) {
2906
2936
  case CultureIDs.De_DE: return "Des Systems";
@@ -2,6 +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 { IconKey } from './TMIcons';
5
+ import { SDKUI_Localizator } from './SDKUI_Localizator';
5
6
  const StyledIconFileContainer = styled.div `
6
7
  height: 22px;
7
8
  width: 18px;
@@ -81,7 +82,7 @@ export const getFileIcon = (fileExtension, fileCount, tooltipContent) => {
81
82
  break;
82
83
  }
83
84
  return (_jsx(StyledIconFileContainer, { children: _jsx(StyledIconFileExt, { "$backgroundColor": (fileCount === 0 || !fileExtension) ? "#424040" : fileBgColor, "$color": fileColor, children: (fileCount === 0 || !fileExtOri)
84
- ? _jsxs(TMTooltip, { content: "Documento di soli metadati", children: [" ", _jsx(IconKey, { fontSize: 17, color: '#f8d775' }), " "] })
85
+ ? _jsxs(TMTooltip, { content: SDKUI_Localizator.MetadataOnlyDocument, children: [" ", _jsx(IconKey, { fontSize: 17, color: '#f8d775' }), " "] })
85
86
  : _jsx(TMTooltip, { content: tooltipContent ?? fileExtOri, children: fileExtension.toUpperCase() }) }) }));
86
87
  };
87
88
  export function formatBytes(bytes, decimalPlaces = 2) {
package/lib/ts/types.d.ts CHANGED
@@ -49,6 +49,17 @@ export declare enum SearchResultContext {
49
49
  FREE_SEARCH = "freeSearch",
50
50
  MASTER_DETAIL = "masterDetail"
51
51
  }
52
+ export declare enum DraftsMIDs {
53
+ WGID = 6001,
54
+ Name = 6002,
55
+ Description = 6003,
56
+ CheckOutUserID = 6004,
57
+ CheckOutDate = 6005,
58
+ FolderID = 6006,
59
+ DraftID = 6007,// ID della bozza che raggruppa tutte le versioni
60
+ Ver = 6008,// N° di versione della bozza
61
+ LastVer = 6009
62
+ }
52
63
  export type DownloadModes = "none" | "download" | "openInNewWindow";
53
64
  export type TID_MID = {
54
65
  tid: number | undefined;
@@ -71,8 +82,10 @@ export declare class MetadataValueDescriptorEx extends MetadataValueDescriptor {
71
82
  isEditable?: boolean;
72
83
  isLexProt?: number;
73
84
  isSelected?: boolean;
85
+ isReadOnly?: boolean;
74
86
  isNull?: boolean;
75
87
  formulaValue?: string;
88
+ customName?: string;
76
89
  }
77
90
  export type TaskContext = {
78
91
  workingGroup?: {
package/lib/ts/types.js CHANGED
@@ -53,6 +53,18 @@ export var SearchResultContext;
53
53
  SearchResultContext["FREE_SEARCH"] = "freeSearch";
54
54
  SearchResultContext["MASTER_DETAIL"] = "masterDetail";
55
55
  })(SearchResultContext || (SearchResultContext = {}));
56
+ export var DraftsMIDs;
57
+ (function (DraftsMIDs) {
58
+ DraftsMIDs[DraftsMIDs["WGID"] = 6001] = "WGID";
59
+ DraftsMIDs[DraftsMIDs["Name"] = 6002] = "Name";
60
+ DraftsMIDs[DraftsMIDs["Description"] = 6003] = "Description";
61
+ DraftsMIDs[DraftsMIDs["CheckOutUserID"] = 6004] = "CheckOutUserID";
62
+ DraftsMIDs[DraftsMIDs["CheckOutDate"] = 6005] = "CheckOutDate";
63
+ DraftsMIDs[DraftsMIDs["FolderID"] = 6006] = "FolderID";
64
+ DraftsMIDs[DraftsMIDs["DraftID"] = 6007] = "DraftID";
65
+ DraftsMIDs[DraftsMIDs["Ver"] = 6008] = "Ver";
66
+ DraftsMIDs[DraftsMIDs["LastVer"] = 6009] = "LastVer"; // Ultima versione? (0 | 1)
67
+ })(DraftsMIDs || (DraftsMIDs = {}));
56
68
  export class MetadataValueDescriptorEx extends MetadataValueDescriptor {
57
69
  }
58
70
  export var moduleTypes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react-beta",
3
- "version": "6.14.140",
3
+ "version": "6.14.142",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -42,7 +42,7 @@
42
42
  "lib"
43
43
  ],
44
44
  "dependencies": {
45
- "@topconsultnpm/sdk-ts-beta": "6.14.20",
45
+ "@topconsultnpm/sdk-ts-beta": "6.14.22",
46
46
  "buffer": "^6.0.3",
47
47
  "devextreme": "24.2.6",
48
48
  "devextreme-react": "24.2.6",