tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 6.64 kB
Source Map (JSON)
{"version":3,"file":"message-list.mjs","sources":["../../../components/message/message-list.tsx"],"sourcesContent":["import { computed, defineComponent, ref } from 'vue';\nimport type { CSSProperties } from 'vue';\nimport { PLACEMENT_OFFSET } from './consts';\nimport TMessage from './message';\nimport { MessageOptions } from './type';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\nexport const DEFAULT_Z_INDEX = 6000;\n\nconst getUniqueId = (() => {\n let id = 0;\n return () => {\n id += 1;\n return id;\n };\n})();\n\nexport const MessageList = defineComponent({\n name: 'TMessageList',\n props: {\n zIndex: {\n type: Number,\n default: 0,\n },\n placement: {\n type: String,\n default: '',\n },\n },\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('message__list');\n const list = ref([]);\n const messageList = ref([]);\n\n const styles = computed(() => ({\n ...(PLACEMENT_OFFSET[props.placement as keyof typeof PLACEMENT_OFFSET] as CSSProperties),\n zIndex: props.zIndex !== DEFAULT_Z_INDEX ? props.zIndex : DEFAULT_Z_INDEX,\n }));\n\n const add = (msg: MessageOptions): number => {\n const mg = { ...msg, key: getUniqueId() };\n list.value.push(mg);\n return mg.key;\n };\n\n const remove = (index: number) => {\n list.value.splice(index, 1);\n };\n\n const removeAll = () => {\n list.value = [];\n };\n\n const getOffset = (val: string | number) => {\n if (!val) return;\n return isNaN(Number(val)) ? val : `${val}px`;\n };\n\n const msgStyles = (item: { offset: Array<string | number> }) => {\n return (\n item.offset && {\n position: 'relative',\n left: getOffset(item.offset[0]),\n top: getOffset(item.offset[1]),\n }\n );\n };\n\n const getProps = (index: number, item: MessageOptions) => {\n return {\n ...item,\n onCloseBtnClick: (e: any) => {\n if (item.onCloseBtnClick) {\n item.onCloseBtnClick(e);\n }\n return remove(index);\n },\n onDurationEnd: () => {\n if (item.onDurationEnd) {\n item.onDurationEnd();\n }\n return remove(index);\n },\n };\n };\n\n const addChild = (el: Element) => {\n if (el) {\n messageList.value.push(el);\n }\n };\n\n expose({ add, removeAll, list, messageList });\n\n return () => {\n if (!list.value.length) return;\n\n return (\n <div class={COMPONENT_NAME.value} style={styles.value}>\n {list.value.map((item, index) => (\n <TMessage key={item.key} style={msgStyles(item)} ref={addChild} {...getProps(index, item)} />\n ))}\n </div>\n );\n };\n },\n});\n\nexport default MessageList;\n"],"names":["DEFAULT_Z_INDEX","getUniqueId","id","MessageList","defineComponent","name","props","zIndex","type","Number","placement","String","setup","_ref","expose","COMPONENT_NAME","usePrefixClass","list","ref","messageList","styles","computed","_objectSpread","PLACEMENT_OFFSET","add","msg","mg","key","value","push","remove","index","splice","removeAll","getOffset","val","isNaN","msgStyles","item","offset","position","left","top","getProps","onCloseBtnClick","e","onDurationEnd","addChild","el","length","_createVNode","map","TMessage","_mergeProps"],"mappings":"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"}