@rio-cloud/uikit-mcp 1.0.0 → 1.1.0
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/README.md +75 -40
- package/dist/doc-metadata.json +1872 -0
- package/dist/docs/components/accentBar.md +582 -0
- package/dist/docs/components/activity.md +330 -0
- package/dist/docs/components/animatedNumber.md +88 -0
- package/dist/docs/components/animatedTextReveal.md +381 -0
- package/dist/docs/components/animations.md +459 -0
- package/dist/docs/components/appHeader.md +737 -0
- package/dist/docs/components/appLayout.md +2016 -0
- package/dist/docs/components/appNavigationBar.md +274 -0
- package/dist/docs/components/areaCharts.md +828 -0
- package/dist/docs/components/aspectRatioPlaceholder.md +106 -0
- package/dist/docs/components/assetTree.md +3223 -0
- package/dist/docs/components/autosuggests.md +1177 -0
- package/dist/docs/components/avatar.md +206 -0
- package/dist/docs/components/banner.md +668 -0
- package/dist/docs/components/barCharts.md +2785 -0
- package/dist/docs/components/barList.md +517 -0
- package/dist/docs/components/basicMap.md +167 -0
- package/dist/docs/components/bottomSheet.md +721 -0
- package/dist/docs/components/button.md +775 -0
- package/dist/docs/components/buttonToolbar.md +134 -0
- package/dist/docs/components/calendarStripe.md +525 -0
- package/dist/docs/components/card.md +86 -0
- package/dist/docs/components/carousel.md +128 -0
- package/dist/docs/components/chartColors.md +716 -0
- package/dist/docs/components/chartsGettingStarted.md +28 -0
- package/dist/docs/components/chat.md +932 -0
- package/dist/docs/components/checkbox.md +996 -0
- package/dist/docs/components/clearableInput.md +806 -0
- package/dist/docs/components/collapse.md +189 -0
- package/dist/docs/components/composedCharts.md +424 -0
- package/dist/docs/components/contentLoader.md +674 -0
- package/dist/docs/components/dataTabs.md +1251 -0
- package/dist/docs/components/datepickers.md +2543 -0
- package/dist/docs/components/dialogs.md +2244 -0
- package/dist/docs/components/divider.md +219 -0
- package/dist/docs/components/dropdowns.md +17550 -0
- package/dist/docs/components/editableContent.md +1127 -0
- package/dist/docs/components/expander.md +970 -0
- package/dist/docs/components/fade.md +836 -0
- package/dist/docs/components/fadeExpander.md +180 -0
- package/dist/docs/components/fadeUp.md +396 -0
- package/dist/docs/components/feedback.md +758 -0
- package/dist/docs/components/filePickers.md +370 -0
- package/dist/docs/components/formLabel.md +251 -0
- package/dist/docs/components/fullscreenMap.md +10 -0
- package/dist/docs/components/groupedItemList.md +1001 -0
- package/dist/docs/components/iconList.md +306 -0
- package/dist/docs/components/imagePreloader.md +167 -0
- package/dist/docs/components/labeledElement.md +115 -0
- package/dist/docs/components/licensePlate.md +412 -0
- package/dist/docs/components/lineCharts.md +2014 -0
- package/dist/docs/components/listMenu.md +392 -0
- package/dist/docs/components/loadMore.md +219 -0
- package/dist/docs/components/mainNavigation.md +129 -0
- package/dist/docs/components/mapCircle.md +93 -0
- package/dist/docs/components/mapCluster.md +337 -0
- package/dist/docs/components/mapContext.md +284 -0
- package/dist/docs/components/mapDraggableMarker.md +150 -0
- package/dist/docs/components/mapGettingStarted.md +39 -0
- package/dist/docs/components/mapInfoBubble.md +135 -0
- package/dist/docs/components/mapLayerGroup.md +94 -0
- package/dist/docs/components/mapMarker.md +1814 -0
- package/dist/docs/components/mapPolygon.md +959 -0
- package/dist/docs/components/mapRoute.md +3816 -0
- package/dist/docs/components/mapRouteGenerator.md +6 -0
- package/dist/docs/components/mapSettings.md +1040 -0
- package/dist/docs/components/mapUtils.md +132 -0
- package/dist/docs/components/multiselects.md +1921 -0
- package/dist/docs/components/noData.md +210 -0
- package/dist/docs/components/notifications.md +314 -0
- package/dist/docs/components/numbercontrol.md +706 -0
- package/dist/docs/components/onboarding.md +297 -0
- package/dist/docs/components/page.md +241 -0
- package/dist/docs/components/pager.md +133 -0
- package/dist/docs/components/pieCharts.md +1284 -0
- package/dist/docs/components/popover.md +222 -0
- package/dist/docs/components/position.md +50 -0
- package/dist/docs/components/radialBarCharts.md +3663 -0
- package/dist/docs/components/radiobutton.md +1271 -0
- package/dist/docs/components/releaseNotes.md +135 -0
- package/dist/docs/components/resizer.md +162 -0
- package/dist/docs/components/responsiveColumnStripe.md +435 -0
- package/dist/docs/components/responsiveVideo.md +71 -0
- package/dist/docs/components/rioglyph.md +331 -0
- package/dist/docs/components/rules.md +965 -0
- package/dist/docs/components/saveableInput.md +1721 -0
- package/dist/docs/components/selects.md +1993 -0
- package/dist/docs/components/sidebar.md +332 -0
- package/dist/docs/components/sliders.md +376 -0
- package/dist/docs/components/smoothScrollbars.md +1180 -0
- package/dist/docs/components/spinners.md +506 -0
- package/dist/docs/components/states.md +1176 -0
- package/dist/docs/components/statsWidgets.md +636 -0
- package/dist/docs/components/statusBar.md +644 -0
- package/dist/docs/components/stepButton.md +61 -0
- package/dist/docs/components/steppedProgressBars.md +1064 -0
- package/dist/docs/components/subNavigation.md +470 -0
- package/dist/docs/components/supportMarker.md +115 -0
- package/dist/docs/components/svgImage.md +248 -0
- package/dist/docs/components/switch.md +554 -0
- package/dist/docs/components/tables.md +8 -0
- package/dist/docs/components/tagManager.md +476 -0
- package/dist/docs/components/tags.md +785 -0
- package/dist/docs/components/teaser.md +925 -0
- package/dist/docs/components/timeline.md +514 -0
- package/dist/docs/components/timepicker.md +262 -0
- package/dist/docs/components/toggleButton.md +178 -0
- package/dist/docs/components/tooltip.md +454 -0
- package/dist/docs/components/virtualList.md +483 -0
- package/dist/docs/foundations.md +20901 -0
- package/dist/docs/start/changelog.md +439 -0
- package/dist/docs/start/goodtoknow.md +14 -0
- package/dist/docs/start/guidelines/color-combinations.md +678 -0
- package/dist/docs/start/guidelines/custom-css.md +42 -0
- package/dist/docs/start/guidelines/custom-rioglyph.md +35 -0
- package/dist/docs/start/guidelines/formatting.md +587 -0
- package/dist/docs/start/guidelines/iframe.md +323 -0
- package/dist/docs/start/guidelines/obfuscate-data.md +30 -0
- package/dist/docs/start/guidelines/print-css.md +36 -0
- package/dist/docs/start/guidelines/spinner.md +710 -0
- package/dist/docs/start/guidelines/supported-browsers.md +10 -0
- package/dist/docs/start/guidelines/writing.md +635 -0
- package/dist/docs/start/howto.md +187 -0
- package/dist/docs/start/intro.md +43 -0
- package/dist/docs/start/responsiveness.md +98 -0
- package/dist/docs/templates/common-table.md +1111 -0
- package/dist/docs/templates/detail-views.md +942 -0
- package/dist/docs/templates/expandable-details.md +228 -0
- package/dist/docs/templates/feature-cards.md +549 -0
- package/dist/docs/templates/form-summary.md +199 -0
- package/dist/docs/templates/form-toggle.md +367 -0
- package/dist/docs/templates/list-blocks.md +1021 -0
- package/dist/docs/templates/loading-progress.md +109 -0
- package/dist/docs/templates/options-panel.md +152 -0
- package/dist/docs/templates/panel-variants.md +164 -0
- package/dist/docs/templates/progress-cards.md +607 -0
- package/dist/docs/templates/progress-success.md +142 -0
- package/dist/docs/templates/settings-form.md +434 -0
- package/dist/docs/templates/stats-blocks.md +1381 -0
- package/dist/docs/templates/table-panel.md +184 -0
- package/dist/docs/templates/table-row-animation.md +317 -0
- package/dist/docs/templates/usage-cards.md +227 -0
- package/dist/docs/utilities/deviceUtils.md +123 -0
- package/dist/docs/utilities/featureToggles.md +90 -0
- package/dist/docs/utilities/fuelTypeUtils.md +186 -0
- package/dist/docs/utilities/routeUtils.md +138 -0
- package/dist/docs/utilities/useAfterMount.md +66 -0
- package/dist/docs/utilities/useAutoAnimate.md +193 -0
- package/dist/docs/utilities/useAverage.md +95 -0
- package/dist/docs/utilities/useClickOutside.md +61 -0
- package/dist/docs/utilities/useClipboard.md +93 -0
- package/dist/docs/utilities/useCount.md +178 -0
- package/dist/docs/utilities/useDarkMode.md +49 -0
- package/dist/docs/utilities/useDebugInfo.md +126 -0
- package/dist/docs/utilities/useEffectOnce.md +58 -0
- package/dist/docs/utilities/useElapsedTime.md +58 -0
- package/dist/docs/utilities/useElementSize.md +71 -0
- package/dist/docs/utilities/useEsc.md +58 -0
- package/dist/docs/utilities/useEvent.md +64 -0
- package/dist/docs/utilities/useFocusTrap.md +85 -0
- package/dist/docs/utilities/useFullscreen.md +198 -0
- package/dist/docs/utilities/useHover.md +55 -0
- package/dist/docs/utilities/useIncomingPostMessages.md +237 -0
- package/dist/docs/utilities/useInterval.md +85 -0
- package/dist/docs/utilities/useIsFocusWithin.md +114 -0
- package/dist/docs/utilities/useKey.md +151 -0
- package/dist/docs/utilities/useLocalStorage.md +91 -0
- package/dist/docs/utilities/useLocationSuggestions.md +114 -0
- package/dist/docs/utilities/useMax.md +62 -0
- package/dist/docs/utilities/useMin.md +78 -0
- package/dist/docs/utilities/useMutationObserver.md +113 -0
- package/dist/docs/utilities/useOnScreen.md +138 -0
- package/dist/docs/utilities/useOnlineStatus.md +49 -0
- package/dist/docs/utilities/usePostMessage.md +117 -0
- package/dist/docs/utilities/usePostMessageSender.md +257 -0
- package/dist/docs/utilities/usePrevious.md +101 -0
- package/dist/docs/utilities/useResizeObserver.md +151 -0
- package/dist/docs/utilities/useScrollPosition.md +252 -0
- package/dist/docs/utilities/useSearch.md +228 -0
- package/dist/docs/utilities/useSorting.md +389 -0
- package/dist/docs/utilities/useStateWithValidation.md +83 -0
- package/dist/docs/utilities/useSum.md +155 -0
- package/dist/docs/utilities/useTableExport.md +404 -0
- package/dist/docs/utilities/useTableSelection.md +1120 -0
- package/dist/docs/utilities/useTimeout.md +55 -0
- package/dist/docs/utilities/useToggle.md +115 -0
- package/dist/docs/utilities/useWindowResize.md +70 -0
- package/dist/index.mjs +271 -0
- package/dist/search-synonyms.json +134 -0
- package/dist/version.json +4 -0
- package/package.json +23 -19
- package/bin/uikit-mcp.mjs +0 -23
- package/data/pages/Components/components/accentbar.json +0 -207
- package/data/pages/Components/components/activity.json +0 -87
- package/data/pages/Components/components/animatednumber.json +0 -99
- package/data/pages/Components/components/animations.json +0 -87
- package/data/pages/Components/components/appheader.json +0 -291
- package/data/pages/Components/components/applayout.json +0 -1198
- package/data/pages/Components/components/appnavigationbar.json +0 -327
- package/data/pages/Components/components/areacharts.json +0 -563
- package/data/pages/Components/components/aspectratioplaceholder.json +0 -75
- package/data/pages/Components/components/assettree.json +0 -3080
- package/data/pages/Components/components/autosuggests.json +0 -710
- package/data/pages/Components/components/avatar.json +0 -157
- package/data/pages/Components/components/banner.json +0 -599
- package/data/pages/Components/components/barcharts.json +0 -1507
- package/data/pages/Components/components/barlist.json +0 -223
- package/data/pages/Components/components/basicmap.json +0 -68
- package/data/pages/Components/components/bottomsheet.json +0 -601
- package/data/pages/Components/components/button.json +0 -583
- package/data/pages/Components/components/buttontoolbar.json +0 -63
- package/data/pages/Components/components/calendarstripe.json +0 -235
- package/data/pages/Components/components/card.json +0 -69
- package/data/pages/Components/components/carousel.json +0 -39
- package/data/pages/Components/components/chartcolors.json +0 -34
- package/data/pages/Components/components/chartsgettingstarted.json +0 -32
- package/data/pages/Components/components/chat.json +0 -39
- package/data/pages/Components/components/checkbox.json +0 -847
- package/data/pages/Components/components/clearableinput.json +0 -789
- package/data/pages/Components/components/collapse.json +0 -175
- package/data/pages/Components/components/composedcharts.json +0 -159
- package/data/pages/Components/components/contentloader.json +0 -233
- package/data/pages/Components/components/datatabs.json +0 -680
- package/data/pages/Components/components/datepickers.json +0 -287
- package/data/pages/Components/components/dialogs.json +0 -1492
- package/data/pages/Components/components/divider.json +0 -93
- package/data/pages/Components/components/dropdowns.json +0 -936
- package/data/pages/Components/components/editablecontent.json +0 -1117
- package/data/pages/Components/components/expander.json +0 -377
- package/data/pages/Components/components/fade.json +0 -403
- package/data/pages/Components/components/fadeexpander.json +0 -75
- package/data/pages/Components/components/fadeup.json +0 -127
- package/data/pages/Components/components/feedback.json +0 -269
- package/data/pages/Components/components/filepickers.json +0 -269
- package/data/pages/Components/components/formlabel.json +0 -115
- package/data/pages/Components/components/fullscreenmap.json +0 -22
- package/data/pages/Components/components/groupeditemlist.json +0 -323
- package/data/pages/Components/components/iconlist.json +0 -45
- package/data/pages/Components/components/imagepreloader.json +0 -81
- package/data/pages/Components/components/labeledelement.json +0 -75
- package/data/pages/Components/components/licenseplate.json +0 -69
- package/data/pages/Components/components/linecharts.json +0 -987
- package/data/pages/Components/components/listmenu.json +0 -313
- package/data/pages/Components/components/loadmore.json +0 -175
- package/data/pages/Components/components/mainnavigation.json +0 -39
- package/data/pages/Components/components/mapcircle.json +0 -34
- package/data/pages/Components/components/mapcluster.json +0 -51
- package/data/pages/Components/components/mapcontext.json +0 -105
- package/data/pages/Components/components/mapdraggablemarker.json +0 -34
- package/data/pages/Components/components/mapgettingstarted.json +0 -27
- package/data/pages/Components/components/mapgroup.json +0 -1198
- package/data/pages/Components/components/mapinfobubble.json +0 -34
- package/data/pages/Components/components/maplayergroup.json +0 -34
- package/data/pages/Components/components/mapmarker.json +0 -700
- package/data/pages/Components/components/mappolygon.json +0 -45
- package/data/pages/Components/components/maproute.json +0 -623
- package/data/pages/Components/components/maproutegenerator.json +0 -16
- package/data/pages/Components/components/mapsettings.json +0 -51
- package/data/pages/Components/components/maputils.json +0 -34
- package/data/pages/Components/components/multiselects.json +0 -1451
- package/data/pages/Components/components/nodata.json +0 -139
- package/data/pages/Components/components/notifications.json +0 -65
- package/data/pages/Components/components/numbercontrol.json +0 -301
- package/data/pages/Components/components/onboarding.json +0 -302
- package/data/pages/Components/components/page.json +0 -197
- package/data/pages/Components/components/pager.json +0 -93
- package/data/pages/Components/components/piecharts.json +0 -731
- package/data/pages/Components/components/popover.json +0 -251
- package/data/pages/Components/components/position.json +0 -69
- package/data/pages/Components/components/radialbarcharts.json +0 -1304
- package/data/pages/Components/components/radiobutton.json +0 -1105
- package/data/pages/Components/components/releasenotes.json +0 -44
- package/data/pages/Components/components/resizer.json +0 -93
- package/data/pages/Components/components/responsivecolumnstripe.json +0 -123
- package/data/pages/Components/components/responsivevideo.json +0 -75
- package/data/pages/Components/components/rioglyph.json +0 -93
- package/data/pages/Components/components/rules.json +0 -410
- package/data/pages/Components/components/saveableinput.json +0 -703
- package/data/pages/Components/components/selects.json +0 -701
- package/data/pages/Components/components/sidebar.json +0 -243
- package/data/pages/Components/components/sliders.json +0 -235
- package/data/pages/Components/components/smoothscrollbars.json +0 -335
- package/data/pages/Components/components/spinners.json +0 -343
- package/data/pages/Components/components/states.json +0 -1705
- package/data/pages/Components/components/statswidgets.json +0 -314
- package/data/pages/Components/components/statusbar.json +0 -177
- package/data/pages/Components/components/stepbutton.json +0 -57
- package/data/pages/Components/components/steppedprogressbars.json +0 -417
- package/data/pages/Components/components/subnavigation.json +0 -107
- package/data/pages/Components/components/supportmarker.json +0 -45
- package/data/pages/Components/components/svgimage.json +0 -81
- package/data/pages/Components/components/switch.json +0 -111
- package/data/pages/Components/components/tables.json +0 -144
- package/data/pages/Components/components/tagmanager.json +0 -86
- package/data/pages/Components/components/tags.json +0 -146
- package/data/pages/Components/components/teaser.json +0 -188
- package/data/pages/Components/components/timeline.json +0 -45
- package/data/pages/Components/components/timepicker.json +0 -163
- package/data/pages/Components/components/togglebutton.json +0 -247
- package/data/pages/Components/components/tooltip.json +0 -270
- package/data/pages/Components/components/virtuallist.json +0 -175
- package/data/pages/Foundations/foundations.json +0 -2475
- package/data/pages/Getting-started/start/changelog.json +0 -22
- package/data/pages/Getting-started/start/goodtoknow.json +0 -32
- package/data/pages/Getting-started/start/guidelines/color-combinations.json +0 -58
- package/data/pages/Getting-started/start/guidelines/custom-css.json +0 -27
- package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +0 -22
- package/data/pages/Getting-started/start/guidelines/formatting.json +0 -97
- package/data/pages/Getting-started/start/guidelines/iframe.json +0 -93
- package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +0 -22
- package/data/pages/Getting-started/start/guidelines/print-css.json +0 -37
- package/data/pages/Getting-started/start/guidelines/spinner.json +0 -144
- package/data/pages/Getting-started/start/guidelines/supported-browsers.json +0 -22
- package/data/pages/Getting-started/start/guidelines/writing.json +0 -242
- package/data/pages/Getting-started/start/howto.json +0 -72
- package/data/pages/Getting-started/start/intro.json +0 -37
- package/data/pages/Getting-started/start/responsiveness.json +0 -52
- package/data/pages/Templates/templates/common-table.json +0 -39
- package/data/pages/Templates/templates/detail-views.json +0 -71
- package/data/pages/Templates/templates/expandable-details.json +0 -39
- package/data/pages/Templates/templates/feature-cards.json +0 -103
- package/data/pages/Templates/templates/form-summary.json +0 -39
- package/data/pages/Templates/templates/form-toggle.json +0 -39
- package/data/pages/Templates/templates/list-blocks.json +0 -119
- package/data/pages/Templates/templates/loading-progress.json +0 -39
- package/data/pages/Templates/templates/options-panel.json +0 -39
- package/data/pages/Templates/templates/panel-variants.json +0 -39
- package/data/pages/Templates/templates/progress-cards.json +0 -71
- package/data/pages/Templates/templates/progress-success.json +0 -39
- package/data/pages/Templates/templates/settings-form.json +0 -39
- package/data/pages/Templates/templates/stats-blocks.json +0 -135
- package/data/pages/Templates/templates/table-panel.json +0 -39
- package/data/pages/Templates/templates/table-row-animation.json +0 -39
- package/data/pages/Templates/templates/usage-cards.json +0 -39
- package/data/pages/Utilities/utilities/deviceutils.json +0 -39
- package/data/pages/Utilities/utilities/featuretoggles.json +0 -42
- package/data/pages/Utilities/utilities/fueltypeutils.json +0 -118
- package/data/pages/Utilities/utilities/routeutils.json +0 -34
- package/data/pages/Utilities/utilities/useaftermount.json +0 -63
- package/data/pages/Utilities/utilities/useaverage.json +0 -86
- package/data/pages/Utilities/utilities/useclickoutside.json +0 -69
- package/data/pages/Utilities/utilities/useclipboard.json +0 -57
- package/data/pages/Utilities/utilities/usecount.json +0 -92
- package/data/pages/Utilities/utilities/usedarkmode.json +0 -50
- package/data/pages/Utilities/utilities/usedebuginfo.json +0 -63
- package/data/pages/Utilities/utilities/useeffectonce.json +0 -57
- package/data/pages/Utilities/utilities/useelapsedtime.json +0 -57
- package/data/pages/Utilities/utilities/useelementsize.json +0 -63
- package/data/pages/Utilities/utilities/useesc.json +0 -57
- package/data/pages/Utilities/utilities/useevent.json +0 -75
- package/data/pages/Utilities/utilities/usefocustrap.json +0 -57
- package/data/pages/Utilities/utilities/usefullscreen.json +0 -197
- package/data/pages/Utilities/utilities/usehover.json +0 -57
- package/data/pages/Utilities/utilities/useinterval.json +0 -63
- package/data/pages/Utilities/utilities/useisfocuswithin.json +0 -75
- package/data/pages/Utilities/utilities/usekey.json +0 -75
- package/data/pages/Utilities/utilities/uselocalstorage.json +0 -69
- package/data/pages/Utilities/utilities/uselocationsuggestions.json +0 -110
- package/data/pages/Utilities/utilities/usemax.json +0 -86
- package/data/pages/Utilities/utilities/usemin.json +0 -86
- package/data/pages/Utilities/utilities/usemutationobserver.json +0 -69
- package/data/pages/Utilities/utilities/useonlinestatus.json +0 -39
- package/data/pages/Utilities/utilities/useonscreen.json +0 -63
- package/data/pages/Utilities/utilities/usepostmessage.json +0 -80
- package/data/pages/Utilities/utilities/useprevious.json +0 -63
- package/data/pages/Utilities/utilities/useresizeobserver.json +0 -65
- package/data/pages/Utilities/utilities/usescrollposition.json +0 -103
- package/data/pages/Utilities/utilities/usesearch.json +0 -197
- package/data/pages/Utilities/utilities/usesorting.json +0 -139
- package/data/pages/Utilities/utilities/usestatewithvalidation.json +0 -69
- package/data/pages/Utilities/utilities/usesum.json +0 -86
- package/data/pages/Utilities/utilities/usetableexport.json +0 -87
- package/data/pages/Utilities/utilities/usetableselection.json +0 -311
- package/data/pages/Utilities/utilities/usetimeout.json +0 -63
- package/data/pages/Utilities/utilities/usetoggle.json +0 -75
- package/data/pages/Utilities/utilities/usewindowresize.json +0 -63
- package/data/version.json +0 -4
- package/docs/content-schema.md +0 -147
- package/docs/navigation-inventory.json +0 -1310
- package/docs/search-synonyms.json +0 -43
- package/server/index.mjs +0 -268
- package/server/lib/load-docs.mjs +0 -48
- package/server/lib/normalise-doc.mjs +0 -220
- package/server/lib/render-markdown.mjs +0 -82
- package/server/lib/search-index.mjs +0 -49
- package/server/lib/types.js +0 -99
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
# useTableExport
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* Table & data hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useTableExport
|
|
6
|
+
*Captured:* 2025-12-12T12:39:50.404Z
|
|
7
|
+
|
|
8
|
+
The useTableExport hook provides a simple and reusable way to export tabular data as a downloadable CSV file in React applications. It supports custom delimiters, UTF-8 BOM for Excel compatibility, and column header mapping for more readable exports. This is especially useful for tables with user-facing data that may need to be downloaded for offline analysis or reporting.
|
|
9
|
+
|
|
10
|
+
## useTableExport
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Export data
|
|
15
|
+
|
|
16
|
+
IdFirst nameLast nameE-mail
|
|
17
|
+
|
|
18
|
+
1GinaWatsicaLoyal.Feil57@hotmail.com
|
|
19
|
+
2GunnerEbertErika59@hotmail.com
|
|
20
|
+
3CandaceGloverTroy.Lebsack@hotmail.com
|
|
21
|
+
4TommieDibbertLinwood_Anderson33@hotmail.com
|
|
22
|
+
5LacyRippinAbby98@yahoo.com
|
|
23
|
+
6EnaOsinskiCyril28@hotmail.com
|
|
24
|
+
7EthylNolanTroy.Jast22@hotmail.com
|
|
25
|
+
8NatashaAuerBeth.Huel78@hotmail.com
|
|
26
|
+
9AftonLefflerTheresa.Witting@hotmail.com
|
|
27
|
+
10ChaseKuhlmanNapoleon6@gmail.com
|
|
28
|
+
|
|
29
|
+
#### Summary
|
|
30
|
+
|
|
31
|
+
Export data
|
|
32
|
+
|
|
33
|
+
IdFirst nameLast nameE-mail
|
|
34
|
+
|
|
35
|
+
1GinaWatsicaLoyal.Feil57@hotmail.com
|
|
36
|
+
2GunnerEbertErika59@hotmail.com
|
|
37
|
+
3CandaceGloverTroy.Lebsack@hotmail.com
|
|
38
|
+
4TommieDibbertLinwood_Anderson33@hotmail.com
|
|
39
|
+
5LacyRippinAbby98@yahoo.com
|
|
40
|
+
6EnaOsinskiCyril28@hotmail.com
|
|
41
|
+
7EthylNolanTroy.Jast22@hotmail.com
|
|
42
|
+
8NatashaAuerBeth.Huel78@hotmail.com
|
|
43
|
+
9AftonLefflerTheresa.Witting@hotmail.com
|
|
44
|
+
10ChaseKuhlmanNapoleon6@gmail.com
|
|
45
|
+
|
|
46
|
+
#### React (tsx)
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
import classNames from 'classnames';
|
|
50
|
+
import faker from 'faker';
|
|
51
|
+
|
|
52
|
+
import TableHead from '@rio-cloud/rio-uikit/TableHead';
|
|
53
|
+
import TableCol, { type ColumnDetailsMap } from '@rio-cloud/rio-uikit/TableCol';
|
|
54
|
+
import TableToolbar from '@rio-cloud/rio-uikit/TableToolbar';
|
|
55
|
+
import useTableExport from '@rio-cloud/rio-uikit/useTableExport';
|
|
56
|
+
import useSorting from '@rio-cloud/rio-uikit/useSorting';
|
|
57
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
58
|
+
|
|
59
|
+
type Driver = {
|
|
60
|
+
driverId: string;
|
|
61
|
+
firstName: string;
|
|
62
|
+
lastName: string;
|
|
63
|
+
email: string;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
type ColumnLabel = { [key in keyof Driver]: string };
|
|
67
|
+
|
|
68
|
+
const columnLabels: ColumnLabel = {
|
|
69
|
+
driverId: 'Id',
|
|
70
|
+
firstName: 'First name',
|
|
71
|
+
lastName: 'Last name',
|
|
72
|
+
email: 'E-mail',
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const defaultColumnOrder = ['driverId', 'firstName', 'lastName', 'email'];
|
|
76
|
+
|
|
77
|
+
const demoColumnsDetails: ColumnDetailsMap = {
|
|
78
|
+
driverId: {
|
|
79
|
+
width: 100,
|
|
80
|
+
defaultWidth: 200,
|
|
81
|
+
maxWidth: 300,
|
|
82
|
+
},
|
|
83
|
+
firstName: {
|
|
84
|
+
width: 200,
|
|
85
|
+
defaultWidth: 200,
|
|
86
|
+
maxWidth: 200,
|
|
87
|
+
},
|
|
88
|
+
lastName: {
|
|
89
|
+
width: 0, // Note: 0 means auto width
|
|
90
|
+
defaultWidth: 0,
|
|
91
|
+
maxWidth: 350,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
// Function to generate random entries to work with.
|
|
96
|
+
// Increase length to generate more items.
|
|
97
|
+
const driverList: Driver[] = Array.from({ length: 10 }, (_, index) => ({
|
|
98
|
+
driverId: `${index + 1}`,
|
|
99
|
+
firstName: faker.name.firstName(),
|
|
100
|
+
lastName: faker.name.lastName(),
|
|
101
|
+
email: faker.internet.email(),
|
|
102
|
+
}));
|
|
103
|
+
|
|
104
|
+
export default () => {
|
|
105
|
+
const { sortedItems, sortKey, sortDirection, setSortKey, toggleDirection } = useSorting(driverList, 'driverId');
|
|
106
|
+
|
|
107
|
+
// Hook to export the Table data
|
|
108
|
+
const { exportToCSV } = useTableExport<Driver>();
|
|
109
|
+
|
|
110
|
+
const handleTableExport = () => {
|
|
111
|
+
exportToCSV({
|
|
112
|
+
data: sortedItems,
|
|
113
|
+
fileName: 'drivers.csv',
|
|
114
|
+
headers: columnLabels,
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const handleSortChange = (event: React.MouseEvent<HTMLTableCellElement>) => {
|
|
119
|
+
const newSortBy = event.currentTarget.getAttribute('data-sortby');
|
|
120
|
+
if (newSortBy) {
|
|
121
|
+
setSortKey(newSortBy as keyof Driver);
|
|
122
|
+
}
|
|
123
|
+
if (newSortBy === sortKey) {
|
|
124
|
+
toggleDirection();
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
const tableClassNames = classNames(
|
|
129
|
+
'table',
|
|
130
|
+
'table-layout-fixed',
|
|
131
|
+
'table-column-overflow-hidden',
|
|
132
|
+
'table-bordered',
|
|
133
|
+
'table-sticky',
|
|
134
|
+
'table-hover',
|
|
135
|
+
'table-head-filled'
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
return (
|
|
139
|
+
<div>
|
|
140
|
+
<TableToolbar>
|
|
141
|
+
<div className='table-toolbar-container'>
|
|
142
|
+
<div className='table-toolbar-group-right'>
|
|
143
|
+
<div className='table-toolbar-column'>
|
|
144
|
+
<Button iconName='rioglyph-download' onClick={handleTableExport}>
|
|
145
|
+
Export data
|
|
146
|
+
</Button>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</TableToolbar>
|
|
151
|
+
|
|
152
|
+
<div className='table-responsive'>
|
|
153
|
+
<table className={tableClassNames}>
|
|
154
|
+
<colgroup>
|
|
155
|
+
{defaultColumnOrder.map(column => (
|
|
156
|
+
<TableCol key={column} columnDetails={demoColumnsDetails[column]} />
|
|
157
|
+
))}
|
|
158
|
+
</colgroup>
|
|
159
|
+
<thead>
|
|
160
|
+
<tr>
|
|
161
|
+
{defaultColumnOrder.map(column => (
|
|
162
|
+
<TableHead
|
|
163
|
+
key={column}
|
|
164
|
+
column={column}
|
|
165
|
+
label={columnLabels[column as keyof ColumnLabel]}
|
|
166
|
+
sortBy={sortKey as string}
|
|
167
|
+
sortDir={sortDirection}
|
|
168
|
+
onClick={handleSortChange}
|
|
169
|
+
/>
|
|
170
|
+
))}
|
|
171
|
+
</tr>
|
|
172
|
+
</thead>
|
|
173
|
+
<tbody>
|
|
174
|
+
{sortedItems.map(row => (
|
|
175
|
+
<tr key={row.driverId} data-id={row.driverId} className='cursor-pointer'>
|
|
176
|
+
{defaultColumnOrder.map(col => (
|
|
177
|
+
<td key={col} data-field={columnLabels[col as keyof Driver]}>
|
|
178
|
+
<span>{row[col as keyof Driver]}</span>
|
|
179
|
+
</td>
|
|
180
|
+
))}
|
|
181
|
+
</tr>
|
|
182
|
+
))}
|
|
183
|
+
</tbody>
|
|
184
|
+
</table>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
);
|
|
188
|
+
};
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
#### HTML (html)
|
|
192
|
+
|
|
193
|
+
```html
|
|
194
|
+
<div>
|
|
195
|
+
<div class="table-toolbar">
|
|
196
|
+
<div class="table-toolbar-container">
|
|
197
|
+
<div class="table-toolbar-group-right">
|
|
198
|
+
<div class="table-toolbar-column">
|
|
199
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">
|
|
200
|
+
<span class="rioglyph rioglyph-download">
|
|
201
|
+
</span>Export data</button>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
<div class="table-responsive">
|
|
207
|
+
<table class="table table-layout-fixed table-column-overflow-hidden table-bordered table-sticky table-hover table-head-filled">
|
|
208
|
+
<colgroup>
|
|
209
|
+
<col class="" style="min-width: 100px; width: 100px;">
|
|
210
|
+
<col class="" style="min-width: 200px; width: 200px;">
|
|
211
|
+
<col class="">
|
|
212
|
+
<col class="">
|
|
213
|
+
</colgroup>
|
|
214
|
+
<thead>
|
|
215
|
+
<tr>
|
|
216
|
+
<th class="user-select-none sort-column" data-field="driverId" data-sortby="driverId" title="Id">
|
|
217
|
+
<span>
|
|
218
|
+
<span class="sort-arrows sort-asc">
|
|
219
|
+
</span>
|
|
220
|
+
<span>Id</span>
|
|
221
|
+
</span>
|
|
222
|
+
</th>
|
|
223
|
+
<th class="user-select-none sort-column" data-field="firstName" data-sortby="firstName" title="First name">
|
|
224
|
+
<span>
|
|
225
|
+
<span class="sort-arrows ">
|
|
226
|
+
</span>
|
|
227
|
+
<span>First name</span>
|
|
228
|
+
</span>
|
|
229
|
+
</th>
|
|
230
|
+
<th class="user-select-none sort-column" data-field="lastName" data-sortby="lastName" title="Last name">
|
|
231
|
+
<span>
|
|
232
|
+
<span class="sort-arrows ">
|
|
233
|
+
</span>
|
|
234
|
+
<span>Last name</span>
|
|
235
|
+
</span>
|
|
236
|
+
</th>
|
|
237
|
+
<th class="user-select-none sort-column" data-field="email" data-sortby="email" title="E-mail">
|
|
238
|
+
<span>
|
|
239
|
+
<span class="sort-arrows ">
|
|
240
|
+
</span>
|
|
241
|
+
<span>E-mail</span>
|
|
242
|
+
</span>
|
|
243
|
+
</th>
|
|
244
|
+
</tr>
|
|
245
|
+
</thead>
|
|
246
|
+
<tbody>
|
|
247
|
+
<tr data-id="1" class="cursor-pointer">
|
|
248
|
+
<td data-field="Id">
|
|
249
|
+
<span>1</span>
|
|
250
|
+
</td>
|
|
251
|
+
<td data-field="First name">
|
|
252
|
+
<span>Gina</span>
|
|
253
|
+
</td>
|
|
254
|
+
<td data-field="Last name">
|
|
255
|
+
<span>Watsica</span>
|
|
256
|
+
</td>
|
|
257
|
+
<td data-field="E-mail">
|
|
258
|
+
<span>Loyal.Feil57@hotmail.com</span>
|
|
259
|
+
</td>
|
|
260
|
+
</tr>
|
|
261
|
+
<tr data-id="2" class="cursor-pointer">
|
|
262
|
+
<td data-field="Id">
|
|
263
|
+
<span>2</span>
|
|
264
|
+
</td>
|
|
265
|
+
<td data-field="First name">
|
|
266
|
+
<span>Gunner</span>
|
|
267
|
+
</td>
|
|
268
|
+
<td data-field="Last name">
|
|
269
|
+
<span>Ebert</span>
|
|
270
|
+
</td>
|
|
271
|
+
<td data-field="E-mail">
|
|
272
|
+
<span>Erika59@hotmail.com</span>
|
|
273
|
+
</td>
|
|
274
|
+
</tr>
|
|
275
|
+
<tr data-id="3" class="cursor-pointer">
|
|
276
|
+
<td data-field="Id">
|
|
277
|
+
<span>3</span>
|
|
278
|
+
</td>
|
|
279
|
+
<td data-field="First name">
|
|
280
|
+
<span>Candace</span>
|
|
281
|
+
</td>
|
|
282
|
+
<td data-field="Last name">
|
|
283
|
+
<span>Glover</span>
|
|
284
|
+
</td>
|
|
285
|
+
<td data-field="E-mail">
|
|
286
|
+
<span>Troy.Lebsack@hotmail.com</span>
|
|
287
|
+
</td>
|
|
288
|
+
</tr>
|
|
289
|
+
<tr data-id="4" class="cursor-pointer">
|
|
290
|
+
<td data-field="Id">
|
|
291
|
+
<span>4</span>
|
|
292
|
+
</td>
|
|
293
|
+
<td data-field="First name">
|
|
294
|
+
<span>Tommie</span>
|
|
295
|
+
</td>
|
|
296
|
+
<td data-field="Last name">
|
|
297
|
+
<span>Dibbert</span>
|
|
298
|
+
</td>
|
|
299
|
+
<td data-field="E-mail">
|
|
300
|
+
<span>Linwood_Anderson33@hotmail.com</span>
|
|
301
|
+
</td>
|
|
302
|
+
</tr>
|
|
303
|
+
<tr data-id="5" class="cursor-pointer">
|
|
304
|
+
<td data-field="Id">
|
|
305
|
+
<span>5</span>
|
|
306
|
+
</td>
|
|
307
|
+
<td data-field="First name">
|
|
308
|
+
<span>Lacy</span>
|
|
309
|
+
</td>
|
|
310
|
+
<td data-field="Last name">
|
|
311
|
+
<span>Rippin</span>
|
|
312
|
+
</td>
|
|
313
|
+
<td data-field="E-mail">
|
|
314
|
+
<span>Abby98@yahoo.com</span>
|
|
315
|
+
</td>
|
|
316
|
+
</tr>
|
|
317
|
+
<tr data-id="6" class="cursor-pointer">
|
|
318
|
+
<td data-field="Id">
|
|
319
|
+
<span>6</span>
|
|
320
|
+
</td>
|
|
321
|
+
<td data-field="First name">
|
|
322
|
+
<span>Ena</span>
|
|
323
|
+
</td>
|
|
324
|
+
<td data-field="Last name">
|
|
325
|
+
<span>Osinski</span>
|
|
326
|
+
</td>
|
|
327
|
+
<td data-field="E-mail">
|
|
328
|
+
<span>Cyril28@hotmail.com</span>
|
|
329
|
+
</td>
|
|
330
|
+
</tr>
|
|
331
|
+
<tr data-id="7" class="cursor-pointer">
|
|
332
|
+
<td data-field="Id">
|
|
333
|
+
<span>7</span>
|
|
334
|
+
</td>
|
|
335
|
+
<td data-field="First name">
|
|
336
|
+
<span>Ethyl</span>
|
|
337
|
+
</td>
|
|
338
|
+
<td data-field="Last name">
|
|
339
|
+
<span>Nolan</span>
|
|
340
|
+
</td>
|
|
341
|
+
<td data-field="E-mail">
|
|
342
|
+
<span>Troy.Jast22@hotmail.com</span>
|
|
343
|
+
</td>
|
|
344
|
+
</tr>
|
|
345
|
+
<tr data-id="8" class="cursor-pointer">
|
|
346
|
+
<td data-field="Id">
|
|
347
|
+
<span>8</span>
|
|
348
|
+
</td>
|
|
349
|
+
<td data-field="First name">
|
|
350
|
+
<span>Natasha</span>
|
|
351
|
+
</td>
|
|
352
|
+
<td data-field="Last name">
|
|
353
|
+
<span>Auer</span>
|
|
354
|
+
</td>
|
|
355
|
+
<td data-field="E-mail">
|
|
356
|
+
<span>Beth.Huel78@hotmail.com</span>
|
|
357
|
+
</td>
|
|
358
|
+
</tr>
|
|
359
|
+
<tr data-id="9" class="cursor-pointer">
|
|
360
|
+
<td data-field="Id">
|
|
361
|
+
<span>9</span>
|
|
362
|
+
</td>
|
|
363
|
+
<td data-field="First name">
|
|
364
|
+
<span>Afton</span>
|
|
365
|
+
</td>
|
|
366
|
+
<td data-field="Last name">
|
|
367
|
+
<span>Leffler</span>
|
|
368
|
+
</td>
|
|
369
|
+
<td data-field="E-mail">
|
|
370
|
+
<span>Theresa.Witting@hotmail.com</span>
|
|
371
|
+
</td>
|
|
372
|
+
</tr>
|
|
373
|
+
<tr data-id="10" class="cursor-pointer">
|
|
374
|
+
<td data-field="Id">
|
|
375
|
+
<span>10</span>
|
|
376
|
+
</td>
|
|
377
|
+
<td data-field="First name">
|
|
378
|
+
<span>Chase</span>
|
|
379
|
+
</td>
|
|
380
|
+
<td data-field="Last name">
|
|
381
|
+
<span>Kuhlman</span>
|
|
382
|
+
</td>
|
|
383
|
+
<td data-field="E-mail">
|
|
384
|
+
<span>Napoleon6@gmail.com</span>
|
|
385
|
+
</td>
|
|
386
|
+
</tr>
|
|
387
|
+
</tbody>
|
|
388
|
+
</table>
|
|
389
|
+
</div>
|
|
390
|
+
</div>
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
#### Props: Options of the returned `exportToCSV` function
|
|
394
|
+
|
|
395
|
+
### Options of the returned `exportToCSV` function
|
|
396
|
+
|
|
397
|
+
| Name | Type | Default | Description |
|
|
398
|
+
| --- | --- | --- | --- |
|
|
399
|
+
| data | T[] | — | Array of data objects to export. Each object represents one row in the table. |
|
|
400
|
+
| fileName | string | export.csv | Optional name for the exported file. |
|
|
401
|
+
| columns | (keyof T)[] | — | Optional list of object keys to export as columns. If omitted, all keys from the first row will be used. |
|
|
402
|
+
| headers | Partial<Record<keyof T, string>> | — | Optional map of column keys to custom header labels. Example: { firstName: 'First Name' } |
|
|
403
|
+
| delimiter | string | , | Optional delimiter to use between values in the CSV. You can use `";"` or `"\t"` for other formats. |
|
|
404
|
+
| withBom | boolean | true | Whether to include UTF-8 BOM (useful for Excel). |
|