{"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;;;;"}