{"version":3,"file":"modal.vue2.mjs","sources":["../../../../../../packages/components/modal/src/modal.vue"],"sourcesContent":["<template>\r\n  <Modal\r\n    v-bind=\"getBindValue\"\r\n    ref=\"modal\"\r\n    :open=\"props.open\"\r\n    :title=\"props.title\"\r\n    :keyboard=\"keyboard\"\r\n    :wrap-class-name=\"`${bem.b()} ${props.wrapClassName} ${currentClass}`\"\r\n    :class=\"[\r\n      props.class,\r\n      hasScroll ? bem.is('has-scroll') : '',\r\n      bem.is(props.isConfirmModel ? 'confirm-model' : ''),\r\n    ]\"\r\n    @cancel=\"handleCancel\"\r\n    @ok=\"handleOk\"\r\n  >\r\n    <div v-if=\"$slots.step\" :class=\"bem.e('step')\">\r\n      <slot name=\"step\" />\r\n    </div>\r\n    <div :class=\"[bem.e('container'), symbolClass, bem.is(props.type)]\">\r\n      <div v-if=\"hasScroll && scrollTop > 0\" :class=\"bem.e('shadow')\" />\r\n      <div :class=\"[symbolComparedClass]\">\r\n        <slot />\r\n      </div>\r\n    </div>\r\n    <template v-if=\"props.showFooter\" #footer>\r\n      <slot name=\"footer\">\r\n        <!-- 确认框 -->\r\n        <div :class=\"bem.e('footer')\">\r\n          <ll-button\r\n            v-if=\"props.showCancel && props.type !== 'confirm'\"\r\n            :label=\"props.cancelText ? props.cancelText : '取消'\"\r\n            size=\"middle\"\r\n            @click=\"handleCancel\"\r\n          >\r\n          </ll-button>\r\n          <ll-button\r\n            type=\"primary\"\r\n            :loading=\"props.loading\"\r\n            size=\"middle\"\r\n            :label=\"\r\n              props.confirmText\r\n                ? props.confirmText\r\n                : props.type === 'confirm'\r\n                ? '知道了'\r\n                : '确认'\r\n            \"\r\n            @click=\"handleOk\"\r\n          />\r\n        </div>\r\n      </slot>\r\n    </template>\r\n  </Modal>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { useAttrs, ref, watch, nextTick, computed } from 'vue'\r\nimport { Modal } from 'ant-design-vue'\r\nimport { LlButton } from '@ll-plus/components'\r\nimport { createNamespace } from '@ll-plus/utils'\r\nimport { omit } from 'lodash-es'\r\nimport { modalProps, modalEmits } from './modal'\r\nimport type { IResultType } from './modal'\r\ndefineOptions({ name: 'LlModal' })\r\n// 1.props/ref\r\nconst props = defineProps(modalProps)\r\n// 2.emits\r\nconst emits = defineEmits(modalEmits)\r\n\r\nconst attrs = useAttrs()\r\n\r\nconst bem = createNamespace('modal')\r\n\r\nconst modal = ref<HTMLElement>()\r\n\r\nconst hasScroll = ref(false)\r\n\r\nconst scrollTop = ref(0)\r\n\r\nconst currentClass = ref<string>('')\r\n\r\nconst symbolClass = ref(`ll-modal-${new Date().getTime()}`)\r\n\r\nconst symbolComparedClass = ref(`model-content-${new Date().getTime()}`)\r\n\r\nconst getBindValue = computed(() => {\r\n  const result: IResultType = {\r\n    ...omit({ ...attrs }, [...Object.keys(modalProps), 'wrapClassName']),\r\n  }\r\n  if (props.showFooter === false) {\r\n    result.footer = null\r\n  }\r\n  return result\r\n})\r\n\r\n// 3.methods\r\nconst handleCancel = () => {\r\n  emits('cancel')\r\n  emits('update:open')\r\n}\r\nconst handleOk = () => {\r\n  emits('ok')\r\n}\r\n\r\nconst handleResize = async (value: boolean) => {\r\n  await nextTick()\r\n  const ele = document.getElementsByClassName(symbolClass.value)[0]\r\n  const modalBody = ele.getElementsByClassName(symbolComparedClass.value)[0]\r\n  const resizeObserver = new ResizeObserver((entries) => {\r\n    // 处理大小变化的回调函数\r\n    const { clientHeight } = entries[0].target\r\n    const scrollHeight = ele.clientHeight\r\n    hasScroll.value = clientHeight > scrollHeight\r\n  })\r\n  if (value) {\r\n    resizeObserver.observe(modalBody)\r\n    ele.addEventListener('scroll', () => {\r\n      scrollTop.value = ele.scrollTop\r\n    })\r\n  } else {\r\n    resizeObserver.unobserve(modalBody)\r\n    ele.removeEventListener('scroll', () => {\r\n      scrollTop.value = 0\r\n    })\r\n  }\r\n}\r\n\r\nconst onScrollTop = async () => {\r\n  await nextTick()\r\n  if (!hasScroll.value) return\r\n  const ele = document.getElementsByClassName(symbolClass.value)[0]\r\n  ele.scrollTop = 0\r\n}\r\n\r\n// 4.watch/computed\r\nwatch(\r\n  () => props.open,\r\n  (val) => {\r\n    handleResize(val)\r\n    if (val) {\r\n      currentClass.value = `modal-${new Date().getTime()}`\r\n      nextTick().then(() => {\r\n        const dom = document.querySelector(\r\n          `.${currentClass.value}`\r\n        ) as HTMLElement\r\n        if (dom) {\r\n          dom.focus()\r\n        }\r\n      })\r\n    }\r\n  }\r\n)\r\n\r\ndefineExpose({\r\n  onScrollTop,\r\n})\r\n</script>\r\n"],"names":["_createBlock","_unref","_mergeProps","keyboard","$slots","_createElementBlock","_normalizeClass","_renderSlot","_createElementVNode","_createCommentVNode","_createVNode"],"mappings":"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"}