@abtnode/blocklet-services 1.16.53-beta-20251009-113612-7a16b6a0 → 1.16.53-beta-20251011-054719-4ed2f6b7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/routes/user-session.js +14 -3
- package/api/routes/user.js +9 -6
- package/dist/assets/{access-control-CTocOnrY.js → access-control-abOzA88J.js} +1 -1
- package/dist/assets/{add-component-core-ChMhkX_e.js → add-component-core-DyP5DXP3.js} +1 -1
- package/dist/assets/{add-resource-BQMxE4TR.js → add-resource-D1RE_D63.js} +1 -1
- package/dist/assets/{addon-B1SOMf-o.js → addon-BQpY5mGN.js} +1 -1
- package/dist/assets/{advanced-BeUvs5a-.js → advanced-BAAkbQ7v.js} +1 -1
- package/dist/assets/{aigne-BFbK-Dx1.js → aigne-BIxsGdE6.js} +1 -1
- package/dist/assets/{appearance-BjJHVOrD.js → appearance-DLL_c3H7.js} +1 -1
- package/dist/assets/{arrow-down.svg-CnYWDYHP.js → arrow-down.svg-B0yKIpV_.js} +1 -1
- package/dist/assets/{audit-logs-CYyFSo7D.js → audit-logs-BjqQg10C.js} +1 -1
- package/dist/assets/{authorize-C9NR3hcn.js → authorize-zdSPMvPb.js} +1 -1
- package/dist/assets/{bind-account-EzHCVNcL.js → bind-account-MeFLW0-t.js} +1 -1
- package/dist/assets/{branding-C6k_gnic.js → branding-BGqwD_8z.js} +1 -1
- package/dist/assets/{branding-iucefL5d.js → branding-CZ3msR8C.js} +1 -1
- package/dist/assets/{branding-D14MEcTS.js → branding-DdfX0yE_.js} +1 -1
- package/dist/assets/{bundle-avatar-Bbip6Pw_.js → bundle-avatar-BnsIGAGk.js} +1 -1
- package/dist/assets/{complete-DBBI-G-v.js → complete-BKOQngoV.js} +1 -1
- package/dist/assets/{component-BuKDir1W.js → component-ZLIptWjb.js} +3 -3
- package/dist/assets/{config-B7yZVsVx.js → config-CZV6cEQO.js} +1 -1
- package/dist/assets/{config-uTQPBtNY.js → config-DETFzZFy.js} +1 -1
- package/dist/assets/{config-CGESXcGy.js → config-DuFudWCR.js} +1 -1
- package/dist/assets/{config-navigation-Ci4sw2Mg.js → config-navigation-Ckddb7Ew.js} +2 -2
- package/dist/assets/{config-space-CIxZdD1U.js → config-space-BMQcYhX4.js} +1 -1
- package/dist/assets/{confirm-CRSsToIg.js → confirm-BWJyxR1P.js} +1 -1
- package/dist/assets/{connect-BA-e5Sky.js → connect-8ijsDqc0.js} +1 -1
- package/dist/assets/{connect-D_SRcELW.js → connect-ByF8W-k5.js} +1 -1
- package/dist/assets/{connect-to-DPxJtWAi.js → connect-to-DsrMYUbG.js} +1 -1
- package/dist/assets/{dashboard-CdEA39BJ.js → dashboard-dvSAjP1V.js} +2 -2
- package/dist/assets/{delete-confirm-BOL7KX0x.js → delete-confirm-C5O8wEbn.js} +1 -1
- package/dist/assets/{domain-C02xJ2j2.js → domain-UcW2NDgQ.js} +1 -1
- package/dist/assets/{domain-action-card-BYDa5XpT.js → domain-action-card-C4LewNdA.js} +1 -1
- package/dist/assets/{domains-CeH-Is8l.js → domains-a52EIu7f.js} +1 -1
- package/dist/assets/{email-CgqDRKYJ.js → email-DeJqm_cT.js} +1 -1
- package/dist/assets/engine-BOS99Pm4.js +1 -0
- package/dist/assets/{exchange-passport-SXEaleiF.js → exchange-passport-Bk3KCI7e.js} +1 -1
- package/dist/assets/{form-kOntOXIX.js → form-BzuOEtWl.js} +1 -1
- package/dist/assets/{fuel-DvIA5Tre.js → fuel-CqEiaVyB.js} +1 -1
- package/dist/assets/{gen-access-key-D6gAc7bG.js → gen-access-key-DPvESsAt.js} +1 -1
- package/dist/assets/{gen-simple-access-key-BfvI0i1-.js → gen-simple-access-key-BDFpf0Fe.js} +1 -1
- package/dist/assets/{get-safe-url-BVWVLDco.js → get-safe-url-VPE7525h.js} +1 -1
- package/dist/assets/{home-Bbu96BmU.js → home-D88mAORC.js} +1 -1
- package/dist/assets/{iframe-B-WaBiaG.js → iframe-C132otWW.js} +1 -1
- package/dist/assets/{index-BqNVAj3b.js → index-1FCrRa8S.js} +1 -1
- package/dist/assets/{index-MSxXwe2g.js → index-2yXoHCF5.js} +1 -1
- package/dist/assets/{index-CW83LAem.js → index-4N6JSZ-1.js} +1 -1
- package/dist/assets/{index-EE_leCro.js → index-4iRJnRDb.js} +1 -1
- package/dist/assets/{index-B9UOYoTi.js → index-BHZw9zYL.js} +1 -1
- package/dist/assets/{index-BWkRqWUV.js → index-BO1dYT6j.js} +1 -1
- package/dist/assets/{index-KhL4--33.js → index-BS4gI6Je.js} +1 -1
- package/dist/assets/{index-MjpHZ4K2.js → index-BY2B2juN.js} +1 -1
- package/dist/assets/{index-ChG9_ZZV.js → index-BhwFkAf9.js} +1 -1
- package/dist/assets/{index-BPjsO-fA.js → index-BuM1x7gd.js} +1 -1
- package/dist/assets/{index-C5weIh5R.js → index-CDK4fL-O.js} +5 -5
- package/dist/assets/{index-B5ctIRcA.js → index-CLKzAwdz.js} +1 -1
- package/dist/assets/{index-BwK-dbsY.js → index-CSpvJyY6.js} +1 -1
- package/dist/assets/{index-Czh1GNRc.js → index-CfnfoDga.js} +1 -1
- package/dist/assets/{index-Bne2IVDb.js → index-CoDgpGOM.js} +2 -2
- package/dist/assets/{index-CsM_pYF8.js → index-CocTzKAu.js} +1 -1
- package/dist/assets/{index-B0HVlpUv.js → index-CouqM1KS.js} +1 -1
- package/dist/assets/{index-DeWjB4q9.js → index-DBMcmgkV.js} +1 -1
- package/dist/assets/{index-DI0tEMGN.js → index-DU1RbZz3.js} +1 -1
- package/dist/assets/{index-yyZ56Avq.js → index-D_TfbqtN.js} +1 -1
- package/dist/assets/{index-CCGTCthU.js → index-Dk4snkhP.js} +1 -1
- package/dist/assets/index-Dnczsrey.js +281 -0
- package/dist/assets/{index-Dn2h6APz.js → index-DqZvBosz.js} +1 -1
- package/dist/assets/{index-DtY0rQzd.js → index-G6mLFBwo.js} +3 -3
- package/dist/assets/{index-pSrG3Rtm.js → index-LVfZZmHk.js} +1 -1
- package/dist/assets/{index-BtyqZ8ix.js → index-lPn5f6-V.js} +1 -1
- package/dist/assets/{invitation-DvFWKTOM.js → invitation-Cb4EkBcb.js} +1 -1
- package/dist/assets/{invitations-CD5qt7h8.js → invitations-D3Zrof2P.js} +1 -1
- package/dist/assets/{invite-CMqMLqon.js → invite-BR4XYB-m.js} +1 -1
- package/dist/assets/{isURL-Drc7oe8g.js → isURL-C1DcW1a5.js} +1 -1
- package/dist/assets/{issue-passport-BR40SDVR.js → issue-passport-BdoYSf2e.js} +1 -1
- package/dist/assets/{item-DwykRAIj.js → item-CkI92KM4.js} +1 -1
- package/dist/assets/{landing-page-BTu1Wo51.js → landing-page-B5oo2gYB.js} +1 -1
- package/dist/assets/{layout-_Ka_GN5x.js → layout-BZEqr9pw.js} +1 -1
- package/dist/assets/{list-TG9HMVa3.js → list-CDnwzHEF.js} +1 -1
- package/dist/assets/{list-C4b_Znkz.js → list-IzlvL0Cm.js} +1 -1
- package/dist/assets/{localization-CqBu9Ts-.js → localization-BicvVG1z.js} +1 -1
- package/dist/assets/{log-BFOgPn13.js → log-BLFD38SA.js} +1 -1
- package/dist/assets/{login-oauth-callback-BuNQ-CRv.js → login-oauth-callback-DCxgtqJh.js} +1 -1
- package/dist/assets/{login-CUoIcXNe.js → login-tgh6A96Z.js} +1 -1
- package/dist/assets/{logo-uploader-l9C8sEUo.js → logo-uploader-CeiVmA8S.js} +1 -1
- package/dist/assets/{lost-passport-lnqu8OpR.js → lost-passport--U8zmxgu.js} +1 -1
- package/dist/assets/{open-window-B52q5qrk.js → open-window-M9ef-LkI.js} +1 -1
- package/dist/assets/{over-due-invoice-payment-DKbbN5W7.js → over-due-invoice-payment-W_gVc8Qj.js} +1 -1
- package/dist/assets/{overview-BITUbq3E.js → overview-DZA0nOyD.js} +1 -1
- package/dist/assets/{passport-WPJBoZJA.js → passport-Cd-yq0CU.js} +1 -1
- package/dist/assets/{passport-item-gIxDDwjF.js → passport-item-BEacxvYM.js} +1 -1
- package/dist/assets/{permission-BeGf253a.js → permission-DNqMBi19.js} +1 -1
- package/dist/assets/{preferences-D0Ol69r8.js → preferences-6Rdph3hk.js} +1 -1
- package/dist/assets/{profile-embed-YGIFeQVj.js → profile-embed-ChFmka39.js} +1 -1
- package/dist/assets/{publish-resource-fDNwoZVu.js → publish-resource-BtxG5C-8.js} +1 -1
- package/dist/assets/{runtime-DPpYl0V4.js → runtime-ChFuhKtK.js} +1 -1
- package/dist/assets/sdk-C7wG8QyH.js +1 -0
- package/dist/assets/{security-Jp9VavjR.js → security-PpRNxUG9.js} +1 -1
- package/dist/assets/{session-DEBZccHT.js → session-DqPgru1C.js} +1 -1
- package/dist/assets/{setup-3SRIuMWN.js → setup-oD1wO9rk.js} +1 -1
- package/dist/assets/{spaces-_v4BsoCo.js → spaces-DGH_8-cq.js} +1 -1
- package/dist/assets/{start-BaF8jQQs.js → start-C5yo46Q5.js} +1 -1
- package/dist/assets/{starting-progress-Bdr1122s.js → starting-progress-CG1Jhf-6.js} +1 -1
- package/dist/assets/{status-Kru479eT.js → status-aDx49LDx.js} +1 -1
- package/dist/assets/{step-actions-z2PSGmvy.js → step-actions-DMXYHHE_.js} +1 -1
- package/dist/assets/{studio-C8Cis2HF.js → studio-DWci_EEj.js} +1 -1
- package/dist/assets/{team-DjK1LiLV.js → team-DNwgDnjc.js} +1 -1
- package/dist/assets/{traffic-CxwOXUbM.js → traffic-Bixs5_Th.js} +1 -1
- package/dist/assets/{transfer-M0yRAOWx.js → transfer-Cz15cjFv.js} +1 -1
- package/dist/assets/{unsubscribe-CULX4z09.js → unsubscribe-CkZxyB3U.js} +1 -1
- package/dist/assets/{use-app-logo-BOmNYQgU.js → use-app-logo-Bbh3GZji.js} +1 -1
- package/dist/assets/{user-center-1elUCI9j.js → user-center-DkbCI7_Z.js} +2 -2
- package/dist/assets/{user-follower-CYu4VkvK.js → user-follower-BiV6IZnA.js} +1 -1
- package/dist/assets/{user-sessions-B_eqpmUt.js → user-sessions-WZG9FkqG.js} +1 -1
- package/dist/assets/{util-DUiP0chO.js → util-BilORIYw.js} +1 -1
- package/dist/assets/{util-DY1uHmM4.js → util-CT-nPa5g.js} +1 -1
- package/dist/assets/{wait-connect-DMl1x3Ld.js → wait-connect-Be6pglA3.js} +1 -1
- package/dist/assets/{wizard-Cq7OgF_R.js → wizard-B56tgdNq.js} +1 -1
- package/dist/assets/{wizard-components-CseIhcl0.js → wizard-components-4u9bZcdI.js} +1 -1
- package/dist/assets/{wrap-locale-DtJXVWeM.js → wrap-locale-CIO-ciR5.js} +1 -1
- package/dist/assets/{zh-CJ0qBy8e.js → zh-CZLHYA5h.js} +1 -1
- package/dist/assets/{zh-DS2mQXmf.js → zh-C_CaWCk3.js} +1 -1
- package/dist/assets/{zh-tw-Cs-zRk58.js → zh-tw-B-qWW0q8.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +23 -23
- package/dist/assets/engine-Dde2jLpF.js +0 -1
- package/dist/assets/index-CuH2SZN0.js +0 -281
- package/dist/assets/sdk-Jn7q4_AB.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as g}from"./vendor-react-Dvs43sk9.js";import{k as Q,n as V,o as G,b as J}from"./vendor-hooks-BlA8TRnZ.js";import{j as o,ak as i,Q as E,n as F,s as D,ar as y,W as a}from"./vendor-mui-core-DRxbhqaK.js";import{T as $,H as X,k as Z}from"./vendor-ux-B9VfuZTg.js";import{B as Y,o as ee,l as oe}from"./index-
|
|
1
|
+
import{r as g}from"./vendor-react-Dvs43sk9.js";import{k as Q,n as V,o as G,b as J}from"./vendor-hooks-BlA8TRnZ.js";import{j as o,ak as i,Q as E,n as F,s as D,ar as y,W as a}from"./vendor-mui-core-DRxbhqaK.js";import{T as $,H as X,k as Z}from"./vendor-ux-B9VfuZTg.js";import{B as Y,o as ee,l as oe}from"./index-BhwFkAf9.js";import{J as te}from"./vendor-utils-CUDP56Ff.js";import{X as N,c as re}from"./index-CDK4fL-O.js";import{u as se}from"./session-DqPgru1C.js";import{u as ie}from"./use-mobile-BQQpAf3i.js";import{f as R}from"./index-DBs9Ljax.js";const I=20,B={currentTab:a.string.isRequired},S={user:a.object.isRequired,column:a.number};function ne(){return o.jsxs(i,{sx:{border:"1px solid",borderColor:"divider",borderRadius:1,p:2},children:[o.jsxs(i,{sx:{display:"flex",alignItems:"center",gap:2,mb:1},children:[o.jsx(y,{variant:"circular",width:48,height:48}),o.jsxs(i,{sx:{flex:1},children:[o.jsx(y,{variant:"text",width:"60%",height:20}),o.jsx(y,{variant:"text",width:"80%",height:16})]})]}),o.jsx(y,{variant:"text",width:"40%",height:14})]})}function U({currentTab:e,errorMsg:c=""}){const{t:r}=$(),n=g.useMemo(()=>({following:r("team.userFollowers.emptyFollowing"),followers:r("team.userFollowers.emptyFollowers"),invitees:r("team.userFollowers.emptyInvitees")})[e],[e,r]);return o.jsx(Z,{children:c||n})}U.propTypes={...B,errorMsg:a.string};function A({user:e,teamDid:c,currentTab:r,column:n=2,refresh:d=()=>{},followed:u=!1,showSocialActions:s=!0}){const{t:h,locale:b}=$(),{api:p}=N(),{session:j}=se(),x=g.useRef(null),[w]=V(x),f=ie({key:"md"}),v={following:p.getUserFollowing,followers:p.getUserFollowers,invitees:p.getUserInvites},{data:L,loading:_,loadMore:k,loadingMore:P,reload:z,error:T}=G(async t=>{if(!e?.did)return{list:[],total:0};const l=t?Math.ceil(t.list.length/I)+1:1,m=v[r];if(!m)return{list:[],total:0};const M=await m({input:{teamDid:c,userDid:e.did,type:r,paging:{page:l,pageSize:I}}});return{list:(r==="invitees"?M?.users:M?.data)||[],total:M?.paging?.total||0}},{reloadDeps:[r,e?.did,u],isNoMore:t=>t?.list.length?t.list.length>=t?.total:!0,onError(t){X.error(R(t))}}),O=()=>{try{r!=="invitees"&&z(),d()}catch(t){console.error(t)}},{list:C=[],total:W=0}=L||{},H=C.length<W,K=J(t=>{if(!t?.did)return;const l=te(re.WELLKNOWN_BLOCKLET_USER_PATH,{did:t.did,locale:b});window.open(l,"_blank")});return g.useEffect(()=>{w&&k()},[w,k]),_?o.jsx(i,{sx:{py:2,display:"grid",gridTemplateColumns:{xs:"1fr",sm:`repeat(${n}, 1fr)`},gap:2},children:Array.from({length:6},(t,l)=>`skeleton-${r}-${l}`).map(t=>o.jsx(ne,{},t))}):C.length===0?o.jsx(U,{currentTab:r,errorMsg:T?R(T):""}):o.jsxs(i,{children:[o.jsx(i,{className:"user-list",sx:{px:f?0:1,py:2,display:"grid",gridTemplateColumns:{md:"1fr",lg:`repeat(${n}, 1fr)`},gap:2},children:C.map(t=>{const l=r==="invitees"?t:t.user;if(!l)return null;let m=r==="following"?t.userDid:t.followerDid;return r==="invitees"&&(m=l.did),o.jsx(i,{className:"user-item",children:o.jsx(Y,{user:l,showDid:!0,cardType:oe.CARD,infoType:ee.INFO,session:j,showSocialActions:s,onAvatarClick:K,onFollowClick:O})},m)})}),H?o.jsx(i,{sx:{display:"flex",justifyContent:"center",mt:2},children:o.jsx(E,{variant:"text",color:"primary",onClick:k,ref:x,children:h(P?"common.loading":"webhookEndpoint.loadMore")})}):null]})}A.propTypes={...B,...S,followed:a.bool};function q({data:e,currentTab:c,onTabChange:r,showInvitees:n=!0}){const{t:d}=$(),u=[{label:d("team.userFollowers.following"),value:"following",count:e?.following||0},{label:d("team.userFollowers.followers"),value:"followers",count:e?.followers||0},...n?[{label:d("team.userFollowers.invitees"),value:"invitees",count:e?.invitees||0}]:[]];return o.jsx(i,{children:u.map(s=>o.jsxs(ae,{className:c===s.value?"active":"",onClick:()=>r(s.value),children:[s.label,s.count>0&&o.jsxs("span",{className:"count",style:{marginLeft:4},children:["(",s.count>99?"99+":s.count,")"]})]},s.value))})}q.propTypes={...B,...S,onTabChange:a.func.isRequired};function le({user:e,teamDid:c,column:r=2,followed:n=!1,showSocialActions:d=!0,showInvitees:u=!0}){const[s,h]=g.useState("following"),{api:b}=N(),p=g.useMemo(()=>{const{settings:f={}}=window?.blocklet||{},{invite:v}=f;return v&&v.enabled},[]),{data:j,refresh:x}=Q(async()=>e?.did?(await b.getUserFollowStats({input:{teamDid:c,userDids:[e.did],options:{includeInvitees:u&&p}}}))?.data?.[e.did]||{following:0,followers:0,invitees:0}:{following:0,followers:0},{refreshDeps:[e?.did,n]}),w=f=>{h(f)};return o.jsxs(i,{children:[o.jsx(q,{data:j,user:e,currentTab:s,onTabChange:w,showInvitees:u&&p}),o.jsx(A,{column:r,user:e,currentTab:s,teamDid:c,followed:n,refresh:x,showSocialActions:d},s)]})}le.propTypes={...S,teamDid:a.string.isRequired,followed:a.bool,showInvitees:a.bool};const ae=D(E)`
|
|
2
2
|
&.MuiButtonBase-root {
|
|
3
3
|
border-radius: 9999px;
|
|
4
4
|
margin-right: 2px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as te,g as Fe}from"./vendor-react-Dvs43sk9.js";import{j as r,ak as j,am as we,T as R,U as De,J as We,Q as Re,bq as He,b6 as ue,br as pe,a6 as Ve}from"./vendor-mui-core-DRxbhqaK.js";import{$ as Ge,A as Ye,T as Pe,G as Ze,o as Ce,f as Xe,I as Ee,j as Qe}from"./vendor-ux-B9VfuZTg.js";import{a as V,g as me,b as ae,h as Je,k as Ke}from"./vendor-hooks-BlA8TRnZ.js";import{aV as $e,aW as ei,aX as Oe,aY as ii}from"./index-C5weIh5R.js";const hi=f=>te.createElement("svg",{width:20,height:20,viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",...f},te.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.25 10C3.25 6.27208 6.27208 3.25 10 3.25C13.7279 3.25 16.75 6.27208 16.75 10C16.75 13.7279 13.7279 16.75 10 16.75C6.27208 16.75 3.25 13.7279 3.25 10ZM10 1.75C5.44365 1.75 1.75 5.44365 1.75 10C1.75 14.5564 5.44365 18.25 10 18.25C14.5563 18.25 18.25 14.5564 18.25 10C18.25 5.44365 14.5563 1.75 10 1.75ZM8.03033 6.96967C7.73744 6.67678 7.26256 6.67678 6.96967 6.96967C6.67678 7.26256 6.67678 7.73744 6.96967 8.03033L11.9697 13.0303C12.2626 13.3232 12.7374 13.3232 13.0303 13.0303C13.3232 12.7374 13.3232 12.2626 13.0303 11.9697L8.03033 6.96967Z"}));var G={exports:{}},oi=G.exports,_e;function ai(){return _e||(_e=1,function(f,x){(function(u,c){var Y="1.0.40",M="",h="?",S="function",z="undefined",I="object",A="string",Z="major",i="model",t="name",e="type",o="vendor",a="version",y="architecture",P="console",s="mobile",p="tablet",k="smarttv",T="wearable",U="embedded",q=500,l="Amazon",b="Apple",E="ASUS",X="BlackBerry",Q="Browser",J="Chrome",Le="Edge",K="Firefox",F="Google",ge="Huawei",re="LG",se="Microsoft",he="Motorola",D="Opera",W="Samsung",fe="Sharp",$="Sony",ne="Xiaomi",le="Zebra",xe="Facebook",ve="Chromium OS",ye="Mac OS",ke=" Browser",Ne=function(w,m){var d={};for(var v in w)m[v]&&m[v].length%2===0?d[v]=m[v].concat(w[v]):d[v]=w[v];return d},ee=function(w){for(var m={},d=0;d<w.length;d++)m[w[d].toUpperCase()]=w[d];return m},Se=function(w,m){return typeof w===A?L(m).indexOf(L(w))!==-1:!1},L=function(w){return w.toLowerCase()},Ue=function(w){return typeof w===A?w.replace(/[^\d\.]/g,M).split(".")[0]:c},ce=function(w,m){if(typeof w===A)return w=w.replace(/^\s\s*/,M),typeof m===z?w:w.substring(0,q)},H=function(w,m){for(var d=0,v,B,O,g,n,_;d<m.length&&!n;){var de=m[d],je=m[d+1];for(v=B=0;v<de.length&&!n&&de[v];)if(n=de[v++].exec(w),n)for(O=0;O<je.length;O++)_=n[++B],g=je[O],typeof g===I&&g.length>0?g.length===2?typeof g[1]==S?this[g[0]]=g[1].call(this,_):this[g[0]]=g[1]:g.length===3?typeof g[1]===S&&!(g[1].exec&&g[1].test)?this[g[0]]=_?g[1].call(this,_,g[2]):c:this[g[0]]=_?_.replace(g[1],g[2]):c:g.length===4&&(this[g[0]]=_?g[3].call(this,_.replace(g[1],g[2])):c):this[g]=_||c;d+=2}},ie=function(w,m){for(var d in m)if(typeof m[d]===I&&m[d].length>0){for(var v=0;v<m[d].length;v++)if(Se(m[d][v],w))return d===h?c:d}else if(Se(m[d],w))return d===h?c:d;return m.hasOwnProperty("*")?m["*"]:w},qe={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},Ae={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Te={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[a,[t,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[a,[t,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[t,a],[/opios[\/ ]+([\w\.]+)/i],[a,[t,D+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[a,[t,D+" GX"]],[/\bopr\/([\w\.]+)/i],[a,[t,D]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[a,[t,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[a,[t,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(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)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[t,a],[/quark(?:pc)?\/([-\w\.]+)/i],[a,[t,"Quark"]],[/\bddg\/([\w\.]+)/i],[a,[t,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[a,[t,"UC"+Q]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[a,[t,"WeChat"]],[/konqueror\/([\w\.]+)/i],[a,[t,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[a,[t,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[a,[t,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[a,[t,"Smart Lenovo "+Q]],[/(avast|avg)\/([\w\.]+)/i],[[t,/(.+)/,"$1 Secure "+Q],a],[/\bfocus\/([\w\.]+)/i],[a,[t,K+" Focus"]],[/\bopt\/([\w\.]+)/i],[a,[t,D+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[a,[t,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[a,[t,"Dolphin"]],[/coast\/([\w\.]+)/i],[a,[t,D+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[a,[t,"MIUI"+ke]],[/fxios\/([\w\.-]+)/i],[a,[t,K]],[/\bqihoobrowser\/?([\w\.]*)/i],[a,[t,"360"]],[/\b(qq)\/([\w\.]+)/i],[[t,/(.+)/,"$1Browser"],a],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[t,/(.+)/,"$1"+ke],a],[/samsungbrowser\/([\w\.]+)/i],[a,[t,W+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[a,[t,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[t,"Sogou Mobile"],a],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[t,a],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[t],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[a,t],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[t,xe],a],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[t,a],[/\bgsa\/([\w\.]+) .*safari\//i],[a,[t,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[a,[t,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[a,[t,J+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[t,J+" WebView"],a],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[a,[t,"Android "+Q]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[t,a],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[a,[t,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[a,t],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[t,[a,ie,qe]],[/(webkit|khtml)\/([\w\.]+)/i],[t,a],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[t,"Netscape"],a],[/(wolvic|librewolf)\/([\w\.]+)/i],[t,a],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[a,[t,K+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[t,[a,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[t,[a,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[y,"amd64"]],[/(ia32(?=;))/i],[[y,L]],[/((?:i[346]|x)86)[;\)]/i],[[y,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[y,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[y,"armhf"]],[/windows (ce|mobile); ppc;/i],[[y,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[y,/ower/,M,L]],[/(sun4\w)[;\)]/i],[[y,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[y,L]]],device:[[/\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],[i,[o,W],[e,p]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[i,[o,W],[e,s]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[i,[o,b],[e,s]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[i,[o,b],[e,p]],[/(macintosh);/i],[i,[o,b]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[i,[o,fe],[e,s]],[/(?:honor)([-\w ]+)[;\)]/i],[i,[o,"Honor"],[e,s]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[i,[o,ge],[e,p]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[i,[o,ge],[e,s]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i],[[i,/_/g," "],[o,ne],[e,s]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[i,/_/g," "],[o,ne],[e,p]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[i,[o,"OPPO"],[e,s]],[/\b(opd2\d{3}a?) bui/i],[i,[o,"OPPO"],[e,p]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[i,[o,"Vivo"],[e,s]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[i,[o,"Realme"],[e,s]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[i,[o,he],[e,s]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[i,[o,he],[e,p]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[i,[o,re],[e,p]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[i,[o,re],[e,s]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[i,[o,"Lenovo"],[e,p]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[i,/_/g," "],[o,"Nokia"],[e,s]],[/(pixel c)\b/i],[i,[o,F],[e,p]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[i,[o,F],[e,s]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[i,[o,$],[e,s]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[i,"Xperia Tablet"],[o,$],[e,p]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[i,[o,"OnePlus"],[e,s]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[i,[o,l],[e,p]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[i,/(.+)/g,"Fire Phone $1"],[o,l],[e,s]],[/(playbook);[-\w\),; ]+(rim)/i],[i,o,[e,p]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[i,[o,X],[e,s]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[i,[o,E],[e,p]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[i,[o,E],[e,s]],[/(nexus 9)/i],[i,[o,"HTC"],[e,p]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[o,[i,/_/g," "],[e,s]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[i,[o,"TCL"],[e,p]],[/(itel) ((\w+))/i],[[o,L],i,[e,ie,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[i,[o,"Acer"],[e,p]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[i,[o,"Meizu"],[e,s]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[i,[o,"Ulefone"],[e,s]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[i,[o,"Energizer"],[e,s]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[i,[o,"Cat"],[e,s]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[i,[o,"Smartfren"],[e,s]],[/droid.+; (a(?:015|06[35]|142p?))/i],[i,[o,"Nothing"],[e,s]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (imo) ((?!tab)[\w ]+?)(?: bui|\))/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[o,i,[e,s]],[/(imo) (tab \w+)/i,/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[o,i,[e,p]],[/(surface duo)/i],[i,[o,se],[e,p]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[i,[o,"Fairphone"],[e,s]],[/(u304aa)/i],[i,[o,"AT&T"],[e,s]],[/\bsie-(\w*)/i],[i,[o,"Siemens"],[e,s]],[/\b(rct\w+) b/i],[i,[o,"RCA"],[e,p]],[/\b(venue[\d ]{2,7}) b/i],[i,[o,"Dell"],[e,p]],[/\b(q(?:mv|ta)\w+) b/i],[i,[o,"Verizon"],[e,p]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[i,[o,"Barnes & Noble"],[e,p]],[/\b(tm\d{3}\w+) b/i],[i,[o,"NuVision"],[e,p]],[/\b(k88) b/i],[i,[o,"ZTE"],[e,p]],[/\b(nx\d{3}j) b/i],[i,[o,"ZTE"],[e,s]],[/\b(gen\d{3}) b.+49h/i],[i,[o,"Swiss"],[e,s]],[/\b(zur\d{3}) b/i],[i,[o,"Swiss"],[e,p]],[/\b((zeki)?tb.*\b) b/i],[i,[o,"Zeki"],[e,p]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[o,"Dragon Touch"],i,[e,p]],[/\b(ns-?\w{0,9}) b/i],[i,[o,"Insignia"],[e,p]],[/\b((nxa|next)-?\w{0,9}) b/i],[i,[o,"NextBook"],[e,p]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[o,"Voice"],i,[e,s]],[/\b(lvtel\-)?(v1[12]) b/i],[[o,"LvTel"],i,[e,s]],[/\b(ph-1) /i],[i,[o,"Essential"],[e,s]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[i,[o,"Envizen"],[e,p]],[/\b(trio[-\w\. ]+) b/i],[i,[o,"MachSpeed"],[e,p]],[/\btu_(1491) b/i],[i,[o,"Rotor"],[e,p]],[/(shield[\w ]+) b/i],[i,[o,"Nvidia"],[e,p]],[/(sprint) (\w+)/i],[o,i,[e,s]],[/(kin\.[onetw]{3})/i],[[i,/\./g," "],[o,se],[e,s]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[i,[o,le],[e,p]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[i,[o,le],[e,s]],[/smart-tv.+(samsung)/i],[o,[e,k]],[/hbbtv.+maple;(\d+)/i],[[i,/^/,"SmartTV"],[o,W],[e,k]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[o,re],[e,k]],[/(apple) ?tv/i],[o,[i,b+" TV"],[e,k]],[/crkey/i],[[i,J+"cast"],[o,F],[e,k]],[/droid.+aft(\w+)( bui|\))/i],[i,[o,l],[e,k]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[i,[o,fe],[e,k]],[/(bravia[\w ]+)( bui|\))/i],[i,[o,$],[e,k]],[/(mitv-\w{5}) bui/i],[i,[o,ne],[e,k]],[/Hbbtv.*(technisat) (.*);/i],[o,i,[e,k]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[o,ce],[i,ce],[e,k]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[e,k]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[o,i,[e,P]],[/droid.+; (shield) bui/i],[i,[o,"Nvidia"],[e,P]],[/(playstation [345portablevi]+)/i],[i,[o,$],[e,P]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[i,[o,se],[e,P]],[/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i],[i,[o,W],[e,T]],[/((pebble))app/i],[o,i,[e,T]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[i,[o,b],[e,T]],[/droid.+; (glass) \d/i],[i,[o,F],[e,T]],[/droid.+; (wt63?0{2,3})\)/i],[i,[o,le],[e,T]],[/droid.+; (glass) \d/i],[i,[o,F],[e,T]],[/(pico) (4|neo3(?: link|pro)?)/i],[o,i,[e,T]],[/; (quest( \d| pro)?)/i],[i,[o,xe],[e,T]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[o,[e,U]],[/(aeobc)\b/i],[i,[o,l],[e,U]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[i,[e,s]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[i,[e,p]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[e,p]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[e,s]],[/(android[-\w\. ]{0,9});.+buil/i],[i,[o,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[a,[t,Le+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[t,a],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[a,[t,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[t,a],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[a,t]],os:[[/microsoft (windows) (vista|xp)/i],[t,a],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[t,[a,ie,Ae]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[a,ie,Ae],[t,"Windows"]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[a,/_/g,"."],[t,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[t,ye],[a,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[a,t],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[t,a],[/\(bb(10);/i],[a,[t,X]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[a,[t,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[a,[t,K+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[a,[t,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[a,[t,"watchOS"]],[/crkey\/([\d\.]+)/i],[a,[t,J+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[t,ve],a],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[t,a],[/(sunos) ?([\w\.\d]*)/i],[[t,"Solaris"],a],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[t,a]]},C=function(w,m){if(typeof w===I&&(m=w,w=c),!(this instanceof C))return new C(w,m).getResult();var d=typeof u!==z&&u.navigator?u.navigator:c,v=w||(d&&d.userAgent?d.userAgent:M),B=d&&d.userAgentData?d.userAgentData:c,O=m?Ne(Te,m):Te,g=d&&d.userAgent==v;return this.getBrowser=function(){var n={};return n[t]=c,n[a]=c,H.call(n,v,O.browser),n[Z]=Ue(n[a]),g&&d&&d.brave&&typeof d.brave.isBrave==S&&(n[t]="Brave"),n},this.getCPU=function(){var n={};return n[y]=c,H.call(n,v,O.cpu),n},this.getDevice=function(){var n={};return n[o]=c,n[i]=c,n[e]=c,H.call(n,v,O.device),g&&!n[e]&&B&&B.mobile&&(n[e]=s),g&&n[i]=="Macintosh"&&d&&typeof d.standalone!==z&&d.maxTouchPoints&&d.maxTouchPoints>2&&(n[i]="iPad",n[e]=p),n},this.getEngine=function(){var n={};return n[t]=c,n[a]=c,H.call(n,v,O.engine),n},this.getOS=function(){var n={};return n[t]=c,n[a]=c,H.call(n,v,O.os),g&&!n[t]&&B&&B.platform&&B.platform!="Unknown"&&(n[t]=B.platform.replace(/chrome os/i,ve).replace(/macos/i,ye)),n},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return v},this.setUA=function(n){return v=typeof n===A&&n.length>q?ce(n,q):n,this},this.setUA(v),this};C.VERSION=Y,C.BROWSER=ee([t,a,Z]),C.CPU=ee([y]),C.DEVICE=ee([i,o,e,P,s,k,p,T,U]),C.ENGINE=C.OS=ee([t,a]),f.exports&&(x=f.exports=C),x.UAParser=C;var N=typeof u!==z&&(u.jQuery||u.Zepto);if(N&&!N.ua){var oe=new C;N.ua=oe.getResult(),N.ua.get=function(){return oe.getUA()},N.ua.set=function(w){oe.setUA(w);var m=oe.getResult();for(var d in m)N.ua[d]=m[d]}}})(typeof window=="object"?window:oi)}(G,G.exports)),G.exports}var ti=ai();const be=Fe(ti);function ri({user:f,sessionUser:x}){const u=V(()=>(f?.passports||[])?.find(c=>c.name===x.role),[f?.passports,x?.role]);return r.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:1},children:[r.jsx(Ge,{size:40,variant:"circle",shape:"circle",src:x.avatar,did:x.did,sx:{flexShrink:0}}),r.jsxs(j,{sx:{flex:1,overflow:"hidden"},children:[r.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:1},children:[r.jsx(we,{title:x.fullName,children:r.jsx(R,{sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flex:1},children:x.fullName})}),r.jsx(De,{label:u?.title||u?.name||"Guest",size:"small",variant:"outlined",sx:{flexShrink:0,fontWeight:"bold",fontSize:"12px",color:"text.primary",borderColor:"grey.300",backgroundColor:"transparent",textTransform:"capitalize",pr:.5,pl:0,height:"auto"}})]}),r.jsx(we,{title:x.email,children:r.jsx(R,{variant:"body2",color:"grey",sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:x.email})})]})]})}const si={zh:{confirm:"确认",cancel:"取消",visitorId:"设备标识",deviceType:"设备类型",platform:"操作系统",walletOS:"钱包类型",role:"角色",fullname:"姓名",email:"邮箱",avatar:"头像",user:"用户",createdAt:"首次活动时间",updatedAt:"最近活动时间",lastLoginIp:"最近活动地址",actions:"操作",logoutAll:"注销所有{type}会话",logoutAllTips:"不会注销当前会话",logout:"注销",currentSession:"当前会话",unknown:"未知",expired:"已过期",remove:"删除",logoutThisSession:"注销指定会话",logoutThisSessionConfirm:"确定要注销此会话吗?",logoutAllSession:"注销所有{type}会话",logoutAllSessionConfirm:"确定要注销所有{type}会话吗?",online:"活跃"},en:{confirm:"Confirm",cancel:"Cancel",visitorId:"Device ID",deviceType:"Device Type",platform:"Platform",walletOS:"Wallet OS",role:"Role",fullname:"Fullname",email:"Email",avatar:"Avatar",user:"User",createdAt:"First Active Time",updatedAt:"Last Active Time",actions:"Actions",lastLoginIp:"Last Login IP",logoutAll:"Logout all {type} sessions",logoutAllTips:"Will not logout current session",logout:"Logout",currentSession:"Current Session",unknown:"Unknown",expired:"Expired",remove:"Remove",logoutThisSession:"Logout this session",logoutThisSessionConfirm:"Are you sure to logout this session?",logoutAllSession:"Logout all {type} sessions",logoutAllSessionConfirm:"Are you sure to logout all {type} sessions?",online:"Active"}},Me="Reserved IP",ze="ip-region-cache";async function ni(f){const x=`https://ipapi.co/${f}/json/`,u=await(await fetch(x)).json();let c="";return u.error?u.reserved&&(c=Me):c=[u.country_name,u.region,u.city].filter(Boolean).join("/"),c}async function li(f){const x=`https://api.ip.sb/geoip/${f}`,u=await(await fetch(x)).json();let c="";return u.error?u.reserved&&(c=Me):c=[u.country,u.region,u.city].filter(Boolean).join("/"),c}async function ci(f){let x="",u={};try{const c=localStorage.getItem(ze);c&&(u=JSON.parse(c))}catch{u={}}if(u[f])x=u[f];else{try{x=await li(f)}catch{console.warn("Fail to get ip region from ip.sb")}if(!x)try{x=await ni(f)}catch{console.warn("Fail to get ip region from ip-api.co")}}if(x){const c=Object.keys(u);c.length>100&&delete u[c[0]],u[f]&&delete u[f],u[f]=x,localStorage.setItem(ze,JSON.stringify(u))}return x}const Be=f=>new be(f,{browser:[[/(ArcWallet)\/([\w\.]+)/i],[be.BROWSER.NAME,be.BROWSER.VERSION]]}).getResult(),Ie={display:"flex",justifyContent:"flex-end",textAlign:"right"},di=new ii({concurrency:1}),ui=te.memo(({userSession:f,isMobile:x=!1})=>{const u=me({loading:!0,ipRegion:""}),{t:c}=Pe();return te.useEffect(()=>{di.add(async()=>{try{u.ipRegion=await ci(f.lastLoginIp)}finally{u.loading=!1}})},[u,f.lastLoginIp]),r.jsx(j,{...x&&{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:1,flexWrap:"wrap"},children:u.ipRegion?r.jsxs(r.Fragment,{children:[r.jsx(R,{variant:"body2",children:u.ipRegion}),r.jsx(R,{variant:"body2",color:"grey",children:f.lastLoginIp||c("unknown")})]}):r.jsxs(r.Fragment,{children:[r.jsx(R,{children:f.lastLoginIp||c("unknown")}),u.loading?r.jsx(R,{variant:"body2",color:"grey",sx:{textAlign:"center"},children:r.jsx(Ve,{size:12,color:"inherit"})}):null]})})});function fi({user:f,showAction:x=!0,showUser:u=!0,getUserSessions:c,showOffline:Y=!1,showAppPid:M=!1}){const h=me({status:"online",page:1,pageSize:10}),S=me({online:0,expired:0,offline:0}),z=Ye(),{locale:I}=Pe(),A=$e({key:"md"}),Z=We(l=>l.breakpoints.down("lg")),{confirmApi:i,confirmHolder:t}=ei(),e=ae((l,b={})=>Ze(si,l,I,"en",b)),o=ae(async()=>{const l=await c({page:h.page,pageSize:h.pageSize,status:h.status}),b=l?.paging?.total||0;return S[h.status]=b,{total:b,list:l?.list||[]}});Je(async()=>{const l=await c({page:1,pageSize:1,status:"expired"});S.expired=l?.paging?.total||0;const b=await c({page:1,pageSize:1,status:"offline"});S.offline=b?.paging?.total||0});const a=Ke(o,{refreshDeps:[h.status,h.page,h.pageSize]}),y=V(()=>a.data?.list||[],[a.data?.list]),P=V(()=>{const l=h.status;return l==="online"?S[l]<=1:S[l]===0},[y,z]),s=V(()=>Ce({},A?Ie:{}),[A]),p=ae(({visitorId:l})=>{i.open({title:e("logoutThisSession"),content:e("logoutThisSessionConfirm"),confirmButtonText:e("confirm"),confirmButtonProps:{color:"error"},cancelButtonText:e("cancel"),onConfirm:async()=>{await Oe.user.logout({visitorId:l,includeFederated:!0});const{page:b=0}=h,{list:E=[]}=a.data||{},X=E.length||0;b>1&&X===1&&(h.page=Math.max(b-1,1)),a.refresh(),i.close()}})}),k=ae(()=>{i.open({title:e("logoutAllSession",{type:e(h.status)}),content:e("logoutAllSessionConfirm",{type:e(h.status)}),confirmButtonText:e("confirm"),confirmButtonProps:{color:"error"},cancelButtonText:e("cancel"),onConfirm:async()=>{await Oe.user.logout({status:h.status,visitorId:z,includeFederated:!0}),h.page=1,a.refresh(),i.close()}})}),T=[];x&&T.push(r.jsx(we,{title:e("logoutAllTips",{type:e(h.status)}),children:r.jsx(Re,{sx:{ml:.5},size:"small",variant:"contained",color:"error",onClick:k,disabled:P,children:e("logoutAll",{type:e(h.status)})})},"logoutAll"));const U=V(()=>({search:!1,sort:!1,download:!1,filter:!1,print:!1,expandableRowsOnClick:!1,searchDebounceTime:600,page:h.page-1,rowsPerPage:h.pageSize,count:a.data?.total||0}),[a.data?.total,h.page,h.pageSize]),q=[{label:e("platform"),name:"platform",options:{customBodyRenderLite:l=>{const b=y[l],E=Be(b?.ua);return r.jsx(j,{sx:s,children:[E.os?.name,E.os?.version].filter(Boolean).join("/")||e("unknown")})}}},{label:e("deviceType"),name:"deviceType",options:{customBodyRenderLite:l=>{const b=y[l],E=Be(b?.ua);return r.jsx(j,{sx:s,children:[E.browser?.name,E.browser?.version].filter(Boolean).join("/")||e("unknown")})}}},{label:e("walletOS"),name:"walletOS",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:s,children:b.extra?.walletOS||e("unknown")})}}},M&&{label:"App Pid",name:"appPid",options:{customBodyRenderLite:l=>{const b=y[l];return b.appPid?r.jsx(Xe,{size:14,responsive:!1,compact:!0,did:b.appPid}):null}}},u&&{label:e("user"),name:"user",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:Ce({minWidth:150,maxWidth:250},A?Ie:{}),children:r.jsx(ri,{sessionUser:b.user,user:f})})}}},{label:e("createdAt"),name:"createdAt",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:s,children:b.createdAt?r.jsx(Ee,{value:b.createdAt,relativeRange:3*86400*1e3,locale:I}):e("unknown")})}}},!Y&&{label:e("updatedAt"),name:"updatedAt",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:s,children:b.status==="expired"?e("expired"):r.jsx(Ee,{value:b.updatedAt,relativeRange:3*86400*1e3,locale:I})})}}},{label:e("lastLoginIp"),name:"lastLoginIp",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(ui,{userSession:b,isMobile:A})}}},x&&{label:e("actions"),name:"actions",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:s,children:r.jsx(Re,{sx:{whiteSpace:"nowrap",fontSize:"12px !important",lineHeight:"1.25",px:1},disabled:z===b.visitorId,variant:"outlined",size:"small",color:"error",onClick:()=>p({visitorId:b.visitorId}),children:b.status==="expired"?e("remove"):z===b.visitorId?e("currentSession"):e("logout")})})}}}].filter(Boolean);return r.jsxs(j,{className:"pc-user-sessions",sx:{maxWidth:A?"unset":Z?"calc(100vw - 300px)":"100%",...A&&{".pc-user-sessions-table > div:nth-child(2)":{border:"1px solid",borderColor:"divider",borderRadius:1}},".MuiTableCell-head":{whiteSpace:"nowrap",fontWeight:"bold"},".MuiTableRow-root":{border:"unset","&:nth-child(even)":{backgroundColor:"grey.50","&:hover":{backgroundColor:l=>`${l.palette.grey[50]} !important`}}},".MuiTableRow-hover":{"&:hover":{backgroundColor:"inherit !important"}},".MuiTableCell-root":{paddingRight:"8px",paddingLeft:"8px",color:"text.secondary",...A&&{padding:"8px !important","&:first-child":{paddingTop:"20px!important"},"&:last-child":{paddingBottom:"20px!important"}}}},children:[t,r.jsx(Qe,{count:a.data?.total||0,locale:I,data:y,columns:q,customButtons:T,options:U,loading:a.loading,className:"pc-user-sessions-table",title:r.jsxs(He,{row:!0,sx:{lineHeight:1,ml:1},onChange:l=>{h.status=l.target.value},children:[r.jsx(ue,{value:"online",control:r.jsx(pe,{size:"small",sx:{lineHeight:1,fontSize:0},checked:h.status==="online"}),label:r.jsxs(R,{sx:{display:"flex",alignItems:"center"},children:[e("online"),r.jsxs(R,{component:"span",sx:{ml:.5,color:"text.secondary"},children:["(",S.online,")"]})]})}),r.jsx(ue,{value:"expired",control:r.jsx(pe,{size:"small",sx:{lineHeight:1,fontSize:0},checked:h.status==="expired"}),label:r.jsxs(R,{sx:{display:"flex",alignItems:"center"},children:[e("expired"),r.jsxs(R,{component:"span",sx:{ml:.5,color:"text.secondary"},children:["(",S.expired,")"]})]})}),Y?r.jsx(ue,{value:"offline",control:r.jsx(pe,{size:"small",sx:{lineHeight:1,fontSize:0},checked:h.status==="offline"}),label:r.jsxs(R,{sx:{display:"flex",alignItems:"center"},children:[e("offline"),r.jsxs(R,{component:"span",sx:{ml:.5,color:"text.secondary"},children:["(",S.offline,")"]})]})}):null]}),onChange:l=>{h.page=l.page+1,h.pageSize=l.rowsPerPage}})]})}export{hi as C,fi as P,be as U};
|
|
1
|
+
import{r as te,g as Fe}from"./vendor-react-Dvs43sk9.js";import{j as r,ak as j,am as we,T as R,U as De,J as We,Q as Re,bq as He,b6 as ue,br as pe,a6 as Ve}from"./vendor-mui-core-DRxbhqaK.js";import{$ as Ge,A as Ye,T as Pe,G as Ze,o as Ce,f as Xe,I as Ee,j as Qe}from"./vendor-ux-B9VfuZTg.js";import{a as V,g as me,b as ae,h as Je,k as Ke}from"./vendor-hooks-BlA8TRnZ.js";import{aV as $e,aW as ei,aX as Oe,aY as ii}from"./index-CDK4fL-O.js";const hi=f=>te.createElement("svg",{width:20,height:20,viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",...f},te.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.25 10C3.25 6.27208 6.27208 3.25 10 3.25C13.7279 3.25 16.75 6.27208 16.75 10C16.75 13.7279 13.7279 16.75 10 16.75C6.27208 16.75 3.25 13.7279 3.25 10ZM10 1.75C5.44365 1.75 1.75 5.44365 1.75 10C1.75 14.5564 5.44365 18.25 10 18.25C14.5563 18.25 18.25 14.5564 18.25 10C18.25 5.44365 14.5563 1.75 10 1.75ZM8.03033 6.96967C7.73744 6.67678 7.26256 6.67678 6.96967 6.96967C6.67678 7.26256 6.67678 7.73744 6.96967 8.03033L11.9697 13.0303C12.2626 13.3232 12.7374 13.3232 13.0303 13.0303C13.3232 12.7374 13.3232 12.2626 13.0303 11.9697L8.03033 6.96967Z"}));var G={exports:{}},oi=G.exports,_e;function ai(){return _e||(_e=1,function(f,x){(function(u,c){var Y="1.0.40",M="",h="?",S="function",z="undefined",I="object",A="string",Z="major",i="model",t="name",e="type",o="vendor",a="version",y="architecture",P="console",s="mobile",p="tablet",k="smarttv",T="wearable",U="embedded",q=500,l="Amazon",b="Apple",E="ASUS",X="BlackBerry",Q="Browser",J="Chrome",Le="Edge",K="Firefox",F="Google",ge="Huawei",re="LG",se="Microsoft",he="Motorola",D="Opera",W="Samsung",fe="Sharp",$="Sony",ne="Xiaomi",le="Zebra",xe="Facebook",ve="Chromium OS",ye="Mac OS",ke=" Browser",Ne=function(w,m){var d={};for(var v in w)m[v]&&m[v].length%2===0?d[v]=m[v].concat(w[v]):d[v]=w[v];return d},ee=function(w){for(var m={},d=0;d<w.length;d++)m[w[d].toUpperCase()]=w[d];return m},Se=function(w,m){return typeof w===A?L(m).indexOf(L(w))!==-1:!1},L=function(w){return w.toLowerCase()},Ue=function(w){return typeof w===A?w.replace(/[^\d\.]/g,M).split(".")[0]:c},ce=function(w,m){if(typeof w===A)return w=w.replace(/^\s\s*/,M),typeof m===z?w:w.substring(0,q)},H=function(w,m){for(var d=0,v,B,O,g,n,_;d<m.length&&!n;){var de=m[d],je=m[d+1];for(v=B=0;v<de.length&&!n&&de[v];)if(n=de[v++].exec(w),n)for(O=0;O<je.length;O++)_=n[++B],g=je[O],typeof g===I&&g.length>0?g.length===2?typeof g[1]==S?this[g[0]]=g[1].call(this,_):this[g[0]]=g[1]:g.length===3?typeof g[1]===S&&!(g[1].exec&&g[1].test)?this[g[0]]=_?g[1].call(this,_,g[2]):c:this[g[0]]=_?_.replace(g[1],g[2]):c:g.length===4&&(this[g[0]]=_?g[3].call(this,_.replace(g[1],g[2])):c):this[g]=_||c;d+=2}},ie=function(w,m){for(var d in m)if(typeof m[d]===I&&m[d].length>0){for(var v=0;v<m[d].length;v++)if(Se(m[d][v],w))return d===h?c:d}else if(Se(m[d],w))return d===h?c:d;return m.hasOwnProperty("*")?m["*"]:w},qe={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},Ae={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Te={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[a,[t,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[a,[t,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[t,a],[/opios[\/ ]+([\w\.]+)/i],[a,[t,D+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[a,[t,D+" GX"]],[/\bopr\/([\w\.]+)/i],[a,[t,D]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[a,[t,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[a,[t,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(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)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[t,a],[/quark(?:pc)?\/([-\w\.]+)/i],[a,[t,"Quark"]],[/\bddg\/([\w\.]+)/i],[a,[t,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[a,[t,"UC"+Q]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[a,[t,"WeChat"]],[/konqueror\/([\w\.]+)/i],[a,[t,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[a,[t,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[a,[t,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[a,[t,"Smart Lenovo "+Q]],[/(avast|avg)\/([\w\.]+)/i],[[t,/(.+)/,"$1 Secure "+Q],a],[/\bfocus\/([\w\.]+)/i],[a,[t,K+" Focus"]],[/\bopt\/([\w\.]+)/i],[a,[t,D+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[a,[t,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[a,[t,"Dolphin"]],[/coast\/([\w\.]+)/i],[a,[t,D+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[a,[t,"MIUI"+ke]],[/fxios\/([\w\.-]+)/i],[a,[t,K]],[/\bqihoobrowser\/?([\w\.]*)/i],[a,[t,"360"]],[/\b(qq)\/([\w\.]+)/i],[[t,/(.+)/,"$1Browser"],a],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[t,/(.+)/,"$1"+ke],a],[/samsungbrowser\/([\w\.]+)/i],[a,[t,W+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[a,[t,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[t,"Sogou Mobile"],a],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[t,a],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[t],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[a,t],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[t,xe],a],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[t,a],[/\bgsa\/([\w\.]+) .*safari\//i],[a,[t,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[a,[t,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[a,[t,J+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[t,J+" WebView"],a],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[a,[t,"Android "+Q]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[t,a],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[a,[t,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[a,t],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[t,[a,ie,qe]],[/(webkit|khtml)\/([\w\.]+)/i],[t,a],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[t,"Netscape"],a],[/(wolvic|librewolf)\/([\w\.]+)/i],[t,a],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[a,[t,K+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[t,[a,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[t,[a,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[y,"amd64"]],[/(ia32(?=;))/i],[[y,L]],[/((?:i[346]|x)86)[;\)]/i],[[y,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[y,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[y,"armhf"]],[/windows (ce|mobile); ppc;/i],[[y,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[y,/ower/,M,L]],[/(sun4\w)[;\)]/i],[[y,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[y,L]]],device:[[/\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],[i,[o,W],[e,p]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[i,[o,W],[e,s]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[i,[o,b],[e,s]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[i,[o,b],[e,p]],[/(macintosh);/i],[i,[o,b]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[i,[o,fe],[e,s]],[/(?:honor)([-\w ]+)[;\)]/i],[i,[o,"Honor"],[e,s]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[i,[o,ge],[e,p]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[i,[o,ge],[e,s]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i],[[i,/_/g," "],[o,ne],[e,s]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[i,/_/g," "],[o,ne],[e,p]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[i,[o,"OPPO"],[e,s]],[/\b(opd2\d{3}a?) bui/i],[i,[o,"OPPO"],[e,p]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[i,[o,"Vivo"],[e,s]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[i,[o,"Realme"],[e,s]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[i,[o,he],[e,s]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[i,[o,he],[e,p]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[i,[o,re],[e,p]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[i,[o,re],[e,s]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[i,[o,"Lenovo"],[e,p]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[i,/_/g," "],[o,"Nokia"],[e,s]],[/(pixel c)\b/i],[i,[o,F],[e,p]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[i,[o,F],[e,s]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[i,[o,$],[e,s]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[i,"Xperia Tablet"],[o,$],[e,p]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[i,[o,"OnePlus"],[e,s]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[i,[o,l],[e,p]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[i,/(.+)/g,"Fire Phone $1"],[o,l],[e,s]],[/(playbook);[-\w\),; ]+(rim)/i],[i,o,[e,p]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[i,[o,X],[e,s]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[i,[o,E],[e,p]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[i,[o,E],[e,s]],[/(nexus 9)/i],[i,[o,"HTC"],[e,p]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[o,[i,/_/g," "],[e,s]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[i,[o,"TCL"],[e,p]],[/(itel) ((\w+))/i],[[o,L],i,[e,ie,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[i,[o,"Acer"],[e,p]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[i,[o,"Meizu"],[e,s]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[i,[o,"Ulefone"],[e,s]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[i,[o,"Energizer"],[e,s]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[i,[o,"Cat"],[e,s]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[i,[o,"Smartfren"],[e,s]],[/droid.+; (a(?:015|06[35]|142p?))/i],[i,[o,"Nothing"],[e,s]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (imo) ((?!tab)[\w ]+?)(?: bui|\))/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[o,i,[e,s]],[/(imo) (tab \w+)/i,/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[o,i,[e,p]],[/(surface duo)/i],[i,[o,se],[e,p]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[i,[o,"Fairphone"],[e,s]],[/(u304aa)/i],[i,[o,"AT&T"],[e,s]],[/\bsie-(\w*)/i],[i,[o,"Siemens"],[e,s]],[/\b(rct\w+) b/i],[i,[o,"RCA"],[e,p]],[/\b(venue[\d ]{2,7}) b/i],[i,[o,"Dell"],[e,p]],[/\b(q(?:mv|ta)\w+) b/i],[i,[o,"Verizon"],[e,p]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[i,[o,"Barnes & Noble"],[e,p]],[/\b(tm\d{3}\w+) b/i],[i,[o,"NuVision"],[e,p]],[/\b(k88) b/i],[i,[o,"ZTE"],[e,p]],[/\b(nx\d{3}j) b/i],[i,[o,"ZTE"],[e,s]],[/\b(gen\d{3}) b.+49h/i],[i,[o,"Swiss"],[e,s]],[/\b(zur\d{3}) b/i],[i,[o,"Swiss"],[e,p]],[/\b((zeki)?tb.*\b) b/i],[i,[o,"Zeki"],[e,p]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[o,"Dragon Touch"],i,[e,p]],[/\b(ns-?\w{0,9}) b/i],[i,[o,"Insignia"],[e,p]],[/\b((nxa|next)-?\w{0,9}) b/i],[i,[o,"NextBook"],[e,p]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[o,"Voice"],i,[e,s]],[/\b(lvtel\-)?(v1[12]) b/i],[[o,"LvTel"],i,[e,s]],[/\b(ph-1) /i],[i,[o,"Essential"],[e,s]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[i,[o,"Envizen"],[e,p]],[/\b(trio[-\w\. ]+) b/i],[i,[o,"MachSpeed"],[e,p]],[/\btu_(1491) b/i],[i,[o,"Rotor"],[e,p]],[/(shield[\w ]+) b/i],[i,[o,"Nvidia"],[e,p]],[/(sprint) (\w+)/i],[o,i,[e,s]],[/(kin\.[onetw]{3})/i],[[i,/\./g," "],[o,se],[e,s]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[i,[o,le],[e,p]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[i,[o,le],[e,s]],[/smart-tv.+(samsung)/i],[o,[e,k]],[/hbbtv.+maple;(\d+)/i],[[i,/^/,"SmartTV"],[o,W],[e,k]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[o,re],[e,k]],[/(apple) ?tv/i],[o,[i,b+" TV"],[e,k]],[/crkey/i],[[i,J+"cast"],[o,F],[e,k]],[/droid.+aft(\w+)( bui|\))/i],[i,[o,l],[e,k]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[i,[o,fe],[e,k]],[/(bravia[\w ]+)( bui|\))/i],[i,[o,$],[e,k]],[/(mitv-\w{5}) bui/i],[i,[o,ne],[e,k]],[/Hbbtv.*(technisat) (.*);/i],[o,i,[e,k]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[o,ce],[i,ce],[e,k]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[e,k]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[o,i,[e,P]],[/droid.+; (shield) bui/i],[i,[o,"Nvidia"],[e,P]],[/(playstation [345portablevi]+)/i],[i,[o,$],[e,P]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[i,[o,se],[e,P]],[/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i],[i,[o,W],[e,T]],[/((pebble))app/i],[o,i,[e,T]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[i,[o,b],[e,T]],[/droid.+; (glass) \d/i],[i,[o,F],[e,T]],[/droid.+; (wt63?0{2,3})\)/i],[i,[o,le],[e,T]],[/droid.+; (glass) \d/i],[i,[o,F],[e,T]],[/(pico) (4|neo3(?: link|pro)?)/i],[o,i,[e,T]],[/; (quest( \d| pro)?)/i],[i,[o,xe],[e,T]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[o,[e,U]],[/(aeobc)\b/i],[i,[o,l],[e,U]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[i,[e,s]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[i,[e,p]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[e,p]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[e,s]],[/(android[-\w\. ]{0,9});.+buil/i],[i,[o,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[a,[t,Le+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[t,a],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[a,[t,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[t,a],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[a,t]],os:[[/microsoft (windows) (vista|xp)/i],[t,a],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[t,[a,ie,Ae]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[a,ie,Ae],[t,"Windows"]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[a,/_/g,"."],[t,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[t,ye],[a,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[a,t],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[t,a],[/\(bb(10);/i],[a,[t,X]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[a,[t,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[a,[t,K+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[a,[t,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[a,[t,"watchOS"]],[/crkey\/([\d\.]+)/i],[a,[t,J+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[t,ve],a],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[t,a],[/(sunos) ?([\w\.\d]*)/i],[[t,"Solaris"],a],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[t,a]]},C=function(w,m){if(typeof w===I&&(m=w,w=c),!(this instanceof C))return new C(w,m).getResult();var d=typeof u!==z&&u.navigator?u.navigator:c,v=w||(d&&d.userAgent?d.userAgent:M),B=d&&d.userAgentData?d.userAgentData:c,O=m?Ne(Te,m):Te,g=d&&d.userAgent==v;return this.getBrowser=function(){var n={};return n[t]=c,n[a]=c,H.call(n,v,O.browser),n[Z]=Ue(n[a]),g&&d&&d.brave&&typeof d.brave.isBrave==S&&(n[t]="Brave"),n},this.getCPU=function(){var n={};return n[y]=c,H.call(n,v,O.cpu),n},this.getDevice=function(){var n={};return n[o]=c,n[i]=c,n[e]=c,H.call(n,v,O.device),g&&!n[e]&&B&&B.mobile&&(n[e]=s),g&&n[i]=="Macintosh"&&d&&typeof d.standalone!==z&&d.maxTouchPoints&&d.maxTouchPoints>2&&(n[i]="iPad",n[e]=p),n},this.getEngine=function(){var n={};return n[t]=c,n[a]=c,H.call(n,v,O.engine),n},this.getOS=function(){var n={};return n[t]=c,n[a]=c,H.call(n,v,O.os),g&&!n[t]&&B&&B.platform&&B.platform!="Unknown"&&(n[t]=B.platform.replace(/chrome os/i,ve).replace(/macos/i,ye)),n},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return v},this.setUA=function(n){return v=typeof n===A&&n.length>q?ce(n,q):n,this},this.setUA(v),this};C.VERSION=Y,C.BROWSER=ee([t,a,Z]),C.CPU=ee([y]),C.DEVICE=ee([i,o,e,P,s,k,p,T,U]),C.ENGINE=C.OS=ee([t,a]),f.exports&&(x=f.exports=C),x.UAParser=C;var N=typeof u!==z&&(u.jQuery||u.Zepto);if(N&&!N.ua){var oe=new C;N.ua=oe.getResult(),N.ua.get=function(){return oe.getUA()},N.ua.set=function(w){oe.setUA(w);var m=oe.getResult();for(var d in m)N.ua[d]=m[d]}}})(typeof window=="object"?window:oi)}(G,G.exports)),G.exports}var ti=ai();const be=Fe(ti);function ri({user:f,sessionUser:x}){const u=V(()=>(f?.passports||[])?.find(c=>c.name===x.role),[f?.passports,x?.role]);return r.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:1},children:[r.jsx(Ge,{size:40,variant:"circle",shape:"circle",src:x.avatar,did:x.did,sx:{flexShrink:0}}),r.jsxs(j,{sx:{flex:1,overflow:"hidden"},children:[r.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:1},children:[r.jsx(we,{title:x.fullName,children:r.jsx(R,{sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flex:1},children:x.fullName})}),r.jsx(De,{label:u?.title||u?.name||"Guest",size:"small",variant:"outlined",sx:{flexShrink:0,fontWeight:"bold",fontSize:"12px",color:"text.primary",borderColor:"grey.300",backgroundColor:"transparent",textTransform:"capitalize",pr:.5,pl:0,height:"auto"}})]}),r.jsx(we,{title:x.email,children:r.jsx(R,{variant:"body2",color:"grey",sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:x.email})})]})]})}const si={zh:{confirm:"确认",cancel:"取消",visitorId:"设备标识",deviceType:"设备类型",platform:"操作系统",walletOS:"钱包类型",role:"角色",fullname:"姓名",email:"邮箱",avatar:"头像",user:"用户",createdAt:"首次活动时间",updatedAt:"最近活动时间",lastLoginIp:"最近活动地址",actions:"操作",logoutAll:"注销所有{type}会话",logoutAllTips:"不会注销当前会话",logout:"注销",currentSession:"当前会话",unknown:"未知",expired:"已过期",remove:"删除",logoutThisSession:"注销指定会话",logoutThisSessionConfirm:"确定要注销此会话吗?",logoutAllSession:"注销所有{type}会话",logoutAllSessionConfirm:"确定要注销所有{type}会话吗?",online:"活跃"},en:{confirm:"Confirm",cancel:"Cancel",visitorId:"Device ID",deviceType:"Device Type",platform:"Platform",walletOS:"Wallet OS",role:"Role",fullname:"Fullname",email:"Email",avatar:"Avatar",user:"User",createdAt:"First Active Time",updatedAt:"Last Active Time",actions:"Actions",lastLoginIp:"Last Login IP",logoutAll:"Logout all {type} sessions",logoutAllTips:"Will not logout current session",logout:"Logout",currentSession:"Current Session",unknown:"Unknown",expired:"Expired",remove:"Remove",logoutThisSession:"Logout this session",logoutThisSessionConfirm:"Are you sure to logout this session?",logoutAllSession:"Logout all {type} sessions",logoutAllSessionConfirm:"Are you sure to logout all {type} sessions?",online:"Active"}},Me="Reserved IP",ze="ip-region-cache";async function ni(f){const x=`https://ipapi.co/${f}/json/`,u=await(await fetch(x)).json();let c="";return u.error?u.reserved&&(c=Me):c=[u.country_name,u.region,u.city].filter(Boolean).join("/"),c}async function li(f){const x=`https://api.ip.sb/geoip/${f}`,u=await(await fetch(x)).json();let c="";return u.error?u.reserved&&(c=Me):c=[u.country,u.region,u.city].filter(Boolean).join("/"),c}async function ci(f){let x="",u={};try{const c=localStorage.getItem(ze);c&&(u=JSON.parse(c))}catch{u={}}if(u[f])x=u[f];else{try{x=await li(f)}catch{console.warn("Fail to get ip region from ip.sb")}if(!x)try{x=await ni(f)}catch{console.warn("Fail to get ip region from ip-api.co")}}if(x){const c=Object.keys(u);c.length>100&&delete u[c[0]],u[f]&&delete u[f],u[f]=x,localStorage.setItem(ze,JSON.stringify(u))}return x}const Be=f=>new be(f,{browser:[[/(ArcWallet)\/([\w\.]+)/i],[be.BROWSER.NAME,be.BROWSER.VERSION]]}).getResult(),Ie={display:"flex",justifyContent:"flex-end",textAlign:"right"},di=new ii({concurrency:1}),ui=te.memo(({userSession:f,isMobile:x=!1})=>{const u=me({loading:!0,ipRegion:""}),{t:c}=Pe();return te.useEffect(()=>{di.add(async()=>{try{u.ipRegion=await ci(f.lastLoginIp)}finally{u.loading=!1}})},[u,f.lastLoginIp]),r.jsx(j,{...x&&{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:1,flexWrap:"wrap"},children:u.ipRegion?r.jsxs(r.Fragment,{children:[r.jsx(R,{variant:"body2",children:u.ipRegion}),r.jsx(R,{variant:"body2",color:"grey",children:f.lastLoginIp||c("unknown")})]}):r.jsxs(r.Fragment,{children:[r.jsx(R,{children:f.lastLoginIp||c("unknown")}),u.loading?r.jsx(R,{variant:"body2",color:"grey",sx:{textAlign:"center"},children:r.jsx(Ve,{size:12,color:"inherit"})}):null]})})});function fi({user:f,showAction:x=!0,showUser:u=!0,getUserSessions:c,showOffline:Y=!1,showAppPid:M=!1}){const h=me({status:"online",page:1,pageSize:10}),S=me({online:0,expired:0,offline:0}),z=Ye(),{locale:I}=Pe(),A=$e({key:"md"}),Z=We(l=>l.breakpoints.down("lg")),{confirmApi:i,confirmHolder:t}=ei(),e=ae((l,b={})=>Ze(si,l,I,"en",b)),o=ae(async()=>{const l=await c({page:h.page,pageSize:h.pageSize,status:h.status}),b=l?.paging?.total||0;return S[h.status]=b,{total:b,list:l?.list||[]}});Je(async()=>{const l=await c({page:1,pageSize:1,status:"expired"});S.expired=l?.paging?.total||0;const b=await c({page:1,pageSize:1,status:"offline"});S.offline=b?.paging?.total||0});const a=Ke(o,{refreshDeps:[h.status,h.page,h.pageSize]}),y=V(()=>a.data?.list||[],[a.data?.list]),P=V(()=>{const l=h.status;return l==="online"?S[l]<=1:S[l]===0},[y,z]),s=V(()=>Ce({},A?Ie:{}),[A]),p=ae(({visitorId:l})=>{i.open({title:e("logoutThisSession"),content:e("logoutThisSessionConfirm"),confirmButtonText:e("confirm"),confirmButtonProps:{color:"error"},cancelButtonText:e("cancel"),onConfirm:async()=>{await Oe.user.logout({visitorId:l,includeFederated:!0});const{page:b=0}=h,{list:E=[]}=a.data||{},X=E.length||0;b>1&&X===1&&(h.page=Math.max(b-1,1)),a.refresh(),i.close()}})}),k=ae(()=>{i.open({title:e("logoutAllSession",{type:e(h.status)}),content:e("logoutAllSessionConfirm",{type:e(h.status)}),confirmButtonText:e("confirm"),confirmButtonProps:{color:"error"},cancelButtonText:e("cancel"),onConfirm:async()=>{await Oe.user.logout({status:h.status,visitorId:z,includeFederated:!0}),h.page=1,a.refresh(),i.close()}})}),T=[];x&&T.push(r.jsx(we,{title:e("logoutAllTips",{type:e(h.status)}),children:r.jsx(Re,{sx:{ml:.5},size:"small",variant:"contained",color:"error",onClick:k,disabled:P,children:e("logoutAll",{type:e(h.status)})})},"logoutAll"));const U=V(()=>({search:!1,sort:!1,download:!1,filter:!1,print:!1,expandableRowsOnClick:!1,searchDebounceTime:600,page:h.page-1,rowsPerPage:h.pageSize,count:a.data?.total||0}),[a.data?.total,h.page,h.pageSize]),q=[{label:e("platform"),name:"platform",options:{customBodyRenderLite:l=>{const b=y[l],E=Be(b?.ua);return r.jsx(j,{sx:s,children:[E.os?.name,E.os?.version].filter(Boolean).join("/")||e("unknown")})}}},{label:e("deviceType"),name:"deviceType",options:{customBodyRenderLite:l=>{const b=y[l],E=Be(b?.ua);return r.jsx(j,{sx:s,children:[E.browser?.name,E.browser?.version].filter(Boolean).join("/")||e("unknown")})}}},{label:e("walletOS"),name:"walletOS",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:s,children:b.extra?.walletOS||e("unknown")})}}},M&&{label:"App Pid",name:"appPid",options:{customBodyRenderLite:l=>{const b=y[l];return b.appPid?r.jsx(Xe,{size:14,responsive:!1,compact:!0,did:b.appPid}):null}}},u&&{label:e("user"),name:"user",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:Ce({minWidth:150,maxWidth:250},A?Ie:{}),children:r.jsx(ri,{sessionUser:b.user,user:f})})}}},{label:e("createdAt"),name:"createdAt",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:s,children:b.createdAt?r.jsx(Ee,{value:b.createdAt,relativeRange:3*86400*1e3,locale:I}):e("unknown")})}}},!Y&&{label:e("updatedAt"),name:"updatedAt",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:s,children:b.status==="expired"?e("expired"):r.jsx(Ee,{value:b.updatedAt,relativeRange:3*86400*1e3,locale:I})})}}},{label:e("lastLoginIp"),name:"lastLoginIp",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(ui,{userSession:b,isMobile:A})}}},x&&{label:e("actions"),name:"actions",options:{customBodyRenderLite:l=>{const b=y[l];return r.jsx(j,{sx:s,children:r.jsx(Re,{sx:{whiteSpace:"nowrap",fontSize:"12px !important",lineHeight:"1.25",px:1},disabled:z===b.visitorId,variant:"outlined",size:"small",color:"error",onClick:()=>p({visitorId:b.visitorId}),children:b.status==="expired"?e("remove"):z===b.visitorId?e("currentSession"):e("logout")})})}}}].filter(Boolean);return r.jsxs(j,{className:"pc-user-sessions",sx:{maxWidth:A?"unset":Z?"calc(100vw - 300px)":"100%",...A&&{".pc-user-sessions-table > div:nth-child(2)":{border:"1px solid",borderColor:"divider",borderRadius:1}},".MuiTableCell-head":{whiteSpace:"nowrap",fontWeight:"bold"},".MuiTableRow-root":{border:"unset","&:nth-child(even)":{backgroundColor:"grey.50","&:hover":{backgroundColor:l=>`${l.palette.grey[50]} !important`}}},".MuiTableRow-hover":{"&:hover":{backgroundColor:"inherit !important"}},".MuiTableCell-root":{paddingRight:"8px",paddingLeft:"8px",color:"text.secondary",...A&&{padding:"8px !important","&:first-child":{paddingTop:"20px!important"},"&:last-child":{paddingBottom:"20px!important"}}}},children:[t,r.jsx(Qe,{count:a.data?.total||0,locale:I,data:y,columns:q,customButtons:T,options:U,loading:a.loading,className:"pc-user-sessions-table",title:r.jsxs(He,{row:!0,sx:{lineHeight:1,ml:1},onChange:l=>{h.status=l.target.value},children:[r.jsx(ue,{value:"online",control:r.jsx(pe,{size:"small",sx:{lineHeight:1,fontSize:0},checked:h.status==="online"}),label:r.jsxs(R,{sx:{display:"flex",alignItems:"center"},children:[e("online"),r.jsxs(R,{component:"span",sx:{ml:.5,color:"text.secondary"},children:["(",S.online,")"]})]})}),r.jsx(ue,{value:"expired",control:r.jsx(pe,{size:"small",sx:{lineHeight:1,fontSize:0},checked:h.status==="expired"}),label:r.jsxs(R,{sx:{display:"flex",alignItems:"center"},children:[e("expired"),r.jsxs(R,{component:"span",sx:{ml:.5,color:"text.secondary"},children:["(",S.expired,")"]})]})}),Y?r.jsx(ue,{value:"offline",control:r.jsx(pe,{size:"small",sx:{lineHeight:1,fontSize:0},checked:h.status==="offline"}),label:r.jsxs(R,{sx:{display:"flex",alignItems:"center"},children:[e("offline"),r.jsxs(R,{component:"span",sx:{ml:.5,color:"text.secondary"},children:["(",S.offline,")"]})]})}):null]}),onChange:l=>{h.page=l.page+1,h.pageSize=l.rowsPerPage}})]})}export{hi as C,fi as P,be as U};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as A}from"./vendor-utils-CUDP56Ff.js";import{r as _}from"./base32-BK7MXAD4.js";import{c as r}from"./index-
|
|
1
|
+
import{C as A}from"./vendor-utils-CUDP56Ff.js";import{r as _}from"./base32-BK7MXAD4.js";import{c as r}from"./index-CDK4fL-O.js";var n=_();function d(e,i,s,o=!1){if(e&&e.startsWith(r.USER_AVATAR_URL_PREFIX)){const R=window.env.apiPrefix||"/";if(s){if(o&&window.blocklet?.serverDid){const t=`https://${n.encode(window.blocklet?.serverDid)}.${r.DEFAULT_DID_DOMAIN}`;return`${A(t,r.USER_AVATAR_PATH_PREFIX,i,e.replace(r.USER_AVATAR_URL_PREFIX,""))}?imageFilter=resize&w=64&h=64`}return`${A(R,r.USER_AVATAR_PATH_PREFIX,e.replace(r.USER_AVATAR_URL_PREFIX,""))}?imageFilter=resize&w=64&h=64`}return`${A(R,r.USER_AVATAR_PATH_PREFIX,i,e.replace(r.USER_AVATAR_URL_PREFIX,""))}?imageFilter=resize&w=64&h=64`}return e}const l=(e,i)=>e.nodeOwner&&e.nodeOwner.did===i,w=(e,i)=>e&&e.did===i;export{w as a,l as i,d as p};
|