UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 2.29 kB
{"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"}