{"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 '@tdesign/common-js/message/index';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport TMessage from './message';\nimport type { MessageOptions } from './type';\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,IAAMA,eAAkB,GAAA,IAAA;AAE/B,IAAMC,cAAe,YAAM;EACzB,IAAIC,EAAK,GAAA,CAAA,CAAA;AACT,EAAA,OAAO,YAAM;AACLA,IAAAA,EAAA,IAAA,CAAA,CAAA;AACC,IAAA,OAAAA,EAAA,CAAA;GACT,CAAA;AACF,CAAG,EAAA,CAAA;AAEUC,IAAAA,cAAcC,eAAgB,CAAA;AACzCC,EAAAA,IAAM,EAAA,cAAA;AACNC,EAAAA,KAAO,EAAA;AACLC,IAAAA,MAAQ,EAAA;AACNC,MAAAA,IAAM,EAAAC,MAAA;MACN,SAAS,EAAA,CAAA;KACX;AACAC,IAAAA,SAAW,EAAA;AACTF,MAAAA,IAAM,EAAAG,MAAA;MACN,SAAS,EAAA,EAAA;AACX,KAAA;GACF;AACAC,EAAAA,KAAM,WAANA,KAAMA,CAAAN,KAAA,EAAAO,IAAA,EAAmB;AAAA,IAAA,IAAVC,MAAA,GAAAD,IAAA,CAAAC,MAAA,CAAA;AACP,IAAA,IAAAC,cAAA,GAAiBC,eAAe,eAAe,CAAA,CAAA;AAC/C,IAAA,IAAAC,IAAA,GAAOC,GAAI,CAAA,EAAE,CAAA,CAAA;AACb,IAAA,IAAAC,WAAA,GAAcD,GAAI,CAAA,EAAE,CAAA,CAAA;IAEpB,IAAAE,MAAA,GAASC,SAAS,YAAA;MAAA,OAAAC,aAAA,CAAAA,aAAA,CAAA,EAAA,EAClBC,iBAAiBjB,KAAM,CAAAI,SAAA,CAAA,CAAA,EAAA,EAAA,EAAA;QAC3BH,MAAQ,EAAAD,KAAA,CAAMC,MAAW,KAAAP,eAAA,GAAkBM,MAAMC,MAAS,GAAAP,eAAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAC1D,CAAA,CAAA;AAEI,IAAA,IAAAwB,GAAA,GAAM,SAANA,GAAAA,CAAOC,GAAgC,EAAA;AAC3C,MAAA,IAAMC,qCAAUD,GAAK,CAAA,EAAA,EAAA,EAAA;QAAAE,GAAA,EAAK1B,aAAY;OAAE,CAAA,CAAA;AACnCgB,MAAAA,IAAA,CAAAW,KAAA,CAAMC,KAAKH,EAAE,CAAA,CAAA;MAClB,OAAOA,EAAG,CAAAC,GAAA,CAAA;KACZ,CAAA;AAEM,IAAA,IAAAG,MAAA,GAAS,SAATA,MAAAA,CAAUC,KAAkB,EAAA;MAC3Bd,IAAA,CAAAW,KAAA,CAAMI,MAAO,CAAAD,KAAA,EAAO,CAAC,CAAA,CAAA;KAC5B,CAAA;AAEA,IAAA,IAAME,YAAY,SAAZA,YAAkB;MACtBhB,IAAA,CAAKW,QAAQ,EAAC,CAAA;KAChB,CAAA;AAEM,IAAA,IAAAM,SAAA,GAAY,SAAZA,SAAAA,CAAaC,GAAyB,EAAA;MAC1C,IAAI,CAACA,GAAA,EAAK,OAAA;AACV,MAAA,OAAOC,MAAM3B,MAAO,CAAA0B,GAAG,CAAC,CAAA,GAAIA,gBAASA,GAAA,EAAA,IAAA,CAAA,CAAA;KACvC,CAAA;AAEM,IAAA,IAAAE,SAAA,GAAY,SAAZA,SAAAA,CAAaC,IAA6C,EAAA;MAC9D,OACEA,KAAKC,MAAU,IAAA;AACbC,QAAAA,QAAU,EAAA,UAAA;QACVC,IAAM,EAAAP,SAAA,CAAUI,IAAK,CAAAC,MAAA,CAAO,CAAE,CAAA,CAAA;QAC9BG,GAAK,EAAAR,SAAA,CAAUI,IAAK,CAAAC,MAAA,CAAO,CAAE,CAAA,CAAA;OAC/B,CAAA;KAEJ,CAAA;IAEM,IAAAI,QAAA,GAAW,SAAXA,QAAAA,CAAYZ,KAAA,EAAeO,IAAyB,EAAA;AACjD,MAAA,OAAAhB,aAAA,CAAAA,aAAA,CAAA,EAAA,EACFgB,IAAA,CAAA,EAAA,EAAA,EAAA;AACHM,QAAAA,eAAA,EAAiB,SAAjBA,eAAAA,CAAkBC,CAAW,EAAA;UAC3B,IAAIP,KAAKM,eAAiB,EAAA;AACxBN,YAAAA,IAAA,CAAKM,gBAAgBC,CAAC,CAAA,CAAA;AACxB,WAAA;UACA,OAAOf,OAAOC,KAAK,CAAA,CAAA;SACrB;AACAe,QAAAA,eAAe,SAAfA,gBAAqB;UACnB,IAAIR,KAAKQ,aAAe,EAAA;YACtBR,IAAA,CAAKQ,aAAc,EAAA,CAAA;AACrB,WAAA;UACA,OAAOhB,OAAOC,KAAK,CAAA,CAAA;AACrB,SAAA;AAAA,OAAA,CAAA,CAAA;KAEJ,CAAA;AAEM,IAAA,IAAAgB,QAAA,GAAW,SAAXA,QAAAA,CAAYC,EAAgB,EAAA;AAChC,MAAA,IAAIA,EAAI,EAAA;AACM7B,QAAAA,WAAA,CAAAS,KAAA,CAAMC,KAAKmB,EAAE,CAAA,CAAA;AAC3B,OAAA;KACF,CAAA;AAEAlC,IAAAA,MAAA,CAAO;AAAEU,MAAAA,GAAA,EAAAA,GAAA;AAAKS,MAAAA,SAAW,EAAXA,SAAW;AAAAhB,MAAAA,IAAA,EAAAA,IAAA;AAAME,MAAAA,aAAAA,WAAAA;AAAY,KAAC,CAAA,CAAA;AAE5C,IAAA,OAAO,YAAM;AACP,MAAA,IAAA,CAACF,KAAKW,KAAM,CAAAqB,MAAA,EAAQ,OAAA;AAExB,MAAA,OAAAC,WAAA,CAAA,KAAA,EAAA;QAAA,OACcnC,EAAAA,cAAA,CAAea,KAAO;AAAA,QAAA,OAAA,EAAOR,MAAO,CAAAQ,KAAAA;OAC7CX,EAAAA,CAAAA,IAAK,CAAAW,KAAA,CAAMuB,GAAI,CAAA,UAACb,MAAMP,KACrB,EAAA;AAAA,QAAA,OAAAmB,WAAA,CAAAE,QAAA,EAAAC,UAAA,CAAA;UAAA,KAAef,EAAAA,IAAK,CAAAX,GAAA;UAAA,OAAYU,EAAAA,SAAA,CAAUC,IAAI,CAAG;UAAA,KAAKS,EAAAA,QAAAA;AAAc,SAAA,EAAAJ,QAAA,CAASZ,KAAO,EAAAO,IAAI,CAAG,CAAA,EAAA,IAAA,CAAA,CAAA;AAAA,OAC5F;KAGP,CAAA;AACF,GAAA;AACF,CAAC;;;;"}