@rio-cloud/uikit-mcp 1.0.1 → 1.1.1
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 -39
- 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 +2033 -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 +3132 -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 +2765 -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 +533 -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 +935 -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 +17538 -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 +486 -0
- package/dist/docs/foundations.md +20901 -0
- package/dist/docs/start/changelog.md +714 -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,2033 @@
|
|
|
1
|
+
# ApplicationLayout
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Application
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#components/appLayout
|
|
6
|
+
*Captured:* 2025-12-12T14:20:11.441Z
|
|
7
|
+
|
|
8
|
+
The ApplicationLayout components consists of three sub-components: ApplicationHeader, ApplicationBody, ApplicationSidebar
|
|
9
|
+
|
|
10
|
+
## ApplicationLayout
|
|
11
|
+
|
|
12
|
+
The ApplicationHeader and ApplicationSidebar components are optional. The Body component is dedicated to the actual service content.
|
|
13
|
+
|
|
14
|
+
> Note: Do not wrap direct children of ApplicationLayout, due to css height calculations. If you really need to wrap your children, use<React.Fragment> instead
|
|
15
|
+
|
|
16
|
+
> Note: If you remove the ApplicationHeader from you SPA, other elements, for example the ApplicationBody, will resize the height to fill the <body> node.
|
|
17
|
+
|
|
18
|
+
## Default example
|
|
19
|
+
|
|
20
|
+
### Example: Example 1
|
|
21
|
+
|
|
22
|
+
RIO Service
|
|
23
|
+
|
|
24
|
+
Navigation 1
|
|
25
|
+
Navigation 2
|
|
26
|
+
Navigation 3
|
|
27
|
+
|
|
28
|
+
#### Summary
|
|
29
|
+
|
|
30
|
+
RIO Service
|
|
31
|
+
|
|
32
|
+
Navigation 1
|
|
33
|
+
Navigation 2
|
|
34
|
+
Navigation 3
|
|
35
|
+
|
|
36
|
+
#### React (tsx)
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import { NavLink } from 'react-router-dom';
|
|
40
|
+
|
|
41
|
+
import ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';
|
|
42
|
+
import ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';
|
|
43
|
+
|
|
44
|
+
const navItems = [
|
|
45
|
+
{ key: '1', route: <NavLink to='/components/appLayout'>Navigation 1</NavLink> },
|
|
46
|
+
{
|
|
47
|
+
key: '2',
|
|
48
|
+
route: (
|
|
49
|
+
<NavLink to='/2' onClick={event => event.preventDefault()}>
|
|
50
|
+
Navigation 2
|
|
51
|
+
</NavLink>
|
|
52
|
+
),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: '3',
|
|
56
|
+
route: (
|
|
57
|
+
<NavLink to='/3' onClick={event => event.preventDefault()}>
|
|
58
|
+
Navigation 3
|
|
59
|
+
</NavLink>
|
|
60
|
+
),
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
|
|
64
|
+
export default () => (
|
|
65
|
+
<ApplicationLayout className='bg-lighter'>
|
|
66
|
+
<ApplicationLayout.Header>
|
|
67
|
+
<ApplicationHeader label='RIO Service' navItems={navItems} />
|
|
68
|
+
</ApplicationLayout.Header>
|
|
69
|
+
<ApplicationLayout.Body className='uikitDemo'>
|
|
70
|
+
<div className='dummy-class' />
|
|
71
|
+
</ApplicationLayout.Body>
|
|
72
|
+
</ApplicationLayout>
|
|
73
|
+
);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### HTML (html)
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<div class="ApplicationLayout bg-lighter" style="--ApplicationLayoutBodyBottomBarHeight: 54px;">
|
|
80
|
+
<div class="ApplicationLayoutHeader" id="ApplicationLayoutHeader">
|
|
81
|
+
<nav class="ApplicationHeader user-select-none">
|
|
82
|
+
<div class="navbar-header">
|
|
83
|
+
<span class="navbar-brand home-icon">
|
|
84
|
+
</span>
|
|
85
|
+
</div>
|
|
86
|
+
<ul class="ModuleNavigation AppMenu user-select-none pointer-events-none">
|
|
87
|
+
<li class="dropdown">
|
|
88
|
+
<a class="ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive" role="button" id="basic-nav-dropdown">
|
|
89
|
+
<span>RIO Service</span>
|
|
90
|
+
</a>
|
|
91
|
+
</li>
|
|
92
|
+
</ul>
|
|
93
|
+
<ul class="SubmoduleNavigation nav">
|
|
94
|
+
<li class="submodule " data-nav-item-key="1">
|
|
95
|
+
<a aria-current="page" class="active" href="#components/appLayout">Navigation 1</a>
|
|
96
|
+
</li>
|
|
97
|
+
<li class="submodule " data-nav-item-key="2">
|
|
98
|
+
<a href="#2">Navigation 2</a>
|
|
99
|
+
</li>
|
|
100
|
+
<li class="submodule " data-nav-item-key="3">
|
|
101
|
+
<a href="#3">Navigation 3</a>
|
|
102
|
+
</li>
|
|
103
|
+
</ul>
|
|
104
|
+
<ul class="ApplicationActionBar nav navbar-nav navbar-right ">
|
|
105
|
+
</ul>
|
|
106
|
+
</nav>
|
|
107
|
+
</div>
|
|
108
|
+
<div class="ApplicationLayoutBody uikitDemo">
|
|
109
|
+
<div class="module-content-wrapper">
|
|
110
|
+
<div class="module-content smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
|
|
111
|
+
<div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
|
|
112
|
+
<div class="scrollbar-content-wrapper">
|
|
113
|
+
<div class="scrollbar-content">
|
|
114
|
+
<div class="dummy-class">
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
<div class="scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; height: 6px; display: none;">
|
|
120
|
+
<div class="scrollbar-thumb-horizontal scrollbar-thumb-size-large" style="position: relative; display: block; height: 100%;">
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; width: 6px; display: none;">
|
|
124
|
+
<div class="scrollbar-thumb-vertical scrollbar-thumb-size-large" style="position: relative; display: block; width: 100%;">
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
<span class="scroll-to-top">
|
|
130
|
+
<button type="button" class="btn btn-primary btn-icon-only">
|
|
131
|
+
<span class="rioglyph rioglyph-arrow-up">
|
|
132
|
+
</span>
|
|
133
|
+
</button>
|
|
134
|
+
</span>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
#### Props: ApplicationLayout
|
|
140
|
+
|
|
141
|
+
### ApplicationLayout
|
|
142
|
+
|
|
143
|
+
| Name | Type | Default | Description |
|
|
144
|
+
| --- | --- | --- | --- |
|
|
145
|
+
| layoutRef | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
146
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
147
|
+
|
|
148
|
+
#### Props: ApplicationLayoutHeader
|
|
149
|
+
|
|
150
|
+
### ApplicationLayoutHeader
|
|
151
|
+
|
|
152
|
+
| Name | Type | Default | Description |
|
|
153
|
+
| --- | --- | --- | --- |
|
|
154
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
155
|
+
|
|
156
|
+
#### Props: ApplicationLayoutSidebar
|
|
157
|
+
|
|
158
|
+
### ApplicationLayoutSidebar
|
|
159
|
+
|
|
160
|
+
| Name | Type | Default | Description |
|
|
161
|
+
| --- | --- | --- | --- |
|
|
162
|
+
| ref | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
163
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
164
|
+
|
|
165
|
+
#### Props: ApplicationLayoutBody
|
|
166
|
+
|
|
167
|
+
### ApplicationLayoutBody
|
|
168
|
+
|
|
169
|
+
| Name | Type | Default | Description |
|
|
170
|
+
| --- | --- | --- | --- |
|
|
171
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
172
|
+
| innerClassName | String | — | Additional class names that are added to the inner module-content component. |
|
|
173
|
+
| children | any | — | Any component given to the layout components will be rendered |
|
|
174
|
+
| navigation | any | — | The ApplicationLayoutBodyNavigation component. |
|
|
175
|
+
| enableScrollToTop | Boolean | true | Show scroll to top button after scrolling the content. |
|
|
176
|
+
| forceScrollbar | Boolean | false | Always show vertical scrollbar to prevent the content from jumping. |
|
|
177
|
+
| bottomBar | Node \| String | — | Optional bottom bar component or a simple string. |
|
|
178
|
+
| bottomBarHeight | Number | 54 | Height of the bottomBar in pixel. |
|
|
179
|
+
| banner | any | — | The ApplicationLayoutBodyBanner component. |
|
|
180
|
+
|
|
181
|
+
#### Props: ApplicationLayoutBodyNavigation
|
|
182
|
+
|
|
183
|
+
### ApplicationLayoutBodyNavigation
|
|
184
|
+
|
|
185
|
+
| Name | Type | Default | Description |
|
|
186
|
+
| --- | --- | --- | --- |
|
|
187
|
+
| className | String | — | Additional class names that are added to the respective component. Example: "has-offset" |
|
|
188
|
+
|
|
189
|
+
#### Props: ApplicationLayoutBodyBottomBar
|
|
190
|
+
|
|
191
|
+
### ApplicationLayoutBodyBottomBar
|
|
192
|
+
|
|
193
|
+
| Name | Type | Default | Description |
|
|
194
|
+
| --- | --- | --- | --- |
|
|
195
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
196
|
+
| buttonAlignment | String | — | Tells the buttons if they are left or right aligned. Default behavior is: 1st button left and 2nd button right. ApplicationLayoutBodyBottomBar.LEFT, ApplicationLayoutBodyBottomBar.RIGHT or 'left''right' |
|
|
197
|
+
| useBodyPaddings | Boolean | false | Use same paddings (left and right) as the ApplicationLayoutBody. |
|
|
198
|
+
|
|
199
|
+
#### Props: ApplicationLayoutBodyBanner
|
|
200
|
+
|
|
201
|
+
### ApplicationLayoutBodyBanner
|
|
202
|
+
|
|
203
|
+
| Name | Type | Default | Description |
|
|
204
|
+
| --- | --- | --- | --- |
|
|
205
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
206
|
+
| backgroundColor | String | bg-primary | One of our bg-color utility classes. |
|
|
207
|
+
| textColor | string | text-color-white | One of our text-color utility classes. |
|
|
208
|
+
| isSticky | Boolean | false | Sticky while scrolling. |
|
|
209
|
+
|
|
210
|
+
## SubNavigation example
|
|
211
|
+
|
|
212
|
+
### Example: Example 2
|
|
213
|
+
|
|
214
|
+
RIO Service
|
|
215
|
+
|
|
216
|
+
Navigation 1
|
|
217
|
+
Navigation 2
|
|
218
|
+
Navigation 3
|
|
219
|
+
|
|
220
|
+
Subnavigation 1
|
|
221
|
+
Subnavigation 2
|
|
222
|
+
Subnavigation 3
|
|
223
|
+
|
|
224
|
+
#### Summary
|
|
225
|
+
|
|
226
|
+
RIO Service
|
|
227
|
+
|
|
228
|
+
Navigation 1
|
|
229
|
+
Navigation 2
|
|
230
|
+
Navigation 3
|
|
231
|
+
|
|
232
|
+
Subnavigation 1
|
|
233
|
+
Subnavigation 2
|
|
234
|
+
Subnavigation 3
|
|
235
|
+
|
|
236
|
+
#### React (tsx)
|
|
237
|
+
|
|
238
|
+
```tsx
|
|
239
|
+
import { useState, useEffect } from 'react';
|
|
240
|
+
import { NavLink } from 'react-router-dom';
|
|
241
|
+
|
|
242
|
+
import ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';
|
|
243
|
+
import ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';
|
|
244
|
+
import ApplicationLayoutBodyNavigation from '@rio-cloud/rio-uikit/ApplicationLayoutBodyNavigation';
|
|
245
|
+
import SubNavigation from '@rio-cloud/rio-uikit/SubNavigation';
|
|
246
|
+
import useResizeObserver from '@rio-cloud/rio-uikit/useResizeObserver';
|
|
247
|
+
import { SCREEN_MD } from '@rio-cloud/rio-uikit/DeviceUtils';
|
|
248
|
+
|
|
249
|
+
export default () => {
|
|
250
|
+
const currentLocation = window.location.hash.replace('#', '/');
|
|
251
|
+
const navItems = [
|
|
252
|
+
{ key: '1', route: <NavLink to={currentLocation}>Navigation 1</NavLink> },
|
|
253
|
+
{
|
|
254
|
+
key: '2',
|
|
255
|
+
route: (
|
|
256
|
+
<NavLink to='/2' onClick={event => event.preventDefault()}>
|
|
257
|
+
Navigation 2
|
|
258
|
+
</NavLink>
|
|
259
|
+
),
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
key: '3',
|
|
263
|
+
route: (
|
|
264
|
+
<NavLink to='/3' onClick={event => event.preventDefault()}>
|
|
265
|
+
Navigation 3
|
|
266
|
+
</NavLink>
|
|
267
|
+
),
|
|
268
|
+
},
|
|
269
|
+
];
|
|
270
|
+
|
|
271
|
+
// Listen for resize changes of the target element defined by the ref
|
|
272
|
+
// Note: this is for demo purpose only when resizing the demo playground.
|
|
273
|
+
// The SubNavigation component handles this case internally
|
|
274
|
+
const { ref, isMobile } = useResizer();
|
|
275
|
+
const bodyNavigationClasses = isMobile ? '' : 'has-offset';
|
|
276
|
+
|
|
277
|
+
return (
|
|
278
|
+
<ApplicationLayout className='bg-lighter' layoutRef={ref}>
|
|
279
|
+
<ApplicationLayout.Header>
|
|
280
|
+
<ApplicationHeader label='RIO Service' navItems={navItems} />
|
|
281
|
+
</ApplicationLayout.Header>
|
|
282
|
+
<ApplicationLayout.Body
|
|
283
|
+
className='uikitDemo'
|
|
284
|
+
navigation={
|
|
285
|
+
<ApplicationLayoutBodyNavigation className={bodyNavigationClasses}>
|
|
286
|
+
<SubNavigation
|
|
287
|
+
navItems={[
|
|
288
|
+
{
|
|
289
|
+
key: '1',
|
|
290
|
+
route: <NavLink to={currentLocation}>Subnavigation 1</NavLink>,
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
key: '2',
|
|
294
|
+
route: (
|
|
295
|
+
<NavLink to='/2' onClick={event => event.preventDefault()}>
|
|
296
|
+
Subnavigation 2
|
|
297
|
+
</NavLink>
|
|
298
|
+
),
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
key: '3',
|
|
302
|
+
route: (
|
|
303
|
+
<NavLink to='/3' onClick={event => event.preventDefault()}>
|
|
304
|
+
Subnavigation 3
|
|
305
|
+
</NavLink>
|
|
306
|
+
),
|
|
307
|
+
},
|
|
308
|
+
]}
|
|
309
|
+
/>
|
|
310
|
+
</ApplicationLayoutBodyNavigation>
|
|
311
|
+
}
|
|
312
|
+
>
|
|
313
|
+
<div className='dummy-class' />
|
|
314
|
+
</ApplicationLayout.Body>
|
|
315
|
+
</ApplicationLayout>
|
|
316
|
+
);
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
const useResizer = () => {
|
|
320
|
+
const [isMobile, setIsMobile] = useState(false);
|
|
321
|
+
const [ref, observerEntry] = useResizeObserver();
|
|
322
|
+
const contentRect = observerEntry?.contentRect;
|
|
323
|
+
useEffect(() => {
|
|
324
|
+
if (!contentRect) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
const width = Math.round(contentRect.width);
|
|
328
|
+
if (width <= SCREEN_MD) {
|
|
329
|
+
setIsMobile(true);
|
|
330
|
+
} else {
|
|
331
|
+
setIsMobile(false);
|
|
332
|
+
}
|
|
333
|
+
}, [contentRect]);
|
|
334
|
+
|
|
335
|
+
return { ref, isMobile };
|
|
336
|
+
};
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
#### HTML (html)
|
|
340
|
+
|
|
341
|
+
```html
|
|
342
|
+
<div class="ApplicationLayout bg-lighter" style="--ApplicationLayoutBodyBottomBarHeight: 54px;">
|
|
343
|
+
<div class="ApplicationLayoutHeader" id="ApplicationLayoutHeader">
|
|
344
|
+
<nav class="ApplicationHeader user-select-none">
|
|
345
|
+
<div class="navbar-header">
|
|
346
|
+
<span class="navbar-brand home-icon">
|
|
347
|
+
</span>
|
|
348
|
+
</div>
|
|
349
|
+
<ul class="ModuleNavigation AppMenu user-select-none pointer-events-none">
|
|
350
|
+
<li class="dropdown">
|
|
351
|
+
<a class="ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive" role="button" id="basic-nav-dropdown">
|
|
352
|
+
<span>RIO Service</span>
|
|
353
|
+
</a>
|
|
354
|
+
</li>
|
|
355
|
+
</ul>
|
|
356
|
+
<ul class="SubmoduleNavigation nav">
|
|
357
|
+
<li class="submodule " data-nav-item-key="1">
|
|
358
|
+
<a aria-current="page" class="active" href="#components/appLayout">Navigation 1</a>
|
|
359
|
+
</li>
|
|
360
|
+
<li class="submodule " data-nav-item-key="2">
|
|
361
|
+
<a href="#2">Navigation 2</a>
|
|
362
|
+
</li>
|
|
363
|
+
<li class="submodule " data-nav-item-key="3">
|
|
364
|
+
<a href="#3">Navigation 3</a>
|
|
365
|
+
</li>
|
|
366
|
+
</ul>
|
|
367
|
+
<ul class="ApplicationActionBar nav navbar-nav navbar-right ">
|
|
368
|
+
</ul>
|
|
369
|
+
</nav>
|
|
370
|
+
</div>
|
|
371
|
+
<div class="ApplicationLayoutBody uikitDemo">
|
|
372
|
+
<div class="module-content-wrapper">
|
|
373
|
+
<div class="ApplicationLayoutBodyNavigation">
|
|
374
|
+
<div class="SubNavigation width-100pct overflow-auto">
|
|
375
|
+
<ul class="SubmoduleNavigation nav">
|
|
376
|
+
<li class="submodule" data-nav-item-key="1">
|
|
377
|
+
<a aria-current="page" class="active" href="#components/appLayout">Subnavigation 1</a>
|
|
378
|
+
</li>
|
|
379
|
+
<li class="submodule" data-nav-item-key="2">
|
|
380
|
+
<a href="#2">Subnavigation 2</a>
|
|
381
|
+
</li>
|
|
382
|
+
<li class="submodule" data-nav-item-key="3">
|
|
383
|
+
<a href="#3">Subnavigation 3</a>
|
|
384
|
+
</li>
|
|
385
|
+
</ul>
|
|
386
|
+
</div>
|
|
387
|
+
</div>
|
|
388
|
+
<div class="module-content smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
|
|
389
|
+
<div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
|
|
390
|
+
<div class="scrollbar-content-wrapper">
|
|
391
|
+
<div class="scrollbar-content">
|
|
392
|
+
<div class="dummy-class">
|
|
393
|
+
</div>
|
|
394
|
+
</div>
|
|
395
|
+
</div>
|
|
396
|
+
</div>
|
|
397
|
+
<div class="scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; height: 6px; display: none;">
|
|
398
|
+
<div class="scrollbar-thumb-horizontal scrollbar-thumb-size-large" style="position: relative; display: block; height: 100%;">
|
|
399
|
+
</div>
|
|
400
|
+
</div>
|
|
401
|
+
<div class="scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; width: 6px; display: none;">
|
|
402
|
+
<div class="scrollbar-thumb-vertical scrollbar-thumb-size-large" style="position: relative; display: block; width: 100%;">
|
|
403
|
+
</div>
|
|
404
|
+
</div>
|
|
405
|
+
</div>
|
|
406
|
+
</div>
|
|
407
|
+
<span class="scroll-to-top">
|
|
408
|
+
<button type="button" class="btn btn-primary btn-icon-only">
|
|
409
|
+
<span class="rioglyph rioglyph-arrow-up">
|
|
410
|
+
</span>
|
|
411
|
+
</button>
|
|
412
|
+
</span>
|
|
413
|
+
</div>
|
|
414
|
+
</div>
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
#### Props: ApplicationLayout
|
|
418
|
+
|
|
419
|
+
### ApplicationLayout
|
|
420
|
+
|
|
421
|
+
| Name | Type | Default | Description |
|
|
422
|
+
| --- | --- | --- | --- |
|
|
423
|
+
| layoutRef | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
424
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
425
|
+
|
|
426
|
+
#### Props: ApplicationLayoutHeader
|
|
427
|
+
|
|
428
|
+
### ApplicationLayoutHeader
|
|
429
|
+
|
|
430
|
+
| Name | Type | Default | Description |
|
|
431
|
+
| --- | --- | --- | --- |
|
|
432
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
433
|
+
|
|
434
|
+
#### Props: ApplicationLayoutSidebar
|
|
435
|
+
|
|
436
|
+
### ApplicationLayoutSidebar
|
|
437
|
+
|
|
438
|
+
| Name | Type | Default | Description |
|
|
439
|
+
| --- | --- | --- | --- |
|
|
440
|
+
| ref | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
441
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
442
|
+
|
|
443
|
+
#### Props: ApplicationLayoutBody
|
|
444
|
+
|
|
445
|
+
### ApplicationLayoutBody
|
|
446
|
+
|
|
447
|
+
| Name | Type | Default | Description |
|
|
448
|
+
| --- | --- | --- | --- |
|
|
449
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
450
|
+
| innerClassName | String | — | Additional class names that are added to the inner module-content component. |
|
|
451
|
+
| children | any | — | Any component given to the layout components will be rendered |
|
|
452
|
+
| navigation | any | — | The ApplicationLayoutBodyNavigation component. |
|
|
453
|
+
| enableScrollToTop | Boolean | true | Show scroll to top button after scrolling the content. |
|
|
454
|
+
| forceScrollbar | Boolean | false | Always show vertical scrollbar to prevent the content from jumping. |
|
|
455
|
+
| bottomBar | Node \| String | — | Optional bottom bar component or a simple string. |
|
|
456
|
+
| bottomBarHeight | Number | 54 | Height of the bottomBar in pixel. |
|
|
457
|
+
| banner | any | — | The ApplicationLayoutBodyBanner component. |
|
|
458
|
+
|
|
459
|
+
#### Props: ApplicationLayoutBodyNavigation
|
|
460
|
+
|
|
461
|
+
### ApplicationLayoutBodyNavigation
|
|
462
|
+
|
|
463
|
+
| Name | Type | Default | Description |
|
|
464
|
+
| --- | --- | --- | --- |
|
|
465
|
+
| className | String | — | Additional class names that are added to the respective component. Example: "has-offset" |
|
|
466
|
+
|
|
467
|
+
#### Props: ApplicationLayoutBodyBottomBar
|
|
468
|
+
|
|
469
|
+
### ApplicationLayoutBodyBottomBar
|
|
470
|
+
|
|
471
|
+
| Name | Type | Default | Description |
|
|
472
|
+
| --- | --- | --- | --- |
|
|
473
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
474
|
+
| buttonAlignment | String | — | Tells the buttons if they are left or right aligned. Default behavior is: 1st button left and 2nd button right. ApplicationLayoutBodyBottomBar.LEFT, ApplicationLayoutBodyBottomBar.RIGHT or 'left''right' |
|
|
475
|
+
| useBodyPaddings | Boolean | false | Use same paddings (left and right) as the ApplicationLayoutBody. |
|
|
476
|
+
|
|
477
|
+
#### Props: ApplicationLayoutBodyBanner
|
|
478
|
+
|
|
479
|
+
### ApplicationLayoutBodyBanner
|
|
480
|
+
|
|
481
|
+
| Name | Type | Default | Description |
|
|
482
|
+
| --- | --- | --- | --- |
|
|
483
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
484
|
+
| backgroundColor | String | bg-primary | One of our bg-color utility classes. |
|
|
485
|
+
| textColor | string | text-color-white | One of our text-color utility classes. |
|
|
486
|
+
| isSticky | Boolean | false | Sticky while scrolling. |
|
|
487
|
+
|
|
488
|
+
## Body banner example
|
|
489
|
+
|
|
490
|
+
### Example: Example 3
|
|
491
|
+
|
|
492
|
+
RIO Service
|
|
493
|
+
|
|
494
|
+
Navigation 1
|
|
495
|
+
Navigation 2
|
|
496
|
+
Navigation 3
|
|
497
|
+
|
|
498
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, diam nonumy eirmod tempor invidunt.
|
|
499
|
+
|
|
500
|
+
#### Summary
|
|
501
|
+
|
|
502
|
+
RIO Service
|
|
503
|
+
|
|
504
|
+
Navigation 1
|
|
505
|
+
Navigation 2
|
|
506
|
+
Navigation 3
|
|
507
|
+
|
|
508
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, diam nonumy eirmod tempor invidunt.
|
|
509
|
+
|
|
510
|
+
#### React (tsx)
|
|
511
|
+
|
|
512
|
+
```tsx
|
|
513
|
+
import { NavLink } from 'react-router-dom';
|
|
514
|
+
|
|
515
|
+
import ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';
|
|
516
|
+
import ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';
|
|
517
|
+
import ApplicationLayoutBodyBanner from '@rio-cloud/rio-uikit/ApplicationLayoutBodyBanner';
|
|
518
|
+
|
|
519
|
+
const navItems = [
|
|
520
|
+
{ key: '1', route: <NavLink to='/components/appLayout'>Navigation 1</NavLink> },
|
|
521
|
+
{
|
|
522
|
+
key: '2',
|
|
523
|
+
route: (
|
|
524
|
+
<NavLink to='/2' onClick={event => event.preventDefault()}>
|
|
525
|
+
Navigation 2
|
|
526
|
+
</NavLink>
|
|
527
|
+
),
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
key: '3',
|
|
531
|
+
route: (
|
|
532
|
+
<NavLink to='/3' onClick={event => event.preventDefault()}>
|
|
533
|
+
Navigation 3
|
|
534
|
+
</NavLink>
|
|
535
|
+
),
|
|
536
|
+
},
|
|
537
|
+
];
|
|
538
|
+
|
|
539
|
+
export default () => (
|
|
540
|
+
<ApplicationLayout className='bg-lighter'>
|
|
541
|
+
<ApplicationLayout.Header>
|
|
542
|
+
<ApplicationHeader label='RIO Service' navItems={navItems} />
|
|
543
|
+
</ApplicationLayout.Header>
|
|
544
|
+
<ApplicationLayout.Body
|
|
545
|
+
className='uikitDemo'
|
|
546
|
+
banner={
|
|
547
|
+
<ApplicationLayoutBodyBanner>
|
|
548
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, diam nonumy eirmod tempor invidunt.
|
|
549
|
+
</ApplicationLayoutBodyBanner>
|
|
550
|
+
}
|
|
551
|
+
>
|
|
552
|
+
<div className='dummy-class' />
|
|
553
|
+
</ApplicationLayout.Body>
|
|
554
|
+
</ApplicationLayout>
|
|
555
|
+
);
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
#### HTML (html)
|
|
559
|
+
|
|
560
|
+
```html
|
|
561
|
+
<div class="ApplicationLayout bg-lighter" style="--ApplicationLayoutBodyBottomBarHeight: 54px;">
|
|
562
|
+
<div class="ApplicationLayoutHeader" id="ApplicationLayoutHeader">
|
|
563
|
+
<nav class="ApplicationHeader user-select-none">
|
|
564
|
+
<div class="navbar-header">
|
|
565
|
+
<span class="navbar-brand home-icon">
|
|
566
|
+
</span>
|
|
567
|
+
</div>
|
|
568
|
+
<ul class="ModuleNavigation AppMenu user-select-none pointer-events-none">
|
|
569
|
+
<li class="dropdown">
|
|
570
|
+
<a class="ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive" role="button" id="basic-nav-dropdown">
|
|
571
|
+
<span>RIO Service</span>
|
|
572
|
+
</a>
|
|
573
|
+
</li>
|
|
574
|
+
</ul>
|
|
575
|
+
<ul class="SubmoduleNavigation nav">
|
|
576
|
+
<li class="submodule " data-nav-item-key="1">
|
|
577
|
+
<a aria-current="page" class="active" href="#components/appLayout">Navigation 1</a>
|
|
578
|
+
</li>
|
|
579
|
+
<li class="submodule " data-nav-item-key="2">
|
|
580
|
+
<a href="#2">Navigation 2</a>
|
|
581
|
+
</li>
|
|
582
|
+
<li class="submodule " data-nav-item-key="3">
|
|
583
|
+
<a href="#3">Navigation 3</a>
|
|
584
|
+
</li>
|
|
585
|
+
</ul>
|
|
586
|
+
<ul class="ApplicationActionBar nav navbar-nav navbar-right ">
|
|
587
|
+
</ul>
|
|
588
|
+
</nav>
|
|
589
|
+
</div>
|
|
590
|
+
<div class="ApplicationLayoutBody uikitDemo">
|
|
591
|
+
<div class="module-content-wrapper">
|
|
592
|
+
<div class="ApplicationLayoutBodyBanner text-color-white bg-primary position-sticky top-0 z-index-3">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, diam nonumy eirmod tempor invidunt.</div>
|
|
593
|
+
<div class="module-content smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
|
|
594
|
+
<div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
|
|
595
|
+
<div class="scrollbar-content-wrapper">
|
|
596
|
+
<div class="scrollbar-content">
|
|
597
|
+
<div class="dummy-class">
|
|
598
|
+
</div>
|
|
599
|
+
</div>
|
|
600
|
+
</div>
|
|
601
|
+
</div>
|
|
602
|
+
<div class="scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; height: 6px; display: none;">
|
|
603
|
+
<div class="scrollbar-thumb-horizontal scrollbar-thumb-size-large" style="position: relative; display: block; height: 100%;">
|
|
604
|
+
</div>
|
|
605
|
+
</div>
|
|
606
|
+
<div class="scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; width: 6px; display: none;">
|
|
607
|
+
<div class="scrollbar-thumb-vertical scrollbar-thumb-size-large" style="position: relative; display: block; width: 100%;">
|
|
608
|
+
</div>
|
|
609
|
+
</div>
|
|
610
|
+
</div>
|
|
611
|
+
</div>
|
|
612
|
+
<span class="scroll-to-top">
|
|
613
|
+
<button type="button" class="btn btn-primary btn-icon-only">
|
|
614
|
+
<span class="rioglyph rioglyph-arrow-up">
|
|
615
|
+
</span>
|
|
616
|
+
</button>
|
|
617
|
+
</span>
|
|
618
|
+
</div>
|
|
619
|
+
</div>
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
#### Props: ApplicationLayout
|
|
623
|
+
|
|
624
|
+
### ApplicationLayout
|
|
625
|
+
|
|
626
|
+
| Name | Type | Default | Description |
|
|
627
|
+
| --- | --- | --- | --- |
|
|
628
|
+
| layoutRef | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
629
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
630
|
+
|
|
631
|
+
#### Props: ApplicationLayoutHeader
|
|
632
|
+
|
|
633
|
+
### ApplicationLayoutHeader
|
|
634
|
+
|
|
635
|
+
| Name | Type | Default | Description |
|
|
636
|
+
| --- | --- | --- | --- |
|
|
637
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
638
|
+
|
|
639
|
+
#### Props: ApplicationLayoutSidebar
|
|
640
|
+
|
|
641
|
+
### ApplicationLayoutSidebar
|
|
642
|
+
|
|
643
|
+
| Name | Type | Default | Description |
|
|
644
|
+
| --- | --- | --- | --- |
|
|
645
|
+
| ref | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
646
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
647
|
+
|
|
648
|
+
#### Props: ApplicationLayoutBody
|
|
649
|
+
|
|
650
|
+
### ApplicationLayoutBody
|
|
651
|
+
|
|
652
|
+
| Name | Type | Default | Description |
|
|
653
|
+
| --- | --- | --- | --- |
|
|
654
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
655
|
+
| innerClassName | String | — | Additional class names that are added to the inner module-content component. |
|
|
656
|
+
| children | any | — | Any component given to the layout components will be rendered |
|
|
657
|
+
| navigation | any | — | The ApplicationLayoutBodyNavigation component. |
|
|
658
|
+
| enableScrollToTop | Boolean | true | Show scroll to top button after scrolling the content. |
|
|
659
|
+
| forceScrollbar | Boolean | false | Always show vertical scrollbar to prevent the content from jumping. |
|
|
660
|
+
| bottomBar | Node \| String | — | Optional bottom bar component or a simple string. |
|
|
661
|
+
| bottomBarHeight | Number | 54 | Height of the bottomBar in pixel. |
|
|
662
|
+
| banner | any | — | The ApplicationLayoutBodyBanner component. |
|
|
663
|
+
|
|
664
|
+
#### Props: ApplicationLayoutBodyNavigation
|
|
665
|
+
|
|
666
|
+
### ApplicationLayoutBodyNavigation
|
|
667
|
+
|
|
668
|
+
| Name | Type | Default | Description |
|
|
669
|
+
| --- | --- | --- | --- |
|
|
670
|
+
| className | String | — | Additional class names that are added to the respective component. Example: "has-offset" |
|
|
671
|
+
|
|
672
|
+
#### Props: ApplicationLayoutBodyBottomBar
|
|
673
|
+
|
|
674
|
+
### ApplicationLayoutBodyBottomBar
|
|
675
|
+
|
|
676
|
+
| Name | Type | Default | Description |
|
|
677
|
+
| --- | --- | --- | --- |
|
|
678
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
679
|
+
| buttonAlignment | String | — | Tells the buttons if they are left or right aligned. Default behavior is: 1st button left and 2nd button right. ApplicationLayoutBodyBottomBar.LEFT, ApplicationLayoutBodyBottomBar.RIGHT or 'left''right' |
|
|
680
|
+
| useBodyPaddings | Boolean | false | Use same paddings (left and right) as the ApplicationLayoutBody. |
|
|
681
|
+
|
|
682
|
+
#### Props: ApplicationLayoutBodyBanner
|
|
683
|
+
|
|
684
|
+
### ApplicationLayoutBodyBanner
|
|
685
|
+
|
|
686
|
+
| Name | Type | Default | Description |
|
|
687
|
+
| --- | --- | --- | --- |
|
|
688
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
689
|
+
| backgroundColor | String | bg-primary | One of our bg-color utility classes. |
|
|
690
|
+
| textColor | string | text-color-white | One of our text-color utility classes. |
|
|
691
|
+
| isSticky | Boolean | false | Sticky while scrolling. |
|
|
692
|
+
|
|
693
|
+
## Bottom bar example
|
|
694
|
+
|
|
695
|
+
### Example: Example 4
|
|
696
|
+
|
|
697
|
+
RIO Service
|
|
698
|
+
|
|
699
|
+
Navigation 1
|
|
700
|
+
Navigation 2
|
|
701
|
+
Navigation 3
|
|
702
|
+
|
|
703
|
+
Button
|
|
704
|
+
|
|
705
|
+
#### Summary
|
|
706
|
+
|
|
707
|
+
RIO Service
|
|
708
|
+
|
|
709
|
+
Navigation 1
|
|
710
|
+
Navigation 2
|
|
711
|
+
Navigation 3
|
|
712
|
+
|
|
713
|
+
Button
|
|
714
|
+
|
|
715
|
+
#### React (tsx)
|
|
716
|
+
|
|
717
|
+
```tsx
|
|
718
|
+
import { NavLink } from 'react-router-dom';
|
|
719
|
+
|
|
720
|
+
import ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';
|
|
721
|
+
import ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';
|
|
722
|
+
import ApplicationLayoutBodyBottomBar from '@rio-cloud/rio-uikit/ApplicationLayoutBodyBottomBar';
|
|
723
|
+
|
|
724
|
+
const navItems = [
|
|
725
|
+
{ key: '1', route: <NavLink to='/components/appLayout'>Navigation 1</NavLink> },
|
|
726
|
+
{
|
|
727
|
+
key: '2',
|
|
728
|
+
route: (
|
|
729
|
+
<NavLink to='/2' onClick={event => event.preventDefault()}>
|
|
730
|
+
Navigation 2
|
|
731
|
+
</NavLink>
|
|
732
|
+
),
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
key: '3',
|
|
736
|
+
route: (
|
|
737
|
+
<NavLink to='/3' onClick={event => event.preventDefault()}>
|
|
738
|
+
Navigation 3
|
|
739
|
+
</NavLink>
|
|
740
|
+
),
|
|
741
|
+
},
|
|
742
|
+
];
|
|
743
|
+
|
|
744
|
+
export default () => (
|
|
745
|
+
<ApplicationLayout className='bg-lighter'>
|
|
746
|
+
<ApplicationLayout.Header>
|
|
747
|
+
<ApplicationHeader label='RIO Service' navItems={navItems} />
|
|
748
|
+
</ApplicationLayout.Header>
|
|
749
|
+
<ApplicationLayout.Body
|
|
750
|
+
className='uikitDemo'
|
|
751
|
+
bottomBar={
|
|
752
|
+
<ApplicationLayoutBodyBottomBar>
|
|
753
|
+
<button type='button' className='btn btn-primary'>
|
|
754
|
+
Button
|
|
755
|
+
</button>
|
|
756
|
+
</ApplicationLayoutBodyBottomBar>
|
|
757
|
+
}
|
|
758
|
+
>
|
|
759
|
+
<div className='dummy-class' />
|
|
760
|
+
</ApplicationLayout.Body>
|
|
761
|
+
</ApplicationLayout>
|
|
762
|
+
);
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
#### HTML (html)
|
|
766
|
+
|
|
767
|
+
```html
|
|
768
|
+
<div class="ApplicationLayout bg-lighter" style="--ApplicationLayoutBodyBottomBarHeight: 54px;">
|
|
769
|
+
<div class="ApplicationLayoutHeader" id="ApplicationLayoutHeader">
|
|
770
|
+
<nav class="ApplicationHeader user-select-none">
|
|
771
|
+
<div class="navbar-header">
|
|
772
|
+
<span class="navbar-brand home-icon">
|
|
773
|
+
</span>
|
|
774
|
+
</div>
|
|
775
|
+
<ul class="ModuleNavigation AppMenu user-select-none pointer-events-none">
|
|
776
|
+
<li class="dropdown">
|
|
777
|
+
<a class="ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive" role="button" id="basic-nav-dropdown">
|
|
778
|
+
<span>RIO Service</span>
|
|
779
|
+
</a>
|
|
780
|
+
</li>
|
|
781
|
+
</ul>
|
|
782
|
+
<ul class="SubmoduleNavigation nav">
|
|
783
|
+
<li class="submodule " data-nav-item-key="1">
|
|
784
|
+
<a aria-current="page" class="active" href="#components/appLayout">Navigation 1</a>
|
|
785
|
+
</li>
|
|
786
|
+
<li class="submodule " data-nav-item-key="2">
|
|
787
|
+
<a href="#2">Navigation 2</a>
|
|
788
|
+
</li>
|
|
789
|
+
<li class="submodule " data-nav-item-key="3">
|
|
790
|
+
<a href="#3">Navigation 3</a>
|
|
791
|
+
</li>
|
|
792
|
+
</ul>
|
|
793
|
+
<ul class="ApplicationActionBar nav navbar-nav navbar-right ">
|
|
794
|
+
</ul>
|
|
795
|
+
</nav>
|
|
796
|
+
</div>
|
|
797
|
+
<div class="ApplicationLayoutBody has-footer uikitDemo">
|
|
798
|
+
<div class="module-content-wrapper">
|
|
799
|
+
<div class="module-content smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
|
|
800
|
+
<div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
|
|
801
|
+
<div class="scrollbar-content-wrapper">
|
|
802
|
+
<div class="scrollbar-content">
|
|
803
|
+
<div class="dummy-class">
|
|
804
|
+
</div>
|
|
805
|
+
</div>
|
|
806
|
+
</div>
|
|
807
|
+
</div>
|
|
808
|
+
<div class="scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; height: 6px; display: none;">
|
|
809
|
+
<div class="scrollbar-thumb-horizontal scrollbar-thumb-size-large" style="position: relative; display: block; height: 100%;">
|
|
810
|
+
</div>
|
|
811
|
+
</div>
|
|
812
|
+
<div class="scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; width: 6px; display: none;">
|
|
813
|
+
<div class="scrollbar-thumb-vertical scrollbar-thumb-size-large" style="position: relative; display: block; width: 100%;">
|
|
814
|
+
</div>
|
|
815
|
+
</div>
|
|
816
|
+
</div>
|
|
817
|
+
</div>
|
|
818
|
+
<span class="scroll-to-top">
|
|
819
|
+
<button type="button" class="btn btn-primary btn-icon-only">
|
|
820
|
+
<span class="rioglyph rioglyph-arrow-up">
|
|
821
|
+
</span>
|
|
822
|
+
</button>
|
|
823
|
+
</span>
|
|
824
|
+
</div>
|
|
825
|
+
<div class="ApplicationLayoutBodyBottomBar justify-content-between">
|
|
826
|
+
<button type="button" class="btn btn-primary">Button</button>
|
|
827
|
+
</div>
|
|
828
|
+
</div>
|
|
829
|
+
```
|
|
830
|
+
|
|
831
|
+
#### Props: ApplicationLayout
|
|
832
|
+
|
|
833
|
+
### ApplicationLayout
|
|
834
|
+
|
|
835
|
+
| Name | Type | Default | Description |
|
|
836
|
+
| --- | --- | --- | --- |
|
|
837
|
+
| layoutRef | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
838
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
839
|
+
|
|
840
|
+
#### Props: ApplicationLayoutHeader
|
|
841
|
+
|
|
842
|
+
### ApplicationLayoutHeader
|
|
843
|
+
|
|
844
|
+
| Name | Type | Default | Description |
|
|
845
|
+
| --- | --- | --- | --- |
|
|
846
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
847
|
+
|
|
848
|
+
#### Props: ApplicationLayoutSidebar
|
|
849
|
+
|
|
850
|
+
### ApplicationLayoutSidebar
|
|
851
|
+
|
|
852
|
+
| Name | Type | Default | Description |
|
|
853
|
+
| --- | --- | --- | --- |
|
|
854
|
+
| ref | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
855
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
856
|
+
|
|
857
|
+
#### Props: ApplicationLayoutBody
|
|
858
|
+
|
|
859
|
+
### ApplicationLayoutBody
|
|
860
|
+
|
|
861
|
+
| Name | Type | Default | Description |
|
|
862
|
+
| --- | --- | --- | --- |
|
|
863
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
864
|
+
| innerClassName | String | — | Additional class names that are added to the inner module-content component. |
|
|
865
|
+
| children | any | — | Any component given to the layout components will be rendered |
|
|
866
|
+
| navigation | any | — | The ApplicationLayoutBodyNavigation component. |
|
|
867
|
+
| enableScrollToTop | Boolean | true | Show scroll to top button after scrolling the content. |
|
|
868
|
+
| forceScrollbar | Boolean | false | Always show vertical scrollbar to prevent the content from jumping. |
|
|
869
|
+
| bottomBar | Node \| String | — | Optional bottom bar component or a simple string. |
|
|
870
|
+
| bottomBarHeight | Number | 54 | Height of the bottomBar in pixel. |
|
|
871
|
+
| banner | any | — | The ApplicationLayoutBodyBanner component. |
|
|
872
|
+
|
|
873
|
+
#### Props: ApplicationLayoutBodyNavigation
|
|
874
|
+
|
|
875
|
+
### ApplicationLayoutBodyNavigation
|
|
876
|
+
|
|
877
|
+
| Name | Type | Default | Description |
|
|
878
|
+
| --- | --- | --- | --- |
|
|
879
|
+
| className | String | — | Additional class names that are added to the respective component. Example: "has-offset" |
|
|
880
|
+
|
|
881
|
+
#### Props: ApplicationLayoutBodyBottomBar
|
|
882
|
+
|
|
883
|
+
### ApplicationLayoutBodyBottomBar
|
|
884
|
+
|
|
885
|
+
| Name | Type | Default | Description |
|
|
886
|
+
| --- | --- | --- | --- |
|
|
887
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
888
|
+
| buttonAlignment | String | — | Tells the buttons if they are left or right aligned. Default behavior is: 1st button left and 2nd button right. ApplicationLayoutBodyBottomBar.LEFT, ApplicationLayoutBodyBottomBar.RIGHT or 'left''right' |
|
|
889
|
+
| useBodyPaddings | Boolean | false | Use same paddings (left and right) as the ApplicationLayoutBody. |
|
|
890
|
+
|
|
891
|
+
#### Props: ApplicationLayoutBodyBanner
|
|
892
|
+
|
|
893
|
+
### ApplicationLayoutBodyBanner
|
|
894
|
+
|
|
895
|
+
| Name | Type | Default | Description |
|
|
896
|
+
| --- | --- | --- | --- |
|
|
897
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
898
|
+
| backgroundColor | String | bg-primary | One of our bg-color utility classes. |
|
|
899
|
+
| textColor | string | text-color-white | One of our text-color utility classes. |
|
|
900
|
+
| isSticky | Boolean | false | Sticky while scrolling. |
|
|
901
|
+
|
|
902
|
+
## Sidebar Example
|
|
903
|
+
|
|
904
|
+
### Example: Example 5
|
|
905
|
+
|
|
906
|
+
RIO Service
|
|
907
|
+
|
|
908
|
+
Navigation 1
|
|
909
|
+
Navigation 2
|
|
910
|
+
Navigation 3
|
|
911
|
+
|
|
912
|
+
Sidebar Right
|
|
913
|
+
|
|
914
|
+
Sidebar components may be added here...
|
|
915
|
+
|
|
916
|
+
Button
|
|
917
|
+
|
|
918
|
+
#### Summary
|
|
919
|
+
|
|
920
|
+
RIO Service
|
|
921
|
+
|
|
922
|
+
Navigation 1
|
|
923
|
+
Navigation 2
|
|
924
|
+
Navigation 3
|
|
925
|
+
|
|
926
|
+
Sidebar Right
|
|
927
|
+
|
|
928
|
+
Sidebar components may be added here...
|
|
929
|
+
|
|
930
|
+
Button
|
|
931
|
+
|
|
932
|
+
#### React (tsx)
|
|
933
|
+
|
|
934
|
+
```tsx
|
|
935
|
+
import { NavLink } from 'react-router-dom';
|
|
936
|
+
|
|
937
|
+
import ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';
|
|
938
|
+
import ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';
|
|
939
|
+
import Sidebar from '@rio-cloud/rio-uikit/Sidebar';
|
|
940
|
+
|
|
941
|
+
const navItems = [
|
|
942
|
+
{ key: '1', route: <NavLink to='/components/appLayout'>Navigation 1</NavLink> },
|
|
943
|
+
{
|
|
944
|
+
key: '2',
|
|
945
|
+
route: (
|
|
946
|
+
<NavLink to='/2' onClick={event => event.preventDefault()}>
|
|
947
|
+
Navigation 2
|
|
948
|
+
</NavLink>
|
|
949
|
+
),
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
key: '3',
|
|
953
|
+
route: (
|
|
954
|
+
<NavLink to='/3' onClick={event => event.preventDefault()}>
|
|
955
|
+
Navigation 3
|
|
956
|
+
</NavLink>
|
|
957
|
+
),
|
|
958
|
+
},
|
|
959
|
+
];
|
|
960
|
+
|
|
961
|
+
export default () => (
|
|
962
|
+
<ApplicationLayout className='bg-lighter'>
|
|
963
|
+
<ApplicationLayout.Header>
|
|
964
|
+
<ApplicationHeader label='RIO Service' navItems={navItems} />
|
|
965
|
+
</ApplicationLayout.Header>
|
|
966
|
+
<ApplicationLayout.Sidebar className='right bg-white'>
|
|
967
|
+
<Sidebar
|
|
968
|
+
title='Sidebar Right'
|
|
969
|
+
titleClassName='padding-left-10'
|
|
970
|
+
closed={false}
|
|
971
|
+
onClose={() => {}}
|
|
972
|
+
position={Sidebar.RIGHT}
|
|
973
|
+
resizable
|
|
974
|
+
minWidth={300}
|
|
975
|
+
maxWidth={600}
|
|
976
|
+
footer={
|
|
977
|
+
<button className='btn btn-primary' type='button' onClick={() => {}}>
|
|
978
|
+
Button
|
|
979
|
+
</button>
|
|
980
|
+
}
|
|
981
|
+
>
|
|
982
|
+
<div className='padding-left-20 padding-right-20'>Sidebar components may be added here...</div>
|
|
983
|
+
</Sidebar>
|
|
984
|
+
</ApplicationLayout.Sidebar>
|
|
985
|
+
<ApplicationLayout.Body className='uikitDemo'>
|
|
986
|
+
<div className='dummy-class' />
|
|
987
|
+
</ApplicationLayout.Body>
|
|
988
|
+
</ApplicationLayout>
|
|
989
|
+
);
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
#### HTML (html)
|
|
993
|
+
|
|
994
|
+
```html
|
|
995
|
+
<div class="ApplicationLayout bg-lighter" style="--ApplicationLayoutBodyBottomBarHeight: 54px;">
|
|
996
|
+
<div class="ApplicationLayoutHeader" id="ApplicationLayoutHeader">
|
|
997
|
+
<nav class="ApplicationHeader user-select-none">
|
|
998
|
+
<div class="navbar-header">
|
|
999
|
+
<span class="navbar-brand home-icon">
|
|
1000
|
+
</span>
|
|
1001
|
+
</div>
|
|
1002
|
+
<ul class="ModuleNavigation AppMenu user-select-none pointer-events-none">
|
|
1003
|
+
<li class="dropdown">
|
|
1004
|
+
<a class="ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive" role="button" id="basic-nav-dropdown">
|
|
1005
|
+
<span>RIO Service</span>
|
|
1006
|
+
</a>
|
|
1007
|
+
</li>
|
|
1008
|
+
</ul>
|
|
1009
|
+
<ul class="SubmoduleNavigation nav">
|
|
1010
|
+
<li class="submodule " data-nav-item-key="1">
|
|
1011
|
+
<a aria-current="page" class="active" href="#components/appLayout">Navigation 1</a>
|
|
1012
|
+
</li>
|
|
1013
|
+
<li class="submodule " data-nav-item-key="2">
|
|
1014
|
+
<a href="#2">Navigation 2</a>
|
|
1015
|
+
</li>
|
|
1016
|
+
<li class="submodule " data-nav-item-key="3">
|
|
1017
|
+
<a href="#3">Navigation 3</a>
|
|
1018
|
+
</li>
|
|
1019
|
+
</ul>
|
|
1020
|
+
<ul class="ApplicationActionBar nav navbar-nav navbar-right ">
|
|
1021
|
+
</ul>
|
|
1022
|
+
</nav>
|
|
1023
|
+
</div>
|
|
1024
|
+
<div class="ApplicationLayoutSidebar right bg-white">
|
|
1025
|
+
<div class="Sidebar fluid" style="width: 350px; opacity: 1; display: block; transform: none;">
|
|
1026
|
+
<div class="SidebarResizeLimit" style="right: 600px;">
|
|
1027
|
+
</div>
|
|
1028
|
+
<div class="SidebarContent">
|
|
1029
|
+
<div class="SidebarHeader">
|
|
1030
|
+
<div class="SidebarTitle padding-left-10">Sidebar Right</div>
|
|
1031
|
+
<div class="SidebarButtons non-printable close">
|
|
1032
|
+
<button type="button" data-testid="sidebarCloseButton" class="btn btn-muted btn-icon-only btn-component" tabindex="0">
|
|
1033
|
+
<span class="rioglyph rioglyph-remove">
|
|
1034
|
+
</span>
|
|
1035
|
+
</button>
|
|
1036
|
+
</div>
|
|
1037
|
+
</div>
|
|
1038
|
+
<div class="SidebarBody">
|
|
1039
|
+
<div class="padding-left-20 padding-right-20">Sidebar components may be added here...</div>
|
|
1040
|
+
</div>
|
|
1041
|
+
<div class="SidebarFooter">
|
|
1042
|
+
<button class="btn btn-primary" type="button">Button</button>
|
|
1043
|
+
</div>
|
|
1044
|
+
</div>
|
|
1045
|
+
<div class="Resizer resize-horizontal resize-left">
|
|
1046
|
+
</div>
|
|
1047
|
+
</div>
|
|
1048
|
+
</div>
|
|
1049
|
+
<div class="ApplicationLayoutBody uikitDemo">
|
|
1050
|
+
<div class="module-content-wrapper">
|
|
1051
|
+
<div class="module-content smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
|
|
1052
|
+
<div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
|
|
1053
|
+
<div class="scrollbar-content-wrapper">
|
|
1054
|
+
<div class="scrollbar-content">
|
|
1055
|
+
<div class="dummy-class">
|
|
1056
|
+
</div>
|
|
1057
|
+
</div>
|
|
1058
|
+
</div>
|
|
1059
|
+
</div>
|
|
1060
|
+
<div class="scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; height: 6px; display: none;">
|
|
1061
|
+
<div class="scrollbar-thumb-horizontal scrollbar-thumb-size-large" style="position: relative; display: block; height: 100%;">
|
|
1062
|
+
</div>
|
|
1063
|
+
</div>
|
|
1064
|
+
<div class="scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; width: 6px; display: none;">
|
|
1065
|
+
<div class="scrollbar-thumb-vertical scrollbar-thumb-size-large" style="position: relative; display: block; width: 100%;">
|
|
1066
|
+
</div>
|
|
1067
|
+
</div>
|
|
1068
|
+
</div>
|
|
1069
|
+
</div>
|
|
1070
|
+
<span class="scroll-to-top">
|
|
1071
|
+
<button type="button" class="btn btn-primary btn-icon-only">
|
|
1072
|
+
<span class="rioglyph rioglyph-arrow-up">
|
|
1073
|
+
</span>
|
|
1074
|
+
</button>
|
|
1075
|
+
</span>
|
|
1076
|
+
</div>
|
|
1077
|
+
</div>
|
|
1078
|
+
```
|
|
1079
|
+
|
|
1080
|
+
#### Props: ApplicationLayout
|
|
1081
|
+
|
|
1082
|
+
### ApplicationLayout
|
|
1083
|
+
|
|
1084
|
+
| Name | Type | Default | Description |
|
|
1085
|
+
| --- | --- | --- | --- |
|
|
1086
|
+
| layoutRef | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
1087
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1088
|
+
|
|
1089
|
+
#### Props: ApplicationLayoutHeader
|
|
1090
|
+
|
|
1091
|
+
### ApplicationLayoutHeader
|
|
1092
|
+
|
|
1093
|
+
| Name | Type | Default | Description |
|
|
1094
|
+
| --- | --- | --- | --- |
|
|
1095
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1096
|
+
|
|
1097
|
+
#### Props: ApplicationLayoutSidebar
|
|
1098
|
+
|
|
1099
|
+
### ApplicationLayoutSidebar
|
|
1100
|
+
|
|
1101
|
+
| Name | Type | Default | Description |
|
|
1102
|
+
| --- | --- | --- | --- |
|
|
1103
|
+
| ref | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
1104
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1105
|
+
|
|
1106
|
+
#### Props: ApplicationLayoutBody
|
|
1107
|
+
|
|
1108
|
+
### ApplicationLayoutBody
|
|
1109
|
+
|
|
1110
|
+
| Name | Type | Default | Description |
|
|
1111
|
+
| --- | --- | --- | --- |
|
|
1112
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1113
|
+
| innerClassName | String | — | Additional class names that are added to the inner module-content component. |
|
|
1114
|
+
| children | any | — | Any component given to the layout components will be rendered |
|
|
1115
|
+
| navigation | any | — | The ApplicationLayoutBodyNavigation component. |
|
|
1116
|
+
| enableScrollToTop | Boolean | true | Show scroll to top button after scrolling the content. |
|
|
1117
|
+
| forceScrollbar | Boolean | false | Always show vertical scrollbar to prevent the content from jumping. |
|
|
1118
|
+
| bottomBar | Node \| String | — | Optional bottom bar component or a simple string. |
|
|
1119
|
+
| bottomBarHeight | Number | 54 | Height of the bottomBar in pixel. |
|
|
1120
|
+
| banner | any | — | The ApplicationLayoutBodyBanner component. |
|
|
1121
|
+
|
|
1122
|
+
#### Props: ApplicationLayoutBodyNavigation
|
|
1123
|
+
|
|
1124
|
+
### ApplicationLayoutBodyNavigation
|
|
1125
|
+
|
|
1126
|
+
| Name | Type | Default | Description |
|
|
1127
|
+
| --- | --- | --- | --- |
|
|
1128
|
+
| className | String | — | Additional class names that are added to the respective component. Example: "has-offset" |
|
|
1129
|
+
|
|
1130
|
+
#### Props: ApplicationLayoutBodyBottomBar
|
|
1131
|
+
|
|
1132
|
+
### ApplicationLayoutBodyBottomBar
|
|
1133
|
+
|
|
1134
|
+
| Name | Type | Default | Description |
|
|
1135
|
+
| --- | --- | --- | --- |
|
|
1136
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1137
|
+
| buttonAlignment | String | — | Tells the buttons if they are left or right aligned. Default behavior is: 1st button left and 2nd button right. ApplicationLayoutBodyBottomBar.LEFT, ApplicationLayoutBodyBottomBar.RIGHT or 'left''right' |
|
|
1138
|
+
| useBodyPaddings | Boolean | false | Use same paddings (left and right) as the ApplicationLayoutBody. |
|
|
1139
|
+
|
|
1140
|
+
#### Props: ApplicationLayoutBodyBanner
|
|
1141
|
+
|
|
1142
|
+
### ApplicationLayoutBodyBanner
|
|
1143
|
+
|
|
1144
|
+
| Name | Type | Default | Description |
|
|
1145
|
+
| --- | --- | --- | --- |
|
|
1146
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1147
|
+
| backgroundColor | String | bg-primary | One of our bg-color utility classes. |
|
|
1148
|
+
| textColor | string | text-color-white | One of our text-color utility classes. |
|
|
1149
|
+
| isSticky | Boolean | false | Sticky while scrolling. |
|
|
1150
|
+
|
|
1151
|
+
## Complete example with all components
|
|
1152
|
+
|
|
1153
|
+
### Example: Example 6
|
|
1154
|
+
|
|
1155
|
+
RIO Service
|
|
1156
|
+
|
|
1157
|
+
Navigation 1
|
|
1158
|
+
Navigation 2
|
|
1159
|
+
Navigation 3
|
|
1160
|
+
|
|
1161
|
+
4
|
|
1162
|
+
|
|
1163
|
+
5
|
|
1164
|
+
2
|
|
1165
|
+
1
|
|
1166
|
+
|
|
1167
|
+
Asset Group3
|
|
1168
|
+
Vehicle-2115Asset 1005
|
|
1169
|
+
Vehicle-2747Asset 1001
|
|
1170
|
+
Vehicle-5156Asset 1000
|
|
1171
|
+
|
|
1172
|
+
Ungrouped5
|
|
1173
|
+
|
|
1174
|
+
200
|
|
1175
|
+
|
|
1176
|
+
Sidebar Right
|
|
1177
|
+
|
|
1178
|
+
Sidebar components may be added here...
|
|
1179
|
+
|
|
1180
|
+
Close
|
|
1181
|
+
|
|
1182
|
+
Subnavigation 1
|
|
1183
|
+
Subnavigation 2
|
|
1184
|
+
Subnavigation 3
|
|
1185
|
+
|
|
1186
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, diam nonumy eirmod tempor invidunt.
|
|
1187
|
+
Sample Service Content
|
|
1188
|
+
Open Sidebar
|
|
1189
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
1190
|
+
|
|
1191
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
1192
|
+
|
|
1193
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
1194
|
+
|
|
1195
|
+
Bottom Button
|
|
1196
|
+
|
|
1197
|
+
#### Summary
|
|
1198
|
+
|
|
1199
|
+
RIO Service
|
|
1200
|
+
|
|
1201
|
+
Navigation 1
|
|
1202
|
+
Navigation 2
|
|
1203
|
+
Navigation 3
|
|
1204
|
+
|
|
1205
|
+
4
|
|
1206
|
+
|
|
1207
|
+
5
|
|
1208
|
+
2
|
|
1209
|
+
1
|
|
1210
|
+
|
|
1211
|
+
Asset Group3
|
|
1212
|
+
Vehicle-2115Asset 1005
|
|
1213
|
+
Vehicle-2747Asset 1001
|
|
1214
|
+
Vehicle-5156Asset 1000
|
|
1215
|
+
|
|
1216
|
+
Ungrouped5
|
|
1217
|
+
|
|
1218
|
+
200
|
|
1219
|
+
|
|
1220
|
+
Sidebar Right
|
|
1221
|
+
|
|
1222
|
+
Sidebar components may be added here...
|
|
1223
|
+
|
|
1224
|
+
Close
|
|
1225
|
+
|
|
1226
|
+
Subnavigation 1
|
|
1227
|
+
Subnavigation 2
|
|
1228
|
+
Subnavigation 3
|
|
1229
|
+
|
|
1230
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, diam nonumy eirmod tempor invidunt.
|
|
1231
|
+
Sample Service Content
|
|
1232
|
+
Open Sidebar
|
|
1233
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
1234
|
+
|
|
1235
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
1236
|
+
|
|
1237
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
1238
|
+
|
|
1239
|
+
Bottom Button
|
|
1240
|
+
|
|
1241
|
+
#### React (tsx)
|
|
1242
|
+
|
|
1243
|
+
```tsx
|
|
1244
|
+
import { useState, useEffect } from 'react';
|
|
1245
|
+
import { Link, NavLink } from 'react-router-dom';
|
|
1246
|
+
import { random } from 'es-toolkit/compat';
|
|
1247
|
+
import faker from 'faker';
|
|
1248
|
+
import IframeResizer from 'iframe-resizer-react';
|
|
1249
|
+
|
|
1250
|
+
import ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';
|
|
1251
|
+
import ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';
|
|
1252
|
+
import ActionBarItem from '@rio-cloud/rio-uikit/ActionBarItem';
|
|
1253
|
+
import ApplicationLayoutBodyBanner from '@rio-cloud/rio-uikit/ApplicationLayoutBodyBanner';
|
|
1254
|
+
import ApplicationLayoutBodyBottomBar from '@rio-cloud/rio-uikit/ApplicationLayoutBodyBottomBar';
|
|
1255
|
+
import ApplicationLayoutBodyNavigation from '@rio-cloud/rio-uikit/ApplicationLayoutBodyNavigation';
|
|
1256
|
+
import SubNavigation from '@rio-cloud/rio-uikit/SubNavigation';
|
|
1257
|
+
import useResizeObserver from '@rio-cloud/rio-uikit/useResizeObserver';
|
|
1258
|
+
import { SCREEN_MD } from '@rio-cloud/rio-uikit/DeviceUtils';
|
|
1259
|
+
import Sidebar from '@rio-cloud/rio-uikit/Sidebar';
|
|
1260
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
1261
|
+
import Notification from '@rio-cloud/rio-uikit/Notification';
|
|
1262
|
+
import AssetTree from '@rio-cloud/rio-uikit/AssetTree';
|
|
1263
|
+
import TreeCategory from '@rio-cloud/rio-uikit/TreeCategory';
|
|
1264
|
+
import Tree, { type TreeGroup } from '@rio-cloud/rio-uikit/Tree';
|
|
1265
|
+
|
|
1266
|
+
import { dummyTextLong } from '../../../utils/data';
|
|
1267
|
+
|
|
1268
|
+
const CATEGORY_ASSETS = 'trucks';
|
|
1269
|
+
const CATEGORY_DRIVER = 'driver';
|
|
1270
|
+
|
|
1271
|
+
const navItems = [
|
|
1272
|
+
{ key: '1', route: <NavLink to='/components/appLayout'>Navigation 1</NavLink> },
|
|
1273
|
+
{
|
|
1274
|
+
key: '2',
|
|
1275
|
+
route: (
|
|
1276
|
+
<NavLink to='/2' onClick={event => event.preventDefault()}>
|
|
1277
|
+
Navigation 2
|
|
1278
|
+
</NavLink>
|
|
1279
|
+
),
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
key: '3',
|
|
1283
|
+
route: (
|
|
1284
|
+
<NavLink to='/3' onClick={event => event.preventDefault()}>
|
|
1285
|
+
Navigation 3
|
|
1286
|
+
</NavLink>
|
|
1287
|
+
),
|
|
1288
|
+
},
|
|
1289
|
+
];
|
|
1290
|
+
|
|
1291
|
+
const ServiceInfo = () => (
|
|
1292
|
+
<ActionBarItem.List>
|
|
1293
|
+
<ActionBarItem.ListItem icon='rioglyph-hand-right' onClick={() => Notification.info('Show Welcome Dialog')}>
|
|
1294
|
+
<div className='display-flex align-items-center gap-5'>
|
|
1295
|
+
<span>Welcome</span>
|
|
1296
|
+
<span className='badge badge-primary'>1</span>
|
|
1297
|
+
</div>
|
|
1298
|
+
</ActionBarItem.ListItem>
|
|
1299
|
+
<ActionBarItem.ListItem
|
|
1300
|
+
icon='rioglyph-exclamation-sign'
|
|
1301
|
+
onClick={() => Notification.info("Show What's New Dialog")}
|
|
1302
|
+
>
|
|
1303
|
+
What's new?
|
|
1304
|
+
</ActionBarItem.ListItem>
|
|
1305
|
+
<ActionBarItem.ListItem icon='rioglyph-question-sign' onClick={() => Notification.info('Show Features Dialog')}>
|
|
1306
|
+
Features
|
|
1307
|
+
</ActionBarItem.ListItem>
|
|
1308
|
+
<ActionBarItem.ListItem icon='rioglyph-envelope' hasLink>
|
|
1309
|
+
<Link to='/components/appHeader'>Feedback</Link>
|
|
1310
|
+
</ActionBarItem.ListItem>
|
|
1311
|
+
</ActionBarItem.List>
|
|
1312
|
+
);
|
|
1313
|
+
|
|
1314
|
+
const ServiceInfoComponent = (
|
|
1315
|
+
<ActionBarItem id='serviceInfo' className='myItem'>
|
|
1316
|
+
<ActionBarItem.Icon>
|
|
1317
|
+
<span className='icon rioglyph rioglyph-info-sign' />
|
|
1318
|
+
</ActionBarItem.Icon>
|
|
1319
|
+
<ActionBarItem.Popover
|
|
1320
|
+
className='myItemPopover'
|
|
1321
|
+
title={
|
|
1322
|
+
<div>
|
|
1323
|
+
<span>Service XYZ</span>
|
|
1324
|
+
<span className='text-color-gray margin-left-10'>v1.1.0</span>
|
|
1325
|
+
</div>
|
|
1326
|
+
}
|
|
1327
|
+
>
|
|
1328
|
+
<ServiceInfo />
|
|
1329
|
+
</ActionBarItem.Popover>
|
|
1330
|
+
</ActionBarItem>
|
|
1331
|
+
);
|
|
1332
|
+
|
|
1333
|
+
const AccountMenuComponent = (
|
|
1334
|
+
<ActionBarItem id='accountMenu' hidePopoverOnClick={false}>
|
|
1335
|
+
<ActionBarItem.Icon>
|
|
1336
|
+
<span className='icon rioglyph rioglyph-user' />
|
|
1337
|
+
</ActionBarItem.Icon>
|
|
1338
|
+
<ActionBarItem.Popover>
|
|
1339
|
+
<ActionBarItem.List>
|
|
1340
|
+
<ActionBarItem.ListItem>
|
|
1341
|
+
<div>
|
|
1342
|
+
<div className='text-medium'>This is just an example</div>
|
|
1343
|
+
<div>The real account menu comes here...</div>
|
|
1344
|
+
</div>
|
|
1345
|
+
</ActionBarItem.ListItem>
|
|
1346
|
+
<ActionBarItem.ListSeparator />
|
|
1347
|
+
<ActionBarItem.ListItem className='padding-0'>
|
|
1348
|
+
<iframe
|
|
1349
|
+
className='buyButton height-30 padding-top-5 padding-bottom-5'
|
|
1350
|
+
title='ContactForm'
|
|
1351
|
+
src='https://contact-form.rio.cloud/contact_link.html?opener=https%3A%2F%2Fhome.rio.cloud%2F&locale=en-GB'
|
|
1352
|
+
/>
|
|
1353
|
+
</ActionBarItem.ListItem>
|
|
1354
|
+
<ActionBarItem.ListSeparator />
|
|
1355
|
+
<ActionBarItem.ListItem className='padding-0'>
|
|
1356
|
+
<button
|
|
1357
|
+
type='button'
|
|
1358
|
+
className='btn btn-link btn-link-inline text-color-dark'
|
|
1359
|
+
onClick={() => Notification.info('Logout')}
|
|
1360
|
+
>
|
|
1361
|
+
<span className='rioglyph rioglyph-off margin-right-5 text-size-16 text-color-dark' />
|
|
1362
|
+
<span>Logout</span>
|
|
1363
|
+
</button>
|
|
1364
|
+
</ActionBarItem.ListItem>
|
|
1365
|
+
</ActionBarItem.List>
|
|
1366
|
+
</ActionBarItem.Popover>
|
|
1367
|
+
</ActionBarItem>
|
|
1368
|
+
);
|
|
1369
|
+
|
|
1370
|
+
const Notifications = (
|
|
1371
|
+
<ActionBarItem id='notifications'>
|
|
1372
|
+
<ActionBarItem.Icon>
|
|
1373
|
+
<span className='icon rioglyph rioglyph-notification' />
|
|
1374
|
+
<span className='badge badge-primary badge-indicator badge-indicator-pinging'>4</span>
|
|
1375
|
+
</ActionBarItem.Icon>
|
|
1376
|
+
</ActionBarItem>
|
|
1377
|
+
);
|
|
1378
|
+
|
|
1379
|
+
export default () => {
|
|
1380
|
+
const [showSidebar, setShowSidebar] = useState(true);
|
|
1381
|
+
const [isTreeOpen, setIsTreeOpen] = useState(true);
|
|
1382
|
+
const [currentCategoryId, setCurrentCategoryId] = useState(CATEGORY_ASSETS);
|
|
1383
|
+
const [selectedGroupIds, setSelectedGroupIds] = useState([]);
|
|
1384
|
+
const [selectedItemIds, setSelectedItemIds] = useState([]);
|
|
1385
|
+
const [expandedGroups, setExpandedGroups] = useState([assetGroups[0].id]);
|
|
1386
|
+
|
|
1387
|
+
// Listen for resize changes of the target element defined by the ref
|
|
1388
|
+
// Note: this is for demo purpose only when resizing the demo playground.
|
|
1389
|
+
// The SubNavigation component handles this case internally
|
|
1390
|
+
const { ref, isMobile } = useResizer();
|
|
1391
|
+
const bodyNavigationClasses = ''; // isMobile ? '' : 'has-offset';
|
|
1392
|
+
|
|
1393
|
+
const handleCloseSidebar = () => setShowSidebar(false);
|
|
1394
|
+
const handleOpenSidebar = () => setShowSidebar(true);
|
|
1395
|
+
const handleToggleTree = (toggle: boolean) => setIsTreeOpen(toggle);
|
|
1396
|
+
const handleChangeCategories = (categoryId: string) => setCurrentCategoryId(categoryId);
|
|
1397
|
+
const handleExpandGroup = (newExpandedGroups: string[]) => setExpandedGroups(newExpandedGroups);
|
|
1398
|
+
const handleSelection = ({ items, groups }: any) => {
|
|
1399
|
+
setSelectedItemIds(items);
|
|
1400
|
+
setSelectedGroupIds(groups);
|
|
1401
|
+
};
|
|
1402
|
+
|
|
1403
|
+
return (
|
|
1404
|
+
<ApplicationLayout className='bg-lighter height-500' layoutRef={ref}>
|
|
1405
|
+
<ApplicationLayout.Header>
|
|
1406
|
+
<ApplicationHeader
|
|
1407
|
+
label='RIO Service'
|
|
1408
|
+
appNavigator={
|
|
1409
|
+
<IframeResizer className='iFrameResizer' src='https://menu.rio.cloud' checkOrigin={false} />
|
|
1410
|
+
}
|
|
1411
|
+
navItems={navItems}
|
|
1412
|
+
actionBarItems={[ServiceInfoComponent, Notifications, AccountMenuComponent]}
|
|
1413
|
+
/>
|
|
1414
|
+
</ApplicationLayout.Header>
|
|
1415
|
+
<ApplicationLayout.Sidebar>
|
|
1416
|
+
<AssetTree
|
|
1417
|
+
minWidth={300}
|
|
1418
|
+
maxWidth={450}
|
|
1419
|
+
currentCategoryId={currentCategoryId}
|
|
1420
|
+
onCategoryChange={handleChangeCategories}
|
|
1421
|
+
height={500}
|
|
1422
|
+
isOpen={isTreeOpen}
|
|
1423
|
+
onToggleTree={handleToggleTree}
|
|
1424
|
+
useOffscreen
|
|
1425
|
+
>
|
|
1426
|
+
<TreeCategory key={CATEGORY_ASSETS} id={CATEGORY_ASSETS} label='Assets' icon='rioglyph-truck'>
|
|
1427
|
+
<Tree
|
|
1428
|
+
groups={assetGroups}
|
|
1429
|
+
items={assets}
|
|
1430
|
+
searchPlaceholder='Find asset'
|
|
1431
|
+
expandedGroups={expandedGroups}
|
|
1432
|
+
onExpandGroupsChange={handleExpandGroup}
|
|
1433
|
+
selectedGroups={selectedGroupIds}
|
|
1434
|
+
selectedItems={selectedItemIds}
|
|
1435
|
+
onSelectionChange={handleSelection}
|
|
1436
|
+
/>
|
|
1437
|
+
</TreeCategory>
|
|
1438
|
+
<TreeCategory key={CATEGORY_DRIVER} id={CATEGORY_DRIVER} label='My Drivers' icon='rioglyph-driver'>
|
|
1439
|
+
<Tree items={randomDrivers} hasMultiselect={false} />
|
|
1440
|
+
</TreeCategory>
|
|
1441
|
+
</AssetTree>
|
|
1442
|
+
</ApplicationLayout.Sidebar>
|
|
1443
|
+
<ApplicationLayout.Sidebar className='right bg-white height-450'>
|
|
1444
|
+
<Sidebar
|
|
1445
|
+
title='Sidebar Right'
|
|
1446
|
+
titleClassName='padding-left-10'
|
|
1447
|
+
closed={!showSidebar}
|
|
1448
|
+
onClose={handleCloseSidebar}
|
|
1449
|
+
position={Sidebar.RIGHT}
|
|
1450
|
+
enableFullscreenToggle
|
|
1451
|
+
resizable
|
|
1452
|
+
minWidth={300}
|
|
1453
|
+
maxWidth={600}
|
|
1454
|
+
switchModeBreakpoint={1400}
|
|
1455
|
+
footer={
|
|
1456
|
+
<button className='btn btn-primary' type='button' onClick={handleCloseSidebar}>
|
|
1457
|
+
Close
|
|
1458
|
+
</button>
|
|
1459
|
+
}
|
|
1460
|
+
>
|
|
1461
|
+
<div className='padding-left-20 padding-right-20'>Sidebar components may be added here...</div>
|
|
1462
|
+
</Sidebar>
|
|
1463
|
+
</ApplicationLayout.Sidebar>
|
|
1464
|
+
<ApplicationLayout.Body
|
|
1465
|
+
className='uikitDemo'
|
|
1466
|
+
banner={
|
|
1467
|
+
<ApplicationLayoutBodyBanner>
|
|
1468
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, diam nonumy eirmod tempor invidunt.
|
|
1469
|
+
</ApplicationLayoutBodyBanner>
|
|
1470
|
+
}
|
|
1471
|
+
navigation={
|
|
1472
|
+
<ApplicationLayoutBodyNavigation className={bodyNavigationClasses}>
|
|
1473
|
+
<SubNavigation
|
|
1474
|
+
navItems={[
|
|
1475
|
+
{
|
|
1476
|
+
key: '1',
|
|
1477
|
+
route: <NavLink to='/components/appLayout'>Subnavigation 1</NavLink>,
|
|
1478
|
+
},
|
|
1479
|
+
{
|
|
1480
|
+
key: '2',
|
|
1481
|
+
route: (
|
|
1482
|
+
<NavLink to='/2' onClick={event => event.preventDefault()}>
|
|
1483
|
+
Subnavigation 2
|
|
1484
|
+
</NavLink>
|
|
1485
|
+
),
|
|
1486
|
+
},
|
|
1487
|
+
{
|
|
1488
|
+
key: '3',
|
|
1489
|
+
route: (
|
|
1490
|
+
<NavLink to='/3' onClick={event => event.preventDefault()}>
|
|
1491
|
+
Subnavigation 3
|
|
1492
|
+
</NavLink>
|
|
1493
|
+
),
|
|
1494
|
+
},
|
|
1495
|
+
]}
|
|
1496
|
+
/>
|
|
1497
|
+
</ApplicationLayoutBodyNavigation>
|
|
1498
|
+
}
|
|
1499
|
+
bottomBar={
|
|
1500
|
+
<ApplicationLayoutBodyBottomBar>
|
|
1501
|
+
<button type='button' className='btn btn-primary'>
|
|
1502
|
+
Bottom Button
|
|
1503
|
+
</button>
|
|
1504
|
+
</ApplicationLayoutBodyBottomBar>
|
|
1505
|
+
}
|
|
1506
|
+
>
|
|
1507
|
+
<div>
|
|
1508
|
+
<div className='panel panel-default shadow-default'>
|
|
1509
|
+
<div className='panel-heading'>Sample Service Content</div>
|
|
1510
|
+
<div className='panel-body overflow-auto'>
|
|
1511
|
+
<Button onClick={handleOpenSidebar}>Open Sidebar</Button>
|
|
1512
|
+
<div className='margin-top-15'>{dummyTextLong}</div>
|
|
1513
|
+
</div>
|
|
1514
|
+
</div>
|
|
1515
|
+
</div>
|
|
1516
|
+
</ApplicationLayout.Body>
|
|
1517
|
+
</ApplicationLayout>
|
|
1518
|
+
);
|
|
1519
|
+
};
|
|
1520
|
+
|
|
1521
|
+
const useResizer = () => {
|
|
1522
|
+
const [isMobile, setIsMobile] = useState(false);
|
|
1523
|
+
const [ref, observerEntry] = useResizeObserver();
|
|
1524
|
+
const contentRect = observerEntry?.contentRect;
|
|
1525
|
+
useEffect(() => {
|
|
1526
|
+
if (!contentRect) {
|
|
1527
|
+
return;
|
|
1528
|
+
}
|
|
1529
|
+
const width = Math.round(contentRect.width);
|
|
1530
|
+
if (width <= SCREEN_MD) {
|
|
1531
|
+
setIsMobile(true);
|
|
1532
|
+
} else {
|
|
1533
|
+
setIsMobile(false);
|
|
1534
|
+
}
|
|
1535
|
+
}, [contentRect]);
|
|
1536
|
+
|
|
1537
|
+
return { ref, isMobile };
|
|
1538
|
+
};
|
|
1539
|
+
|
|
1540
|
+
const assetGroups: TreeGroup[] = [
|
|
1541
|
+
{
|
|
1542
|
+
id: '0250a8aa-721e-40b4-b1ea-7908acddfdf4',
|
|
1543
|
+
name: 'Asset Group',
|
|
1544
|
+
},
|
|
1545
|
+
{
|
|
1546
|
+
id: 'unassigned',
|
|
1547
|
+
name: 'Ungrouped',
|
|
1548
|
+
position: 'last',
|
|
1549
|
+
},
|
|
1550
|
+
];
|
|
1551
|
+
|
|
1552
|
+
const assets = Array.from({ length: random(5, 20) }, (_, index) => ({
|
|
1553
|
+
id: `010191ac-d06d-4567-b13a-7b7fd85d97${index}`,
|
|
1554
|
+
name: `Vehicle-${random(1000, 9999)}`,
|
|
1555
|
+
info: `Asset 1${String(index).padStart(3, '0')}`,
|
|
1556
|
+
type: faker.random.arrayElement(['truck', 'trailer', 'van', 'bus']),
|
|
1557
|
+
groupIds: [faker.random.arrayElement(assetGroups).id],
|
|
1558
|
+
}));
|
|
1559
|
+
|
|
1560
|
+
const randomDrivers = Array.from({ length: 200 }, (_, index) => ({
|
|
1561
|
+
id: `74e8eb86-18a1-4abe-90cb-aeee7909f85${index}`,
|
|
1562
|
+
name: {
|
|
1563
|
+
firstName: faker.internet.userName(),
|
|
1564
|
+
lastName: faker.name.firstName(),
|
|
1565
|
+
},
|
|
1566
|
+
type: 'driver',
|
|
1567
|
+
}));
|
|
1568
|
+
```
|
|
1569
|
+
|
|
1570
|
+
#### HTML (html)
|
|
1571
|
+
|
|
1572
|
+
```html
|
|
1573
|
+
<div class="ApplicationLayout bg-lighter height-500" style="--ApplicationLayoutBodyBottomBarHeight: 54px;">
|
|
1574
|
+
<div class="ApplicationLayoutHeader" id="ApplicationLayoutHeader">
|
|
1575
|
+
<nav class="ApplicationHeader user-select-none">
|
|
1576
|
+
<div class="navbar-header">
|
|
1577
|
+
<span class="navbar-brand home-icon">
|
|
1578
|
+
</span>
|
|
1579
|
+
</div>
|
|
1580
|
+
<ul class="ModuleNavigation AppMenu user-select-none hasModules">
|
|
1581
|
+
<li class="dropdown">
|
|
1582
|
+
<a class="ModuleNavigation-dropdown dropdown-toggle justify-content-between" role="button" id="basic-nav-dropdown">
|
|
1583
|
+
<span>RIO Service</span>
|
|
1584
|
+
<span class="caret">
|
|
1585
|
+
</span>
|
|
1586
|
+
</a>
|
|
1587
|
+
<ul role="menu" class="dropdown-menu ModuleNavigation-dropdown-menu">
|
|
1588
|
+
<li role="presentation">
|
|
1589
|
+
<iframe title="iframe" class="iFrameResizer" src="https://menu.rio.cloud" id="iFrameResizer0" scrolling="no" style="overflow: hidden; height: 139px;">
|
|
1590
|
+
</iframe>
|
|
1591
|
+
</li>
|
|
1592
|
+
</ul>
|
|
1593
|
+
</li>
|
|
1594
|
+
</ul>
|
|
1595
|
+
<ul class="SubmoduleNavigation nav">
|
|
1596
|
+
<li class="submodule " data-nav-item-key="1">
|
|
1597
|
+
<a aria-current="page" class="active" href="#components/appLayout">Navigation 1</a>
|
|
1598
|
+
</li>
|
|
1599
|
+
<li class="submodule " data-nav-item-key="2">
|
|
1600
|
+
<a href="#2">Navigation 2</a>
|
|
1601
|
+
</li>
|
|
1602
|
+
<li class="CollapsedDropdown dropdown ">
|
|
1603
|
+
<a id="basic-nav-dropdown" role="button" class="dropdown-toggle text-color-gray" aria-haspopup="true" aria-expanded="true">
|
|
1604
|
+
<span class="rioglyph rioglyph-option-horizontal" aria-hidden="true">
|
|
1605
|
+
</span>
|
|
1606
|
+
</a>
|
|
1607
|
+
<ul class="dropdown-menu" role="menu" aria-labelledby="basic-nav-dropdown">
|
|
1608
|
+
<li class="submodule" data-nav-item-key="3">
|
|
1609
|
+
<a href="#3">Navigation 3</a>
|
|
1610
|
+
</li>
|
|
1611
|
+
</ul>
|
|
1612
|
+
</li>
|
|
1613
|
+
</ul>
|
|
1614
|
+
<ul class="ApplicationActionBar nav navbar-nav navbar-right ">
|
|
1615
|
+
<li role="presentation" class="navigationItem">
|
|
1616
|
+
<div class="ActionBarItem myItem">
|
|
1617
|
+
<div class="ActionBarItemIcon">
|
|
1618
|
+
<span class="icon rioglyph rioglyph-info-sign">
|
|
1619
|
+
</span>
|
|
1620
|
+
</div>
|
|
1621
|
+
</div>
|
|
1622
|
+
</li>
|
|
1623
|
+
<li role="presentation" class="navigationItem">
|
|
1624
|
+
<div class="ActionBarItem">
|
|
1625
|
+
<div class="ActionBarItemIcon">
|
|
1626
|
+
<span class="icon rioglyph rioglyph-notification">
|
|
1627
|
+
</span>
|
|
1628
|
+
<span class="badge badge-primary badge-indicator badge-indicator-pinging">4</span>
|
|
1629
|
+
</div>
|
|
1630
|
+
</div>
|
|
1631
|
+
</li>
|
|
1632
|
+
<li role="presentation" class="navigationItem">
|
|
1633
|
+
<div class="ActionBarItem">
|
|
1634
|
+
<div class="ActionBarItemIcon">
|
|
1635
|
+
<span class="icon rioglyph rioglyph-user">
|
|
1636
|
+
</span>
|
|
1637
|
+
</div>
|
|
1638
|
+
</div>
|
|
1639
|
+
</li>
|
|
1640
|
+
</ul>
|
|
1641
|
+
</nav>
|
|
1642
|
+
</div>
|
|
1643
|
+
<div class="ApplicationLayoutSidebar">
|
|
1644
|
+
<div class="AssetTree fluid" style="width: 350px; height: 500px;">
|
|
1645
|
+
<div class="AssetTreeResizeLimit" style="left: 450px;">
|
|
1646
|
+
</div>
|
|
1647
|
+
<div class="AssetTreeContent">
|
|
1648
|
+
<div class="TreeSidebar">
|
|
1649
|
+
<ul class="TreeSidebarNavigation">
|
|
1650
|
+
<li class="active">
|
|
1651
|
+
<div class="selection-bubble">
|
|
1652
|
+
<span class="rioglyph rioglyph-truck">
|
|
1653
|
+
</span>
|
|
1654
|
+
</div>
|
|
1655
|
+
</li>
|
|
1656
|
+
<li class="">
|
|
1657
|
+
<div class="selection-bubble">
|
|
1658
|
+
<span class="rioglyph rioglyph-driver">
|
|
1659
|
+
</span>
|
|
1660
|
+
</div>
|
|
1661
|
+
</li>
|
|
1662
|
+
</ul>
|
|
1663
|
+
<div class="TreeSidebarToggle">
|
|
1664
|
+
<span class="rioglyph rioglyph-chevron-left">
|
|
1665
|
+
</span>
|
|
1666
|
+
</div>
|
|
1667
|
+
</div>
|
|
1668
|
+
<div class="AssetTreeBody scrollbar-fly-in smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
|
|
1669
|
+
<div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
|
|
1670
|
+
<div class="scrollbar-content-wrapper">
|
|
1671
|
+
<div class="TreeOffscreenWrapper">
|
|
1672
|
+
<div class="Tree">
|
|
1673
|
+
<div class="TreeHeader">
|
|
1674
|
+
<div class="TreeSearch">
|
|
1675
|
+
<div class="input-group flex-1-0">
|
|
1676
|
+
<span class="input-group-addon">
|
|
1677
|
+
<span class="rioglyph rioglyph-search" aria-hidden="true">
|
|
1678
|
+
</span>
|
|
1679
|
+
</span>
|
|
1680
|
+
<div class="ClearableInput input-group">
|
|
1681
|
+
<input placeholder="Find asset" class="form-control" type="text" tabindex="0" value="">
|
|
1682
|
+
<span class="clearButton hide">
|
|
1683
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
1684
|
+
</span>
|
|
1685
|
+
</span>
|
|
1686
|
+
</div>
|
|
1687
|
+
</div>
|
|
1688
|
+
</div>
|
|
1689
|
+
<div class="TreeHead display-flex gap-5 padding-15">
|
|
1690
|
+
<div class="border border-right-only hidden-empty padding-right-10 margin-right-2">
|
|
1691
|
+
<div class="TreeSelectAll display-flex align-items-center">
|
|
1692
|
+
<label class="checkbox margin-top--1" tabindex="0">
|
|
1693
|
+
<input type="checkbox" class="margin-top--1">
|
|
1694
|
+
<span class="checkbox-text">
|
|
1695
|
+
</span>
|
|
1696
|
+
</label>
|
|
1697
|
+
</div>
|
|
1698
|
+
</div>
|
|
1699
|
+
<div class="display-flex justify-content-between align-items-start width-100pct">
|
|
1700
|
+
<div class="TreeSummary display-flex flex-wrap align-items-center gap-10 padding-left-3">
|
|
1701
|
+
<div class="TypeCounter display-flex align-items-center user-select-none margin-right-2 cursor-pointer">
|
|
1702
|
+
<span class="rioglyph rioglyph-trailer text-size-16 margin-right-2">
|
|
1703
|
+
</span>
|
|
1704
|
+
<span class="TreeLabelCount label label-condensed label-muted label-filled">5</span>
|
|
1705
|
+
</div>
|
|
1706
|
+
<div class="TypeCounter display-flex align-items-center user-select-none margin-right-2 cursor-pointer">
|
|
1707
|
+
<span class="rioglyph rioglyph-bus text-size-16 margin-right-2">
|
|
1708
|
+
</span>
|
|
1709
|
+
<span class="TreeLabelCount label label-condensed label-muted label-filled">2</span>
|
|
1710
|
+
</div>
|
|
1711
|
+
<div class="TypeCounter display-flex align-items-center user-select-none margin-right-2 cursor-pointer">
|
|
1712
|
+
<span class="rioglyph rioglyph-van text-size-16 margin-right-2">
|
|
1713
|
+
</span>
|
|
1714
|
+
<span class="TreeLabelCount label label-condensed label-muted label-filled">1</span>
|
|
1715
|
+
</div>
|
|
1716
|
+
</div>
|
|
1717
|
+
</div>
|
|
1718
|
+
</div>
|
|
1719
|
+
</div>
|
|
1720
|
+
<div class="TreeRoot user-select-none overflow-hidden" style="position: relative;">
|
|
1721
|
+
<div class="TreeNodeContainer user-select-none overflow-hidden open" data-id="0250a8aa-721e-40b4-b1ea-7908acddfdf4">
|
|
1722
|
+
<div class="TreeNode from-group" data-key="0250a8aa-721e-40b4-b1ea-7908acddfdf4">
|
|
1723
|
+
<label class="checkbox TreeCheckbox" tabindex="0">
|
|
1724
|
+
<input type="checkbox" class="TreeCheckbox">
|
|
1725
|
+
<span class="checkbox-text">
|
|
1726
|
+
</span>
|
|
1727
|
+
</label>
|
|
1728
|
+
<span class="TreeLabel TreeLabelName">
|
|
1729
|
+
<span class="TreeLabelNameText">
|
|
1730
|
+
<span class="TreeLabelNameTextHeadline">Asset Group</span>
|
|
1731
|
+
</span>
|
|
1732
|
+
<span class="TreeLabelCount label label-muted label-filled label-condensed">3</span>
|
|
1733
|
+
<span class="TreeLabelExpander rioglyph rioglyph-chevron-down ">
|
|
1734
|
+
</span>
|
|
1735
|
+
</span>
|
|
1736
|
+
</div>
|
|
1737
|
+
<div class="TreeLeaf form-group margin-bottom-0" data-key="010191ac-d06d-4567-b13a-7b7fd85d975">
|
|
1738
|
+
<label class="checkbox TreeCheckbox" tabindex="0">
|
|
1739
|
+
<input type="checkbox" class="TreeCheckbox">
|
|
1740
|
+
<span class="checkbox-text">
|
|
1741
|
+
</span>
|
|
1742
|
+
</label>
|
|
1743
|
+
<span class="TreeLabel TreeLabelName">
|
|
1744
|
+
<span class="rioglyph rioglyph-trailer">
|
|
1745
|
+
</span>
|
|
1746
|
+
<span class="TreeLabelNameText">
|
|
1747
|
+
<span class="TreeLabelNameTextHeadline">Vehicle-2115</span>
|
|
1748
|
+
<span class="TreeLabelNameTextSubline">Asset 1005</span>
|
|
1749
|
+
</span>
|
|
1750
|
+
</span>
|
|
1751
|
+
</div>
|
|
1752
|
+
<div class="TreeLeaf form-group margin-bottom-0" data-key="010191ac-d06d-4567-b13a-7b7fd85d971">
|
|
1753
|
+
<label class="checkbox TreeCheckbox" tabindex="0">
|
|
1754
|
+
<input type="checkbox" class="TreeCheckbox">
|
|
1755
|
+
<span class="checkbox-text">
|
|
1756
|
+
</span>
|
|
1757
|
+
</label>
|
|
1758
|
+
<span class="TreeLabel TreeLabelName">
|
|
1759
|
+
<span class="rioglyph rioglyph-bus">
|
|
1760
|
+
</span>
|
|
1761
|
+
<span class="TreeLabelNameText">
|
|
1762
|
+
<span class="TreeLabelNameTextHeadline">Vehicle-2747</span>
|
|
1763
|
+
<span class="TreeLabelNameTextSubline">Asset 1001</span>
|
|
1764
|
+
</span>
|
|
1765
|
+
</span>
|
|
1766
|
+
</div>
|
|
1767
|
+
<div class="TreeLeaf form-group margin-bottom-0" data-key="010191ac-d06d-4567-b13a-7b7fd85d970">
|
|
1768
|
+
<label class="checkbox TreeCheckbox" tabindex="0">
|
|
1769
|
+
<input type="checkbox" class="TreeCheckbox">
|
|
1770
|
+
<span class="checkbox-text">
|
|
1771
|
+
</span>
|
|
1772
|
+
</label>
|
|
1773
|
+
<span class="TreeLabel TreeLabelName">
|
|
1774
|
+
<span class="rioglyph rioglyph-trailer">
|
|
1775
|
+
</span>
|
|
1776
|
+
<span class="TreeLabelNameText">
|
|
1777
|
+
<span class="TreeLabelNameTextHeadline">Vehicle-5156</span>
|
|
1778
|
+
<span class="TreeLabelNameTextSubline">Asset 1000</span>
|
|
1779
|
+
</span>
|
|
1780
|
+
</span>
|
|
1781
|
+
</div>
|
|
1782
|
+
</div>
|
|
1783
|
+
<div class="TreeNodeContainer user-select-none overflow-hidden" data-id="unassigned">
|
|
1784
|
+
<div class="TreeNode from-group" data-key="unassigned">
|
|
1785
|
+
<label class="checkbox TreeCheckbox" tabindex="0">
|
|
1786
|
+
<input type="checkbox" class="TreeCheckbox">
|
|
1787
|
+
<span class="checkbox-text">
|
|
1788
|
+
</span>
|
|
1789
|
+
</label>
|
|
1790
|
+
<span class="TreeLabel TreeLabelName">
|
|
1791
|
+
<span class="TreeLabelNameText">
|
|
1792
|
+
<span class="TreeLabelNameTextHeadline">Ungrouped</span>
|
|
1793
|
+
</span>
|
|
1794
|
+
<span class="TreeLabelCount label label-muted label-filled label-condensed">5</span>
|
|
1795
|
+
<span class="TreeLabelExpander rioglyph rioglyph-chevron-down ">
|
|
1796
|
+
</span>
|
|
1797
|
+
</span>
|
|
1798
|
+
</div>
|
|
1799
|
+
</div>
|
|
1800
|
+
</div>
|
|
1801
|
+
</div>
|
|
1802
|
+
</div>
|
|
1803
|
+
<div class="TreeOffscreenWrapper position-offscreen pointer-events-none">
|
|
1804
|
+
<div class="Tree">
|
|
1805
|
+
<div class="TreeHeader">
|
|
1806
|
+
<div class="TreeSearch">
|
|
1807
|
+
<div class="input-group flex-1-0">
|
|
1808
|
+
<span class="input-group-addon">
|
|
1809
|
+
<span class="rioglyph rioglyph-search" aria-hidden="true">
|
|
1810
|
+
</span>
|
|
1811
|
+
</span>
|
|
1812
|
+
<div class="ClearableInput input-group">
|
|
1813
|
+
<input placeholder="Type here to filter by name" class="form-control" type="text" tabindex="0" value="">
|
|
1814
|
+
<span class="clearButton hide">
|
|
1815
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
1816
|
+
</span>
|
|
1817
|
+
</span>
|
|
1818
|
+
</div>
|
|
1819
|
+
</div>
|
|
1820
|
+
</div>
|
|
1821
|
+
<div class="TreeHead display-flex gap-5 padding-15">
|
|
1822
|
+
<div class="border border-right-only hidden-empty padding-right-10 margin-right-2">
|
|
1823
|
+
</div>
|
|
1824
|
+
<div class="display-flex justify-content-between align-items-start width-100pct">
|
|
1825
|
+
<div class="TreeSummary display-flex flex-wrap align-items-center gap-10 padding-left-3">
|
|
1826
|
+
<div class="TypeCounter display-flex align-items-center user-select-none margin-right-2 pointer-events-none">
|
|
1827
|
+
<span class="rioglyph rioglyph-driver text-size-16 margin-right-2">
|
|
1828
|
+
</span>
|
|
1829
|
+
<span class="TreeLabelCount label label-condensed label-muted label-filled">200</span>
|
|
1830
|
+
</div>
|
|
1831
|
+
</div>
|
|
1832
|
+
</div>
|
|
1833
|
+
</div>
|
|
1834
|
+
</div>
|
|
1835
|
+
<div class="TreeRoot user-select-none overflow-hidden" style="position: relative;">
|
|
1836
|
+
<div class="tree-virtual-scrollbar scrollbar-fly-in smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
|
|
1837
|
+
<div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
|
|
1838
|
+
<div class="scrollbar-content-wrapper">
|
|
1839
|
+
<div class="flat-list" style="height: 8200px; position: relative;">
|
|
1840
|
+
</div>
|
|
1841
|
+
</div>
|
|
1842
|
+
</div>
|
|
1843
|
+
<div class="scrollbar-track-horizontal" style="position: absolute; height: 6px; display: none;">
|
|
1844
|
+
<div class="scrollbar-thumb-horizontal" style="position: relative; display: block; height: 100%;">
|
|
1845
|
+
</div>
|
|
1846
|
+
</div>
|
|
1847
|
+
<div class="scrollbar-track-vertical" style="position: absolute; width: 6px; display: none;">
|
|
1848
|
+
<div class="scrollbar-thumb-vertical" style="position: relative; display: block; width: 100%;">
|
|
1849
|
+
</div>
|
|
1850
|
+
</div>
|
|
1851
|
+
</div>
|
|
1852
|
+
</div>
|
|
1853
|
+
</div>
|
|
1854
|
+
</div>
|
|
1855
|
+
</div>
|
|
1856
|
+
</div>
|
|
1857
|
+
<div class="scrollbar-track-horizontal" style="position: absolute; height: 6px; display: none;">
|
|
1858
|
+
<div class="scrollbar-thumb-horizontal" style="position: relative; display: block; height: 100%;">
|
|
1859
|
+
</div>
|
|
1860
|
+
</div>
|
|
1861
|
+
<div class="scrollbar-track-vertical" style="position: absolute; width: 6px; display: none;">
|
|
1862
|
+
<div class="scrollbar-thumb-vertical" style="position: relative; display: block; width: 100%;">
|
|
1863
|
+
</div>
|
|
1864
|
+
</div>
|
|
1865
|
+
</div>
|
|
1866
|
+
</div>
|
|
1867
|
+
<div class="Resizer resize-horizontal resize-right">
|
|
1868
|
+
</div>
|
|
1869
|
+
</div>
|
|
1870
|
+
</div>
|
|
1871
|
+
<div class="ApplicationLayoutSidebar right bg-white height-450">
|
|
1872
|
+
<div class="Sidebar fly" style="width: 350px; opacity: 1; display: block; transform: none;">
|
|
1873
|
+
<div class="SidebarResizeLimit" style="right: 600px;">
|
|
1874
|
+
</div>
|
|
1875
|
+
<div class="SidebarContent">
|
|
1876
|
+
<div class="SidebarHeader">
|
|
1877
|
+
<div class="SidebarTitle padding-left-10">Sidebar Right</div>
|
|
1878
|
+
<div class="SidebarButtons non-printable close">
|
|
1879
|
+
<button type="button" data-testid="sidebarFullscreenToggle" class="btn btn-muted btn-icon-only btn-component" tabindex="0">
|
|
1880
|
+
<span class="rioglyph rioglyph-resize-full">
|
|
1881
|
+
</span>
|
|
1882
|
+
</button>
|
|
1883
|
+
<div class="SidebarButtons-spacer">
|
|
1884
|
+
</div>
|
|
1885
|
+
<button type="button" data-testid="sidebarCloseButton" class="btn btn-muted btn-icon-only btn-component" tabindex="0">
|
|
1886
|
+
<span class="rioglyph rioglyph-remove">
|
|
1887
|
+
</span>
|
|
1888
|
+
</button>
|
|
1889
|
+
</div>
|
|
1890
|
+
</div>
|
|
1891
|
+
<div class="SidebarBody">
|
|
1892
|
+
<div class="padding-left-20 padding-right-20">Sidebar components may be added here...</div>
|
|
1893
|
+
</div>
|
|
1894
|
+
<div class="SidebarFooter">
|
|
1895
|
+
<button class="btn btn-primary" type="button">Close</button>
|
|
1896
|
+
</div>
|
|
1897
|
+
</div>
|
|
1898
|
+
<div class="Resizer resize-horizontal resize-left">
|
|
1899
|
+
</div>
|
|
1900
|
+
</div>
|
|
1901
|
+
</div>
|
|
1902
|
+
<div class="ApplicationLayoutBody has-footer uikitDemo">
|
|
1903
|
+
<div class="module-content-wrapper">
|
|
1904
|
+
<div class="ApplicationLayoutBodyNavigation">
|
|
1905
|
+
<div class="SubNavigation width-100pct overflow-auto">
|
|
1906
|
+
<ul class="SubmoduleNavigation nav">
|
|
1907
|
+
<li class="submodule" data-nav-item-key="1">
|
|
1908
|
+
<a aria-current="page" class="active" href="#components/appLayout">Subnavigation 1</a>
|
|
1909
|
+
</li>
|
|
1910
|
+
<li class="submodule" data-nav-item-key="2">
|
|
1911
|
+
<a href="#2">Subnavigation 2</a>
|
|
1912
|
+
</li>
|
|
1913
|
+
<li class="submodule" data-nav-item-key="3">
|
|
1914
|
+
<a href="#3">Subnavigation 3</a>
|
|
1915
|
+
</li>
|
|
1916
|
+
</ul>
|
|
1917
|
+
</div>
|
|
1918
|
+
</div>
|
|
1919
|
+
<div class="ApplicationLayoutBodyBanner text-color-white bg-primary position-sticky top-0 z-index-3">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, diam nonumy eirmod tempor invidunt.</div>
|
|
1920
|
+
<div class="module-content smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
|
|
1921
|
+
<div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
|
|
1922
|
+
<div class="scrollbar-content-wrapper">
|
|
1923
|
+
<div class="scrollbar-content">
|
|
1924
|
+
<div>
|
|
1925
|
+
<div class="panel panel-default shadow-default">
|
|
1926
|
+
<div class="panel-heading">Sample Service Content</div>
|
|
1927
|
+
<div class="panel-body overflow-auto">
|
|
1928
|
+
<button type="button" class="btn btn-default btn-component" tabindex="0">Open Sidebar</button>
|
|
1929
|
+
<div class="margin-top-15">
|
|
1930
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
1931
|
+
|
|
1932
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
1933
|
+
|
|
1934
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.</div>
|
|
1935
|
+
</div>
|
|
1936
|
+
</div>
|
|
1937
|
+
</div>
|
|
1938
|
+
</div>
|
|
1939
|
+
</div>
|
|
1940
|
+
</div>
|
|
1941
|
+
<div class="scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; height: 6px; display: none;">
|
|
1942
|
+
<div class="scrollbar-thumb-horizontal scrollbar-thumb-size-large" style="position: relative; display: block; height: 100%;">
|
|
1943
|
+
</div>
|
|
1944
|
+
</div>
|
|
1945
|
+
<div class="scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset" style="position: absolute; width: 6px; display: none;">
|
|
1946
|
+
<div class="scrollbar-thumb-vertical scrollbar-thumb-size-large" style="position: relative; display: block; width: 100%;">
|
|
1947
|
+
</div>
|
|
1948
|
+
</div>
|
|
1949
|
+
</div>
|
|
1950
|
+
</div>
|
|
1951
|
+
<span class="scroll-to-top">
|
|
1952
|
+
<button type="button" class="btn btn-primary btn-icon-only">
|
|
1953
|
+
<span class="rioglyph rioglyph-arrow-up">
|
|
1954
|
+
</span>
|
|
1955
|
+
</button>
|
|
1956
|
+
</span>
|
|
1957
|
+
</div>
|
|
1958
|
+
<div class="ApplicationLayoutBodyBottomBar justify-content-between">
|
|
1959
|
+
<button type="button" class="btn btn-primary">Bottom Button</button>
|
|
1960
|
+
</div>
|
|
1961
|
+
</div>
|
|
1962
|
+
```
|
|
1963
|
+
|
|
1964
|
+
#### Props: ApplicationLayout
|
|
1965
|
+
|
|
1966
|
+
### ApplicationLayout
|
|
1967
|
+
|
|
1968
|
+
| Name | Type | Default | Description |
|
|
1969
|
+
| --- | --- | --- | --- |
|
|
1970
|
+
| layoutRef | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
1971
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1972
|
+
|
|
1973
|
+
#### Props: ApplicationLayoutHeader
|
|
1974
|
+
|
|
1975
|
+
### ApplicationLayoutHeader
|
|
1976
|
+
|
|
1977
|
+
| Name | Type | Default | Description |
|
|
1978
|
+
| --- | --- | --- | --- |
|
|
1979
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1980
|
+
|
|
1981
|
+
#### Props: ApplicationLayoutSidebar
|
|
1982
|
+
|
|
1983
|
+
### ApplicationLayoutSidebar
|
|
1984
|
+
|
|
1985
|
+
| Name | Type | Default | Description |
|
|
1986
|
+
| --- | --- | --- | --- |
|
|
1987
|
+
| ref | React.ref | — | A React ref function assigned to the wrapper element. |
|
|
1988
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1989
|
+
|
|
1990
|
+
#### Props: ApplicationLayoutBody
|
|
1991
|
+
|
|
1992
|
+
### ApplicationLayoutBody
|
|
1993
|
+
|
|
1994
|
+
| Name | Type | Default | Description |
|
|
1995
|
+
| --- | --- | --- | --- |
|
|
1996
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
1997
|
+
| innerClassName | String | — | Additional class names that are added to the inner module-content component. |
|
|
1998
|
+
| children | any | — | Any component given to the layout components will be rendered |
|
|
1999
|
+
| navigation | any | — | The ApplicationLayoutBodyNavigation component. |
|
|
2000
|
+
| enableScrollToTop | Boolean | true | Show scroll to top button after scrolling the content. |
|
|
2001
|
+
| forceScrollbar | Boolean | false | Always show vertical scrollbar to prevent the content from jumping. |
|
|
2002
|
+
| bottomBar | Node \| String | — | Optional bottom bar component or a simple string. |
|
|
2003
|
+
| bottomBarHeight | Number | 54 | Height of the bottomBar in pixel. |
|
|
2004
|
+
| banner | any | — | The ApplicationLayoutBodyBanner component. |
|
|
2005
|
+
|
|
2006
|
+
#### Props: ApplicationLayoutBodyNavigation
|
|
2007
|
+
|
|
2008
|
+
### ApplicationLayoutBodyNavigation
|
|
2009
|
+
|
|
2010
|
+
| Name | Type | Default | Description |
|
|
2011
|
+
| --- | --- | --- | --- |
|
|
2012
|
+
| className | String | — | Additional class names that are added to the respective component. Example: "has-offset" |
|
|
2013
|
+
|
|
2014
|
+
#### Props: ApplicationLayoutBodyBottomBar
|
|
2015
|
+
|
|
2016
|
+
### ApplicationLayoutBodyBottomBar
|
|
2017
|
+
|
|
2018
|
+
| Name | Type | Default | Description |
|
|
2019
|
+
| --- | --- | --- | --- |
|
|
2020
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
2021
|
+
| buttonAlignment | String | — | Tells the buttons if they are left or right aligned. Default behavior is: 1st button left and 2nd button right. ApplicationLayoutBodyBottomBar.LEFT, ApplicationLayoutBodyBottomBar.RIGHT or 'left''right' |
|
|
2022
|
+
| useBodyPaddings | Boolean | false | Use same paddings (left and right) as the ApplicationLayoutBody. |
|
|
2023
|
+
|
|
2024
|
+
#### Props: ApplicationLayoutBodyBanner
|
|
2025
|
+
|
|
2026
|
+
### ApplicationLayoutBodyBanner
|
|
2027
|
+
|
|
2028
|
+
| Name | Type | Default | Description |
|
|
2029
|
+
| --- | --- | --- | --- |
|
|
2030
|
+
| className | String | — | Additional class names that are added to the respective component. |
|
|
2031
|
+
| backgroundColor | String | bg-primary | One of our bg-color utility classes. |
|
|
2032
|
+
| textColor | string | text-color-white | One of our text-color utility classes. |
|
|
2033
|
+
| isSticky | Boolean | false | Sticky while scrolling. |
|