1 line
1.9 KiB
JavaScript
1 line
1.9 KiB
JavaScript
import{N as e,a as t,m as n,nt as r,ut as i,x as a}from"./http-DH3a8ZHi.js";import{I as o}from"./index-tqT6UwOm.js";import{t as s}from"./BaseSwitch-DY_8WO_c.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let n=r(null),i=r(null),a=t();async function o(t,r){if(n.value)return r;let o=!r;if(!o&&e.confirmOff&&!await e.confirmOff())return r;n.value=t,i.value=null;let s=r;try{return await e.onPersist(o),a.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return i.value=t,a.error(e.errorMessage??`بهروزرسانی وضعیت انجام نشد.`),s}finally{n.value=null}}function s(e){return n.value===e}function c(e){return i.value===e}return{toggle:o,isLoading:s,hasError:c}}var u=a({__name:`ActiveSwitchCell`,props:{id:{},modelValue:{type:Boolean},entityName:{},entityType:{},persist:{type:Function}},emits:[`update:modelValue`],setup(t,{emit:r}){let a=t,u=r,{toggle:d,isLoading:f,hasError:p}=l({onPersist:async e=>{a.persist?await a.persist(a.id,e):await c()},successMessage:e=>e?`${a.entityType??`مورد`} «${a.entityName}» فعال شد.`:`${a.entityType??`مورد`} «${a.entityName}» غیرفعال شد.`});async function m(e){if(e===a.modelValue)return;let t=a.entityType??`مورد`;if(!await o({title:e?`فعالسازی ${t}`:`غیرفعالسازی ${t}`,message:e?`آیا از فعال کردن «${a.entityName}» مطمئن هستید؟`:`آیا از غیرفعال کردن «${a.entityName}» مطمئن هستید؟`,tone:e?`primary`:`danger`,confirmLabel:e?`فعال کردن`:`غیرفعال کردن`,cancelLabel:`انصراف`}))return;let n=await d(a.id,a.modelValue);u(`update:modelValue`,n)}return(r,a)=>(e(),n(s,{"model-value":t.modelValue,loading:i(f)(t.id),error:i(p)(t.id),"onUpdate:modelValue":m},null,8,[`model-value`,`loading`,`error`]))}});export{u as t}; |