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()
Возвращает сохранённый в данный момент массив объектов-дескрипторов пунктов меню.