UNPKG

vuejs-confirm-dialog

Version:

Convert your dialogs to async functions and use them all over your project!

2 lines (1 loc) 2.95 kB
(function(c,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],r):(c=typeof globalThis!="undefined"?globalThis:c||self,r(c["vuejs-confirm-dialog"]={},c.Vue))})(this,function(c,r){"use strict";const f=r.reactive([]),y=function(){return{DialogsStore:f,addDialog:function(l){f.push(r.markRaw(l))},removeDialog:function(l){const i=f.findIndex(t=>t.id==l);f.splice(i,1)},removeAll:function(){f.splice(0)}}};function p(){const o=[],e=i=>{const t=o.indexOf(i);t!==-1&&o.splice(t,1)};return{on:i=>(o.push(i),{off:()=>e(i)}),off:e,trigger:i=>{o.forEach(t=>t(i))}}}const d=typeof window!="undefined",R=()=>{};d&&window.document,d&&window.navigator,d&&window.location;const v=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},g="__vueuse_ssr_handlers__";v[g]=v[g]||{},v[g];function S(o=r.ref(!1)){const e=p(),n=p(),l=p();let i=R;const t=a=>(l.trigger(a),o.value=!0,new Promise(w=>{i=w})),u=a=>{o.value=!1,e.trigger(a),i({data:a,isCanceled:!1})},m=a=>{o.value=!1,n.trigger(a),i({data:a,isCanceled:!0})};return{isRevealed:r.computed(()=>o.value),reveal:t,confirm:u,cancel:m,onReveal:l.on,onConfirm:e.on,onCancel:n.on}}var D,C;d&&(window==null?void 0:window.navigator)&&((D=window==null?void 0:window.navigator)==null?void 0:D.platform)&&/iP(ad|hone|od)/.test((C=window==null?void 0:window.navigator)==null?void 0:C.platform);var k=Object.defineProperty,b=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,O=(o,e,n)=>e in o?k(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,j=(o,e)=>{for(var n in e||(e={}))A.call(e,n)&&O(o,n,e[n]);if(b)for(var n of b(e))$.call(e,n)&&O(o,n,e[n]);return o};j({text:""},{top:0,left:0,bottom:0,right:0,height:0,width:0});let x=0;function E(){return++x}function T(o,e={},n={chore:!1,keepInitial:!1}){const l=s=>{if(!s){i.value={};return}for(const I in s)i.value[I]=s[I]},i=r.ref({});l(e);const t=r.ref(!1),u=()=>{t.value=!1,a(h)},{addDialog:m,removeDialog:a,removeAll:w,DialogsStore:H}=y(),{reveal:M,isRevealed:_,onConfirm:V,onReveal:q,onCancel:G,confirm:K,cancel:L}=S(),h=E();return q(s=>{t.value=!0,s&&l(s),m({id:h,dialog:o,isRevealed:_,confirm:K,cancel:L,props:i.value,close:u,revealed:t})}),r.watch(_,s=>{s||(n.chore&&l(n.keepInitial?e:null),a(h))}),{close:u,closeAll:()=>{H.forEach(s=>{s.revealed.value=!1}),w()},reveal:M,isRevealed:r.computed(()=>_.value&&t.value),onConfirm:V,onCancel:G}}var P=r.defineComponent({name:"DialogsWrapper",setup(){const{DialogsStore:o}=y();return()=>o.map(e=>r.h(e.dialog,{is:e.dialog,onConfirm:e.confirm,onCancel:e.cancel,key:e.id,...e.props}))}});function W(o){o.component("DialogsWrapper",P)}c.DialogsWrapper=P,c.createConfirmDialog=T,c.install=W,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});