{"version":3,"file":"instance.mjs","sources":["../../../../../../packages/components/message/src/instance.ts"],"sourcesContent":["import { shallowReactive } from 'vue'\nimport type { ComponentInternalInstance, VNode } from 'vue'\nimport type { Mutable } from '@bigin/utils'\nimport type { MessageHandler, 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 instances: MessageContext[] = shallowReactive([])\n\nexport const getInstance = (id: string) => {\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 = (id: string): number => {\n  const { prev } = getInstance(id)\n  if (!prev) return 0\n  return prev.vm.exposed!.bottom.value\n}\n"],"names":[],"mappings":";;AAaa,MAAA,SAAA,GAA8B,eAAgB,CAAA,EAAE,EAAA;AAEhD,MAAA,WAAA,GAAc,CAAC,EAAe,KAAA;AACzC,EAAA,MAAM,MAAM,SAAU,CAAA,SAAA,CAAU,CAAC,QAAa,KAAA,QAAA,CAAS,OAAO,EAAE,CAAA,CAAA;AAChE,EAAA,MAAM,UAAU,SAAU,CAAA,GAAA,CAAA,CAAA;AAC1B,EAAI,IAAA,IAAA,CAAA;AACJ,EAAA,IAAI,MAAM,CAAG,EAAA;AACX,IAAA,IAAA,GAAO,UAAU,GAAM,GAAA,CAAA,CAAA,CAAA;AAAA,GACzB;AACA,EAAO,OAAA,EAAE,SAAS,IAAK,EAAA,CAAA;AACzB,EAAA;AAEa,MAAA,aAAA,GAAgB,CAAC,EAAuB,KAAA;AACnD,EAAA,MAAM,EAAE,IAAA,EAAS,GAAA,WAAA,CAAY,EAAE,CAAA,CAAA;AAC/B,EAAA,IAAI,CAAC,IAAA;AAAM,IAAO,OAAA,CAAA,CAAA;AAClB,EAAO,OAAA,IAAA,CAAK,EAAG,CAAA,OAAA,CAAS,MAAO,CAAA,KAAA,CAAA;AACjC;;;;"}