UNPKG

ll-package

Version:

2 lines (1 loc) 3.1 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),n=require("../../../@babel/runtime/helpers/esm/extends.js"),t=require("vue"),U=require("../vc-util/Dom/contains.js"),j=require("../_util/classNames.js"),w=require("../_util/KeyCode.js"),$=require("../_util/omit.js"),B=require("../_util/pickAttrs.js"),W=require("../_util/props-util/initDefaultProps.js"),z=require("./Content.js"),F=require("./IDialogPropTypes.js"),G=require("./Mask.js"),C=require("./util.js"),H=t.defineComponent({compatConfig:{MODE:3},name:"VcDialog",inheritAttrs:!1,props:W.default(n.default(n.default({},F.dialogPropTypes()),{getOpenCount:Function,scrollLocker:Object}),{mask:!0,visible:!1,keyboard:!0,closable:!0,maskClosable:!0,destroyOnClose:!1,prefixCls:"rc-dialog",getOpenCount:()=>null,focusTriggerAfterClose:!0}),setup(l,h){let{attrs:N,slots:b}=h;const i=t.shallowRef(),c=t.shallowRef(),f=t.shallowRef(),s=t.shallowRef(l.visible),k=t.shallowRef(`vcDialogTitle${C.getUUID()}`),q=e=>{var a,o;if(e)U.default(c.value,document.activeElement)||(i.value=document.activeElement,(a=f.value)===null||a===void 0||a.focus());else{const m=s.value;if(s.value=!1,l.mask&&i.value&&l.focusTriggerAfterClose){try{i.value.focus({preventScroll:!0})}catch{}i.value=null}m&&((o=l.afterClose)===null||o===void 0||o.call(l))}},d=e=>{var a;(a=l.onClose)===null||a===void 0||a.call(l,e)},u=t.shallowRef(!1),v=t.shallowRef(),R=()=>{clearTimeout(v.value),u.value=!0},T=()=>{v.value=setTimeout(()=>{u.value=!1})},D=e=>{if(!l.maskClosable)return null;u.value?u.value=!1:c.value===e.target&&d(e)},M=e=>{if(l.keyboard&&e.keyCode===w.default.ESC){e.stopPropagation(),d(e);return}l.visible&&e.keyCode===w.default.TAB&&f.value.changeActive(!e.shiftKey)};return t.watch(()=>l.visible,()=>{l.visible&&(s.value=!0)},{flush:"post"}),t.onBeforeUnmount(()=>{var e;clearTimeout(v.value),(e=l.scrollLocker)===null||e===void 0||e.unLock()}),t.watchEffect(()=>{var e,a;(e=l.scrollLocker)===null||e===void 0||e.unLock(),s.value&&((a=l.scrollLocker)===null||a===void 0||a.lock())}),()=>{const{prefixCls:e,mask:a,visible:o,maskTransitionName:m,maskAnimation:g,zIndex:y,wrapClassName:A,rootClassName:V,wrapStyle:_,closable:P,maskProps:S,maskStyle:x,transitionName:I,animation:L,wrapProps:O,title:p=b.title}=l,{style:E,class:K}=N;return t.createVNode("div",r.default({class:[`${e}-root`,V]},B.default(l,{data:!0})),[t.createVNode(G.default,{prefixCls:e,visible:a&&o,motionName:C.getMotionName(e,m,g),style:n.default({zIndex:y},x),maskProps:S},null),t.createVNode("div",r.default({tabIndex:-1,onKeydown:M,class:j.default(`${e}-wrap`,A),ref:c,onClick:D,role:"dialog","aria-labelledby":p?k.value:null,style:n.default(n.default({zIndex:y},_),{display:s.value?null:"none"})},O),[t.createVNode(z.default,r.default(r.default({},$.default(l,["scrollLocker"])),{},{style:E,class:K,onMousedown:R,onMouseup:T,ref:f,closable:P,ariaId:k.value,prefixCls:e,visible:o,onClose:d,onVisibleChanged:q,motionName:C.getMotionName(e,I,L)}),b)])])}}});exports.default=H;