{"version":3,"file":"alert.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(modelValue) && ns.em('title', 'click__hidden'),\n        ]\"\n        @click=\"handleClickHidden\"\n      >\n        <slot name=\"title\" />\n        <!-- <icon-plus\n          v-if=\"!closable && typeof hiddenContent === 'boolean'\" \n          :less=\"!hiddenContent\"\n          @click.stop=\"handleClickHidden\" \n        /> -->\n      </div>\n      <vs-collapse-transition>\n        <div v-if=\"!hiddenContent\" :class=\"ns.e('content')\">\n          <div :class=\"ns.e('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.e('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 { isBoolean } from 'lodash-unified'\nimport { getVsColor, useBaseClasses } from '@vuesax-plus/utils'\nimport { IconClose, VsCollapseTransition } from '@vuesax-plus/components'\nimport { useNamespace } from '@vuesax-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@vuesax-plus/constants'\nimport { alertEmits, alertProps } from './alert'\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n  name: 'VsAlert',\n})\n\nconst props = defineProps(alertProps)\nconst slots = useSlots()\nconst emit = defineEmits(alertEmits)\n\nconst ns = useNamespace('alert')\n\nconst alertClasses = computed(() => [\n  ...useBaseClasses(props).value,\n  ns.b(),\n  props.solid && ns.m('solid'),\n  props.border && ns.m('border'),\n  props.shadow && ns.m('shadow'),\n  props.gradient && ns.m('gradient'),\n  props.flat && ns.m('flat'),\n  props.relief && ns.m('relief'),\n  getPages.value.length > 0 && ns.m('pages'),\n])\nconst alertStyles = computed(() => {\n  return ns.cssVar({\n    '--vs-color': props.color && getVsColor(`${props.color}`),\n  }) as CSSProperties\n})\n\nconst getTotalPages = computed(() => {\n  const keys = Object.keys(slots).filter((item) => {\n    return item.includes('page')\n  })\n  return keys.length\n})\n\nconst getPages = computed(() => {\n  const keys = Object.keys(slots).filter((item) => {\n    return item.includes('page')\n  })\n\n  const values: any = []\n  keys.forEach((item) => {\n    values.push(`${props.page}` === item.split('-')[1] && slots[item])\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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"}