/menu (super!, autoHeight=no) {
	div/menuHeader {
		div/menuHeaderLeftPart {
			OpalTextInput/queryInput (
				class={_queryInputClass},
				clearable,
				placeholder={'Поиск' |t }
			) {
				OpalIcon/queryInputEndIcon (class=OpalTextInput__endIcon, name=search)
			}
		}

		div/menuHeaderRightPart {
			@Slot/menuHeaderContentSlot (for=menuHeaderContent) {
				@IfThen (viewModel.length) {
					span/selectedCount {
						'{"выбрано {n}" |t(viewModel.length) }'
					}
				}
			}
		}
	}

	div/menuList {
		OpalLoadedList/loadedList (
			dataProvider={dataProvider},
			dataListItemValueName={_dataListItemValueFieldName}
		) {
			OpalSelectOption/option (
				class=OpalLoadedList__listItem,
				value='{$item |key(_dataListItemValueFieldName) }',
				text='{$item |key(_dataListItemTextFieldName) }',
				subtext='{$item |key(_dataListItemSubtextFieldName) }'
			)
		}
	}

	div/menuSelected {
		@Repeat (for=item in viewModel) {
			div/selectedItem {
				'{item |key(_viewModelItemTextFieldName) }'

				button/btnDeselectItem (tabindex=-1) {
					OpalIcon/btnDeselectItemIcon (name=cross)
				}
			}
		}

		@IfThen (nothingSelectedShown) {
			@Slot/nothingSelectedSlot (for=nothingSelected) {
				span/nothingSelected {
					span/nothingSelectedMessage {
						'{"Ничего не выбрано" |t }'
					}
				}
			}
		}
	}

	div/menuFooter {
		div/menuFooterLeftPart {
			@Slot/menuFooterContentSlot (for=menuFooterContent)
		}

		div/menuFooterRightPart {
			OpalButton/btnClose {
				'{"Закрыть" |t }'
			}
		}
	}
}