{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/index.ts","webpack:///./src/assets/image/icon-yzm@2x.png","webpack:///./src/components/dialog/dialogTypes/Phone.vue?a006","webpack:///./src/assets/image/icon-phone@2x.png","webpack:///./src/common/AddPrototype.ts","webpack:///./src/App.vue?f446","webpack:///./src/api/index.ts","webpack:///./src/router/index.ts","webpack:///./src/common/utils.ts","webpack:///./src/App.vue?b4ca","webpack:///./src/App.vue?ec60","webpack:///./src/App.vue?640d","webpack:///./src/App.vue","webpack:///./src/common/mixin.ts","webpack:///./src/common/registerHook.ts","webpack:///./src/common/directives.ts","webpack:///./src/main.ts","webpack:///./src/common/Native.ts","webpack:///./src/common/request.ts","webpack:///./src/components/dialog/Dialog.vue?e90b","webpack:///./src/components/dialog/Dialog.vue?0ef3","webpack:///./src/components/dialog/dialogTypes/Phone.vue?327a","webpack:///./src/components/dialog/dialogTypes/Phone.vue?6f96","webpack:///./src/components/dialog/dialogTypes/Phone.vue?dffb","webpack:///./src/components/dialog/dialogTypes/Phone.vue","webpack:///./src/components/dialog/Dialog.vue?8bf4","webpack:///./src/components/dialog/Index.ts","webpack:///./src/components/dialog/Dialog.vue?0b2a","webpack:///./src/components/dialog/Dialog.vue","webpack:///./src/common/decorator.ts","webpack:///./src/api/dataCollect.ts","webpack:///./src/common/is.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","use","stateOption","token","appId","sessionId","checkedHosts","hideDetailViewCount","videoFullScreen","appIdFromUA","isOpenWxBindPhone","openId","liveShare","Store","state","mutations","SET_STATE","obj","actions","Reflect","Date","rule","year","this","getFullYear","month","getMonth","day","getDate","hour","getHours","minutes","getMinutes","second","getSeconds","replace","padStart","Array","RequestIndex","infoClassifyId","id","params","post","lastId","lastReplyId","lastSortNo","lastCreateTime","hostIds","sort","v","userId","title","sourceType","sourceId","nickname","avatar","liveDetailId","desc","giftId","sum","informationId","titile","interval","weChatId","registSourceType","phone","smsCode","phoneNo","captcha","routes","path","meta","keepAlive","component","router","base","copy","text","body","select","execCommand","pxToRem","px","Math","round","innerWidth","stylePxToNumber","includes","split","Number","isOpenInWechat","ua","navigator","userAgent","toLowerCase","handleWXbackUrl","url","ifencode","w","location","indexOf","substr","encodeURIComponent","getUrlParam","reg","RegExp","search","match","unescape","rules","test","verifier","openUrl","ZWY_CLOUD","isOpenInApp","openWebBrowser","detailViewType","commentType","contextType","isShowTop","isShowBottom","isShowMore","shareUrl","synopsis","shareImgUrl","open","getSystemName","os","wx","getAppIdFromUA","matchArr","exec","appinfoArr","zoomDom","scale","dom","execute","el","children","temp","style","width","height","fontSize","padding","map","item","join","margin","throttle","func","wait","ctx","timerId","returnVal","args","last","_args","delta","now","getminute","unit","repair","date","minute","tt","getTime","list","newunit","floor","_vm","_h","$createElement","_c","_self","attrs","staticClass","_e","staticRenderFns","flag","$store","commit","$route","query","mixin","beforeRouteEnter","to","from","next","keep","content","getElementById","vm","beforeRouteLeave","scrollTop","registerHooks","jump","onclick","Native","store","preview","binding","images","is","startPosition","index","closeOnPopstate","directive","$video","config","productionTip","render","h","$mount","shareConfig","getOS","appCloseWeb","callBack","appSessionToken","loginType","callback","appForceToken","getUserInfo","isShow","topBarConfig","isShowBackBtn","isShowTitle","isShowMoreBtn","bottomBarConfig","callBack_replyList","share","tel","showLiveNewsComment","pushToController","appAlert","viewImageContent","androidFun","iosFun","par","showNativeView","Android","iOS","max","appUpload","num","redirectUrl","OpenSystemWeb","funcName","JSON","parse","service","a","baseURL","withCredentials","interceptors","headers","queryObj","k","method","assign","stringify","indices","response","resp","goForceToken","dialogType","on","close","directives","rawName","expression","domProps","$event","composing","buttonText","checkPhone","getCode","_v","_s","canLogin","bindPhone","countDown","$emit","sendvalidcode","fail","timer","setInterval","clearInterval","userBindPhone","reload","String","components","closeDialog","Phone","mask","showDialog","createDialog","parms","notice","child","sv","propsData","overflow","remove","executable","someValue","propertyKey","descriptor","Proxy","proxyTarget","thisArg","argumentsList","downloadUrl","isOver","antiShake","needToken","required","needPhone","goToken","info","alert","detail","weChatAppId","getWeChatUserInfo","again","appIdApp","getWechatUserInfoFun","weChatAuthor","res","isBindPhone","portrait","bindQueue","bindState","options","findObjectProto","proto","getPrototypeOf","constructor","setPrototypeOf","SyncState","attr","stateKey","TypeError","pureObject","descriptorMap","forEach","set","defineProperties","arguments","toastWithDelay","_target","_key","fn","condition","loading","clear","Deprecated","componentOptions","recordCount","ndata","getDataCollect","session_id","getMurmur","getHlxNewsRecordCount","visibilitychangeData","visibilitychangeStartTime","visibilitychangeFun","hidden","times","news","time","getHlxNewsRecordTime","recordTime","addEventListener","removRecordTime","removeEventListener","beforeunloadData","isplay","ispause","beforeunloadVideoPlayLength","beforeunloadStartTime","beforeunloadFun","videoPlayLength","getDataCollectVideo","getHlxNewsRecordVideo","recordVideo","ElVideoName","elevideo","querySelector","nodeName","childNodes","duration","removRecordVideo","recordShare","cq_callBack_share","shareType","getHlxNewsRecordShare","getDataCollectShare","platform","failReason","route","app","_route","app_id","source_id","source_type","send_source","parseInt","createTime","sendSource","videoPlayTimeLength","videoTimeLength","videoUrl","contentUrl","bannerVideo","fail_reason","is_success","user_id","excludes","audio","enumerateDevices","fonts","fontsFlash","webgl","canvas","rej","values","murmur","x64hash128","toString","val","isTruely","isObject","isFunction","isArray"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAIpT,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GACpKR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,OAC5RyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,GAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,6EC1QT,4BAYA,OAAI+F,IAAI,QACR,IAAMC,EAA4B,CAChCC,MAAO,GACPC,MAAO,GACPC,UAAW,GAEXC,aAAc,GAEdC,oBAAqB,EACrBC,iBAAiB,EAGjBC,YAAa,EACbC,mBAAmB,EACnBC,OAAQ,EACRC,UAAW,MAEE,WAAI,OAAKC,MAAM,CAC5BC,MAAOZ,EACPa,UAAW,CACTC,UADS,SACCF,EAAOG,GACf,IAAK,IAAM3B,KAAO2B,EACZA,EAAIxH,eAAe6F,KACpBwB,EAAuBxB,GAAO2B,EAAI3B,MAK3C4B,QAAS,GACTrH,QAAS,M,uDCzCXmB,EAAOD,QAAU,ktE,kCCAjB,W,qBCAAC,EAAOD,QAAU,srD,mGCqCjBoG,QAAQzC,eAAe0C,KAAK5H,UAAW,SAAU,CAC/CwF,MAD+C,WACb,IAA5BqC,EAA4B,uDAArB,sBACLC,EAAOC,KAAKC,cAAgB,GAC5BC,EAAQF,KAAKG,WAAa,EAAI,GAC9BC,EAAMJ,KAAKK,UAAY,GACvBC,EAAON,KAAKO,WAAa,GACzBC,EAAUR,KAAKS,aAAe,GAC9BC,EAASV,KAAKW,aAAe,GAOnC,OANAb,EAAOA,EAAKc,QAAQ,QAASb,GAC7BD,EAAOA,EAAKc,QAAQ,MAAOV,EAAMW,SAAS,EAAG,MAC7Cf,EAAOA,EAAKc,QAAQ,MAAOR,EAAIS,SAAS,EAAG,MAC3Cf,EAAOA,EAAKc,QAAQ,MAAON,EAAKO,SAAS,EAAG,MAC5Cf,EAAOA,EAAKc,QAAQ,MAAOJ,EAAQK,SAAS,EAAG,MAC/Cf,EAAOA,EAAKc,QAAQ,MAAOF,EAAOG,SAAS,EAAG,MACvCf,KAIXF,QAAQzC,eAAe2D,MAAM7I,UAAW,YAAa,CACnDoF,IAAK,WACH,OAAO2C,KAAKA,KAAKjI,OAAS,O,oCCzD9B,W,0HCiCMgJ,E,yGACOlC,GACT,MAAM,IAAIxD,MAAM,6B,iCA+BhB,OAAO,OAAMgC,IACX,8EACyC2C,KAAKgB,eAD9C,kBACsEhB,KAAKnB,U,wCAO7DoC,GAChB,OAAO,OAAM5D,IAAN,yDAEH,OAFG,YAGD4D,EAHC,mBAGY,qB,sCAQnB,OAAO,OAAM5D,IAAN,yDAEH,OAFG,0BAGa,qB,qCAQpB,OAAO,OAAMA,IAAN,yDAEH,OAFG,YAGD2C,KAAKgB,eAHJ,yBAGmC,qB,wCAQ1C,OAAO,OAAM3D,IAAN,yDAEH,OAFG,YAGD2C,KAAKgB,eAHJ,mBAG6B,qB,6BAQ/BA,GACL,OAAO,OAAM3D,IACX,gFAA+C2D,GAC/C,CACEE,OAAQ,CACNtC,MAAOoB,KAAKpB,W,qCAalB,OAAO,OAAMvB,IAAN,0BAEiC,GAFjC,yBAIH,OAJG,4DAK+C,kBACpD,M,uCAMF,OAAO,OAAMA,IAAN,4EACgE,kBACrE,M,+BAOK2D,GACP,OAAO,OAAMG,KAAK,mBAAoB,CACpCtC,MAAOmB,KAAKnB,MACZmC,qB,iCAQF,OAAO,OAAMG,KAAK,wEAAkD,CAClEtC,MAAOmB,KAAKnB,U,kCAQd,OAAO,OAAMsC,KAAK,wBAAyB,CACzCtC,MAAOmB,KAAKnB,MACZD,MAAOoB,KAAKpB,MACZE,UAAWkB,KAAKlB,c,qCAQlB,OAAO,OAAMqC,KAAK,sEAAgD,CAChEtC,MAAOmB,KAAKnB,U,oCAQFuC,GACZ,OAAO,OAAMD,KAAK,0BAA2B,CAC3CC,SACAxC,MAAOoB,KAAKpB,U,kCAedoC,EACAK,EACAD,EACAE,EACAC,EACAC,GACa,IAAbC,EAAa,uDAAN,OAEP,OAAO,OAAMN,KAAK,wEAAkD,CAClEtC,MAAOmB,KAAKnB,MACZD,MAAOoB,KAAKpB,MACZoC,iBACAK,cACAD,SACAE,aACAC,iBACAC,UACAC,KAAMA,M,kCAWRT,EACAO,EACAF,EACAK,GAEA,OAAO,OAAMrE,IAAI,wEAAkD,CACjE6D,OAAQ,CACNF,iBACAnC,MAAOmB,KAAKnB,MACZwC,cACAE,iBACA3C,MAAOoB,KAAKpB,MACZ8C,S,+BAYJC,EACAC,EACAZ,EACAnG,GACe,IAAfgH,EAAe,uDAAF,GAEb,OAAO,OAAMV,KAAK,iBAAkB,CAClCtC,MAAOmB,KAAKnB,MACZC,UAAWkB,KAAKlB,UAChBF,MAAOoB,KAAKpB,MACZ+C,SACAC,QACAF,EAAG,EACH7G,OACAiH,SAAUd,EACVa,iB,kCAOQtK,GASV,OAAO,OAAM4J,KAAK,oBAAX,gBACLtC,MAAOmB,KAAKnB,MACZC,UAAWkB,KAAKlB,UAChBF,MAAOoB,KAAKpB,OACTrH,M,oCAWL0J,EACAc,EACAC,GAEA,OAAO,OAAMb,KAAK,mCAAoC,CACpDc,aAAchB,EACdrC,MAAOoB,KAAKpB,MACZmD,WACAC,a,oCAQUC,GACZ,OAAO,OAAMd,KAAK,0CAA2C,CAC3Dc,eACArD,MAAOoB,KAAKpB,U,gCASNoC,EAAwBI,GAChC,OAAO,OAAMD,KAAK,yEAAmD,CACnEH,iBACAkB,MAAM,EACNd,a,mCAYFe,EACAC,EACAC,EACAC,GAEA,OAAO,OAAMnB,KAAK,2BAA4B,CAC5CvC,MAAOoB,KAAKpB,MACZuD,SACAC,MACAC,gBACAC,a,+BASKD,EAAuBE,GAC9B,OAAO,OAAMpB,KAAK,uBAAwB,CACxCvC,MAAOoB,KAAKpB,MACZyD,gBACAE,e,+BAQKvB,GACP,OAAO,OAAMG,KAAK,uEAAiD,CACjEH,qB,gCAOMA,GACR,OAAO,OAAMG,KAAK,yEAAmD,CACnEH,iBACAnC,MAAOmB,KAAKnB,U,oCAWdoC,EACAW,EACAC,GAEA,OAAO,OAAMV,KAAK,sBAAuB,CACvCtC,MAAOmB,KAAKnB,MACZ+C,MAAOA,EACPF,EAAG,IACH7G,KAAM,IACNiH,SAAUb,EACVY,WAAYA,M,sCASAZ,EAAYY,GAE1B,OAAO,OAAMV,KAAK,0BAA2B,CAC3CtC,MAAOmB,KAAKnB,MACZD,MAAOoB,KAAKpB,MACZkD,SAAUb,EACVY,WAAYA,M,uCAQCb,GACf,OAAO,OAAM3D,IAAN,4BAA+B2D,EAA/B,SAAsD,CAC3DE,OAAQ,CACNtC,MAAOoB,KAAKpB,W,sCAiBjB,IALCtD,EAKD,EALCA,KACAkH,EAID,EAJCA,SAKA,OAAO,OAAMnF,IAAI,oEAAiD,CAChE6D,OAAQ,CACNrC,MAAO,EACPvD,KAAMA,EACNkH,SAAUA,EACVC,iBAAkB,Y,oCAQVC,GACZ,OAAO,OAAMvB,KAAK,oEAAiD,CACjEtC,MAAO,KACPhE,KAAM,KACN6H,Y,uCAiBH,IAPCtD,EAOD,EAPCA,OACAsD,EAMD,EANCA,MACAC,EAKD,EALCA,QAMA,OAAO,OAAMxB,KACX,gFACA,CACE/B,SACAwD,QAASF,EACT7D,MAAO,KACPgE,QAASF,M,4CAMOzB,GACpB,OAAO,OAAMC,KAAK,yCAA8CD,K,2CAG7CA,GACnB,OAAO,OAAMC,KAAK,6CAAkDD,K,4CAGhDA,GACpB,OAAO,OAAMC,KAAK,kDAAuD,CACvED,M,4CAIkBA,GACpB,OAAO,OAAMC,KAAK,mCAAwCD,K,sCAI1D,OAAO,OAAM7D,IAAN,qEACyD,eAC5D,Q,wCAKY4D,GAChB,OAAO,OAAM5D,IAAN,gEACoD4D,EADpD,mBACiE,qB,4BAxfxE,OAAO,OAAM1B,MAAMV,Q,4BAInB,OAAO,OAAMU,MAAMX,Q,gCAInB,OAAO,OAAMW,MAAMT,Y,qCAInB,OAAO,OAAMS,MAAMyB,mB,KAgfR,WAAID,G,wHC/hBnB,OAAIrC,IAAI,QAER,IAAMoE,EAA6B,CACjC,CACEC,KAAM,IACNrG,KAAM,OACNsG,KAAM,CACJC,WAAW,GAEbC,UAAW,kBAAM,6GAEnB,CACEH,KAAM,OACNrG,KAAM,MACNsG,KAAM,CACJC,WAAW,GAEbC,UAAW,kBAAM,kDAEnB,CACEH,KAAM,UACNrG,KAAM,SACNwG,UAAW,kBAAM,uFAEnB,CACEH,KAAM,eACNrG,KAAM,aACNwG,UAAW,kBAAM,kDAEnB,CACEH,KAAM,UACNrG,KAAM,SACNwG,UAAW,kBAAM,kDAEnB,CACEH,KAAM,QACNrG,KAAM,OACNwG,UAAW,kBAAM,8GAIfC,EAAS,IAAI,OAAU,CAC3BxF,KAAM,OACNyF,KAAM,GACNN,WAEa,U,4pBC1CT,SAAUO,EAAK5F,GACnB,IAAM6F,EAAOlJ,SAASQ,cAAc,YAChChC,GAAS,EACb,IACE0K,EAAK7F,MAAQA,EACbrD,SAASmJ,KAAK7H,YAAY4H,GAC1BA,EAAKE,SACLpJ,SAASqJ,YAAY,QACrB,MAAOrH,GACPxD,GAAS,EAGX,OADAwB,SAASmJ,KAAK/H,YAAY8H,GACnB1K,EAYH,SAAU8K,EAAQC,GACtB,IAAM5F,EAAM6F,KAAKC,MAA0B,kBAApBtF,OAAOuF,YAC9B,OAAOH,EAAK5F,EAqBd,SAASgG,EAAgBJ,GAIvB,OAHIA,EAAGK,SAAS,QACdL,EAAKA,EAAGM,MAAM,MAAM,IAEfC,OAAOP,GAIV,SAAUQ,IACd,IAAMC,EAAKC,UAAUC,UAAUC,cAC/B,QAAIH,EAAGJ,SAAS,kBAUZ,SAAUQ,IAA+B,IAIzCC,EAJ0BC,IAAe,yDACvCC,EAAIC,SAAS3K,KAAK4K,QAAQ,KAC1B9L,EAAI6L,SAAS3K,KAAK4K,QAAQ,KAC5B5K,EAAOsE,OAAOqG,SAAS3K,KAU3B,OARW,IAAP0K,GAAY5L,EAAI4L,GAClB1K,EACE2K,SAAS3K,KAAK6K,OAAO,EAAGH,GACxBC,SAAS3K,KAAK6K,OAAO/L,EAAG6L,SAAS3K,KAAKlC,QACxC0M,EAAMxK,GAENwK,EAAMG,SAAS3K,KAEVyK,EAAWK,mBAAmBN,GAAOA,EAKxC,SAAUO,EAAYtI,GAC1B,IAAMuI,EAAM,IAAIC,OAAO,QAAUxI,EAAO,iBAClCY,EAAIiB,OAAOqG,SAASO,OAAOL,OAAO,GAAGM,MAAMH,GACjD,OAAS,MAAL3H,EAAkB+H,SAAS/H,EAAE,IAC1B,KAMT,IAAMgI,EAAQ,CACZ,KAEA,SAAC7H,GAAD,QAAqBA,GAErB,SAACA,GAAD,OAAmB,IAAIyH,OAAO,sBAAsBK,KAAK9H,IAEzD,SAACA,GAAD,QAAqBA,GAErB,SAACA,GAAD,OACE,IAAIyH,OACF,0HACAK,KAAK9H,IAET,SAACA,GAAD,OACE,IAAIyH,OACF,kEACAK,KAAK9H,IAET,SAACA,GAAD,OAAmB,IAAIyH,OAAO,YAAYK,KAAK9H,KAO3C,SAAU+H,EAAS/H,EAAe5C,GACtC,QAAK4C,KACA5C,GACEyK,EAAMzK,GAAO4C,IAOhB,SAAUgI,EAAQhB,GAClBlG,OAAOmH,WAAa,OAAOC,cAC7B,OAAOC,eAAe,CACpB3E,GAAI,GACJa,SAAU,GACV+D,eAAgB,KAChBhE,WAAY,IACZiE,YAAa,IACbC,YAAa,GACbC,UAAW,IACXC,aAAc,IACdC,WAAY,IACZzB,IAAKA,EACL0B,SAAU1B,EACV7C,MAAO,eAAOxH,SAASwH,OACvBwE,SAAU,GACVC,YAAa,KAGf9H,OAAO+H,KAAK7B,GAOV,SAAU8B,IACd,IAAIC,EACJ,GAAIjI,OAAOmH,UAAUC,cACnBa,EAAK,UACA,CACL,IAAMC,EAAKpC,UAAUC,UAAUC,cAE7BiC,GADoC,IAAlCC,EAAG5B,QAAQ,kBACR,KAGA,wCAAwCU,KAAKlB,UAAUC,WACxD,KACA,KAGR,OAAOkC,EAGH,SAAUE,IACd,IAAMtC,EAAKC,UAAUC,UACfqC,EAAW,iBAAiBC,KAAKxC,GACvC,GAAIuC,GAAYA,EAAS5O,OAAQ,CAC/B,IAAM8O,EAAaF,EAAS,GAAG1C,MAAM,KACrC,OAAI4C,EAAW9O,OACN8O,EAAW,GAEX,GAGT,MAAO,GAQL,SAAUC,EAAQC,EAAeC,GACrC,SAASC,EAAQC,GAAe,uBACdA,EAAGC,UADW,IAC9B,2BAA6B,KAAlBxN,EAAkB,QACrByN,EAAOzN,EACbyN,EAAKC,MAAMC,QACRF,EAAKC,MAAMC,MACV5D,EAAQK,EAAgBqD,EAAKC,MAAMC,OAASP,GAAS,OACzDK,EAAKC,MAAME,SACRH,EAAKC,MAAME,OACV7D,EAAQK,EAAgBqD,EAAKC,MAAME,QAAUR,GAAS,OAC1DK,EAAKC,MAAMG,WACRJ,EAAKC,MAAMG,SACV9D,EAAQK,EAAgBqD,EAAKC,MAAMG,UAAYT,GAAS,OAC5DK,EAAKC,MAAMI,UACRL,EAAKC,MAAMI,QAAUL,EAAKC,MAAMI,QAC9BxD,MAAM,KACNyD,KAAI,SAAAC,GAAI,OAAIjE,EAAQK,EAAgB4D,GAAQZ,GAAS,SACrDa,KAAK,MACVR,EAAKC,MAAMQ,SACRT,EAAKC,MAAMQ,OAAST,EAAKC,MAAMQ,OAC7B5D,MAAM,KACNyD,KAAI,SAAAC,GAAI,OAAIjE,EAAQK,EAAgB4D,GAAQZ,GAAS,SACrDa,KAAK,MACNR,EAAKD,UACPF,EAAQG,IAvBkB,+BA2B5BJ,EAAIG,SAASpP,QACfkP,EAAQD,GAIN,SAAUc,EAASC,EAAgBC,GACvC,IAAIC,EAEFC,EAEAC,EAHAC,EAAqB,KAErBC,EAAO,EAGT,SAASlQ,IACP+P,EAAU,EACVG,GAAQ,IAAIxI,KACZsI,EAAYJ,EAAKrP,MAAMuP,EAAKG,GAC5BH,EAAM,KACNG,EAAO,KAGT,OAAO,WACLH,EAAMjI,KAD4C,2BAAZsI,EAAY,yBAAZA,EAAY,gBAElDF,EAAOE,EACP,IAAMC,EAAQ1I,KAAK2I,MAAQH,EAI3B,OAHKH,IACCK,GAASP,EAAM7P,IACd+P,EAAUtL,WAAWzE,EAAM6P,EAAOO,IAClCJ,GAyDL,SAAUM,IAAkB,IAARC,EAAQ,uDAAD,EAC/B,SAASC,EAAO9Q,GACd,OAAIA,GAAK,GAAKA,GAAK,EACV,IAAMA,EAENA,EAGX,IAAM+Q,EAAO,IAAI/I,KACXE,EAAO6I,EAAK3I,cACZC,EAAQyI,EAAOC,EAAKzI,WAAa,GACjCC,EAAMuI,EAAOC,EAAKvI,WAClBC,EAAOqI,EAAOC,EAAKrI,YACnBsI,EAASF,EAAOC,EAAKnI,cAC3B,GAAY,GAARiI,EAAW,CACb,IAAMI,EAAK,GAAH,OAAM/I,EAAN,YAAcG,EAAd,YAAuBE,EAAvB,YAA8BE,EAA9B,YAAsCuI,EAAtC,OACR,OAAO,IAAIhJ,KAAKiJ,GAAIC,UAGpB,IADA,IAAMC,EAAO,CAAC,GACLnR,EAAI,EAAGA,EAAI,GAAK6Q,EAAM7Q,IAAK,CAClC,IAAMoR,EAAUP,GAAQ7Q,EAAI,GACxBoR,EAAU,IACZD,EAAK3Q,KAAK4Q,GAGd,IAAM,EAAK,GAAH,OAAMlJ,EAAN,YAAcG,EAAd,YAAuBE,EAAvB,YAA8BE,EAA9B,YACN0I,EAAKpF,KAAKsF,MAAML,EAASH,IADnB,OAGR,OAAO,IAAI7I,KAAK,GAAIkJ,Y,kMCrVpB,EAAS,WAAa,IAAII,EAAInJ,KAASoJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,QAAQ,CAAEL,EAAQ,KAAEG,EAAG,MAAM,CAACA,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,aAAa,CAAEH,EAAa,UAAEG,EAAG,cAAc,CAACG,YAAY,WAAWD,MAAM,CAAC,GAAK,cAAcL,EAAIO,MAAM,IAAI,GAAGJ,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,SAAS,CAAGL,EAAIlG,UAA8EkG,EAAIO,KAAvEJ,EAAG,cAAc,CAACG,YAAY,WAAWD,MAAM,CAAC,GAAK,eAAwB,IAAI,GAAGL,EAAIO,QAChcC,EAAkB,G,gGC0BD,EAArB,yG,0BAIE,EAAAC,MAAO,EAJT,2DAOI5J,KAAK6J,OAAOC,OAAO,YAAa,CAC9B9I,eAAgBhB,KAAK+J,OAAOC,MAAM/I,KAEpCjB,KAAK4J,MAAO,IAVhB,gCAaI,iBACI,kBACF5J,KAAK6J,OAAOC,OAAO,YAAa,CAC9B5K,YAAa,qBAhBrB,gCACe,MACX,iBAAOc,KAAK+J,OAAO/G,YAAnB,aAAO,EAAkBC,cAF7B,GAAiC,QAM/B,gBADC,eAAM,W,sBAMN,MAXkB,EAAG,gBADvB,QACoB,WC3BuV,I,wBCQxWC,EAAY,eACd,EACA,EACAyG,GACA,EACA,KACA,KACA,MAIa,EAAAzG,E,gCClBf,OAAI+G,MAAM,CACRC,iBADQ,SACSC,EAAIC,EAAMC,GAAI,MAC7B,aAAIF,EAAGnH,YAAP,OAAI,EAASsH,KAAM,CACjB,IAAMC,EAAUnQ,SAASoQ,eAAe,OACpCD,GACFF,GAAK,SAAAI,YAKPJ,KAGJK,iBAbQ,SAaSP,EAAIC,EAAMC,GAAI,MAE7B,aAAID,EAAKpH,YAAT,OAAI,EAAWsH,KAAM,CACnB,IAAMC,EAAUnQ,SAASoQ,eAAe,OACpCD,IACFH,EAAKpH,KAAK2H,UAAYJ,EAAQI,WAGlCN,O,wDCpBJ,OAAUO,cAAc,CACtB,UACA,UACA,SACA,mBACA,mBACA,sB,wCCDIC,EAAyB,CAC7B7M,KAD6B,SACxBkJ,GACHA,EAAG4D,QAAU,WAGPC,EAAA,KAAOpF,gBACXf,SAAS3K,KAAT,wDAAiE+Q,EAAA,KAAMzL,MAAMV,WAK7EoM,EAA4B,CAChCjN,KADgC,SAC3BkJ,EAAIgE,GAAO,IACNzN,EAAUyN,EAAVzN,MACRyJ,EAAG4D,QAAU,WACNrN,GACL,eAAa,CACX0N,OAAQ,OAAAC,EAAA,MAAS3N,GAASA,EAAM0N,OAAS,CAAC1N,GAC1C4N,cAAe,OAAAD,EAAA,MAAS3N,GAASA,EAAM6N,MAAQ,EAC/CC,iBAAiB,OAMzB,OAAIC,UAAU,OAAQX,GACtB,OAAIW,UAAU,UAAWP,G,oBCjBzB,OAAIhT,UAAUwT,OAAS,OAEvB,OAAIC,OAAOC,eAAgB,EAGzB,CAAC,cAAe,UAAW,eAAe3H,SAAS,eACnDK,UAAUC,UAAUc,MAClB,oJAGF,IAAI,IAaN,IAAI,OAAI,CACNjC,SAAA,KACA6H,QAAA,KACAY,OAAQ,SAAAC,GAAC,OAAIA,EAAE,MACdC,OAAO,S,gGC5BJf,E,WAAN,oCAEU,KAAAgB,YAAc,G,uDAKpB,OAAOxN,OAAOmH,UAAUsG,U,8BAMxBzN,OAAOmH,UAAUuG,YAAY,CAAEpR,KAAM,M,gCAU7B,IAARA,EAAQ,uDAAD,EAEDjC,EAASoH,KAAKkM,SAAS,aAK7B,OAJA3N,OAAOmH,UAAUyG,gBAAgB,CAC/BC,UAAWvR,EACXwR,SAAU,cAELzT,I,qCAYP,IAAMA,EAASoH,KAAKkM,SAAS,cAK7B,OAJA3N,OAAOmH,UAAU4G,cAAc,CAC7BF,UAAW,IACXC,SAAU,eAELzT,I,oCAYP,OAAO,IAAIkB,SAAQ,SAAAC,GACjBA,EAAQwE,OAAOmH,UAAU6G,oB,kCAST,IAAVC,EAAU,uDAAD,EACjBjO,OAAOmH,UAAU+G,aAAa,CAC5BzG,UAAWwG,EACXE,cAAe,EACfC,YAAa,MACbC,cAAe,Q,qCAUI,IAAVJ,EAAU,uDAAD,EACd5T,EAASoH,KAAKkM,SAAS,qBAM7B,OAJA3N,OAAOmH,UAAUmH,gBAAgB,CAC/B5G,aAAcuG,EACdM,mBAAoB,sBAEflU,I,iCAQP2F,OAAOmH,UAAUqH,MAAM/M,KAAK+L,e,2BAQzBiB,GACHpI,SAAS3K,KAAT,cAAuB+S,K,qCAYV9L,GACblB,KAAK+L,YAAc7K,I,0CAQDA,GAKlB3C,OAAOmH,UAAUuH,oBAAoB/L,K,uCAKtBA,GAUf3C,OAAOmH,UAAUwH,iBAAiBhM,K,+BAK3BA,GACP3C,OAAOmH,UAAUyH,SAASjM,K,uCAOXA,GAIf3C,OAAOmH,UAAU0H,iBAAiBlM,K,qCAMlCmM,EACAC,EACAC,GAEAhP,OAAOmH,UAAU8H,eAAe,CAC9BC,QAASJ,EACTK,IAAKJ,EACLC,IAAKA,M,gCAUCI,GACR,IAAM/U,EAASoH,KAAKkM,SAAS,cAK7B,OAJA3N,OAAOmH,UAAUkI,UAAU,CACzBvB,SAAU,aACVwB,IAAKF,IAEA/U,I,oCAOP,OAAO2F,OAAOmH,UAAUC,gB,qCAOXzE,GAgBb3C,OAAOmH,UAAUoI,YAAY5M,K,oCAGjBuD,GACZlG,OAAOmH,UAAUqI,cAAc,CAAEtJ,U,kCAQvB8I,GAWV,IAAM7N,EAAM,CACVgO,IAAK,kBACLD,QAAS,kBACTF,OAEFhP,OAAOmH,UAAU8H,eAAe9N,K,0CAMdwB,GAalB3C,OAAOmH,UAAUqG,YAAY7K,K,+BAOd8M,GACf,OAAO,IAAIlU,SAAQ,SAAAC,GACXwE,OAAQyP,GAAY,SAACpV,GACzB,GAAsB,kBAAXA,EACT,IACEA,EAASqV,KAAKC,MAAMtV,GACpBmB,EAAQnB,GACR,SACAmB,EAAQnB,Y,KAzRlB,gBADC,kB,oBAGA,MAID,gBADC,kB,oBAGA,MAQD,gBALC,eAAW,CACVgG,MAAO,GACPE,UAAW,mCACX4D,MAAO,iB,sBAWR,MAUD,gBAPC,eAAW,CACV9D,MAAO,GACPE,UAAW,mCACX4D,MAAO,iB,2BAWR,MAUD,gBALC,eAAW,CACV9D,MAAO,GACPE,UAAW,mCACX4D,MAAO,iB,0BAMR,MAOD,gBADC,kB,wBAQA,MAQD,gBADC,kB,2BASA,MAMD,gBADC,kB,uBAGA,MAOD,gBADC,kB,mBAGA,MAoBD,gBADC,kB,kCAOA,MAID,gBADC,kB,+BAYA,MAYD,gBADC,kB,+BAMA,MAID,gBADC,kB,6BAWA,MAQD,gBAHC,eACC,sG,wBASD,MAaD,gBADC,kB,6BAkBA,MAWD,gBADC,kB,0BAkBA,MAKD,gBADC,kB,kCAeA,MAqBY,WAAIqI,G,sKC/SboD,EAAU,EAAAC,EAAMtQ,OAAO,CAC3BuQ,QAAS,gCACTC,iBAAiB,EACjBrS,QAAS,MAGXkS,EAAQI,aAAatT,QAAQyD,KAC3B,SAAAgN,GACEA,EAAO8C,QAAQ,gBAAkB,oCACjC9C,EAAOxK,OAASwK,EAAOxK,OAASwK,EAAOxK,OAAS,GAChD,IAAMuN,EAAW,IAAGP,MAAMtJ,SAAS3K,KAAKgK,MAAM,KAAK,IAC7CyK,EAAID,EAAWA,EAAS,KAAO,GAerC,MAdsB,QAAlB/C,EAAOiD,OACLD,IACFhD,EAAOxK,OAASlJ,OAAO4W,OAAOlD,EAAOxK,OAAQ,CAAEwN,OAG7CA,IACFhD,EAAOnU,KAAOS,OAAO4W,OAAOlD,EAAOnU,KAAM,CAAEmX,OAG3ChD,EAAOjH,KAAOiH,EAAOjH,IAAIT,SAAS,yBACpC0H,EAAO8C,QAAQ,gBAAkB,mBAEjC9C,EAAOnU,KAAO,IAAGsX,UAAUnD,EAAOnU,KAAM,CAAEuX,SAAS,IAE9CpD,KAET,SAAAtP,GACE,OAAOtC,QAAQE,OAAOoC,MAI1B+R,EAAQI,aAAaQ,SAASrQ,KAC5B,SAAAsQ,GAYE,OATsB,YAApBA,EAAKzX,KAAK+D,MAGV,eAAO,CAAEmB,QAASuS,EAAKzX,KAAKkF,UAAWd,MAAK,WAC1C,OAAOsT,eAAetT,MAAK,SAAA/C,GACzB,OAAMkR,OAAO,YAAalR,SAIzBoW,EAAKzX,QAEd,SAAA6E,GAEE,OAAOtC,QAAQE,OAAOoC,MAIX,U,kCC5Df,W,0gBCAIwP,EAAS,WAAa,IAAIzC,EAAInJ,KAASoJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,UAAU,CAAqB,UAAnBN,EAAI+F,WAAwB5F,EAAG,QAAQ,CAAC6F,GAAG,CAAC,MAAQhG,EAAIiG,SAASjG,EAAIO,MAAM,IACzMC,EAAkB,G,wECDlB,EAAS,WAAa,IAAIR,EAAInJ,KAASoJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,SAAS,CAACH,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,kBAAkB,CAACH,EAAG,MAAM,CAACG,YAAY,aAAaD,MAAM,CAAC,IAAM,EAAQ,WAAuCF,EAAG,QAAQ,CAAC+F,WAAW,CAAC,CAAC3S,KAAK,QAAQ4S,QAAQ,UAAU7R,MAAO0L,EAAS,MAAEoG,WAAW,UAAU/F,MAAM,CAAC,KAAO,OAAO,YAAc,SAASgG,SAAS,CAAC,MAASrG,EAAS,OAAGgG,GAAG,CAAC,MAAQ,SAASM,GAAWA,EAAOvU,OAAOwU,YAAqBvG,EAAIzG,MAAM+M,EAAOvU,OAAOuC,aAAY6L,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,MAAM,CAACG,YAAY,aAAaD,MAAM,CAAC,IAAM,EAAQ,WAAqCF,EAAG,QAAQ,CAAC+F,WAAW,CAAC,CAAC3S,KAAK,QAAQ4S,QAAQ,UAAU7R,MAAO0L,EAAQ,KAAEoG,WAAW,SAAS/F,MAAM,CAAC,KAAO,OAAO,YAAc,SAASgG,SAAS,CAAC,MAASrG,EAAQ,MAAGgG,GAAG,CAAC,MAAQ,SAASM,GAAWA,EAAOvU,OAAOwU,YAAqBvG,EAAI7N,KAAKmU,EAAOvU,OAAOuC,WAAU6L,EAAG,aAAa,CAACG,YAAY,eAAeD,MAAM,CAAC,SAA8B,UAAnBL,EAAIwG,aAA2BxG,EAAIyG,WAAW,KAAO,OAAO,KAAO,SAAST,GAAG,CAAC,MAAQhG,EAAI0G,UAAU,CAAC1G,EAAI2G,GAAG,IAAI3G,EAAI4G,GAAG5G,EAAIwG,YAAY,QAAQ,GAAGrG,EAAG,aAAa,CAACG,YAAY,QAAQD,MAAM,CAAC,UAAYL,EAAI6G,SAAS,KAAO,OAAO,KAAO,SAASb,GAAG,CAAC,MAAQhG,EAAI8G,YAAY,CAAC9G,EAAI2G,GAAG,WAAW,MACnzC,EAAkB,G,wBC0CD,EAArB,yG,0BAEE,EAAAI,UAAY,EAEZ,EAAA5U,KAAO,GAEP,EAAAoH,MAAQ,GANV,yDAsCI1C,KAAKmQ,MAAM,QAAS,WAtCxB,yMA0CyB,OAAQC,cAAcpQ,KAAK0C,OA1CpD,OA0CU9J,EA1CV,OA2CSA,EAAO0C,KASV,OAAM+U,KAAK,CACT5T,QAAS7D,EAAO6D,WATlBuD,KAAKkQ,UAAY,GACjBlQ,KAAKsQ,MAAQC,aAAY,WACvB,EAAKL,WAAa,EACK,IAAnB,EAAKA,WACPM,cAAc,EAAKF,SAEpB,MAlDT,6SA2DyB,OAAQG,cAAc,CACzCrR,OAAQY,KAAKZ,OACbsD,MAAO1C,KAAK0C,MACZC,QAAS3C,KAAK1E,OA9DpB,OA2DU1C,EA3DV,OAgESA,EAAO0C,MAQV0E,KAAK1E,KAAO,GACZ,OAAM+U,KAAK,CACT5T,QAAS7D,EAAO6D,YATlB,eAAM,QACNuD,KAAKoP,QACLpE,EAAA,KAAMlB,OAAO,YAAa,CACxB3K,mBAAmB,IAErBZ,OAAOqG,SAAS8L,UAtEtB,+IA+EI1Q,KAAKsQ,OAASE,cAAcxQ,KAAKsQ,SA/ErC,iCAcI,OAAItQ,KAAKkQ,UAAY,EACnB,eAAeS,OAAO3Q,KAAKkQ,WAAWrP,SAAS,EAAG,KAAlD,KAEO,UAjBb,+BAsBI,SAAIb,KAAK1E,MAAQ0E,KAAK0C,OAAS1C,KAAK4P,cAtBxC,iCA8BI,QAAI,eAAS5P,KAAK0C,MAAO,OA9B7B,GAAmC,QAWjC,gBADC,eAAO,W,6BAVW,EAAK,gBALzB,eAAU,CACTkO,WAAY,CACV,aAAc,WAGG,WC3C+Y,I,wBCQha1N,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,QCLM,EAArB,gLAsEQhI,GACAA,IAAW8E,KAAKkP,YAClB2B,QAxEN,GAAoC,QAGlC,gBAFC,kB,iCAOD,gBAHC,iBACA,kB,2BAOD,gBAHC,iBACA,kB,oCAOD,gBAHC,iBACA,kB,2BAOD,gBAHC,iBACA,kB,+BAOD,gBAHC,iBACA,kB,gCAOD,gBAHC,iBACA,kB,iCAOD,gBAHC,iBACA,kB,+BAOD,gBAHC,iBACA,kB,8BAOD,gBAHC,iBACA,kB,gCAOD,gBAHC,iBACA,kB,4BAOD,gBAHC,iBACA,kB,gCAOD,gBAHC,iBACA,kB,mCAOD,gBAHC,iBACA,eAAQ,W,6BAlEU,EAAM,gBAL1B,eAAU,CACTD,WAAY,CACVE,MAAA,MAGiB,OCHjBC,EDGiB,IEd8X,ICQ/Y,G,UAAY,eACd,EACAnF,EACAjC,GACA,EACA,KACA,WACA,OAIa,I,QFHFqH,EAAsB,SAAC9B,EAAY5L,GAC9C,OAAO2N,EAAa,CAAE/B,aAAY5L,UAMpC,SAAS2N,EAAaC,GACpB,OAAO,IAAIpX,SAAQ,SAAAC,GACjB,GAAKgX,EAcHI,EAAS,WACPpX,EAAQ,SAfD,CACToX,EAAS,WACPpX,EAAQ,KAEVgX,EAAO3W,SAASQ,cAAc,OAC9B,IAAMwW,EAAQhX,SAASQ,cAAc,OACrCmW,EAAKrV,YAAY0V,GACjB,IAAMC,EAAK,IAAI,EAAO,CACpBC,UAAWJ,IAEbG,EAAGvF,OAAOsF,GACVhX,SAASmJ,KAAK7H,YAAYqV,GAC1B3W,SAASmJ,KAAK8D,MAAMkK,SAAW,aAY/B,SAAUV,IACdM,IACA/W,SAASmJ,KAAK8D,MAAMkK,SAAW,OAC/BR,EAAMS,SACNT,EAAO,KAlCTC,EAAWtO,MAAQ,SAACtD,GAClB,OAAO6R,EAAa,CAAE/B,WAAY,QAAS9P,YAoC7C,IAAI+R,EAAS,aGxCP,SAAUM,EAA6BC,GAC3C,OAAO,SAACxW,EAAWyW,EAAqBC,GACtCA,EAAWnU,MAAQ,IAAIoU,MAAMD,EAAWnU,MAAO,CAE7C/E,MAF6C,SAEvCoZ,EAAaC,EAASC,GAE1B,GAAIzT,OAAOmH,UAAUC,cACnB,OAAO/F,QAAQlH,MAAMoZ,EAAaC,EAASC,GAgBrChH,EAAA,KAAMzL,MAAM0S,cACdrN,SAAS3K,KAAO+Q,EAAA,KAAMzL,MAAM0S,iBAS1C,IAAIC,GAAS,EAMP,SAAUC,IAA0C,IAAd5P,EAAc,uDAAH,IACrD,OAAO,SACLrH,EACAyW,EACAC,GAEAA,EAAWnU,MAAQ,IAAIoU,MAAMD,EAAWnU,MAAO,CAE7C/E,MAF6C,SAEvCoZ,EAAaC,EAASC,GAC1B,IAAKE,EAKH,OAJAA,GAAS,EACTtV,YAAW,WACTsV,GAAS,IACR3P,GACI3C,QAAQlH,MAAMoZ,EAAaC,EAASC,OAW/C,SAAUI,EACdC,GACiB,IAAjBC,EAAiB,wDAEjB,OAAO,SACLpX,EACAyW,EACAC,GAEAA,EAAWnU,MAAQ,IAAIoU,MAAMD,EAAWnU,MAAO,CAE7C/E,MAF6C,SAEvCoZ,EAAaC,EAASC,GAC1B,OAAIhH,EAAA,KAAMzL,MAAMX,MACPgB,QAAQlH,MAAMoZ,EAAaC,EAASC,GAI3CzT,OAAOmH,UAAUC,cAEV,IAAI7L,SAAQ,SAAAC,GACbsY,EACF,OAAOE,UAAU5W,MAAK,SAAA6W,GAChBF,IAAcE,EAAK9P,MACrB,OAAO+P,MAAM,CACX7Q,MAAO,KACPnF,QAAS,cACRd,MAAK,WACN,OAAO4W,QAAQ,GAAG5W,MAAK,WACjBiJ,UAAYA,SAAS8L,QACvB9L,SAAS8L,gBAKf1F,EAAA,KAAMlB,OAAO,YAAa0I,GAC1BzY,EAAQ6F,QAAQlH,MAAMoZ,EAAaC,EAASC,QAI5CzT,OAAOmH,UAAUC,cAIjBqF,EAAA,KAAMzL,MAAMN,iBACgB,OAA5BV,OAAOmH,UAAUsG,QAEjBjS,EAAQ6F,QAAQlH,MAAMoZ,EAAaC,EAASC,IAE5C,OAAOzF,cAAc5Q,MAAK,SAAA6W,GACxBxH,EAAA,KAAMlB,OAAO,YAAa0I,GAC1BzY,EAAQ6F,QAAQlH,MAAMoZ,EAAaC,EAASC,OAIhDjY,EAAQ6F,QAAQlH,MAAMoZ,EAAaC,EAASC,QAK9C,kBACEhH,EAAA,KAAMzL,MAAMmT,QAEZ1H,EAAA,KAAMzL,MAAMmT,OAAOlQ,UACnBwI,EAAA,KAAMzL,MAAMmT,OAAOC,cAClB3H,EAAA,KAAMzL,MAAMJ,mBAEbyT,IAIFP,GAAYrH,EAAA,KAAMzL,MAAM0S,iBAC1BrN,SAAS3K,KAAO+Q,EAAA,KAAMzL,MAAM0S,aAErBrS,QAAQlH,MAAMoZ,EAAaC,EAASC,QAYvD,SAASY,EAAkBC,GACzB,OAAO,IAAI/Y,SAAQ,SAACC,EAASC,GAC3B,IAAMwI,EAAWwI,EAAA,KAAMzL,MAAMmT,OAAOlQ,SAC9BsQ,EAAW9H,EAAA,KAAMzL,MAAMmT,OAAOC,YAChClO,EAAMM,mBAAmBxG,OAAOqG,SAAS3K,MACvCqB,EAAO,eAAY,QACnB8D,EAAS4L,EAAA,KAAMzL,MAAMH,OAC3B,IAAI4L,EAAA,KAAMzL,MAAMJ,kBAGhB,GAAIC,EAEFrF,EAAQqF,QAER,IAAK9D,GAAQuX,EACPA,GAASvX,IACXmJ,EAAM,kBAERlG,OAAOqG,SAAShE,QAAhB,oEAC+DkS,EAD/D,yBACwFrO,EADxF,8EAGK,CACL,IAAMvD,EAAS,CACbrC,MAAO,EACPvD,KAAMA,EACNkH,SAAUA,GAEZuQ,EAAqB7R,GAAQvF,MAAK,SAACoT,GACjChV,EAAQgV,UAUlB,SAASgE,EAAqB7R,GAC5B,OAAO,IAAIpH,SAAQ,WACjB,OAAQkZ,aAAa9R,GAAQvF,MAAK,SAAAsX,GAGf,IAAbA,EAAI3X,KACF2X,EAAI1b,KAAK2b,YACXlI,EAAA,KAAMlB,OAAO,YAAa,CACxB/H,SAAUkR,EAAI1b,KAAKwK,SACnBW,MAAOuQ,EAAI1b,KAAKqL,QAChBuQ,SAAU,GACVrU,UAAWmU,EAAI1b,KAAKqH,MACpBA,MAAOqU,EAAI1b,KAAKqH,MAChBQ,OAAQ6T,EAAI1b,KAAK6H,UAGnB4L,EAAA,KAAMlB,OAAO,YAAa,CACxB3K,mBAAmB,IAErB6R,EAAWtO,MAAMuQ,EAAI1b,KAAK6H,OAAS,KAIrCwT,GAAkB,SAW1B,IAAMQ,EAAsB,GAGtB,SAAUC,IAA6C,MAAnCC,EAAmC,uDAAF,GAEnDC,EAAkB,SAAlBA,EACJrV,EACAhD,GAEA,IAAMsY,EAAQxb,OAAOyb,eAAevV,GACL,WAA3BsV,EAAME,YAAYhX,KACpB1E,OAAO2b,eAAezV,EAAQhD,GAE9BqY,EAAgBC,EAAOtY,IAIrB0Y,EAAY,SAAS1Y,EAAa2Y,GAAY,QAElB,YAA9B,UAAAP,EAAQI,mBAAR,eAAqBhX,MAAoB,CAAEoX,SAAUD,GAASP,EAFd,IAC1CQ,gBAD0C,MAC/BD,EAD+B,EAGlD,KAAIC,KAAY9I,EAAA,KAAMzL,OAyBpB,MAAMwU,UAAU,aAAD,OAAcD,EAAd,UAxBdV,EAAUpP,SAAS8P,IAAaV,EAAU/a,KAAKyb,GAEhD,IAAME,EAAahc,OAAO8F,OAAO,IAC/BmW,EAAqD,GAEvDb,EAAUc,SAAQ,SAAAnW,GAChBkW,EAAclW,GAAO,CACnBV,IADmB,WAGjB,OAAO2N,EAAA,KAAMzL,MAAMxB,IAGrBoW,IANmB,SAMf1W,GACFuN,EAAA,KAAMlB,OAAO,YAAb,kBACGgK,EAAWrW,SAKpB,IAAMR,EAASjF,OAAOoc,iBAAiBJ,EAAYC,GAGnDV,EAAgBrY,EAAQ+B,IAOtBmL,EAAO,MAAH,qBAAOiM,WACjB,MAAqC,YAA9B,UAAAf,EAAQI,mBAAR,eAAqBhX,MACxBkX,EAAUlb,MAAM,KAAhB,eAA0B0P,IAC1BwL,EAQA,SAAUU,EACdhB,GAKA,OAAO,SACLiB,EACAC,EACA5C,GAEA,IAAM6C,EAAK7C,EAAWnU,MACtBmU,EAAWnU,MAAX,wCAAmB,qIAAkB2K,EAAlB,yBAAkBA,EAAlB,eACXkI,EAAQ1T,YAAW,WACvB,IAAIgN,EAEFA,EAD+B,oBAAtB0J,EAAQoB,UACVpB,EAAQoB,UAAR,MAAApB,EAAqBlL,GACU,mBAAtBkL,EAAQoB,WACjBpB,EAAQoB,UAIjB9K,GAAQ,OAAM+K,QAAQrB,KACrBA,EAAQtL,MAAQ,KAXF,SAYXyM,EAAG/b,MAAMsH,KAAMoI,GAZJ,OAajB/L,aAAaiU,GACb,OAAMsE,QAdW,iDAoCjB,SAAUC,EACdvB,EACAkB,EACA5C,GAGA,IAAMxJ,EAAO,MAAH,qBAAOiM,WACXI,EAAK,gBAAgB,SAASK,EAAkB/W,GAChD,KAoBN,OAA4B,IAArBsW,UAAUtc,OACb0c,EAEAA,EAAG/b,MAAM,KAAT,eAAmB0P,M,+VCtWrBvJ,EAAQ,EAEL,SAAekW,EAAtB,kC,8DAAO,WAA2Bxd,GAA3B,0FACCyd,EAAQC,EAAe1d,GACxByd,EAAME,WAFN,gCAGuBC,IAHvB,OAGHH,EAAME,WAHH,cAKL,OAAQE,sBAAsBJ,GALzB,2C,wBAQP,IACIK,EADAC,EAA4B,E,SAEjBC,I,6FAAf,0GACMnb,SAASob,OADf,mBAEUC,IAAS,IAAI5V,MAAOkJ,UAAYuM,GAA6B,IAC7DN,EAAQC,EAAe,CAC3BS,KAAML,EAAqBK,KAC3BC,KAAMF,EACN5T,WAAYwT,EAAqBxT,aAE9BmT,EAAME,WARf,gCASgCC,IAThC,OASMH,EAAME,WATZ,cAWI,OAAQU,qBAAqBZ,GAXjC,2C,wBAcM,SAAUa,EAAWte,GACzB+d,GAA4B,IAAIzV,MAAOkJ,UACvCsM,EAAuB9d,EACvB6C,SAAS0b,iBAAiB,mBAAoBP,GAE1C,SAAUQ,IACdT,EAA4B,EAC5Blb,SAAS4b,oBAAoB,mBAAoBT,GAGnD,IAIIU,EAJAC,GAAS,EACTC,GAAU,EACVC,EAA8B,EAC9BC,EAAwB,E,SAEbC,I,6FAAf,uGACOJ,EADP,oDAEOC,IACHC,KACG,IAAIvW,MAAOkJ,UAAYsN,GAAyB,KACrDJ,EAAiBP,KAAKa,gBAAkBH,EAClCpB,EAAQwB,EAAoBP,GAC7BjB,EAAMlW,UAPb,gCAQ6BqW,IAR7B,OAQIH,EAAMlW,UARV,cAUE,OAAQ2X,sBAAsBzB,GAVhC,4C,wBAYM,SAAU0B,EAAYnf,GAC1BqF,YAAW,WACT,GAAKrF,EAAKof,YAAV,CACA,IAAIC,EAAWxc,SAASyc,cAActf,EAAKof,aAC3C,GAAyB,SAArBC,EAASE,SACX,IAAK,IAAIjf,EAAI,EAAGA,EAAI+e,EAASG,WAAWhf,OAAQF,IAC9C,GAAuC,SAAnC+e,EAASG,WAAWlf,GAAGif,SAAqB,CAC9CF,EAAWA,EAASG,WAAWlf,GAC/B,MAIF+e,IACFX,EAAmB1e,EACnB2e,GAAS,EACTG,GAAwB,IAAIxW,MAAOkJ,UACnCkN,EAAiBP,KAAKsB,SAAWJ,EAASI,SAC1CJ,EAASd,iBAAiB,QAAQ,WAChCO,GAAwB,IAAIxW,MAAOkJ,UACnCoN,GAAU,KAEZS,EAASd,iBAAiB,SAAS,WACjCK,GAAU,EACVC,KACG,IAAIvW,MAAOkJ,UAAYsN,GAAyB,IACnDC,OAEF/X,OAAOuX,iBAAiB,eAAgBQ,OAEzC,KAEC,SAAUW,IACdX,IACA1Z,YAAW,WACTsZ,GAAS,EACTE,EAA8B,EAC9BC,EAAwB,EACxBjc,SAAS4b,oBAAoB,eAAgBM,KAC5C,KAGE,SAAeY,EAAtB,kC,8DAAO,WAA2B3f,GAA3B,2FAEDgH,OAAOmH,UAAUC,eAAmBpH,OAAe4Y,kBAFlD,uBAGF5Y,OAAe4Y,kBAAoB,SAAS1Z,EAAYsP,GACvD,IAAIqK,EAAY,GACH,KAATrK,IAAcqK,EAAY,SACjB,KAATrK,IAAcqK,EAAY,QACjB,KAATrK,IAAcqK,EAAY,QACjB,KAATrK,IAAcqK,EAAY,QACjB,KAATrK,IAAcqK,EAAY,QAC9B,OAAQC,sBACNC,EAAoB,CAClBC,SAAUH,EACVI,WAAqB,KAAT/Z,EAAe,GAAK,aAbnC,8BAmBDlG,EAnBC,oBAoBGyd,EAAQsC,EAAoB/f,GAC7Byd,EAAME,WArBR,gCAsByBC,IAtBzB,OAsBDH,EAAME,WAtBL,cAwBH,OAAQmC,sBAAsBrC,GAxB3B,4C,wBA2BD,SAAUC,EAAe1d,GAC7BsH,EAAQtH,EAAKme,KAAK7W,MAClB,IAAM4Y,EAAS,OAAOC,IAAYC,OAC5BpK,EAAsB,CAC1BqK,OAAQ/Y,EACRgZ,UAAWJ,EAAMzN,MAAM/I,GACvB6W,YAAavgB,EAAKsK,WAAatK,EAAKsK,WAAa,KACjD4C,IAAKlG,OAAOqG,SAAS3K,KACrB8d,YAAa,KACbnZ,MAAO,OAAMW,MAAMX,MACnBsW,WAAY,OAAM3V,MAAMT,UACxB2W,MAAO,GAQT,OALIle,EAAKoe,KACPpI,EAAIkI,MAAQuC,SAASzgB,EAAKoe,KAAO,WAE1BpI,EAAIkI,MAENlI,EAEH,SAAUiJ,EAAoBjf,GAClCsH,EAAQtH,EAAKme,KAAK7W,MAClB,IAAM4Y,EAAS,OAAOC,IAAYC,OAClC,MAAO,CACL9Y,MAAOA,EACPoZ,YAAY,IAAIpY,MAAOkJ,UACvBmP,WAAY,KACZpZ,UAAW,OAAMS,MAAMT,UACvBgD,SAAU2V,EAAMzN,MAAM/I,GACtBY,WAAYtK,EAAKsK,WAAatK,EAAKsK,WAAa,KAChDjD,MAAO,OAAMW,MAAMX,MACnB6F,IAAKlG,OAAOqG,SAAS3K,KACrBke,oBAAqBH,SAASzgB,EAAKme,KAAKa,iBACxC6B,gBAAiBJ,SAASzgB,EAAKme,KAAKsB,UACpCqB,SAAU9gB,EAAKme,KAAK4C,YAAc/gB,EAAKme,KAAK6C,aAG1C,SAAUjB,EAAoB/f,GAClC,IAAMkgB,EAAS,OAAOC,IAAYC,OAClC,MAAO,CACLC,OAAQ/Y,EACR2Z,YAAa,GACbC,WAAYlhB,EAAKigB,WAAa,IAAM,IACpCD,SAAUhgB,EAAKggB,SACfrC,WAAY,OAAM3V,MAAMT,UACxB+Y,UAAWJ,EAAMzN,MAAM/I,GACvB6W,YAAa,OACblZ,MAAO,OAAMW,MAAMX,MACnB8Z,QAAS,IAIP,SAAUvD,IACd,IAAM7B,EAAU,CACdqF,SAAU,CACRrU,WAAW,EACXsU,OAAO,EACPC,kBAAkB,EAClBC,OAAO,EACPC,YAAY,EACZC,OAAO,EACPC,QAAQ,IAGZ,OAAO,IAAInf,SAAQ,SAACmZ,EAAKiG,GACvB,IAAa7b,IAAIiW,GAAS,SAAS1C,GAEjC,IAAMuI,EAASvI,EAAWlJ,KAAI,SAASxE,GACrC,OAAOA,EAAUzF,SAGb2b,EAAS,IAAaC,WAAWF,EAAOvR,KAAK,IAAK,IACxDqL,EAAImG,W,4MCpNJE,EAAWthB,OAAOC,UAAUqhB,SAG5B,SAAUlO,EAAGmO,EAAc1e,GAC/B,OAAOye,EAASnhB,KAAKohB,KAAd,kBAAkC1e,EAAlC,KAIH,SAAU2e,EAAS/b,GACvB,QAASA,GAAmB,IAAVA,EAIb,IAQMgc,EAAW,SAACF,GACvB,OAAe,OAARA,GAAgBnO,EAAGmO,EAAK,WAe1B,IAAMG,EAAa,SAACH,GAAD,MACT,oBAARA,GAuBH,SAAUI,EAAQJ,GACtB,QAASA,GAAOzY,MAAM6Y,QAAQJ","file":"js/app.782aefa1.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-1814bdd0\":\"f1e89998\",\"chunk-7638afa8\":\"766a64cb\",\"chunk-c139881e\":\"7eacd7ac\",\"chunk-f940041a\":\"22c7559f\",\"chunk-5166f421\":\"8385af66\",\"chunk-7b975321\":\"0504f6c6\",\"chunk-1135523b\":\"5472a9e4\",\"chunk-47af1ed8\":\"8be30080\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-1814bdd0\":1,\"chunk-7638afa8\":1,\"chunk-c139881e\":1,\"chunk-f940041a\":1,\"chunk-5166f421\":1,\"chunk-7b975321\":1,\"chunk-1135523b\":1,\"chunk-47af1ed8\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-1814bdd0\":\"6d8ab2db\",\"chunk-7638afa8\":\"9f29a4c7\",\"chunk-c139881e\":\"b45c3ccf\",\"chunk-f940041a\":\"9d1a8e36\",\"chunk-5166f421\":\"bce92625\",\"chunk-7b975321\":\"56621dbc\",\"chunk-1135523b\":\"60c429fa\",\"chunk-47af1ed8\":\"71a40239\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/*\n * @Description:\n * @Version: 1.0\n * @Author: zhuangyuan\n * @Date: 2022-01-13 15:38:53\n * @LastEditors: zhuangyuan\n * @LastEditTime: 2022-02-24 16:00:39\n * @FilePath: \\cqliving-live-h5\\src\\store\\index.ts\n */\nimport Vue from \"vue\";\nimport Vuex from \"vuex\";\n\nVue.use(Vuex);\nconst stateOption: IIndexObject = {\n token: \"\",\n appId: \"\",\n sessionId: \"\",\n // 当前选择的主持人\n checkedHosts: [],\n // 关闭浏览量\n hideDetailViewCount: 1,\n videoFullScreen: false,\n\n // appId\n appIdFromUA: 0,\n isOpenWxBindPhone: false,\n openId: 0,\n liveShare: null\n};\nexport default new Vuex.Store({\n state: stateOption,\n mutations: {\n SET_STATE(state, obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n (state as IIndexObject)[key] = obj[key];\n }\n }\n }\n },\n actions: {},\n modules: {}\n});\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAjCAYAAABo4wHSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NjgwOTYwNUZEN0MxMUVBQjFEODk2MzE0OTRGMTIyMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NjgwOTYwNkZEN0MxMUVBQjFEODk2MzE0OTRGMTIyMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc2ODA5NjAzRkQ3QzExRUFCMUQ4OTYzMTQ5NEYxMjIzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc2ODA5NjA0RkQ3QzExRUFCMUQ4OTYzMTQ5NEYxMjIzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ddWn6AAAAv1JREFUeNrEl0lsTVEYxzs8Q1HSVjURSkIiFrqxQCnCpmJhCImYFsgzlBSpIWJrqCmURFpDmghpFxJTBCUWjQTPlKCLhlQTQTQtJWmLFr8v+d/kenmte1/f5Ut+Ofedd+/5n++c833nnOTy8vKkOGwS7IbT4XD4st+Pk32KToWFsNVVdx6q4QYd+OFVNJ0yFT6rLgNCKkfASIlNhgmub79Cuut3IzyCWngBH6EJuqCFDnVVVFRk8fzdRLfzUARfYDAMgz7qSCyrs2GFS+rEeg13Rjfvd5oofIChcMw8yoRcvfALOuCbevkW3kM9vIbnEHE12IAHV/AgW6MxBvJU5qrtZMiWM2aZIYmYHYYdrga7vE40wk3y/A+jM85o2cjth2LTC7neeedHyGNnnPZsPhud+hTXO2lJwdqAWKL/zP6LaCiIRpm/cRSFUMm8tgYuiqAlkYswHHJgV6CiCFqs3oF+YB7eDHR4owQ/wSyG9lm8C2msB8EpFHcl2AazuxP0InoEXsLBHgTzKWqUddrl4dPehIz93xdKYF+M//M1bwPloQk+6G2cbtNKNNsZ5bEJ3oZBWjQzELyfiDi1TXkRnIPl8rhTC+Yq9NduVIjgk0RnpBVwwuVxjQRtj5zmR9BvGtwE7rNNuzysDzoNrtOmPF7PdfHmXmej/enxm7Vx5g+n/dQU14+OgDeXNvecOnG1IGDRJSojNrzXweKrAOxkeCDBm4Ct8iodYR/bQc5ZvUsVk6VapYkStPZvwTxVbXCHTINO7mZlPeVaH4Jp2gQKVFWMlw+j4/SaHeD0XKIhnxinYJ6+n+4kFATLuksOp2CZ65IUiToLexFcSXFPh26zIgRL/5YcLugMXAmjdEieo+Qf6UHM3t3j6rRlqjUI1vq5tQ2R8HxX3Rk4qguSYzmalhLdhczOysMOv2mwVbG7EfbqhrYaVsFJLZKZir8sfWP3ni2IVSfifjoaNkswPcb/zdqFjiPYnKiE/0aih2AxzNVCe6XFV4VYi9fF9luAAQChIN3VToi8IgAAAABJRU5ErkJggg==\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Phone.vue?vue&type=style&index=0&id=03363dbc&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAnCAYAAAD6meO+AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RENDQUI0OEZEN0MxMUVBOUQ3NEU2QUJENTMzQTc2OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RENDQUI0OUZEN0MxMUVBOUQ3NEU2QUJENTMzQTc2OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZEQ0NBQjQ2RkQ3QzExRUE5RDc0RTZBQkQ1MzNBNzY5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZEQ0NBQjQ3RkQ3QzExRUE5RDc0RTZBQkQ1MzNBNzY5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VLa8+AAAAWlJREFUeNpinDlzJgMUuAOxGBD/ZaAcMALxPyA+l5aWdpMFyGAG4olAnM1AffB81qxZkSBLwqEWfADifUDMQgXD/wAxPxA7A/FykIE+UIlCIF5AqmnA4MApB/TFWSBlxAQkuKBiz2gQXG9ABMiS31ABThpYwgqzhOZg1JJRS0YtGbVk1JJRS0YtwWXJf3pY8pkG5oMbKSzQ5iS4CQXE5kDMToopwLYVLqnvQKwGswTW9o2AYqoDWFsYBHYD8V0kPq7m5zdoMHNDG9b41AYAsSQLUry0APEhIhzGCQ0KYpqpSiBLkCNekAgLmoH4JRA/AbVxiVDPRmo+kQXiGiDmBWJpIC6hRWb8jtYov0dKxLMiGUKohe4KxHVAfAOIW0nJJ1+hAlJEaLpGYjIXAfftgH3GKCC9lMie1n9ovmIiENS/oT0tF1CXDmTgSmhOzwPiIGr3GYE4Epbj84F4AzQF/aFSmfgX1vsFCDAAggFMP6uN7H0AAAAASUVORK5CYII=\"","interface PropertyDescriptor {\n [key: string]: any; // Add index signature\n}\ninterface Object {\n /**\n * 方法返回通过测试(函数内判断)的数组的第一个元素的值\n * @param {object} func 必需。数组每个元素需要执行的函数\n */\n find: (func: (item: any) => any) => object | undefined;\n}\ninterface Date {\n /**\n * 格式化时间\n * @param {string} rule 格式化规则 默认 yyyy-MM-dd hh:mm:ss\n */\n format: (rule?: string) => string;\n}\n\ninterface Array {\n /**\n * 最后一个元素\n */\n lastChild: T;\n}\n// Reflect.defineProperty(Object.prototype, \"find\", {\n// value(callBack: (item: object) => {}) {\n// if (typeof callBack === \"function\") {\n// for (const key in this) {\n// if (this.hasOwnProperty(key)) {\n// if (callBack(this[key])) {\n// return this[key];\n// }\n// }\n// }\n// }\n// }\n// });\nReflect.defineProperty(Date.prototype, \"format\", {\n value(rule = \"yyyy-MM-dd hh:mm:ss\") {\n const year = this.getFullYear() + \"\";\n const month = this.getMonth() + 1 + \"\";\n const day = this.getDate() + \"\";\n const hour = this.getHours() + \"\";\n const minutes = this.getMinutes() + \"\";\n const second = this.getSeconds() + \"\";\n rule = rule.replace(/yyyy/g, year);\n rule = rule.replace(/MM/g, month.padStart(2, \"0\"));\n rule = rule.replace(/dd/g, day.padStart(2, \"0\"));\n rule = rule.replace(/hh/g, hour.padStart(2, \"0\"));\n rule = rule.replace(/mm/g, minutes.padStart(2, \"0\"));\n rule = rule.replace(/ss/g, second.padStart(2, \"0\"));\n return rule;\n }\n});\n\nReflect.defineProperty(Array.prototype, \"lastChild\", {\n get: function(): T {\n return this[this.length - 1];\n }\n});\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","import axios from \"@/common/request\";\nimport {\n IDoPraise,\n IGetChatRoom,\n IGetDetail,\n IGetJsonDetail,\n IGetFloating,\n IGetGiftRecord,\n IGetLiveList,\n IGetLivePoint,\n IGetLiveRedpacket,\n IGetLiveRoom,\n IGetShareInfo,\n IGiftTips,\n ILiveExchange,\n ILiveReply,\n IGetLiveShare,\n IResponse,\n IHosts,\n IConfigJson,\n ICount,\n IAppConfig,\n WeChartUserInfoRes,\n IcommentSave,\n IuserBindPhone,\n appInfoRes,\n HlxDataCollect,\n HlxDataCollectVideo,\n HlxDataCollectShare\n} from \"./types\";\nimport store from \"@/store\";\nimport { getminute } from \"@/common/utils\";\n\nclass RequestIndex {\n getAppInfo(appId: any) {\n throw new Error(\"Method not implemented.\");\n }\n private get appId() {\n return store.state.appId;\n }\n\n private get token() {\n return store.state.token;\n }\n\n private get sessionId() {\n return store.state.sessionId;\n }\n\n private get infoClassifyId() {\n return store.state.infoClassifyId;\n }\n\n /**\n * 增加浏览量\n * @param infoClassifyId infoClassifyId\n */\n\n // getCount(infoClassifyId: string, url: string): Promise {\n // return axios.post(`${url}info/v2/addViewCount.html`, {\n // appId: this.appId,\n // sourceId: infoClassifyId,\n // sourceType: 1\n // });\n // }\n getCount(): Promise {\n return axios.get(\n process.env.VUE_APP_BASE_API +\n `getAndIncrCount.html?infoClassifyId=${this.infoClassifyId}&appId=${this.appId}`\n );\n }\n\n /**\n * 通过ID获取当前直播间全局配置文件\n */\n getConfigJsonById(id: string): Promise {\n return axios.get(\n `https://h5cloud.cqliving.com/statics/live/data/${\n process.env.VUE_APP_ENV\n }/${id}.json?t=${getminute()}`\n );\n }\n\n /**\n * 获取全局配置文件\n */\n getConfigJson(): Promise {\n return axios.get(\n `https://h5cloud.cqliving.com/statics/live/data/${\n process.env.VUE_APP_ENV\n }/config.json?t=${getminute()}`\n );\n }\n\n /**\n * 获取浏览量、点赞量\n */\n getCountJson(): Promise {\n return axios.get(\n `https://h5cloud.cqliving.com/statics/live/data/${\n process.env.VUE_APP_ENV\n }/${this.infoClassifyId}/index.json?t=${getminute()}`\n );\n }\n\n /**\n * 获取直播详情\n */\n getDetailByJson(): Promise {\n return axios.get(\n `https://h5cloud.cqliving.com/statics/live/data/${\n process.env.VUE_APP_ENV\n }/${this.infoClassifyId}.json?t=${getminute()}`\n );\n }\n\n /**\n * 获取直播详情\n * @param infoClassifyId infoClassifyId\n */\n detail(infoClassifyId: string): Promise {\n return axios.get(\n process.env.VUE_APP_ZWY_LIVE + `/live/detail/${infoClassifyId}`,\n {\n params: {\n token: this.token\n }\n }\n );\n }\n\n /**\n * 获取app配置\n */\n getAppConfig(): Promise<[IAppConfig]> {\n // return axios.post(process.env.VUE_APP_ZWY_LIVE + \"/getAppConfig\", {\n // appId: this.appId\n // });\n return axios.get(\n `https://imagecdn${\n process.env.VUE_APP_ENV == \"prod\" ? \"\" : \"test\"\n }.cqliving.com/${\n process.env.VUE_APP_ENV\n }/app/news/Config/global/appInfoConfigList.json?t=${getminute()}`,\n {}\n );\n }\n\n /** 获取app信息 */\n getAppInfoList(): Promise {\n return axios.get(\n `https://h5cloud.cqliving.com/statics/h5/res/getAppInfoList.json?t=${getminute()}`,\n {}\n );\n }\n /**\n * 获取主持人列表\n * @param infoClassifyId\n */\n getHosts(infoClassifyId: string): Promise {\n return axios.post(\"/live/hosts.html\", {\n appId: this.appId,\n infoClassifyId\n });\n }\n\n /**\n * 获取礼物列表\n */\n giftList(): Promise {\n return axios.post(process.env.VUE_APP_ZWY_LIVE + \"/live/live_list\", {\n appId: this.appId\n });\n }\n\n /**\n * 用户可用总积分接口\n */\n livePoint(): Promise {\n return axios.post(\"/live/live_point.html\", {\n appId: this.appId,\n token: this.token,\n sessionId: this.sessionId\n });\n }\n\n /**\n * 获取唤醒app信息接口\n */\n getShareInfo(): Promise {\n return axios.post(process.env.VUE_APP_ZWY_LIVE + \"/getShareInfo\", {\n appId: this.appId\n });\n }\n\n /**\n * 获取兑奖记录\n * @param lastId 最后一条记录的ID\n */\n getGiftRecord(lastId: string): Promise {\n return axios.post(\"/live/live_records.html\", {\n lastId,\n token: this.token\n });\n }\n\n /**\n * 直播间列表\n * @param infoClassifyId 资讯ID\n * @param lastReplyId 最后的评论id\n * @param lastId lastId\n * @param lastSortNo 最后一条数据的排序号\n * @param lastCreateTime 最后一条数据时间\n * @param hostIds 筛选主持人\n * @param sort 不为空 升序 默认降序\n */\n getLiveRoom(\n infoClassifyId: string,\n lastReplyId?: number,\n lastId?: number,\n lastSortNo?: number,\n lastCreateTime?: string,\n hostIds?: string[],\n sort = \"desc\"\n ): Promise {\n return axios.post(process.env.VUE_APP_ZWY_LIVE + \"/live/live_room\", {\n appId: this.appId,\n token: this.token,\n infoClassifyId,\n lastReplyId,\n lastId,\n lastSortNo,\n lastCreateTime,\n hostIds,\n sort: sort\n });\n }\n\n /**\n * 聊天室列表\n * @param infoClassifyId 资讯ID\n * @param lastReplyId 最后的评论id\n * @param lastCreateTime 最后的评论时间\n */\n getChatRoom(\n infoClassifyId: string,\n lastCreateTime: string,\n lastReplyId?: number,\n v?: string\n ): Promise {\n return axios.get(process.env.VUE_APP_ZWY_LIVE + \"/live/chat_room\", {\n params: {\n infoClassifyId,\n appId: this.appId,\n lastReplyId,\n lastCreateTime,\n token: this.token,\n v\n }\n });\n }\n\n /**\n * 点赞\n * @param userId 被点赞用户 id\n * @param title 资讯标题/评论内容\n * @param infoClassifyId 资讯ID\n */\n doPraise(\n userId: string,\n title: string,\n infoClassifyId: string,\n type: number,\n sourceType = 50\n ): Promise {\n return axios.post(\"/doPraise.html\", {\n appId: this.appId,\n sessionId: this.sessionId,\n token: this.token,\n userId,\n title,\n v: 1,\n type,\n sourceId: infoClassifyId,\n sourceType\n });\n }\n\n /**\n * 评论\n */\n commentSave(data: {\n isAnonymous: boolean;\n content: string;\n columnsType: number;\n sourceType: string;\n sourceId: string;\n passiveReplyName?: string;\n passiveReplyId?: number | string;\n }): Promise {\n return axios.post(\"/commentSave.html\", {\n appId: this.appId,\n sessionId: this.sessionId,\n token: this.token,\n ...data\n });\n }\n\n /**\n * 判断红包状态接口\n * @param id id\n * @param nickname 当前红包主持人名称\n * @param avatar 当前红包主持人头像\n */\n liveRedpacket(\n id: string,\n nickname: string,\n avatar: string\n ): Promise {\n return axios.post(\"/live/live_redpacket/status.html\", {\n liveDetailId: id,\n token: this.token,\n nickname,\n avatar\n });\n }\n\n /**\n * 开启红包\n * @param liveDetailId ID\n */\n openRedpacket(liveDetailId: string): Promise {\n return axios.post(\"/live/live_redpacket/openRedpacket.html\", {\n liveDetailId,\n token: this.token\n });\n }\n\n /**\n * 获取评论列表(弹幕)\n * @param infoClassifyId 新闻id\n * @param lastId 最新评论 和 下拉都必须传最后一条id\n */\n liveReply(infoClassifyId: string, lastId?: number): Promise {\n return axios.post(process.env.VUE_APP_ZWY_LIVE + \"/live/live_reply\", {\n infoClassifyId,\n desc: true,\n lastId\n });\n }\n\n /**\n * 用户赠送礼物接口\n * @param giftId 礼物id\n * @param sum 礼物送的数量\n * @param informationId 新闻详情id\n * @param titile 新闻标题\n */\n liveExchange(\n giftId: number,\n sum: number,\n informationId: number,\n titile: string\n ): Promise {\n return axios.post(\"/live/live_exchange.html\", {\n token: this.token,\n giftId,\n sum,\n informationId,\n titile\n });\n }\n\n /**\n * 其他用户展示的礼物\n * @param informationId 新闻ID\n * @param interval 间隔\n */\n giftTips(informationId: string, interval: number): Promise {\n return axios.post(\"/live/gift_tips.html\", {\n token: this.token,\n informationId,\n interval\n });\n }\n\n /**\n * 浮窗列表\n * @param infoClassifyId infoClassifyId\n */\n floating(infoClassifyId: string): Promise {\n return axios.post(process.env.VUE_APP_ZWY_LIVE + \"/live/floating\", {\n infoClassifyId\n });\n }\n\n /**\n * 直播分享\n */\n liveShare(infoClassifyId: string): Promise {\n return axios.post(process.env.VUE_APP_ZWY_LIVE + \"/live/live_share\", {\n infoClassifyId,\n appId: this.appId\n });\n }\n\n /**\n * 分享点赞\n * @param id id\n * @param title 标题\n * @param sourceType sourceType\n */\n doPraiseShare(\n id: string,\n title: string,\n sourceType: number\n ): Promise {\n return axios.post(\"/doPraiseShare.html\", {\n appId: this.appId,\n title: title,\n v: \"1\",\n type: \"0\", //0点赞1评论(暂不支持评论)\n sourceId: id,\n sourceType: sourceType //短视频41\n });\n }\n\n /**\n * 用户评论状态\n * @param id id\n * @param sourceType sourceType\n */\n replyUserStatus(id: string, sourceType: string): Promise {\n console.log(id, sourceType);\n return axios.post(\"/reply/user/status.html\", {\n appId: this.appId,\n token: this.token,\n sourceId: id,\n sourceType: sourceType\n });\n }\n\n /**\n * 获取慢直播视频列表\n * @param infoClassifyId\n */\n getSlowDetailApi(infoClassifyId: string): Promise {\n return axios.get(`/live/detail/slow/${infoClassifyId}.html`, {\n params: {\n token: this.token\n }\n });\n }\n\n /**\n * 获取微信授权用户信息\n * @param code: string; //微信用户code\n * @param weChatId number; //微信公众号id\n * @param appId string | number;\n */\n weChatAuthor({\n code,\n weChatId\n }: {\n code: string;\n weChatId: number;\n }): Promise {\n return axios.get(process.env.VUE_APP_NEWACT + \"/weChat/userInfo\", {\n params: {\n appId: 1,\n code: code,\n weChatId: weChatId,\n registSourceType: \"live\"\n }\n });\n }\n /**\n * 发送验证码\n * @param phone 手机号\n */\n sendvalidcode(phone: string): Promise {\n return axios.post(process.env.VUE_APP_NEWACT + \"/user/getCaptcha\", {\n appId: \"16\",\n type: \"20\",\n phone\n });\n }\n /**\n * 绑定手机号\n * @param openId openId\n * @param phone 手机号\n * @param smsCode 短信验证码\n */\n userBindPhone({\n openId,\n phone,\n smsCode\n }: {\n openId: string;\n phone: string;\n smsCode: string;\n }): Promise {\n return axios.post(\n process.env.VUE_APP_NEWACT + \"/weChat/userBindPhoneCaptcha\",\n {\n openId,\n phoneNo: phone,\n appId: \"16\",\n captcha: smsCode\n }\n );\n }\n /** ----------华龙芯问政埋点-------- */\n // 浏览量埋点接口\n getHlxNewsRecordCount(params: HlxDataCollect) {\n return axios.post(process.env.VUE_APP_HLX_API + \"/news/browse\", params);\n }\n // 浏览时长埋点接口\n getHlxNewsRecordTime(params: HlxDataCollect) {\n return axios.post(process.env.VUE_APP_HLX_API + \"/news/browseTime\", params);\n }\n // 视频时长埋点接口\n getHlxNewsRecordVideo(params: HlxDataCollectVideo) {\n return axios.post(process.env.VUE_APP_HLX_API + \"/video/view_count/app\", [\n params\n ]);\n }\n // app/微信分享埋点接口\n getHlxNewsRecordShare(params: HlxDataCollectShare) {\n return axios.post(process.env.VUE_APP_HLX_API + \"/share\", params);\n }\n // 重要保障的直播新闻id\n getStaticJson() {\n return axios.get(\n `https://h5cloud.cqliving.com/zwy/live-config/static.json?t=${getminute(\n 10\n )}`\n );\n }\n // 重要保障的直播新闻id的直播间\n getStaticLiveRoom(id: string) {\n return axios.get(\n `https://h5cloud.cqliving.com/zwy/live-config/liveRoom/${id}.json?t=${getminute()}`\n );\n }\n}\nexport default new RequestIndex();\n","import Vue from \"vue\";\nimport VueRouter, { RouteConfig } from \"vue-router\";\n\nVue.use(VueRouter);\n\nconst routes: Array = [\n {\n path: \"/\",\n name: \"Home\",\n meta: {\n keepAlive: true\n },\n component: () => import(\"../views/Home.vue\")\n },\n {\n path: \"/404\",\n name: \"404\",\n meta: {\n keepAlive: true\n },\n component: () => import(\"../views/404.vue\")\n },\n {\n path: \"/Living\",\n name: \"Living\",\n component: () => import(\"../views/living/Living.vue\")\n },\n {\n path: \"/host-filter\",\n name: \"HostFilter\",\n component: () => import(\"../views/HostFilter.vue\")\n },\n {\n path: \"/record\",\n name: \"Record\",\n component: () => import(\"../views/Record.vue\")\n },\n {\n path: \"/slow\",\n name: \"Slow\",\n component: () => import(\"../views/Slow.vue\")\n }\n];\n\nconst router = new VueRouter({\n mode: \"hash\",\n base: process.env.BASE_URL,\n routes\n});\nexport default router;\n","import Native from \"./Native\";\nimport { encode } from \"js-base64\";\nimport { isArray, isTruely } from \"./is\";\n/**\n * 复制到剪切板\n * @param value 值\n */\nexport function copy(value: string): boolean {\n const text = document.createElement(\"textarea\");\n let result = true;\n try {\n text.value = value;\n document.body.appendChild(text);\n text.select();\n document.execCommand(\"copy\");\n } catch (error) {\n result = false;\n }\n document.body.removeChild(text);\n return result;\n}\n\n/**\n * 在js中使用px时调用此函数将设计稿px转换为当前rem适用的px\n * @param px px\n */\nexport function toRem(px: number) {\n const key = Math.round(window.innerWidth * 0.1333333333333333);\n return (px / 100) * key;\n}\n\nexport function pxToRem(px: number) {\n const key = Math.round(window.innerWidth * 0.1333333333333333);\n return px / key;\n}\n\n/**\n * 转换的px\n * @param size rem大小\n */\nexport function remToPx(size: string) {\n if (size.includes(\"rem\")) {\n return (\n Number(size.split(\"rem\")[0]) *\n Math.round(window.innerWidth * 0.1333333333333333)\n );\n }\n return Number(size.split(\"px\")[0]);\n}\n\n/**\n * style属性的px转换成number\n * @param px dom style属性\n */\nfunction stylePxToNumber(px: string) {\n if (px.includes(\"px\")) {\n px = px.split(\"px\")[0];\n }\n return Number(px);\n}\n\n/** 是否在微信内打开 */\nexport function isOpenInWechat() {\n const ua = navigator.userAgent.toLowerCase();\n if (ua.includes(\"micromessenger\")) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * 处理url 去掉微信返回时带的参数\n */\nexport function handleWXbackUrl(ifencode = true) {\n const w = location.href.indexOf(\"?\");\n const j = location.href.indexOf(\"#\");\n let href = window.location.href;\n let url;\n if (w !== -1 && j > w) {\n href =\n location.href.substr(0, w) +\n location.href.substr(j, location.href.length);\n url = href;\n } else {\n url = location.href;\n }\n return ifencode ? encodeURIComponent(url) : url;\n}\n/**\n * 获取url参数\n */\nexport function getUrlParam(name: string) {\n const reg = new RegExp(\"(^|&)\" + name + \"=([^&]*)(&|$)\");\n const r = window.location.search.substr(1).match(reg);\n if (r != null) return unescape(r[2]);\n return null;\n}\n\n/**\n * 验证规则\n */\nconst rules = [\n null,\n // 其他 - 非空\n (value: string) => !!value,\n // 手机\n (value: string) => new RegExp(/^[1][0-9][0-9]{9}$/).test(value),\n // 普通文本 - 非空\n (value: string) => !!value,\n // 身份证 - 二代身份证\n (value: string) =>\n new RegExp(\n /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/\n ).test(value),\n // 邮箱\n (value: string) =>\n new RegExp(\n /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/\n ).test(value),\n // 纯数字\n (value: string) => new RegExp(/^[0-9]*$/).test(value)\n];\n/**\n * 验证输入是否合法\n * @param value 验证值\n * @param type 验证类型 {1:其他,2:手机,3:普通文本,4:身份证,5:邮箱,6:数字}\n */\nexport function verifier(value: string, type: number) {\n if (!value) return false;\n if (!type) return true;\n return rules[type]!(value);\n}\n\n/**\n * 跳转网页\n * @param url 地址\n */\nexport function openUrl(url: string) {\n if (window.ZWY_CLOUD && Native.isOpenInApp()) {\n Native.openWebBrowser({\n id: \"\",\n sourceId: \"\",\n detailViewType: \"98\",\n sourceType: \"0\",\n commentType: \"0\",\n contextType: \"\",\n isShowTop: \"1\",\n isShowBottom: \"0\",\n isShowMore: \"0\",\n url: url,\n shareUrl: url,\n title: encode(document.title),\n synopsis: \"\",\n shareImgUrl: \"\"\n });\n } else {\n window.open(url);\n }\n}\n\n/**\n * 获取运行环境\n */\nexport function getSystemName() {\n let os;\n if (window.ZWY_CLOUD.isOpenInApp()) {\n os = \"APP\";\n } else {\n const wx = navigator.userAgent.toLowerCase();\n if (wx.indexOf(\"micromessenger\") !== -1) {\n os = \"WX\";\n } else {\n // 需要新增pc类型\n os = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)\n ? \"H5\"\n : \"PC\";\n }\n }\n return os;\n}\n/** 根据UA获取AppId */\nexport function getAppIdFromUA() {\n const ua = navigator.userAgent;\n const matchArr = /CQ_XHL\\((.+)\\)/.exec(ua);\n if (matchArr && matchArr.length) {\n const appinfoArr = matchArr[1].split(\";\");\n if (appinfoArr.length) {\n return appinfoArr[2];\n } else {\n return \"\";\n }\n } else {\n return \"\";\n }\n}\n\n/**\n * 缩放Dom的大小\n * @param scale 比例\n */\nexport function zoomDom(scale: number, dom: HTMLElement) {\n function execute(el: HTMLElement) {\n for (const e of el.children) {\n const temp = e as HTMLElement;\n temp.style.width &&\n (temp.style.width =\n pxToRem(stylePxToNumber(temp.style.width) * scale) + \"rem\");\n temp.style.height &&\n (temp.style.height =\n pxToRem(stylePxToNumber(temp.style.height) * scale) + \"rem\");\n temp.style.fontSize &&\n (temp.style.fontSize =\n pxToRem(stylePxToNumber(temp.style.fontSize) * scale) + \"rem\");\n temp.style.padding &&\n (temp.style.padding = temp.style.padding\n .split(\" \")\n .map(item => pxToRem(stylePxToNumber(item) * scale) + \"rem\")\n .join(\" \"));\n temp.style.margin &&\n (temp.style.margin = temp.style.margin\n .split(\" \")\n .map(item => pxToRem(stylePxToNumber(item) * scale) + \"rem\")\n .join(\" \"));\n if (temp.children) {\n execute(temp);\n }\n }\n }\n if (dom.children.length) {\n execute(dom);\n }\n}\n\nexport function throttle(func: Function, wait: number) {\n let ctx: any,\n args: any[] | null = null,\n timerId: number,\n last = 0,\n returnVal: any;\n\n function call() {\n timerId = 0;\n last = +new Date();\n returnVal = func.apply(ctx, args);\n ctx = null;\n args = null;\n }\n\n return function throttled(this: any, ..._args: any[]) {\n ctx = this;\n args = _args;\n const delta = Date.now() - last;\n if (!timerId)\n if (delta >= wait) call();\n else timerId = setTimeout(call, wait - delta);\n return returnVal;\n };\n}\n\nexport function generator({\n value,\n delay\n}: {\n value: unknown[];\n delay: number;\n}): { asyncIterator: AsyncIterable };\nexport function generator({\n value,\n times,\n delay\n}: {\n value: unknown;\n times: number;\n delay: number;\n}): { asyncIterator: AsyncIterable };\nexport function generator({\n value,\n times,\n delay = 1000\n}: {\n value: unknown;\n times?: number;\n delay: number;\n}): { asyncIterator: AsyncIterable } {\n const asyncIterator = {\n [Symbol.asyncIterator]() {\n return {\n n: 0,\n async next() {\n this.n += 1;\n return new Promise<{ done: boolean; value: any }>(resolve => {\n setTimeout(\n () =>\n resolve({\n value: isArray(value) ? value[this.n] : value,\n done:\n this.n >\n (!isTruely(times)\n ? isArray(value)\n ? value.length\n : Number.MAX_SAFE_INTEGER\n : times)\n }),\n delay\n );\n });\n }\n };\n }\n };\n return { asyncIterator };\n}\nexport function getminute(unit = 1) {\n function repair(i: any) {\n if (i >= 0 && i <= 9) {\n return \"0\" + i;\n } else {\n return i;\n }\n }\n const date = new Date(); //当前时间\n const year = date.getFullYear(); //返回指定日期的年份\n const month = repair(date.getMonth() + 1); //月\n const day = repair(date.getDate()); //日\n const hour = repair(date.getHours()); //时\n const minute = repair(date.getMinutes()); //分\n if (unit == 1) {\n const tt = `${year}/${month}/${day} ${hour}:${minute}:00`;\n return new Date(tt).getTime();\n } else {\n const list = [0];\n for (let i = 0; i < 60 / unit; i++) {\n const newunit = unit * (i + 1);\n if (newunit < 60) {\n list.push(newunit);\n }\n }\n const tt = `${year}/${month}/${day} ${hour}:${\n list[Math.floor(minute / unit)]\n }:00`;\n return new Date(tt).getTime();\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.flag)?_c('div',[_c('transition',{attrs:{\"name\":\"fade\"}},[_c('keep-alive',[(_vm.keepAlive)?_c('router-view',{staticClass:\"linkView\",attrs:{\"id\":\"linkView\"}}):_vm._e()],1)],1),_c('transition',{attrs:{\"name\":\"fade\"}},[(!_vm.keepAlive)?_c('router-view',{staticClass:\"linkView\",attrs:{\"id\":\"linkView\"}}):_vm._e()],1)],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport { getAppIdFromUA } from \"@/common/utils\";\nimport { recordShare } from \"./api/dataCollect\";\n@Component\nexport default class App extends Vue {\n get keepAlive() {\n return this.$route.meta?.keepAlive;\n }\n flag = false;\n @Watch(\"$route\")\n handler() {\n this.$store.commit(\"SET_STATE\", {\n infoClassifyId: this.$route.query.id as string\n });\n this.flag = true;\n }\n mounted() {\n recordShare();\n if (getAppIdFromUA()) {\n this.$store.commit(\"SET_STATE\", {\n appIdFromUA: getAppIdFromUA()\n });\n }\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=4bdbe7f8&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nVue.mixin({\n beforeRouteEnter(to, from, next) {\n if (to.meta?.keep) {\n const content = document.getElementById(\"app\");\n if (content) {\n next(vm => {\n // content.scrollTop = to.meta.scrollTop;\n });\n }\n } else {\n next();\n }\n },\n beforeRouteLeave(to, from, next) {\n //如果是需要缓存的页面,滚动到上次保存的高度\n if (from.meta?.keep) {\n const content = document.getElementById(\"app\");\n if (content) {\n from.meta.scrollTop = content.scrollTop;\n }\n }\n next();\n }\n});\n","import { Component } from \"vue-property-decorator\";\n\nComponent.registerHooks([\n \"mounted\",\n \"created\",\n \"before\",\n \"beforeRouteEnter\",\n \"beforeRouteLeave\",\n \"beforeRouteUpdate\"\n]);\n","import Vue from \"vue\";\nimport { ImagePreview } from \"vant\";\nimport { DirectiveOptions } from \"vue/types/umd\";\nimport store from \"@/store\";\nimport { isObject } from \"./is\";\nimport Native from \"@/common/Native\";\n\nconst jump: DirectiveOptions = {\n bind(el) {\n el.onclick = function() {\n console.warn(store.state.appId);\n // 如果在app内,不跳转\n if (Native.isOpenInApp()) return;\n location.href = `http://www.cqliving.com/install/index.html?id=${store.state.appId}`;\n };\n }\n};\n\nconst preview: DirectiveOptions = {\n bind(el, binding) {\n const { value } = binding;\n el.onclick = function() {\n if (!value) return;\n ImagePreview({\n images: isObject(value) ? value.images : [value],\n startPosition: isObject(value) ? value.index : 0,\n closeOnPopstate: true\n });\n };\n }\n};\n\nVue.directive(\"jump\", jump);\nVue.directive(\"preview\", preview);\n","import Vue from \"vue\";\nimport vConsole from \"vconsole\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./store\";\nimport \"@/common/mixin\";\nimport \"vant/lib/index.css\";\nimport \"@/common/AddPrototype\";\nimport \"@/assets/style/public.scss\";\nimport Videojs from \"video.js\";\nimport \"video.js/dist/video-js.css\";\nimport \"@/common/registerHook\";\nimport \"@/common/directives\";\nimport \"@vant/touch-emulator\";\nimport \"@/assets/font/font.scss\";\n\nVue.prototype.$video = Videojs;\n\nVue.config.productionTip = false;\n\nif (\n [\"development\", \"testing\", \"pre-release\"].includes(process.env.NODE_ENV) &&\n navigator.userAgent.match(\n /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i\n )\n) {\n new vConsole();\n}\n\n// 竖屏直播点击跳转app下载\n// Vue.directive(\"jump\", {\n// bind(el) {\n// el.onclick = function() {\n// console.warn(store.state.appId);\n// location.href = `http://www.cqliving.com/install/index.html?id=${store.state.appId}`;\n// };\n// }\n// });\n\nnew Vue({\n router,\n store,\n render: h => h(App)\n}).$mount(\"#app\");\n","import { executable } from \"./decorator\";\ninterface ShareConfig {\n /** 新闻id(即为客户端sourceID,不传则无法增加积分,端内新闻必传)无值传“” */\n id: string;\n /** 分享标题 */\n title: string;\n /** 分享内容 */\n content: string;\n /** 分享图标 */\n icon: string;\n /** 分享地址 */\n url: string;\n /** 分享类型 */\n sourceType: string;\n}\nclass Native {\n /** App分享内容 */\n private shareConfig = {};\n\n /** iOS:苹果 Android:安卓 \"\":其他 */\n @executable()\n getOS() {\n return window.ZWY_CLOUD.getOS();\n }\n\n /** 手机端-关闭当前页面 */\n @executable()\n close() {\n window.ZWY_CLOUD.appCloseWeb({ type: 0 });\n }\n\n /** 获取token */\n @executable({\n token: \"\",\n sessionId: \"fd028b66dffe47b680d9f319c91c13cb\",\n phone: \"13399844444\"\n })\n goToken(\n type = 1\n ): Promise<{ token: string; sessionId: string; phone: string }> {\n const result = this.callBack(\"tokenBack\");\n window.ZWY_CLOUD.appSessionToken({\n loginType: type,\n callback: \"tokenBack\"\n });\n return result;\n }\n\n /** 获取token */\n @executable({\n token: \"\",\n sessionId: \"fd028b66dffe47b680d9f319c91c13cb\",\n phone: \"13399844444\"\n })\n\n /** 强制去除token获取登录信息 */\n goForceToken(): Promise<{ token: string; sessionId: string; phone: string }> {\n const result = this.callBack(\"tokenBack2\");\n window.ZWY_CLOUD.appForceToken({\n loginType: \"1\",\n callback: \"tokenBack2\"\n });\n return result;\n }\n\n /**\n * 获取用户登录信息\n */\n @executable({\n token: \"\",\n sessionId: \"fd028b66dffe47b680d9f319c91c13cb\",\n phone: \"13399844444\"\n })\n getUserInfo(): Promise<{ phone: string; sessionId: string; token: string }> {\n return new Promise(resolve => {\n resolve(window.ZWY_CLOUD.getUserInfo());\n });\n }\n\n /**\n * 设置APP顶部状态栏\n * @param isShow 是否显示APP顶部状态栏 0 or 1\n */\n @executable()\n setTopBar(isShow = 0) {\n window.ZWY_CLOUD.topBarConfig({\n isShowTop: isShow,\n isShowBackBtn: 0,\n isShowTitle: \"江南巧\",\n isShowMoreBtn: \"0\"\n });\n }\n\n /**\n * 设置APP底部状态栏\n * @param isShow 是否显示APP顶部状态栏 0 or 1\n * 原生评论框评论后回调函数(callBack_replyList app 根据这个参数是否传值,区分是直播新闻还是其它新闻,如果评论不需审核,没传值会跳原生评论列表页面)\n */\n @executable()\n setBottomBar(isShow = 0): Promise {\n const result = this.callBack(\"callBackReplyList\");\n /* eslint-disable @typescript-eslint/camelcase */\n window.ZWY_CLOUD.bottomBarConfig({\n isShowBottom: isShow,\n callBack_replyList: \"callBackReplyList\"\n });\n return result;\n }\n\n /**\n * 调动APP分享 - 调用之前必须调用 setShareConfig 设置APP分享内容\n */\n @executable()\n shareApp() {\n window.ZWY_CLOUD.share(this.shareConfig as ShareConfig);\n }\n\n /**\n * 拨打电话(需要webview配合)\n * @param tel 电话号码\n */\n @executable()\n call(tel: string) {\n location.href = `tel:${tel}`;\n }\n\n /**\n * 设置APP分享内容\n * @param id\n * @param title 分享标题\n * @param content 分享内容\n * @param icon 分享图标地址\n * @param path 分享地址\n * @param sourceType 分享内容类型\n */\n setShareConfig(params: ShareConfig) {\n this.shareConfig = params;\n }\n\n /**\n * 查看单条直播新闻全部评论\n * @param max\n */\n @executable()\n showLiveNewsComment(params: {\n sourceId: number;\n sourceType: number;\n callBackFun: string;\n }) {\n window.ZWY_CLOUD.showLiveNewsComment(params);\n }\n\n //打开App页面\n @executable()\n pushToController(params: {\n iOS: string;\n Android: string;\n par: {\n id: string;\n informationId: string;\n sourceType: string;\n newsCommentType: string;\n };\n }) {\n window.ZWY_CLOUD.pushToController(params);\n }\n /**\n * 原生消息提示(点击确定按钮消失) appAlert\n */\n appAlert(params: { message: string }) {\n window.ZWY_CLOUD.appAlert(params);\n }\n\n /**\n * 图片预览\n */\n @executable()\n viewImageContent(params: {\n array: Array<{ imgUrl: string; desc: string }>;\n index: number;\n }) {\n window.ZWY_CLOUD.viewImageContent(params);\n }\n\n /** 查看原生页面 */\n @executable()\n showNativeView(\n androidFun: string, // 方法名\n iosFun: string, // 方法名\n par: Record\n ) {\n window.ZWY_CLOUD.showNativeView({\n Android: androidFun,\n iOS: iosFun,\n par: par\n });\n }\n /**\n * 上传图片\n * @param max 最大数量\n */\n @executable(\n \"http://192.168.6.136:8084/images/common/app_10/serverb16f7322f78a4a70985e0547b863a952_200x200.jpg\"\n )\n appUpload(max: number): Promise {\n const result = this.callBack(\"uploadBack\");\n window.ZWY_CLOUD.appUpload({\n callback: \"uploadBack\",\n num: max\n });\n return result;\n }\n\n /**\n * 是否在APP中打开\n */\n isOpenInApp() {\n return window.ZWY_CLOUD.isOpenInApp();\n }\n /**\n * 打开原生Webview\n * @param url 跳转URL\n */\n @executable()\n openWebBrowser(params: {\n id: string;\n sourceId: string;\n detailViewType: string;\n sourceType: string;\n commentType: string;\n contextType: string;\n isShowTop: string;\n isShowBottom: string;\n isShowMore: string;\n url: string;\n shareUrl: string;\n title: string;\n synopsis: string;\n shareImgUrl: string;\n }) {\n window.ZWY_CLOUD.redirectUrl(params);\n }\n\n OpenSystemWeb(url: string) {\n window.ZWY_CLOUD.OpenSystemWeb({ url });\n }\n\n /**\n * 打开原生评论\n * @param par 参数\n */\n @executable()\n openComment(par: {\n sourceType: string;\n /** sourceid */\n id: string;\n /** 被回复评论id */\n replyId: string;\n /** 被回复人名称 */\n passiveReplyName: string;\n /** 被回复人id */\n passiveReplyId: string;\n }) {\n const obj = {\n iOS: \"openCommentPage\",\n Android: \"openCommentPage\",\n par\n };\n window.ZWY_CLOUD.showNativeView(obj);\n }\n /**\n * 分享注册-app右上角3个点\n */\n @executable()\n registerShareConfig(params: {\n id: string;\n shareTitle: string;\n shareDescription: string;\n shareImgUrl: string;\n shareUrl: string;\n shareUrlQQ?: string;\n shareUrlQzone?: string;\n shareUrlWx?: string;\n shareUrlWxMoments?: string;\n shareUrlWeibo?: string;\n sourceType: string;\n }) {\n window.ZWY_CLOUD.shareConfig(params);\n }\n\n /**\n * 设置回调函数\n * @param funcName 回调函数名\n */\n private callBack(funcName: string): Promise {\n return new Promise(resolve => {\n (window)[funcName] = (result: string | JSON) => {\n if (typeof result === \"string\") {\n try {\n result = JSON.parse(result);\n resolve(result);\n } catch {\n resolve(result);\n }\n }\n };\n });\n }\n}\nexport default new Native();\n","import axios from \"axios\";\nimport native from \"@/common/Native\";\nimport { Dialog } from \"vant\";\nimport store from \"@/store\";\nimport qs from \"qs\";\n\nconst service = axios.create({\n baseURL: process.env.VUE_APP_BASE_API,\n withCredentials: false,\n timeout: 9000\n});\n\nservice.interceptors.request.use(\n config => {\n config.headers[\"Content-Type\"] = \"application/x-www-form-urlencoded\";\n config.params = config.params ? config.params : {};\n const queryObj = qs.parse(location.href.split(\"?\")[1]);\n const k = queryObj ? queryObj[\"k\"] : \"\";\n if (config.method === \"get\") {\n if (k) {\n config.params = Object.assign(config.params, { k });\n }\n } else {\n if (k) {\n config.data = Object.assign(config.data, { k });\n }\n }\n if (config.url && config.url.includes(\"/video/view_count/app\")) {\n config.headers[\"Content-Type\"] = \"application/json\";\n } else {\n config.data = qs.stringify(config.data, { indices: false });\n }\n return config;\n },\n error => {\n return Promise.reject(error);\n }\n);\n\nservice.interceptors.response.use(\n resp => {\n // 登录过期\n if (\n resp.data.code === -101000134 &&\n process.env.NODE_ENV !== \"development\"\n ) {\n Dialog({ message: resp.data.message }).then(() => {\n native.goForceToken().then(result => {\n store.commit(\"SET_STATE\", result);\n });\n });\n }\n return resp.data;\n },\n error => {\n console.log(\"response error: \", error); // for debug\n return Promise.reject(error);\n }\n);\n\nexport default service;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=style&index=0&id=2b1cc91c&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dialog\"},[(_vm.dialogType === 'phone')?_c('Phone',{on:{\"close\":_vm.close}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"phone\"},[_c('div',{staticClass:\"phone-content\"},[_c('div',{staticClass:\"content__input\"},[_c('img',{staticClass:\"input-icon\",attrs:{\"src\":require(\"@/assets/image/icon-phone@2x.png\")}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.phone),expression:\"phone\"}],attrs:{\"type\":\"text\",\"placeholder\":\"输入手机号\"},domProps:{\"value\":(_vm.phone)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.phone=$event.target.value}}})]),_c('div',{staticClass:\"content__input2\"},[_c('img',{staticClass:\"input-icon\",attrs:{\"src\":require(\"@/assets/image/icon-yzm@2x.png\")}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.code),expression:\"code\"}],attrs:{\"type\":\"text\",\"placeholder\":\"输入验证码\"},domProps:{\"value\":(_vm.code)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.code=$event.target.value}}}),_c('van-button',{staticClass:\"small-button\",attrs:{\"disabled\":_vm.buttonText !== '获取验证码' || !_vm.checkPhone,\"type\":\"info\",\"size\":\"small\"},on:{\"click\":_vm.getCode}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")])],1),_c('van-button',{staticClass:\"login\",attrs:{\"disabled\":!_vm.canLogin,\"type\":\"info\",\"size\":\"large\"},on:{\"click\":_vm.bindPhone}},[_vm._v(\" 绑定 \")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Inject, Vue } from \"vue-property-decorator\";\nimport { Button, Toast } from \"vant\";\nimport request from \"@/api/index\";\nimport { verifier } from \"@/common/utils\";\nimport store from \"@/store/index\";\n@Component({\n components: {\n \"van-button\": Button\n }\n})\nexport default class Phone extends Vue {\n /** 倒计时 */\n countDown = 0;\n /** 验证码 */\n code = \"\";\n /** 手机号 */\n phone = \"\";\n /** 定时器 */\n timer!: any;\n\n @Inject(\"openId\")\n openId!: string;\n\n get buttonText() {\n if (this.countDown > 0) {\n return `重新发送(${String(this.countDown).padStart(2, \"0\")})`;\n } else {\n return \"获取验证码\";\n }\n }\n\n get canLogin() {\n if (this.code && this.phone && this.checkPhone) {\n return true;\n } else {\n return false;\n }\n }\n\n get checkPhone() {\n if (verifier(this.phone, 2)) {\n return true;\n } else {\n return false;\n }\n }\n\n close() {\n this.$emit(\"close\", \"phone\");\n }\n\n async getCode() {\n const result = await request.sendvalidcode(this.phone);\n if (!result.code) {\n this.countDown = 60;\n this.timer = setInterval(() => {\n this.countDown -= 1;\n if (this.countDown === 0) {\n clearInterval(this.timer);\n }\n }, 1000);\n } else {\n Toast.fail({\n message: result.message\n });\n }\n }\n\n async bindPhone() {\n const result = await request.userBindPhone({\n openId: this.openId,\n phone: this.phone,\n smsCode: this.code\n });\n if (!result.code) {\n Toast(\"绑定成功\");\n this.close();\n store.commit(\"SET_STATE\", {\n isOpenWxBindPhone: false\n });\n window.location.reload();\n } else {\n this.code = \"\";\n Toast.fail({\n message: result.message\n });\n }\n }\n beforeDestroy() {\n this.timer && clearInterval(this.timer);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Phone.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Phone.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Phone.vue?vue&type=template&id=03363dbc&scoped=true&\"\nimport script from \"./Phone.vue?vue&type=script&lang=ts&\"\nexport * from \"./Phone.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Phone.vue?vue&type=style&index=0&id=03363dbc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03363dbc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\nimport { Component, Vue, Prop, Provide } from \"vue-property-decorator\";\nimport { closeDialog } from \"./Index\";\nimport Phone from \"./dialogTypes/Phone.vue\";\n@Component({\n components: {\n Phone\n }\n})\nexport default class Dialog extends Vue {\n @Prop()\n /** 弹框类型 */\n dialogType!: string;\n\n @Prop()\n @Provide()\n /** 显示文字 */\n text!: string;\n\n @Prop()\n @Provide()\n /** 弹框子类型 */\n secondaryType?: string;\n\n @Prop()\n @Provide()\n /** 中间按钮回调 */\n back?: Function;\n\n @Prop()\n @Provide()\n /** 左侧按钮回调 */\n leftBack?: Function;\n\n @Prop()\n @Provide()\n /** 右侧按钮回调 */\n rightBack?: Function;\n\n @Prop()\n @Provide()\n /** 中间按钮文字 */\n buttonText?: string;\n\n @Prop()\n @Provide()\n /** 左侧按钮文字 */\n leftText?: string;\n\n @Prop()\n @Provide()\n /** 顶部按钮文字 */\n topText?: string;\n\n @Prop()\n @Provide()\n /** 右侧按钮文字 */\n rightText?: string;\n\n @Prop()\n @Provide()\n /** 红包 */\n money?: string;\n\n @Prop()\n @Provide()\n /** 红包兑换码 */\n rewardTag?: string;\n\n @Prop()\n @Provide()\n /** 子弹框需要的自定义参数 */\n valueOptions?: IIndexObject;\n\n @Prop()\n @Provide(\"openId\")\n /** openId */\n openId?: string;\n\n close(target: string) {\n if (target === this.dialogType) {\n closeDialog();\n }\n }\n}\n","/*\n * @Description:\n * @Version: 1.0\n * @Author: zhuangyuan\n * @Date: 2021-11-10 10:07:05\n * @LastEditors: zhuangyuan\n * @LastEditTime: 2022-05-23 15:19:52\n * @FilePath: \\cqliving-sdzwpy-h5\\src\\components\\dialog\\Index.ts\n */\nimport Dialog from \"./Dialog.vue\";\nimport { IDialog } from \"./type\";\nlet mask: HTMLDivElement | null;\n\n/**\n * 打开弹框\n */\nexport const showDialog: IDialog = (dialogType, text) => {\n return createDialog({ dialogType, text });\n};\nshowDialog.phone = (openId: string) => {\n return createDialog({ dialogType: \"phone\", openId });\n};\n\nfunction createDialog(parms: any) {\n return new Promise(resolve => {\n if (!mask) {\n notice = () => {\n resolve(\"\");\n };\n mask = document.createElement(\"div\");\n const child = document.createElement(\"div\");\n mask.appendChild(child);\n const sv = new Dialog({\n propsData: parms\n });\n sv.$mount(child);\n document.body.appendChild(mask);\n document.body.style.overflow = \"hidden\";\n } else {\n notice = () => {\n resolve(\"\");\n };\n }\n });\n}\n\n/**\n * 关闭弹框\n */\nexport function closeDialog() {\n notice();\n document.body.style.overflow = \"auto\";\n mask!.remove();\n mask = null;\n}\n\nlet notice = () => {};\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=2b1cc91c&scoped=true&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Dialog.vue?vue&type=style&index=0&id=2b1cc91c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b1cc91c\",\n null\n \n)\n\nexport default component.exports","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Vue from \"vue\";\nimport { Dialog, Toast } from \"vant\";\nimport { ToastOptions } from \"vant/types/toast\";\nimport native from \"@/common/Native\";\nimport store from \"@/store\";\nimport { createDecorator } from \"vue-class-component\";\nimport { getUrlParam, handleWXbackUrl, isOpenInWechat } from \"./utils\";\nimport { WeChartUserParam } from \"@/api/types\";\nimport request from \"@/api/index\";\nimport { showDialog } from \"@/components/dialog/Index\";\n\n/**\n * 检验端方法是否可运行(如果在端内则调用交互js,如果在端外则跳转下载页 - 开发环境会返回预设的值)\n * @param someValue 一些在你开发环境中需要用到的返回值\n */\nexport function executable(someValue?: string | object) {\n return (target: T, propertyKey: string, descriptor: PropertyDescriptor) => {\n descriptor.value = new Proxy(descriptor.value, {\n // 拦截被装饰方法的调用时\n apply(proxyTarget, thisArg, argumentsList) {\n // 如果在手机端打开\n if (window.ZWY_CLOUD.isOpenInApp()) {\n return Reflect.apply(proxyTarget, thisArg, argumentsList);\n } else {\n // 如果是测试环境\n if (process.env.NODE_ENV === \"development\") {\n // 如果设置了默认返回值\n if (someValue) {\n return Reflect.apply(\n () =>\n new Promise(resolve => {\n resolve(someValue);\n }),\n thisArg,\n argumentsList\n );\n }\n } else {\n if (store.state.downloadUrl) {\n location.href = store.state.downloadUrl;\n }\n }\n }\n }\n });\n };\n}\n\nlet isOver = false;\n\n/**\n * 防抖\n * @param interval 间隔\n */\nexport function antiShake(interval = 500) {\n return function(\n target: T,\n propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n descriptor.value = new Proxy(descriptor.value, {\n // 拦截被装饰方法的调用时\n apply(proxyTarget, thisArg, argumentsList) {\n if (!isOver) {\n isOver = true;\n setTimeout(() => {\n isOver = false;\n }, interval);\n return Reflect.apply(proxyTarget, thisArg, argumentsList);\n }\n }\n });\n };\n}\n/**\n * 标识当前操作需要Token\n * @param required 是否必须使用token,true的话未登录时会强制进入登录页\n * @param needPhone 是否必须使用手机号登录,必须在required == true 时才有效\n */\nexport function needToken(\n required: boolean,\n needPhone = false\n) {\n return function(\n target: T,\n propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n descriptor.value = new Proxy(descriptor.value, {\n // 拦截被装饰方法的调用时\n apply(proxyTarget, thisArg, argumentsList) {\n if (store.state.token) {\n return Reflect.apply(proxyTarget, thisArg, argumentsList);\n }\n if (\n // process.env.NODE_ENV === \"development\" ||\n window.ZWY_CLOUD.isOpenInApp()\n ) {\n return new Promise(resolve => {\n if (required) {\n native.goToken().then(info => {\n if (needPhone && !info.phone) {\n Dialog.alert({\n title: \"提示\",\n message: \"必须使用手机号登陆\"\n }).then(() => {\n native.goToken(2).then(() => {\n if (location && location.reload) {\n location.reload();\n }\n });\n });\n } else {\n store.commit(\"SET_STATE\", info);\n resolve(Reflect.apply(proxyTarget, thisArg, argumentsList));\n }\n });\n } else {\n if (window.ZWY_CLOUD.isOpenInApp()) {\n console.log(window.ZWY_CLOUD.getOS() == \"iOS\");\n console.log(store.state.videoFullScreen);\n if (\n store.state.videoFullScreen &&\n window.ZWY_CLOUD.getOS() == \"iOS\"\n ) {\n resolve(Reflect.apply(proxyTarget, thisArg, argumentsList));\n } else {\n native.getUserInfo().then(info => {\n store.commit(\"SET_STATE\", info);\n resolve(Reflect.apply(proxyTarget, thisArg, argumentsList));\n });\n }\n } else {\n resolve(Reflect.apply(proxyTarget, thisArg, argumentsList));\n }\n }\n });\n } else {\n if (isOpenInWechat()) {\n if (store.state.detail) {\n if (\n store.state.detail.weChatId &&\n store.state.detail.weChatAppId &&\n !store.state.isOpenWxBindPhone\n ) {\n getWeChatUserInfo();\n }\n }\n }\n if (required && store.state.downloadUrl) {\n location.href = store.state.downloadUrl;\n } else {\n return Reflect.apply(proxyTarget, thisArg, argumentsList);\n }\n }\n }\n });\n };\n}\n\n/**\n * 微信端内需要微信授权\n * again 当前code有问题 重新获取授权\n */\nfunction getWeChatUserInfo(again?: boolean): Promise {\n return new Promise((resolve, reject) => {\n const weChatId = store.state.detail.weChatId;\n const appIdApp = store.state.detail.weChatAppId;\n let url = encodeURIComponent(window.location.href);\n const code = getUrlParam(\"code\");\n const openId = store.state.openId;\n if (store.state.isOpenWxBindPhone) {\n return;\n }\n if (openId) {\n //存有openId 直接返回\n resolve(openId);\n } else {\n if (!code || again) {\n if (again && code) {\n url = handleWXbackUrl();\n }\n window.location.replace(\n `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appIdApp}&redirect_uri=${url}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`\n );\n } else {\n const params = {\n appId: 1,\n code: code,\n weChatId: weChatId\n };\n getWechatUserInfoFun(params).then((response: any) => {\n resolve(response);\n });\n }\n }\n });\n}\n\n/**\n * 获取微信用户信息\n */\nfunction getWechatUserInfoFun(params: WeChartUserParam) {\n return new Promise(() => {\n request.weChatAuthor(params).then(res => {\n //获取微信授权用户信息\n console.log(\"获取微信授权用户信息\", res);\n if (res.code === 0) {\n if (res.data.isBindPhone) {\n store.commit(\"SET_STATE\", {\n nickname: res.data.nickname,\n phone: res.data.phoneNo,\n portrait: \"\",\n sessionId: res.data.token,\n token: res.data.token,\n openId: res.data.openId\n });\n } else {\n store.commit(\"SET_STATE\", {\n isOpenWxBindPhone: true\n });\n showDialog.phone(res.data.openId + \"\");\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n getWeChatUserInfo(true);\n }\n });\n });\n}\n/**\n * @param options\n * @description 为非Vue文件类属性绑定state值,修改值后也可以同步到vuex,但不建议修改\n * @attention 属性装饰器无法直接修改值,修改的值会在对象原型上(__proto__),\n * 但可以利用原型链的特点,在类中定义undefined属性。\n */\nconst bindQueue: string[] = [];\nexport function bindState(options: { stateKey?: string }): any;\nexport function bindState(target: any, attr: string): any;\nexport function bindState(options: { stateKey?: string } = {}) {\n // 找到原型的倒数第二层,即Object层\n const findObjectProto = (\n object: Record,\n target: Record\n ) => {\n const proto = Object.getPrototypeOf(object);\n if (proto.constructor.name === \"Object\") {\n Object.setPrototypeOf(object, target);\n } else {\n findObjectProto(proto, target);\n }\n };\n\n const SyncState = function(target: Vue, attr: string) {\n const { stateKey = attr } =\n options.constructor?.name !== \"Object\" ? { stateKey: attr } : options;\n if (stateKey in store.state) {\n !bindQueue.includes(stateKey) && bindQueue.push(stateKey);\n\n const pureObject = Object.create({}),\n descriptorMap: { [k: string]: PropertyDescriptor } = {};\n\n bindQueue.forEach(key => {\n descriptorMap[key] = {\n get() {\n // console.log(`来自${key}属性的访问器:`, store.state);\n return store.state[key as keyof typeof store.state];\n },\n // TODO: 为保证数据的单一流向,是否要去掉可修改的功能?\n set(value: unknown) {\n store.commit(\"SET_STATE\", {\n [stateKey]: value\n });\n }\n };\n });\n const getter = Object.defineProperties(pureObject, descriptorMap);\n // TODO: 目前的方案是找到Object原型 将其替换为重写的访问器\n // 存在的问题是如果是链式继承会存在属性重名后被覆盖的问题\n findObjectProto(target, getter);\n } else {\n throw TypeError(`state中没有键为${stateKey}的属性!`);\n }\n };\n\n // eslint-disable-next-line prefer-rest-params\n const args = [...arguments] as [any, string];\n return options.constructor?.name !== \"Object\"\n ? SyncState.apply(null, [...args])\n : SyncState;\n}\n\n/**\n * 装饰接口调用函数,在指定时间未返回结果时弹出loading效果\n * @param options Toast选项以及等待时间和@property条件执行回调或布尔值\n * @returns void\n */\nexport function toastWithDelay(\n options: ToastOptions & {\n wait?: number;\n condition?: boolean | ((...args: any[]) => boolean);\n }\n) {\n return function(\n _target: unknown,\n _key: string,\n descriptor: PropertyDescriptor\n ) {\n const fn = descriptor.value;\n descriptor.value = async function(...args: unknown[]) {\n const timer = setTimeout(() => {\n let flag: boolean;\n if (typeof options.condition === \"function\") {\n flag = options.condition(...args);\n } else if (typeof options.condition === \"boolean\") {\n flag = options.condition;\n } else {\n flag = true;\n }\n flag && Toast.loading(options);\n }, options.wait || 1000);\n await fn.apply(this, args);\n clearTimeout(timer);\n Toast.clear();\n };\n };\n}\n\n/**\n * @description 已废弃属性,但后需又可能需要,因此暂时没有删除,使用此装饰器标示\n * @param target\n * @param attr\n */\nexport function Deprecated(options: {\n type: \"function\";\n throwError: boolean;\n}): any;\nexport function Deprecated(options: { type: \"function\" | \"class\" }): any;\nexport function Deprecated(target: Vue, attr: string): any;\nexport function Deprecated(\n target: Vue,\n key: string,\n descriptor: PropertyDescriptor\n): any;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function Deprecated(\n options?: { type?: \"function\" | \"class\"; throwError?: boolean } | Vue,\n _key?: string,\n descriptor?: PropertyDescriptor\n) {\n // eslint-disable-next-line prefer-rest-params\n const args = [...arguments];\n const fn = createDecorator(function(componentOptions, key) {\n if (process.env.NODE_ENV === \"development\") {\n console.warn(\n `<------组件${componentOptions.name}内的${\n !descriptor &&\n !(options && (options as { type?: \"function\" | \"class\" }).type)\n ? \"属性\"\n : \"函数(类)\"\n }:${key}已经废弃,但因为一些原因暂时没有删除!------>`\n );\n // if (descriptor) {\n // const fn = descriptor.value;\n // Error.captureStackTrace(fn);\n // console.log(fn.stack);\n // }\n // TODO: 这里没写完\n if (options && (options as { throwError: boolean }).throwError) {\n throw new EvalError(`已废弃的函数${key}正在被执行!`);\n }\n }\n });\n return arguments.length === 1\n ? fn\n : // eslint-disable-next-line prefer-spread\n fn.apply(null, [...args] as [any, string, number]);\n}\n\n/**\n * @description 装饰的函数将只执行一次,不适用于递归\n * @returns {void}\n */\nexport function Once() {\n const queue = new Map(),\n sKey = Symbol(\"key\");\n return function(target: any, key: string, descriptor: PropertyDescriptor) {\n const fn = descriptor.value;\n descriptor.value = function(...args: unknown[]) {\n if (queue.has(sKey)) {\n return;\n } else {\n queue.set(sKey, fn);\n fn.apply(this, args);\n }\n };\n };\n}\n","import {\n HlxDataCollect,\n HlxDataCollectShare,\n HlxDataCollectVideo\n} from \"@/api/types\";\nimport Service from \"@/api/index\";\nimport store from \"@/store\";\nimport router from \"@/router\";\nimport Fingerprint2 from \"fingerprintjs2\";\ninterface Irecord {\n news: any;\n time?: number;\n sourceType?: string;\n ElVideoName?: string;\n}\ninterface IrecordShare {\n platform: string;\n failReason: string;\n}\nlet appId = 0;\n// 浏览量\nexport async function recordCount(data: Irecord) {\n const ndata = getDataCollect(data);\n if (!ndata.session_id) {\n ndata.session_id = (await getMurmur()) as string;\n }\n Service.getHlxNewsRecordCount(ndata);\n}\n// 浏览时长\nlet visibilitychangeStartTime = 0;\nlet visibilitychangeData: Irecord;\nasync function visibilitychangeFun() {\n if (document.hidden) {\n const times = (new Date().getTime() - visibilitychangeStartTime) / 1000;\n const ndata = getDataCollect({\n news: visibilitychangeData.news,\n time: times,\n sourceType: visibilitychangeData.sourceType\n });\n if (!ndata.session_id) {\n ndata.session_id = (await getMurmur()) as string;\n }\n Service.getHlxNewsRecordTime(ndata);\n }\n}\nexport function recordTime(data: Irecord) {\n visibilitychangeStartTime = new Date().getTime();\n visibilitychangeData = data;\n document.addEventListener(\"visibilitychange\", visibilitychangeFun);\n}\nexport function removRecordTime() {\n visibilitychangeStartTime = 0;\n document.removeEventListener(\"visibilitychange\", visibilitychangeFun);\n}\n// 视频播放时长\nlet isplay = false;\nlet ispause = false;\nlet beforeunloadVideoPlayLength = 0;\nlet beforeunloadStartTime = 0;\nlet beforeunloadData: Irecord;\nasync function beforeunloadFun() {\n if (!isplay) return;\n if (!ispause)\n beforeunloadVideoPlayLength +=\n (new Date().getTime() - beforeunloadStartTime) / 1000;\n beforeunloadData.news.videoPlayLength = beforeunloadVideoPlayLength;\n const ndata = getDataCollectVideo(beforeunloadData);\n if (!ndata.sessionId) {\n ndata.sessionId = (await getMurmur()) as string;\n }\n Service.getHlxNewsRecordVideo(ndata);\n}\nexport function recordVideo(data: Irecord) {\n setTimeout(() => {\n if (!data.ElVideoName) return;\n let elevideo = document.querySelector(data.ElVideoName) as any;\n if (elevideo.nodeName != \"VIDEO\") {\n for (let i = 0; i < elevideo.childNodes.length; i++) {\n if (elevideo.childNodes[i].nodeName == \"VIDEO\") {\n elevideo = elevideo.childNodes[i];\n break;\n }\n }\n }\n if (elevideo) {\n beforeunloadData = data;\n isplay = true;\n beforeunloadStartTime = new Date().getTime();\n beforeunloadData.news.duration = elevideo.duration;\n elevideo.addEventListener(\"play\", () => {\n beforeunloadStartTime = new Date().getTime();\n ispause = false;\n });\n elevideo.addEventListener(\"pause\", () => {\n ispause = true;\n beforeunloadVideoPlayLength +=\n (new Date().getTime() - beforeunloadStartTime) / 1000;\n beforeunloadFun();\n });\n window.addEventListener(\"beforeunload\", beforeunloadFun);\n }\n }, 100);\n}\nexport function removRecordVideo() {\n beforeunloadFun();\n setTimeout(() => {\n isplay = false;\n beforeunloadVideoPlayLength = 0;\n beforeunloadStartTime = 0;\n document.removeEventListener(\"beforeunload\", beforeunloadFun);\n }, 1000);\n}\n// 分享\nexport async function recordShare(data?: IrecordShare) {\n // app中右上角分享后的回调\n if (window.ZWY_CLOUD.isOpenInApp() && !(window as any).cq_callBack_share) {\n (window as any).cq_callBack_share = function(value: any, share: any) {\n let shareType = \"\";\n if (share == \"0\") shareType = \"微信朋友圈\";\n if (share == \"1\") shareType = \"微信好友\";\n if (share == \"2\") shareType = \"QQ空间\";\n if (share == \"3\") shareType = \"QQ好友\";\n if (share == \"4\") shareType = \"新浪微博\";\n Service.getHlxNewsRecordShare(\n getDataCollectShare({\n platform: shareType,\n failReason: value == \"1\" ? \"\" : \"用户取消分享\"\n })\n );\n };\n return;\n }\n if (data) {\n const ndata = getDataCollectShare(data);\n if (!ndata.session_id) {\n ndata.session_id = (await getMurmur()) as string;\n }\n Service.getHlxNewsRecordShare(ndata);\n }\n}\nexport function getDataCollect(data: Irecord): HlxDataCollect {\n appId = data.news.appId;\n const route = (router.app as any)._route;\n const par: HlxDataCollect = {\n app_id: appId,\n source_id: route.query.id,\n source_type: data.sourceType ? data.sourceType : \"wz\",\n url: window.location.href,\n send_source: \"H5\",\n token: store.state.token,\n session_id: store.state.sessionId,\n times: 0\n };\n // 浏览时长\n if (data.time) {\n par.times = parseInt(data.time + \"\");\n } else {\n delete par.times;\n }\n return par;\n}\nexport function getDataCollectVideo(data: Irecord): HlxDataCollectVideo {\n appId = data.news.appId;\n const route = (router.app as any)._route;\n return {\n appId: appId,\n createTime: new Date().getTime(),\n sendSource: \"H5\",\n sessionId: store.state.sessionId,\n sourceId: route.query.id,\n sourceType: data.sourceType ? data.sourceType : \"wz\",\n token: store.state.token,\n url: window.location.href,\n videoPlayTimeLength: parseInt(data.news.videoPlayLength),\n videoTimeLength: parseInt(data.news.duration),\n videoUrl: data.news.contentUrl || data.news.bannerVideo\n };\n}\nexport function getDataCollectShare(data: IrecordShare): HlxDataCollectShare {\n const route = (router.app as any)._route;\n return {\n app_id: appId,\n fail_reason: \"\",\n is_success: data.failReason ? \"0\" : \"1\",\n platform: data.platform,\n session_id: store.state.sessionId,\n source_id: route.query.id,\n source_type: \"news\",\n token: store.state.token,\n user_id: \"\"\n };\n}\n\nexport function getMurmur() {\n const options = {\n excludes: {\n userAgent: true,\n audio: true,\n enumerateDevices: true,\n fonts: true,\n fontsFlash: true,\n webgl: true,\n canvas: true\n }\n };\n return new Promise((res, rej) => {\n Fingerprint2.get(options, function(components: any) {\n // 参数\n const values = components.map(function(component: any) {\n return component.value;\n });\n // 指纹\n const murmur = Fingerprint2.x64hash128(values.join(\"\"), 31);\n res(murmur);\n });\n });\n}\n","// 根据所有数据类型原型链上的toString进行准确判断并给出TS中的类型保护\nconst toString = Object.prototype.toString;\n\n// 耦合较低的判断\nexport function is(val: unknown, type: string) {\n return toString.call(val) === `[object ${type}]`;\n}\n\n// 非falsy值判断\nexport function isTruely(value: unknown): value is boolean {\n return !!value || value === 0;\n}\n\n// 变量是否定义\nexport const isDef = (val?: T): val is T => {\n return typeof val !== \"undefined\";\n};\n\nexport const isUnDef = (val?: T): val is T => {\n return !isDef(val);\n};\n\nexport const isObject = (val: any): val is Record => {\n return val !== null && is(val, \"Object\");\n};\n\nexport function isDate(val: unknown): val is Date {\n return is(val, \"Date\");\n}\n\nexport function isNull(val: unknown): val is null {\n return val === null;\n}\n\nexport function isNumber(val: unknown): val is number {\n return is(val, \"Number\");\n}\n\nexport const isFunction = (val: unknown): val is Function =>\n typeof val === \"function\";\n\nexport function isPromise(val: unknown): val is Promise {\n return (\n is(val, \"Promise\") &&\n isObject(val) &&\n isFunction(val.then) &&\n isFunction(val.catch)\n );\n}\n\nexport function isString(val: unknown): val is string {\n return is(val, \"String\");\n}\n\nexport function isBoolean(val: unknown): val is boolean {\n return is(val, \"Boolean\");\n}\n\nexport function isRegExp(val: unknown): val is RegExp {\n return is(val, \"RegExp\");\n}\n\nexport function isArray(val: unknown): val is any[] {\n return !!val && Array.isArray(val);\n}\n\nexport const isClient = () => {\n return typeof window !== \"undefined\";\n};\n\nexport const isWindow = (val: any): val is Window => {\n return typeof window !== \"undefined\" && is(val, \"Window\");\n};\n\nexport const isElement = (val: unknown): val is Element => {\n return isObject(val) && !!val.tagName;\n};\n\nexport function isImageDom(o: Element) {\n return o && [\"IMAGE\", \"IMG\"].includes(o.tagName);\n}\n\n// 函数工具,类型保护解决索引类型报错问题\nexport function isOwnKey(\n key: string | number | symbol,\n object: object\n): key is keyof typeof object {\n return key in object;\n}\n"],"sourceRoot":""}