{"version":3,"file":"drawer.vue2.mjs","sources":["../../../../../../packages/components/drawer/src/drawer.vue"],"sourcesContent":["<template>\r\n  <Drawer\r\n    v-bind=\"getBindValue\"\r\n    :title=\"props.title\"\r\n    :open=\"props.open\"\r\n    :keyboard=\"keyboard\"\r\n    :root-class-name=\"bem.b()\"\r\n    @close=\"handleClose\"\r\n  >\r\n    <template #title>\r\n      <slot name=\"title\" />\r\n    </template>\r\n    <template #extra>\r\n      <slot name=\"extra\" />\r\n    </template>\r\n    <div :class=\"[bem.e('container'), hasScroll ? bem.is('has-scroll') : '']\">\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('content'), symbolClass]\">\r\n        <div v-if=\"hasScroll && scrollTop > 0\" :class=\"bem.e('shadow')\"></div>\r\n        <div :class=\"[symbolComparedClass, bem.e('scroll')]\">\r\n          <slot />\r\n        </div>\r\n      </div>\r\n      <div\r\n        v-if=\"props.showFooter\"\r\n        :class=\"[bem.e('footer'), hasScroll ? bem.is('has-scroll') : '']\"\r\n      >\r\n        <slot name=\"footer\">\r\n          <div :class=\"bem.e('footer-left')\">\r\n            <slot name=\"footer-left\" />\r\n          </div>\r\n          <div :class=\"bem.e('footer-right')\">\r\n            <slot name=\"footer-right\">\r\n              <ll-button\r\n                v-if=\"showCancel\"\r\n                :class=\"bem.m('cancel')\"\r\n                :label=\"props.cancelText\"\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                :label=\"props.confirmText\"\r\n                @click=\"handleConfirm\"\r\n              >\r\n              </ll-button>\r\n            </slot>\r\n          </div>\r\n        </slot>\r\n      </div>\r\n    </div>\r\n  </Drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, computed, watch, nextTick, useAttrs } from 'vue'\r\nimport { Drawer } from 'ant-design-vue'\r\nimport { createNamespace } from '@ll-plus/utils'\r\nimport { omit } from 'lodash-es'\r\nimport { drawerProps, drawerEmits, drawerOptions } from './drawer'\r\nimport { useSecondConfirmation } from './components/second-confirmation'\r\n\r\ndefineOptions({ name: 'LlDrawer' })\r\n\r\nconst props = defineProps(drawerProps)\r\n\r\nconst emits = defineEmits(drawerEmits)\r\n\r\nconst attrs = useAttrs()\r\n\r\nconst bem = createNamespace('drawer')\r\n\r\nconst hasScroll = ref(false)\r\n\r\nconst scrollTop = ref(0)\r\n\r\nconst symbolClass = ref(`ll-darwer-${new Date().getTime()}`)\r\n\r\nconst symbolComparedClass = ref(`model-content-${new Date().getTime()}`)\r\n\r\nconst getBindValue = computed(() => ({\r\n  ...drawerOptions,\r\n  ...omit({ ...attrs }, [...Object.keys(drawerProps), 'rootClassName']),\r\n}))\r\n\r\nconst handleClose = (): void => {\r\n  if (props.useClose) {\r\n    emits('close')\r\n  } else {\r\n    handleCancel()\r\n    return\r\n  }\r\n  emits('update:open')\r\n}\r\nconst handleCancel = (): void => {\r\n  if (props.cancelConfirm) {\r\n    useSecondConfirmation(\r\n      props.cancelConfirmOptions || {\r\n        title: '温馨提示',\r\n        message: '你有未保存的更改，确定关闭？',\r\n      }\r\n    ).then(async () => {\r\n      // 点击保存按钮则关闭弹窗和抽屉\r\n      emits('cancel')\r\n    })\r\n    return\r\n  }\r\n  emits('cancel')\r\n}\r\nconst handleConfirm = (): void => {\r\n  emits('confirm')\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\nwatch(\r\n  () => props.open,\r\n  (val) => {\r\n    handleResize(val)\r\n  }\r\n)\r\n\r\ndefineExpose({\r\n  onScrollTop,\r\n})\r\n</script>\r\n"],"names":["_createBlock","_unref","_mergeProps","keyboard","_renderSlot","_createElementVNode","_normalizeClass","$slots","_createElementBlock","showCancel","_createVNode"],"mappings":";;;;;;;;;;;;;;;;AAmEA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAEd,IAAA,MAAM,KAAA,GAAQ,MAAA;AAEd,IAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,IAAA,MAAM,GAAA,GAAM,gBAAgB,QAAQ,CAAA;AAEpC,IAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAE3B,IAAA,MAAM,SAAA,GAAY,IAAI,CAAC,CAAA;AAEvB,IAAA,MAAM,WAAA,GAAc,IAAI,CAAA,UAAA,EAAA,iBAAa,IAAI,MAAK,EAAE,OAAA,EAAS,CAAA,CAAE,CAAA;AAE3D,IAAA,MAAM,mBAAA,GAAsB,IAAI,CAAA,cAAA,EAAA,iBAAiB,IAAI,MAAK,EAAE,OAAA,EAAS,CAAA,CAAE,CAAA;AAEvE,IAAA,MAAM,YAAA,GAAe,SAAS,OAAO;AAAA,MACnC,GAAG,aAAA;AAAA,MACH,GAAG,IAAA,CAAK,EAAE,GAAG,KAAA,EAAM,EAAG,CAAC,GAAG,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA,EAAG,eAAe,CAAC;AAAA,KACtE,CAAE,CAAA;AAEF,IAAA,MAAM,cAAc,MAAY;AAC9B,MAAA,IAAI,MAAM,QAAA,EAAU;AAClB,QAAA,KAAA,CAAM,OAAO,CAAA;AAAA,MACf,CAAA,MAAO;AACL,QAAA,YAAA,EAAa;AACb,QAAA;AAAA,MACF;AACA,MAAA,KAAA,CAAM,aAAa,CAAA;AAAA,IACrB,CAAA;AACA,IAAA,MAAM,eAAe,MAAY;AAC/B,MAAA,IAAI,MAAM,aAAA,EAAe;AACvB,QAAA,qBAAA;AAAA,UACE,MAAM,oBAAA,IAAwB;AAAA,YAC5B,KAAA,EAAO,0BAAA;AAAA,YACP,OAAA,EAAS;AAAA;AACX,SACF,CAAE,KAAK,YAAY;AAEjB,UAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,QAChB,CAAC,CAAA;AACD,QAAA;AAAA,MACF;AACA,MAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,IAChB,CAAA;AACA,IAAA,MAAM,gBAAgB,MAAY;AAChC,MAAA,KAAA,CAAM,SAAS,CAAA;AAAA,IACjB,CAAA;AAEA,IAAA,MAAM,YAAA,GAAe,OAAO,KAAA,KAAmB;AAC7C,MAAA,MAAM,QAAA,EAAS;AACf,MAAA,MAAM,MAAM,QAAA,CAAS,sBAAA,CAAuB,WAAA,CAAY,KAAK,EAAE,CAAC,CAAA;AAChE,MAAA,MAAM,YAAY,GAAA,CAAI,sBAAA,CAAuB,mBAAA,CAAoB,KAAK,EAAE,CAAC,CAAA;AACzE,MAAA,MAAM,cAAA,GAAiB,IAAI,cAAA,CAAe,CAAC,OAAA,KAAY;AAErD,QAAA,MAAM,EAAE,YAAA,EAAa,GAAI,OAAA,CAAQ,CAAC,CAAA,CAAE,MAAA;AACpC,QAAA,MAAM,eAAe,GAAA,CAAI,YAAA;AACzB,QAAA,SAAA,CAAU,QAAQ,YAAA,GAAe,YAAA;AAAA,MACnC,CAAC,CAAA;AACD,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,cAAA,CAAe,QAAQ,SAAS,CAAA;AAChC,QAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,MAAM;AACnC,UAAA,SAAA,CAAU,QAAQ,GAAA,CAAI,SAAA;AAAA,QACxB,CAAC,CAAA;AAAA,MACH,CAAA,MAAO;AACL,QAAA,cAAA,CAAe,UAAU,SAAS,CAAA;AAClC,QAAA,GAAA,CAAI,mBAAA,CAAoB,UAAU,MAAM;AACtC,UAAA,SAAA,CAAU,KAAA,GAAQ,CAAA;AAAA,QACpB,CAAC,CAAA;AAAA,MACH;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,cAAc,YAAY;AAC9B,MAAA,MAAM,QAAA,EAAS;AACf,MAAA,IAAI,CAAC,UAAU,KAAA,EAAO;AACtB,MAAA,MAAM,MAAM,QAAA,CAAS,sBAAA,CAAuB,WAAA,CAAY,KAAK,EAAE,CAAC,CAAA;AAChE,MAAA,GAAA,CAAI,SAAA,GAAY,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,CAAC,GAAA,KAAQ;AACP,QAAA,YAAA,CAAa,GAAG,CAAA;AAAA,MAClB;AAAA,KACF;AAEA,IAAA,QAAA,CAAa;AAAA,MACX;AAAA,KACD,CAAA;;;0BA1JCA,WAAA,CAqDSC,KAAA,CAAA,MAAA,CAAA,EArDTC,UAAA,CAqDS,aAAA,KAAA,EApDa;AAAA,QACnB,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,UAAUC,IAAAA,CAAAA,QAAAA;AAAAA,QACV,iBAAA,EAAiBF,KAAA,CAAA,GAAA,CAAA,CAAI,CAAA,EAAC;AAAA,QACtB,OAAA,EAAO;AAAA;QAEG,KAAA,UACT,MAAqB;AAAA,UAArBG,UAAA,CAAqB,IAAA,CAAA,MAAA,EAAA,OAAA;AAAA;QAEZ,KAAA,UACT,MAAqB;AAAA,UAArBA,UAAA,CAAqB,IAAA,CAAA,MAAA,EAAA,OAAA;AAAA;yBAEvB,MAsCM;AAAA,UAtCNC,kBAAA;AAAA,YAsCM,KAAA;AAAA,YAAA;AAAA,cAtCA,OAAKC,cAAA,CAAA,CAAGL,WAAI,gBAAgB,SAAA,CAAA,KAAA,GAAYA,MAAA,GAAA,CAAA,CAAI,GAAE,YAAA,CAAA,GAAA,EAAA,CAAA;AAAA;;cACvCM,IAAAA,CAAAA,MAAAA,CAAO,IAAA,iBAAlBC,kBAAA;AAAA,gBAEM,KAAA;AAAA,gBAAA;AAAA;kBAFmB,OAAKF,cAAA,CAAEL,KAAA,CAAA,GAAA,CAAA,CAAI,CAAA,CAAC,MAAA,CAAA;AAAA;;kBACnCG,UAAA,CAAoB,IAAA,CAAA,MAAA,EAAA,MAAA;AAAA;;;;cAEtBC,kBAAA;AAAA,gBAKM,KAAA;AAAA,gBAAA;AAAA,kBALA,KAAA,EAAKC,cAAA,CAAA,CAAGL,KAAA,CAAA,GAAA,CAAA,CAAI,CAAA,aAAc,WAAA,CAAA,KAAW,CAAA;AAAA;;kBAC9B,UAAA,KAAA,IAAa,SAAA,CAAA,KAAA,GAAS,CAAA,iBAAjCO,kBAAA;AAAA,oBAAsE,KAAA;AAAA,oBAAA;AAAA;sBAA9B,OAAKF,cAAA,CAAEL,KAAA,CAAA,GAAA,CAAA,CAAI,CAAA,CAAC,QAAA,CAAA;AAAA;;;;;kBACpDI,kBAAA;AAAA,oBAEM,KAAA;AAAA,oBAAA;AAAA,sBAFA,KAAA,EAAKC,cAAA,CAAA,CAAG,mBAAA,CAAA,KAAA,EAAqBL,KAAA,CAAA,GAAA,CAAA,CAAI,CAAA,CAAC,QAAA,CAAA,CAAA;AAAA;;sBACtCG,UAAA,CAAQ,IAAA,CAAA,MAAA,EAAA,SAAA;AAAA;;;;;;;;cAIJ,KAAA,CAAM,UAAA,iBADdI,kBAAA;AAAA,gBA2BM,KAAA;AAAA,gBAAA;AAAA;kBAzBH,OAAKF,cAAA,CAAA,CAAGL,WAAI,aAAa,SAAA,CAAA,KAAA,GAAYA,MAAA,GAAA,CAAA,CAAI,GAAE,YAAA,CAAA,GAAA,EAAA,CAAA;AAAA;;kBAE5CG,WAsBO,IAAA,uBAtBP,MAsBO;AAAA,oBArBLC,kBAAA;AAAA,sBAEM,KAAA;AAAA,sBAAA;AAAA,wBAFA,OAAKC,cAAA,CAAEL,KAAA,CAAA,GAAA,CAAA,CAAI,CAAA,CAAC,aAAA,CAAA;AAAA;;wBAChBG,UAAA,CAA2B,IAAA,CAAA,MAAA,EAAA,aAAA;AAAA;;;;oBAE7BC,kBAAA;AAAA,sBAiBM,KAAA;AAAA,sBAAA;AAAA,wBAjBA,OAAKC,cAAA,CAAEL,KAAA,CAAA,GAAA,CAAA,CAAI,CAAA,CAAC,cAAA,CAAA;AAAA;;wBAChBG,WAeO,IAAA,6BAfP,MAeO;AAAA,0BAbGK,IAAAA,CAAAA,UAAAA,iBADRT,YAMY,oBAAA,EAAA;AAAA;4BAJT,OAAKM,cAAA,CAAEL,KAAA,CAAA,GAAA,CAAA,CAAI,CAAA,CAAC,QAAA,CAAA,CAAA;AAAA,4BACZ,OAAO,KAAA,CAAM,UAAA;AAAA,4BACb,OAAA,EAAO;AAAA;0BAGVS,YAMY,oBAAA,EAAA;AAAA,4BALV,IAAA,EAAK,SAAA;AAAA,4BACJ,SAAS,KAAA,CAAM,OAAA;AAAA,4BACf,OAAO,KAAA,CAAM,WAAA;AAAA,4BACb,OAAA,EAAO;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}