UNPKG

oui-kit

Version:

🎯 *UI toolkit with a French touch* 🇫🇷

41 lines (36 loc) • 1.51 kB
import type { DirectiveBinding } from 'vue' import type { LoggerInterface } from 'zeed' import { Logger } from 'zeed' const log: LoggerInterface = Logger('oui:v-menu') export const vMenu = { updated: (element: any, binding: DirectiveBinding) => { log.assert(typeof binding.value === 'function', 'v-menu requires function as argument') element.__ouiVMenu = binding.value }, mounted: (element: any, binding: DirectiveBinding) => { log.assert(typeof binding.value === 'function', 'v-menu requires function as argument') element.__ouiVMenu = binding.value element.addEventListener('contextmenu', (event: MouseEvent) => { event.preventDefault() // no system menu element.__ouiVMenu?.(event, element) }) element.addEventListener('click', (event: MouseEvent) => { element.__ouiVMenu?.(event, element) }) }, } export const vMenuContext = { updated: (element: any, binding: DirectiveBinding) => { log.assert(typeof binding.value === 'function', 'v-menu requires function as argument') element.__ouiVMenuContext = binding.value }, mounted: (element: any, binding: DirectiveBinding) => { log.assert(typeof binding.value === 'function', 'v-menu requires function as argument') element.__ouiVMenuContext = binding.value element.addEventListener('contextmenu', (event: MouseEvent) => { event.preventDefault() // no system menu element.__ouiVMenuContext?.(event, element) }) }, } export const vContext = vMenuContext