UNPKG

operator-checker

Version:

Iranian mobile operator detection package for Vue 3 and TypeScript

2 lines (1 loc) 2.48 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("vue");var O=(e=>(e[e.IRANCELL=0]="IRANCELL",e[e.HAMRAH_E_AVAL=1]="HAMRAH_E_AVAL",e[e.RIGHTEL=2]="RIGHTEL",e))(O||{});const h={0:{code:0,name:"Irancell",nameFa:"ایرانسل",prefixes:["0930","0933","0935","0936","0937","0938","0939"]},1:{code:1,name:"Hamrah-e-Aval",nameFa:"همراه اول",prefixes:["0910","0911","0912","0913","0914","0915","0916","0917","0918","0919","0990","0991","0992","0993","0994"]},2:{code:2,name:"RighTel",nameFa:"رایتل",prefixes:["0920","0921","0922"]}};function d(e){if(!e||typeof e!="string")return null;const l=e.replace(/\D/g,"");let a=l.startsWith("98")?l.slice(2):l;a.startsWith("9")&&(a="0"+a);const u=a.slice(0,4);for(const n of Object.values(h))if(n.prefixes.includes(u))return n.code;return null}function p(e){const l=d(e);return l!==null?h[l]:null}function R(e){return p(e)?.nameFa||null}function C(e){return p(e)?.name||null}function g(e){if(!e||typeof e!="string")return!1;const l=e.replace(/\D/g,"");let a=l.startsWith("98")?l.slice(2):l;return a.startsWith("9")&&(a="0"+a),a.length===11&&a.startsWith("09")}function F(e={}){const{autoValidate:l=!0,showDetails:a=!1}=e,u=r.ref(""),n=r.ref(null),o=r.ref(null),s=r.ref(null),i=r.ref(null),c=r.ref(!1),v=r.ref(!1),f=r.ref(null),I=r.computed(()=>n.value),N=r.computed(()=>({code:n.value,name:s.value,nameFa:i.value,info:o.value})),A=t=>{v.value=!0,f.value=null;try{if(u.value=t,l&&!g(t)){c.value=!1,n.value=null,o.value=null,s.value=null,i.value=null,f.value="شماره موبایل معتبر نیست";return}const m=d(t);n.value=m,m!==null?(c.value=!0,a&&(o.value=p(t)),s.value=C(t),i.value=R(t)):(c.value=!1,o.value=null,s.value=null,i.value=null,f.value="اپراتور شناسایی نشد")}catch{f.value="خطا در پردازش شماره",c.value=!1}finally{v.value=!1}},L=()=>{u.value="",n.value=null,o.value=null,s.value=null,i.value=null,c.value=!1,v.value=!1,f.value=null},E=t=>g(t);return u.value&&r.watch(u,t=>{t&&A(t)}),{phoneNumber:u,operator:n,operatorInfo:o,operatorName:s,operatorNameFa:i,isValid:c,isLoading:v,error:f,operatorCode:I,operatorDetails:N,checkOperator:A,reset:L,validateNumber:E,Operator:O}}exports.OPERATORS=h;exports.Operator=O;exports.default=d;exports.detectOperator=d;exports.getOperatorInfo=p;exports.getOperatorName=C;exports.getOperatorNameFa=R;exports.isValidIranianMobileNumber=g;exports.useOperatorChecker=F;