{"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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"}