{"version":3,"file":"message.vue2.cjs","sources":["../../../components/message/message.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Icon } from '@/components/icon'\nimport { Renderer } from '@/components/renderer'\nimport { Popup } from '@/components/popup'\n\nimport { computed, reactive, ref } from 'vue'\n\nimport { useIcons, useNameHelper } from '@vexip-ui/config'\nimport { assertiveTypes, effectiveTypes } from './symbol'\n\nimport type { Key, MessageConfig, MessagePlacement } from './symbol'\n\ndefineOptions({ name: 'Message' })\n\nconst nh = useNameHelper('message')\nconst icons = useIcons()\n\nconst predefinedIcons = computed(() => ({\n  primary: icons.value.info,\n  info: icons.value.info,\n  success: icons.value.success,\n  warning: icons.value.warning,\n  error: icons.value.error,\n}))\n\nconst placement = ref<MessagePlacement>('top')\nconst popup = ref<InstanceType<typeof Popup>>()\n\nconst placementCenter = computed(() => `${placement.value}-center` as const)\n\nasync function add(options: Record<string, any>) {\n  if (popup.value) {\n    await popup.value.add(options)\n  }\n}\n\nasync function remove(key: Key) {\n  return !!popup.value && (await popup.value.remove(key))\n}\n\nfunction config(config: MessageConfig) {\n  placement.value = config.placement || placement.value\n}\n\nfunction clear() {\n  popup.value && popup.value.clear()\n}\n\ndefineExpose(\n  reactive({\n    popup,\n    add,\n    remove,\n    clear,\n    config,\n  }),\n)\n</script>\n\n<template>\n  <!-- eslint-disable vue/no-v-html -->\n  <Popup\n    ref=\"popup\"\n    :class=\"nh.b()\"\n    :transition-name=\"nh.ns(`popup-${placement}`)\"\n    :placement=\"placementCenter\"\n  >\n    <template #item=\"{ item }: { item: import('./symbol').MessageOptions }\">\n      <div\n        :class=\"[\n          {\n            [nh.be('item')]: true,\n            [nh.bs('vars')]: true,\n            [nh.bem('item', item.type!)]: item.type && effectiveTypes.includes(item.type),\n            [nh.bem('item', 'background')]: item.background,\n            [nh.bem('item', 'color')]: item.background && item.color,\n            [nh.bem('item', 'color-only')]: !item.background && item.color,\n            [nh.bem('item', 'has-icon')]: item.icon,\n            [nh.bem('item', 'closable')]: item.closable\n          },\n          item.className\n        ]\"\n        role=\"alert\"\n        :style=\"[\n          {\n            color: typeof item.color === 'string' ? item.color : undefined,\n            backgroundColor: typeof item.background === 'string' ? item.background : undefined\n          },\n          item.style || {}\n        ]\"\n        aria-atomic=\"true\"\n        :aria-live=\"item.type && assertiveTypes.includes(item.type) ? 'assertive' : 'polite'\"\n      >\n        <div :class=\"nh.be('wrapper')\">\n          <div\n            v-if=\"item.icon || (item.type && effectiveTypes.includes(item.type))\"\n            :class=\"nh.be('icon')\"\n            :style=\"{ color: item.iconColor }\"\n          >\n            <Icon\n              v-if=\"item.icon\"\n              :icon=\"item.icon\"\n              :style=\"[{ color: item.iconColor }, (item.icon as any).style]\"\n            ></Icon>\n            <Icon\n              v-else\n              v-bind=\"predefinedIcons[item.type!]\"\n              :style=\"{ color: item.iconColor }\"\n            ></Icon>\n          </div>\n          <Renderer\n            v-if=\"typeof item.renderer === 'function'\"\n            :renderer=\"item.renderer\"\n            :data=\"item\"\n          ></Renderer>\n          <template v-else>\n            <div v-if=\"item.parseHtml\" :class=\"nh.be('content')\" v-html=\"item.content\"></div>\n            <div v-else :class=\"nh.be('content')\">\n              {{ item.content || '' }}\n            </div>\n          </template>\n        </div>\n        <button\n          v-if=\"item.closable\"\n          type=\"button\"\n          :class=\"nh.be('close')\"\n          @click=\"remove(item.key!)\"\n        >\n          <Icon v-bind=\"icons.close\" label=\"close\"></Icon>\n        </button>\n      </div>\n    </template>\n  </Popup>\n</template>\n"],"names":["nh","useNameHelper","icons","useIcons","predefinedIcons","computed","placement","ref","popup","placementCenter","add","options","remove","key","config","clear","__expose","reactive","_createBlock","_unref","Popup","_normalizeClass","_withCtx","item","_createElementVNode","effectiveTypes","_normalizeStyle","assertiveTypes","_createElementBlock","Icon","_openBlock","_mergeProps","Renderer","_Fragment","_toDisplayString","$event","_createVNode"],"mappings":"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"}