{"version":3,"file":"instance.mjs","names":[],"sources":["../../../../../../packages/components/message/src/instance.ts"],"sourcesContent":["import { shallowReactive } from 'vue'\n\nimport type { ComponentInternalInstance, VNode } from 'vue'\nimport type { Mutable } from '@element-plus/utils'\nimport type { MessageHandler, MessagePlacement, MessageProps } from './message'\n\nexport type MessageContext = {\n  id: string\n  vnode: VNode\n  handler: MessageHandler\n  vm: ComponentInternalInstance\n  props: Mutable<MessageProps>\n}\n\nexport const placementInstances = shallowReactive(\n  {} as Record<MessagePlacement, MessageContext[]>\n)\n\nexport const getOrCreatePlacementInstances = (placement: MessagePlacement) => {\n  if (!placementInstances[placement]) {\n    placementInstances[placement] = shallowReactive([])\n  }\n  return placementInstances[placement]\n}\n\nexport const getInstance = (id: string, placement: MessagePlacement) => {\n  const instances = placementInstances[placement] || []\n  const idx = instances.findIndex((instance) => instance.id === id)\n  const current = instances[idx]\n  let prev: MessageContext | undefined\n  if (idx > 0) {\n    prev = instances[idx - 1]\n  }\n  return { current, prev }\n}\n\nexport const getLastOffset = (\n  id: string,\n  placement: MessagePlacement\n): number => {\n  const { prev } = getInstance(id, placement)\n  if (!prev) return 0\n  return prev.vm.exposed!.bottom.value\n}\n\nexport const getOffsetOrSpace = (\n  id: string,\n  offset: number,\n  placement: MessagePlacement\n) => {\n  const instances = placementInstances[placement] || []\n  const idx = instances.findIndex((instance) => instance.id === id)\n  return idx > 0 ? 16 : offset\n}\n"],"mappings":";;AAcA,MAAa,qBAAqB,gBAChC,EAAE,CACH;AAED,MAAa,iCAAiC,cAAgC;CAC5E,IAAI,CAAC,mBAAmB,YACtB,mBAAmB,aAAa,gBAAgB,EAAE,CAAC;CAErD,OAAO,mBAAmB;;AAG5B,MAAa,eAAe,IAAY,cAAgC;CACtE,MAAM,YAAY,mBAAmB,cAAc,EAAE;CACrD,MAAM,MAAM,UAAU,WAAW,aAAa,SAAS,OAAO,GAAG;CACjE,MAAM,UAAU,UAAU;CAC1B,IAAI;CACJ,IAAI,MAAM,GACR,OAAO,UAAU,MAAM;CAEzB,OAAO;EAAE;EAAS;EAAM;;AAG1B,MAAa,iBACX,IACA,cACW;CACX,MAAM,EAAE,SAAS,YAAY,IAAI,UAAU;CAC3C,IAAI,CAAC,MAAM,OAAO;CAClB,OAAO,KAAK,GAAG,QAAS,OAAO;;AAGjC,MAAa,oBACX,IACA,QACA,cACG;CAGH,QAFkB,mBAAmB,cAAc,EAAE,EAC/B,WAAW,aAAa,SAAS,OAAO,GACpD,GAAG,IAAI,KAAK"}