{"version":3,"file":"dialog2.mjs","sources":["../../../../../../../packages/components/dialog/src/dialog.vue"],"sourcesContent":["<template>\r\n  <div class=\"m-dialog\">\r\n    <el-dialog\r\n      class=\"m-dialog\"\r\n      :model-value=\"modelValue\"\r\n      :title=\"title\"\r\n      :width=\"width\"\r\n      :top=\"top\"\r\n      :append-to-body=\"appendToBody\"\r\n      :close-on-click-modal=\"closeOnClickModal\"\r\n      :close-onn-press-escape=\"closeOnnPressEscape\"\r\n      :before-close=\"onBeforeClose\"\r\n      :draggable=\"draggable\"\r\n      :destroy-on-close=\"destroyOnClose\"\r\n      @close=\"closeDialog\"\r\n    >\r\n      <slot :loading=\"dialogLoading\" />\r\n      <template #footer>\r\n        <div v-if=\"!slots.btns\" class=\"dialog-footer\">\r\n          <el-button\r\n            v-if=\"cancelBtn\"\r\n            :size=\"size || globalConfig.size\"\r\n            :icon=\"cancelBtnIcon\"\r\n            :loading=\"dialogLoading\"\r\n            @click=\"close\"\r\n          >\r\n            {{ cancelBtnText || t('m.dialog.cancelText') }}\r\n          </el-button>\r\n          <el-button\r\n            v-if=\"saveBtn\"\r\n            :size=\"size || globalConfig.size\"\r\n            :icon=\"saveBtnIcon\"\r\n            :loading=\"dialogLoading\"\r\n            type=\"primary\"\r\n            @click=\"enter\"\r\n          >\r\n            {{ saveBtnText || t('m.dialog.confirmText') }}\r\n          </el-button>\r\n        </div>\r\n        <slot v-else :loading=\"dialogLoading\" name=\"btns\" />\r\n      </template>\r\n    </el-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, useSlots } from 'vue'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { useLocale } from '@m-eleplus-crud/hooks'\r\nimport { dialogEmits, dialogProps } from './dialog'\r\n\r\nconst COMPONENT_NAME = 'MDialog'\r\ndefineOptions({\r\n  name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(dialogProps)\r\nconst emit = defineEmits(dialogEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots()\r\n// 国际化\r\nconst { t } = useLocale()\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\n// 弹窗内是否loading\r\nconst dialogLoading = ref(false)\r\n\r\n/**\r\n * @description 弹窗关闭\r\n */\r\nconst closeDialog = () => {\r\n  emit('update:modelValue', false)\r\n  emit('close')\r\n}\r\n\r\n/**\r\n * 确认\r\n */\r\nconst enter = () => {\r\n  // 弹窗开始加载\r\n  dialogLoading.value = true\r\n  // 关闭表单\r\n  const done = () => {\r\n    emit('update:modelValue', false)\r\n  }\r\n  // 关闭加载\r\n  const loading = () => {\r\n    dialogLoading.value = false\r\n  }\r\n\r\n  emit('enter', done, loading)\r\n}\r\n\r\n/**\r\n * 关闭\r\n */\r\nconst close = () => {\r\n  emit('update:modelValue', false)\r\n  emit('cancel')\r\n}\r\n\r\n/**\r\n * 弹窗关闭前\r\n * @param done 完成回调\r\n */\r\nconst onBeforeClose = (done: () => void) => {\r\n  if (dialogLoading.value) {\r\n    return false\r\n  }\r\n  if (props.beforeClose) {\r\n    props.beforeClose(done)\r\n  } else {\r\n    done()\r\n  }\r\n}\r\n</script>\r\n"],"names":["DO_defineComponent"],"mappings":";;;;;;;AAoDc,MAAA,cAAAA,eAAA,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAGb,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEjB,IAAA,MAAA,EAAE,CAAE,EAAA,GAAI,SAAU,EAAA,CAAA;AAExB,IAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;AAG/B,IAAA,MAAA,aAAA,GAAgB,IAAI,KAAK,CAAA,CAAA;AAK/B,IAAA,MAAM,cAAc,MAAM;AACxB,MAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AAC/B,MAAA,IAAA,CAAK,OAAO,CAAA,CAAA;AAAA,KACd,CAAA;AAKA,IAAA,MAAM,QAAQ,MAAM;AAElB,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA,CAAA;AAEtB,MAAA,MAAM,OAAO,MAAM;AACjB,QAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AAAA,OACjC,CAAA;AAEA,MAAA,MAAM,UAAU,MAAM;AACpB,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AAAA,OACxB,CAAA;AAEK,MAAA,IAAA,CAAA,OAAA,EAAS,MAAM,OAAO,CAAA,CAAA;AAAA,KAC7B,CAAA;AAKA,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AAC/B,MAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAAA,KACf,CAAA;AAMM,IAAA,MAAA,aAAA,GAAgB,CAAC,IAAqB,KAAA;AAC1C,MAAA,IAAI,cAAc,KAAO,EAAA;AAChB,QAAA,OAAA,KAAA,CAAA;AAAA,OACT;AACA,MAAA,IAAI,MAAM,WAAa,EAAA;AACrB,QAAA,KAAA,CAAM,YAAY,IAAI,CAAA,CAAA;AAAA,OACjB,MAAA;AACA,QAAA,IAAA,EAAA,CAAA;AAAA,OACP;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}