@topconsultnpm/sdkui-react 6.19.0-dev1.10
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 +62 -0
- package/lib/components/base/Styled.js +297 -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/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 +209 -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 +224 -0
- package/lib/components/base/TMFileManagerDataGridView.d.ts +14 -0
- package/lib/components/base/TMFileManagerDataGridView.js +89 -0
- package/lib/components/base/TMFileManagerThumbnailItems.d.ts +16 -0
- package/lib/components/base/TMFileManagerThumbnailItems.js +138 -0
- package/lib/components/base/TMFileManagerThumbnailsView.d.ts +17 -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 +54 -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 +280 -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 +355 -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 +51 -0
- package/lib/components/choosers/TMMetadataChooser.js +134 -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 +33 -0
- package/lib/components/editors/TMHtmlEditor.js +143 -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 +480 -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 +19 -0
- package/lib/components/features/archive/TMArchive.js +162 -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 +308 -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 +8 -0
- package/lib/components/features/documents/TMDcmtBlog.js +77 -0
- package/lib/components/features/documents/TMDcmtForm.d.ts +50 -0
- package/lib/components/features/documents/TMDcmtForm.js +1083 -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/TMDragDropOverlay.d.ts +6 -0
- package/lib/components/features/documents/TMDragDropOverlay.js +96 -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 +19 -0
- package/lib/components/features/documents/TMMasterDetailDcmts.js +288 -0
- package/lib/components/features/documents/TMRelationViewer.d.ts +71 -0
- package/lib/components/features/documents/TMRelationViewer.js +573 -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 +31 -0
- package/lib/components/features/search/TMSearch.js +244 -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 +426 -0
- package/lib/components/features/search/TMSearchResult.d.ts +44 -0
- package/lib/components/features/search/TMSearchResult.js +1293 -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 +10 -0
- package/lib/components/features/search/TMSearchResultsMenuItems.js +654 -0
- package/lib/components/features/search/TMTreeSelector.d.ts +12 -0
- package/lib/components/features/search/TMTreeSelector.js +270 -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 +40 -0
- package/lib/components/features/workflow/TMWorkflowPopup.js +273 -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 +681 -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 +203 -0
- package/lib/components/features/workflow/diagram/WFDiagram.d.ts +9 -0
- package/lib/components/features/workflow/diagram/WFDiagram.js +1666 -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 +38 -0
- package/lib/components/forms/TMSaveForm.d.ts +31 -0
- package/lib/components/forms/TMSaveForm.js +176 -0
- package/lib/components/grids/TMBlogs.d.ts +102 -0
- package/lib/components/grids/TMBlogs.js +721 -0
- package/lib/components/grids/TMBlogsUtils.d.ts +99 -0
- package/lib/components/grids/TMBlogsUtils.js +226 -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 +102 -0
- package/lib/components/index.js +123 -0
- package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +9 -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 +251 -0
- package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +11 -0
- package/lib/components/layout/panelManager/TMPanelManagerToolbar.js +82 -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 +41 -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 +15 -0
- package/lib/components/query/TMQuerySummary.js +35 -0
- package/lib/components/settings/SettingsAppearance.d.ts +14 -0
- package/lib/components/settings/SettingsAppearance.js +65 -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 +341 -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/Globalization.d.ts +14 -0
- package/lib/helper/Globalization.js +80 -0
- package/lib/helper/SDKUI_Globals.d.ts +93 -0
- package/lib/helper/SDKUI_Globals.js +165 -0
- package/lib/helper/SDKUI_Localizator.d.ts +649 -0
- package/lib/helper/SDKUI_Localizator.js +6385 -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/TMIcons.d.ts +271 -0
- package/lib/helper/TMIcons.js +664 -0
- package/lib/helper/TMImageLibrary.d.ts +3 -0
- package/lib/helper/TMImageLibrary.js +466 -0
- package/lib/helper/TMUtils.d.ts +20 -0
- package/lib/helper/TMUtils.js +176 -0
- package/lib/helper/dcmtsHelper.d.ts +5 -0
- package/lib/helper/dcmtsHelper.js +25 -0
- package/lib/helper/helpers.d.ts +84 -0
- package/lib/helper/helpers.js +824 -0
- package/lib/helper/index.d.ts +11 -0
- package/lib/helper/index.js +11 -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/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 +11 -0
- package/lib/index.js +14 -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/stories/TMButton.stories.d.ts +4 -0
- package/lib/stories/TMButton.stories.js +29 -0
- package/lib/stories/TMDataGrid.stories.d.ts +9 -0
- package/lib/stories/TMDataGrid.stories.js +310 -0
- package/lib/stories/TMHtmlContentDisplay.stories.d.ts +6 -0
- package/lib/stories/TMHtmlContentDisplay.stories.js +45 -0
- package/lib/stories/TMHtmlEditor.stories.d.ts +6 -0
- package/lib/stories/TMHtmlEditor.stories.js +49 -0
- package/lib/stories/TMIcons.stories.d.ts +4 -0
- package/lib/stories/TMIcons.stories.js +13 -0
- package/lib/stories/TMSDKUI_Localizator.stories.d.ts +4 -0
- package/lib/stories/TMSDKUI_Localizator.stories.js +123 -0
- package/lib/stories/TMStoriesUtils.d.ts +1 -0
- package/lib/stories/TMStoriesUtils.js +10 -0
- package/lib/stories/TMUserAvatar.stories.d.ts +6 -0
- package/lib/stories/TMUserAvatar.stories.js +20 -0
- package/lib/ts/index.d.ts +1 -0
- package/lib/ts/index.js +1 -0
- package/lib/ts/types.d.ts +296 -0
- package/lib/ts/types.js +85 -0
- package/lib/utils/theme.d.ts +68 -0
- package/lib/utils/theme.js +80 -0
- package/package.json +54 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import TMTooltip from './TMTooltip';
|
|
3
|
+
import styled from 'styled-components';
|
|
4
|
+
const StyledList = styled.div `
|
|
5
|
+
background-color: #f0f0f0;
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
/* border: 1px solid #dadada; */
|
|
9
|
+
border-bottom-left-radius: 5px;
|
|
10
|
+
border-bottom-right-radius: 5px;
|
|
11
|
+
border-top: 0;
|
|
12
|
+
width: 100%;
|
|
13
|
+
margin-top: -3px;
|
|
14
|
+
`;
|
|
15
|
+
const StyledListItem = styled.div `
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
border-right: 1px dashed lightgray;
|
|
19
|
+
padding: 4px 12px;
|
|
20
|
+
gap: 3px;
|
|
21
|
+
transition: all .5s ease-in;
|
|
22
|
+
&:hover {
|
|
23
|
+
background-color: white;
|
|
24
|
+
svg, span {
|
|
25
|
+
color: orange;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
svg {
|
|
29
|
+
margin-right: 3px;
|
|
30
|
+
font-size: 12px;
|
|
31
|
+
color: gray;
|
|
32
|
+
}
|
|
33
|
+
span {
|
|
34
|
+
color: gray;
|
|
35
|
+
cursor: default;
|
|
36
|
+
}
|
|
37
|
+
`;
|
|
38
|
+
const TMCounterBar = ({ items }) => {
|
|
39
|
+
return (_jsx(StyledList, { children: parseInt(items[0].text) !== -1 && items.map((item, index) => {
|
|
40
|
+
return _jsx(TMTooltip, { content: item.tooltip, children: _jsxs(StyledListItem, { children: [" ", item.icon, _jsx("span", { children: item.text })] }) }, index);
|
|
41
|
+
}) }));
|
|
42
|
+
};
|
|
43
|
+
export default TMCounterBar;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare enum CounterItemKey {
|
|
2
|
+
allItems = "allItems",
|
|
3
|
+
visibleItems = "visibleItems",
|
|
4
|
+
selectedItems = "selectedItems"
|
|
5
|
+
}
|
|
6
|
+
export interface ITMCounterItemData {
|
|
7
|
+
key?: string;
|
|
8
|
+
show: boolean;
|
|
9
|
+
caption?: string;
|
|
10
|
+
icon?: JSX.Element;
|
|
11
|
+
value?: number | string;
|
|
12
|
+
order?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ITMCounterContainerProps {
|
|
15
|
+
show?: boolean;
|
|
16
|
+
items?: Map<string, ITMCounterItemData>;
|
|
17
|
+
bgColorContainer?: string;
|
|
18
|
+
bgColorItem?: string;
|
|
19
|
+
textColorItem?: string;
|
|
20
|
+
hoverColorItem?: string;
|
|
21
|
+
}
|
|
22
|
+
declare const TMCounterContainer: (props: ITMCounterContainerProps) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
23
|
+
export default TMCounterContainer;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styled from "styled-components";
|
|
3
|
+
import TMTooltip from './TMTooltip';
|
|
4
|
+
/* Styled container component that holds all counter items */
|
|
5
|
+
const Container = styled.div `
|
|
6
|
+
background: ${({ bgColor }) => bgColor || 'linear-gradient(to right, #f8f9fa, #e9ecef)'};
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
width: 100%;
|
|
10
|
+
padding: 4px 8px;
|
|
11
|
+
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.1);
|
|
12
|
+
gap: 8px;
|
|
13
|
+
`;
|
|
14
|
+
/* Styled counter item component with customizable styles */
|
|
15
|
+
const Counter = styled.div `
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
border-right: 1px solid rgba(211, 211, 211, 0.5);
|
|
19
|
+
padding: 4px 10px;
|
|
20
|
+
gap: 8px;
|
|
21
|
+
transition: all 0.3s ease-in-out;
|
|
22
|
+
background: ${({ color }) => color || 'rgba(255, 255, 255, 0.6)'};
|
|
23
|
+
|
|
24
|
+
&:last-child {
|
|
25
|
+
border-right: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
svg {
|
|
29
|
+
color: ${({ textColor }) => textColor || '#495057'};
|
|
30
|
+
transition: color 0.3s ease-in-out;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
span {
|
|
34
|
+
color: ${({ textColor }) => textColor || '#495057'};
|
|
35
|
+
transition: color 0.3s ease-in-out;
|
|
36
|
+
}
|
|
37
|
+
`;
|
|
38
|
+
/* Enum for possible counter item keys */
|
|
39
|
+
export var CounterItemKey;
|
|
40
|
+
(function (CounterItemKey) {
|
|
41
|
+
/* Key for all item count */
|
|
42
|
+
CounterItemKey["allItems"] = "allItems";
|
|
43
|
+
/* Key for visible item count */
|
|
44
|
+
CounterItemKey["visibleItems"] = "visibleItems";
|
|
45
|
+
/* Key for selected item count */
|
|
46
|
+
CounterItemKey["selectedItems"] = "selectedItems";
|
|
47
|
+
})(CounterItemKey || (CounterItemKey = {}));
|
|
48
|
+
;
|
|
49
|
+
;
|
|
50
|
+
const TMCounterContainer = (props) => {
|
|
51
|
+
const { items, bgColorContainer, hoverColorItem, bgColorItem, textColorItem } = props;
|
|
52
|
+
return (items && _jsx(Container, { bgColor: bgColorContainer, children: [...items.values()].map((item) => {
|
|
53
|
+
if (!item.show)
|
|
54
|
+
return null;
|
|
55
|
+
return _jsx(TMTooltip, { content: item.caption ?? '', children: _jsxs(Counter, { bgColor: bgColorContainer, color: bgColorItem, hoverColor: hoverColorItem, textColor: textColorItem, children: [item.icon ?? null, _jsx("span", { children: item.value?.toString() ?? '' })] }) }, item.key ?? '');
|
|
56
|
+
}) }));
|
|
57
|
+
};
|
|
58
|
+
export default TMCounterContainer;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IColumnProps, IDataGridOptions, IMasterDetailProps } from 'devextreme-react/data-grid';
|
|
3
|
+
import dxDataGrid from 'devextreme/ui/data_grid';
|
|
4
|
+
import { ITMCounterContainerProps } from './TMCounterContainer';
|
|
5
|
+
export interface TMDataGridContextMenuItem {
|
|
6
|
+
text: string;
|
|
7
|
+
icon: string;
|
|
8
|
+
onClick?: (param?: any) => void;
|
|
9
|
+
operationType?: 'singleRow' | 'multiRow';
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
visible?: boolean;
|
|
12
|
+
id?: string;
|
|
13
|
+
items?: Array<TMDataGridContextMenuItem>;
|
|
14
|
+
beginGroup?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare enum TMDataGridPageSize {
|
|
17
|
+
Small = 30,
|
|
18
|
+
Medium = 50,
|
|
19
|
+
Large = 100
|
|
20
|
+
}
|
|
21
|
+
export interface TMDataGridProps<T> extends IDataGridOptions {
|
|
22
|
+
/** An ID of grid */
|
|
23
|
+
id?: string;
|
|
24
|
+
/** An array of grid columns */
|
|
25
|
+
dataColumns: Array<IColumnProps>;
|
|
26
|
+
/** Specifies initially or currently focused grid row's key */
|
|
27
|
+
focusedRowKey: number | undefined;
|
|
28
|
+
/** Allows you to select rows or determine which rows are selected. Applies only if selection.deferred is false */
|
|
29
|
+
selectedRowKeys?: Array<number>;
|
|
30
|
+
/** Defines the number of rows per page in the data grid (Small = 30 rows, Medium = 50 rows, Large = 100 rows) */
|
|
31
|
+
pageSize?: TMDataGridPageSize;
|
|
32
|
+
/** Configures the search panel position in the toolbar */
|
|
33
|
+
searchPanelToolbarPosition?: 'before' | 'default';
|
|
34
|
+
/** if visible, set focus on SearchPanel */
|
|
35
|
+
searchPanelFocusStarting?: boolean;
|
|
36
|
+
/** Show the header filter */
|
|
37
|
+
showHeaderFilter?: boolean;
|
|
38
|
+
/** Show the filter panel */
|
|
39
|
+
showFilterPanel?: boolean;
|
|
40
|
+
/** Show the load panel */
|
|
41
|
+
showLoadPanel?: boolean;
|
|
42
|
+
/** Show the column chooser */
|
|
43
|
+
showColumnChooser?: boolean;
|
|
44
|
+
/** Show the search panel */
|
|
45
|
+
showSearchPanel?: boolean;
|
|
46
|
+
/** Show the group panel */
|
|
47
|
+
showGroupPanel?: boolean;
|
|
48
|
+
/** Counter configuration */
|
|
49
|
+
counterConfig?: ITMCounterContainerProps;
|
|
50
|
+
/** Master Detail */
|
|
51
|
+
masterDetail?: IMasterDetailProps;
|
|
52
|
+
/** On Has Filters Change */
|
|
53
|
+
onHasFiltersChange?: (hasFilters: boolean) => void;
|
|
54
|
+
}
|
|
55
|
+
declare const TMDataGrid: React.ForwardRefExoticComponent<TMDataGridProps<unknown> & React.RefAttributes<dxDataGrid<any, any>>>;
|
|
56
|
+
export default TMDataGrid;
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
3
|
+
import DataGrid, { Column, HeaderFilter, Selection, Scrolling, LoadPanel, SearchPanel, Pager, Sorting, Paging, FilterPanel, ColumnChooser, Grouping, GroupPanel, Summary, Editing, FilterRow, StateStoring, RowDragging, MasterDetail } from 'devextreme-react/data-grid';
|
|
4
|
+
import DataSource from 'devextreme/data/data_source';
|
|
5
|
+
import { IconAll, IconSelected, IconVisible, SDKUI_Globals, SDKUI_Localizator } from '../../helper';
|
|
6
|
+
import TMCounterContainer, { CounterItemKey } from './TMCounterContainer';
|
|
7
|
+
;
|
|
8
|
+
export var TMDataGridPageSize;
|
|
9
|
+
(function (TMDataGridPageSize) {
|
|
10
|
+
TMDataGridPageSize[TMDataGridPageSize["Small"] = 30] = "Small";
|
|
11
|
+
TMDataGridPageSize[TMDataGridPageSize["Medium"] = 50] = "Medium";
|
|
12
|
+
TMDataGridPageSize[TMDataGridPageSize["Large"] = 100] = "Large";
|
|
13
|
+
})(TMDataGridPageSize || (TMDataGridPageSize = {}));
|
|
14
|
+
const TMDataGrid = React.forwardRef((props, ref) => {
|
|
15
|
+
const {
|
|
16
|
+
// main properties
|
|
17
|
+
keyExpr = 'id', dataSource, focusedRowEnabled = true, hoverStateEnabled = true, focusedRowKey, selectedRowKeys = [],
|
|
18
|
+
// custom options
|
|
19
|
+
dataColumns = [], pageSize = TMDataGridPageSize.Large, showHeaderFilter = true, showFilterPanel = true, showLoadPanel = true, showSearchPanel = true, searchPanelToolbarPosition = 'before', searchPanelFocusStarting = false, counterConfig = { show: false, items: new Map() }, onHasFiltersChange,
|
|
20
|
+
// events and callbacks
|
|
21
|
+
onSelectionChanged, onFocusedRowChanged, onRowDblClick, onRowClick, onCellClick, onCellDblClick, onOptionChanged, onContentReady, onContextMenuPreparing, onInitialized, onEditorPreparing, onCellPrepared, onRowPrepared, onRowUpdating, onRowExpanded, onRowCollapsed, onRowUpdated, onSaved, onEditCanceled, onEditingStart, onEditingChange, customizeColumns, onKeyDown, scrolling = { mode: 'standard', useNative: SDKUI_Globals.userSettings?.themeSettings.gridSettings.useNativeScrollbar === 1 }, paging = { enabled: true, pageSize: pageSize }, pager = { visible: true, showInfo: true, showNavigationButtons: true }, selection = { mode: 'multiple', showCheckBoxesMode: "always", selectAllMode: "allPages" }, sorting, summary, stateStoring, columnChooser, grouping, groupPanel, filterRow, headerFilter, editing, rowDragging, masterDetail,
|
|
22
|
+
// other properties
|
|
23
|
+
disabled = false, autoNavigateToFocusedRow = true, columnResizingMode = 'widget', columnHidingEnabled = true, columnAutoWidth = true, allowColumnResizing = true, allowColumnReordering = true, showBorders = true, showRowLines = SDKUI_Globals.userSettings?.themeSettings.gridSettings.showRowLines === 1, showColumnLines = SDKUI_Globals.userSettings?.themeSettings.gridSettings.showColumnLines === 1, showColumnHeaders = true, rowAlternationEnabled = false, wordWrapEnabled = false, noDataText,
|
|
24
|
+
// styles
|
|
25
|
+
id, width = '100%', height = '100%', } = props;
|
|
26
|
+
const internalRef = React.useRef(null);
|
|
27
|
+
useImperativeHandle(ref, () => internalRef.current);
|
|
28
|
+
const [counterValues, setCounterValues] = useState(new Map());
|
|
29
|
+
const [totalRecordCount, setTotalRecordCount] = useState(0);
|
|
30
|
+
const [visibleItemsCount, setVisibleItemsCount] = useState(0);
|
|
31
|
+
const [hasFilters, setHasFilters] = useState(false);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
const count = getRecordCount(dataSource);
|
|
34
|
+
setTotalRecordCount(count);
|
|
35
|
+
}, [dataSource]);
|
|
36
|
+
// Creating a ref to store the timestamp of the last selection change
|
|
37
|
+
const lastSelectionChangeTime = useRef(Date.now());
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (counterConfig.show) {
|
|
40
|
+
const defaultCounterItems = new Map([
|
|
41
|
+
[
|
|
42
|
+
CounterItemKey.allItems,
|
|
43
|
+
{ key: CounterItemKey.allItems, show: true, caption: SDKUI_Localizator.All, value: totalRecordCount, icon: _jsx(IconAll, {}), order: -1 }
|
|
44
|
+
],
|
|
45
|
+
[
|
|
46
|
+
CounterItemKey.visibleItems,
|
|
47
|
+
{ key: CounterItemKey.visibleItems, show: true, caption: SDKUI_Localizator.VisibleItems, value: visibleItemsCount, icon: _jsx(IconVisible, {}), order: 0 }
|
|
48
|
+
],
|
|
49
|
+
[
|
|
50
|
+
CounterItemKey.selectedItems,
|
|
51
|
+
{ key: CounterItemKey.selectedItems, show: true, caption: SDKUI_Localizator.SelectedItems, value: selectedRowKeys.length, icon: _jsx(IconSelected, {}), order: 1 }
|
|
52
|
+
]
|
|
53
|
+
]);
|
|
54
|
+
const mergedCounterItems = new Map(defaultCounterItems);
|
|
55
|
+
counterConfig.items?.forEach((value, key) => { mergedCounterItems.set(key.toString(), value); });
|
|
56
|
+
// Convert map to array and sort by order, then caption alphabetically
|
|
57
|
+
const sortedCounterItems = new Map([...mergedCounterItems.entries()]
|
|
58
|
+
.sort((a, b) => {
|
|
59
|
+
const aValue = a[1]; // Extract value
|
|
60
|
+
const bValue = b[1];
|
|
61
|
+
if ((aValue.order ?? 0) === (bValue.order ?? 0)) {
|
|
62
|
+
return (aValue.caption ?? '').localeCompare(bValue.caption ?? '');
|
|
63
|
+
}
|
|
64
|
+
return (aValue.order ?? 0) - (bValue.order ?? 0);
|
|
65
|
+
}));
|
|
66
|
+
setCounterValues(sortedCounterItems);
|
|
67
|
+
}
|
|
68
|
+
}, [counterConfig, visibleItemsCount, selectedRowKeys]);
|
|
69
|
+
// Handle selection changes and invoke callback if provided
|
|
70
|
+
const onSelectionChangedCallback = useCallback((e) => {
|
|
71
|
+
lastSelectionChangeTime.current = Date.now(); // Store current time of selection change
|
|
72
|
+
if (onSelectionChanged)
|
|
73
|
+
onSelectionChanged(e);
|
|
74
|
+
}, [onSelectionChanged]);
|
|
75
|
+
// Handle row double-click event
|
|
76
|
+
const onRowDblClickCallback = useCallback((e) => {
|
|
77
|
+
if (selection.mode === 'multiple' && selection.showCheckBoxesMode !== 'onClick' && Date.now() - lastSelectionChangeTime.current < 300) {
|
|
78
|
+
// Skip the double-click if selection has changed recently
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (onRowDblClick)
|
|
82
|
+
onRowDblClick(e);
|
|
83
|
+
}, [onRowDblClick]);
|
|
84
|
+
// Update context menu items based on operation type (single row or multi row)
|
|
85
|
+
const updateContextMenuItems = useCallback((items, rowID) => {
|
|
86
|
+
return items.map(item => {
|
|
87
|
+
// Determine if item is explicitly disabled; default to `false` if not provided
|
|
88
|
+
let disabled = item.disabled ?? false;
|
|
89
|
+
// Variable to determine if the item should be disabled based on row selection
|
|
90
|
+
let disabledCalculation = false;
|
|
91
|
+
// Get the active row ID, prioritizing `focusedRowKey` if `focusedRowEnabled` is true
|
|
92
|
+
const id = focusedRowEnabled ? focusedRowKey : rowID;
|
|
93
|
+
// Disable items based on their operation type and selection state
|
|
94
|
+
if (item.operationType === 'singleRow') {
|
|
95
|
+
// A single-row operation requires exactly one row to be selected
|
|
96
|
+
disabledCalculation = selectedRowKeys.length > 1 || id === undefined;
|
|
97
|
+
}
|
|
98
|
+
if (item.operationType === 'multiRow') {
|
|
99
|
+
// A multi-row operation requires at least one selected row
|
|
100
|
+
disabledCalculation = selectedRowKeys.length === 0 && id === undefined;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
...item,
|
|
104
|
+
disabled: disabled || disabledCalculation, // An item is disabled if it's explicitly set to `true` or if the calculation above determines so
|
|
105
|
+
// Define the behavior when the menu item is clicked
|
|
106
|
+
onClick: () => {
|
|
107
|
+
// If there is no click handler defined, exit early
|
|
108
|
+
if (!item.onClick)
|
|
109
|
+
return;
|
|
110
|
+
if (item.operationType === 'singleRow' && id !== undefined) {
|
|
111
|
+
// For single-row operations, call onItemClick with the row ID
|
|
112
|
+
item.onClick(id);
|
|
113
|
+
}
|
|
114
|
+
else if (item.operationType === 'multiRow' && id !== undefined) {
|
|
115
|
+
// For multi-row operations, determine the appropriate argument
|
|
116
|
+
if (selectedRowKeys.length > 0) {
|
|
117
|
+
// If multiple rows are selected, pass all selected row IDs
|
|
118
|
+
item.onClick(selectedRowKeys);
|
|
119
|
+
}
|
|
120
|
+
else if (id !== undefined) {
|
|
121
|
+
// If no rows are selected but `id` exists, pass it as an array
|
|
122
|
+
item.onClick([id]);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// For general operations without a specific row selection
|
|
127
|
+
item.onClick();
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
// Recursively update nested menu items, if present
|
|
131
|
+
items: item.items ? updateContextMenuItems(item.items, id) : undefined,
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
}, [focusedRowEnabled, focusedRowKey, selectedRowKeys]);
|
|
135
|
+
// Handle context menu preparation
|
|
136
|
+
const onContextMenuPreparingCallback = useCallback((e) => {
|
|
137
|
+
if (e === undefined)
|
|
138
|
+
return;
|
|
139
|
+
if (onContextMenuPreparing)
|
|
140
|
+
onContextMenuPreparing(e);
|
|
141
|
+
if (e.target === 'content') {
|
|
142
|
+
e.items = e.items || [];
|
|
143
|
+
if (e.items.length > 0) {
|
|
144
|
+
const rowId = e.row?.key;
|
|
145
|
+
const updatedContextMenuItems = updateContextMenuItems(e.items, rowId);
|
|
146
|
+
e.items = [...updatedContextMenuItems];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}, [updateContextMenuItems, onContextMenuPreparing]);
|
|
150
|
+
// Handle toolbar preparation, especially for the search panel
|
|
151
|
+
const onToolbarPreparingCallback = useCallback((e) => {
|
|
152
|
+
if (e === undefined || e.toolbarOptions === undefined || e.toolbarOptions.items === undefined)
|
|
153
|
+
return;
|
|
154
|
+
if (showSearchPanel && searchPanelToolbarPosition === 'before') {
|
|
155
|
+
e.toolbarOptions.items.forEach((item) => {
|
|
156
|
+
if (item.name === "searchPanel") {
|
|
157
|
+
item.location = "before";
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}, [showSearchPanel, searchPanelToolbarPosition]);
|
|
162
|
+
// Memoized callback that runs when the DataGrid content is ready
|
|
163
|
+
const onContentReadyCallback = useCallback((e) => {
|
|
164
|
+
// If event is undefined, exit early (safety check)
|
|
165
|
+
if (e === undefined)
|
|
166
|
+
return;
|
|
167
|
+
// Call the external onContentReady callback if it was provided
|
|
168
|
+
onContentReady?.(e);
|
|
169
|
+
// If ref to the DataGrid is not set yet, exit early
|
|
170
|
+
if (!internalRef.current)
|
|
171
|
+
return;
|
|
172
|
+
// Update state with the current number of visible rows in the DataGrid
|
|
173
|
+
setVisibleItemsCount(internalRef.current.instance()?.getVisibleRows()?.length ?? 0);
|
|
174
|
+
// Focusing SearchPanel
|
|
175
|
+
if (showSearchPanel && searchPanelFocusStarting) {
|
|
176
|
+
// Use a small delay to ensure the DOM is fully rendered before trying to focus
|
|
177
|
+
// This can prevent issues with the focus not being set correctly
|
|
178
|
+
setTimeout(() => {
|
|
179
|
+
const searchInput = internalRef.current?.instance().element().querySelector('.dx-datagrid-search-panel input');
|
|
180
|
+
if (searchInput) {
|
|
181
|
+
searchInput.focus();
|
|
182
|
+
}
|
|
183
|
+
}, 100);
|
|
184
|
+
}
|
|
185
|
+
}, [onContentReady]);
|
|
186
|
+
const onOptionChangedCallback = useCallback((e) => {
|
|
187
|
+
// Assicurati che component esista
|
|
188
|
+
const grid = e.component;
|
|
189
|
+
if (!grid)
|
|
190
|
+
return;
|
|
191
|
+
// Controlla se il cambiamento riguarda i filtri
|
|
192
|
+
const isFilterChange = e.fullName === 'filterValue' || (e.fullName?.startsWith('columns') && e.fullName.endsWith('filterValues'));
|
|
193
|
+
if (isFilterChange) {
|
|
194
|
+
let newHasFilters = false;
|
|
195
|
+
// Filtro globale
|
|
196
|
+
const filterValue = grid.option('filterValue');
|
|
197
|
+
if (Array.isArray(filterValue)) {
|
|
198
|
+
newHasFilters = filterValue.length > 0;
|
|
199
|
+
}
|
|
200
|
+
else if (filterValue) {
|
|
201
|
+
newHasFilters = true;
|
|
202
|
+
}
|
|
203
|
+
// Filtro per colonne
|
|
204
|
+
const columns = grid.option('columns') || [];
|
|
205
|
+
const columnFilters = columns.some((col) => {
|
|
206
|
+
if (Array.isArray(col.filterValues))
|
|
207
|
+
return col.filterValues.length > 0;
|
|
208
|
+
return !!col.filterValue;
|
|
209
|
+
});
|
|
210
|
+
if (columnFilters)
|
|
211
|
+
newHasFilters = true;
|
|
212
|
+
setHasFilters(newHasFilters);
|
|
213
|
+
onHasFiltersChange?.(newHasFilters);
|
|
214
|
+
}
|
|
215
|
+
// Propaga l'evento originale
|
|
216
|
+
onOptionChanged?.(e);
|
|
217
|
+
}, [onOptionChanged, onHasFiltersChange]);
|
|
218
|
+
return _jsxs("div", { style: { width: "100%", height: "100%" }, children: [_jsx("div", { style: { width: "100%", height: counterConfig.show ? "calc(100% - 25px)" : "100%" }, children: _jsxs(DataGrid, { ref: internalRef, id: id, className: `tm-datagrid ${hasFilters ? 'has-filters' : ''}`,
|
|
219
|
+
// main properties
|
|
220
|
+
keyExpr: keyExpr, dataSource: dataSource, selectedRowKeys: selectedRowKeys, focusedRowEnabled: focusedRowEnabled, hoverStateEnabled: hoverStateEnabled,
|
|
221
|
+
// events and callbacks
|
|
222
|
+
onSelectionChanged: onSelectionChangedCallback, onRowDblClick: onRowDblClickCallback, onRowPrepared: onRowPrepared, onContextMenuPreparing: onContextMenuPreparingCallback, onToolbarPreparing: onToolbarPreparingCallback, onFocusedRowChanged: onFocusedRowChanged, onRowClick: onRowClick, onCellClick: onCellClick, onCellDblClick: onCellDblClick, onOptionChanged: onOptionChangedCallback, onContentReady: onContentReadyCallback, onInitialized: onInitialized, customizeColumns: customizeColumns, onEditorPreparing: onEditorPreparing, onCellPrepared: onCellPrepared, onRowUpdating: onRowUpdating, onRowExpanded: onRowExpanded, onRowCollapsed: onRowCollapsed, onRowUpdated: onRowUpdated, onSaved: onSaved, onEditCanceled: onEditCanceled, onEditingStart: onEditingStart, onEditingChange: onEditingChange, onKeyDown: onKeyDown,
|
|
223
|
+
// other properties
|
|
224
|
+
disabled: disabled, autoNavigateToFocusedRow: autoNavigateToFocusedRow, focusedRowKey: focusedRowKey, columnHidingEnabled: columnHidingEnabled, columnResizingMode: columnResizingMode, columnAutoWidth: columnAutoWidth, allowColumnResizing: allowColumnResizing, allowColumnReordering: allowColumnReordering, showBorders: showBorders, showRowLines: showRowLines, showColumnLines: showColumnLines, showColumnHeaders: showColumnHeaders, rowAlternationEnabled: rowAlternationEnabled, wordWrapEnabled: wordWrapEnabled, noDataText: noDataText,
|
|
225
|
+
// styles
|
|
226
|
+
width: width, height: height, style: { userSelect: 'none' }, children: [dataColumns.map((column, index) => (_jsx(Column, { ...column }, column.caption + index.toString()))), sorting && _jsx(Sorting, { ...sorting }), selection && _jsx(Selection, { ...selection }), scrolling && _jsx(Scrolling, { ...scrolling }), summary && _jsx(Summary, { ...summary }), showHeaderFilter && _jsx(HeaderFilter, { visible: true, ...headerFilter }), rowDragging && _jsx(RowDragging, { ...rowDragging }), filterRow && _jsx(FilterRow, { ...filterRow }), showFilterPanel && _jsx(FilterPanel, { visible: true }), columnChooser && _jsx(ColumnChooser, { ...columnChooser }), stateStoring && _jsx(StateStoring, { ...stateStoring }), groupPanel && _jsx(GroupPanel, { ...groupPanel }), _jsx(Grouping, { contextMenuEnabled: true, ...grouping }), _jsx(LoadPanel, { enabled: showLoadPanel }), _jsx(SearchPanel, { visible: showSearchPanel, searchVisibleColumnsOnly: true, highlightSearchText: true }), editing && _jsx(Editing, { ...editing }), paging && _jsx(Paging, { ...paging }), pager && _jsx(Pager, { ...pager, visible: totalRecordCount > pageSize }), masterDetail && _jsx(MasterDetail, { ...masterDetail })] }) }), counterConfig.show && _jsx("div", { style: { width: "100%", height: "25px", display: "flex", alignItems: "center", gap: "15px", backgroundColor: "#e0e0e0" }, children: _jsx(TMCounterContainer, { items: counterValues, bgColorContainer: counterConfig.bgColorContainer, bgColorItem: counterConfig.bgColorItem, hoverColorItem: counterConfig.hoverColorItem, textColorItem: counterConfig.textColorItem }) })] });
|
|
227
|
+
});
|
|
228
|
+
export default TMDataGrid;
|
|
229
|
+
const getRecordCount = (dataSource) => {
|
|
230
|
+
if (Array.isArray(dataSource)) {
|
|
231
|
+
return dataSource.length; // For array
|
|
232
|
+
}
|
|
233
|
+
if (dataSource instanceof DataSource) {
|
|
234
|
+
return dataSource.totalCount(); // For DataSource instance
|
|
235
|
+
}
|
|
236
|
+
return 0; // Default case when neither condition is met
|
|
237
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IColumnProps } from 'devextreme-react/cjs/data-grid';
|
|
2
|
+
import { SearchResultDescriptor } from '@topconsultnpm/sdk-ts';
|
|
3
|
+
export type FormatOption = {
|
|
4
|
+
value: 'csv' | 'xlsx' | 'xls' | 'txt';
|
|
5
|
+
display: string;
|
|
6
|
+
};
|
|
7
|
+
interface TMDataGridExportFormProps {
|
|
8
|
+
searchResult: SearchResultDescriptor;
|
|
9
|
+
dataSource: Array<any> | undefined;
|
|
10
|
+
dataColumns: Array<IColumnProps>;
|
|
11
|
+
selectedRowKeys: Array<number>;
|
|
12
|
+
onCloseExportForm: () => void;
|
|
13
|
+
}
|
|
14
|
+
declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export default TMDataGridExportForm;
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Workbook } from 'exceljs';
|
|
4
|
+
import { buildValueToLabelMapFromDataColumns, getExceptionMessage, SDKUI_Localizator } from '../../helper';
|
|
5
|
+
import TMCheckBox from '../editors/TMCheckBox';
|
|
6
|
+
import TMButton from './TMButton';
|
|
7
|
+
import TMModal from './TMModal';
|
|
8
|
+
import { TMExceptionBoxManager } from './TMPopUp';
|
|
9
|
+
import { ResultTypes } from '@topconsultnpm/sdk-ts';
|
|
10
|
+
import TMSpinner from './TMSpinner';
|
|
11
|
+
import { TMResultManager } from '../forms/TMResultDialog';
|
|
12
|
+
import TMDropDown from '../editors/TMDropDown';
|
|
13
|
+
const formatDataSource = [
|
|
14
|
+
{ value: 'csv', display: 'CSV' },
|
|
15
|
+
{ value: 'xlsx', display: 'XLSX' },
|
|
16
|
+
];
|
|
17
|
+
const TMDataGridExportForm = (props) => {
|
|
18
|
+
const { searchResult, dataSource, dataColumns, selectedRowKeys, onCloseExportForm } = props;
|
|
19
|
+
// State to track the selected export format (default: 'csv')
|
|
20
|
+
const [formatSelected, setFormatSelected] = useState('csv');
|
|
21
|
+
// Boolean state to indicate whether to export only the selected items
|
|
22
|
+
const [exportSelectedOnly, setExportSelectedOnly] = useState(selectedRowKeys.length > 0 ? true : false);
|
|
23
|
+
// Boolean state to indicate whether to export the "description" fields in data lists
|
|
24
|
+
const [exportDescriptionsForDataLists, setExportDescriptionsForDataLists] = useState(true);
|
|
25
|
+
// Boolean state to indicate whether to hide the selection and format during export
|
|
26
|
+
const [exportSelectedFormatColumns, setExportSelectedFormatColumns] = useState(false);
|
|
27
|
+
const onStatusValueChange = (e) => {
|
|
28
|
+
if (!e?.target?.value)
|
|
29
|
+
return;
|
|
30
|
+
setFormatSelected(e.target.value);
|
|
31
|
+
};
|
|
32
|
+
// Function to trigger download of a file represented by a Blob with the given file extension
|
|
33
|
+
const downloadFile = (blob, extension) => {
|
|
34
|
+
// Helper function to ensure numbers (e.g., 4 -> '04') are two digits
|
|
35
|
+
const formatNumber = (n) => n.toString().padStart(2, '0');
|
|
36
|
+
// Helper function to generate a timestamp string in the format 'YYYY-MM-DD_HH-MM-SS'
|
|
37
|
+
const getTimestamp = () => {
|
|
38
|
+
const now = new Date();
|
|
39
|
+
const date = `${now.getFullYear()}-${formatNumber(now.getMonth() + 1)}-${formatNumber(now.getDate())}`;
|
|
40
|
+
const time = `${formatNumber(now.getHours())}-${formatNumber(now.getMinutes())}-${formatNumber(now.getSeconds())}`;
|
|
41
|
+
return `${date}_${time}`;
|
|
42
|
+
};
|
|
43
|
+
// Create a temporary URL representing the file Blob
|
|
44
|
+
const url = URL.createObjectURL(blob);
|
|
45
|
+
// Create an anchor element to trigger the download
|
|
46
|
+
const a = document.createElement('a');
|
|
47
|
+
a.href = url;
|
|
48
|
+
// Set the filename using a localized prefix and the generated timestamp
|
|
49
|
+
a.download = `${SDKUI_Localizator.SearchResult}_${getTimestamp()}.${extension}`;
|
|
50
|
+
// Append the anchor to the document, click it to start download, then remove it
|
|
51
|
+
document.body.appendChild(a);
|
|
52
|
+
a.click();
|
|
53
|
+
document.body.removeChild(a);
|
|
54
|
+
// Revoke the created URL to release memory
|
|
55
|
+
URL.revokeObjectURL(url);
|
|
56
|
+
};
|
|
57
|
+
const handleExport = async () => {
|
|
58
|
+
// Exit early if dataSource or dataColumns are not defined to avoid errors
|
|
59
|
+
if (!dataSource || !dataColumns)
|
|
60
|
+
return;
|
|
61
|
+
let result = [];
|
|
62
|
+
try {
|
|
63
|
+
TMSpinner.show({ description: SDKUI_Localizator.Loading });
|
|
64
|
+
// Retrieve columns from the search result, or use an empty array if not available
|
|
65
|
+
const columns = searchResult?.dtdResult?.columns ?? [];
|
|
66
|
+
// If exportDescriptionsForDataLists is true, build a map of values to labels for the columns; otherwise use an empty Map
|
|
67
|
+
const { valueToNameMap, captions } = exportDescriptionsForDataLists ? await buildValueToLabelMapFromDataColumns(columns) : { valueToNameMap: new Map(), captions: new Set() };
|
|
68
|
+
// Create a Set from selectedRowKeys for efficient lookup
|
|
69
|
+
const selectedSet = new Set(selectedRowKeys);
|
|
70
|
+
// If exporting only selected rows, filter the dataSource accordingly; otherwise use the full dataSource
|
|
71
|
+
const rowsToExport = exportSelectedOnly ? dataSource.filter((item) => selectedSet.has(item.rowIndex)) : dataSource;
|
|
72
|
+
// Filter columns to only those that are visible; optionally hide 'object' data types based on the `hideSelection` flag
|
|
73
|
+
let visibleColumns = dataColumns.filter(col => {
|
|
74
|
+
if (!exportSelectedFormatColumns) {
|
|
75
|
+
return col.visible !== false && col.dataField !== "FILEEXT";
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return col.visible !== false;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
// Function to get the value for a column and its value in a row
|
|
82
|
+
const getValue = (col, value) => {
|
|
83
|
+
// Replace raw value with corresponding label from the map if applicable
|
|
84
|
+
let result = value;
|
|
85
|
+
if (exportDescriptionsForDataLists && col.caption && captions.has(col.caption.toString())) {
|
|
86
|
+
result = valueToNameMap.get(value) ?? value;
|
|
87
|
+
}
|
|
88
|
+
// If the column is a datetime type, attempt to format it as a locale date string
|
|
89
|
+
if (col.dataType === 'datetime' && result) {
|
|
90
|
+
const parsedDate = new Date(result);
|
|
91
|
+
if (!isNaN(parsedDate.getTime())) {
|
|
92
|
+
result = parsedDate.toLocaleDateString();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Return the cleaned string value, stripping double quotes to avoid CSV formatting issues
|
|
96
|
+
return (result ?? '').toString().replace(/"/g, '');
|
|
97
|
+
};
|
|
98
|
+
switch (formatSelected) {
|
|
99
|
+
case 'csv': {
|
|
100
|
+
const getHeaderName = (col) => col.caption ?? col.dataField;
|
|
101
|
+
const headers = !exportSelectedFormatColumns ? visibleColumns.map(getHeaderName) : [SDKUI_Localizator.SelectedSingular, ...visibleColumns.map(getHeaderName)];
|
|
102
|
+
const csvRows = [];
|
|
103
|
+
csvRows.push(headers.join(';'));
|
|
104
|
+
rowsToExport.forEach((item, idx) => {
|
|
105
|
+
const originalIndex = exportSelectedOnly ? selectedRowKeys[idx] : dataSource.indexOf(item);
|
|
106
|
+
const rowValues = [];
|
|
107
|
+
if (exportSelectedFormatColumns) {
|
|
108
|
+
const status = selectedSet.has(originalIndex) ? SDKUI_Localizator.SelectedSingular : SDKUI_Localizator.Deselected;
|
|
109
|
+
rowValues.push(status || '');
|
|
110
|
+
}
|
|
111
|
+
visibleColumns.forEach(col => {
|
|
112
|
+
if (col.dataField) {
|
|
113
|
+
rowValues.push(getValue(col, item[col.dataField]));
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
csvRows.push(rowValues.join(';'));
|
|
117
|
+
});
|
|
118
|
+
const blob = new Blob([csvRows.join('\r\n')], { type: 'text/csv;charset=utf-8;' });
|
|
119
|
+
downloadFile(blob, formatSelected);
|
|
120
|
+
result.push({ rowIndex: 1, id1: 1, id2: 0, description: SDKUI_Localizator.OperationSuccess, resultType: ResultTypes.SUCCESS });
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case 'xlsx': {
|
|
124
|
+
// Create a new Excel workbook and add a worksheet with localized name
|
|
125
|
+
const workbook = new Workbook();
|
|
126
|
+
const worksheet = workbook.addWorksheet(SDKUI_Localizator.SearchResult);
|
|
127
|
+
// Map visible columns to worksheet column definitions
|
|
128
|
+
const baseColumns = visibleColumns.map(col => ({ header: col.caption !== undefined ? col.caption : col.dataField, key: col.dataField, width: 10, style: { numFmt: '@' } }));
|
|
129
|
+
// Add a selection status column at the beginning if hideSelection is false
|
|
130
|
+
const headers = !exportSelectedFormatColumns ? baseColumns : [{ header: SDKUI_Localizator.SelectedSingular, key: '_selected', width: 10, style: { numFmt: '@' } }, ...baseColumns];
|
|
131
|
+
worksheet.columns = headers;
|
|
132
|
+
// Style the header row cells: font, fill color, and border
|
|
133
|
+
worksheet.getRow(1).eachCell({ includeEmpty: true }, cell => {
|
|
134
|
+
cell.font = { name: 'Segoe UI', size: 9 };
|
|
135
|
+
cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'C0C0C0' } };
|
|
136
|
+
cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } };
|
|
137
|
+
});
|
|
138
|
+
// Add rows to worksheet
|
|
139
|
+
rowsToExport.forEach((item, idx) => {
|
|
140
|
+
// Get original index of the item in dataSource
|
|
141
|
+
const originalIndex = exportSelectedOnly ? selectedRowKeys[idx] : dataSource.indexOf(item);
|
|
142
|
+
const rowObj = {};
|
|
143
|
+
// Add selection status if hideSelection is false
|
|
144
|
+
if (exportSelectedFormatColumns) {
|
|
145
|
+
rowObj._selected = selectedSet.has(originalIndex) ? SDKUI_Localizator.SelectedSingular : SDKUI_Localizator.Deselected;
|
|
146
|
+
}
|
|
147
|
+
// Add data for each visible column
|
|
148
|
+
visibleColumns.forEach(col => {
|
|
149
|
+
if (col.dataField) {
|
|
150
|
+
rowObj[col.dataField] = getValue(col, item[col.dataField]);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
worksheet.addRow(rowObj);
|
|
154
|
+
});
|
|
155
|
+
// Adjust column widths based on header and cell contents without iterating each cell manually
|
|
156
|
+
worksheet.columns.forEach(col => {
|
|
157
|
+
if (!col || !col.header || !col.key)
|
|
158
|
+
return;
|
|
159
|
+
const headerLength = col.header.toString().length;
|
|
160
|
+
// 'getColumn' accetta solo string | number, col.key è garantito perché controllato sopra
|
|
161
|
+
const maxDataLength = worksheet.getColumn(col.key).values.reduce((max, val) => {
|
|
162
|
+
const strVal = val !== undefined && val !== null ? val.toString() : '';
|
|
163
|
+
const length = strVal.length;
|
|
164
|
+
return length > max ? length : max;
|
|
165
|
+
}, 0);
|
|
166
|
+
col.width = Math.max(headerLength, maxDataLength) + 2;
|
|
167
|
+
});
|
|
168
|
+
// Apply font and border styling to all cells in all rows in a single pass
|
|
169
|
+
worksheet.eachRow((row) => {
|
|
170
|
+
row.eachCell({ includeEmpty: true }, cell => {
|
|
171
|
+
cell.font = { name: 'Segoe UI', size: 9 };
|
|
172
|
+
cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } };
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
// Generate Excel file as a buffer
|
|
176
|
+
const buffer = await workbook.xlsx.writeBuffer();
|
|
177
|
+
// Create a Blob from the buffer for downloading
|
|
178
|
+
const blob = new Blob([buffer], { type: 'application/octet-stream' });
|
|
179
|
+
// Trigger the file download with extension 'xlsx'
|
|
180
|
+
downloadFile(blob, formatSelected);
|
|
181
|
+
result.push({ rowIndex: 1, id1: 1, id2: 0, description: SDKUI_Localizator.OperationSuccess, resultType: ResultTypes.SUCCESS });
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
default:
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
result.push({ rowIndex: 1, id1: 1, id2: 0, resultType: ResultTypes.ERROR, description: getExceptionMessage(error) });
|
|
190
|
+
// Show any exceptions in a custom exception box
|
|
191
|
+
TMExceptionBoxManager.show({ exception: error });
|
|
192
|
+
}
|
|
193
|
+
finally {
|
|
194
|
+
TMSpinner.hide();
|
|
195
|
+
TMResultManager.show(result, SDKUI_Localizator.Export, "ID", undefined);
|
|
196
|
+
onCloseExportForm();
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
return _jsx(TMModal, { title: `${SDKUI_Localizator.Export}`, width: '400px', height: '250px', onClose: onCloseExportForm, children: _jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '16px', padding: '6px 12px', height: '100%', width: '100%' }, children: [_jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '12px' }, children: _jsx(TMDropDown, { label: SDKUI_Localizator.Format, value: formatSelected, dataSource: formatDataSource, onValueChanged: onStatusValueChange }) }), _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '12px' }, children: _jsx(TMCheckBox, { elementStyle: {
|
|
200
|
+
opacity: selectedRowKeys.length === 0 ? 0.5 : 1,
|
|
201
|
+
cursor: selectedRowKeys.length === 0 ? 'not-allowed' : 'pointer'
|
|
202
|
+
}, label: `${SDKUI_Localizator.ExportOnlySelectedDocuments} (${selectedRowKeys.length})`, value: exportSelectedOnly, disabled: selectedRowKeys.length === 0, onValueChanged: () => { setExportSelectedOnly(prev => !prev); } }) }), _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '12px' }, children: _jsx(TMCheckBox, { label: SDKUI_Localizator.ExportDataListsDescriptionField, value: exportDescriptionsForDataLists, onValueChanged: () => { setExportDescriptionsForDataLists(prev => !prev); } }) }), _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '12px' }, children: _jsx(TMCheckBox, { label: SDKUI_Localizator.ExportSelectedColumnsAndFormatLabel, value: exportSelectedFormatColumns, onValueChanged: () => { setExportSelectedFormatColumns(prev => !prev); } }) }), _jsx("div", { style: {
|
|
203
|
+
display: 'flex',
|
|
204
|
+
justifyContent: 'center',
|
|
205
|
+
gap: '10px',
|
|
206
|
+
marginTop: '5px'
|
|
207
|
+
}, children: _jsx(TMButton, { caption: SDKUI_Localizator.Export, btnStyle: 'normal', color: 'success', showTooltip: false, onClick: handleExport }) })] }) });
|
|
208
|
+
};
|
|
209
|
+
export default TMDataGridExportForm;
|