element-plus
Version:
A Component Library for Vue 3
1 lines • 2.81 kB
Source Map (JSON)
{"version":3,"file":"instance.mjs","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"],"names":[],"mappings":";;AAcO,MAAM,kBAAA,GAAqB,eAAA;AAAA,EAChC;AACF;AAEO,MAAM,6BAAA,GAAgC,CAAC,SAAA,KAAgC;AAC5E,EAAA,IAAI,CAAC,kBAAA,CAAmB,SAAS,CAAA,EAAG;AAClC,IAAA,kBAAA,CAAmB,SAAS,CAAA,GAAI,eAAA,CAAgB,EAAE,CAAA;AAAA,EACpD;AACA,EAAA,OAAO,mBAAmB,SAAS,CAAA;AACrC;AAEO,MAAM,WAAA,GAAc,CAAC,EAAA,EAAY,SAAA,KAAgC;AACtE,EAAA,MAAM,SAAA,GAAY,kBAAA,CAAmB,SAAS,CAAA,IAAK,EAAC;AACpD,EAAA,MAAM,MAAM,SAAA,CAAU,SAAA,CAAU,CAAC,QAAA,KAAa,QAAA,CAAS,OAAO,EAAE,CAAA;AAChE,EAAA,MAAM,OAAA,GAAU,UAAU,GAAG,CAAA;AAC7B,EAAA,IAAI,IAAA;AACJ,EAAA,IAAI,MAAM,CAAA,EAAG;AACX,IAAA,IAAA,GAAO,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,EAC1B;AACA,EAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AACzB;AAEO,MAAM,aAAA,GAAgB,CAC3B,EAAA,EACA,SAAA,KACW;AACX,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,WAAA,CAAY,IAAI,SAAS,CAAA;AAC1C,EAAA,IAAI,CAAC,MAAM,OAAO,CAAA;AAClB,EAAA,OAAO,IAAA,CAAK,EAAA,CAAG,OAAA,CAAS,MAAA,CAAO,KAAA;AACjC;AAEO,MAAM,gBAAA,GAAmB,CAC9B,EAAA,EACA,MAAA,EACA,SAAA,KACG;AACH,EAAA,MAAM,SAAA,GAAY,kBAAA,CAAmB,SAAS,CAAA,IAAK,EAAC;AACpD,EAAA,MAAM,MAAM,SAAA,CAAU,SAAA,CAAU,CAAC,QAAA,KAAa,QAAA,CAAS,OAAO,EAAE,CAAA;AAChE,EAAA,OAAO,GAAA,GAAM,IAAI,EAAA,GAAK,MAAA;AACxB;;;;"}