{"version":3,"file":"Notification.cjs","sources":["../../../../../../packages/vue-components/vc-notification/src/Notification.tsx"],"sourcesContent":["import type { Key, VueNode } from '@antdv/types';\nimport type { CSSProperties } from 'vue';\nimport type { NoticeProps } from './Notice';\nimport ConfigProvider, { globalConfigForApi } from '@antdv/components/config-provider';\nimport { classNames } from '@antdv/utils';\nimport {\n  computed,\n  createVNode,\n  defineComponent,\n  onMounted,\n  ref,\n  shallowRef,\n  toRaw,\n  TransitionGroup,\n  render as vueRender,\n} from 'vue';\nimport { getTransitionGroupProps } from '../../transition';\nimport Notice from './Notice';\n\nlet seed = 0;\nconst now = Date.now();\n\nfunction getUuid() {\n  const id = seed;\n  seed += 1;\n  return `rcNotification_${now}_${id}`;\n}\n\nexport interface NoticeContent extends Omit<NoticeProps, 'prefixCls' | 'noticeKey' | 'onClose'> {\n  prefixCls?: string;\n  key?: Key;\n  updateMark?: string;\n  content?: string | ((arg: { prefixCls: string }) => VueNode) | VueNode;\n  onClose?: () => void;\n  style?: CSSProperties;\n  class?: string;\n}\nexport type Placement = 'top' | 'topLeft' | 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight';\n\nexport interface OpenConfig extends NoticeProps {\n  key: Key;\n  placement?: Placement;\n  content?: string | (() => VueNode) | VueNode;\n  duration?: number | null;\n}\n\nexport type NoticeFunc = (noticeProps: NoticeContent) => void;\nexport type HolderReadyCallback = (\n  div: HTMLDivElement,\n  noticeProps: NoticeProps & { key: Key },\n) => void;\n\nexport interface NotificationInstance {\n  notice: NoticeFunc;\n  removeNotice: (key: Key) => void;\n  destroy: () => void;\n  component: Notification;\n}\n\nexport interface NotificationProps {\n  prefixCls?: string;\n  transitionName?: string;\n  animation?: string | object;\n  maxCount?: number;\n  closeIcon?: any;\n  hashId?: string;\n}\n\ntype NotificationState = Array<{\n  notice: NoticeContent & {\n    userPassKey?: Key;\n  };\n  holderCallback?: HolderReadyCallback;\n}>;\n\nconst Notification = defineComponent({\n  name: 'Notification',\n  inheritAttrs: false,\n  props: ['prefixCls', 'transitionName', 'animation', 'maxCount', 'closeIcon', 'hashId'],\n  setup(props, { attrs, expose, slots }) {\n    const hookRefs = new Map<Key, HTMLDivElement>();\n    const notices = ref<NotificationState>([]);\n    const transitionProps = computed(() => {\n      const { prefixCls, animation = 'fade' } = props;\n      let name = props.transitionName;\n      if (!name && animation)\n        name = `${prefixCls}-${animation}`;\n\n      return getTransitionGroupProps(name);\n    });\n\n    const add = (originNotice: NoticeContent, holderCallback?: HolderReadyCallback) => {\n      const key = originNotice.key || getUuid();\n      const notice: NoticeContent & { key: Key; userPassKey?: Key } = {\n        ...originNotice,\n        key,\n      };\n      const { maxCount } = props;\n      const noticeIndex = notices.value.map((v: any) => v.notice.key).indexOf(key);\n      const updatedNotices = notices.value.concat();\n      if (noticeIndex !== -1) {\n        updatedNotices.splice(noticeIndex, 1, { notice, holderCallback } as any);\n      } else {\n        if (maxCount && notices.value.length >= maxCount) {\n          // XXX, use key of first item to update new added (let React to move exsiting\n          // instead of remove and mount). Same key was used before for both a) external\n          // manual control and b) internal react 'key' prop , which is not that good.\n\n          // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n          // Change to `updateMark` for compare instead.\n          // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n          notice.key = updatedNotices[0].notice.key as Key;\n          notice.updateMark = getUuid();\n\n          // zombieJ: That's why. User may close by key directly.\n          // We need record this but not re-render to avoid upper issue\n          // https://github.com/react-component/notification/issues/129\n          notice.userPassKey = key;\n\n          updatedNotices.shift();\n        }\n        updatedNotices.push({ notice, holderCallback } as any);\n      }\n      notices.value = updatedNotices;\n    };\n\n    const remove = (removeKey: Key) => {\n      notices.value = toRaw(notices.value as any).filter(({ notice: { key, userPassKey } }) => {\n        const mergedKey = userPassKey || key;\n        return mergedKey !== removeKey;\n      });\n    };\n    expose({\n      add,\n      remove,\n      notices,\n    });\n    return () => {\n      const { prefixCls, closeIcon = slots.closeIcon?.({ prefixCls }) } = props;\n      const noticeNodes = notices.value.map(({ notice, holderCallback }: any, index) => {\n        const updateMark = index === notices.value.length - 1 ? notice.updateMark : undefined;\n        const { key, userPassKey } = notice;\n\n        const { content } = notice;\n        const noticeProps = {\n          prefixCls,\n          closeIcon: typeof closeIcon === 'function' ? closeIcon({ prefixCls }) : closeIcon,\n          ...(notice as any),\n          ...notice.props,\n          key,\n          noticeKey: userPassKey || key,\n          updateMark,\n          onClose: (noticeKey: Key) => {\n            remove(noticeKey);\n            notice.onClose?.();\n          },\n          onClick: notice.onClick,\n        };\n        if (holderCallback) {\n          return (\n            <div\n              key={key}\n              class={`${prefixCls}-hook-holder`}\n              ref={(div: HTMLDivElement) => {\n                if (typeof key === 'undefined')\n                  return;\n\n                if (div) {\n                  hookRefs.set(key, div);\n                  holderCallback(div, noticeProps);\n                } else {\n                  hookRefs.delete(key);\n                }\n              }}\n            />\n          );\n        }\n        return (\n          <Notice {...noticeProps} class={classNames(noticeProps.class, props.hashId)}>\n            {typeof content === 'function' ? content({ prefixCls }) : content}\n          </Notice>\n        );\n      });\n      const className = {\n        [prefixCls]: 1,\n        [attrs.class as string]: !!attrs.class,\n        [props.hashId]: true,\n      };\n      return (\n        <div\n          class={className}\n          style={\n            (attrs.style as CSSProperties)\n            || { top: '65px', left: '50%' }\n          }\n        >\n          <TransitionGroup tag=\"div\" {...transitionProps.value}>\n            {noticeNodes}\n          </TransitionGroup>\n        </div>\n      );\n    };\n  },\n});\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n  const {\n    name = 'notification',\n    getContainer,\n    appContext,\n    prefixCls: customizePrefixCls,\n    rootPrefixCls: customRootPrefixCls,\n    transitionName: customTransitionName,\n    hasTransitionName,\n    useStyle,\n    ...props\n  } = properties || {};\n  const div = document.createElement('div');\n  if (getContainer) {\n    const root = getContainer();\n    root.appendChild(div);\n  } else {\n    document.body.appendChild(div);\n  }\n  const Wrapper = defineComponent({\n    compatConfig: { MODE: 3 },\n    name: 'NotificationWrapper',\n    setup(_props, { attrs }) {\n      const notiRef = shallowRef();\n      const prefixCls = computed(() => globalConfigForApi.getPrefixCls(name, customizePrefixCls));\n      const [, hashId] = useStyle(prefixCls);\n      onMounted(() => {\n        callback({\n          notice(noticeProps: NoticeContent) {\n            notiRef.value?.add(noticeProps);\n          },\n          removeNotice(key: Key) {\n            notiRef.value?.remove(key);\n          },\n          destroy() {\n            vueRender(null, div);\n            if (div.parentNode)\n              div.parentNode.removeChild(div);\n          },\n          component: notiRef,\n        });\n      });\n      return () => {\n        const global = globalConfigForApi;\n        const rootPrefixCls = global.getRootPrefixCls(customRootPrefixCls, prefixCls.value);\n        const transitionName = hasTransitionName\n          ? customTransitionName\n          : `${prefixCls.value}-${customTransitionName}`;\n        return (\n          <ConfigProvider {...global} prefixCls={rootPrefixCls}>\n            <Notification\n              ref={notiRef}\n              {...attrs}\n              prefixCls={prefixCls.value}\n              transitionName={transitionName}\n              hashId={hashId.value}\n            />\n          </ConfigProvider>\n        );\n      };\n    },\n  });\n\n  const vm = createVNode(Wrapper, props);\n  vm.appContext = appContext || vm.appContext;\n  vueRender(vm, div);\n};\n\nexport default Notification;\n"],"names":["seed","now","Date","getUuid","id","Notification","defineComponent","name","inheritAttrs","props","setup","attrs","expose","slots","hookRefs","Map","notices","ref","transitionProps","computed","prefixCls","animation","transitionName","getTransitionGroupProps","add","originNotice","holderCallback","key","notice","maxCount","noticeIndex","value","map","v","indexOf","updatedNotices","concat","splice","length","updateMark","userPassKey","shift","push","remove","removeKey","toRaw","filter","mergedKey","closeIcon","noticeNodes","index","undefined","content","noticeProps","noticeKey","onClose","onClick","_createVNode","div","set","delete","Notice","classNames","class","hashId","default","className","style","top","left","TransitionGroup","newInstance","newNotificationInstance","properties","callback","getContainer","appContext","customizePrefixCls","rootPrefixCls","customRootPrefixCls","customTransitionName","hasTransitionName","useStyle","document","createElement","root","appendChild","body","Wrapper","compatConfig","MODE","_props","notiRef","shallowRef","globalConfigForApi","getPrefixCls","onMounted","removeNotice","destroy","vueRender","parentNode","removeChild","component","global","getRootPrefixCls","ConfigProvider","vm","createVNode"],"mappings":"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"}