diff --git a/js/notifications-settings.mjs b/js/notifications-settings.mjs index ecbe2fcce..74a8a206e 100644 --- a/js/notifications-settings.mjs +++ b/js/notifications-settings.mjs @@ -1,3 +1,3 @@ /*! third party licenses: js/vendor.LICENSE.txt */ -import{r as Ci,a as Xi,o as Q,w as li,b as bi,e as wi,f as Ii,g as ui,t as H,h as Oi,F as xe,i as Zi,j as _e,k as Se,c as Ee}from"./style-Dqm0PtrT.chunk.mjs";import{t as x,_ as Ce,N as Ie,a as Oe,s as Vi,b as Qi,c as Ve,v as Ae,l as Ne}from"./_plugin-vue_export-helper-C7ddJo6y.chunk.mjs";import{N as Te}from"./NcSettingsSection-DiUv-jCU-D9WW29-m.chunk.mjs";import{B as K}from"./BrowserStorage-BHiGBot0.chunk.mjs";var Me="2.0.5",Pi=500,Ki="user-agent",W="",Ji="?",ki="function",q="undefined",Y="object",ji="string",v="browser",A="cpu",O="device",S="engine",_="os",R="result",a="name",i="type",o="vendor",r="version",k="architecture",ci="major",e="model",si="console",w="mobile",m="tablet",g="smarttv",C="wearable",pi="xr",ni="embedded",B="inapp",Wi="brands",D="formFactors",Yi="fullVersionList",F="platform",Gi="platformVersion",_i="bitness",z="sec-ch-ua",qe=z+"-full-version-list",Le=z+"-arch",ze=z+"-"+_i,Ue=z+"-form-factors",De=z+"-"+w,He=z+"-"+e,fe=z+"-"+F,Be=fe+"-version",ge=[Wi,Yi,w,e,F,Gi,k,D,_i],hi="Amazon",P="Apple",ie="ASUS",ee="BlackBerry",U="Google",te="Huawei",Ai="Lenovo",oe="Honor",mi="LG",Ni="Microsoft",Ti="Motorola",Mi="Nvidia",ae="OnePlus",qi="OPPO",J="Samsung",re="Sharp",ii="Sony",Li="Xiaomi",zi="Zebra",se="Chrome",ne="Chromium",T="Chromecast",vi="Edge",ei="Firefox",ti="Opera",Ui="Facebook",ce="Sogou",j="Mobile ",oi=" Browser",Ri="Windows",Pe=typeof window!==q,y=Pe&&window.navigator?window.navigator:void 0,M=y&&y.userAgentData?y.userAgentData:void 0,je=function(t,s){var c={},d=s;if(!yi(s)){d={};for(var l in s)for(var b in s[l])d[b]=s[l][b].concat(d[b]?d[b]:[])}for(var n in t)c[n]=d[n]&&d[n].length%2===0?d[n].concat(t[n]):t[n];return c},fi=function(t){for(var s={},c=0;c0){for(var c in t)if(L(s)==L(t[c]))return!0;return!1}return $(t)?L(s)==L(t):!1},yi=function(t,s){for(var c in t)return/^(browser|cpu|device|engine|os)$/.test(c)||(s?yi(t[c]):!1)},$=function(t){return typeof t===ji},Di=function(t){if(t){for(var s=[],c=G(/\\?\"/g,t).split(","),d=0;d-1){var l=xi(c[d]).split(";v=");s[d]={brand:l[0],version:l[1]}}else s[d]=xi(c[d]);return s}},L=function(t){return $(t)?t.toLowerCase():t},Hi=function(t){return $(t)?G(/[^\d\.]/g,t).split(".")[0]:void 0},N=function(t){for(var s in t)if(t.hasOwnProperty(s)){var c=t[s];typeof c==Y&&c.length==2?this[c[0]]=c[1]:this[c]=void 0}return this},G=function(t,s){return $(s)?s.replace(t,W):s},ai=function(t){return G(/\\?\"/g,t)},xi=function(t,s){if($(t))return t=G(/^\s\s*/,t),typeof s===q?t:t.substring(0,Pi)},Bi=function(t,s){if(!(!t||!s))for(var c=0,d,l,b,n,h,p;c0?n.length===2?typeof n[1]==ki?this[n[0]]=n[1].call(this,p):this[n[0]]=n[1]:n.length>=3&&(typeof n[1]===ki&&!(n[1].exec&&n[1].test)?n.length>3?this[n[0]]=p?n[1].apply(this,n.slice(2)):void 0:this[n[0]]=p?n[1].call(this,p,n[2]):void 0:n.length==3?this[n[0]]=p?p.replace(n[1],n[2]):void 0:n.length==4?this[n[0]]=p?n[3].call(this,p.replace(n[1],n[2])):void 0:n.length>4&&(this[n[0]]=p?n[3].apply(this,[p.replace(n[1],n[2])].concat(n.slice(4))):void 0)):this[n]=p||void 0;c+=2}},I=function(t,s){for(var c in s)if(typeof s[c]===Y&&s[c].length>0){for(var d=0;d2&&this.set(e,"iPad").set(i,m);break;case _:!this.get(a)&&M&&M[F]&&this.set(a,M[F]);break;case R:var l=this.data,b=function(n){return l[n].getItem().detectFeature().get()};this.set(v,b(v)).set(A,b(A)).set(O,b(O)).set(S,b(S)).set(_,b(_))}return this},this.parseUA=function(){return this.itemType!=R&&Bi.call(this.data,this.ua,this.rgxMap),this.itemType==v&&this.set(ci,Hi(this.get(r))),this},this.parseCH=function(){var l=this.uaCH,b=this.rgxMap;switch(this.itemType){case v:case S:var n=l[Yi]||l[Wi],h;if(n)for(var p=0;p=13?"11":"10"),this.set(a,Si).set(r,Ei)}this.get(a)==Ri&&l[e]=="Xbox"&&this.set(a,"Xbox").set(r,void 0);break;case R:var ke=this.data,Z=function(ye){return ke[ye].getItem().setCH(l).parseCH().get()};this.set(v,Z(v)).set(A,Z(A)).set(O,Z(O)).set(S,Z(S)).set(_,Z(_))}return this},N.call(this,[["itemType",t],["ua",s],["uaCH",d],["rgxMap",c],["data",Fe(this,t)]]),this}function V(t,s,c){if(typeof t===Y?(yi(t,!0)?(typeof s===Y&&(c=s),s=t):(c=t,s=void 0),t=void 0):typeof t===ji&&!yi(s,!0)&&(c=s,s=void 0),c)if(typeof c.append===ki){var d={};c.forEach(function(f,E){d[String(E).toLowerCase()]=f}),c=d}else{var l={};for(var b in c)c.hasOwnProperty(b)&&(l[String(b).toLowerCase()]=c[b]);c=l}if(!(this instanceof V))return new V(t,s,c).getResult();var n=typeof t===ji?t:c&&c[Ki]?c[Ki]:y&&y.userAgent?y.userAgent:W,h=new ve(c,!0),p=s?je(be,s):be,u=function(f){return f==R?function(){return new we(f,n,p,h).set("ua",n).set(v,this.getBrowser()).set(A,this.getCPU()).set(O,this.getDevice()).set(S,this.getEngine()).set(_,this.getOS()).get()}:function(){return new we(f,n,p[f],h).parseUA().get()}};return N.call(this,[["getBrowser",u(v)],["getCPU",u(A)],["getDevice",u(O)],["getEngine",u(S)],["getOS",u(_)],["getResult",u(R)],["getUA",function(){return n}],["setUA",function(f){return $(f)&&(n=f.length>Pi?xi(f,Pi):f),this}]]).setUA(n),this}V.VERSION=Me,V.BROWSER=fi([a,r,ci,i]),V.CPU=fi([k]),V.DEVICE=fi([e,o,i,si,w,g,m,C,ni]),V.ENGINE=V.OS=fi([a,r]);const ri={EMAIL_SEND_OFF:0,EMAIL_SEND_HOURLY:1,EMAIL_SEND_3HOURLY:2,EMAIL_SEND_DAILY:3,EMAIL_SEND_WEEKLY:4},ue=[{label:x("notifications","Never"),value:ri.EMAIL_SEND_OFF},{label:x("notifications","1 hour"),value:ri.EMAIL_SEND_HOURLY},{label:x("notifications","3 hours"),value:ri.EMAIL_SEND_3HOURLY},{label:x("notifications","1 day"),value:ri.EMAIL_SEND_DAILY},{label:x("notifications","1 week"),value:ri.EMAIL_SEND_WEEKLY}],pe={id:null,label:x("notifications","None")},We=new V,he=We.getBrowser(),me=he.name==="Safari"||he.name==="Mobile Safari",Ye={name:"UserSettings",components:{NcCheckboxRadioSwitch:Oe,NcSelect:Ie,NcSettingsSection:Te},setup(){const t=Zi(Ne("notifications","config")),s=Zi({secondary_speaker:K.getItem("secondary_speaker")==="true",secondary_speaker_device:JSON.parse(K.getItem("secondary_speaker_device"))??pe}),c=_e([]),d=Se({get(){return ue.find(({value:l})=>l===t.setting_batchtime)},set({value:l}){t.setting_batchtime=l}});return{BATCHTIME_OPTIONS:ue,isSafari:me,config:t,currentBatchTime:d,devices:c,storage:s}},methods:{t:x,async updateSettings(){try{const t=new FormData;t.append("batchSetting",this.config.setting_batchtime),t.append("soundNotification",this.config.sound_notification?"yes":"no"),t.append("soundTalk",this.config.sound_talk?"yes":"no"),await Ve.post(Ae("apps/notifications/api/v2/settings"),t),Qi(x("notifications","Your settings have been updated."))}catch(t){Vi(x("notifications","An error occurred while updating your settings.")),console.error(t)}},updateLocalSettings(){try{K.setItem("secondary_speaker",this.storage.secondary_speaker),this.storage.secondary_speaker&&this.storage.secondary_speaker_device.id?K.setItem("secondary_speaker_device",JSON.stringify(this.storage.secondary_speaker_device)):K.removeItem("secondary_speaker_device"),Qi(x("notifications","Your settings have been updated."))}catch(t){Vi(x("notifications","An error occurred while updating your settings.")),console.error(t)}},async initializeDevices(){if(!(!me&&navigator?.mediaDevices?.getUserMedia&&navigator?.mediaDevices?.enumerateDevices)||this.devices.length>0)return;let t=null;try{t=await navigator.mediaDevices.getUserMedia({audio:!0}),this.devices=(await navigator.mediaDevices.enumerateDevices()??[]).filter(s=>s.kind==="audiooutput").map(s=>({id:s.deviceId,label:s.label?s.label:s.fallbackLabel})).concat([pe])}catch(s){Vi(x("notifications","An error occurred while updating your settings.")),console.error("Error while requesting or initializing audio devices: ",s)}finally{t&&t.getTracks().forEach(s=>s.stop())}}}},Ge={class:"notification-frequency__warning"},$e={key:0},Xe={class:"notification-frequency__wrapper"},Ze={for:"notification_reminder_batchtime",class:"notification-frequency__label"},Qe={key:0,class:"notification-frequency__warning"};function Ke(t,s,c,d,l,b){const n=Ci("NcSelect"),h=Ci("NcCheckboxRadioSwitch"),p=Ci("NcSettingsSection");return Q(),Xi(p,{name:b.t("notifications","Notifications")},{default:li(()=>[bi("div",Ge,[d.config.is_email_set?ui("",!0):(Q(),Ii("strong",$e,H(b.t("notifications","You need to set up your email address before you can receive notification emails.")),1))]),bi("div",Xe,[bi("label",Ze,H(b.t("notifications","Send email reminders about unhandled notifications after:")),1),wi(n,{id:"notification_reminder_batchtime",modelValue:d.currentBatchTime,"onUpdate:modelValue":[s[0]||(s[0]=u=>d.currentBatchTime=u),b.updateSettings],class:"notification-frequency__select",clearable:!1,"label-outside":"",options:d.BATCHTIME_OPTIONS},null,8,["modelValue","options","onUpdate:modelValue"])]),wi(h,{modelValue:d.config.sound_notification,"onUpdate:modelValue":[s[1]||(s[1]=u=>d.config.sound_notification=u),b.updateSettings]},{default:li(()=>[Oi(H(b.t("notifications","Play sound when a new notification arrives")),1)]),_:1},8,["modelValue","onUpdate:modelValue"]),wi(h,{modelValue:d.config.sound_talk,"onUpdate:modelValue":[s[2]||(s[2]=u=>d.config.sound_talk=u),b.updateSettings]},{default:li(()=>[Oi(H(b.t("notifications","Play sound when a call started (requires Nextcloud Talk)")),1)]),_:1},8,["modelValue","onUpdate:modelValue"]),d.config.sound_talk?(Q(),Ii(xe,{key:0},[wi(h,{modelValue:d.storage.secondary_speaker,"onUpdate:modelValue":[s[3]||(s[3]=u=>d.storage.secondary_speaker=u),b.updateLocalSettings],class:"additional-margin-top",disabled:d.isSafari},{default:li(()=>[Oi(H(b.t("notifications","Also repeat sound on a secondary speaker")),1)]),_:1},8,["modelValue","disabled","onUpdate:modelValue"]),d.isSafari?(Q(),Ii("div",Qe,[bi("strong",null,H(b.t("notifications","Selection of the speaker device is currently not supported by Safari")),1)])):ui("",!0),!d.isSafari&&d.storage.secondary_speaker?(Q(),Xi(n,{key:1,modelValue:d.storage.secondary_speaker_device,"onUpdate:modelValue":[s[4]||(s[4]=u=>d.storage.secondary_speaker_device=u),b.updateLocalSettings],"input-id":"device-selector-audio-output",options:d.devices,label:"label","aria-label-combobox":b.t("notifications","Select a device"),clearable:!1,placeholder:b.t("notifications","Select a device"),onOpen:b.initializeDevices},null,8,["modelValue","options","aria-label-combobox","placeholder","onOpen","onUpdate:modelValue"])):ui("",!0)],64)):ui("",!0)]),_:1},8,["name"])}const Je=Ce(Ye,[["render",Ke],["__scopeId","data-v-490e4c78"]]);Ee(Je).mount("#notifications-user-settings"); +import{r as Si,a as Wi,o as $,w as ci,b as di,e as bi,f as Ei,g as wi,t as B,h as Ni,F as ge,i as Yi,j as ve,k as ke,c as ye}from"./style-Dqm0PtrT.chunk.mjs";import{t as S,_ as xe,N as _e,a as Se,s as Ii,b as Gi,c as Ee,v as Ne,l as Ie}from"./_plugin-vue_export-helper-C7ddJo6y.chunk.mjs";import{N as Ce}from"./NcSettingsSection-DiUv-jCU-D9WW29-m.chunk.mjs";import{B as K}from"./BrowserStorage-BHiGBot0.chunk.mjs";var Te="2.0.6",De=500,Ji="user-agent",W="",$i="?",f={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},y="browser",O="cpu",T="device",E="engine",_="os",P="result",o="name",i="type",a="vendor",r="version",k="architecture",si="major",e="model",ai="console",w="mobile",m="tablet",g="smarttv",I="wearable",ui="xr",ri="embedded",F="inapp",Hi="brands",z="formFactors",Ri="fullVersionList",j="platform",Pi="platformVersion",yi="bitness",M="sec-ch-ua",Oe=M+"-full-version-list",Ue=M+"-arch",Ve=M+"-"+yi,qe=M+"-form-factors",Ae=M+"-"+w,Me=M+"-"+e,ue=M+"-"+j,Le=ue+"-version",pe=[Hi,Ri,w,e,j,Pi,k,z,yi],pi="Amazon",H="Apple",Ki="ASUS",Xi="BlackBerry",L="Google",Zi="Huawei",Ci="Lenovo",Qi="Honor",hi="LG",Ti="Microsoft",Di="Motorola",Oi="Nvidia",ie="OnePlus",Ui="OPPO",X="Samsung",ee="Sharp",Z="Sony",Vi="Xiaomi",qi="Zebra",te="Chrome",oe="Chromium",V="Chromecast",gi="Edge",Q="Firefox",ii="Opera",Ai="Facebook",ae="Sogou",R="Mobile ",ei=" Browser",Bi="Windows",ze=typeof window!==f.UNDEFINED,x=ze&&window.navigator?window.navigator:void 0,q=x&&x.userAgentData?x.userAgentData:void 0,Be=function(t,s){var l={},d=s;if(!vi(s)){d={};for(var c in s)for(var b in s[c])d[b]=s[c][b].concat(d[b]?d[b]:[])}for(var n in t)l[n]=d[n]&&d[n].length%2===0?d[n].concat(t[n]):t[n];return l},mi=function(t){for(var s={},l=0;l0){for(var l in t)if(A(s)==A(t[l]))return!0;return!1}return ni(t)?A(s)==A(t):!1},vi=function(t,s){for(var l in t)return/^(browser|cpu|device|engine|os)$/.test(l)||(s?vi(t[l]):!1)},ni=function(t){return typeof t===f.STRING},Mi=function(t){if(t){for(var s=[],l=Y(/\\?\"/g,t).split(","),d=0;d-1){var c=ki(l[d]).split(";v=");s[d]={brand:c[0],version:c[1]}}else s[d]=ki(l[d]);return s}},A=function(t){return ni(t)?t.toLowerCase():t},Li=function(t){return ni(t)?Y(/[^\d\.]/g,t).split(".")[0]:void 0},U=function(t){for(var s in t)if(t.hasOwnProperty(s)){var l=t[s];typeof l==f.OBJECT&&l.length==2?this[l[0]]=l[1]:this[l]=void 0}return this},Y=function(t,s){return ni(s)?s.replace(t,W):s},ti=function(t){return Y(/\\?\"/g,t)},ki=function(t,s){return t=Y(/^\s\s*/,String(t)),typeof s===f.UNDEFINED?t:t.substring(0,s)},zi=function(t,s){if(!(!t||!s))for(var l=0,d,c,b,n,h,p;l0?n.length===2?typeof n[1]==f.FUNCTION?this[n[0]]=n[1].call(this,p):this[n[0]]=n[1]:n.length>=3&&(typeof n[1]===f.FUNCTION&&!(n[1].exec&&n[1].test)?n.length>3?this[n[0]]=p?n[1].apply(this,n.slice(2)):void 0:this[n[0]]=p?n[1].call(this,p,n[2]):void 0:n.length==3?this[n[0]]=p?p.replace(n[1],n[2]):void 0:n.length==4?this[n[0]]=p?n[3].call(this,p.replace(n[1],n[2])):void 0:n.length>4&&(this[n[0]]=p?n[3].apply(this,[p.replace(n[1],n[2])].concat(n.slice(4))):void 0)):this[n]=p||void 0;l+=2}},C=function(t,s){for(var l in s)if(typeof s[l]===f.OBJECT&&s[l].length>0){for(var d=0;d2&&this.set(e,"iPad").set(i,m);break;case _:!this.get(o)&&q&&q[j]&&this.set(o,q[j]);break;case P:var c=this.data,b=function(n){return c[n].getItem().detectFeature().get()};this.set(y,b(y)).set(O,b(O)).set(T,b(T)).set(E,b(E)).set(_,b(_))}return this},this.parseUA=function(){switch(this.itemType!=P&&zi.call(this.data,this.ua,this.rgxMap),this.itemType){case y:this.set(si,Li(this.get(r)));break;case _:if(this.get(o)=="iOS"&&this.get(r)=="18.6"){var c=/\) Version\/([\d\.]+)/.exec(this.ua);c&&parseInt(c[1].substring(0,2),10)>=26&&this.set(r,c[1])}break}return this},this.parseCH=function(){var c=this.uaCH,b=this.rgxMap;switch(this.itemType){case y:case E:var n=c[Ri]||c[Hi],h;if(n)for(var p=0;p=13?"11":"10"),this.set(o,xi).set(r,_i)}this.get(o)==Bi&&c[e]=="Xbox"&&this.set(o,"Xbox").set(r,void 0);break;case P:var me=this.data,J=function(fe){return me[fe].getItem().setCH(c).parseCH().get()};this.set(y,J(y)).set(O,J(O)).set(T,J(T)).set(E,J(E)).set(_,J(_))}return this},U.call(this,[["itemType",t],["ua",s],["uaCH",d],["rgxMap",l],["data",He(this,t)]]),this}function D(t,s,l){if(typeof t===f.OBJECT?(vi(t,!0)?(typeof s===f.OBJECT&&(l=s),s=t):(l=t,s=void 0),t=void 0):typeof t===f.STRING&&!vi(s,!0)&&(l=s,s=void 0),l)if(typeof l.append===f.FUNCTION){var d={};l.forEach(function(v,N){d[String(N).toLowerCase()]=v}),l=d}else{var c={};for(var b in l)l.hasOwnProperty(b)&&(c[String(b).toLowerCase()]=l[b]);l=c}if(!(this instanceof D))return new D(t,s,l).getResult();var n=typeof t===f.STRING?t:l&&l[Ji]?l[Ji]:x&&x.userAgent?x.userAgent:W,h=new he(l,!0),p=s?Be(ne,s):ne,u=function(v){return v==P?function(){return new le(v,n,p,h).set("ua",n).set(y,this.getBrowser()).set(O,this.getCPU()).set(T,this.getDevice()).set(E,this.getEngine()).set(_,this.getOS()).get()}:function(){return new le(v,n,p[v],h).parseUA().get()}};return U.call(this,[["getBrowser",u(y)],["getCPU",u(O)],["getDevice",u(T)],["getEngine",u(E)],["getOS",u(_)],["getResult",u(P)],["getUA",function(){return n}],["setUA",function(v){return ni(v)&&(n=ki(v,De)),this}]]).setUA(n),this}D.VERSION=Te,D.BROWSER=mi([o,r,si,i]),D.CPU=mi([k]),D.DEVICE=mi([e,a,i,ai,w,g,m,I,ri]),D.ENGINE=D.OS=mi([o,r]);const oi={EMAIL_SEND_OFF:0,EMAIL_SEND_HOURLY:1,EMAIL_SEND_3HOURLY:2,EMAIL_SEND_DAILY:3,EMAIL_SEND_WEEKLY:4},ce=[{label:S("notifications","Never"),value:oi.EMAIL_SEND_OFF},{label:S("notifications","1 hour"),value:oi.EMAIL_SEND_HOURLY},{label:S("notifications","3 hours"),value:oi.EMAIL_SEND_3HOURLY},{label:S("notifications","1 day"),value:oi.EMAIL_SEND_DAILY},{label:S("notifications","1 week"),value:oi.EMAIL_SEND_WEEKLY}],de={id:null,label:S("notifications","None")},Re=new D,be=Re.getBrowser(),we=be.name==="Safari"||be.name==="Mobile Safari",Pe={name:"UserSettings",components:{NcCheckboxRadioSwitch:Se,NcSelect:_e,NcSettingsSection:Ce},setup(){const t=Yi(Ie("notifications","config")),s=Yi({secondary_speaker:K.getItem("secondary_speaker")==="true",secondary_speaker_device:JSON.parse(K.getItem("secondary_speaker_device"))??de}),l=ve([]),d=ke({get(){return ce.find(({value:c})=>c===t.setting_batchtime)},set({value:c}){t.setting_batchtime=c}});return{BATCHTIME_OPTIONS:ce,isSafari:we,config:t,currentBatchTime:d,devices:l,storage:s}},methods:{t:S,async updateSettings(){try{const t=new FormData;t.append("batchSetting",this.config.setting_batchtime),t.append("soundNotification",this.config.sound_notification?"yes":"no"),t.append("soundTalk",this.config.sound_talk?"yes":"no"),await Ee.post(Ne("apps/notifications/api/v2/settings"),t),Gi(S("notifications","Your settings have been updated."))}catch(t){Ii(S("notifications","An error occurred while updating your settings.")),console.error(t)}},updateLocalSettings(){try{K.setItem("secondary_speaker",this.storage.secondary_speaker),this.storage.secondary_speaker&&this.storage.secondary_speaker_device.id?K.setItem("secondary_speaker_device",JSON.stringify(this.storage.secondary_speaker_device)):K.removeItem("secondary_speaker_device"),Gi(S("notifications","Your settings have been updated."))}catch(t){Ii(S("notifications","An error occurred while updating your settings.")),console.error(t)}},async initializeDevices(){if(!(!we&&navigator?.mediaDevices?.getUserMedia&&navigator?.mediaDevices?.enumerateDevices)||this.devices.length>0)return;let t=null;try{t=await navigator.mediaDevices.getUserMedia({audio:!0}),this.devices=(await navigator.mediaDevices.enumerateDevices()??[]).filter(s=>s.kind==="audiooutput").map(s=>({id:s.deviceId,label:s.label?s.label:s.fallbackLabel})).concat([de])}catch(s){Ii(S("notifications","An error occurred while updating your settings.")),console.error("Error while requesting or initializing audio devices: ",s)}finally{t&&t.getTracks().forEach(s=>s.stop())}}}},je={class:"notification-frequency__warning"},We={key:0},Ye={class:"notification-frequency__wrapper"},Ge={for:"notification_reminder_batchtime",class:"notification-frequency__label"},Je={key:0,class:"notification-frequency__warning"};function $e(t,s,l,d,c,b){const n=Si("NcSelect"),h=Si("NcCheckboxRadioSwitch"),p=Si("NcSettingsSection");return $(),Wi(p,{name:b.t("notifications","Notifications")},{default:ci(()=>[di("div",je,[d.config.is_email_set?wi("",!0):($(),Ei("strong",We,B(b.t("notifications","You need to set up your email address before you can receive notification emails.")),1))]),di("div",Ye,[di("label",Ge,B(b.t("notifications","Send email reminders about unhandled notifications after:")),1),bi(n,{id:"notification_reminder_batchtime",modelValue:d.currentBatchTime,"onUpdate:modelValue":[s[0]||(s[0]=u=>d.currentBatchTime=u),b.updateSettings],class:"notification-frequency__select",clearable:!1,"label-outside":"",options:d.BATCHTIME_OPTIONS},null,8,["modelValue","options","onUpdate:modelValue"])]),bi(h,{modelValue:d.config.sound_notification,"onUpdate:modelValue":[s[1]||(s[1]=u=>d.config.sound_notification=u),b.updateSettings]},{default:ci(()=>[Ni(B(b.t("notifications","Play sound when a new notification arrives")),1)]),_:1},8,["modelValue","onUpdate:modelValue"]),bi(h,{modelValue:d.config.sound_talk,"onUpdate:modelValue":[s[2]||(s[2]=u=>d.config.sound_talk=u),b.updateSettings]},{default:ci(()=>[Ni(B(b.t("notifications","Play sound when a call started (requires Nextcloud Talk)")),1)]),_:1},8,["modelValue","onUpdate:modelValue"]),d.config.sound_talk?($(),Ei(ge,{key:0},[bi(h,{modelValue:d.storage.secondary_speaker,"onUpdate:modelValue":[s[3]||(s[3]=u=>d.storage.secondary_speaker=u),b.updateLocalSettings],class:"additional-margin-top",disabled:d.isSafari},{default:ci(()=>[Ni(B(b.t("notifications","Also repeat sound on a secondary speaker")),1)]),_:1},8,["modelValue","disabled","onUpdate:modelValue"]),d.isSafari?($(),Ei("div",Je,[di("strong",null,B(b.t("notifications","Selection of the speaker device is currently not supported by Safari")),1)])):wi("",!0),!d.isSafari&&d.storage.secondary_speaker?($(),Wi(n,{key:1,modelValue:d.storage.secondary_speaker_device,"onUpdate:modelValue":[s[4]||(s[4]=u=>d.storage.secondary_speaker_device=u),b.updateLocalSettings],"input-id":"device-selector-audio-output",options:d.devices,label:"label","aria-label-combobox":b.t("notifications","Select a device"),clearable:!1,placeholder:b.t("notifications","Select a device"),onOpen:b.initializeDevices},null,8,["modelValue","options","aria-label-combobox","placeholder","onOpen","onUpdate:modelValue"])):wi("",!0)],64)):wi("",!0)]),_:1},8,["name"])}const Ke=xe(Pe,[["render",$e],["__scopeId","data-v-490e4c78"]]);ye(Ke).mount("#notifications-user-settings"); //# sourceMappingURL=notifications-settings.mjs.map diff --git a/js/notifications-settings.mjs.license b/js/notifications-settings.mjs.license index cd838bb0a..e11d169dc 100644 --- a/js/notifications-settings.mjs.license +++ b/js/notifications-settings.mjs.license @@ -8,5 +8,5 @@ This file is generated from multiple sources. Included packages: - version: 5.0.0-dev.0 - license: AGPL-3.0-only - ua-parser-js - - version: 2.0.5 + - version: 2.0.6 - license: AGPL-3.0-or-later diff --git a/js/notifications-settings.mjs.map b/js/notifications-settings.mjs.map index 43faed299..13753e7f1 100644 --- a/js/notifications-settings.mjs.map +++ b/js/notifications-settings.mjs.map @@ -1 +1 @@ -{"version":3,"file":"notifications-settings.mjs","sources":["../node_modules/ua-parser-js/src/main/ua-parser.mjs","../src/views/UserSettings.vue","../src/settings.js"],"sourcesContent":["// Generated ESM version of ua-parser-js\n// DO NOT EDIT THIS FILE!\n// Source: /src/main/ua-parser.js\n\n/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v2.0.5\n Copyright © 2012-2025 Faisal Salman \n AGPLv3 License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://uaparser.dev\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n/* jshint esversion: 6 */ \n/* globals window */\n\n\n \n //////////////\n // Constants\n /////////////\n\n var LIBVERSION = '2.0.5',\n UA_MAX_LENGTH = 500,\n USER_AGENT = 'user-agent',\n EMPTY = '',\n UNKNOWN = '?',\n\n // typeof\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n\n // properties\n UA_BROWSER = 'browser',\n UA_CPU = 'cpu',\n UA_DEVICE = 'device',\n UA_ENGINE = 'engine',\n UA_OS = 'os',\n UA_RESULT = 'result',\n \n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n MAJOR = 'major',\n MODEL = 'model',\n\n // device types\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n XR = 'xr',\n EMBEDDED = 'embedded',\n\n // browser types\n INAPP = 'inapp',\n\n // client hints\n BRANDS = 'brands',\n FORMFACTORS = 'formFactors',\n FULLVERLIST = 'fullVersionList',\n PLATFORM = 'platform',\n PLATFORMVER = 'platformVersion',\n BITNESS = 'bitness',\n CH_HEADER = 'sec-ch-ua',\n CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list',\n CH_HEADER_ARCH = CH_HEADER + '-arch',\n CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS,\n CH_HEADER_FORM_FACTORS = CH_HEADER + '-form-factors',\n CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE,\n CH_HEADER_MODEL = CH_HEADER + '-' + MODEL,\n CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM,\n CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',\n CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS],\n\n // device vendors\n AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LENOVO = 'Lenovo',\n HONOR = 'Honor',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n NVIDIA = 'Nvidia',\n ONEPLUS = 'OnePlus',\n OPPO = 'OPPO',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n\n // browsers\n CHROME = 'Chrome',\n CHROMIUM = 'Chromium',\n CHROMECAST = 'Chromecast',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n OPERA = 'Opera',\n FACEBOOK = 'Facebook',\n SOGOU = 'Sogou',\n\n PREFIX_MOBILE = 'Mobile ',\n SUFFIX_BROWSER = ' Browser',\n\n // os\n WINDOWS = 'Windows';\n \n var isWindow = typeof window !== UNDEF_TYPE,\n NAVIGATOR = (isWindow && window.navigator) ? \n window.navigator : \n undefined,\n NAVIGATOR_UADATA = (NAVIGATOR && NAVIGATOR.userAgentData) ? \n NAVIGATOR.userAgentData : \n undefined;\n\n ///////////\n // Helper\n //////////\n\n var extend = function (defaultRgx, extensions) {\n var mergedRgx = {};\n var extraRgx = extensions;\n if (!isExtensions(extensions)) {\n extraRgx = {};\n for (var i in extensions) {\n for (var j in extensions[i]) {\n extraRgx[j] = extensions[i][j].concat(extraRgx[j] ? extraRgx[j] : []);\n }\n }\n }\n for (var k in defaultRgx) {\n mergedRgx[k] = extraRgx[k] && extraRgx[k].length % 2 === 0 ? extraRgx[k].concat(defaultRgx[k]) : defaultRgx[k];\n }\n return mergedRgx;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n for (var i in str1) {\n if (lowerize(str2) == lowerize(str1[i])) return true;\n }\n return false;\n }\n return isString(str1) ? lowerize(str2) == lowerize(str1) : false;\n },\n isExtensions = function (obj, deep) {\n for (var prop in obj) {\n return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);\n }\n },\n isString = function (val) {\n return typeof val === STR_TYPE;\n },\n itemListToArray = function (header) {\n if (!header) return undefined;\n var arr = [];\n var tokens = strip(/\\\\?\\\"/g, header).split(',');\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].indexOf(';') > -1) {\n var token = trim(tokens[i]).split(';v=');\n arr[i] = { brand : token[0], version : token[1] };\n } else {\n arr[i] = trim(tokens[i]);\n }\n }\n return arr;\n },\n lowerize = function (str) {\n return isString(str) ? str.toLowerCase() : str;\n },\n majorize = function (version) {\n return isString(version) ? strip(/[^\\d\\.]/g, version).split('.')[0] : undefined;\n },\n setProps = function (arr) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n var propName = arr[i];\n if (typeof propName == OBJ_TYPE && propName.length == 2) {\n this[propName[0]] = propName[1];\n } else {\n this[propName] = undefined;\n }\n }\n return this;\n },\n strip = function (pattern, str) {\n return isString(str) ? str.replace(pattern, EMPTY) : str;\n },\n stripQuotes = function (str) {\n return strip(/\\\\?\\\"/g, str); \n },\n trim = function (str, len) {\n if (isString(str)) {\n str = strip(/^\\s\\s*/, str);\n return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n if(!ua || !arrays) return;\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length >= 3) {\n // Check whether q[1] FUNCTION or REGEX\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n if (q.length > 3) {\n this[q[0]] = match ? q[1].apply(this, q.slice(2)) : undefined;\n } else {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n }\n } else {\n if (q.length == 3) {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n } else if (q.length == 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n } else if (q.length > 4) {\n this[q[0]] = match ? q[3].apply(this, [match.replace(q[1], q[2])].concat(q.slice(4))) : undefined;\n }\n }\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n var windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.51': '3.51',\n 'NT 4.0': '4.0',\n '2000' : ['5.0', '5.01'],\n 'XP' : ['5.1', '5.2'],\n 'Vista' : '6.0',\n '7' : '6.1',\n '8' : '6.2',\n '8.1' : '6.3',\n '10' : ['6.4', '10.0'],\n 'NT' : ''\n },\n \n formFactorsMap = {\n 'embedded' : 'Automotive',\n 'mobile' : 'Mobile',\n 'tablet' : ['Tablet', 'EInk'],\n 'smarttv' : 'TV',\n 'wearable' : 'Watch',\n 'xr' : ['VR', 'XR'],\n '?' : ['Desktop', 'Unknown'],\n '*' : undefined\n },\n\n browserHintsMap = {\n 'Chrome' : 'Google Chrome',\n 'Edge' : 'Microsoft Edge',\n 'Edge WebView2' : 'Microsoft Edge WebView2',\n 'Chrome WebView': 'Android WebView',\n 'Chrome Headless':'HeadlessChrome',\n 'Huawei Browser': 'HuaweiBrowser',\n 'MIUI Browser' : 'Miui Browser',\n 'Opera Mobi' : 'OperaMobile',\n 'Yandex' : 'YaBrowser'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var defaultRegexes = {\n\n browser : [[\n\n // Most common regardless engine\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n /webview.+edge\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, EDGE+' WebView']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i \n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /\\b(?:mxbrowser|mxios|myie2)\\/?([-\\w\\.]*)\\b/i // Maxthon\n ], [VERSION, [NAME, 'Maxthon']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim(?:browser|boat|jet))[\\/ ]?([\\d\\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(heytap|ovi|115|surf)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi/115/Surf\n /(ecosia|weibo)(?:__| \\w+@)([\\d\\.]+)/i // Ecosia/Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UCBrowser']], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart ' + LENOVO + SUFFIX_BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + FIREFOX]], [\n /\\bqihoobrowser\\/?([\\w\\.]*)/i // 360\n ], [VERSION, [NAME, '360']], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, SOGOU + ' Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, SOGOU + ' Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345(?=browser|chrome|explorer))\\w*[\\/ ]?v?([\\w\\.]+)/i // QQ/2345\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq)/i // LieBao Browser/Rekonq\n ], [NAME], [\n /ome\\/([\\w\\.]+) \\w* ?(iron) saf/i, // Iron\n /ome\\/([\\w\\.]+).+qihu (360)[es]e/i // 360\n ], [VERSION, NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]], [\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /(daum)apps[\\/ ]([\\w\\.]+)/i, // Daum App\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(instagram|snapchat|klarna)[\\/ ]([-\\w\\.]+)/i // Instagram/Snapchat/Klarna\n ], [NAME, VERSION, [TYPE, INAPP]], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME, [TYPE, INAPP]], [\n /(zalo(?:app)?)[\\/\\sa-z]*([\\w\\.-]+)/i // Zalo \n ], [[NAME, /(.+)/, 'Zalo'], VERSION, [TYPE, INAPP]], [\n\n /(chromium)[\\/ ]([-\\w\\.]+)/i // Chromium\n ], [NAME, VERSION], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n /wv\\).+chrome\\/([\\w\\.]+).+edgw\\//i // Edge WebView2\n ], [VERSION, [NAME, EDGE+' WebView2']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [\n\n /chrome\\/([\\w\\.]+) mobile/i // Chrome Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile(?:\\/\\w+ | ?)safari/i // Safari Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Safari']], [\n /iphone .*mobile(?:\\/\\w+ | ?)safari/i\n ], [[NAME, PREFIX_MOBILE + 'Safari']], [\n /version\\/([\\w\\.\\,]+) .*(safari)/i // Safari\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, '1']], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i // Firefox Mobile\n ], [[NAME, PREFIX_MOBILE + FIREFOX], VERSION], [\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic|librewolf)\\/([\\w\\.]+)/i // Wolvic/LibreWolf\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird\n /\\b(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /[^\\d\\.]+./, EMPTY]]\n ],\n\n cpu : [[\n\n /\\b((amd|x|x86[-_]?|wow|win)64)\\b/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i, // IA32 (quicktime)\n /\\b((i[346]|x)86)(pc)?\\b/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?[89]e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /( (ce|mobile); ppc;|\\/[\\w\\.]+arm\\b)/i\n ], [[ARCHITECTURE, 'arm']], [\n\n / sun4\\w[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n /\\b(avr32|ia64(?=;)|68k(?=\\))|\\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\\b|pa-risc)/i,\n /((ppc|powerpc)(64)?)( mac|;|\\))/i, // PowerPC\n /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i // Alpha\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n /winnt.+\\[axp/i\n ], [[ARCHITECTURE, 'alpha']]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr]|browser)[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Honor\n /\\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\\)|;)/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, TABLET]], [\n /honor([-\\w ]+)[;\\)]/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\\w\\. ]*(?= bui|\\)))\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /oid[^\\)]+; (2[\\dbc]{4}(182|283|rp\\w{2})[cgl]|m2105k81a?c)(?: bui|\\))/i,\n /\\b((?:red)?mi[-_ ]?pad[\\w- ]*)(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\\))/i, // Xiaomi Mi\n / ([\\w ]+) miui\\/v?\\d/i\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n\n // OnePlus\n /droid.+; (cph2[3-6]\\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\\d|p[g-k]\\w[1m]10)\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [\n /\\b(opd2(\\d{3}a?))(?: bui|\\))/i\n ], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['203', '304', '403', '404', '413', '415'], '*' : OPPO }], [TYPE, TABLET]], [\n\n // BLU\n /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\\w\\+ ]*)(?: bui|\\))/i // Vivo series\n ], [MODEL, [VENDOR, 'BLU'], [TYPE, MOBILE]], [ \n\n // Vivo\n /; vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\\d{3,4}(?:f[cu]|xu|[av])|yt\\d?-[jx]?\\d+[lfmx])( bui|;|\\)|\\/)/i,\n /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\\w- ]+?)|tb[\\w-]{6,7})( bui|;|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [ \n /lenovo[-_ ]?([-\\w ]+?)(?: bui|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ]([\\w\\s]+)(\\)| bui)/i,\n /((?:moto(?! 360)[-\\w\\(\\) ]+|xt\\d{3,4}[cgkosw\\+]?[-\\d]*|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Nokia\n /(nokia) (t[12][01])/i\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n /(?:maemo|nokia).*(n900|lumia \\d+|rm-\\d+)/i,\n /nokia[-_ ]?(([-\\w\\. ]*))/i\n ], [[MODEL, /_/g, ' '], [TYPE, MOBILE], [VENDOR, 'Nokia']], [\n\n // Google\n /(pixel (c|tablet))\\b/i // Google Pixel C/Tablet\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n // Google Pixel\n /droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\\d ]*a?( pro)?( xl)?( fold)?( \\(5g\\))?)( bui|\\))/i\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n /(google) (pixelbook( go)?)/i\n ], [VENDOR, MODEL], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-\\w\\w\\d\\d)(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /tcl (xess p17aa)/i,\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n /droid [\\w\\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, MOBILE]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Energizer\n /; (energy ?\\w+)(?: bui|\\))/i,\n /; energizer ([\\w ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [\n\n // Cat\n /; cat (b35);/i,\n /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [\n\n // Smartfren\n /((?:new )?andromax[\\w- ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // Archos\n /; (x67 5g|tikeasy \\w+|ac[1789]\\d\\w+)( b|\\))/i,\n /archos ?(5|gamepad2?|([\\w ]*[t1789]|hello) ?\\d+[\\w ]*)( b|\\))/i\n ], [MODEL, [VENDOR, 'Archos'], [TYPE, TABLET]], [\n /archos ([\\w ]+)( b|\\))/i,\n /; (ac[3-6]\\d\\w{2,8})( b|\\))/i \n ], [MODEL, [VENDOR, 'Archos'], [TYPE, MOBILE]], [\n\n // HMD\n /; (n159v)/i\n ], [MODEL, [VENDOR, 'HMD'], [TYPE, MOBILE]], [\n\n // MIXED\n /(imo) (tab \\w+)/i, // IMO\n /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i // Infinix XPad / Tecno\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan\n /; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\\w\\+ ]+?)(?: bui|\\)|; r)/i, // BLU/HMD/IMO/Infinix/Lava/OnePlus/TCL\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(oppo) ?([\\w ]+) bui/i, // OPPO\n /droid[^;]+; (philips)[_ ]([sv-x][\\d]{3,4}[xz]?)/i // Philips\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i // Kindle\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /((?:tegranote|shield t(?!.+d tv))[\\w- ]*?)(?: b|\\))/i // Nvidia Tablets\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /(philips)[\\w ]+tv/i, // Philips\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(vizio)(?: |.+model\\/)(\\w+-\\w+)/i, // Vizio\n /tcast.+(lg)e?. ([-\\w]+)/i // LG SmartTV\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/chromecast/i // Google Chromecast Third Generation\n ], [[MODEL, CHROMECAST+' Third Generation'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/([^/]*)/i // Google Chromecast with specific device type\n ], [[MODEL, /^/, 'Chromecast '], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /fuchsia.*crkey/i // Google Chromecast Nest Hub\n ], [[MODEL, CHROMECAST+' Nest Hub'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast, Linux-based or unknown\n ], [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /(portaltv)/i // Facebook Portal TV\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /(shield \\w+ tv)/i // Nvidia Shield TV\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mi(tv|box)-?\\w+) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, /.+\\/(\\w+)/, '$1', strMapper, {'LG':'lge'}], [MODEL, trim], [TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(playstation \\w+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n /(ouya)/i, // Ouya\n /(nintendo) (\\w+)/i, // Nintendo\n /(retroid) (pocket ([^\\)]+))/i // Retroid Pocket\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield)( bui|\\))/i // Nvidia Portable\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[0156][fnuw]?s?|gear live)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i, // Pebble\n /(asus|google|lg|oppo) ((pixel |zen)?watch[\\w ]*)( bui|\\))/i // Asus ZenWatch / LG Watch / Pixel Watch\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(ow(?:19|20)?we?[1-3]{1,3})/i // Oppo Watch\n ], [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /(opwwe\\d{3})/i // OnePlus Watch\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]], [\n /(moto 360)/i // Motorola 360\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]], [\n /(smartwatch 3)/i // Sony SmartWatch\n ], [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]], [\n /(g watch r)/i // LG G Watch R\n ], [MODEL, [VENDOR, LG], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\n ///////////////////\n // XR\n ///////////////////\n\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, XR]], [\n /(pico) ([\\w ]+) os\\d/i // Pico\n ], [VENDOR, MODEL, [TYPE, XR]], [\n /(quest( \\d| pro)?s?).+vr/i // Meta Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]], [\n /mobile vr; rv.+firefox/i // Unidentifiable VR device using Firefox Reality / Wolvic\n ], [[TYPE, XR]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n /(homepod).+mac os/i // Apple HomePod\n ], [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]], [\n /windows iot/i // Unidentifiable embedded device using Windows IoT\n ], [[TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid.+; ([\\w- ]+) (4k|android|smart|google)[- ]?tv/i // Unidentifiable SmartTV\n ], [MODEL, [TYPE, SMARTTV]], [\n /\\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\\w ]+safari)\\b/i\n ], [[TYPE, SMARTTV]], [\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+?(mobile|vr|\\d) safari/i\n ], [MODEL, [TYPE, strMapper, { 'mobile' : 'Mobile', 'xr' : 'VR', '*' : TABLET }]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /droid .+?; ([\\w\\. -]+)( bui|\\))/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /(arkweb)\\/([\\w\\.]+)/i // ArkWeb\n ], [NAME, VERSION], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n\n /\\b(libweb)/i // LibWeb\n ], [NAME, VERSION], [\n /ladybird\\//i\n ], [[NAME, 'LibWeb']], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /(windows nt) (6\\.[23]); arm/i // Windows RT\n ], [[NAME, /N/, 'R'], [VERSION, strMapper, windowsVersionMap]], [\n /(windows (?:phone|mobile|iot))(?: os)?[\\/ ]?([\\d\\.]*( se)?)/i, // Windows IoT/Mobile/Phone\n // Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11\n /(windows)[\\/ ](1[01]|2000|3\\.1|7|8(\\.1)?|9[58]|me|server 20\\d\\d( r2)?|vista|xp)/i\n ], [NAME, VERSION], [\n /windows nt ?([\\d\\.\\)]*)(?!.+xbox)/i,\n /\\bwin(?=3| ?9|n)(?:nt| 9x )?([\\d\\.;]*)/i\n ], [[VERSION, /(;|\\))/g, '', strMapper, windowsVersionMap], [NAME, WINDOWS]], [\n /(windows ce)\\/?([\\d\\.]*)/i // Windows CE\n ], [NAME, VERSION], [\n\n // iOS/macOS\n /[adehimnop]{4,7}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+(haiku|morphos))/i // Mac OS\n ], [[NAME, 'macOS'], [VERSION, /_/g, '.']], [\n\n // Google Chromecast\n /android ([\\d\\.]+).*crkey/i // Google Chromecast, Android-based\n ], [VERSION, [NAME, CHROMECAST + ' Android']], [\n /fuchsia.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Fuchsia-based\n ], [VERSION, [NAME, CHROMECAST + ' Fuchsia']], [\n /crkey\\/([\\d\\.]+).*devicetype\\/smartspeaker/i // Google Chromecast, Linux-based Smart Speaker\n ], [VERSION, [NAME, CHROMECAST + ' SmartSpeaker']], [\n /linux.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Legacy Linux-based\n ], [VERSION, [NAME, CHROMECAST + ' Linux']], [\n /crkey\\/([\\d\\.]+)/i // Google Chromecast, unknown\n ], [VERSION, [NAME, CHROMECAST]], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86)/i // Android-x86\n ], [VERSION, NAME], [ \n /(ubuntu) ([\\w\\.]+) like android/i // Ubuntu Touch\n ], [[NAME, /(.+)/, '$1 Touch'], VERSION], [\n /(harmonyos)[\\/ ]?([\\d\\.]*)/i, // HarmonyOS\n // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen\n /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\\w*[-\\/\\.; ]?([\\d\\.]*)/i\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i, // WebOS\n /webos(?:[ \\/]?|\\.tv-20(?=2[2-9]))(\\d[\\d\\.]*)/i\n ], [VERSION, [NAME, 'webOS']], [\n /web0s;.+?(?:chr[o0]me|safari)\\/(\\d+)/i\n // https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine\n ], [[VERSION, strMapper, {'25':'120','24':'108','23':'94','22':'87','6':'79','5':'68','4':'53','3':'38','2':'538','1':'537','*':'TV'}], [NAME, 'webOS']], [ \n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google ChromeOS\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, \"Chrome OS\"], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) (\\w+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n /(pico) .+os([\\w\\.]+)/i, // Pico\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /linux.+(mint)[\\/\\(\\) ]?([\\w\\.]*)/i, // Mint\n /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\\d\\.]*)/i, // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /\\b(aix)[; ]([1-9\\.]{0,4})/i, // AIX\n /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\\w*| ?)([\\w\\.]*)/i, // Hurd/Linux/MorphOS\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) ?(r\\d)?/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\d\\.]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /\\b(beos|os\\/2|amigaos|openvms|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Factories\n ////////////////\n\n var defaultProps = (function () {\n var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};\n setProps.call(props.init, [\n [UA_BROWSER, [NAME, VERSION, MAJOR, TYPE]],\n [UA_CPU, [ARCHITECTURE]],\n [UA_DEVICE, [TYPE, MODEL, VENDOR]],\n [UA_ENGINE, [NAME, VERSION]],\n [UA_OS, [NAME, VERSION]]\n ]);\n setProps.call(props.isIgnore, [\n [UA_BROWSER, [VERSION, MAJOR]],\n [UA_ENGINE, [VERSION]],\n [UA_OS, [VERSION]]\n ]);\n setProps.call(props.isIgnoreRgx, [\n [UA_BROWSER, / ?browser$/i],\n [UA_OS, / ?os$/i]\n ]);\n setProps.call(props.toString, [\n [UA_BROWSER, [NAME, VERSION]],\n [UA_CPU, [ARCHITECTURE]],\n [UA_DEVICE, [VENDOR, MODEL]],\n [UA_ENGINE, [NAME, VERSION]],\n [UA_OS, [NAME, VERSION]]\n ]);\n return props;\n })();\n\n var createIData = function (item, itemType) {\n\n var init_props = defaultProps.init[itemType],\n is_ignoreProps = defaultProps.isIgnore[itemType] || 0,\n is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0,\n toString_props = defaultProps.toString[itemType] || 0;\n\n function IData () {\n setProps.call(this, init_props);\n }\n\n IData.prototype.getItem = function () {\n return item;\n };\n\n IData.prototype.withClientHints = function () {\n\n // nodejs / non-client-hints browsers\n if (!NAVIGATOR_UADATA) {\n return item\n .parseCH()\n .get();\n }\n\n // browsers based on chromium 85+\n return NAVIGATOR_UADATA\n .getHighEntropyValues(CH_ALL_VALUES)\n .then(function (res) {\n return item\n .setCH(new UACHData(res, false))\n .parseCH()\n .get();\n });\n };\n\n IData.prototype.withFeatureCheck = function () {\n return item.detectFeature().get();\n };\n\n if (itemType != UA_RESULT) {\n IData.prototype.is = function (strToCheck) {\n var is = false;\n for (var i in this) {\n if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {\n is = true;\n if (strToCheck != UNDEF_TYPE) break;\n } else if (strToCheck == UNDEF_TYPE && is) {\n is = !is;\n break;\n }\n }\n return is;\n };\n IData.prototype.toString = function () {\n var str = EMPTY;\n for (var i in toString_props) {\n if (typeof(this[toString_props[i]]) !== UNDEF_TYPE) {\n str += (str ? ' ' : EMPTY) + this[toString_props[i]];\n }\n }\n return str || UNDEF_TYPE;\n };\n }\n\n if (!NAVIGATOR_UADATA) {\n IData.prototype.then = function (cb) { \n var that = this;\n var IDataResolve = function () {\n for (var prop in that) {\n if (that.hasOwnProperty(prop)) {\n this[prop] = that[prop];\n }\n }\n };\n IDataResolve.prototype = {\n is : IData.prototype.is,\n toString : IData.prototype.toString\n };\n var resolveData = new IDataResolve();\n cb(resolveData);\n return resolveData;\n };\n }\n\n return new IData();\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n function UACHData (uach, isHttpUACH) {\n uach = uach || {};\n setProps.call(this, CH_ALL_VALUES);\n if (isHttpUACH) {\n setProps.call(this, [\n [BRANDS, itemListToArray(uach[CH_HEADER])],\n [FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],\n [MOBILE, /\\?1/.test(uach[CH_HEADER_MOBILE])],\n [MODEL, stripQuotes(uach[CH_HEADER_MODEL])],\n [PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],\n [PLATFORMVER, stripQuotes(uach[CH_HEADER_PLATFORM_VER])],\n [ARCHITECTURE, stripQuotes(uach[CH_HEADER_ARCH])],\n [FORMFACTORS, itemListToArray(uach[CH_HEADER_FORM_FACTORS])],\n [BITNESS, stripQuotes(uach[CH_HEADER_BITNESS])]\n ]);\n } else {\n for (var prop in uach) {\n if(this.hasOwnProperty(prop) && typeof uach[prop] !== UNDEF_TYPE) this[prop] = uach[prop];\n }\n }\n }\n\n function UAItem (itemType, ua, rgxMap, uaCH) {\n\n this.get = function (prop) {\n if (!prop) return this.data;\n return this.data.hasOwnProperty(prop) ? this.data[prop] : undefined;\n };\n\n this.set = function (prop, val) {\n this.data[prop] = val;\n return this;\n };\n\n this.setCH = function (ch) {\n this.uaCH = ch;\n return this;\n };\n\n this.detectFeature = function () {\n if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {\n switch (this.itemType) {\n case UA_BROWSER:\n // Brave-specific detection\n if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == FUNC_TYPE) {\n this.set(NAME, 'Brave');\n }\n break;\n case UA_DEVICE:\n // Chrome-specific detection: check for 'mobile' value of navigator.userAgentData\n if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (this.get(MODEL) == 'Macintosh' && NAVIGATOR && typeof NAVIGATOR.standalone !== UNDEF_TYPE && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {\n this.set(MODEL, 'iPad')\n .set(TYPE, TABLET);\n }\n break;\n case UA_OS:\n // Chrome-specific detection: check for 'platform' value of navigator.userAgentData\n if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {\n this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);\n }\n break;\n case UA_RESULT:\n var data = this.data;\n var detect = function (itemType) {\n return data[itemType]\n .getItem()\n .detectFeature()\n .get();\n };\n this.set(UA_BROWSER, detect(UA_BROWSER))\n .set(UA_CPU, detect(UA_CPU))\n .set(UA_DEVICE, detect(UA_DEVICE))\n .set(UA_ENGINE, detect(UA_ENGINE))\n .set(UA_OS, detect(UA_OS));\n }\n }\n return this;\n };\n\n this.parseUA = function () {\n if (this.itemType != UA_RESULT) {\n rgxMapper.call(this.data, this.ua, this.rgxMap);\n }\n if (this.itemType == UA_BROWSER) {\n this.set(MAJOR, majorize(this.get(VERSION)));\n }\n return this;\n };\n\n this.parseCH = function () {\n var uaCH = this.uaCH,\n rgxMap = this.rgxMap;\n \n switch (this.itemType) {\n case UA_BROWSER:\n case UA_ENGINE:\n var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;\n if (brands) {\n for (var i=0; i= 13 ? '11' : '10');\n this.set(NAME, osName)\n .set(VERSION, osVersion);\n }\n // Xbox-Specific Detection\n if (this.get(NAME) == WINDOWS && uaCH[MODEL] == 'Xbox') {\n this.set(NAME, 'Xbox')\n .set(VERSION, undefined);\n } \n break;\n case UA_RESULT:\n var data = this.data;\n var parse = function (itemType) {\n return data[itemType]\n .getItem()\n .setCH(uaCH)\n .parseCH()\n .get();\n };\n this.set(UA_BROWSER, parse(UA_BROWSER))\n .set(UA_CPU, parse(UA_CPU))\n .set(UA_DEVICE, parse(UA_DEVICE))\n .set(UA_ENGINE, parse(UA_ENGINE))\n .set(UA_OS, parse(UA_OS));\n }\n return this;\n };\n\n setProps.call(this, [\n ['itemType', itemType],\n ['ua', ua],\n ['uaCH', uaCH],\n ['rgxMap', rgxMap],\n ['data', createIData(this, itemType)]\n ]);\n\n return this;\n }\n\n function UAParser (ua, extensions, headers) {\n\n if (typeof ua === OBJ_TYPE) {\n if (isExtensions(ua, true)) {\n if (typeof extensions === OBJ_TYPE) {\n headers = extensions; // case UAParser(extensions, headers) \n }\n extensions = ua; // case UAParser(extensions)\n } else {\n headers = ua; // case UAParser(headers)\n extensions = undefined;\n }\n ua = undefined;\n } else if (typeof ua === STR_TYPE && !isExtensions(extensions, true)) {\n headers = extensions; // case UAParser(ua, headers)\n extensions = undefined;\n }\n\n if (headers) {\n if (typeof headers.append === FUNC_TYPE) {\n // Convert Headers object into a plain object\n var kv = {};\n headers.forEach(function (v, k) { kv[String(k).toLowerCase()] = v; });\n headers = kv;\n } else {\n // Normalize headers field name into lowercase\n var normalized = {};\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n normalized[String(header).toLowerCase()] = headers[header];\n }\n }\n headers = normalized;\n }\n }\n \n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions, headers).getResult();\n }\n\n var userAgent = typeof ua === STR_TYPE ? ua : // Passed user-agent string\n (headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers\n ((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent\n EMPTY)), // empty string\n\n httpUACH = new UACHData(headers, true),\n regexMap = extensions ? \n extend(defaultRegexes, extensions) : \n defaultRegexes,\n\n createItemFunc = function (itemType) {\n if (itemType == UA_RESULT) {\n return function () {\n return new UAItem(itemType, userAgent, regexMap, httpUACH)\n .set('ua', userAgent)\n .set(UA_BROWSER, this.getBrowser())\n .set(UA_CPU, this.getCPU())\n .set(UA_DEVICE, this.getDevice())\n .set(UA_ENGINE, this.getEngine())\n .set(UA_OS, this.getOS())\n .get();\n };\n } else {\n return function () {\n return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)\n .parseUA()\n .get();\n };\n }\n };\n \n // public methods\n setProps.call(this, [\n ['getBrowser', createItemFunc(UA_BROWSER)],\n ['getCPU', createItemFunc(UA_CPU)],\n ['getDevice', createItemFunc(UA_DEVICE)],\n ['getEngine', createItemFunc(UA_ENGINE)],\n ['getOS', createItemFunc(UA_OS)],\n ['getResult', createItemFunc(UA_RESULT)],\n ['getUA', function () { return userAgent; }],\n ['setUA', function (ua) {\n if (isString(ua))\n userAgent = ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n }]\n ])\n .setUA(userAgent);\n\n return this;\n }\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n export {UAParser};","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport UserSettings from './views/UserSettings.vue'\n\n// Styles\nimport '@nextcloud/dialogs/style.css'\n\nexport default createApp(UserSettings).mount('#notifications-user-settings')\n"],"names":["LIBVERSION","UA_MAX_LENGTH","USER_AGENT","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","UA_BROWSER","UA_CPU","UA_DEVICE","UA_ENGINE","UA_OS","UA_RESULT","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","MAJOR","MODEL","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","XR","EMBEDDED","INAPP","BRANDS","FORMFACTORS","FULLVERLIST","PLATFORM","PLATFORMVER","BITNESS","CH_HEADER","CH_HEADER_FULL_VER_LIST","CH_HEADER_ARCH","CH_HEADER_BITNESS","CH_HEADER_FORM_FACTORS","CH_HEADER_MOBILE","CH_HEADER_MODEL","CH_HEADER_PLATFORM","CH_HEADER_PLATFORM_VER","CH_ALL_VALUES","AMAZON","APPLE","ASUS","BLACKBERRY","GOOGLE","HUAWEI","LENOVO","HONOR","LG","MICROSOFT","MOTOROLA","NVIDIA","ONEPLUS","OPPO","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","CHROME","CHROMIUM","CHROMECAST","EDGE","FIREFOX","OPERA","FACEBOOK","SOGOU","PREFIX_MOBILE","SUFFIX_BROWSER","WINDOWS","isWindow","NAVIGATOR","NAVIGATOR_UADATA","extend","defaultRgx","extensions","mergedRgx","extraRgx","isExtensions","i","j","k","enumerize","arr","enums","has","str1","str2","lowerize","isString","obj","deep","prop","val","itemListToArray","header","tokens","strip","token","trim","str","majorize","version","setProps","propName","pattern","stripQuotes","len","rgxMapper","ua","arrays","p","q","matches","match","regex","props","strMapper","map","windowsVersionMap","formFactorsMap","browserHintsMap","defaultRegexes","defaultProps","createIData","item","itemType","init_props","is_ignoreProps","is_ignoreRgx","toString_props","IData","res","UACHData","strToCheck","is","cb","that","IDataResolve","resolveData","uach","isHttpUACH","UAItem","rgxMap","uaCH","ch","data","detect","brands","prevName","brandName","brandVersion","archName","reParse","ff","idx","osName","osVersion","parse","UAParser","headers","kv","v","normalized","userAgent","httpUACH","regexMap","createItemFunc","EmailFrequency","BATCHTIME_OPTIONS","t","EMPTY_DEVICE_OPTION","parser","browser","isSafari","_sfc_main","NcCheckboxRadioSwitch","NcSelect","NcSettingsSection","config","reactive","loadState","storage","BrowserStorage","devices","ref","currentBatchTime","computed","value","form","axios","generateOcsUrl","showSuccess","error","showError","stream","device","track","_hoisted_1","_hoisted_3","_createBlock","_component_NcSettingsSection","$options","_createElementVNode","$setup","_openBlock","_createElementBlock","_hoisted_4","_toDisplayString","_createVNode","_component_NcSelect","$event","_component_NcCheckboxRadioSwitch","_cache","_Fragment","_hoisted_5","createApp","UserSettings"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"notifications-settings.mjs","sources":["../node_modules/ua-parser-js/src/main/ua-parser.mjs","../src/views/UserSettings.vue","../src/settings.js"],"sourcesContent":["// Generated ESM version of ua-parser-js\n// DO NOT EDIT THIS FILE!\n// Source: /src/main/ua-parser.js\n\n/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v2.0.6\n Copyright © 2012-2025 Faisal Salman \n AGPLv3 License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://uaparser.dev\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n/* jshint esversion: 6 */ \n/* globals window */\n\n\n \n //////////////\n // Constants\n /////////////\n\n var LIBVERSION = '2.0.6',\n UA_MAX_LENGTH = 500,\n USER_AGENT = 'user-agent',\n EMPTY = '',\n UNKNOWN = '?',\n TYPEOF = {\n FUNCTION : 'function',\n OBJECT : 'object',\n STRING : 'string',\n UNDEFINED : 'undefined'\n },\n\n // properties\n BROWSER = 'browser',\n CPU = 'cpu',\n DEVICE = 'device',\n ENGINE = 'engine',\n OS = 'os',\n RESULT = 'result',\n\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n MAJOR = 'major',\n MODEL = 'model',\n\n // device types\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n XR = 'xr',\n EMBEDDED = 'embedded',\n\n // browser types\n INAPP = 'inapp',\n\n // client hints\n BRANDS = 'brands',\n FORMFACTORS = 'formFactors',\n FULLVERLIST = 'fullVersionList',\n PLATFORM = 'platform',\n PLATFORMVER = 'platformVersion',\n BITNESS = 'bitness',\n CH = 'sec-ch-ua',\n CH_FULL_VER_LIST= CH + '-full-version-list',\n CH_ARCH = CH + '-arch',\n CH_BITNESS = CH + '-' + BITNESS,\n CH_FORM_FACTORS = CH + '-form-factors',\n CH_MOBILE = CH + '-' + MOBILE,\n CH_MODEL = CH + '-' + MODEL,\n CH_PLATFORM = CH + '-' + PLATFORM,\n CH_PLATFORM_VER = CH_PLATFORM + '-version',\n CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS],\n\n // device vendors\n AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LENOVO = 'Lenovo',\n HONOR = 'Honor',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n NVIDIA = 'Nvidia',\n ONEPLUS = 'OnePlus',\n OPPO = 'OPPO',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n\n // browsers\n CHROME = 'Chrome',\n CHROMIUM = 'Chromium',\n CHROMECAST = 'Chromecast',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n OPERA = 'Opera',\n FACEBOOK = 'Facebook',\n SOGOU = 'Sogou',\n\n PREFIX_MOBILE = 'Mobile ',\n SUFFIX_BROWSER = ' Browser',\n\n // os\n WINDOWS = 'Windows';\n \n var isWindow = typeof window !== TYPEOF.UNDEFINED,\n NAVIGATOR = (isWindow && window.navigator) ? \n window.navigator : \n undefined,\n NAVIGATOR_UADATA = (NAVIGATOR && NAVIGATOR.userAgentData) ? \n NAVIGATOR.userAgentData : \n undefined;\n\n ///////////\n // Helper\n //////////\n\n var extend = function (defaultRgx, extensions) {\n var mergedRgx = {};\n var extraRgx = extensions;\n if (!isExtensions(extensions)) {\n extraRgx = {};\n for (var i in extensions) {\n for (var j in extensions[i]) {\n extraRgx[j] = extensions[i][j].concat(extraRgx[j] ? extraRgx[j] : []);\n }\n }\n }\n for (var k in defaultRgx) {\n mergedRgx[k] = extraRgx[k] && extraRgx[k].length % 2 === 0 ? extraRgx[k].concat(defaultRgx[k]) : defaultRgx[k];\n }\n return mergedRgx;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n for (var i in str1) {\n if (lowerize(str2) == lowerize(str1[i])) return true;\n }\n return false;\n }\n return isString(str1) ? lowerize(str2) == lowerize(str1) : false;\n },\n isExtensions = function (obj, deep) {\n for (var prop in obj) {\n return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);\n }\n },\n isString = function (val) {\n return typeof val === TYPEOF.STRING;\n },\n itemListToArray = function (header) {\n if (!header) return undefined;\n var arr = [];\n var tokens = strip(/\\\\?\\\"/g, header).split(',');\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].indexOf(';') > -1) {\n var token = trim(tokens[i]).split(';v=');\n arr[i] = { brand : token[0], version : token[1] };\n } else {\n arr[i] = trim(tokens[i]);\n }\n }\n return arr;\n },\n lowerize = function (str) {\n return isString(str) ? str.toLowerCase() : str;\n },\n majorize = function (version) {\n return isString(version) ? strip(/[^\\d\\.]/g, version).split('.')[0] : undefined;\n },\n setProps = function (arr) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n var propName = arr[i];\n if (typeof propName == TYPEOF.OBJECT && propName.length == 2) {\n this[propName[0]] = propName[1];\n } else {\n this[propName] = undefined;\n }\n }\n return this;\n },\n strip = function (pattern, str) {\n return isString(str) ? str.replace(pattern, EMPTY) : str;\n },\n stripQuotes = function (str) {\n return strip(/\\\\?\\\"/g, str); \n },\n trim = function (str, len) {\n str = strip(/^\\s\\s*/, String(str));\n return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n if(!ua || !arrays) return;\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === TYPEOF.OBJECT && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == TYPEOF.FUNCTION) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length >= 3) {\n // Check whether q[1] FUNCTION or REGEX\n if (typeof q[1] === TYPEOF.FUNCTION && !(q[1].exec && q[1].test)) {\n if (q.length > 3) {\n this[q[0]] = match ? q[1].apply(this, q.slice(2)) : undefined;\n } else {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n }\n } else {\n if (q.length == 3) {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n } else if (q.length == 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n } else if (q.length > 4) {\n this[q[0]] = match ? q[3].apply(this, [match.replace(q[1], q[2])].concat(q.slice(4))) : undefined;\n }\n }\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n var windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.51': '3.51',\n 'NT 4.0': '4.0',\n '2000' : ['5.0', '5.01'],\n 'XP' : ['5.1', '5.2'],\n 'Vista' : '6.0',\n '7' : '6.1',\n '8' : '6.2',\n '8.1' : '6.3',\n '10' : ['6.4', '10.0'],\n 'NT' : ''\n },\n \n formFactorsMap = {\n 'embedded' : 'Automotive',\n 'mobile' : 'Mobile',\n 'tablet' : ['Tablet', 'EInk'],\n 'smarttv' : 'TV',\n 'wearable' : 'Watch',\n 'xr' : ['VR', 'XR'],\n '?' : ['Desktop', 'Unknown'],\n '*' : undefined\n },\n\n browserHintsMap = {\n 'Chrome' : 'Google Chrome',\n 'Edge' : 'Microsoft Edge',\n 'Edge WebView2' : 'Microsoft Edge WebView2',\n 'Chrome WebView': 'Android WebView',\n 'Chrome Headless':'HeadlessChrome',\n 'Huawei Browser': 'HuaweiBrowser',\n 'MIUI Browser' : 'Miui Browser',\n 'Opera Mobi' : 'OperaMobile',\n 'Yandex' : 'YaBrowser'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var defaultRegexes = {\n\n browser : [[\n\n // Most common regardless engine\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n /webview.+edge\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, EDGE+' WebView']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i \n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /\\b(?:mxbrowser|mxios|myie2)\\/?([-\\w\\.]*)\\b/i // Maxthon\n ], [VERSION, [NAME, 'Maxthon']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim(?:browser|boat|jet))[\\/ ]?([\\d\\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble/Palemoon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(heytap|ovi|115|surf|qwant)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi/115/Surf\n /(qwant)(?:ios|mobile)\\/([\\d\\.]+)/i, // Qwant\n /(ecosia|weibo)(?:__| \\w+@)([\\d\\.]+)/i // Ecosia/Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UCBrowser']], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart ' + LENOVO + SUFFIX_BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + FIREFOX]], [\n /\\bqihoobrowser\\/?([\\w\\.]*)/i // 360\n ], [VERSION, [NAME, '360']], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, SOGOU + ' Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, SOGOU + ' Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345(?=browser|chrome|explorer))\\w*[\\/ ]?v?([\\w\\.]+)/i // QQ/2345\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq)/i // LieBao Browser/Rekonq\n ], [NAME], [\n /ome\\/([\\w\\.]+) \\w* ?(iron) saf/i, // Iron\n /ome\\/([\\w\\.]+).+qihu (360)[es]e/i // 360\n ], [VERSION, NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]], [\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /(daum)apps[\\/ ]([\\w\\.]+)/i, // Daum App\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(bing)(?:web|sapphire)\\/([\\w\\.]+)/i, // Bing\n /(instagram|snapchat|klarna)[\\/ ]([-\\w\\.]+)/i // Instagram/Snapchat/Klarna\n ], [NAME, VERSION, [TYPE, INAPP]], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME, [TYPE, INAPP]], [\n /(zalo(?:app)?)[\\/\\sa-z]*([\\w\\.-]+)/i // Zalo \n ], [[NAME, /(.+)/, 'Zalo'], VERSION, [TYPE, INAPP]], [\n\n /(chromium)[\\/ ]([-\\w\\.]+)/i // Chromium\n ], [NAME, VERSION], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n /wv\\).+chrome\\/([\\w\\.]+).+edgw\\//i // Edge WebView2\n ], [VERSION, [NAME, EDGE+' WebView2']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [\n\n /chrome\\/([\\w\\.]+) mobile/i // Chrome Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile(?:\\/\\w+ | ?)safari/i // Safari Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Safari']], [\n /iphone .*mobile(?:\\/\\w+ | ?)safari/i\n ], [[NAME, PREFIX_MOBILE + 'Safari']], [\n /version\\/([\\w\\.\\,]+) .*(safari)/i // Safari\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, '1']], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i // Firefox Mobile\n ], [[NAME, PREFIX_MOBILE + FIREFOX], VERSION], [\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic|librewolf)\\/([\\w\\.]+)/i // Wolvic/LibreWolf\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+(?= .+rv\\:.+gecko\\/\\d+)|[0-4][\\w\\.]+(?!.+compatible))/i, // Mozilla\n\n // Other\n /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird\n /\\b(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /[^\\d\\.]+./, EMPTY]]\n ],\n\n cpu : [[\n\n /\\b((amd|x|x86[-_]?|wow|win)64)\\b/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i, // IA32 (quicktime)\n /\\b((i[346]|x)86)(pc)?\\b/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?[89]e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /( (ce|mobile); ppc;|\\/[\\w\\.]+arm\\b)/i\n ], [[ARCHITECTURE, 'arm']], [\n\n / sun4\\w[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n /\\b(avr32|ia64(?=;)|68k(?=\\))|\\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\\b|pa-risc)/i,\n /((ppc|powerpc)(64)?)( mac|;|\\))/i, // PowerPC\n /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i // Alpha\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n /mc680.0/i\n ], [[ARCHITECTURE, '68k']], [\n /winnt.+\\[axp/i\n ], [[ARCHITECTURE, 'alpha']]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr]|browser)[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)[\\/\\);]/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\b(?:ios|apple\\w+)\\/.+[\\(\\/](ipad)/i, // iPad\n /\\b(ipad)[\\d,]*[;\\] ].+(mac |i(pad)?)os/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Honor\n /\\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\\)|;)/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, TABLET]], [\n /honor([-\\w ]+)[;\\)]/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\\w\\. ]*(?= bui|\\)))\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei) ?([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][\\dc][adnt]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /oid[^\\)]+; (2[\\dbc]{4}(182|283|rp\\w{2})[cgl]|m2105k81a?c)(?: bui|\\))/i,\n /\\b(?:xiao)?((?:red)?mi[-_ ]?pad[\\w- ]*)(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\\d{0,2}\\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\\))/i, // Xiaomi Mi\n / ([\\w ]+) miui\\/v?\\d/i\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n\n // OnePlus\n /droid.+; (cph2[3-6]\\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\\d|p[g-k]\\w[1m]10)\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [\n /\\b(opd2(\\d{3}a?))(?: bui|\\))/i\n ], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['203', '304', '403', '404', '413', '415'], '*' : OPPO }], [TYPE, TABLET]], [\n\n // BLU\n /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\\w\\+ ]*)(?: bui|\\))/i // Vivo series\n ], [MODEL, [VENDOR, 'BLU'], [TYPE, MOBILE]], [ \n\n // Vivo\n /; vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\\d{3,4}(?:f[cu]|xu|[av])|yt\\d?-[jx]?\\d+[lfmx])( bui|;|\\)|\\/)/i,\n /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\\w- ]+?)|tb[\\w-]{6,7})( bui|;|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [ \n /lenovo[-_ ]?([-\\w ]+?)(?: bui|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ]([\\w\\s]+)(\\)| bui)/i,\n /((?:moto(?! 360)[-\\w\\(\\) ]+|xt\\d{3,4}[cgkosw\\+]?[-\\d]*|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Nokia\n /(nokia) (t[12][01])/i\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n /(?:maemo|nokia).*(n900|lumia \\d+|rm-\\d+)/i,\n /nokia[-_ ]?(([-\\w\\. ]*?))( bui|\\)|;|\\/)/i\n ], [[MODEL, /_/g, ' '], [TYPE, MOBILE], [VENDOR, 'Nokia']], [\n\n // Google\n /(pixel (c|tablet))\\b/i // Google Pixel C/Tablet\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n // Google Pixel\n /droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\\d ]*a?( pro)?( xl)?( fold)?( \\(5g\\))?)( bui|\\))/i\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n /(google) (pixelbook( go)?)/i\n ], [VENDOR, MODEL], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-\\w\\w\\d\\d)(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /(?:blackberry|\\(bb10;) (\\w+)/i\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /tcl (xess p17aa)/i,\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n /droid [\\w\\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, MOBILE]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Energizer\n /; (energy ?\\w+)(?: bui|\\))/i,\n /; energizer ([\\w ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [\n\n // Cat\n /; cat (b35);/i,\n /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [\n\n // Smartfren\n /((?:new )?andromax[\\w- ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // Archos\n /; (x67 5g|tikeasy \\w+|ac[1789]\\d\\w+)( b|\\))/i,\n /archos ?(5|gamepad2?|([\\w ]*[t1789]|hello) ?\\d+[\\w ]*)( b|\\))/i\n ], [MODEL, [VENDOR, 'Archos'], [TYPE, TABLET]], [\n /archos ([\\w ]+)( b|\\))/i,\n /; (ac[3-6]\\d\\w{2,8})( b|\\))/i \n ], [MODEL, [VENDOR, 'Archos'], [TYPE, MOBILE]], [\n\n // HMD\n /; (n159v)/i\n ], [MODEL, [VENDOR, 'HMD'], [TYPE, MOBILE]], [\n\n // MIXED\n /(imo) (tab \\w+)/i, // IMO\n /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i // Infinix XPad / Tecno\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan\n // BLU/HMD/IMO/Infinix/Lava/OnePlus/TCL/Wiko\n /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\\w\\+ ]+?)(?: bui|\\)|; r)/i,\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(oppo) ?([\\w ]+) bui/i, // OPPO\n /(hisense) ([ehv][\\w ]+)\\)/i, // Hisense\n /droid[^;]+; (philips)[_ ]([sv-x][\\d]{3,4}[xz]?)/i // Philips\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i // Kindle\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /((?:tegranote|shield t(?!.+d tv))[\\w- ]*?)(?: b|\\))/i // Nvidia Tablets\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /(philips)[\\w ]+tv/i, // Philips\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(vizio)(?: |.+model\\/)(\\w+-\\w+)/i, // Vizio\n /tcast.+(lg)e?. ([-\\w]+)/i // LG SmartTV\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/chromecast/i // Google Chromecast Third Generation\n ], [[MODEL, CHROMECAST+' Third Generation'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/([^/]*)/i // Google Chromecast with specific device type\n ], [[MODEL, /^/, 'Chromecast '], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /fuchsia.*crkey/i // Google Chromecast Nest Hub\n ], [[MODEL, CHROMECAST+' Nest Hub'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast, Linux-based or unknown\n ], [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /(portaltv)/i // Facebook Portal TV\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /(shield \\w+ tv)/i // Nvidia Shield TV\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mi(tv|box)-?\\w+) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, /.+\\/(\\w+)/, '$1', strMapper, {'LG':'lge'}], [MODEL, trim], [TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(playstation \\w+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n /(ouya)/i, // Ouya\n /(nintendo) (\\w+)/i, // Nintendo\n /(retroid) (pocket ([^\\)]+))/i // Retroid Pocket\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield)( bui|\\))/i // Nvidia Portable\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[0156][fnuw]?s?|gear live)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i, // Pebble\n /(asus|google|lg|oppo) ((pixel |zen)?watch[\\w ]*)( bui|\\))/i // Asus ZenWatch / LG Watch / Pixel Watch\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(ow(?:19|20)?we?[1-3]{1,3})/i // Oppo Watch\n ], [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /(opwwe\\d{3})/i // OnePlus Watch\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]], [\n /(moto 360)/i // Motorola 360\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]], [\n /(smartwatch 3)/i // Sony SmartWatch\n ], [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]], [\n /(g watch r)/i // LG G Watch R\n ], [MODEL, [VENDOR, LG], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\n ///////////////////\n // XR\n ///////////////////\n\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, XR]], [\n /(pico) ([\\w ]+) os\\d/i // Pico\n ], [VENDOR, MODEL, [TYPE, XR]], [\n /(quest( \\d| pro)?s?).+vr/i // Meta Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]], [\n /mobile vr; rv.+firefox/i // Unidentifiable VR device using Firefox Reality / Wolvic\n ], [[TYPE, XR]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n /(homepod).+mac os/i // Apple HomePod\n ], [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]], [\n /windows iot/i // Unidentifiable embedded device using Windows IoT\n ], [[TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid.+; ([\\w- ]+) (4k|android|smart|google)[- ]?tv/i // Unidentifiable SmartTV\n ], [MODEL, [TYPE, SMARTTV]], [\n /\\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\\w ]+safari)\\b/i\n ], [[TYPE, SMARTTV]], [\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew|; hmsc).+?(mobile|vr|\\d) safari/i\n ], [MODEL, [TYPE, strMapper, { 'mobile' : 'Mobile', 'xr' : 'VR', '*' : TABLET }]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /droid .+?; ([\\w\\. -]+)( bui|\\))/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /(arkweb)\\/([\\w\\.]+)/i // ArkWeb\n ], [NAME, VERSION], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n\n /\\b(libweb)/i // LibWeb\n ], [NAME, VERSION], [\n /ladybird\\//i\n ], [[NAME, 'LibWeb']], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /(windows nt) (6\\.[23]); arm/i // Windows RT\n ], [[NAME, /N/, 'R'], [VERSION, strMapper, windowsVersionMap]], [\n /(windows (?:phone|mobile|iot))(?: os)?[\\/ ]?([\\d\\.]*( se)?)/i, // Windows IoT/Mobile/Phone\n // Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11\n /(windows)[\\/ ](1[01]|2000|3\\.1|7|8(\\.1)?|9[58]|me|server 20\\d\\d( r2)?|vista|xp)/i\n ], [NAME, VERSION], [\n /windows nt ?([\\d\\.\\)]*)(?!.+xbox)/i,\n /\\bwin(?=3| ?9|n)(?:nt| 9x )?([\\d\\.;]*)/i\n ], [[VERSION, /(;|\\))/g, '', strMapper, windowsVersionMap], [NAME, WINDOWS]], [\n /(windows ce)\\/?([\\d\\.]*)/i // Windows CE\n ], [NAME, VERSION], [\n\n // iOS/macOS\n /[adehimnop]{4,7}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\\/ ]([\\w\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+(haiku|morphos))/i // Mac OS\n ], [[NAME, 'macOS'], [VERSION, /_/g, '.']], [\n\n // Google Chromecast\n /android ([\\d\\.]+).*crkey/i // Google Chromecast, Android-based\n ], [VERSION, [NAME, CHROMECAST + ' Android']], [\n /fuchsia.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Fuchsia-based\n ], [VERSION, [NAME, CHROMECAST + ' Fuchsia']], [\n /crkey\\/([\\d\\.]+).*devicetype\\/smartspeaker/i // Google Chromecast, Linux-based Smart Speaker\n ], [VERSION, [NAME, CHROMECAST + ' SmartSpeaker']], [\n /linux.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Legacy Linux-based\n ], [VERSION, [NAME, CHROMECAST + ' Linux']], [\n /crkey\\/([\\d\\.]+)/i // Google Chromecast, unknown\n ], [VERSION, [NAME, CHROMECAST]], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86)/i // Android-x86\n ], [VERSION, NAME], [ \n /(ubuntu) ([\\w\\.]+) like android/i // Ubuntu Touch\n ], [[NAME, /(.+)/, '$1 Touch'], VERSION], [\n /(harmonyos)[\\/ ]?([\\d\\.]*)/i, // HarmonyOS\n // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen\n /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\\w*[-\\/\\.; ]?([\\d\\.]*)/i\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i, // WebOS\n /webos(?:[ \\/]?|\\.tv-20(?=2[2-9]))(\\d[\\d\\.]*)/i\n ], [VERSION, [NAME, 'webOS']], [\n /web0s;.+?(?:chr[o0]me|safari)\\/(\\d+)/i\n // https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine\n ], [[VERSION, strMapper, {'25':'120','24':'108','23':'94','22':'87','6':'79','5':'68','4':'53','3':'38','2':'538','1':'537','*':'TV'}], [NAME, 'webOS']], [ \n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google ChromeOS\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, \"Chrome OS\"], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) (\\w+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n /(pico) .+os([\\w\\.]+)/i, // Pico\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /linux.+(mint)[\\/\\(\\) ]?([\\w\\.]*)/i, // Mint\n /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\\d\\.]*)/i, // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /\\b(aix)[; ]([1-9\\.]{0,4})/i, // AIX\n /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\\w*| ?)([\\w\\.]*)/i, // Hurd/Linux/MorphOS\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) ?(r\\d)?/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\d\\.]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /\\b(beos|os\\/2|amigaos|openvms|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Factories\n ////////////////\n\n var defaultProps = (function () {\n var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};\n setProps.call(props.init, [\n [BROWSER, [NAME, VERSION, MAJOR, TYPE]],\n [CPU, [ARCHITECTURE]],\n [DEVICE, [TYPE, MODEL, VENDOR]],\n [ENGINE, [NAME, VERSION]],\n [OS, [NAME, VERSION]]\n ]);\n setProps.call(props.isIgnore, [\n [BROWSER, [VERSION, MAJOR]],\n [ENGINE, [VERSION]],\n [OS, [VERSION]]\n ]);\n setProps.call(props.isIgnoreRgx, [\n [BROWSER, / ?browser$/i],\n [OS, / ?os$/i]\n ]);\n setProps.call(props.toString, [\n [BROWSER, [NAME, VERSION]],\n [CPU, [ARCHITECTURE]],\n [DEVICE, [VENDOR, MODEL]],\n [ENGINE, [NAME, VERSION]],\n [OS, [NAME, VERSION]]\n ]);\n return props;\n })();\n\n var createIData = function (item, itemType) {\n\n var init_props = defaultProps.init[itemType],\n is_ignoreProps = defaultProps.isIgnore[itemType] || 0,\n is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0,\n toString_props = defaultProps.toString[itemType] || 0;\n\n function IData () {\n setProps.call(this, init_props);\n }\n\n IData.prototype.getItem = function () {\n return item;\n };\n\n IData.prototype.withClientHints = function () {\n\n // nodejs / non-client-hints browsers\n if (!NAVIGATOR_UADATA) {\n return item\n .parseCH()\n .get();\n }\n\n // browsers based on chromium 85+\n return NAVIGATOR_UADATA\n .getHighEntropyValues(CH_ALL_VALUES)\n .then(function (res) {\n return item\n .setCH(new UACHData(res, false))\n .parseCH()\n .get();\n });\n };\n\n IData.prototype.withFeatureCheck = function () {\n return item.detectFeature().get();\n };\n\n if (itemType != RESULT) {\n IData.prototype.is = function (strToCheck) {\n var is = false;\n for (var i in this) {\n if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {\n is = true;\n if (strToCheck != TYPEOF.UNDEFINED) break;\n } else if (strToCheck == TYPEOF.UNDEFINED && is) {\n is = !is;\n break;\n }\n }\n return is;\n };\n IData.prototype.toString = function () {\n var str = EMPTY;\n for (var i in toString_props) {\n if (typeof(this[toString_props[i]]) !== TYPEOF.UNDEFINED) {\n str += (str ? ' ' : EMPTY) + this[toString_props[i]];\n }\n }\n return str || TYPEOF.UNDEFINED;\n };\n }\n\n if (!NAVIGATOR_UADATA) {\n IData.prototype.then = function (cb) { \n var that = this;\n var IDataResolve = function () {\n for (var prop in that) {\n if (that.hasOwnProperty(prop)) {\n this[prop] = that[prop];\n }\n }\n };\n IDataResolve.prototype = {\n is : IData.prototype.is,\n toString : IData.prototype.toString\n };\n var resolveData = new IDataResolve();\n cb(resolveData);\n return resolveData;\n };\n }\n\n return new IData();\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n function UACHData (uach, isHttpUACH) {\n uach = uach || {};\n setProps.call(this, CH_ALL_VALUES);\n if (isHttpUACH) {\n setProps.call(this, [\n [BRANDS, itemListToArray(uach[CH])],\n [FULLVERLIST, itemListToArray(uach[CH_FULL_VER_LIST])],\n [MOBILE, /\\?1/.test(uach[CH_MOBILE])],\n [MODEL, stripQuotes(uach[CH_MODEL])],\n [PLATFORM, stripQuotes(uach[CH_PLATFORM])],\n [PLATFORMVER, stripQuotes(uach[CH_PLATFORM_VER])],\n [ARCHITECTURE, stripQuotes(uach[CH_ARCH])],\n [FORMFACTORS, itemListToArray(uach[CH_FORM_FACTORS])],\n [BITNESS, stripQuotes(uach[CH_BITNESS])]\n ]);\n } else {\n for (var prop in uach) {\n if(this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED) this[prop] = uach[prop];\n }\n }\n }\n\n function UAItem (itemType, ua, rgxMap, uaCH) {\n\n this.get = function (prop) {\n if (!prop) return this.data;\n return this.data.hasOwnProperty(prop) ? this.data[prop] : undefined;\n };\n\n this.set = function (prop, val) {\n this.data[prop] = val;\n return this;\n };\n\n this.setCH = function (ch) {\n this.uaCH = ch;\n return this;\n };\n\n this.detectFeature = function () {\n if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {\n switch (this.itemType) {\n case BROWSER:\n // Brave-specific detection\n if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == TYPEOF.FUNCTION) {\n this.set(NAME, 'Brave');\n }\n break;\n case DEVICE:\n // Chrome-specific detection: check for 'mobile' value of navigator.userAgentData\n if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (this.get(MODEL) == 'Macintosh' && NAVIGATOR && typeof NAVIGATOR.standalone !== TYPEOF.UNDEFINED && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {\n this.set(MODEL, 'iPad')\n .set(TYPE, TABLET);\n }\n break;\n case OS:\n // Chrome-specific detection: check for 'platform' value of navigator.userAgentData\n if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {\n this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);\n }\n break;\n case RESULT:\n var data = this.data;\n var detect = function (itemType) {\n return data[itemType]\n .getItem()\n .detectFeature()\n .get();\n };\n this.set(BROWSER, detect(BROWSER))\n .set(CPU, detect(CPU))\n .set(DEVICE, detect(DEVICE))\n .set(ENGINE, detect(ENGINE))\n .set(OS, detect(OS));\n }\n }\n return this;\n };\n\n this.parseUA = function () {\n if (this.itemType != RESULT) {\n rgxMapper.call(this.data, this.ua, this.rgxMap);\n }\n switch (this.itemType) {\n case BROWSER:\n this.set(MAJOR, majorize(this.get(VERSION)));\n break;\n case OS:\n if (this.get(NAME) == 'iOS' && this.get(VERSION) == '18.6') {\n // Based on the assumption that iOS version is tightly coupled with Safari version\n var realVersion = /\\) Version\\/([\\d\\.]+)/.exec(this.ua); // Get Safari version\n if (realVersion && parseInt(realVersion[1].substring(0,2), 10) >= 26) {\n this.set(VERSION, realVersion[1]); // Set as iOS version\n }\n }\n break;\n }\n return this;\n };\n\n this.parseCH = function () {\n var uaCH = this.uaCH,\n rgxMap = this.rgxMap;\n \n switch (this.itemType) {\n case BROWSER:\n case ENGINE:\n var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;\n if (brands) {\n for (var i=0; i= 13 ? '11' : '10');\n this.set(NAME, osName)\n .set(VERSION, osVersion);\n }\n // Xbox-Specific Detection\n if (this.get(NAME) == WINDOWS && uaCH[MODEL] == 'Xbox') {\n this.set(NAME, 'Xbox')\n .set(VERSION, undefined);\n } \n break;\n case RESULT:\n var data = this.data;\n var parse = function (itemType) {\n return data[itemType]\n .getItem()\n .setCH(uaCH)\n .parseCH()\n .get();\n };\n this.set(BROWSER, parse(BROWSER))\n .set(CPU, parse(CPU))\n .set(DEVICE, parse(DEVICE))\n .set(ENGINE, parse(ENGINE))\n .set(OS, parse(OS));\n }\n return this;\n };\n\n setProps.call(this, [\n ['itemType', itemType],\n ['ua', ua],\n ['uaCH', uaCH],\n ['rgxMap', rgxMap],\n ['data', createIData(this, itemType)]\n ]);\n\n return this;\n }\n\n function UAParser (ua, extensions, headers) {\n\n if (typeof ua === TYPEOF.OBJECT) {\n if (isExtensions(ua, true)) {\n if (typeof extensions === TYPEOF.OBJECT) {\n headers = extensions; // case UAParser(extensions, headers) \n }\n extensions = ua; // case UAParser(extensions)\n } else {\n headers = ua; // case UAParser(headers)\n extensions = undefined;\n }\n ua = undefined;\n } else if (typeof ua === TYPEOF.STRING && !isExtensions(extensions, true)) {\n headers = extensions; // case UAParser(ua, headers)\n extensions = undefined;\n }\n\n if (headers) {\n if (typeof headers.append === TYPEOF.FUNCTION) {\n // Convert Headers object into a plain object\n var kv = {};\n headers.forEach(function (v, k) { kv[String(k).toLowerCase()] = v; });\n headers = kv;\n } else {\n // Normalize headers field name into lowercase\n var normalized = {};\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n normalized[String(header).toLowerCase()] = headers[header];\n }\n }\n headers = normalized;\n }\n }\n \n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions, headers).getResult();\n }\n\n var userAgent = typeof ua === TYPEOF.STRING ? ua : // Passed user-agent string\n (headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers\n ((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent\n EMPTY)), // empty string\n\n httpUACH = new UACHData(headers, true),\n regexMap = extensions ? \n extend(defaultRegexes, extensions) : \n defaultRegexes,\n\n createItemFunc = function (itemType) {\n if (itemType == RESULT) {\n return function () {\n return new UAItem(itemType, userAgent, regexMap, httpUACH)\n .set('ua', userAgent)\n .set(BROWSER, this.getBrowser())\n .set(CPU, this.getCPU())\n .set(DEVICE, this.getDevice())\n .set(ENGINE, this.getEngine())\n .set(OS, this.getOS())\n .get();\n };\n } else {\n return function () {\n return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)\n .parseUA()\n .get();\n };\n }\n };\n \n // public methods\n setProps.call(this, [\n ['getBrowser', createItemFunc(BROWSER)],\n ['getCPU', createItemFunc(CPU)],\n ['getDevice', createItemFunc(DEVICE)],\n ['getEngine', createItemFunc(ENGINE)],\n ['getOS', createItemFunc(OS)],\n ['getResult', createItemFunc(RESULT)],\n ['getUA', function () { return userAgent; }],\n ['setUA', function (ua) {\n if (isString(ua)) userAgent = trim(ua, UA_MAX_LENGTH);\n return this;\n }]\n ])\n .setUA(userAgent);\n\n return this;\n }\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n export {UAParser};","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport UserSettings from './views/UserSettings.vue'\n\n// Styles\nimport '@nextcloud/dialogs/style.css'\n\nexport default createApp(UserSettings).mount('#notifications-user-settings')\n"],"names":["LIBVERSION","UA_MAX_LENGTH","USER_AGENT","EMPTY","UNKNOWN","TYPEOF","BROWSER","CPU","DEVICE","ENGINE","OS","RESULT","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","MAJOR","MODEL","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","XR","EMBEDDED","INAPP","BRANDS","FORMFACTORS","FULLVERLIST","PLATFORM","PLATFORMVER","BITNESS","CH","CH_FULL_VER_LIST","CH_ARCH","CH_BITNESS","CH_FORM_FACTORS","CH_MOBILE","CH_MODEL","CH_PLATFORM","CH_PLATFORM_VER","CH_ALL_VALUES","AMAZON","APPLE","ASUS","BLACKBERRY","GOOGLE","HUAWEI","LENOVO","HONOR","LG","MICROSOFT","MOTOROLA","NVIDIA","ONEPLUS","OPPO","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","CHROME","CHROMIUM","CHROMECAST","EDGE","FIREFOX","OPERA","FACEBOOK","SOGOU","PREFIX_MOBILE","SUFFIX_BROWSER","WINDOWS","isWindow","NAVIGATOR","NAVIGATOR_UADATA","extend","defaultRgx","extensions","mergedRgx","extraRgx","isExtensions","i","j","k","enumerize","arr","enums","has","str1","str2","lowerize","isString","obj","deep","prop","val","itemListToArray","header","tokens","strip","token","trim","str","majorize","version","setProps","propName","pattern","stripQuotes","len","rgxMapper","ua","arrays","p","q","matches","match","regex","props","strMapper","map","windowsVersionMap","formFactorsMap","browserHintsMap","defaultRegexes","defaultProps","createIData","item","itemType","init_props","is_ignoreProps","is_ignoreRgx","toString_props","IData","res","UACHData","strToCheck","is","cb","that","IDataResolve","resolveData","uach","isHttpUACH","UAItem","rgxMap","uaCH","ch","data","detect","realVersion","brands","prevName","brandName","brandVersion","archName","reParse","ff","idx","osName","osVersion","parse","UAParser","headers","kv","normalized","userAgent","httpUACH","regexMap","createItemFunc","EmailFrequency","BATCHTIME_OPTIONS","t","EMPTY_DEVICE_OPTION","parser","browser","isSafari","_sfc_main","NcCheckboxRadioSwitch","NcSelect","NcSettingsSection","config","reactive","loadState","storage","BrowserStorage","devices","ref","currentBatchTime","computed","value","form","axios","generateOcsUrl","showSuccess","error","showError","stream","device","track","_hoisted_1","_hoisted_3","_createBlock","_component_NcSettingsSection","$options","_createElementVNode","$setup","_openBlock","_createElementBlock","_hoisted_4","_toDisplayString","_createVNode","_component_NcSelect","$event","_component_NcCheckboxRadioSwitch","_cache","_Fragment","_hoisted_5","createApp","UserSettings"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/js/notifications-settings.mjs.map.license b/js/notifications-settings.mjs.map.license index cd838bb0a..e11d169dc 100644 --- a/js/notifications-settings.mjs.map.license +++ b/js/notifications-settings.mjs.map.license @@ -8,5 +8,5 @@ This file is generated from multiple sources. Included packages: - version: 5.0.0-dev.0 - license: AGPL-3.0-only - ua-parser-js - - version: 2.0.5 + - version: 2.0.6 - license: AGPL-3.0-or-later diff --git a/js/vendor.LICENSE.txt b/js/vendor.LICENSE.txt index f3dd85c49..bf006e961 100644 --- a/js/vendor.LICENSE.txt +++ b/js/vendor.LICENSE.txt @@ -629,7 +629,7 @@ version: 1.0.3 license: MIT ua-parser-js -version: 2.0.5 +version: 2.0.6 license: AGPL-3.0-or-later unified diff --git a/package-lock.json b/package-lock.json index 93304b2fb..146b8573f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@nextcloud/router": "^3.0.1", "@nextcloud/vue": "^9.0.0", "howler": "^2.2.4", - "ua-parser-js": "^2.0.5", + "ua-parser-js": "^2.0.6", "v-click-outside": "^3.2.0", "vue": "^3.5.22", "vue-material-design-icons": "^5.3.1" @@ -9718,9 +9718,9 @@ ] }, "node_modules/ua-parser-js": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-2.0.5.tgz", - "integrity": "sha512-sZErtx3rhpvZQanWW5umau4o/snfoLqRcQwQIZ54377WtRzIecnIKvjpkd5JwPcSUMglGnbIgcsQBGAbdi3S9Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-2.0.6.tgz", + "integrity": "sha512-EmaxXfltJaDW75SokrY4/lXMrVyXomE/0FpIIqP2Ctic93gK7rlme55Cwkz8l3YZ6gqf94fCU7AnIkidd/KXPg==", "funding": [ { "type": "opencollective", @@ -9738,8 +9738,7 @@ "dependencies": { "detect-europe-js": "^0.1.2", "is-standalone-pwa": "^0.1.1", - "ua-is-frozen": "^0.1.2", - "undici": "^7.12.0" + "ua-is-frozen": "^0.1.2" }, "bin": { "ua-parser-js": "script/cli.js" @@ -9755,14 +9754,6 @@ "dev": true, "license": "MIT" }, - "node_modules/undici": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.16.0.tgz", - "integrity": "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==", - "engines": { - "node": ">=20.18.1" - } - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", diff --git a/package.json b/package.json index f8cdbc3e5..61875c2d7 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@nextcloud/router": "^3.0.1", "@nextcloud/vue": "^9.0.0", "howler": "^2.2.4", - "ua-parser-js": "^2.0.5", + "ua-parser-js": "^2.0.6", "v-click-outside": "^3.2.0", "vue": "^3.5.22", "vue-material-design-icons": "^5.3.1"