{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/pop-up/index.ts"],"sourcesContent":["import { createVNode, render, isVNode } from \"vue\";\nimport popUp from \"./src/pop-up.vue\";\nimport type { PopUpProps } from \"./src/pop-up\";\nimport type { App, Component } from \"vue\";\n\nconst convertJsonKey = (obj: Record<string, any>) => {\n  const result = {};\n  for (let key in obj) {\n    const keyVal = obj[key];\n    key = `on${key.replace(key[0], key[0].toUpperCase())}`;\n    result[key] = keyVal;\n  }\n  return result;\n};\npopUp.install = (app: App) => {\n  app.component(popUp.name, popUp);\n  app.config.globalProperties.$modal = ({\n    options,\n    component,\n    props: childProps,\n    on = {},\n  }: {\n    options: Partial<PopUpProps>;\n    component: Component;\n    props: Record<string, any>;\n    on: Record<string, any>;\n  }) => {\n    const { close, confirm, ...child } = on;\n    const onChild = convertJsonKey(child);\n    const componentVnode = createVNode(component, {\n      ...childProps,\n      ...onChild,\n    });\n    const vnode = createVNode(\n      popUp,\n      {\n        onConfirm: (value: any) => {\n          if (confirm) {\n            confirm(value, _closeModal);\n          }\n        },\n        \"onUpdate:modelValue\": (value: any) => {\n          if (!value) _closeModal();\n        },\n        onClose: (value: any) => {\n          if (close) {\n            close(value);\n          }\n        },\n      },\n      {\n        default: () => componentVnode,\n        ...(isVNode(options.titleExtra) && {\n          \"title-extra\": () => options.titleExtra,\n        }),\n      }\n    );\n    vnode.appContext = app._context;\n    const container = document.createElement(\"div\");\n    render(vnode, container);\n    const instance = vnode.component;\n    document.body.appendChild(container);\n    // 获取实例的 props ，进行传递 props\n    const { props } = instance;\n    Object.assign(props, options, { modelValue: true });\n    // 关闭弹窗方法\n    const _closeModal = () => {\n      props.modelValue = false;\n      container.parentNode?.removeChild(container);\n    };\n  };\n};\nexport const xPopUp = popUp;\nexport default xPopUp;\nexport * from \"./src/pop-up\";\n"],"names":["popUp"],"mappings":";;;;;AAEA,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK;AAChC,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACvB,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACFA,MAAK,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK;AACzB,EAAE,GAAG,CAAC,SAAS,CAACA,MAAK,CAAC,IAAI,EAAEA,MAAK,CAAC,CAAC;AACnC,EAAE,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;AACxC,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,KAAK,EAAE,UAAU;AACrB,IAAI,EAAE,GAAG,EAAE;AACX,GAAG,KAAK;AACR,IAAI,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC;AAC5C,IAAI,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAC1C,IAAI,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,EAAE;AAClD,MAAM,GAAG,UAAU;AACnB,MAAM,GAAG,OAAO;AAChB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,KAAK,GAAG,WAAW,CAACA,MAAK,EAAE;AACrC,MAAM,SAAS,EAAE,CAAC,KAAK,KAAK;AAC5B,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACtC,SAAS;AACT,OAAO;AACP,MAAM,qBAAqB,EAAE,CAAC,KAAK,KAAK;AACxC,QAAQ,IAAI,CAAC,KAAK;AAClB,UAAU,WAAW,EAAE,CAAC;AACxB,OAAO;AACP,MAAM,OAAO,EAAE,CAAC,KAAK,KAAK;AAC1B,QAAQ,IAAI,KAAK,EAAE;AACnB,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,SAAS;AACT,OAAO;AACP,KAAK,EAAE;AACP,MAAM,OAAO,EAAE,MAAM,cAAc;AACnC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;AACxC,QAAQ,aAAa,EAAE,MAAM,OAAO,CAAC,UAAU;AAC/C,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;AACpC,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC7B,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;AACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACzC,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AAC/B,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,IAAI,MAAM,WAAW,GAAG,MAAM;AAC9B,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC/E,KAAK,CAAC;AACN,GAAG,CAAC;AACJ,CAAC,CAAC;AACU,MAAC,MAAM,GAAGA;;;;"}