{"version":3,"file":"Message.cjs","sources":["../../../../../../packages/components/message/src/Message.tsx"],"sourcesContent":["import type { Key } from '@antdv/types';\nimport type { NotificationInstance } from '@antdv/vue-components/vc-notification/src/Notification';\nimport type {\n  ConfigDuration,\n  ConfigOnClose,\n  ConfigOptions,\n  JointContent,\n  MessageApi,\n  MessageType,\n  NoticeType,\n  ThenableArgument,\n} from './interface';\nimport type { MessageArgsProps } from './props';\nimport {\n  CheckCircleFilled,\n  CloseCircleFilled,\n  ExclamationCircleFilled,\n  InfoCircleFilled,\n  LoadingOutlined,\n} from '@ant-design/icons-vue';\n\nimport { classNames } from '@antdv/utils';\nimport VcNotification from '@antdv/vue-components/vc-notification/src/Notification';\nimport useStyle from '../style';\n\nlet defaultDuration = 3;\nlet defaultTop: string;\nlet messageInstance: NotificationInstance;\nlet key = 1;\nlet localPrefixCls = '';\nlet transitionName = 'move-up';\nlet hasTransitionName = false;\nlet getContainer = () => document.body;\nlet maxCount: number;\nlet rtl = false;\n\nexport function getKeyThenIncreaseKey() {\n  return key++;\n}\n\nfunction setMessageConfig(options: ConfigOptions & { top: string }) {\n  if (options.top !== undefined) {\n    defaultTop = options.top;\n    messageInstance = null; // delete messageInstance for new defaultTop\n  }\n  if (options.duration !== undefined)\n    defaultDuration = options.duration;\n\n  if (options.prefixCls !== undefined)\n    localPrefixCls = options.prefixCls;\n\n  if (options.getContainer !== undefined) {\n    getContainer = options.getContainer;\n    messageInstance = null; // delete messageInstance for new getContainer\n  }\n  if (options.transitionName !== undefined) {\n    transitionName = options.transitionName;\n    messageInstance = null; // delete messageInstance for new transitionName\n    hasTransitionName = true;\n  }\n  if (options.maxCount !== undefined) {\n    maxCount = options.maxCount;\n    messageInstance = null;\n  }\n  if (options.rtl !== undefined)\n    rtl = options.rtl;\n}\n\nfunction getMessageInstance(args: MessageArgsProps, callback: (i: NotificationInstance) => void) {\n  if (messageInstance) {\n    callback(messageInstance);\n    return;\n  }\n\n  VcNotification.newInstance(\n    {\n      appContext: args.appContext,\n      prefixCls: args.prefixCls || localPrefixCls,\n      rootPrefixCls: args.rootPrefixCls,\n      transitionName,\n      hasTransitionName,\n      style: { top: defaultTop }, // 覆盖原来的样式\n      getContainer: getContainer || args.getPopupContainer,\n      maxCount,\n      name: 'message',\n      useStyle,\n    },\n    (instance: any) => {\n      if (messageInstance) {\n        callback(messageInstance);\n        return;\n      }\n      messageInstance = instance;\n      callback(instance);\n    },\n  );\n}\n\nconst typeToIcon = {\n  info: InfoCircleFilled,\n  success: CheckCircleFilled,\n  error: CloseCircleFilled,\n  warning: ExclamationCircleFilled,\n  warn: ExclamationCircleFilled,\n  loading: LoadingOutlined,\n};\n\nexport const typeList = Object.keys(typeToIcon) as NoticeType[];\n\nfunction notice(args: MessageArgsProps): MessageType {\n  const duration = args.duration !== undefined ? args.duration : defaultDuration;\n\n  const target = args.key || getKeyThenIncreaseKey();\n  const closePromise = new Promise((resolve) => {\n    const callback = () => {\n      if (typeof args.onClose === 'function')\n        args.onClose();\n\n      return resolve(true);\n    };\n    getMessageInstance(args, (instance) => {\n      instance.notice({\n        key: target,\n        duration,\n        style: args.style || {},\n        class: args.class,\n        content: ({ prefixCls }) => {\n          const Icon = typeToIcon[args.type];\n          const iconNode = Icon ? <Icon /> : '';\n          const messageClass = classNames(`${prefixCls}-custom-content`, {\n            [`${prefixCls}-${args.type}`]: args.type,\n            [`${prefixCls}-rtl`]: rtl === true,\n          });\n          return (\n            <div class={messageClass}>\n              {typeof args.icon === 'function' ? args.icon() : args.icon || iconNode}\n              <span>{typeof args.content === 'function' ? args.content() : args.content}</span>\n            </div>\n          );\n        },\n        onClose: callback,\n        onClick: args.onClick,\n      });\n    });\n  });\n  const result: any = () => {\n    if (messageInstance)\n      messageInstance.removeNotice(target);\n  };\n  result.then = (filled: ThenableArgument, rejected: ThenableArgument) => closePromise.then(filled, rejected);\n  result.promise = closePromise;\n  return result;\n}\n\nfunction isArgsProps(content: JointContent): content is MessageArgsProps {\n  return (\n    Object.prototype.toString.call(content) === '[object Object]'\n    && !!(content as MessageArgsProps).content\n  );\n}\n\nconst api: any = {\n  open: notice,\n  config: setMessageConfig,\n  destroy(messageKey?: Key) {\n    if (messageInstance) {\n      if (messageKey) {\n        const { removeNotice } = messageInstance;\n        removeNotice(messageKey);\n      } else {\n        const { destroy } = messageInstance;\n        destroy();\n        messageInstance = null;\n      }\n    }\n  },\n};\n\nexport function attachTypeApi(originalApi: MessageApi, type: NoticeType) {\n  originalApi[type] = (\n    content: JointContent,\n    duration?: ConfigDuration,\n    onClose?: ConfigOnClose,\n  ) => {\n    if (isArgsProps(content))\n      return originalApi.open({ ...content, type });\n\n    if (typeof duration === 'function') {\n      onClose = duration;\n      duration = undefined;\n    }\n\n    return originalApi.open({ content, duration, type, onClose });\n  };\n}\n\ntypeList.forEach(type => attachTypeApi(api, type));\n\n/** @private test Only function. Not work on production */\nexport const getInstance = () => (process.env.NODE_ENV === 'test' ? messageInstance : null);\n\nexport default api as MessageApi;\n"],"names":["defaultDuration","defaultTop","messageInstance","key","localPrefixCls","transitionName","hasTransitionName","getContainer","document","body","maxCount","rtl","getKeyThenIncreaseKey","setMessageConfig","options","top","undefined","duration","prefixCls","getMessageInstance","args","callback","VcNotification","newInstance","appContext","rootPrefixCls","style","getPopupContainer","name","useStyle","instance","typeToIcon","info","InfoCircleFilled","success","CheckCircleFilled","error","CloseCircleFilled","warning","ExclamationCircleFilled","warn","loading","LoadingOutlined","typeList","Object","keys","notice","target","closePromise","Promise","resolve","onClose","class","content","Icon","type","iconNode","_createVNode","messageClass","classNames","icon","onClick","result","removeNotice","then","filled","rejected","promise","isArgsProps","prototype","toString","call","api","open","config","destroy","messageKey","attachTypeApi","originalApi","forEach","getInstance","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;AAyBA,IAAIA,eAAkB,GAAA,CAAA,CAAA;AACtB,IAAIC,UAAAA,CAAAA;AACJ,IAAIC,eAAAA,CAAAA;AACJ,IAAIC,GAAM,GAAA,CAAA,CAAA;AACV,IAAIC,cAAiB,GAAA,EAAA,CAAA;AACrB,IAAIC,cAAiB,GAAA,SAAA,CAAA;AACrB,IAAIC,iBAAoB,GAAA,KAAA,CAAA;AACxB,IAAIC,YAAAA,GAAeA,MAAMC,QAASC,CAAAA,IAAAA,CAAAA;AAClC,IAAIC,QAAAA,CAAAA;AACJ,IAAIC,GAAM,GAAA,KAAA,CAAA;AAEH,SAASC,qBAAwB,GAAA;AACtC,EAAOT,OAAAA,GAAAA,EAAAA,CAAAA;AACT,CAAA;AAEA,SAASU,iBAAiBC,OAA0C,EAAA;AAClE,EAAIA,IAAAA,OAAAA,CAAQC,QAAQC,KAAW,CAAA,EAAA;AAC7Bf,IAAAA,UAAAA,GAAaa,OAAQC,CAAAA,GAAAA,CAAAA;AACrBb,IAAkB,eAAA,GAAA,IAAA,CAAA;AAAA,GACpB;AACA,EAAA,IAAIY,QAAQG,QAAaD,KAAAA,KAAAA,CAAAA;AACvBhB,IAAAA,eAAAA,GAAkBc,OAAQG,CAAAA,QAAAA,CAAAA;AAE5B,EAAA,IAAIH,QAAQI,SAAcF,KAAAA,KAAAA,CAAAA;AACxBZ,IAAAA,cAAAA,GAAiBU,OAAQI,CAAAA,SAAAA,CAAAA;AAE3B,EAAIJ,IAAAA,OAAAA,CAAQP,iBAAiBS,KAAW,CAAA,EAAA;AACtCT,IAAAA,YAAAA,GAAeO,OAAQP,CAAAA,YAAAA,CAAAA;AACvBL,IAAkB,eAAA,GAAA,IAAA,CAAA;AAAA,GACpB;AACA,EAAIY,IAAAA,OAAAA,CAAQT,mBAAmBW,KAAW,CAAA,EAAA;AACxCX,IAAAA,cAAAA,GAAiBS,OAAQT,CAAAA,cAAAA,CAAAA;AACzBH,IAAkB,eAAA,GAAA,IAAA,CAAA;AAClBI,IAAoB,iBAAA,GAAA,IAAA,CAAA;AAAA,GACtB;AACA,EAAIQ,IAAAA,OAAAA,CAAQJ,aAAaM,KAAW,CAAA,EAAA;AAClCN,IAAAA,QAAAA,GAAWI,OAAQJ,CAAAA,QAAAA,CAAAA;AACnBR,IAAkB,eAAA,GAAA,IAAA,CAAA;AAAA,GACpB;AACA,EAAA,IAAIY,QAAQH,GAAQK,KAAAA,KAAAA,CAAAA;AAClBL,IAAAA,GAAAA,GAAMG,OAAQH,CAAAA,GAAAA,CAAAA;AAClB,CAAA;AAEA,SAASQ,kBAAAA,CAAmBC,MAAwBC,QAA6C,EAAA;AAC/F,EAAA,IAAInB,eAAiB,EAAA;AACnBmB,IAAAA,QAAAA,CAASnB,eAAe,CAAA,CAAA;AACxB,IAAA,OAAA;AAAA,GACF;AAEAoB,EAAAA,oBAAAA,CAAeC,WACb,CAAA;AAAA,IACEC,YAAYJ,IAAKI,CAAAA,UAAAA;AAAAA,IACjBN,SAAAA,EAAWE,KAAKF,SAAad,IAAAA,cAAAA;AAAAA,IAC7BqB,eAAeL,IAAKK,CAAAA,aAAAA;AAAAA,IACpBpB,cAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAoB,KAAO,EAAA;AAAA,MAAEX,GAAKd,EAAAA,UAAAA;AAAAA,KAAW;AAAA;AAAA,IACzBM,YAAAA,EAAcA,gBAAgBa,IAAKO,CAAAA,iBAAAA;AAAAA,IACnCjB,QAAAA;AAAAA,IACAkB,IAAM,EAAA,SAAA;AAAA,cACNC,aAAAA;AAAAA,KAEDC,CAAkB,QAAA,KAAA;AACjB,IAAA,IAAI5B,eAAiB,EAAA;AACnBmB,MAAAA,QAAAA,CAASnB,eAAe,CAAA,CAAA;AACxB,MAAA,OAAA;AAAA,KACF;AACAA,IAAkB4B,eAAAA,GAAAA,QAAAA,CAAAA;AAClBT,IAAAA,QAAAA,CAASS,QAAQ,CAAA,CAAA;AAAA,GAErB,CAAA,CAAA;AACF,CAAA;AAEA,MAAMC,UAAa,GAAA;AAAA,EACjBC,IAAMC,EAAAA,yBAAAA;AAAAA,EACNC,OAASC,EAAAA,0BAAAA;AAAAA,EACTC,KAAOC,EAAAA,0BAAAA;AAAAA,EACPC,OAASC,EAAAA,gCAAAA;AAAAA,EACTC,IAAMD,EAAAA,gCAAAA;AAAAA,EACNE,OAASC,EAAAA,wBAAAA;AACX,CAAA,CAAA;AAEaC,MAAAA,QAAAA,GAAWC,MAAOC,CAAAA,IAAAA,CAAKd,UAAU,EAAA;AAE9C,SAASe,OAAO1B,IAAqC,EAAA;AACnD,EAAA,MAAMH,QAAWG,GAAAA,IAAAA,CAAKH,QAAaD,KAAAA,KAAAA,CAAAA,GAAYI,KAAKH,QAAWjB,GAAAA,eAAAA,CAAAA;AAE/D,EAAM+C,MAAAA,MAAAA,GAAS3B,IAAKjB,CAAAA,GAAAA,IAAOS,qBAAsB,EAAA,CAAA;AACjD,EAAMoC,MAAAA,YAAAA,GAAe,IAAIC,OAAAA,CAASC,CAAY,OAAA,KAAA;AAC5C,IAAA,MAAM7B,WAAWA,MAAM;AACrB,MAAI,IAAA,OAAOD,KAAK+B,OAAY,KAAA,UAAA;AAC1B/B,QAAAA,IAAAA,CAAK+B,OAAQ,EAAA,CAAA;AAEf,MAAA,OAAOD,QAAQ,IAAI,CAAA,CAAA;AAAA,KACrB,CAAA;AACA/B,IAAAA,kBAAAA,CAAmBC,MAAOU,CAAa,QAAA,KAAA;AACrCA,MAAAA,QAAAA,CAASgB,MAAO,CAAA;AAAA,QACd3C,GAAK4C,EAAAA,MAAAA;AAAAA,QACL9B,QAAAA;AAAAA,QACAS,KAAAA,EAAON,IAAKM,CAAAA,KAAAA,IAAS,EAAC;AAAA,QACtB0B,OAAOhC,IAAKgC,CAAAA,KAAAA;AAAAA,QACZC,SAASA,CAAC;AAAA,UAAEnC,SAAAA;AAAAA,SAAgB,KAAA;AAC1B,UAAMoC,MAAAA,IAAAA,GAAOvB,UAAWX,CAAAA,IAAAA,CAAKmC,IAAI,CAAA,CAAA;AACjC,UAAA,MAAMC,WAAWF,IAAIG,GAAAA,eAAAA,CAAAH,iBAAc,GAAA,EAAA,CAAA;AACnC,UAAA,MAAMI,YAAeC,GAAAA,iBAAAA,CAAY,CAAEzC,EAAAA,SAAU,CAAkB,eAAA,CAAA,EAAA;AAAA,YAC7D,CAAE,GAAEA,SAAU,CAAA,CAAA,EAAGE,KAAKmC,IAAK,CAAA,CAAC,GAAGnC,IAAKmC,CAAAA,IAAAA;AAAAA,YACpC,CAAE,CAAA,EAAErC,SAAU,CAAA,IAAA,CAAK,GAAGP,GAAQ,KAAA,IAAA;AAAA,WAC/B,CAAA,CAAA;AACD,UAAA,OAAA8C,gBAAA,KAAA,EAAA;AAAA,YAAA,OACcC,EAAAA,YAAAA;AAAAA,WAAY,EAAA,CACrB,OAAOtC,IAAKwC,CAAAA,IAAAA,KAAS,UAAaxC,GAAAA,IAAAA,CAAKwC,IAAK,EAAA,GAAIxC,IAAKwC,CAAAA,IAAAA,IAAQJ,QAAQC,EAAAA,eAAAA,gBAC/D,OAAOrC,IAAKiC,CAAAA,OAAAA,KAAY,UAAajC,GAAAA,IAAAA,CAAKiC,OAAQ,EAAA,GAAIjC,IAAKiC,CAAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,SAG/E;AAAA,QACAF,OAAS9B,EAAAA,QAAAA;AAAAA,QACTwC,SAASzC,IAAKyC,CAAAA,OAAAA;AAAAA,OACf,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GACF,CAAA,CAAA;AACD,EAAA,MAAMC,SAAcA,MAAM;AACxB,IAAI5D,IAAAA,eAAAA;AACFA,MAAAA,eAAAA,CAAgB6D,aAAahB,MAAM,CAAA,CAAA;AAAA,GACvC,CAAA;AACAe,EAAAA,MAAAA,CAAOE,OAAO,CAACC,MAAAA,EAA0BC,aAA+BlB,YAAagB,CAAAA,IAAAA,CAAKC,QAAQC,QAAQ,CAAA,CAAA;AAC1GJ,EAAAA,MAAAA,CAAOK,OAAUnB,GAAAA,YAAAA,CAAAA;AACjB,EAAOc,OAAAA,MAAAA,CAAAA;AACT,CAAA;AAEA,SAASM,YAAYf,OAAoD,EAAA;AACvE,EACET,OAAAA,MAAAA,CAAOyB,UAAUC,QAASC,CAAAA,IAAAA,CAAKlB,OAAO,CAAM,KAAA,iBAAA,IACzC,CAAC,CAAEA,OAA6BA,CAAAA,OAAAA,CAAAA;AAEvC,CAAA;AAEA,MAAMmB,GAAW,GAAA;AAAA,EACfC,IAAM3B,EAAAA,MAAAA;AAAAA,EACN4B,MAAQ7D,EAAAA,gBAAAA;AAAAA,EACR8D,QAAQC,UAAkB,EAAA;AACxB,IAAA,IAAI1E,eAAiB,EAAA;AACnB,MAAA,IAAI0E,UAAY,EAAA;AACd,QAAM,MAAA;AAAA,UAAEb,YAAAA;AAAAA,SAAiB7D,GAAAA,eAAAA,CAAAA;AACzB6D,QAAAA,YAAAA,CAAaa,UAAU,CAAA,CAAA;AAAA,OAClB,MAAA;AACL,QAAM,MAAA;AAAA,UAAED,OAAAA;AAAAA,SAAYzE,GAAAA,eAAAA,CAAAA;AACpByE,QAAQ,OAAA,EAAA,CAAA;AACRzE,QAAkB,eAAA,GAAA,IAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,GACF;AACF,EAAA;AAEgB2E,SAAAA,aAAAA,CAAcC,aAAyBvB,IAAkB,EAAA;AACvEuB,EAAAA,WAAAA,CAAYvB,IAAI,CAAA,GAAI,CAClBF,OAAAA,EACApC,UACAkC,OACG,KAAA;AACH,IAAA,IAAIiB,YAAYf,OAAO,CAAA;AACrB,MAAA,OAAOyB,YAAYL,IAAK,CAAA;AAAA,QAAE,GAAGpB,OAAAA;AAAAA,QAASE,IAAAA;AAAAA,OAAM,CAAA,CAAA;AAE9C,IAAI,IAAA,OAAOtC,aAAa,UAAY,EAAA;AAClCkC,MAAUlC,OAAAA,GAAAA,QAAAA,CAAAA;AACVA,MAAWD,QAAAA,GAAAA,KAAAA,CAAAA,CAAAA;AAAAA,KACb;AAEA,IAAA,OAAO8D,YAAYL,IAAK,CAAA;AAAA,MAAEpB,OAAAA;AAAAA,MAASpC,QAAAA;AAAAA,MAAUsC,IAAAA;AAAAA,MAAMJ,OAAAA;AAAAA,KAAS,CAAA,CAAA;AAAA,GAC9D,CAAA;AACF,CAAA;AAEAR,QAAAA,CAASoC,OAAQxB,CAAAA,CAAAA,IAAAA,KAAQsB,aAAcL,CAAAA,GAAAA,EAAKjB,IAAI,CAAC,CAAA,CAAA;AAG1C,MAAMyB,cAAcA,MAAOC,OAAAA,CAAQC,GAAIC,CAAAA,QAAAA,KAAa,SAASjF,eAAkB,GAAA;;;;;;;;"}