website-vue/.nuxt/dist/server/components/NotificationToast.vue2.mjs.map.json
2025-04-22 15:57:06 +08:00

1 line
1.5 KiB
JSON

{"file":"NotificationToast.vue2.mjs","mappings":";;;;;;;;;;;;AAyBA,UAAM,QAAQ;AAMR,UAAA,OAAO,IAAI,KAAK;AACtB,UAAM,OAAO;AAEb,UAAM,MAAM,MAAM,SAAS,CAAC,WAAW;AACrC,UAAI,QAAQ;AACV,aAAK,QAAQ;AACb,mBAAW,MAAM;AACf,eAAK,QAAQ;AACb,qBAAW,MAAM;AACf,iBAAK,OAAO;AAAA,aACX,GAAG;AAAA,QAAA,GACL,MAAM,QAAQ;AAAA,MAAA;AAAA,IACnB,GACC,EAAE,WAAW,MAAM;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../components/NotificationToast.vue"],"sourcesContent":["<template>\r\n <Teleport to=\"body\">\r\n <div \r\n v-if=\"message\"\r\n :class=\"[\r\n 'fixed top-4 right-4 p-4 rounded-lg shadow-lg z-50 transform transition-all duration-300',\r\n type === 'success' ? 'bg-green-500' : 'bg-red-500',\r\n 'text-white'\r\n ]\"\r\n :style=\"{ transform: show ? 'translateY(0)' : 'translateY(-100%)' }\"\r\n >\r\n {{ message }}\r\n </div>\r\n </Teleport>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, watch } from 'vue';\r\n\r\ninterface Props {\r\n message?: string;\r\n type?: 'success' | 'error';\r\n duration?: number;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n message: '',\r\n type: 'success',\r\n duration: 3000\r\n});\r\n\r\nconst show = ref(false);\r\nconst emit = defineEmits(['close']);\r\n\r\nwatch(() => props.message, (newVal) => {\r\n if (newVal) {\r\n show.value = true;\r\n setTimeout(() => {\r\n show.value = false;\r\n setTimeout(() => {\r\n emit('close');\r\n }, 300);\r\n }, props.duration);\r\n }\r\n}, { immediate: true });\r\n</script> "],"version":3}