# Class: DropdownView

## core.dropdown.views. DropdownView

Составная View. Используется для отображения выпадающей панели. Реализует логику HTML-элемента SELECT: ширина панели привязана к ширине кнопки.

- Button View - используется для отображения кнопки, по нажатии на которую всплывает панель.
- Panel View - используется при отображении выпадающей панели.

Ширина панели определяется CSS View панели, но не может быть меньше ширины кнопки. Высота панели определяется CSS View панели. Позиция панели регулируется опцией `panelPosition`.
Возможные эвенты:

- `'open' (dropdownView)` - эвент возникает после открытия панели.
- `'close' (dropdownView, ...)` - эвент возникает после закрытия панели. При программном закрытии через метод close, переданные в нее параметры передаются в это событие.
- `'button:*'` - все эвенты buttonView прокидываются в DropdownView с префиксом 'button:'.
- `'panel:*'` - все эвенты panelView прокидываются в DropdownView с префиксом 'panel:'.

#### new DropdownView(options)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `options` | Object | Объект опций. ###### Properties
  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `buttonView` | Marionette.View |  |  | View для отображение кнопки.
  `buttonViewOptions` | Object | function | <optional> |  | Опции, передаваемые в buttonView при создании.
  `panelView` | Marionette.View |  |  | View для отображение панели. Создается заново при каждом открытии панели.
  `panelViewOptions` | Object | function | <optional> |  | Опции, передаваемые в panelView при создании.
  `autoOpen` | Boolean | <optional> | true | Открывать панель автоматически при клике на buttonView.
  `panelPosition` | String | <optional> | 'down' | Направление открытие панели. Варианты: `'down'` - панель выпадает вниз. `'down-over'` - панель выпадает вниз, но верхняя ее граница располагается на верхней границе кнопки и перекрывает ее. `'up'` - панель выпадает наверх. `'up-over'` - панель выпадает вверх, но нижняя ее граница располагается на нижней границе кнопки и перекрывает ее.
  `renderAfterClose` | Boolean | <optional> | true | Автоматически вызывать render у buttonView при закрытии панели.

  Source:
    - dropdown/views/DropdownView.js, line 36

### Extends

- Marionette.LayoutView

### Members

#### buttonView

  Экземпляр button View, если View отрендерена. Иначе null.

  Source:
    - dropdown/views/DropdownView.js, line 100

#### panelView

  Экземпляр panel View, если панель открыта. Иначе null. Пересоздается при каждом открытии панели (!).

  Source:
    - dropdown/views/DropdownView.js, line 105

### Methods

#### close(arguments)

  Закрыть выпадающую панель.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `arguments` | * | <repeatable> | Агрументы, которые будут переданы в эвент `'close'`

  Source:
    - dropdown/views/DropdownView.js, line 209

#### open()

  Открыть выпадающую панель.

  Source:
    - dropdown/views/DropdownView.js, line 172