Перейти к основному содержимому

Menu

Отображает меню

Имеет следующие режимы работы:

  • Custom: отображает произвольные элементы управления.
  • Dropdown: отображает раскрывающийся список пунктов меню.
  • Icons: отображает панель быстрого доступа со значками.
  <Menu Mode="Custom">
<Text Value="trigger" />
<Group >
<Text Value="option1" />
<Text Value="option2" />
<Text Value="option3" />
</Group>
</Menu>

<Menu
Mode="Icons"
State={[{
text: 'Некоторый текст',
label: 'необязательный заголовок опции',
value: '2',
icon: '/static/icons/copy.svg',
},
{
text: 'Некоторый текст',
value: '5',
icon: 'static/icons/copy.svg',
},
]}
/>

Свойства

ИмяОписаниеТипЗначение по умолчаниюВозможные значения
AutoHighlightOnHoverПризнак автоматической подсветки пункта меню при наведении указателя мышиbooleanTrue
BadgeКоличественная информация в компонентах Menu, Accordion, Link, Text. В качестве значения может использоваться объект с полями: counter (число),
position ("post" или "pre"), color (цвет)
any
CSSМассив строк-классов CSS-стилей компонентаarray
CloseOnItemClickПризнак закрытия компонента по щелчку мыши по пункту менюbooleanTrue
CombineConfigКонфигурация всех событий компонента. Служебное свойство для генерации фрагментов кода в визуальном режиме редактора форм.
Не рекомендуется указывать значение вручную
object
CoordinatesКоординаты для отображения меню без использования триггера открытия меню: объект вида {x: , y: }object
ForceCloseOnClickПризнак закрытия меню при нажатии мышью в области компонентаbooleanTrue
HiddenПризнак состояния компонента СкрытbooleanFalse
HintВсплывающая подсказка над компонентом, чаще используемая для подробного пояснения краткого текстаany
IconFieldПереопределение ключа для связи данных со значением, соответствующим значкам в менюstringicon
IdИдентификатор компонента для навигации к нему на HTML-страницеstring
LabelFieldПереопределение ключа для метки пункта менюstringlabel
ManualShowControlПризнак ручного управления отрисовкойbooleanFalse
ModeРежим работыenumCustomCustom - Произвольное содержимое
Dropdown - Раскрывающийся список пунктов. Получает данные из свойства State:
массив значений вида [{text:'text', value:'value', icon:'/icons/some.svg'}].
Вложенные массивы — группы, отделяемые друг от друга горизонтальной чертой:
[['необязательный заголовок группы. Строка',{text:'text',
label:'необязательное имя варианта',value:'value',
disabled:'true', icon:'/icons/some.svg'}],
[{text:'text', value:'value', icon:'/icons/some.svg'}]]
Icons - Панель быстрого доступа со значками. Получает данные из свойства State:
массив значений вида [{value:'value', icon:'/icons/some.svg'}].
Вложенные массивы — группы, отделяемые друг от друга вертикальной чертой:
[[{value:'value', icon:'/icons/some.svg'}],[{value:'value', icon:'/icons/some.svg'}]]
MultipleПризнак возможности выбора нескольких значенийbooleanFalse
NoPaddingsПризнак отсутствия стандартного отступа у компонентаbooleanFalse
OffsetОтступ от триггера открытия меню: объект вида {x: , y: }object<pre>{
"x": 0,
"y": 0
}</pre>
OnClickОбработчик события нажатия кнопки мышиundefined
OnKeyDownОбработчик события KeyDownundefined
OnKeyUpОбработчик события KeyUpundefined
OnMouseDownОбработчик события MouseDownundefined
OnMouseEnterОбработчик события MouseEnterundefined
OnMouseLeaveОбработчик события MouseLeaveundefined
OnMouseMoveОбработчик события MouseMoveundefined
OnMouseOutОбработчик события MouseOutundefined
OnMouseOverОбработчик события MouseOverundefined
OnMouseUpОбработчик события MouseUpundefined
OnUnmountОбработчик события Unmountundefined
OptionalOpenПризнак отображения меню без использования триггера открытия меню. Вместо этого свойства рекомендуется использовать ManualShowControlbooleanFalse
OutputOptionalOpenПризнак привязки значения для отрисовки меню без использования триггера открытия менюbooleanFalse
OutputStateМассив объектов допустимых выходных значенийarray
OutputValueПривязка отрисованного компонента к моделиany
RenderInPortalПризнак отрисовки меню в отдельном элементеbooleanTrue
SelectedFieldПереопределение ключа для выбранного пункта менюstringselected
ShowControlПризнак открытия и скрытия меню при условии ManualShowControl=truebooleanFalse
ShowGroupSeparatorПризнак отображения границы между группамиbooleanTrue
SlotМетка для динамического добавления другого компонента по его идентификаторуstring
StateМассив объектов допустимых входных значенийarray
TextFieldПереопределение ключа для связи данных с отображаемым значением выбранного пункта менюstringtext
TooltipВсплывающая подсказка над компонентом, чаще используемая для пояснения назначения значкаany
TraceId
Идентификатор для отслеживания состояния компонента исходя из хронологической последовательности:
создание, отрисовка, обновление, удаление; используется для выполнения фрагмента кода по изменению состояния компонента
string
UseSelectionПризнак отображения выбранных пунктов менюbooleanFalse
ValueПривязка модели к отрисованному компонентуany
ValueFieldПереопределение ключа для связи данных со значением, которое записывается в переменные состояния экранной формыstringvalue
VisibleПризнак инверсии состояния компонента СкрытbooleanTrue

Примеры

Данные:

  "menuData1": [{
"text": "Bool",
"value": "2"
},
{
"text": "String",
"value": "3"
},
{
"text": "Link",
"value": "4",
"disabled": true
},
{
"text": "Test",
"value": "5"
}
], "menuData2": [{
"text": "Bool",
"value": "2"
},
{
"text": "String",
"value": "3"
},
{
"text": "Link",
"value": "4",
"disabled": true
},
{
"text": "Test",
"value": "5"
}
], "menuData3": [[{
"text": "Create folder",
"value": "1",
"icon": "static/examples/9.svg"
}, {
"text": "Create file",
"value": "1",
"icon": "static/examples/10.svg"
}], [{
"text": "Upload files",
"value": "1",
"icon": "static/examples/11.svg"
}, {
"text": "Download files",
"value": "1",
"icon": "static/examples/12.svg"
}], [{
"text": "Copy",
"value": "1",
"icon": "static/examples/5.svg"
}, {
"text": "Cut",
"value": "1",
"icon": "static/examples/7.svg"
},{
"text": "Paste",
"value": "1",
"icon": "static/examples/6.svg"
},{
"text": "Rename",
"value": "1",
"icon": "static/examples/13.svg",
"disabled": true
}],{
"text": "Delete",
"value": "1",
"icon": "static/examples/8.svg",
"red": true
}
],"menuData4": [["Title 1",{
"text": "Bool",
"value": "1"
},{
"text": "Number",
"value": "1"
},{
"text": "Link",
"value": "1"
}],["Title 2",{
"text": "Secure",
"value": "1"
},{
"text": "Configuration",
"value": "1",
"disabled": true
},{
"text": "Link",
"value": "1"
}]
],"menuData5": [{
"text": "г.Москва",
"value": "2",
"label": "Москва"
},{
"text": "Московская область",
"value": "2",
"label": "Можайск"
},{
"text": "Мурманская область",
"value": "2",
"label": "Мончегорск",
"disabled": true
},{
"text": "г. Москва, Московское поселение",
"value": "2",
"label": "Московский"
},{
"text": "г. Москва, Рязановское поселение",
"value": "2",
"label": "Мостовское"
},{
"text": "г. Москва, Морозовское поселение",
"value": "2",
"label": "Морозовск"
},{
"text": "г. Москва, Филимоновское поселение",
"value": "2",
"label": "Марьино"
}
],"menuData6": [[{
"text": "Alam! Alarm!",
"value": "1",
"icon": "static/examples/1.svg"
}],[{
"text": "Alam! Alarm!",
"value": "1",
"icon": "static/examples/2.svg"
}],[{
"text": "Alam! Alarm!",
"value": "1",
"icon": "static/examples/3.svg"
},{
"text": "Alam! Alarm!",
"value": "1",
"icon": "static/examples/4.svg"
}],[{
"text": "Alam! Alarm!",
"value": "1",
"icon": "static/examples/5.svg"
},{
"text": "Alam! Alarm!",
"value": "1",
"icon": "static/examples/6.svg"
},{
"text": "Alam! Alarm!",
"value": "1",
"icon": "static/examples/7.svg",
"disabled": true
},],{
"text": "Some text",
"value": "1",
"icon": "static/examples/8.svg",
"red": true
}
]
}

JSX:

<Group Mode={"Column"}>
<Text Value="1. Mode=Custom" Mode="Medium_16"/>
<Text Value="Произвольные контролы внутри." CSS={['my-8', 'ml-16']}/>
<Menu
Model-var="test"
CSS={['my-16', 'ml-16']}
Badge={{
counter: 8,
position: "post",
color: "default",
}}
>
<Text Value="Click Me" Mode="Bold_12" Tooltip="Нажмите сюда" />
<Group Mode={'Column'} Width="200px">
<Group Mode={'Row'} Align="Start" Height="32px">
<Group Mode={'Row'} Width="38px"><Switcher Value-var={'ddd1'} OutputValue-var={'ddd1'}/></Group>
<Text Value="Option 1" WhiteSpace="nowrap" />
</Group>
<Group Mode={'Row'} Align="Start" Height="32px">
<Group Mode={'Row'} Width="38px"><Switcher Value-var={'ddd2'} OutputValue-var={'ddd2'}/></Group>
<Text Value="Option 2" WhiteSpace="nowrap" />
</Group>
<Separator/>
<Group Mode={'Row'} Align="Start" Height="32px">
<Group Mode={'Row'} Width="38px"><Switcher Value-var={'ddd'} OutputValue-var={'ddd'}/></Group>
<Text Value="Option 3" WhiteSpace="nowrap" />
</Group>
<Group Mode={'Row'} Align="Start" Height="32px">
<Group Mode={'Row'} Width="38px"><Switcher Value-var={'ddd3'} OutputValue-var={'ddd3'}/></Group>
<Text Value="Option 4" WhiteSpace="nowrap" />
</Group>
</Group>
</Menu>
<Text Value="2. Mode=Dropdown" Mode="Medium_16" CSS={['my-16']}/>
<Menu
Mode={'Dropdown'}
CSS={['mb-16', 'ml-16']}
CloseOnItemClick={false}
OutputValue-var={'testtt'}
Value-var={'testtt'}
State-var="menuData1"
OutputState-var="menuData1"
Multiple={false}
UseSelection={true}
>
<Text Mode="Bold_12" Value="Text (UseSelection, OutputState)" Tooltip="Нажмите сюда"/>
</Menu>
<Menu
Mode={'Dropdown'}
CSS={['mb-16', 'ml-16']}
CloseOnItemClick={false}
OutputValue-var={'testtt'}
Value-var={'testtt'}
State-var="menuData2"
OutputState-var="menuData2"
Multiple={true}
UseSelection={true}
>
<Text Mode="Bold_12" Value="Text (Multiple, UseSelection, OutputState)" Tooltip="Нажмите сюда"/>
</Menu>
<Menu
Mode={'Dropdown'}
CSS={['mb-16', 'ml-16']}
CloseOnItemClick={true}
OutputValue-var={'testtt'}
Value-var={'testtt'}
State-var="menuData3"
>
<Text Mode="Bold_12" Value="Text + Icon (CloseOnItemClick, Grouped )" Tooltip="Нажмите сюда"/>
</Menu>
<Menu
Mode={'Dropdown'}
CSS={['mb-16', 'ml-16']}
CloseOnItemClick={false}
OutputValue-var={'testtt'}
Value-var={'testtt'}
State-var="menuData4"
OutputState-var="menuData4"
UseSelection={true}
ShowGroupSeparator={false}
>
<Text Mode="Bold_12" Value="Header + Text (UseSelection, OutputState, ShowGroupSeparator=false)" Tooltip="Нажмите сюда"/>
</Menu>
<Menu
Mode={'Dropdown'}
CSS={['mb-16', 'ml-16']}
CloseOnItemClick={false}
OutputValue-var={'testtt'}
Value-var={'testtt'}
State-var="menuData5"
OutputState-var="menuData5"
UseSelection={true}
>
<Text Mode="Bold_12" Value="Label + Text (UseSelection)" Tooltip="Нажмите сюда"/>
</Menu>
<Menu
Mode={'Dropdown'}
CSS={['mb-16', 'ml-16']}
CloseOnItemClick={false}
OutputValue-var={'testtt'}
Value-var={'testtt'}
State-var="menuData5"
OutputState-var="menuData5"
UseSelection={true}
Offset={{x:140,y:-40}}
>
<Button><Text Mode="Bold_12" Value="Offset={{x:140,y:-40}}" Tooltip="Нажмите сюда"/></Button>
</Menu>
<Text Value="3. Mode=Icons" Mode="Medium_16" CSS={['my-16']}/>
<Menu
Mode={'Icons'}
CSS={['mb-16', 'ml-16']}
CloseOnItemClick={true}
OutputValue-var={'testtt'}
Value-var={'testtt'}
State-var="menuData6"
>
<Text Mode="Bold_12" Value="Menu Mode=Icons" Tooltip="Нажмите сюда"/>
</Menu>
</Group>