@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
1 lines • 5.92 kB
Source Map (JSON)
{"version":3,"file":"alert2.mjs","sources":["../../../../../../packages/components/alert/src/alert.vue"],"sourcesContent":["<template>\n <vs-collapse-transition>\n <div v-if=\"modelValue\" :class=\"alertClasses\" :style=\"alertStyles\">\n <div v-if=\"$slots.icon\" :class=\"ns.e('icon')\">\n <slot name=\"icon\" />\n </div>\n\n <div\n v-if=\"$slots.title\"\n :class=\"[\n ns.e('title'),\n isBoolean(hiddenContent) && ns.em('title', 'click__hidden'),\n ]\"\n @click=\"handleClickHidden\"\n >\n <slot name=\"title\" />\n <icon-plus\n v-if=\"!closable && isBoolean(hiddenContent)\"\n :less=\"!hiddenContent\"\n @click.stop=\"handleClickHidden\"\n />\n </div>\n\n <vs-collapse-transition>\n <div v-if=\"!hiddenContent\" :class=\"ns.e('content')\">\n <div :class=\"ns.em('content', 'text')\">\n <slot />\n <slot :name=\"`page-${page}`\" />\n </div>\n </div>\n </vs-collapse-transition>\n\n <button v-if=\"closable\" :class=\"ns.e('close')\" @click=\"handleClickClose\">\n <icon-close hover=\"less\" />\n </button>\n\n <div v-if=\"$slots.footer\" :class=\"ns.e('footer')\">\n <slot name=\"footer\" />\n </div>\n\n <div v-if=\"!!progress\" :class=\"ns.e('progress')\">\n <div\n :class=\"ns.em('progress', 'bar')\"\n :style=\"{ width: `${progress}%` }\"\n />\n </div>\n\n <div v-if=\"getTotalPages > 0\" :class=\"ns.e('pagination')\">\n <button @click=\"handleClickPrevPage\" v-text=\"'<'\" />\n <span>{{ page }} / {{ getTotalPages }}</span>\n <button @click=\"handleClickNextPage\" v-text=\"'>'\" />\n </div>\n </div>\n </vs-collapse-transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, useSlots } from 'vue'\nimport { getVsColor, isBoolean } from '@vuesax-alpha/utils'\nimport { IconClose, IconPlus } from '@vuesax-alpha/components/icon'\nimport { VsCollapseTransition } from '@vuesax-alpha/components/collapse-transition'\nimport {\n useColor,\n useNamespace,\n useVuesaxBaseComponent,\n} from '@vuesax-alpha/hooks'\nimport { UPDATE_MODEL_EVENT } from '@vuesax-alpha/constants'\nimport { alertEmits, alertProps } from './alert'\nimport { useAlertDeprecated } from './use-deprecated'\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'VsAlert',\n})\n\nconst props = defineProps(alertProps)\nconst slots = useSlots()\nconst emit = defineEmits(alertEmits)\n\nuseAlertDeprecated(props)\n\nconst ns = useNamespace('alert')\n\nconst vsBaseClasses = useVuesaxBaseComponent(useColor())\n\nconst alertClasses = computed(() => [\n vsBaseClasses,\n ns.b(),\n props.type && ns.m(props.type),\n getPages.value.length > 0 && ns.m('pages'),\n])\nconst alertStyles = computed(() => {\n return ns.cssVar({\n color: getVsColor(props.color),\n }) as CSSProperties\n})\n\nconst getTotalPages = computed(() => {\n const keys = Object.keys(slots).filter((slot) => slot.includes('page-'))\n return keys.length\n})\n\nconst getPages = computed(() => {\n const pages = Object.keys(slots).filter((slot) => {\n return slot.includes('page-')\n })\n\n const values: any = []\n pages.forEach((page) => {\n values.push(`${props.page}` === page.split('-')[1] && slots[page])\n })\n return values\n})\n\nconst handleClickClose = () => {\n emit(UPDATE_MODEL_EVENT, !props.modelValue)\n}\nconst handleClickHidden = () => {\n emit('update:hiddenContent', !props.hiddenContent)\n}\nconst handleClickPrevPage = () => {\n if (props.page > 1) {\n emit('update:page', props.page - 1)\n }\n}\nconst handleClickNextPage = () => {\n if (props.page < getTotalPages.value) {\n emit('update:page', props.page + 1)\n }\n}\n</script>\n"],"names":[],"mappings":"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"}