@topconsultnpm/sdkui-react 6.17.0-test9
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/assets/IconsS4t/add.svg +12 -0
- package/lib/assets/IconsS4t/aggiorna.svg +18 -0
- package/lib/assets/IconsS4t/bookmark.svg +42 -0
- package/lib/assets/IconsS4t/cancella.svg +15 -0
- package/lib/assets/IconsS4t/check-box.svg +19 -0
- package/lib/assets/IconsS4t/down-arrow-signBook.svg +40 -0
- package/lib/assets/IconsS4t/down.svg +28 -0
- package/lib/assets/IconsS4t/edit-file.svg +19 -0
- package/lib/assets/IconsS4t/edita.svg +32 -0
- package/lib/assets/IconsS4t/firma.svg +19 -0
- package/lib/assets/IconsS4t/icona_download.svg +16 -0
- package/lib/assets/IconsS4t/info.svg +51 -0
- package/lib/assets/IconsS4t/left.svg +20 -0
- package/lib/assets/IconsS4t/line.svg +40 -0
- package/lib/assets/IconsS4t/more.svg +19 -0
- package/lib/assets/IconsS4t/new-signature.svg +1 -0
- package/lib/assets/IconsS4t/plus.svg +23 -0
- package/lib/assets/IconsS4t/printer.svg +49 -0
- package/lib/assets/IconsS4t/radio-on-button.svg +25 -0
- package/lib/assets/IconsS4t/rectangle.svg +41 -0
- package/lib/assets/IconsS4t/redo.svg +19 -0
- package/lib/assets/IconsS4t/right-arrow-signBook-finish.svg +40 -0
- package/lib/assets/IconsS4t/right-arrow-signBook.svg +40 -0
- package/lib/assets/IconsS4t/right.svg +22 -0
- package/lib/assets/IconsS4t/searchbar.svg +21 -0
- package/lib/assets/IconsS4t/text-box.svg +36 -0
- package/lib/assets/IconsS4t/tick.svg +8 -0
- package/lib/assets/IconsS4t/trash-white.svg +11 -0
- package/lib/assets/IconsS4t/trash.svg +1 -0
- package/lib/assets/IconsS4t/undo.svg +19 -0
- package/lib/assets/IconsS4t/up.svg +32 -0
- package/lib/assets/IconsS4t/video-streaming.svg +2 -0
- package/lib/assets/IconsS4t/zoom-in.svg +58 -0
- package/lib/assets/IconsS4t/zoom-out.svg +56 -0
- package/lib/assets/ImageLibrary/arrow_001.png +0 -0
- package/lib/assets/ImageLibrary/arrow_002.png +0 -0
- package/lib/assets/ImageLibrary/arrow_003.png +0 -0
- package/lib/assets/ImageLibrary/arrow_004.png +0 -0
- package/lib/assets/ImageLibrary/arrow_005.png +0 -0
- package/lib/assets/ImageLibrary/arrow_006.png +0 -0
- package/lib/assets/ImageLibrary/arrow_007.png +0 -0
- package/lib/assets/ImageLibrary/arrow_008.png +0 -0
- package/lib/assets/ImageLibrary/arrow_009.png +0 -0
- package/lib/assets/ImageLibrary/arrow_010.png +0 -0
- package/lib/assets/ImageLibrary/arrow_011.png +0 -0
- package/lib/assets/ImageLibrary/arrow_012.png +0 -0
- package/lib/assets/ImageLibrary/book_001.png +0 -0
- package/lib/assets/ImageLibrary/book_002.png +0 -0
- package/lib/assets/ImageLibrary/book_003.png +0 -0
- package/lib/assets/ImageLibrary/book_004.png +0 -0
- package/lib/assets/ImageLibrary/book_005.png +0 -0
- package/lib/assets/ImageLibrary/book_006.png +0 -0
- package/lib/assets/ImageLibrary/book_007.png +0 -0
- package/lib/assets/ImageLibrary/clock_001.png +0 -0
- package/lib/assets/ImageLibrary/clock_002.png +0 -0
- package/lib/assets/ImageLibrary/clock_003.png +0 -0
- package/lib/assets/ImageLibrary/cube_001.png +0 -0
- package/lib/assets/ImageLibrary/cube_002.png +0 -0
- package/lib/assets/ImageLibrary/cube_003.png +0 -0
- package/lib/assets/ImageLibrary/dcmt_001.png +0 -0
- package/lib/assets/ImageLibrary/dcmt_002.png +0 -0
- package/lib/assets/ImageLibrary/dcmt_003.png +0 -0
- package/lib/assets/ImageLibrary/dcmt_004.png +0 -0
- package/lib/assets/ImageLibrary/dcmt_005.png +0 -0
- package/lib/assets/ImageLibrary/dcmt_006.png +0 -0
- package/lib/assets/ImageLibrary/dcmt_007.png +0 -0
- package/lib/assets/ImageLibrary/dcmt_008.png +0 -0
- package/lib/assets/ImageLibrary/emoticon_001.png +0 -0
- package/lib/assets/ImageLibrary/emoticon_002.png +0 -0
- package/lib/assets/ImageLibrary/emoticon_003.png +0 -0
- package/lib/assets/ImageLibrary/emoticon_004.png +0 -0
- package/lib/assets/ImageLibrary/fld_001.png +0 -0
- package/lib/assets/ImageLibrary/fld_002.png +0 -0
- package/lib/assets/ImageLibrary/fld_003.png +0 -0
- package/lib/assets/ImageLibrary/fld_004.png +0 -0
- package/lib/assets/ImageLibrary/fld_005.png +0 -0
- package/lib/assets/ImageLibrary/fld_006.png +0 -0
- package/lib/assets/ImageLibrary/fld_007.png +0 -0
- package/lib/assets/ImageLibrary/fld_008.png +0 -0
- package/lib/assets/ImageLibrary/fld_009.png +0 -0
- package/lib/assets/ImageLibrary/fld_010.png +0 -0
- package/lib/assets/ImageLibrary/fld_011.png +0 -0
- package/lib/assets/ImageLibrary/fld_012.png +0 -0
- package/lib/assets/ImageLibrary/fld_013.png +0 -0
- package/lib/assets/ImageLibrary/fld_014.png +0 -0
- package/lib/assets/ImageLibrary/fld_015.png +0 -0
- package/lib/assets/ImageLibrary/fld_016.png +0 -0
- package/lib/assets/ImageLibrary/fld_017.png +0 -0
- package/lib/assets/ImageLibrary/fld_018.png +0 -0
- package/lib/assets/ImageLibrary/fld_019.png +0 -0
- package/lib/assets/ImageLibrary/fld_020.png +0 -0
- package/lib/assets/ImageLibrary/fld_021.png +0 -0
- package/lib/assets/ImageLibrary/fld_022.png +0 -0
- package/lib/assets/ImageLibrary/fld_023.png +0 -0
- package/lib/assets/ImageLibrary/fld_024.png +0 -0
- package/lib/assets/ImageLibrary/fld_025.png +0 -0
- package/lib/assets/ImageLibrary/fld_026.png +0 -0
- package/lib/assets/ImageLibrary/fld_027.png +0 -0
- package/lib/assets/ImageLibrary/fld_028.png +0 -0
- package/lib/assets/ImageLibrary/fld_029.png +0 -0
- package/lib/assets/ImageLibrary/fld_030.png +0 -0
- package/lib/assets/ImageLibrary/fld_031.png +0 -0
- package/lib/assets/ImageLibrary/fld_032.png +0 -0
- package/lib/assets/ImageLibrary/fld_033.png +0 -0
- package/lib/assets/ImageLibrary/gen_001.png +0 -0
- package/lib/assets/ImageLibrary/gen_002.png +0 -0
- package/lib/assets/ImageLibrary/gen_003.png +0 -0
- package/lib/assets/ImageLibrary/gen_004.png +0 -0
- package/lib/assets/ImageLibrary/gen_005.png +0 -0
- package/lib/assets/ImageLibrary/gen_006.png +0 -0
- package/lib/assets/ImageLibrary/gen_007.png +0 -0
- package/lib/assets/ImageLibrary/gen_008.png +0 -0
- package/lib/assets/ImageLibrary/gen_009.png +0 -0
- package/lib/assets/ImageLibrary/gen_010.png +0 -0
- package/lib/assets/ImageLibrary/gen_011.png +0 -0
- package/lib/assets/ImageLibrary/gen_012.png +0 -0
- package/lib/assets/ImageLibrary/gen_013.png +0 -0
- package/lib/assets/ImageLibrary/gen_014.png +0 -0
- package/lib/assets/ImageLibrary/gen_015.png +0 -0
- package/lib/assets/ImageLibrary/gen_016.png +0 -0
- package/lib/assets/ImageLibrary/gen_017.png +0 -0
- package/lib/assets/ImageLibrary/gen_018.png +0 -0
- package/lib/assets/ImageLibrary/gen_019.png +0 -0
- package/lib/assets/ImageLibrary/gen_020.png +0 -0
- package/lib/assets/ImageLibrary/gen_021.png +0 -0
- package/lib/assets/ImageLibrary/gen_022.png +0 -0
- package/lib/assets/ImageLibrary/gen_023.png +0 -0
- package/lib/assets/ImageLibrary/gen_024.png +0 -0
- package/lib/assets/ImageLibrary/gen_025.png +0 -0
- package/lib/assets/ImageLibrary/gen_026.png +0 -0
- package/lib/assets/ImageLibrary/gen_027.png +0 -0
- package/lib/assets/ImageLibrary/gen_028.png +0 -0
- package/lib/assets/ImageLibrary/gen_029.png +0 -0
- package/lib/assets/ImageLibrary/gen_030.png +0 -0
- package/lib/assets/ImageLibrary/gen_031.png +0 -0
- package/lib/assets/ImageLibrary/gen_032.png +0 -0
- package/lib/assets/ImageLibrary/gen_033.png +0 -0
- package/lib/assets/ImageLibrary/gen_034.png +0 -0
- package/lib/assets/ImageLibrary/gen_035.png +0 -0
- package/lib/assets/ImageLibrary/gen_036.png +0 -0
- package/lib/assets/ImageLibrary/gen_037.png +0 -0
- package/lib/assets/ImageLibrary/gen_038.png +0 -0
- package/lib/assets/ImageLibrary/gen_039.png +0 -0
- package/lib/assets/ImageLibrary/gen_040.png +0 -0
- package/lib/assets/ImageLibrary/gen_041.png +0 -0
- package/lib/assets/ImageLibrary/gen_042.png +0 -0
- package/lib/assets/ImageLibrary/gen_043.png +0 -0
- package/lib/assets/ImageLibrary/gen_044.png +0 -0
- package/lib/assets/ImageLibrary/gen_045.png +0 -0
- package/lib/assets/ImageLibrary/gen_046.png +0 -0
- package/lib/assets/ImageLibrary/gen_047.png +0 -0
- package/lib/assets/ImageLibrary/gen_048.png +0 -0
- package/lib/assets/ImageLibrary/gen_049.png +0 -0
- package/lib/assets/ImageLibrary/gen_050.png +0 -0
- package/lib/assets/ImageLibrary/gen_051.png +0 -0
- package/lib/assets/ImageLibrary/gen_052.png +0 -0
- package/lib/assets/ImageLibrary/hand_001.png +0 -0
- package/lib/assets/ImageLibrary/hand_002.png +0 -0
- package/lib/assets/ImageLibrary/hand_003.png +0 -0
- package/lib/assets/ImageLibrary/hand_004.png +0 -0
- package/lib/assets/ImageLibrary/hand_005.png +0 -0
- package/lib/assets/ImageLibrary/hand_006.png +0 -0
- package/lib/assets/ImageLibrary/law_001.png +0 -0
- package/lib/assets/ImageLibrary/law_002.png +0 -0
- package/lib/assets/ImageLibrary/law_003.png +0 -0
- package/lib/assets/ImageLibrary/lock_001.png +0 -0
- package/lib/assets/ImageLibrary/lock_002.png +0 -0
- package/lib/assets/ImageLibrary/lock_003.png +0 -0
- package/lib/assets/ImageLibrary/mail_001.png +0 -0
- package/lib/assets/ImageLibrary/mail_002.png +0 -0
- package/lib/assets/ImageLibrary/mail_003.png +0 -0
- package/lib/assets/ImageLibrary/mail_004.png +0 -0
- package/lib/assets/ImageLibrary/mail_005.png +0 -0
- package/lib/assets/ImageLibrary/mail_006.png +0 -0
- package/lib/assets/ImageLibrary/mail_007.png +0 -0
- package/lib/assets/ImageLibrary/mail_008.png +0 -0
- package/lib/assets/ImageLibrary/mail_009.png +0 -0
- package/lib/assets/ImageLibrary/mail_010.png +0 -0
- package/lib/assets/ImageLibrary/mail_011.png +0 -0
- package/lib/assets/ImageLibrary/mail_012.png +0 -0
- package/lib/assets/ImageLibrary/mail_013.png +0 -0
- package/lib/assets/ImageLibrary/mail_014.png +0 -0
- package/lib/assets/ImageLibrary/mail_015.png +0 -0
- package/lib/assets/ImageLibrary/net_001.png +0 -0
- package/lib/assets/ImageLibrary/net_002.png +0 -0
- package/lib/assets/ImageLibrary/net_003.png +0 -0
- package/lib/assets/ImageLibrary/net_004.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_001.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_002.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_003.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_004.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_005.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_006.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_007.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_008.png +0 -0
- package/lib/assets/ImageLibrary/nmbr_009.png +0 -0
- package/lib/assets/ImageLibrary/note_001.png +0 -0
- package/lib/assets/ImageLibrary/note_002.png +0 -0
- package/lib/assets/ImageLibrary/note_003.png +0 -0
- package/lib/assets/ImageLibrary/note_004.png +0 -0
- package/lib/assets/ImageLibrary/note_005.png +0 -0
- package/lib/assets/ImageLibrary/note_006.png +0 -0
- package/lib/assets/ImageLibrary/note_007.png +0 -0
- package/lib/assets/ImageLibrary/note_008.png +0 -0
- package/lib/assets/ImageLibrary/note_009.png +0 -0
- package/lib/assets/ImageLibrary/note_010.png +0 -0
- package/lib/assets/ImageLibrary/note_011.png +0 -0
- package/lib/assets/ImageLibrary/note_012.png +0 -0
- package/lib/assets/ImageLibrary/note_013.png +0 -0
- package/lib/assets/ImageLibrary/note_014.png +0 -0
- package/lib/assets/ImageLibrary/note_015.png +0 -0
- package/lib/assets/ImageLibrary/note_016.png +0 -0
- package/lib/assets/ImageLibrary/run_001.png +0 -0
- package/lib/assets/ImageLibrary/run_002.png +0 -0
- package/lib/assets/ImageLibrary/run_003.png +0 -0
- package/lib/assets/ImageLibrary/sem_001.png +0 -0
- package/lib/assets/ImageLibrary/sem_002.png +0 -0
- package/lib/assets/ImageLibrary/sem_003.png +0 -0
- package/lib/assets/ImageLibrary/sem_004.png +0 -0
- package/lib/assets/ImageLibrary/sem_005.png +0 -0
- package/lib/assets/ImageLibrary/star_001.png +0 -0
- package/lib/assets/ImageLibrary/star_002.png +0 -0
- package/lib/assets/ImageLibrary/star_003.png +0 -0
- package/lib/assets/ImageLibrary/star_004.png +0 -0
- package/lib/assets/ImageLibrary/star_005.png +0 -0
- package/lib/assets/ImageLibrary/star_006.png +0 -0
- package/lib/assets/ImageLibrary/state_001.png +0 -0
- package/lib/assets/ImageLibrary/state_002.png +0 -0
- package/lib/assets/ImageLibrary/state_003.png +0 -0
- package/lib/assets/ImageLibrary/state_004.png +0 -0
- package/lib/assets/ImageLibrary/state_005.png +0 -0
- package/lib/assets/ImageLibrary/study_001.png +0 -0
- package/lib/assets/ImageLibrary/study_002.png +0 -0
- package/lib/assets/ImageLibrary/user_001.png +0 -0
- package/lib/assets/ImageLibrary/user_002.png +0 -0
- package/lib/assets/ImageLibrary/user_003.png +0 -0
- package/lib/assets/ImageLibrary/user_004.png +0 -0
- package/lib/assets/ImageLibrary/user_005.png +0 -0
- package/lib/assets/ImageLibrary/user_006.png +0 -0
- package/lib/assets/ImageLibrary/user_007.png +0 -0
- package/lib/assets/ImageLibrary/user_008.png +0 -0
- package/lib/assets/ImageLibrary/user_009.png +0 -0
- package/lib/assets/ImageLibrary/user_010.png +0 -0
- package/lib/assets/ImageLibrary/user_011.png +0 -0
- package/lib/assets/ImageLibrary/user_012.png +0 -0
- package/lib/assets/ImageLibrary/user_013.png +0 -0
- package/lib/assets/ImageLibrary/user_014.png +0 -0
- package/lib/assets/ImageLibrary/user_015.png +0 -0
- package/lib/assets/ImageLibrary/user_016.png +0 -0
- package/lib/assets/ImageLibrary/user_017.png +0 -0
- package/lib/assets/ImageLibrary/user_018.png +0 -0
- package/lib/assets/ImageLibrary/user_019.png +0 -0
- package/lib/assets/ImageLibrary/user_020.png +0 -0
- package/lib/assets/ImageLibrary/user_021.png +0 -0
- package/lib/assets/ImageLibrary/user_022.png +0 -0
- package/lib/assets/ImageLibrary/user_023.png +0 -0
- package/lib/assets/ImageLibrary/vehicle_001.png +0 -0
- package/lib/assets/ImageLibrary/vehicle_002.png +0 -0
- package/lib/assets/ImageLibrary/vehicle_003.png +0 -0
- package/lib/assets/ImageLibrary/vehicle_004.png +0 -0
- package/lib/assets/ImageLibrary/vehicle_005.png +0 -0
- package/lib/assets/ImageLibrary/vehicle_006.png +0 -0
- package/lib/assets/ImageLibrary/vehicle_007.png +0 -0
- package/lib/assets/ImageLibrary/vehicle_008.png +0 -0
- package/lib/assets/Toppy-generico.png +0 -0
- package/lib/assets/france.svg +1 -0
- package/lib/assets/german.svg +1 -0
- package/lib/assets/icomoon.eot +0 -0
- package/lib/assets/icomoon.svg +97 -0
- package/lib/assets/icomoon.ttf +0 -0
- package/lib/assets/icomoon.woff +0 -0
- package/lib/assets/italy.svg +16 -0
- package/lib/assets/loading.png +0 -0
- package/lib/assets/login-bg.png +0 -0
- package/lib/assets/multipleSelectionManager.jpg +0 -0
- package/lib/assets/portugal.svg +1 -0
- package/lib/assets/six.png +0 -0
- package/lib/assets/six.svg +4 -0
- package/lib/assets/spain.svg +1 -0
- package/lib/assets/thumbnails/dicom.png +0 -0
- package/lib/assets/thumbnails/doc.png +0 -0
- package/lib/assets/thumbnails/docx.png +0 -0
- package/lib/assets/thumbnails/dwg.png +0 -0
- package/lib/assets/thumbnails/email.png +0 -0
- package/lib/assets/thumbnails/exe.png +0 -0
- package/lib/assets/thumbnails/folder.png +0 -0
- package/lib/assets/thumbnails/html.png +0 -0
- package/lib/assets/thumbnails/image.png +0 -0
- package/lib/assets/thumbnails/index.d.ts +19 -0
- package/lib/assets/thumbnails/index.js +19 -0
- package/lib/assets/thumbnails/index.ts +39 -0
- package/lib/assets/thumbnails/mp4.png +0 -0
- package/lib/assets/thumbnails/other.png +0 -0
- package/lib/assets/thumbnails/p7m.png +0 -0
- package/lib/assets/thumbnails/pdf.png +0 -0
- package/lib/assets/thumbnails/ppt.png +0 -0
- package/lib/assets/thumbnails/slddrw.png +0 -0
- package/lib/assets/thumbnails/txt.png +0 -0
- package/lib/assets/thumbnails/xls.png +0 -0
- package/lib/assets/thumbnails/xml.png +0 -0
- package/lib/assets/thumbnails/zip.png +0 -0
- package/lib/assets/topmedia-six.svg +66 -0
- package/lib/assets/topmeida-six-bianco.svg +66 -0
- package/lib/assets/united-kingdom.svg +1 -0
- package/lib/components/base/Styled.d.ts +63 -0
- package/lib/components/base/Styled.js +337 -0
- package/lib/components/base/TMAccordion.d.ts +12 -0
- package/lib/components/base/TMAccordion.js +62 -0
- package/lib/components/base/TMAlert.d.ts +73 -0
- package/lib/components/base/TMAlert.js +77 -0
- package/lib/components/base/TMAreaManager.d.ts +25 -0
- package/lib/components/base/TMAreaManager.js +733 -0
- package/lib/components/base/TMButton.d.ts +21 -0
- package/lib/components/base/TMButton.js +174 -0
- package/lib/components/base/TMClosableList.d.ts +10 -0
- package/lib/components/base/TMClosableList.js +70 -0
- package/lib/components/base/TMConfirm.d.ts +13 -0
- package/lib/components/base/TMConfirm.js +119 -0
- package/lib/components/base/TMContextMenu.d.ts +25 -0
- package/lib/components/base/TMContextMenu.js +109 -0
- package/lib/components/base/TMContextMenuOLD.d.ts +26 -0
- package/lib/components/base/TMContextMenuOLD.js +56 -0
- package/lib/components/base/TMCounterBar.d.ts +10 -0
- package/lib/components/base/TMCounterBar.js +43 -0
- package/lib/components/base/TMCounterContainer.d.ts +23 -0
- package/lib/components/base/TMCounterContainer.js +58 -0
- package/lib/components/base/TMCustomButton.d.ts +11 -0
- package/lib/components/base/TMCustomButton.js +116 -0
- package/lib/components/base/TMDataGrid.d.ts +56 -0
- package/lib/components/base/TMDataGrid.js +237 -0
- package/lib/components/base/TMDataGridExportForm.d.ts +15 -0
- package/lib/components/base/TMDataGridExportForm.js +215 -0
- package/lib/components/base/TMDeviceProvider.d.ts +15 -0
- package/lib/components/base/TMDeviceProvider.js +41 -0
- package/lib/components/base/TMDropDownMenu.d.ts +23 -0
- package/lib/components/base/TMDropDownMenu.js +45 -0
- package/lib/components/base/TMEditorBase.d.ts +39 -0
- package/lib/components/base/TMEditorBase.js +1 -0
- package/lib/components/base/TMFileManager.d.ts +45 -0
- package/lib/components/base/TMFileManager.js +233 -0
- package/lib/components/base/TMFileManagerDataGridView.d.ts +16 -0
- package/lib/components/base/TMFileManagerDataGridView.js +101 -0
- package/lib/components/base/TMFileManagerThumbnailItems.d.ts +18 -0
- package/lib/components/base/TMFileManagerThumbnailItems.js +148 -0
- package/lib/components/base/TMFileManagerThumbnailsView.d.ts +19 -0
- package/lib/components/base/TMFileManagerThumbnailsView.js +46 -0
- package/lib/components/base/TMFileManagerUtils.d.ts +78 -0
- package/lib/components/base/TMFileManagerUtils.js +207 -0
- package/lib/components/base/TMFloatingToolbar.d.ts +9 -0
- package/lib/components/base/TMFloatingToolbar.js +101 -0
- package/lib/components/base/TMLayout.d.ts +55 -0
- package/lib/components/base/TMLayout.js +201 -0
- package/lib/components/base/TMList.d.ts +9 -0
- package/lib/components/base/TMList.js +54 -0
- package/lib/components/base/TMListView.d.ts +42 -0
- package/lib/components/base/TMListView.js +387 -0
- package/lib/components/base/TMModal.d.ts +16 -0
- package/lib/components/base/TMModal.js +70 -0
- package/lib/components/base/TMPanel.d.ts +32 -0
- package/lib/components/base/TMPanel.js +181 -0
- package/lib/components/base/TMPopUp.d.ts +33 -0
- package/lib/components/base/TMPopUp.js +267 -0
- package/lib/components/base/TMProgressBar.d.ts +11 -0
- package/lib/components/base/TMProgressBar.js +32 -0
- package/lib/components/base/TMResizableMenu.d.ts +20 -0
- package/lib/components/base/TMResizableMenu.js +98 -0
- package/lib/components/base/TMRightSidebar.d.ts +19 -0
- package/lib/components/base/TMRightSidebar.js +80 -0
- package/lib/components/base/TMShowAllOrMaxItemsButton.d.ts +8 -0
- package/lib/components/base/TMShowAllOrMaxItemsButton.js +20 -0
- package/lib/components/base/TMSpinner.d.ts +14 -0
- package/lib/components/base/TMSpinner.js +160 -0
- package/lib/components/base/TMTab.d.ts +20 -0
- package/lib/components/base/TMTab.js +42 -0
- package/lib/components/base/TMToggleButton.d.ts +10 -0
- package/lib/components/base/TMToggleButton.js +58 -0
- package/lib/components/base/TMToolbarCard.d.ts +19 -0
- package/lib/components/base/TMToolbarCard.js +51 -0
- package/lib/components/base/TMTooltip.d.ts +14 -0
- package/lib/components/base/TMTooltip.js +20 -0
- package/lib/components/base/TMTreeView.d.ts +32 -0
- package/lib/components/base/TMTreeView.js +356 -0
- package/lib/components/base/TMUserAvatar.d.ts +8 -0
- package/lib/components/base/TMUserAvatar.js +34 -0
- package/lib/components/base/TMVilViewer.d.ts +5 -0
- package/lib/components/base/TMVilViewer.js +22 -0
- package/lib/components/base/TMWaitPanel.d.ts +32 -0
- package/lib/components/base/TMWaitPanel.js +44 -0
- package/lib/components/choosers/TMCultureIDPicker.d.ts +9 -0
- package/lib/components/choosers/TMCultureIDPicker.js +72 -0
- package/lib/components/choosers/TMDataListItemChooser.d.ts +17 -0
- package/lib/components/choosers/TMDataListItemChooser.js +49 -0
- package/lib/components/choosers/TMDataListItemPicker.d.ts +9 -0
- package/lib/components/choosers/TMDataListItemPicker.js +96 -0
- package/lib/components/choosers/TMDcmtTypeChooser.d.ts +25 -0
- package/lib/components/choosers/TMDcmtTypeChooser.js +61 -0
- package/lib/components/choosers/TMDiskChooser.d.ts +10 -0
- package/lib/components/choosers/TMDiskChooser.js +41 -0
- package/lib/components/choosers/TMDistinctValues.d.ts +21 -0
- package/lib/components/choosers/TMDistinctValues.js +140 -0
- package/lib/components/choosers/TMDynDataListItemChooser.d.ts +40 -0
- package/lib/components/choosers/TMDynDataListItemChooser.js +159 -0
- package/lib/components/choosers/TMGroupChooser.d.ts +7 -0
- package/lib/components/choosers/TMGroupChooser.js +37 -0
- package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +4 -0
- package/lib/components/choosers/TMInvoiceRetrieveFormats.js +22 -0
- package/lib/components/choosers/TMMetadataChooser.d.ts +54 -0
- package/lib/components/choosers/TMMetadataChooser.js +142 -0
- package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +4 -0
- package/lib/components/choosers/TMOrderRetrieveFormats.js +22 -0
- package/lib/components/choosers/TMPathChooser.d.ts +12 -0
- package/lib/components/choosers/TMPathChooser.js +147 -0
- package/lib/components/choosers/TMRelationChooser.d.ts +31 -0
- package/lib/components/choosers/TMRelationChooser.js +94 -0
- package/lib/components/choosers/TMUserChooser.d.ts +40 -0
- package/lib/components/choosers/TMUserChooser.js +141 -0
- package/lib/components/editors/TMCheckBox.d.ts +9 -0
- package/lib/components/editors/TMCheckBox.js +90 -0
- package/lib/components/editors/TMDateBox.d.ts +17 -0
- package/lib/components/editors/TMDateBox.js +75 -0
- package/lib/components/editors/TMDropDown.d.ts +10 -0
- package/lib/components/editors/TMDropDown.js +62 -0
- package/lib/components/editors/TMEditorStyled.d.ts +41 -0
- package/lib/components/editors/TMEditorStyled.js +90 -0
- package/lib/components/editors/TMFormulaEditor.d.ts +49 -0
- package/lib/components/editors/TMFormulaEditor.js +727 -0
- package/lib/components/editors/TMHtmlContentDisplay.d.ts +7 -0
- package/lib/components/editors/TMHtmlContentDisplay.js +78 -0
- package/lib/components/editors/TMHtmlEditor.d.ts +38 -0
- package/lib/components/editors/TMHtmlEditor.js +203 -0
- package/lib/components/editors/TMLocalizedTextBox.d.ts +19 -0
- package/lib/components/editors/TMLocalizedTextBox.js +125 -0
- package/lib/components/editors/TMMetadataEditor.d.ts +29 -0
- package/lib/components/editors/TMMetadataEditor.js +140 -0
- package/lib/components/editors/TMMetadataValues.d.ts +46 -0
- package/lib/components/editors/TMMetadataValues.js +530 -0
- package/lib/components/editors/TMRadioButton.d.ts +10 -0
- package/lib/components/editors/TMRadioButton.js +57 -0
- package/lib/components/editors/TMSummary.d.ts +20 -0
- package/lib/components/editors/TMSummary.js +92 -0
- package/lib/components/editors/TMTextArea.d.ts +17 -0
- package/lib/components/editors/TMTextArea.js +155 -0
- package/lib/components/editors/TMTextBox.d.ts +20 -0
- package/lib/components/editors/TMTextBox.js +249 -0
- package/lib/components/editors/TMTextExpression.d.ts +25 -0
- package/lib/components/editors/TMTextExpression.js +174 -0
- package/lib/components/editors/TMTreeDropDown.d.ts +18 -0
- package/lib/components/editors/TMTreeDropDown.js +66 -0
- package/lib/components/features/archive/TMArchive.d.ts +29 -0
- package/lib/components/features/archive/TMArchive.js +193 -0
- package/lib/components/features/assistant/ToppyHelpCenter.d.ts +12 -0
- package/lib/components/features/assistant/ToppyHelpCenter.js +173 -0
- package/lib/components/features/blog/TMBlogCommentForm.d.ts +17 -0
- package/lib/components/features/blog/TMBlogCommentForm.js +333 -0
- package/lib/components/features/documents/TMBatchUpdateForm.d.ts +17 -0
- package/lib/components/features/documents/TMBatchUpdateForm.js +159 -0
- package/lib/components/features/documents/TMDcmtBlog.d.ts +23 -0
- package/lib/components/features/documents/TMDcmtBlog.js +65 -0
- package/lib/components/features/documents/TMDcmtForm.d.ts +64 -0
- package/lib/components/features/documents/TMDcmtForm.js +1245 -0
- package/lib/components/features/documents/TMDcmtIcon.d.ts +18 -0
- package/lib/components/features/documents/TMDcmtIcon.js +93 -0
- package/lib/components/features/documents/TMDcmtPreview.d.ts +31 -0
- package/lib/components/features/documents/TMDcmtPreview.js +446 -0
- package/lib/components/features/documents/TMDcmtTasks.d.ts +13 -0
- package/lib/components/features/documents/TMDcmtTasks.js +24 -0
- package/lib/components/features/documents/TMDragDropOverlay.d.ts +6 -0
- package/lib/components/features/documents/TMDragDropOverlay.js +97 -0
- package/lib/components/features/documents/TMFileUploader.d.ts +14 -0
- package/lib/components/features/documents/TMFileUploader.js +115 -0
- package/lib/components/features/documents/TMMasterDetailDcmts.d.ts +26 -0
- package/lib/components/features/documents/TMMasterDetailDcmts.js +288 -0
- package/lib/components/features/documents/TMRelationViewer.d.ts +121 -0
- package/lib/components/features/documents/TMRelationViewer.js +753 -0
- package/lib/components/features/search/TMSavedQueryForm.d.ts +9 -0
- package/lib/components/features/search/TMSavedQueryForm.js +41 -0
- package/lib/components/features/search/TMSavedQuerySelector.d.ts +16 -0
- package/lib/components/features/search/TMSavedQuerySelector.js +226 -0
- package/lib/components/features/search/TMSearch.d.ts +40 -0
- package/lib/components/features/search/TMSearch.js +253 -0
- package/lib/components/features/search/TMSearchQueryEditor.d.ts +15 -0
- package/lib/components/features/search/TMSearchQueryEditor.js +367 -0
- package/lib/components/features/search/TMSearchQueryPanel.d.ts +29 -0
- package/lib/components/features/search/TMSearchQueryPanel.js +438 -0
- package/lib/components/features/search/TMSearchResult.d.ts +53 -0
- package/lib/components/features/search/TMSearchResult.js +1092 -0
- package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +16 -0
- package/lib/components/features/search/TMSearchResultFloatingActionButton.js +50 -0
- package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +11 -0
- package/lib/components/features/search/TMSearchResultsMenuItems.js +725 -0
- package/lib/components/features/search/TMTreeSelector.d.ts +12 -0
- package/lib/components/features/search/TMTreeSelector.js +270 -0
- package/lib/components/features/tasks/TMTaskForm.d.ts +38 -0
- package/lib/components/features/tasks/TMTaskForm.js +387 -0
- package/lib/components/features/tasks/TMTasksAgenda.d.ts +17 -0
- package/lib/components/features/tasks/TMTasksAgenda.js +107 -0
- package/lib/components/features/tasks/TMTasksCalendar.d.ts +21 -0
- package/lib/components/features/tasks/TMTasksCalendar.js +240 -0
- package/lib/components/features/tasks/TMTasksHeader.d.ts +14 -0
- package/lib/components/features/tasks/TMTasksHeader.js +37 -0
- package/lib/components/features/tasks/TMTasksPanelContent.d.ts +20 -0
- package/lib/components/features/tasks/TMTasksPanelContent.js +65 -0
- package/lib/components/features/tasks/TMTasksUtils.d.ts +132 -0
- package/lib/components/features/tasks/TMTasksUtils.js +634 -0
- package/lib/components/features/tasks/TMTasksUtilsView.d.ts +39 -0
- package/lib/components/features/tasks/TMTasksUtilsView.js +140 -0
- package/lib/components/features/tasks/TMTasksView.d.ts +40 -0
- package/lib/components/features/tasks/TMTasksView.js +560 -0
- package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +39 -0
- package/lib/components/features/wg/TMWGsCopyMoveForm.js +439 -0
- package/lib/components/features/workflow/TMWorkflowPopup.d.ts +42 -0
- package/lib/components/features/workflow/TMWorkflowPopup.js +286 -0
- package/lib/components/features/workflow/diagram/ConnectionComponent.d.ts +14 -0
- package/lib/components/features/workflow/diagram/ConnectionComponent.js +90 -0
- package/lib/components/features/workflow/diagram/ConnectionForm.d.ts +9 -0
- package/lib/components/features/workflow/diagram/ConnectionForm.js +73 -0
- package/lib/components/features/workflow/diagram/DiagramItemComponent.d.ts +18 -0
- package/lib/components/features/workflow/diagram/DiagramItemComponent.js +264 -0
- package/lib/components/features/workflow/diagram/DiagramItemForm.d.ts +10 -0
- package/lib/components/features/workflow/diagram/DiagramItemForm.js +686 -0
- package/lib/components/features/workflow/diagram/DiagramItemSvgContent.d.ts +12 -0
- package/lib/components/features/workflow/diagram/DiagramItemSvgContent.js +97 -0
- package/lib/components/features/workflow/diagram/RecipientList.d.ts +27 -0
- package/lib/components/features/workflow/diagram/RecipientList.js +204 -0
- package/lib/components/features/workflow/diagram/WFDiagram.d.ts +9 -0
- package/lib/components/features/workflow/diagram/WFDiagram.js +1680 -0
- package/lib/components/features/workflow/diagram/WorkitemRecipientsEditor.d.ts +18 -0
- package/lib/components/features/workflow/diagram/WorkitemRecipientsEditor.js +97 -0
- package/lib/components/features/workflow/diagram/interfaces.d.ts +126 -0
- package/lib/components/features/workflow/diagram/interfaces.js +26 -0
- package/lib/components/features/workflow/diagram/metadataParser.d.ts +14 -0
- package/lib/components/features/workflow/diagram/metadataParser.js +54 -0
- package/lib/components/features/workflow/diagram/queryDescriptorParser.d.ts +3 -0
- package/lib/components/features/workflow/diagram/queryDescriptorParser.js +188 -0
- package/lib/components/features/workflow/diagram/workflowHelpers.d.ts +122 -0
- package/lib/components/features/workflow/diagram/workflowHelpers.js +488 -0
- package/lib/components/features/workflow/diagram/xmlParser.d.ts +10 -0
- package/lib/components/features/workflow/diagram/xmlParser.js +490 -0
- package/lib/components/filesystem/ProgressBar.d.ts +7 -0
- package/lib/components/filesystem/ProgressBar.js +25 -0
- package/lib/components/forms/Login/ChangePassword.d.ts +9 -0
- package/lib/components/forms/Login/ChangePassword.js +22 -0
- package/lib/components/forms/Login/ChangePasswordInputs.d.ts +14 -0
- package/lib/components/forms/Login/ChangePasswordInputs.js +80 -0
- package/lib/components/forms/Login/Chooser.d.ts +28 -0
- package/lib/components/forms/Login/Chooser.js +145 -0
- package/lib/components/forms/Login/LOGINLocalizator.d.ts +29 -0
- package/lib/components/forms/Login/LOGINLocalizator.js +247 -0
- package/lib/components/forms/Login/LoginValidatorService.d.ts +50 -0
- package/lib/components/forms/Login/LoginValidatorService.js +162 -0
- package/lib/components/forms/Login/Menu.d.ts +10 -0
- package/lib/components/forms/Login/Menu.js +48 -0
- package/lib/components/forms/Login/OTPReader.d.ts +14 -0
- package/lib/components/forms/Login/OTPReader.js +90 -0
- package/lib/components/forms/Login/PasswordStrengthChecker.d.ts +7 -0
- package/lib/components/forms/Login/PasswordStrengthChecker.js +45 -0
- package/lib/components/forms/Login/RapidAccessLogin.d.ts +25 -0
- package/lib/components/forms/Login/RapidAccessLogin.js +310 -0
- package/lib/components/forms/Login/RecoverPasswordFlow.d.ts +11 -0
- package/lib/components/forms/Login/RecoverPasswordFlow.js +111 -0
- package/lib/components/forms/Login/SelectBox.d.ts +23 -0
- package/lib/components/forms/Login/SelectBox.js +96 -0
- package/lib/components/forms/Login/StepIndicator.d.ts +7 -0
- package/lib/components/forms/Login/StepIndicator.js +19 -0
- package/lib/components/forms/Login/TMLoginForm.d.ts +44 -0
- package/lib/components/forms/Login/TMLoginForm.js +737 -0
- package/lib/components/forms/Login/TextBox.d.ts +27 -0
- package/lib/components/forms/Login/TextBox.js +111 -0
- package/lib/components/forms/TMApplyForm.d.ts +4 -0
- package/lib/components/forms/TMApplyForm.js +105 -0
- package/lib/components/forms/TMChooserForm.d.ts +3 -0
- package/lib/components/forms/TMChooserForm.js +94 -0
- package/lib/components/forms/TMResultDialog.d.ts +20 -0
- package/lib/components/forms/TMResultDialog.js +44 -0
- package/lib/components/forms/TMSaveForm.d.ts +31 -0
- package/lib/components/forms/TMSaveForm.js +176 -0
- package/lib/components/grids/TMBlogAttachments.d.ts +42 -0
- package/lib/components/grids/TMBlogAttachments.js +43 -0
- package/lib/components/grids/TMBlogHeader.d.ts +31 -0
- package/lib/components/grids/TMBlogHeader.js +41 -0
- package/lib/components/grids/TMBlogsPost.d.ts +87 -0
- package/lib/components/grids/TMBlogsPost.js +644 -0
- package/lib/components/grids/TMBlogsPostUtils.d.ts +113 -0
- package/lib/components/grids/TMBlogsPostUtils.js +250 -0
- package/lib/components/grids/TMRecentsManager.d.ts +13 -0
- package/lib/components/grids/TMRecentsManager.js +155 -0
- package/lib/components/grids/TMValidationItemsList.d.ts +6 -0
- package/lib/components/grids/TMValidationItemsList.js +82 -0
- package/lib/components/index.d.ts +115 -0
- package/lib/components/index.js +137 -0
- package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +10 -0
- package/lib/components/layout/panelManager/TMPanelManagerContainer.js +215 -0
- package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +39 -0
- package/lib/components/layout/panelManager/TMPanelManagerContext.js +257 -0
- package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +11 -0
- package/lib/components/layout/panelManager/TMPanelManagerToolbar.js +83 -0
- package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +21 -0
- package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.js +64 -0
- package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +8 -0
- package/lib/components/layout/panelManager/TMPanelWrapper.js +59 -0
- package/lib/components/layout/panelManager/types.d.ts +42 -0
- package/lib/components/layout/panelManager/types.js +1 -0
- package/lib/components/layout/panelManager/utils.d.ts +21 -0
- package/lib/components/layout/panelManager/utils.js +208 -0
- package/lib/components/pages/TMPage.d.ts +38 -0
- package/lib/components/pages/TMPage.js +220 -0
- package/lib/components/query/TMQueryEditor.d.ts +58 -0
- package/lib/components/query/TMQueryEditor.js +1001 -0
- package/lib/components/query/TMQuerySummary.d.ts +16 -0
- package/lib/components/query/TMQuerySummary.js +35 -0
- package/lib/components/settings/SettingsAppearance.d.ts +14 -0
- package/lib/components/settings/SettingsAppearance.js +73 -0
- package/lib/components/sidebar/TMAboutApp.d.ts +8 -0
- package/lib/components/sidebar/TMAboutApp.js +14 -0
- package/lib/components/sidebar/TMCommandsPanel.d.ts +16 -0
- package/lib/components/sidebar/TMCommandsPanel.js +27 -0
- package/lib/components/sidebar/TMHeader.d.ts +43 -0
- package/lib/components/sidebar/TMHeader.js +616 -0
- package/lib/components/sidebar/TMSidebar.d.ts +21 -0
- package/lib/components/sidebar/TMSidebar.js +61 -0
- package/lib/components/sidebar/TMSidebarItem.d.ts +15 -0
- package/lib/components/sidebar/TMSidebarItem.js +39 -0
- package/lib/components/viewers/TMDataListItemViewer.d.ts +10 -0
- package/lib/components/viewers/TMDataListItemViewer.js +80 -0
- package/lib/components/viewers/TMMidViewer.d.ts +36 -0
- package/lib/components/viewers/TMMidViewer.js +128 -0
- package/lib/components/viewers/TMTidViewer.d.ts +256 -0
- package/lib/components/viewers/TMTidViewer.js +343 -0
- package/lib/components/wizard/TMStepIndicator.d.ts +11 -0
- package/lib/components/wizard/TMStepIndicator.js +165 -0
- package/lib/components/wizard/TMWizard.d.ts +18 -0
- package/lib/components/wizard/TMWizard.js +93 -0
- package/lib/css/tm-sdkui.css +1 -0
- package/lib/helper/DeepCompareHelper.d.ts +7 -0
- package/lib/helper/DeepCompareHelper.js +106 -0
- package/lib/helper/Enum_Localizator.d.ts +18 -0
- package/lib/helper/Enum_Localizator.js +247 -0
- package/lib/helper/GlobalStyles.d.ts +2 -0
- package/lib/helper/GlobalStyles.js +10 -0
- package/lib/helper/Globalization.d.ts +15 -0
- package/lib/helper/Globalization.js +110 -0
- package/lib/helper/SDKUI_Globals.d.ts +96 -0
- package/lib/helper/SDKUI_Globals.js +174 -0
- package/lib/helper/SDKUI_Localizator.d.ts +738 -0
- package/lib/helper/SDKUI_Localizator.js +7288 -0
- package/lib/helper/TMCommandsContextMenu.d.ts +14 -0
- package/lib/helper/TMCommandsContextMenu.js +6 -0
- package/lib/helper/TMConditionalWrapper.d.ts +8 -0
- package/lib/helper/TMConditionalWrapper.js +4 -0
- package/lib/helper/TMCustomSearchBar.d.ts +8 -0
- package/lib/helper/TMCustomSearchBar.js +54 -0
- package/lib/helper/TMIcons.d.ts +274 -0
- package/lib/helper/TMIcons.js +673 -0
- package/lib/helper/TMImageLibrary.d.ts +4 -0
- package/lib/helper/TMImageLibrary.js +466 -0
- package/lib/helper/TMToppyMessage.d.ts +7 -0
- package/lib/helper/TMToppyMessage.js +42 -0
- package/lib/helper/TMUtils.d.ts +26 -0
- package/lib/helper/TMUtils.js +212 -0
- package/lib/helper/dcmtsHelper.d.ts +8 -0
- package/lib/helper/dcmtsHelper.js +49 -0
- package/lib/helper/helpers.d.ts +84 -0
- package/lib/helper/helpers.js +826 -0
- package/lib/helper/index.d.ts +13 -0
- package/lib/helper/index.js +13 -0
- package/lib/helper/queryHelper.d.ts +19 -0
- package/lib/helper/queryHelper.js +336 -0
- package/lib/hooks/useDcmtOperations.d.ts +24 -0
- package/lib/hooks/useDcmtOperations.js +482 -0
- package/lib/hooks/useForm.d.ts +24 -0
- package/lib/hooks/useForm.js +157 -0
- package/lib/hooks/useInputDialog.d.ts +9 -0
- package/lib/hooks/useInputDialog.js +105 -0
- package/lib/hooks/useOutsideClick.d.ts +2 -0
- package/lib/hooks/useOutsideClick.js +38 -0
- package/lib/hooks/usePreventFileDrop.d.ts +3 -0
- package/lib/hooks/usePreventFileDrop.js +37 -0
- package/lib/hooks/useQueryParametersDialog.d.ts +2 -0
- package/lib/hooks/useQueryParametersDialog.js +71 -0
- package/lib/hooks/useRelatedDocuments.d.ts +72 -0
- package/lib/hooks/useRelatedDocuments.js +655 -0
- package/lib/hooks/useResizeObserver.d.ts +4 -0
- package/lib/hooks/useResizeObserver.js +22 -0
- package/lib/hooks/useWorkflowApprove.d.ts +11 -0
- package/lib/hooks/useWorkflowApprove.js +57 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.js +15 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/index.js +1 -0
- package/lib/services/platform_services.d.ts +18 -0
- package/lib/services/platform_services.js +492 -0
- package/lib/ts/index.d.ts +1 -0
- package/lib/ts/index.js +1 -0
- package/lib/ts/types.d.ts +310 -0
- package/lib/ts/types.js +100 -0
- package/lib/utils/theme.d.ts +69 -0
- package/lib/utils/theme.js +81 -0
- package/package.json +54 -0
|
@@ -0,0 +1,753 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import { DcmtTypeListCacheService, SDK_Globals, DataColumnTypes, MetadataFormats, SystemMIDs, MetadataDataDomains, RelationCacheService, RelationTypes } from "@topconsultnpm/sdk-ts";
|
|
4
|
+
import { genUniqueId, IconFolder, IconBackhandIndexPointingRight } from '../../../helper';
|
|
5
|
+
import { TMColors } from '../../../utils/theme';
|
|
6
|
+
import { StyledDivHorizontal, StyledBadge } from '../../base/Styled';
|
|
7
|
+
import TMTreeView from '../../base/TMTreeView';
|
|
8
|
+
import { TMWaitPanel } from '../../base/TMWaitPanel';
|
|
9
|
+
import { TMUserIdViewer } from '../../choosers/TMUserChooser';
|
|
10
|
+
import TMDataListItemViewer from '../../viewers/TMDataListItemViewer';
|
|
11
|
+
import TMDcmtIcon from './TMDcmtIcon';
|
|
12
|
+
/**
|
|
13
|
+
* Check if document type has detail relations
|
|
14
|
+
*/
|
|
15
|
+
export const hasDetailRelations = async (mTID) => {
|
|
16
|
+
if (!mTID)
|
|
17
|
+
return false;
|
|
18
|
+
const allRelations = await RelationCacheService.GetAllAsync();
|
|
19
|
+
const rdlOneToMany = allRelations?.filter(o => o.masterTID == mTID && o.relationType == RelationTypes.OneToMany) ?? [];
|
|
20
|
+
const rdlManyToMany = allRelations?.filter(o => o.relationType == RelationTypes.ManyToMany && (o.masterTID == mTID || o.detailTID == mTID)) ?? [];
|
|
21
|
+
return rdlManyToMany.length > 0 || rdlOneToMany.length > 0;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Check if document type has master relations
|
|
25
|
+
*/
|
|
26
|
+
export const hasMasterRelations = async (dTID) => {
|
|
27
|
+
if (!dTID)
|
|
28
|
+
return false;
|
|
29
|
+
const allRelations = await RelationCacheService.GetAllAsync();
|
|
30
|
+
const rdlOneToMany = allRelations?.filter(o => o.detailTID == dTID && o.relationType == RelationTypes.OneToMany) ?? [];
|
|
31
|
+
const rdlManyToMany = allRelations?.filter(o => o.relationType == RelationTypes.ManyToMany && (o.masterTID == dTID || o.detailTID == dTID)) ?? [];
|
|
32
|
+
return rdlManyToMany.length > 0 || rdlOneToMany.length > 0;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Check if relation is ManyToMany
|
|
36
|
+
*/
|
|
37
|
+
const isManyToManyRelation = async (relationID) => {
|
|
38
|
+
if (!relationID)
|
|
39
|
+
return false;
|
|
40
|
+
const allRelations = await RelationCacheService.GetAllAsync();
|
|
41
|
+
const rdlManyToMany = allRelations.filter(o => o.relationType == RelationTypes.ManyToMany && o.id === relationID) ?? [];
|
|
42
|
+
return rdlManyToMany.length > 0;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Get metadata keys excluding system metadata
|
|
46
|
+
*/
|
|
47
|
+
export const getMetadataKeys = (obj) => {
|
|
48
|
+
if (!obj)
|
|
49
|
+
return [];
|
|
50
|
+
const keys = Object.keys(obj);
|
|
51
|
+
// Escludi metadati di sistema (MID < 100 che sono uppercase) e altri campi tecnici
|
|
52
|
+
const sysMIDs = Object.values(SystemMIDs).map(o => o.toUpperCase());
|
|
53
|
+
return keys.filter(k => obj?.[k].value && !sysMIDs.includes(k)).filter(o => o !== "rowIndex" && o !== "ISLEXPROT");
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Get display value keys for a document (max 5, prioritize SYS_Abstract)
|
|
57
|
+
*/
|
|
58
|
+
export const getDcmtDisplayValue = (obj) => {
|
|
59
|
+
if (!obj)
|
|
60
|
+
return [];
|
|
61
|
+
// Prima cerca SYS_Abstract
|
|
62
|
+
if (obj['SYS_Abstract']?.value) {
|
|
63
|
+
return ['SYS_Abstract'];
|
|
64
|
+
}
|
|
65
|
+
// Altrimenti prendi i primi 5 metadati non di sistema
|
|
66
|
+
const mdKeys = getMetadataKeys(obj);
|
|
67
|
+
return mdKeys.slice(0, 5);
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Get display value formatted by column type
|
|
71
|
+
*/
|
|
72
|
+
export const getDisplayValueByColumn = (col, value) => {
|
|
73
|
+
if (!value)
|
|
74
|
+
return value;
|
|
75
|
+
if (!col)
|
|
76
|
+
return value;
|
|
77
|
+
if (col.dataType === DataColumnTypes.Text)
|
|
78
|
+
return value;
|
|
79
|
+
const format = MetadataFormats[(col.extendedProperties?.["Format"] ?? "None")];
|
|
80
|
+
const formatCulture = col.extendedProperties?.["FormatCulture"] ?? window.navigator.language;
|
|
81
|
+
if (col.dataType === DataColumnTypes.DateTime) {
|
|
82
|
+
const date = new Date(value);
|
|
83
|
+
switch (format) {
|
|
84
|
+
case MetadataFormats.ShortDate: return date.toLocaleString(formatCulture, formatCulture == "it-IT" ? { year: "numeric", month: "2-digit", day: "2-digit" } : { dateStyle: 'short' });
|
|
85
|
+
case MetadataFormats.ShortTime: return date.toLocaleString(formatCulture, { timeStyle: 'short' });
|
|
86
|
+
case MetadataFormats.ShortDateLongTime: return date.toLocaleString(formatCulture, formatCulture == "it-IT" ? { year: "numeric", month: "2-digit", day: "2-digit", hour: '2-digit', minute: '2-digit', second: '2-digit' } : { dateStyle: 'short', timeStyle: 'medium' }).replace(',', '');
|
|
87
|
+
case MetadataFormats.ShortDateShortTime: return date.toLocaleString(formatCulture, formatCulture == "it-IT" ? { year: "numeric", month: "2-digit", day: "2-digit", hour: '2-digit', minute: '2-digit' } : { dateStyle: 'short', timeStyle: 'short' }).replace(',', '');
|
|
88
|
+
case MetadataFormats.LongDate: return date.toLocaleString(formatCulture, { weekday: "long", year: "numeric", month: "long", day: "numeric" });
|
|
89
|
+
case MetadataFormats.LongTime: return date.toLocaleString(formatCulture, { timeStyle: 'medium' });
|
|
90
|
+
case MetadataFormats.LongDateLongTime: return date.toLocaleString(formatCulture, { weekday: "long", year: "numeric", month: "long", day: "numeric", hour: '2-digit', minute: '2-digit', second: '2-digit' });
|
|
91
|
+
case MetadataFormats.LongDateShortTime: return date.toLocaleString(formatCulture, { weekday: "long", year: "numeric", month: "long", day: "numeric", hour: '2-digit', minute: '2-digit' });
|
|
92
|
+
default: return date.toLocaleString(formatCulture, { dateStyle: 'short' });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (col.dataType === DataColumnTypes.Number) {
|
|
96
|
+
return value.toLocaleString(formatCulture, { useGrouping: format == MetadataFormats.NumberWithThousandsSeparator });
|
|
97
|
+
}
|
|
98
|
+
if (format == MetadataFormats.None)
|
|
99
|
+
return value;
|
|
100
|
+
if (format == MetadataFormats.CurrencyEuro)
|
|
101
|
+
return value.toLocaleString(formatCulture, { style: 'currency', currency: "EUR" });
|
|
102
|
+
if (format == MetadataFormats.CurrencyDollar)
|
|
103
|
+
return value.toLocaleString(formatCulture, { style: 'currency', currency: "USD" });
|
|
104
|
+
if (format == MetadataFormats.CurrencyPound)
|
|
105
|
+
return value.toLocaleString(formatCulture, { style: 'currency', currency: "GBP" });
|
|
106
|
+
if (format == MetadataFormats.CurrencyYen)
|
|
107
|
+
return value.toLocaleString(formatCulture, { style: 'currency', currency: "JPY" });
|
|
108
|
+
return value;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Convert SearchResultDescriptor to structured data source with metadata
|
|
112
|
+
*/
|
|
113
|
+
export const searchResultToDataSource = async (searchResult, hideSysMetadata) => {
|
|
114
|
+
const rows = searchResult?.dtdResult?.rows ?? [];
|
|
115
|
+
const tid = searchResult?.fromTID;
|
|
116
|
+
const dtd = await DcmtTypeListCacheService.GetAsync(tid);
|
|
117
|
+
const output = [];
|
|
118
|
+
for (let index = 0; index < rows.length; index++) {
|
|
119
|
+
const item = { rowIndex: index };
|
|
120
|
+
const row = rows[index];
|
|
121
|
+
for (let i = 0; i < row.length; i++) {
|
|
122
|
+
const mid = Number(searchResult?.dtdResult?.columns?.[i]?.extendedProperties?.["MID"] ?? "0");
|
|
123
|
+
if (hideSysMetadata && mid < 100)
|
|
124
|
+
continue;
|
|
125
|
+
let key = searchResult?.dtdResult?.columns?.[i].caption ?? '';
|
|
126
|
+
if (mid <= 100)
|
|
127
|
+
key = key.toUpperCase();
|
|
128
|
+
const value = row[i];
|
|
129
|
+
const md = dtd?.metadata?.find(o => o.id == mid);
|
|
130
|
+
item[key] = {
|
|
131
|
+
md: md,
|
|
132
|
+
value: getDisplayValueByColumn(searchResult?.dtdResult?.columns?.[i], value)
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
output.push(item);
|
|
136
|
+
}
|
|
137
|
+
return output;
|
|
138
|
+
};
|
|
139
|
+
const TMRelationViewer = ({ inputDcmts, isForMaster = false, showCurrentDcmtIndicator = true, allowShowZeroDcmts = true, initialShowZeroDcmts = false, allowedTIDs, allowMultipleSelection = false, focusedItem, selectedItems, onFocusedItemChanged, onSelectedItemsChanged, onDocumentDoubleClick, customItemRender, customDocumentStyle, customMainContainerContent, customDocumentContent, showMetadataNames = false, maxDepthLevel = 2, invertMasterNavigation = true, additionalStaticItems, showMainDocument = true, labelMainContainer, }) => {
|
|
140
|
+
// State
|
|
141
|
+
const [dcmtTypes, setDcmtTypes] = useState([]);
|
|
142
|
+
const [treeData, setTreeData] = useState([]);
|
|
143
|
+
const [showZeroDcmts, setShowZeroDcmts] = useState(initialShowZeroDcmts);
|
|
144
|
+
const [staticItemsState, setStaticItemsState] = useState([]);
|
|
145
|
+
const [showWaitPanel, setShowWaitPanel] = useState(false);
|
|
146
|
+
const [waitPanelTextPrimary, setWaitPanelTextPrimary] = useState('');
|
|
147
|
+
const [waitPanelValuePrimary, setWaitPanelValuePrimary] = useState(0);
|
|
148
|
+
const [waitPanelMaxValuePrimary, setWaitPanelMaxValuePrimary] = useState(0);
|
|
149
|
+
const [abortController] = useState(new AbortController());
|
|
150
|
+
const [showExpansionWaitPanel, setShowExpansionWaitPanel] = useState(false);
|
|
151
|
+
const [expansionWaitPanelText, setExpansionWaitPanelText] = useState('');
|
|
152
|
+
const [expansionWaitPanelValue, setExpansionWaitPanelValue] = useState(0);
|
|
153
|
+
const [expansionWaitPanelMaxValue, setExpansionWaitPanelMaxValue] = useState(0);
|
|
154
|
+
const [expansionAbortController, setExpansionAbortController] = useState(undefined);
|
|
155
|
+
// Ref to track last loaded input to prevent unnecessary reloads
|
|
156
|
+
const lastLoadedInputRef = React.useRef('');
|
|
157
|
+
// Ref to track if user has manually expanded/collapsed static items
|
|
158
|
+
const userInteractedWithStaticItemsRef = React.useRef(false);
|
|
159
|
+
/**
|
|
160
|
+
* Generate a stable key from inputDcmts to detect real changes
|
|
161
|
+
*/
|
|
162
|
+
const getInputKey = useCallback(() => {
|
|
163
|
+
if (!inputDcmts || inputDcmts.length === 0)
|
|
164
|
+
return '';
|
|
165
|
+
return inputDcmts.map(d => `${d.TID}-${d.DID}`).join('|') + `|${isForMaster}`;
|
|
166
|
+
}, [inputDcmts, isForMaster]);
|
|
167
|
+
// Load document types
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
const loadDcmtTypes = async () => {
|
|
170
|
+
const types = await DcmtTypeListCacheService.GetAllWithoutMetadataAsync() || [];
|
|
171
|
+
setDcmtTypes(types);
|
|
172
|
+
};
|
|
173
|
+
loadDcmtTypes();
|
|
174
|
+
}, []);
|
|
175
|
+
useEffect(() => {
|
|
176
|
+
setShowZeroDcmts(initialShowZeroDcmts);
|
|
177
|
+
}, [initialShowZeroDcmts]);
|
|
178
|
+
/**
|
|
179
|
+
* Recursively retrieve detail documents (adapted from TMMasterDetailDcmts.tsx)
|
|
180
|
+
*/
|
|
181
|
+
const getDetailDcmtsAsync = useCallback(async (mTID, mDID, maxLevel) => {
|
|
182
|
+
const items = [];
|
|
183
|
+
if (!mTID)
|
|
184
|
+
return [];
|
|
185
|
+
if (!mDID)
|
|
186
|
+
return [];
|
|
187
|
+
if (maxLevel <= 0)
|
|
188
|
+
return [];
|
|
189
|
+
const dcmtTypeHasRel = await hasDetailRelations(mTID);
|
|
190
|
+
if (!dcmtTypeHasRel)
|
|
191
|
+
return [];
|
|
192
|
+
try {
|
|
193
|
+
const searchEngine = SDK_Globals.tmSession?.NewSearchEngine();
|
|
194
|
+
if (!searchEngine)
|
|
195
|
+
return items;
|
|
196
|
+
const results = await searchEngine.GetAllDetailDcmtsAsync(mTID, mDID) ?? [];
|
|
197
|
+
for (const searchResult of results) {
|
|
198
|
+
// Skip if allowedTIDs is set and this TID is not allowed
|
|
199
|
+
if (allowedTIDs && searchResult.fromTID && !allowedTIDs.includes(searchResult.fromTID)) {
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
const containerGUID = genUniqueId();
|
|
203
|
+
const dtd = await DcmtTypeListCacheService.GetAsync(searchResult.fromTID);
|
|
204
|
+
const newDcmtTypeContainer = {
|
|
205
|
+
tid: searchResult.fromTID,
|
|
206
|
+
dtd: dtd,
|
|
207
|
+
did: undefined,
|
|
208
|
+
key: `${searchResult.fromTID}_${searchResult.relationID}_${mTID}_${mDID}_${containerGUID}`,
|
|
209
|
+
name: searchResult.fromName || dtd?.name || `TID: ${searchResult.fromTID}`,
|
|
210
|
+
isContainer: true,
|
|
211
|
+
relationId: searchResult.relationID,
|
|
212
|
+
isManyToMany: await isManyToManyRelation(searchResult.relationID),
|
|
213
|
+
searchResult: [searchResult],
|
|
214
|
+
isZero: (searchResult.dcmtsFound ?? 0) <= 0,
|
|
215
|
+
itemsCount: (searchResult.dcmtsFound ?? 0),
|
|
216
|
+
expanded: false,
|
|
217
|
+
hidden: false
|
|
218
|
+
};
|
|
219
|
+
const source = await searchResultToDataSource(searchResult);
|
|
220
|
+
if (source && source.length > 0) {
|
|
221
|
+
const dcmtDetails = [];
|
|
222
|
+
for (const row of source) {
|
|
223
|
+
const rowGUID = genUniqueId();
|
|
224
|
+
const tid = row?.TID?.value;
|
|
225
|
+
const did = row?.DID?.value;
|
|
226
|
+
dcmtDetails.push({
|
|
227
|
+
tid: tid,
|
|
228
|
+
did: did,
|
|
229
|
+
key: `${tid}_${did}_${searchResult.relationID}_${mTID}_${mDID}_${rowGUID}`,
|
|
230
|
+
isDcmt: true,
|
|
231
|
+
isContainer: false,
|
|
232
|
+
isZero: false, // Documents are never zero (they exist)
|
|
233
|
+
values: row,
|
|
234
|
+
searchResult: [searchResult],
|
|
235
|
+
itemsCount: 0,
|
|
236
|
+
expanded: false,
|
|
237
|
+
hidden: false,
|
|
238
|
+
name: row?.SYS_Abstract?.value || row?.SYS_SUBJECT?.value || `Documento ${did}`
|
|
239
|
+
// Note: Recursive loading on expansion is handled by calculateItemsForNode
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
newDcmtTypeContainer.items = dcmtDetails;
|
|
243
|
+
}
|
|
244
|
+
items.push(newDcmtTypeContainer);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
console.error('❌ Error loading detail documents:', error);
|
|
249
|
+
}
|
|
250
|
+
return items;
|
|
251
|
+
}, [allowedTIDs]);
|
|
252
|
+
/**
|
|
253
|
+
* Recursively retrieve master documents
|
|
254
|
+
*/
|
|
255
|
+
const getMasterDcmtsAsync = useCallback(async (dTID, dDID, maxLevel) => {
|
|
256
|
+
const items = [];
|
|
257
|
+
if (!dTID)
|
|
258
|
+
return [];
|
|
259
|
+
if (!dDID)
|
|
260
|
+
return [];
|
|
261
|
+
if (maxLevel <= 0)
|
|
262
|
+
return [];
|
|
263
|
+
const dcmtTypeHasRel = await hasMasterRelations(dTID);
|
|
264
|
+
if (!dcmtTypeHasRel)
|
|
265
|
+
return [];
|
|
266
|
+
try {
|
|
267
|
+
const searchEngine = SDK_Globals.tmSession?.NewSearchEngine();
|
|
268
|
+
if (!searchEngine)
|
|
269
|
+
return items;
|
|
270
|
+
const results = await searchEngine.GetAllMasterDcmtsAsync(dTID, dDID) ?? [];
|
|
271
|
+
for (const searchResult of results) {
|
|
272
|
+
// Skip if allowedTIDs is set and this TID is not allowed
|
|
273
|
+
if (allowedTIDs && searchResult.fromTID && !allowedTIDs.includes(searchResult.fromTID)) {
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
const containerGUID = genUniqueId();
|
|
277
|
+
const dtd = await DcmtTypeListCacheService.GetAsync(searchResult.fromTID);
|
|
278
|
+
const newDcmtTypeContainer = {
|
|
279
|
+
tid: searchResult.fromTID,
|
|
280
|
+
dtd: dtd,
|
|
281
|
+
did: undefined,
|
|
282
|
+
key: `${searchResult.fromTID}_${searchResult.relationID}_${dTID}_${dDID}_${containerGUID}`,
|
|
283
|
+
name: searchResult.fromName || dtd?.name || `TID: ${searchResult.fromTID}`,
|
|
284
|
+
isContainer: true,
|
|
285
|
+
relationId: searchResult.relationID,
|
|
286
|
+
isManyToMany: await isManyToManyRelation(searchResult.relationID),
|
|
287
|
+
searchResult: [searchResult],
|
|
288
|
+
isZero: (searchResult.dcmtsFound ?? 0) <= 0,
|
|
289
|
+
itemsCount: (searchResult.dcmtsFound ?? 0),
|
|
290
|
+
expanded: false,
|
|
291
|
+
hidden: false
|
|
292
|
+
};
|
|
293
|
+
const source = await searchResultToDataSource(searchResult);
|
|
294
|
+
if (source && source.length > 0) {
|
|
295
|
+
const dcmtMasters = [];
|
|
296
|
+
for (const row of source) {
|
|
297
|
+
const rowGUID = genUniqueId();
|
|
298
|
+
const tid = row?.TID?.value;
|
|
299
|
+
const did = row?.DID?.value;
|
|
300
|
+
dcmtMasters.push({
|
|
301
|
+
tid: tid,
|
|
302
|
+
did: did,
|
|
303
|
+
key: `${tid}_${did}_${searchResult.relationID}_${dTID}_${dDID}_${rowGUID}`,
|
|
304
|
+
isDcmt: true,
|
|
305
|
+
isContainer: false,
|
|
306
|
+
isZero: false, // Documents are never zero (they exist)
|
|
307
|
+
values: row,
|
|
308
|
+
searchResult: [searchResult],
|
|
309
|
+
itemsCount: 0,
|
|
310
|
+
expanded: false,
|
|
311
|
+
hidden: false,
|
|
312
|
+
name: row?.SYS_Abstract?.value || row?.SYS_SUBJECT?.value || `Documento ${did}`
|
|
313
|
+
// Note: Recursive loading on expansion is handled by calculateItemsForNode
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
newDcmtTypeContainer.items = dcmtMasters;
|
|
317
|
+
}
|
|
318
|
+
items.push(newDcmtTypeContainer);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
console.error('❌ Error loading master documents:', error);
|
|
323
|
+
}
|
|
324
|
+
return items;
|
|
325
|
+
}, [allowedTIDs]);
|
|
326
|
+
/**
|
|
327
|
+
* Update hidden property based on showZeroDcmts (original simple logic)
|
|
328
|
+
*/
|
|
329
|
+
const updateHiddenProperty = useCallback((nodes) => {
|
|
330
|
+
return nodes.map(node => {
|
|
331
|
+
const updatedNode = { ...node, hidden: !showZeroDcmts && node.isZero };
|
|
332
|
+
if (node.items) {
|
|
333
|
+
updatedNode.items = updateHiddenProperty(node.items);
|
|
334
|
+
}
|
|
335
|
+
return updatedNode;
|
|
336
|
+
});
|
|
337
|
+
}, [showZeroDcmts]);
|
|
338
|
+
/**
|
|
339
|
+
* Main data loading function
|
|
340
|
+
*/
|
|
341
|
+
const loadData = useCallback(async () => {
|
|
342
|
+
if (!inputDcmts || inputDcmts.length === 0 || dcmtTypes.length === 0) {
|
|
343
|
+
setTreeData([]);
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
const tree = [];
|
|
347
|
+
let processedCount = 0;
|
|
348
|
+
for (const dcmt of inputDcmts) {
|
|
349
|
+
// Check for abort
|
|
350
|
+
if (abortController.signal.aborted) {
|
|
351
|
+
console.warn(`⚠️ Operation aborted. Processed ${processedCount} documents`);
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
// Update wait panel progress
|
|
355
|
+
setWaitPanelTextPrimary(`Caricamento correlazione ${processedCount + 1} di ${inputDcmts.length}`);
|
|
356
|
+
const searchEngine = SDK_Globals.tmSession?.NewSearchEngine();
|
|
357
|
+
if (!searchEngine)
|
|
358
|
+
continue;
|
|
359
|
+
// Load document metadata
|
|
360
|
+
const result = await searchEngine.GetMetadataAsync(dcmt.TID, dcmt.DID, false);
|
|
361
|
+
const dtd = await DcmtTypeListCacheService.GetAsync(dcmt.TID);
|
|
362
|
+
// Parse document values
|
|
363
|
+
const docValues = await searchResultToDataSource(result);
|
|
364
|
+
const docRow = docValues.length > 0 ? docValues[0] : undefined;
|
|
365
|
+
// Generate unique GUID for this container
|
|
366
|
+
const containerGUID = genUniqueId();
|
|
367
|
+
// ========================================================================
|
|
368
|
+
// MODALITÀ MASTER CON NAVIGAZIONE ORIGINALE (invertMasterNavigation=false)
|
|
369
|
+
// ========================================================================
|
|
370
|
+
if (isForMaster && !invertMasterNavigation) {
|
|
371
|
+
// Carica i master documents
|
|
372
|
+
const masterDocs = await getMasterDcmtsAsync(dcmt.TID, dcmt.DID, maxDepthLevel);
|
|
373
|
+
// Per ogni master, carica i suoi detail (incluso il documento corrente)
|
|
374
|
+
for (const masterContainer of masterDocs) {
|
|
375
|
+
if (!masterContainer.items)
|
|
376
|
+
continue;
|
|
377
|
+
// Per ogni master document nel container, carica i detail
|
|
378
|
+
for (const masterDoc of masterContainer.items) {
|
|
379
|
+
if (masterDoc.tid && masterDoc.did) {
|
|
380
|
+
// Carica i detail del master (incluso il documento di partenza)
|
|
381
|
+
const detailDocs = await getDetailDcmtsAsync(masterDoc.tid, masterDoc.did, 1);
|
|
382
|
+
masterDoc.items = detailDocs;
|
|
383
|
+
masterDoc.itemsCount = detailDocs.length;
|
|
384
|
+
masterDoc.isLoaded = true;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
// Aggiungi i master come root
|
|
389
|
+
tree.push(...masterDocs);
|
|
390
|
+
}
|
|
391
|
+
// ========================================================================
|
|
392
|
+
// MODALITÀ STANDARD (detail o master invertito)
|
|
393
|
+
// ========================================================================
|
|
394
|
+
else {
|
|
395
|
+
// Load related documents (detail or master based on isForMaster flag)
|
|
396
|
+
const relatedDocs = isForMaster
|
|
397
|
+
? await getMasterDcmtsAsync(dcmt.TID, dcmt.DID, maxDepthLevel)
|
|
398
|
+
: await getDetailDcmtsAsync(dcmt.TID, dcmt.DID, maxDepthLevel);
|
|
399
|
+
// Se showMainDocument è false, mostra i container dei dettagli direttamente sotto il container principale
|
|
400
|
+
if (!showMainDocument) {
|
|
401
|
+
// Create type container that contains detail containers directly
|
|
402
|
+
const typeContainer = {
|
|
403
|
+
key: `${isForMaster ? 'detail' : 'master'}-type-${dcmt.TID}-${containerGUID}`,
|
|
404
|
+
name: labelMainContainer || result?.fromName || dtd?.name || `TID: ${dcmt.TID}`,
|
|
405
|
+
tid: dcmt.TID,
|
|
406
|
+
dtd,
|
|
407
|
+
isContainer: true,
|
|
408
|
+
isRoot: true,
|
|
409
|
+
isLoaded: true,
|
|
410
|
+
isZero: false,
|
|
411
|
+
searchResult: result ? [result] : [],
|
|
412
|
+
items: relatedDocs, // Directly show detail containers
|
|
413
|
+
itemsCount: relatedDocs.length,
|
|
414
|
+
expanded: tree.length === 0,
|
|
415
|
+
hidden: false
|
|
416
|
+
};
|
|
417
|
+
tree.push(typeContainer);
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
// MODALITÀ ORIGINALE: mostra il documento master come nodo intermedio
|
|
421
|
+
// Create document node WITH VALUES
|
|
422
|
+
const docNode = {
|
|
423
|
+
key: `${isForMaster ? 'detail' : 'master'}-doc-${dcmt.TID}-${dcmt.DID}-${containerGUID}`,
|
|
424
|
+
name: docRow?.SYS_Abstract?.value || docRow?.SYS_SUBJECT?.value || `Documento ${isForMaster ? 'Dettaglio' : 'Master'}`,
|
|
425
|
+
tid: dcmt.TID,
|
|
426
|
+
did: dcmt.DID,
|
|
427
|
+
isDcmt: true,
|
|
428
|
+
isContainer: false,
|
|
429
|
+
expanded: tree.length === 0,
|
|
430
|
+
isZero: dcmt.DID === 0,
|
|
431
|
+
isMaster: !isForMaster,
|
|
432
|
+
isRoot: true,
|
|
433
|
+
isLoaded: true,
|
|
434
|
+
hidden: false,
|
|
435
|
+
values: docRow,
|
|
436
|
+
searchResult: result ? [result] : [],
|
|
437
|
+
items: relatedDocs,
|
|
438
|
+
itemsCount: relatedDocs.length
|
|
439
|
+
};
|
|
440
|
+
// Create type container with unique key
|
|
441
|
+
const typeContainer = {
|
|
442
|
+
key: `${isForMaster ? 'detail' : 'master'}-type-${dcmt.TID}-${containerGUID}`,
|
|
443
|
+
name: labelMainContainer || result?.fromName || dtd?.name || `TID: ${dcmt.TID}`,
|
|
444
|
+
tid: dcmt.TID,
|
|
445
|
+
dtd,
|
|
446
|
+
isContainer: true,
|
|
447
|
+
isRoot: true,
|
|
448
|
+
isLoaded: true,
|
|
449
|
+
isZero: false, // Type container is never zero (contains documents)
|
|
450
|
+
searchResult: result ? [result] : [],
|
|
451
|
+
items: [docNode],
|
|
452
|
+
itemsCount: 1,
|
|
453
|
+
expanded: tree.length === 0,
|
|
454
|
+
hidden: false
|
|
455
|
+
};
|
|
456
|
+
tree.push(typeContainer);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
// Update progress counter
|
|
460
|
+
processedCount++;
|
|
461
|
+
setWaitPanelValuePrimary(processedCount);
|
|
462
|
+
}
|
|
463
|
+
setTreeData(updateHiddenProperty(tree));
|
|
464
|
+
}, [inputDcmts, dcmtTypes, maxDepthLevel, isForMaster, invertMasterNavigation, getDetailDcmtsAsync, getMasterDcmtsAsync, abortController, updateHiddenProperty, showMainDocument, labelMainContainer]);
|
|
465
|
+
/**
|
|
466
|
+
* Merge main tree data with additional static items
|
|
467
|
+
*/
|
|
468
|
+
const mergedTreeData = useMemo(() => {
|
|
469
|
+
if (!additionalStaticItems || additionalStaticItems.length === 0) {
|
|
470
|
+
return treeData;
|
|
471
|
+
}
|
|
472
|
+
// Use staticItemsState if available (preserves expanded state), otherwise use fresh additionalStaticItems
|
|
473
|
+
const itemsToMerge = staticItemsState.length > 0 ? staticItemsState : additionalStaticItems;
|
|
474
|
+
// Append additional static items at the end
|
|
475
|
+
// NOTE: Do NOT call updateHiddenProperty on static items - they are pre-processed by the parent
|
|
476
|
+
// and may contain custom properties that would be lost by the spread operator
|
|
477
|
+
return [...treeData, ...itemsToMerge];
|
|
478
|
+
}, [treeData, additionalStaticItems, staticItemsState]);
|
|
479
|
+
/**
|
|
480
|
+
* Load data when inputs change
|
|
481
|
+
*/
|
|
482
|
+
useEffect(() => {
|
|
483
|
+
if (!inputDcmts || inputDcmts.length === 0 || dcmtTypes.length === 0) {
|
|
484
|
+
setTreeData([]);
|
|
485
|
+
lastLoadedInputRef.current = '';
|
|
486
|
+
userInteractedWithStaticItemsRef.current = false; // Reset interaction flag
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
// Generate current input key
|
|
490
|
+
const currentKey = getInputKey();
|
|
491
|
+
// Skip if we already loaded this exact data
|
|
492
|
+
if (currentKey === lastLoadedInputRef.current && treeData.length > 0) {
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
// Mark as loading this key
|
|
496
|
+
lastLoadedInputRef.current = currentKey;
|
|
497
|
+
// Reset interaction flag when loading new data
|
|
498
|
+
userInteractedWithStaticItemsRef.current = false;
|
|
499
|
+
setShowWaitPanel(true);
|
|
500
|
+
setWaitPanelMaxValuePrimary(inputDcmts.length);
|
|
501
|
+
setWaitPanelValuePrimary(0);
|
|
502
|
+
// Call loadData and use .then() instead of await to allow React to render
|
|
503
|
+
loadData().then(() => {
|
|
504
|
+
setShowWaitPanel(false);
|
|
505
|
+
setWaitPanelTextPrimary('');
|
|
506
|
+
setWaitPanelMaxValuePrimary(0);
|
|
507
|
+
setWaitPanelValuePrimary(0);
|
|
508
|
+
});
|
|
509
|
+
}, [inputDcmts, dcmtTypes, maxDepthLevel, getInputKey, loadData, treeData.length]);
|
|
510
|
+
/**
|
|
511
|
+
* Update tree when showZeroDcmts changes
|
|
512
|
+
*/
|
|
513
|
+
useEffect(() => {
|
|
514
|
+
setTreeData(prevData => updateHiddenProperty(prevData));
|
|
515
|
+
}, [showZeroDcmts, updateHiddenProperty]);
|
|
516
|
+
/**
|
|
517
|
+
* Sync static items state when additionalStaticItems change
|
|
518
|
+
* IMPORTANT: Only update if user hasn't manually interacted with the tree,
|
|
519
|
+
* to preserve expand/collapse state
|
|
520
|
+
*/
|
|
521
|
+
useEffect(() => {
|
|
522
|
+
// If user hasn't interacted yet, sync with incoming additionalStaticItems
|
|
523
|
+
if (!userInteractedWithStaticItemsRef.current) {
|
|
524
|
+
setStaticItemsState(additionalStaticItems || []);
|
|
525
|
+
}
|
|
526
|
+
// If user has interacted, we need to merge the new data with existing state
|
|
527
|
+
// to preserve expanded/collapsed state while updating content
|
|
528
|
+
else if (additionalStaticItems && additionalStaticItems.length > 0) {
|
|
529
|
+
setStaticItemsState(prevState => {
|
|
530
|
+
// Create a map of existing state by key
|
|
531
|
+
const stateMap = new Map(prevState.map(item => [item.key, item]));
|
|
532
|
+
// Merge: use existing state if available (preserves expanded), otherwise use new item
|
|
533
|
+
return additionalStaticItems.map(newItem => {
|
|
534
|
+
const existingItem = stateMap.get(newItem.key);
|
|
535
|
+
if (existingItem) {
|
|
536
|
+
// Preserve expanded state but update content
|
|
537
|
+
return {
|
|
538
|
+
...newItem,
|
|
539
|
+
expanded: existingItem.expanded,
|
|
540
|
+
items: newItem.items // Always use fresh items from parent
|
|
541
|
+
};
|
|
542
|
+
}
|
|
543
|
+
return newItem;
|
|
544
|
+
});
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
}, [additionalStaticItems]);
|
|
548
|
+
/**
|
|
549
|
+
* Calculate items for node when expanded (lazy loading)
|
|
550
|
+
* Note: additionalStaticItems are already fully loaded, so skip calculation for them
|
|
551
|
+
*/
|
|
552
|
+
const calculateItemsForNode = useCallback(async (node) => {
|
|
553
|
+
// Skip calculation for separator (it has no children)
|
|
554
|
+
if (node.isSeparator) {
|
|
555
|
+
return undefined;
|
|
556
|
+
}
|
|
557
|
+
// Skip calculation for additional static items (they're pre-loaded and should not trigger dynamic loading)
|
|
558
|
+
if (node.isStaticItem || node.isAdditionalContainer || node.isAdditional) {
|
|
559
|
+
return node.items;
|
|
560
|
+
}
|
|
561
|
+
// If it's a document, return existing items
|
|
562
|
+
if (node.isDcmt)
|
|
563
|
+
return node.items;
|
|
564
|
+
// If container is already loaded, return items
|
|
565
|
+
if (node.isLoaded)
|
|
566
|
+
return node.items;
|
|
567
|
+
const newAbortController = new AbortController();
|
|
568
|
+
setExpansionAbortController(newAbortController);
|
|
569
|
+
const itemsToLoad = node.items?.length ?? 0;
|
|
570
|
+
setShowExpansionWaitPanel(true);
|
|
571
|
+
setExpansionWaitPanelMaxValue(itemsToLoad);
|
|
572
|
+
setExpansionWaitPanelValue(0);
|
|
573
|
+
setExpansionWaitPanelText(`Caricamento documenti correlati...`);
|
|
574
|
+
try {
|
|
575
|
+
const newItems = [];
|
|
576
|
+
let processedCount = 0;
|
|
577
|
+
for (const dcmt of node.items ?? []) {
|
|
578
|
+
if (newAbortController.signal.aborted) {
|
|
579
|
+
console.log('Folder expansion aborted by user');
|
|
580
|
+
return node.items;
|
|
581
|
+
}
|
|
582
|
+
const item = { ...dcmt };
|
|
583
|
+
if (item.tid && item.did && !item.isLoaded) {
|
|
584
|
+
// Update progress
|
|
585
|
+
processedCount++;
|
|
586
|
+
setExpansionWaitPanelValue(processedCount);
|
|
587
|
+
setExpansionWaitPanelText(`Caricamento ${processedCount} di ${itemsToLoad}...`);
|
|
588
|
+
// Nella modalità originale (invertMasterNavigation=false),
|
|
589
|
+
// i documenti detail non devono caricare i master come figli
|
|
590
|
+
if (isForMaster && !invertMasterNavigation) {
|
|
591
|
+
// Carica i detail dei detail (navigazione naturale detail→detail)
|
|
592
|
+
const loadedItems = await getDetailDcmtsAsync(item.tid, item.did, 1);
|
|
593
|
+
item.items = updateHiddenProperty(loadedItems);
|
|
594
|
+
}
|
|
595
|
+
else {
|
|
596
|
+
// Modalità standard o invertita
|
|
597
|
+
const loadedItems = isForMaster
|
|
598
|
+
? await getMasterDcmtsAsync(item.tid, item.did, 1)
|
|
599
|
+
: await getDetailDcmtsAsync(item.tid, item.did, 1);
|
|
600
|
+
item.items = updateHiddenProperty(loadedItems);
|
|
601
|
+
}
|
|
602
|
+
item.isLoaded = true;
|
|
603
|
+
}
|
|
604
|
+
newItems.push(item);
|
|
605
|
+
}
|
|
606
|
+
return newItems;
|
|
607
|
+
}
|
|
608
|
+
catch (error) {
|
|
609
|
+
console.error('Error loading folder contents:', error);
|
|
610
|
+
return node.items;
|
|
611
|
+
}
|
|
612
|
+
finally {
|
|
613
|
+
setShowExpansionWaitPanel(false);
|
|
614
|
+
setExpansionAbortController(undefined);
|
|
615
|
+
}
|
|
616
|
+
}, [isForMaster, invertMasterNavigation, getDetailDcmtsAsync, getMasterDcmtsAsync, updateHiddenProperty]);
|
|
617
|
+
/**
|
|
618
|
+
* Default item renderer with metadata display (adapted from TMMasterDetailDcmts.tsx)
|
|
619
|
+
*/
|
|
620
|
+
const defaultItemRender = useCallback((item) => {
|
|
621
|
+
if (!item)
|
|
622
|
+
return _jsx("span", { children: "-" });
|
|
623
|
+
const handleDoubleClick = (e) => {
|
|
624
|
+
if (item.isContainer || !item.tid || !item.did)
|
|
625
|
+
return;
|
|
626
|
+
e.stopPropagation();
|
|
627
|
+
onDocumentDoubleClick?.(item.tid, item.did, item.name);
|
|
628
|
+
};
|
|
629
|
+
// Container rendering
|
|
630
|
+
if (item.isContainer || !item.isDcmt) {
|
|
631
|
+
const defaultContainerStyle = {
|
|
632
|
+
display: 'flex',
|
|
633
|
+
alignItems: 'center',
|
|
634
|
+
gap: '10px',
|
|
635
|
+
height: '32px',
|
|
636
|
+
padding: '6px 0',
|
|
637
|
+
opacity: item.isZero ? 0.4 : 1,
|
|
638
|
+
transition: 'opacity 0.2s ease-in-out'
|
|
639
|
+
};
|
|
640
|
+
// Se è il container principale (root) e showMainDocument è false,
|
|
641
|
+
// non mostrare il badge perché conterrebbe il numero di sotto-container, non di documenti
|
|
642
|
+
const shouldShowBadge = !(item.isRoot && !showMainDocument);
|
|
643
|
+
const defaultContent = (_jsxs(_Fragment, { children: [_jsx("div", { style: { position: 'relative' }, children: _jsx(IconFolder, { color: item.isManyToMany ? '#ff8f44' : TMColors.iconLight, fontSize: 24 }) }), _jsxs(StyledDivHorizontal, { style: { gap: 5, overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' }, children: [_jsx("p", { style: {
|
|
644
|
+
whiteSpace: 'nowrap',
|
|
645
|
+
textOverflow: 'ellipsis',
|
|
646
|
+
fontSize: '1rem',
|
|
647
|
+
color: 'inherit'
|
|
648
|
+
}, children: item.name }), shouldShowBadge && (_jsx(StyledBadge, { "$backgroundColor": TMColors.info, children: item.items?.length ?? 0 }))] })] }));
|
|
649
|
+
// Se è il container principale (root) e abbiamo un custom renderer, usalo
|
|
650
|
+
const content = (item.isRoot && customMainContainerContent)
|
|
651
|
+
? customMainContainerContent(item, defaultContent)
|
|
652
|
+
: defaultContent;
|
|
653
|
+
return (_jsx("div", { style: defaultContainerStyle, children: content }));
|
|
654
|
+
}
|
|
655
|
+
// Document rendering with full metadata display
|
|
656
|
+
const defaultDocumentStyle = {
|
|
657
|
+
minWidth: '90px',
|
|
658
|
+
width: '100%',
|
|
659
|
+
display: 'flex',
|
|
660
|
+
marginLeft: '5px',
|
|
661
|
+
marginTop: '5px',
|
|
662
|
+
marginBottom: '5px',
|
|
663
|
+
gap: '15px',
|
|
664
|
+
alignItems: 'center',
|
|
665
|
+
cursor: 'pointer',
|
|
666
|
+
userSelect: 'none',
|
|
667
|
+
opacity: item.isZero ? 0.4 : 1,
|
|
668
|
+
transition: 'opacity 0.2s ease-in-out'
|
|
669
|
+
};
|
|
670
|
+
const documentStyle = customDocumentStyle
|
|
671
|
+
? { ...defaultDocumentStyle, ...customDocumentStyle(item) }
|
|
672
|
+
: defaultDocumentStyle;
|
|
673
|
+
const defaultMetadataContent = item.values && (_jsx(StyledDivHorizontal, { style: {
|
|
674
|
+
fontSize: '1rem',
|
|
675
|
+
overflow: 'hidden',
|
|
676
|
+
flex: 1,
|
|
677
|
+
minWidth: 0,
|
|
678
|
+
whiteSpace: 'nowrap'
|
|
679
|
+
}, children: getDcmtDisplayValue(item.values).map((key, index) => {
|
|
680
|
+
const md = item.values?.[key]?.md;
|
|
681
|
+
const value = item.values?.[key]?.value;
|
|
682
|
+
const displayValues = getDcmtDisplayValue(item.values);
|
|
683
|
+
const isLast = index === displayValues.length - 1;
|
|
684
|
+
return (_jsxs(StyledDivHorizontal, { style: {
|
|
685
|
+
flexShrink: isLast ? 1 : 0,
|
|
686
|
+
minWidth: isLast ? 0 : 'auto',
|
|
687
|
+
overflow: isLast ? 'hidden' : 'visible'
|
|
688
|
+
}, children: [index > 0 && _jsx("span", { style: { margin: '0 5px', color: '#999' }, children: "\u2022" }), showMetadataNames && (_jsxs("span", { style: { color: '#666', marginRight: '5px' }, children: [md?.name || key, ":"] })), md?.dataDomain === MetadataDataDomains.DataList ? (_jsx(TMDataListItemViewer, { dataListId: md.dataListID, viewMode: md.dataListViewMode, value: value })) : md?.dataDomain === MetadataDataDomains.UserID ? (_jsx(TMUserIdViewer, { userId: value, showIcon: true, noneSelectionText: '' })) : (_jsx("span", { style: {
|
|
689
|
+
fontWeight: 500,
|
|
690
|
+
overflow: isLast ? 'hidden' : 'visible',
|
|
691
|
+
textOverflow: isLast ? 'ellipsis' : 'clip',
|
|
692
|
+
whiteSpace: 'nowrap'
|
|
693
|
+
}, children: value }))] }, `${key}_${index}`));
|
|
694
|
+
}) }));
|
|
695
|
+
const metadataContent = customDocumentContent
|
|
696
|
+
? customDocumentContent(item, defaultMetadataContent || _jsx(_Fragment, {}))
|
|
697
|
+
: defaultMetadataContent;
|
|
698
|
+
return (_jsxs("div", { onDoubleClick: handleDoubleClick, style: documentStyle, children: [item.did && showCurrentDcmtIndicator && item.did === inputDcmts?.[0].DID ? _jsx(IconBackhandIndexPointingRight, { fontSize: 22, overflow: 'visible' }) : _jsx(_Fragment, {}), item.values && (_jsx(TMDcmtIcon, { tid: item.values?.TID?.value, did: item.values?.DID?.value, fileExtension: item.values?.FILEEXT?.value, fileCount: item.values?.FILECOUNT?.value, isLexProt: item.values?.IsLexProt?.value, isMail: item.values?.ISMAIL?.value, isShared: item.values?.ISSHARED?.value, isSigned: item.values?.ISSIGNED?.value, downloadMode: 'openInNewWindow' })), metadataContent] }));
|
|
699
|
+
}, [onDocumentDoubleClick, showCurrentDcmtIndicator, inputDcmts, customMainContainerContent, customDocumentStyle, customDocumentContent, showMetadataNames, showMainDocument]);
|
|
700
|
+
/**
|
|
701
|
+
* Wrapper renderer that handles custom rendering if provided
|
|
702
|
+
*/
|
|
703
|
+
const finalItemRender = useCallback((item) => {
|
|
704
|
+
if (!item)
|
|
705
|
+
return _jsx("span", { children: "-" });
|
|
706
|
+
// If customItemRender is provided, try it first
|
|
707
|
+
if (customItemRender) {
|
|
708
|
+
const customResult = customItemRender(item);
|
|
709
|
+
// If custom renderer returns something (not undefined), use it
|
|
710
|
+
if (customResult !== undefined) {
|
|
711
|
+
return customResult;
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
// Otherwise use default renderer
|
|
715
|
+
return defaultItemRender(item);
|
|
716
|
+
}, [customItemRender, defaultItemRender]);
|
|
717
|
+
/**
|
|
718
|
+
* Handle focused item changed
|
|
719
|
+
*/
|
|
720
|
+
const handleFocusedItemChanged = useCallback((item) => {
|
|
721
|
+
onFocusedItemChanged?.(item);
|
|
722
|
+
}, [onFocusedItemChanged]);
|
|
723
|
+
/**
|
|
724
|
+
* Handle selected items changed
|
|
725
|
+
*/
|
|
726
|
+
const handleSelectedItemsChanged = useCallback((items) => {
|
|
727
|
+
onSelectedItemsChanged?.(items);
|
|
728
|
+
}, [onSelectedItemsChanged]);
|
|
729
|
+
/**
|
|
730
|
+
* Handle data changed - separate static items from dynamic tree data
|
|
731
|
+
*/
|
|
732
|
+
const handleDataChanged = useCallback((updatedData) => {
|
|
733
|
+
// Separate static items, separator, and dynamic correlations
|
|
734
|
+
const dynamicItems = updatedData.filter(item => !item.isStaticItem && !item.isSeparator);
|
|
735
|
+
const staticItems = updatedData.filter(item => item.isStaticItem);
|
|
736
|
+
setTreeData(dynamicItems);
|
|
737
|
+
setStaticItemsState(staticItems); // Preserve static items state (expanded/collapsed)
|
|
738
|
+
// Mark that user has interacted with the tree (expanded/collapsed nodes)
|
|
739
|
+
userInteractedWithStaticItemsRef.current = true;
|
|
740
|
+
}, []);
|
|
741
|
+
if (showWaitPanel) {
|
|
742
|
+
return _jsx("div", { style: { padding: '20px', textAlign: 'center' }, children: _jsx(TMWaitPanel, { title: 'Caricamento documenti dettaglio', showPrimary: true, textPrimary: waitPanelTextPrimary, valuePrimary: waitPanelValuePrimary, maxValuePrimary: waitPanelMaxValuePrimary, isCancelable: true, abortController: abortController, onAbortClick: (abortController) => { setTimeout(() => { abortController?.abort(); }, 1000); } }) });
|
|
743
|
+
}
|
|
744
|
+
if (mergedTreeData.length === 0) {
|
|
745
|
+
return _jsx("div", { style: { padding: '20px', textAlign: 'center', color: '#666' }, children: "Nessuna relazione disponibile." });
|
|
746
|
+
}
|
|
747
|
+
return (_jsxs(_Fragment, { children: [_jsx(TMTreeView, { dataSource: mergedTreeData, itemRender: finalItemRender, calculateItemsForNode: calculateItemsForNode, onDataChanged: handleDataChanged, focusedItem: focusedItem, onFocusedItemChanged: handleFocusedItemChanged, allowMultipleSelection: allowMultipleSelection, selectedItems: selectedItems, onSelectionChanged: handleSelectedItemsChanged }), showExpansionWaitPanel && (_jsx(TMWaitPanel, { title: isForMaster ? 'Caricamento documenti master' : 'Caricamento documenti dettaglio', showPrimary: true, textPrimary: expansionWaitPanelText, valuePrimary: expansionWaitPanelValue, maxValuePrimary: expansionWaitPanelMaxValue, isCancelable: true, abortController: expansionAbortController, onAbortClick: (abortController) => {
|
|
748
|
+
setTimeout(() => {
|
|
749
|
+
abortController?.abort();
|
|
750
|
+
}, 100);
|
|
751
|
+
} }))] }));
|
|
752
|
+
};
|
|
753
|
+
export default TMRelationViewer;
|