vuetify3-confirm
Version:
Extends vuetify3 confirm dialog
2 lines (1 loc) • 4.06 kB
JavaScript
(function(t,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("vue"),require("vuetify/components")):typeof define=="function"&&define.amd?define(["vue","vuetify/components"],n):(t=typeof globalThis<"u"?globalThis:t||self,t.Vuetify3Confirm=n(t.Vue,t.components))})(this,function(t,n){"use strict";const b=(r,o)=>{const e=r.__vccOpts||r;for(const[s,l]of o)e[s]=l;return e},_={components:{VCard:n.VCard,VCardActions:n.VCardActions,VCardText:n.VCardText,VDialog:n.VDialog,VIcon:n.VIcon,VToolbar:n.VToolbar,VToolbarTitle:n.VToolbarTitle,VSpacer:n.VSpacer,VBtn:n.VBtn},props:{buttonTrueText:{type:String,default:"Confirm"},buttonFalseText:{type:String,default:"Cancel"},buttonTrueColor:{type:String,default:"primary"},buttonFalseColor:{type:String,default:"grey"},buttonFalseFlat:{type:Boolean,default:!0},buttonTrueFlat:{type:Boolean,default:!0},color:{type:String},icon:{type:String,default(){return"tabler-alert-octagon-filled"}},message:{type:String,required:!0},persistent:Boolean,title:{type:String},width:{type:Number,default:450},submitCallback:{type:Function},cancelCallback:{type:Function}},data(){return{value:!1}},mounted(){document.addEventListener("keyup",this.onEnterPressed)},destroyed(){document.removeEventListener("keyup",this.onEnterPressed)},methods:{onEnterPressed(r){r.keyCode===13&&(r.stopPropagation(),this.choose(!0))},choose(r){this.value=r,r?this.submitCallback():this.cancelCallback()},change(r){this.cancelCallback()}}};function p(r,o,e,s,l,a){const f=t.resolveComponent("v-icon"),c=t.resolveComponent("v-toolbar-title"),d=t.resolveComponent("v-toolbar"),y=t.resolveComponent("v-card-text"),m=t.resolveComponent("v-spacer"),u=t.resolveComponent("v-btn"),i=t.resolveComponent("v-card-actions"),k=t.resolveComponent("v-card"),g=t.resolveComponent("v-dialog");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(g,{eager:"",onInput:a.change,"model-value":"true","max-width":e.width,persistent:e.persistent,onKeydown:o[2]||(o[2]=t.withKeys(C=>a.choose(!1),["esc"]))},{default:t.withCtx(()=>[t.createVNode(k,{tile:""},{default:t.withCtx(()=>[e.title?(t.openBlock(),t.createBlock(d,{key:0,dark:"",color:e.color,dense:"",flat:""},{default:t.withCtx(()=>[e.icon?(t.openBlock(),t.createBlock(f,{key:0,left:"",style:{"margin-left":"10px"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.icon),1)]),_:1})):t.createCommentVNode("",!0),t.createVNode(c,{class:"white--text",textContent:t.toDisplayString(e.title)},null,8,["textContent"])]),_:1},8,["color"])):t.createCommentVNode("",!0),t.createVNode(y,{class:"body-1 text-body-1 py-3",innerHTML:e.message},null,8,["innerHTML"]),t.createVNode(i,null,{default:t.withCtx(()=>[t.createVNode(m),e.buttonFalseText?(t.openBlock(),t.createBlock(u,{key:0,color:e.buttonFalseColor,text:e.buttonFalseFlat,onClick:o[0]||(o[0]=C=>a.choose(!1))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.buttonFalseText),1)]),_:1},8,["color","text"])):t.createCommentVNode("",!0),e.buttonTrueText?(t.openBlock(),t.createBlock(u,{key:1,color:e.buttonTrueColor,text:e.buttonTrueFlat,onClick:o[1]||(o[1]=C=>a.choose(!0))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.buttonTrueText),1)]),_:1},8,["color","text"])):t.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["onInput","max-width","persistent"])])}const x=b(_,[["render",p]]);function V(r,o={}){const e=o.property||"$confirm";delete o.property;const s=o.vuetify;delete o.vuetify,s||console.warn("Module vuetify3-confirm needs vuetify instance. Use Vue.use(Vuetify3Confirm, { vuetify })");const l=document.createElement("div");l.setAttribute("class","confirm-container"),l.setAttribute("id","confirm-container"),document.body.appendChild(l);function a(f,c={}){return c.message=f,new Promise((d,y)=>{const m=()=>{i.unmount("#confirm-container"),d(!0)},u=()=>{i.unmount("#confirm-container"),d(!1)};c.submitCallback=m,c.cancelCallback=u;let i=t.createApp(x,c);i.use(s),i.mount("#confirm-container")})}r.config.globalProperties[e]=a,r.config.globalProperties[e].options=o||{}}return V});