{"version":3,"file":"index.vue.mjs","sources":["../../../../../../components/drawer/src/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { isString, useNamespace } from '@fusion-ui-vue/utils'\nimport { useDrawer } from '@fusion-ui-vue/hooks'\nimport { FnIcon } from '../../icon'\nimport { drawerProps } from './drawer'\nconst props = defineProps(drawerProps)\nconst { visible, doClose } = useDrawer(props)\n\nconst targetDivRef = ref(null)\n\nconst ns = useNamespace('drawer')\nconst drawerOverlay = computed(() => {\n  return `${ns.b()}--overlay`\n})\nconst drawerClassList = computed(() => {\n  const { direction } = props\n  const classList = [ns.b()]\n  if (isString(direction)) {\n    classList.push(ns.m(direction))\n  }\n  return classList\n})\n\nconst handleClose = (event: MouseEvent) => {\n  const targetDiv = targetDivRef.value as HTMLElement | null\n  if (!targetDiv?.contains(event.target as HTMLElement)) {\n    doClose()\n  }\n}\n</script>\n\n<template>\n  <teleport to=\"body\">\n    <div\n      v-if=\"visible\"\n      ref=\"elRef\"\n      :class=\"drawerOverlay\"\n      @click=\"handleClose\"\n    />\n\n    <transition :name=\"`slide-fade--${props.direction}`\">\n      <div v-show=\"visible\" ref=\"targetDivRef\" :class=\"drawerClassList\">\n        <header>\n          <span class=\"drawer-title\">\n            {{ props.title }}\n          </span>\n          <span class=\"drawer-close\" @click=\"doClose\">\n            <fn-icon icon=\"ic:round-close\" size=\"25\" />\n          </span>\n        </header>\n        <div class=\"drawer-body\">\n          <slot />\n        </div>\n      </div>\n    </transition>\n  </teleport>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA,IAAA,MAAM,EAAE,OAAA,EAAS,OAAQ,EAAA,GAAI,UAAU,KAAK,CAAA,CAAA;AAEtC,IAAA,MAAA,YAAA,GAAe,IAAI,IAAI,CAAA,CAAA;AAEvB,IAAA,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAC1B,IAAA,MAAA,aAAA,GAAgB,SAAS,MAAM;AAC5B,MAAA,OAAA,CAAA,EAAG,EAAG,CAAA,CAAA,EAAG,CAAA,SAAA,CAAA,CAAA;AAAA,KACjB,CAAA,CAAA;AACK,IAAA,MAAA,eAAA,GAAkB,SAAS,MAAM;AAC/B,MAAA,MAAA,EAAE,WAAc,GAAA,KAAA,CAAA;AACtB,MAAA,MAAM,SAAY,GAAA,CAAC,EAAG,CAAA,CAAA,EAAG,CAAA,CAAA;AACrB,MAAA,IAAA,QAAA,CAAS,SAAS,CAAG,EAAA;AACvB,QAAA,SAAA,CAAU,IAAK,CAAA,EAAA,CAAG,CAAE,CAAA,SAAS,CAAC,CAAA,CAAA;AAAA,OAChC;AACO,MAAA,OAAA,SAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAEK,IAAA,MAAA,WAAA,GAAc,CAAC,KAAsB,KAAA;AACzC,MAAA,MAAM,YAAY,YAAa,CAAA,KAAA,CAAA;AAC/B,MAAA,IAAI,EAAC,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,QAAS,CAAA,KAAA,CAAM,MAAwB,CAAA,CAAA,EAAA;AAC7C,QAAA,OAAA,EAAA,CAAA;AAAA,OACV;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}