🚦

ContextMenu - Всплывающее меню

Интерактивный компонент для UI-составляющей контекстных меню.

new ContextMenu(items)

Конструктор при вызове создаёт экземпляр объект-меню с методами для его настройки и использования, хранящий затем эти настройки на себе. Принимает необязательный массив объектов вида {label, handlerFn, disabled}, задающих нужные пункты меню. Кроме объектов в массиве могут быть строки, которые просто выведутся наравне с пунктами меню, но не будут никак обрабатываться, или любые falsy-значения, которые будут означать горизонтальный разделитель между пунктами меню.

Методы экземпляров

.render()

Строит все DOM-элементы из массива items, предоставленного компоненту.

.show(x, y)

Выводит меню на экран, ориентировочно с левым верхним углом в указанных координатах. Если при этом меню не поместится на экран, оно должно быть левее и/или выше насколько необходимо, чтобы поместиться. Если всё равно негде уместиться, оно должно уменьшиться с появлением скроллинга. Клик мимо закрывает меню.

.showPersist(x, y)

То же, но клик мимо не закрывает меню.

.hide()

Убирает меню с экрана. DOM-элемент с меню удаляется из документа.

.isHidden()

Возвращает true / false, если меню на виду / скрыто.

.setSubj(details)

Принимает и запоминает значение (простое или сложное), чтобы передавать его в обработчики пунктов меню. По замыслу там могут быть данные, относительно которых пункт меню должен быть выполнен.

.getSubj()

Возвращает значение, запомненное для передачи его в обработчики пунктов меню.

.setItems(items)

Принимает и запоминает (вместо прежнего) массив объектов-дескрипторов пунктов меню вида {label, handlerFn, disabled}.

.getItems()

Возвращает сохранённый в данный момент массив объектов-дескрипторов пунктов меню.