const o=(n,t)=>!n||!t?!1:n==="String"?typeof t=="string":n==="Object"?Object.prototype.toString.call(t)==="[object Object]":n==="number"?typeof t=="number":n==="function"?Object.prototype.toString.call(t)==="[object Function]":!1,r=(n,t,i)=>n.findIndex(e=>e[t]===i);var s={checkData:o,searchArrObj:r};class c{constructor(t="\u9ED8\u8BA4\u6807\u9898",i={}){this.title=t,this.options=i,this.support=!1,this.supportFn()}supportFn(){window.Notification?(this.initStatus(),this.support=!0):this.support=!1}initStatus(){this.notification=null,this.state=Notification.permission,this.msg=null,this.callBackObj={},this.notificationAll=[],this.requireInteractionTimeout=!1,this.timeout=null}initNotification(t){if(!!this.checkStatus("support")){if(!s.checkData("function",t))return console.error("initNotification\u7684\u53C2\u6570\u5FC5\u987B\u4E3A\u51FD\u6570");if(this.state==="granted")this.msg="already granted";else if(this.state==="default"){const i=e=>(this.state=e,e==="granted"?this.msg="granted":e==="default"?this.msg="close":this.msg="denied",t(this.msg));try{Notification.requestPermission().then(i)}catch{Notification.requestPermission(i)}}else this.msg="already denied";if(this.state!=="default")return t(this.msg)}}userAgreed(){if(!!this.checkStatus("userAgreed")){this.notification=new Notification(this.title,this.options),this.notificationWatch();for(const t in this.callBackObj)this.notification[t]=i=>{this.callBackObj[t](i)}}}notificationTimeoutFn(t){t&&s.checkData("number",t)?this.timeout=t:this.timeout=5e3}notificationWatch(){this.notificationAll.push(this.notification),this.notification.requireInteraction?this.everyTimeout():this.autoClose(),this.watchClose()}everyTimeout(){!s.checkData("number",this.timeout)||(this.options.timeOut&&s.checkData("number",this.options.timeOut)?this.timeoutCloseFn(this.options.timeOut):this.timeoutCloseFn(this.timeout))}timeoutCloseFn(t){const i=this.notification.timestamp;setTimeout(()=>{const e=s.searchArrObj(this.notificationAll,"timestamp",i);e!==-1&&this.notificationAll[e].close()},t)}watchClose(){const t=this.notification.timestamp;this.notification.addEventListener("close",i=>{const e=s.searchArrObj(this.notificationAll,"timestamp",t);e!==-1&&this.notificationAll.splice(e,1)})}autoClose(){const t=this.notification.timestamp;setTimeout(()=>{const i=s.searchArrObj(this.notificationAll,"timestamp",t);i!==-1&&this.notificationAll.splice(i,1)},6e3)}notificationEvent(t){if(!!this.checkStatus("support"))if(s.checkData("Object",t)){for(const i in t)if(!s.checkData("function",t[i]))return console.error("callObj\u5BF9\u8C61\u4E2D\u7684\u6BCF\u4E2Avalue\u5FC5\u987B\u4E3A\u51FD\u6570");this.callBackObj=t}else return console.error("callObj\u5FC5\u987B\u4E3A\u5BF9\u8C61")}closeAll(){for(let t of this.notificationAll.values())t.close();this.notificationAll=[]}close(){if(!this.notification)return console.warn("this.notification\u4E3Anull,\u901A\u77E5\u5C1A\u672A\u8C03\u7528/\u7528\u6237\u672A\u540C\u610F\u663E\u793A\u901A\u77E5");this.notification.close()}updateOptions(t){if(t&&s.checkData("Object",t))for(const i in t)this.options[i]=t[i];else console.warn("updateOptions\u53C2\u6570\u9519\u8BEF\uFF1Aoptions\u4E3A\u5FC5\u586B\u5BF9\u8C61")}replaceTitle(t){t&&s.checkData("String",t)?this.title=t:console.warn("replaceTitle: title(\u901A\u77E5\u6807\u9898)\u4E3A\u5FC5\u586B\u5B57\u7B26\u4E32")}replaceOptions(t){t&&s.checkData("Object",t)?this.options=t:console.warn("replaceOptions\u53C2\u6570\u9519\u8BEF\uFF1Aoptions\u4E3A\u5FC5\u586B\u5BF9\u8C61")}checkStatus(t){if(t==="support"){if(!this.support)return console.warn("\u7528\u6237\u6D4F\u89C8\u5668\u4E0D\u652F\u6301"),!1}else if(t==="userAgreed"&&(this.state!=="granted"||!this.checkStatus("support")))return!1;return!0}}export{c as n};