primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 11.2 kB
JavaScript
import n from"primevue/button";import t from"primevue/confirmationeventbus";import e from"primevue/focustrap";import o from"primevue/overlayeventbus";import i from"primevue/portal";import{ZIndexUtils as r,DomHandler as c,ConnectedOverlayScrollHandler as s}from"primevue/utils";import a from"primevue/basecomponent";import{useStyle as l}from"primevue/usestyle";import{resolveComponent as u,resolveDirective as p,openBlock as f,createBlock as m,withCtx as d,createVNode as h,Transition as v,withDirectives as b,createElementBlock as y,mergeProps as g,renderSlot as L,resolveDynamicComponent as j,normalizeClass as O,createCommentVNode as w,createElementVNode as k,toDisplayString as C,createSlots as S}from"vue";var x=l("\n.p-confirm-popup {\n position: absolute;\n margin-top: 10px;\n top: 0;\n left: 0;\n}\n\n.p-confirm-popup-flipped {\n margin-top: 0;\n margin-bottom: 10px;\n}\n\n/* Animation */\n.p-confirm-popup-enter-from {\n opacity: 0;\n transform: scaleY(0.8);\n}\n\n.p-confirm-popup-leave-to {\n opacity: 0;\n}\n\n.p-confirm-popup-enter-active {\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.p-confirm-popup-leave-active {\n transition: opacity 0.1s linear;\n}\n\n.p-confirm-popup:after,\n.p-confirm-popup:before {\n bottom: 100%;\n left: calc(var(--overlayArrowLeft, 0) + 1.25rem);\n content: ' ';\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.p-confirm-popup:after {\n border-width: 8px;\n margin-left: -8px;\n}\n\n.p-confirm-popup:before {\n border-width: 10px;\n margin-left: -10px;\n}\n\n.p-confirm-popup-flipped:after,\n.p-confirm-popup-flipped:before {\n bottom: auto;\n top: 100%;\n}\n\n.p-confirm-popup.p-confirm-popup-flipped:after {\n border-bottom-color: transparent;\n}\n\n.p-confirm-popup.p-confirm-popup-flipped:before {\n border-bottom-color: transparent;\n}\n\n.p-confirm-popup .p-confirm-popup-content {\n display: flex;\n align-items: center;\n}\n",{name:"confirmpopup",manual:!0}),A={name:"ConfirmPopup",extends:{name:"BaseConfirmPopup",extends:a,props:{group:String},css:{classes:{root:function(n){var t=n.instance;return["p-confirm-popup p-component",{"p-input-filled":"filled"===t.$primevue.config.inputStyle,"p-ripple-disabled":!1===t.$primevue.config.ripple}]},content:"p-confirm-popup-content",icon:function(n){var t=n.instance;return["p-confirm-popup-icon",t.confirmation?t.confirmation.icon:null]},message:"p-confirm-popup-message",footer:"p-confirm-popup-footer",rejectButton:function(n){var t=n.instance;return["p-confirm-dialog-reject",t.confirmation?t.confirmation.rejectClass||"p-button-text":null]},acceptButton:function(n){var t=n.instance;return["p-confirm-dialog-accept",t.confirmation?t.confirmation.acceptClass:null]}},loadStyle:x.load},provide:function(){return{$parentInstance:this}}},inheritAttrs:!1,data:function(){return{visible:!1,confirmation:null,autoFocusAccept:null,autoFocusReject:null}},target:null,outsideClickListener:null,scrollHandler:null,resizeListener:null,container:null,confirmListener:null,closeListener:null,mounted:function(){var n=this;this.confirmListener=function(t){t&&t.group===n.group&&(n.confirmation=t,n.target=t.target,n.confirmation.onShow&&n.confirmation.onShow(),n.visible=!0)},this.closeListener=function(){n.visible=!1,n.confirmation=null},t.on("confirm",this.confirmListener),t.on("close",this.closeListener)},beforeUnmount:function(){t.off("confirm",this.confirmListener),t.off("close",this.closeListener),this.unbindOutsideClickListener(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindResizeListener(),this.container&&(r.clear(this.container),this.container=null),this.target=null,this.confirmation=null},methods:{accept:function(){this.confirmation.accept&&this.confirmation.accept(),this.visible=!1},reject:function(){this.confirmation.reject&&this.confirmation.reject(),this.visible=!1},onHide:function(){this.confirmation.onHide&&this.confirmation.onHide(),this.visible=!1},onAcceptKeydown:function(n){"Space"!==n.code&&"Enter"!==n.code||(this.accept(),c.focus(this.target),n.preventDefault())},onRejectKeydown:function(n){"Space"!==n.code&&"Enter"!==n.code||(this.reject(),c.focus(this.target),n.preventDefault())},onEnter:function(n){this.autoFocusAccept=void 0===this.confirmation.defaultFocus||"accept"===this.confirmation.defaultFocus,this.autoFocusReject="reject"===this.confirmation.defaultFocus,this.bindOutsideClickListener(),this.bindScrollListener(),this.bindResizeListener(),r.set("overlay",n,this.$primevue.config.zIndex.overlay)},onAfterEnter:function(){this.focus()},onLeave:function(){this.autoFocusAccept=null,this.autoFocusReject=null,this.unbindOutsideClickListener(),this.unbindScrollListener(),this.unbindResizeListener()},onAfterLeave:function(n){r.clear(n)},alignOverlay:function(){c.absolutePosition(this.container,this.target);var n=c.getOffset(this.container),t=c.getOffset(this.target),e=0;n.left<t.left&&(e=t.left-n.left),this.container.style.setProperty("--overlayArrowLeft","".concat(e,"px")),n.top<t.top&&(this.container.setAttribute("data-p-confirm-popup-flipped","true"),!this.isUnstyled&&c.addClass(this.container,"p-confirm-popup-flipped"))},bindOutsideClickListener:function(){var n=this;this.outsideClickListener||(this.outsideClickListener=function(t){n.visible&&n.container&&!n.container.contains(t.target)&&!n.isTargetClicked(t)?(n.confirmation.onHide&&n.confirmation.onHide(),n.visible=!1):n.alignOverlay()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener:function(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindScrollListener:function(){var n=this;this.scrollHandler||(this.scrollHandler=new s(this.target,(function(){n.visible&&(n.visible=!1)}))),this.scrollHandler.bindScrollListener()},unbindScrollListener:function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()},bindResizeListener:function(){var n=this;this.resizeListener||(this.resizeListener=function(){n.visible&&!c.isTouchDevice()&&(n.visible=!1)},window.addEventListener("resize",this.resizeListener))},unbindResizeListener:function(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},focus:function(){var n=this.container.querySelector("[autofocus]");n&&n.focus({preventScroll:!0})},isTargetClicked:function(n){return this.target&&(this.target===n.target||this.target.contains(n.target))},containerRef:function(n){this.container=n},onOverlayClick:function(n){o.emit("overlay-click",{originalEvent:n,target:this.target})},onOverlayKeydown:function(n){"Escape"===n.code&&(t.emit("close",this.closeListener),c.focus(this.target))},getCXOptions:function(n,t){return{contenxt:{icon:n,iconClass:t.class}}}},computed:{message:function(){return this.confirmation?this.confirmation.message:null},acceptLabel:function(){return this.confirmation?this.confirmation.acceptLabel||this.$primevue.config.locale.accept:null},rejectLabel:function(){return this.confirmation?this.confirmation.rejectLabel||this.$primevue.config.locale.reject:null},acceptIcon:function(){return this.confirmation?this.confirmation.acceptIcon:null},rejectIcon:function(){return this.confirmation?this.confirmation.rejectIcon:null}},components:{CPButton:n,Portal:i},directives:{focustrap:e}};function E(n){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},E(n)}function P(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),e.push.apply(e,o)}return e}function z(n){for(var t=1;t<arguments.length;t++){var e=null!=arguments[t]?arguments[t]:{};t%2?P(Object(e),!0).forEach((function(t){$(n,t,e[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):P(Object(e)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))}))}return n}function $(n,t,e){return(t=H(t))in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}function H(n){var t=R(n,"string");return"symbol"===E(t)?t:String(t)}function R(n,t){if("object"!==E(n)||null===n)return n;var e=n[Symbol.toPrimitive];if(void 0!==e){var o=e.call(n,t||"default");if("object"!==E(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(n)}var K=["aria-modal"];A.render=function(n,t,e,o,i,r){var c=u("CPButton"),s=u("Portal"),a=p("focustrap");return f(),m(s,null,{default:d((function(){return[h(v,{name:"p-confirm-popup",onEnter:r.onEnter,onAfterEnter:r.onAfterEnter,onLeave:r.onLeave,onAfterLeave:r.onAfterLeave},{default:d((function(){return[i.visible?b((f(),y("div",g({key:0,ref:r.containerRef,role:"alertdialog",class:n.cx("root"),"aria-modal":i.visible,onClick:t[2]||(t[2]=function(){return r.onOverlayClick&&r.onOverlayClick.apply(r,arguments)}),onKeydown:t[3]||(t[3]=function(){return r.onOverlayKeydown&&r.onOverlayKeydown.apply(r,arguments)})},z(z({},n.$attrs),n.ptm("root"))),[n.$slots.message?(f(),m(j(n.$slots.message),{key:1,message:i.confirmation},null,8,["message"])):(f(),y("div",g({key:0,class:n.cx("content")},n.ptm("content")),[L(n.$slots,"icon",{},(function(){return[n.$slots.icon?(f(),m(j(n.$slots.icon),{key:0,class:O(n.cx("icon"))},null,8,["class"])):i.confirmation.icon?(f(),y("span",g({key:1,class:n.cx("icon")},n.ptm("icon")),null,16)):w("",!0)]})),k("span",g({class:n.cx("message")},n.ptm("message")),C(i.confirmation.message),17)],16)),k("div",g({class:n.cx("footer")},n.ptm("footer")),[h(c,{label:r.rejectLabel,onClick:t[0]||(t[0]=function(n){return r.reject()}),onKeydown:r.onRejectKeydown,autofocus:i.autoFocusReject,class:O(n.cx("rejectButton")),unstyled:n.unstyled,pt:n.ptm("rejectButton"),"data-pc-name":"rejectbutton"},S({_:2},[r.rejectIcon||n.$slots.rejecticon?{name:"icon",fn:d((function(t){return[L(n.$slots,"rejecticon",{},(function(){return[k("span",g({class:[r.rejectIcon,t.class]},n.ptm("rejectButton").icon,{"data-pc-name":"rejectbuttonicon"}),null,16)]}))]})),key:"0"}:void 0]),1032,["label","onKeydown","autofocus","class","unstyled","pt"]),h(c,{label:r.acceptLabel,onClick:t[1]||(t[1]=function(n){return r.accept()}),onKeydown:r.onAcceptKeydown,autofocus:i.autoFocusAccept,class:O(n.cx("acceptButton")),unstyled:n.unstyled,pt:n.ptm("acceptButton"),"data-pc-name":"acceptbutton"},S({_:2},[r.acceptIcon||n.$slots.accepticon?{name:"icon",fn:d((function(t){return[L(n.$slots,"accepticon",{},(function(){return[k("span",g({class:[r.acceptIcon,t.class]},n.ptm("acceptButton").icon,{"data-pc-name":"acceptbuttonicon"}),null,16)]}))]})),key:"0"}:void 0]),1032,["label","onKeydown","autofocus","class","unstyled","pt"])],16)],16,K)),[[a]]):w("",!0)]})),_:3},8,["onEnter","onAfterEnter","onLeave","onAfterLeave"])]})),_:3})};export{A as default};