Getting StartedColorsTypographyChangelog
Components
ActionsPanelAlertAutocompleteButtonCheckboxDropdownErrorPresenterFormGridGroupedListHeaderIconInputKeyValueLabelLabelActionLayoutOverview page(type = 'overview')Specific page(type = 'specific')DefaultOverview page(type = "overview")Specific page(type = "specific")LinkListNavigationPanelPageHeaderProgressRadioSelectSidePanelTabsTextAreaToggleTree
Компонент "Layout"
Предусмотрено два типа страниц.
Overview page(type = 'overview')
Страницы верхнего уровня, где общий список функционала в разделе.
viewport < 1920px
- Навигационная панель - поверх контента
- Сайд панель - поверх контента
viewport > 1920px
- Навигационная панель - всегда видна(нельзя закрыть)
- Сайд панель - сжимает контент
Specific page(type = 'specific')
Страницы, глубже одного уровня с конкретным функционалом.
viewport < 1920px
- Навигационная панель - поверх контента
- Сайд панель - поверх контента
viewport > 1920px
- Навигационная панель - поверх контента
- Сайд панель - сжимает контент
className
string | undefined
type
"overview" | "specific" | undefined
leftPanel
ReactNode
rightPanel
ReactNode
isLeftVisible
boolean | undefined
isRightVisible
boolean | undefined
onOutsideClick
(() => void) | undefined
Default
() => {const ContentExample = () => (<div style={{ textAlign: 'center' }}><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim, quasi?</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim, quasi?Lorem ipsum dolor sit amet.</p></div>)return (<Layout><ContentExample /></Layout>)}
Overview page(type = "overview")
() => {const [isNavVisible, setIsNavVisible] = useState(true)const [isSideVisible, setIsSideVisible] = useState(false)const ContentExample = useCallback(() => (<div style={{ textAlign: 'center' }}><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim,quasi?</p><Button.Group><Button onClick={() => setIsNavVisible(true)}>show nav</Button><Button onClick={() => setIsSideVisible(true)}>show side</Button></Button.Group><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim,quasi? Lorem ipsum dolor sit amet, consectetur adipisicing elit.Laboriosam laborum voluptate voluptatum? Deserunt excepturi illumlibero natus nostrum, quod. Alias culpa explicabo ipsam perspiciatisquasi soluta. Consectetur distinctio eos expedita, fugit id in,ipsum laudantium magnam nostrum, odit quos sint?</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim,quasi?</p><p><img src="//picsum.photos/id/1025/400/800" alt="" /></p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim,quasi? Lorem ipsum dolor sit amet.</p></div>),[],)const NavPanel = useCallback(() => (<NavigationPanelcloseButton={<NavigationPanel.CloseButtontext="Закрыть"onClick={() => setIsNavVisible(false)}/>}logo={<NavigationPanel.Logo src="/public/f5-logo.svg" />}><GroupedListoptions={[{id: 0,groupName: 'Monitoring',items: [{id: 0,header: 'Playground',icon: <GroupedList.Icon name="view-icon" fill="#3B425B" />,},{id: 1,header: 'Playground settings, API',icon: (<GroupedList.Icon name="configure-icon" fill="#3B425B" />),},],separator: 'top',},{id: 1,groupName: 'Development',items: [{id: 0,header: 'Data models',icon: <GroupedList.Icon name="cell-icon" fill="#3B425B" />,},{id: 1,header: 'Pipeline manager',icon: <GroupedList.Icon name="play-icon" fill="#3B425B" />,},{id: 2,header: 'Math models',icon: (<GroupedList.Icon name="function-icon" fill="#3B425B" />),},{id: 3,header: 'Rules',icon: (<GroupedList.Icon name="warning-icon" fill="#3B425B" />),},],separator: 'top',},{id: 2,groupName: 'Others',items: [{id: 0,header: 'Settings',icon: (<GroupedList.Iconname="settings-gear-icon"fill="#3B425B"/>),selected: true,},{id: 1,header: 'Documentation',icon: <GroupedList.Icon name="book-icon" fill="#3B425B" />,},{id: 2,header: 'Profile',icon: <GroupedList.Icon name="user-icon" fill="#3B425B" />,},],separator: 'top',},]}/></NavigationPanel>),[],)const SidebarPanel = () => {const info = {navBlock: {label: 'Предыдущая сноска',},content: {title: 'Пояснительный текст №1',content: (<><p>Идейные соображения высшего порядка, а также начало повседневнойработы по формированию позиции обеспечивает широкому кругу(специалистов) участие в формировании дальнейших направленийразвития. Равным образом реализация намеченных плановых заданийвлечет за собой процесс внедрения и модернизации моделиразвития. Значимость этих проблем настолько очевидна, чтопостоянное информационно-пропагандистское обеспечение нашейдеятельности в значительной степени обуславливает созданиесистем массового участия. Значимость этих проблем настолькоочевидна, что реализация намеченных плановых заданий требуютопределения и уточнения направлений прогрессивного развития.Идейные соображения высшего порядка, а также постоянноеинформационно-пропагандистское обеспечение нашей деятельностиспособствует подготовки и реализации направлений прогрессивногоразвития.</p><p>Не следует, однако забывать, что дальнейшее развитие различныхформ деятельности позволяет выполнять важные задания поразработке новых предложений. Разнообразный и богатый опытконсультация с широким активом представляет собой интересныйэксперимент проверки соответствующий условий активизации. Равнымобразом рамки и место обучения кадров позволяет выполнять важныезадания по разработке систем массового участия.</p></>),},}return (<SidePanelnavBlock={<SidePanel.NavBlocknavLabel={info.navBlock.label}onClick={() => {}}/>}content={<SidePanel.ContentBlocktitle={info.content.title}content={info.content.content}/>}closeButton={<SidePanel.CloseButton onClick={() => setIsSideVisible(false)}>Свернуть</SidePanel.CloseButton>}/>)}return (<LayoutleftPanel={<NavPanel />}rightPanel={<SidebarPanel />}isLeftVisible={isNavVisible}isRightVisible={isSideVisible}onOutsideClick={() => {setIsNavVisible(false)setIsSideVisible(false)}}><ContentExample /></Layout>)}
Specific page(type = "specific")
() => {const [isNavVisible, setIsNavVisible] = useState(true)const [isSideVisible, setIsSideVisible] = useState(false)const ContentExample = useCallback(() => (<div style={{ textAlign: 'center' }}><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim,quasi?</p><Button.Group><Button onClick={() => setIsNavVisible(true)}>show nav</Button><Button onClick={() => setIsSideVisible(true)}>show side</Button></Button.Group><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim,quasi? Lorem ipsum dolor sit amet, consectetur adipisicing elit.Laboriosam laborum voluptate voluptatum? Deserunt excepturi illumlibero natus nostrum, quod. Alias culpa explicabo ipsam perspiciatisquasi soluta. Consectetur distinctio eos expedita, fugit id in,ipsum laudantium magnam nostrum, odit quos sint?</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim,quasi?</p><p><img src="//picsum.photos/id/1025/400/800" alt="" /></p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Enim,quasi? Lorem ipsum dolor sit amet.</p></div>),[],)const NavPanel = useCallback(() => (<NavigationPanelcloseButton={<NavigationPanel.CloseButtontext="Закрыть"onClick={() => setIsNavVisible(false)}/>}logo={<NavigationPanel.Logo src="/public/f5-logo.svg" />}><GroupedListoptions={[{id: 0,groupName: 'Monitoring',items: [{id: 0,header: 'Playground',icon: <GroupedList.Icon name="view-icon" fill="#3B425B" />,},{id: 1,header: 'Playground settings, API',icon: (<GroupedList.Icon name="configure-icon" fill="#3B425B" />),},],separator: 'top',},{id: 1,groupName: 'Development',items: [{id: 0,header: 'Data models',icon: <GroupedList.Icon name="cell-icon" fill="#3B425B" />,},{id: 1,header: 'Pipeline manager',icon: <GroupedList.Icon name="play-icon" fill="#3B425B" />,},{id: 2,header: 'Math models',icon: (<GroupedList.Icon name="function-icon" fill="#3B425B" />),},{id: 3,header: 'Rules',icon: (<GroupedList.Icon name="warning-icon" fill="#3B425B" />),},],separator: 'top',},{id: 2,groupName: 'Others',items: [{id: 0,header: 'Settings',icon: (<GroupedList.Iconname="settings-gear-icon"fill="#3B425B"/>),selected: true,},{id: 1,header: 'Documentation',icon: <GroupedList.Icon name="book-icon" fill="#3B425B" />,},{id: 2,header: 'Profile',icon: <GroupedList.Icon name="user-icon" fill="#3B425B" />,},],separator: 'top',},]}/></NavigationPanel>),[],)const SidebarPanel = () => {const info = {navBlock: {label: 'Предыдущая сноска',},content: {title: 'Пояснительный текст №1',content: (<><p>Идейные соображения высшего порядка, а также начало повседневнойработы по формированию позиции обеспечивает широкому кругу(специалистов) участие в формировании дальнейших направленийразвития. Равным образом реализация намеченных плановых заданийвлечет за собой процесс внедрения и модернизации моделиразвития. Значимость этих проблем настолько очевидна, чтопостоянное информационно-пропагандистское обеспечение нашейдеятельности в значительной степени обуславливает созданиесистем массового участия. Значимость этих проблем настолькоочевидна, что реализация намеченных плановых заданий требуютопределения и уточнения направлений прогрессивного развития.Идейные соображения высшего порядка, а также постоянноеинформационно-пропагандистское обеспечение нашей деятельностиспособствует подготовки и реализации направлений прогрессивногоразвития.</p><p>Не следует, однако забывать, что дальнейшее развитие различныхформ деятельности позволяет выполнять важные задания поразработке новых предложений. Разнообразный и богатый опытконсультация с широким активом представляет собой интересныйэксперимент проверки соответствующий условий активизации. Равнымобразом рамки и место обучения кадров позволяет выполнять важныезадания по разработке систем массового участия.</p></>),},}return (<SidePanelnavBlock={<SidePanel.NavBlocknavLabel={info.navBlock.label}onClick={() => {}}/>}content={<SidePanel.ContentBlocktitle={info.content.title}content={info.content.content}/>}closeButton={<SidePanel.CloseButton onClick={() => setIsSideVisible(false)}>Свернуть</SidePanel.CloseButton>}/>)}return (<Layouttype="fullwidth"leftPanel={<NavPanel />}rightPanel={<SidebarPanel />}isLeftVisible={isNavVisible}isRightVisible={isSideVisible}onOutsideClick={() => {setIsNavVisible(false)setIsSideVisible(false)}}><ContentExample /></Layout>)}