UNPKG

tav-ui

Version:
1 lines 4.01 kB
{"version":3,"file":"context-menu-method2.mjs","sources":["../../../../../../../packages/components/context-menu/src/context-menu-method.ts"],"sourcesContent":["import { createVNode, render } from 'vue'\nimport { isClient } from '@tav-ui/utils/is'\nimport TaContextMenu from './context-menu'\nimport type { ContextMenuOptions, ContextMenuProps, Fn } from './types'\n\nconst menuManager: {\n domList: Element[]\n resolve: Fn\n} = {\n domList: [],\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n resolve: () => {},\n}\n\nexport const createContextMenu = function (options: ContextMenuOptions) {\n const { event } = options || {}\n\n event && event?.preventDefault()\n\n if (!isClient) return\n\n return new Promise((resolve) => {\n const body = document.body\n\n const container = document.createElement('div')\n const propsData: Partial<ContextMenuProps> = {}\n if (options.styles) propsData.styles = options.styles\n\n if (options.items) propsData.items = options.items\n\n if (options.event) {\n propsData.customEvent = event\n propsData.axis = { x: event.clientX, y: event.clientY }\n }\n\n const vm = createVNode(TaContextMenu, propsData)\n render(vm, container)\n\n const handleClick = function () {\n menuManager.resolve('')\n }\n\n menuManager.domList.push(container)\n\n const remove = function () {\n menuManager.domList.forEach((dom: Element) => {\n try {\n dom && body.removeChild(dom)\n } catch (error) {}\n })\n body.removeEventListener('click', handleClick)\n body.removeEventListener('scroll', handleClick)\n }\n\n menuManager.resolve = function (arg) {\n remove()\n resolve(arg)\n }\n remove()\n body.appendChild(container)\n body.addEventListener('click', handleClick)\n body.addEventListener('scroll', handleClick)\n })\n}\n\nexport const destroyContextMenu = function () {\n if (menuManager) {\n menuManager.resolve('')\n menuManager.domList = []\n }\n}\n"],"names":["TaContextMenu"],"mappings":";;;;AAGA,MAAM,WAAW,GAAG;AACpB,EAAE,OAAO,EAAE,EAAE;AACb,EAAE,OAAO,EAAE,MAAM;AACjB,GAAG;AACH,CAAC,CAAC;AACU,MAAC,iBAAiB,GAAG,SAAS,OAAO,EAAE;AACnD,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AAClC,EAAE,KAAK,IAAI,KAAK,EAAE,cAAc,EAAE,CAAC;AACnC,EAAE,IAAI,CAAC,QAAQ;AACf,IAAI,OAAO;AACX,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAClC,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC/B,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,OAAO,CAAC,MAAM;AACtB,MAAM,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,OAAO,CAAC,KAAK;AACrB,MAAM,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACtC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,MAAM,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;AACpC,MAAM,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AAC9D,KAAK;AACL,IAAI,MAAM,EAAE,GAAG,WAAW,CAACA,WAAa,EAAE,SAAS,CAAC,CAAC;AACrD,IAAI,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAC1B,IAAI,MAAM,WAAW,GAAG,WAAW;AACnC,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC9B,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,IAAI,MAAM,MAAM,GAAG,WAAW;AAC9B,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC3C,QAAQ,IAAI;AACZ,UAAU,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvC,SAAS,CAAC,OAAO,KAAK,EAAE;AACxB,SAAS;AACT,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACrD,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACtD,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,OAAO,GAAG,SAAS,GAAG,EAAE;AACxC,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,EAAE;AACU,MAAC,kBAAkB,GAAG,WAAW;AAC7C,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC5B,IAAI,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;AAC7B,GAAG;AACH;;;;"}