(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{137:function(t,e,n){"use strict";n.d(e,"a",(function(){return E}));var r=n(3),o=n(9),c=n(44),d=n(45),h=function(t,e,data){return new Promise((function(n,r){var o=e[t](data);o.onsuccess=function(t){return n(t)},o.onerror=function(t){return r(t)}}))},l=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2?arguments[2]:void 0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};Object(c.a)(this,t),this.idbInvalid=null===window.indexedDB||void 0===window.indexedDB,this.dbName=e,this.dbVersion=n,this.onUpgrade=r,this.opts=Object(o.a)({},d),this.db=null,this.dbInitPromise=this.idbInvalid?Promise.reject("IDB not support!"):this.initDB(),this.dbInitPromise.catch(this.handleCompatibleError.bind(this))}return Object(d.a)(t,[{key:"initDB",value:function(){var t=this;return new Promise((function(e,n){var r=t.dbName,o=t.dbVersion,c=t.onUpgrade,d=window.indexedDB.open(r,o);d.onsuccess=function(){t.db=d.result,t.db.onversionchange=function(){t.db&&(t.db.close(),window.location.reload())},e(t.db)},d.onerror=function(t){var e=t.target&&t.target.error;console.warn("Idb open error: ",e),n(t)},d.onupgradeneeded=function(t){c&&c(t.target.result)}}))}},{key:"getTx",value:function(table,t){var e=this;try{return Promise.resolve(this.db.transaction(table,t).objectStore(table))}catch(r){var n=r.target&&r.target.error;return console.warn("Idb get tx error ",n),this.dbInitPromise=this.initDB(),this.dbInitPromise.then((function(){return e.getTx(table,t)}))}}},{key:"handleCompatibleError",value:function(){this.idbInvalid=!1,console.warn("Can't open IDB, your browser doesn't support idb storage!")}},{key:"insert",value:function(table){var t=this,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dbInitPromise.then((function(){return t.cudTx(table,e,"add")})).catch(this.handleCompatibleError.bind(this))}},{key:"head",value:function(table){var t=this,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5;return this.dbInitPromise.then((function(){return new Promise((function(n){var r={},o=e;return t.getTx(table,"readonly").then((function(t){t.openCursor().onsuccess=function(t){var cursor=t.target.result;o-=1,cursor?(r[cursor.key]=cursor.value,o>0?cursor.continue():n(r)):n(r)}})).catch((function(r){var o=r.target&&r.target.error;return console.warn("Idb head error ",o),t.dbInitPromise=t.initDB(),t.dbInitPromise.then((function(){return t.head(table,e).then(n)}))}))}))})).catch((function(e){return t.handleCompatibleError(e),[]}))}},{key:"delete",value:function(table,t){var e=this;return this.dbInitPromise.then((function(){return e.cudTx(table,t,"delete")})).catch(this.handleCompatibleError.bind(this))}},{key:"get",value:function(table,t){var e=this;return this.dbInitPromise.then((function(){return e.cudTx(table,t,"get")})).catch(this.handleCompatibleError.bind(this))}},{key:"cudTx",value:function(table,t,e){var n=this;return this.getTx(table,"readwrite").then((function(r){var o;if(Array.isArray(t)){var c=t.map((function(t){return h(e,r,t)}));o=Promise.all(c)}else o=h(e,r,t);return o.catch((function(r){var o=r.target&&r.target.error;return console.warn("Idb ".concat(e," err "),o),n.dbInitPromise=n.initDB(),n.dbInitPromise.then((function(){return n.cudTx(table,t,e)}))}))}))}}]),t}(),f=n(759),v=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(c.a)(this,t),this.log=e,this.opts=Object(o.a)({detectionInterval:15e3,detectionThreshold:1500},n),this.timer=0,this.frame=void 0,this.visible=!0}return Object(d.a)(t,[{key:"start",value:function(){var t=this.opts.detectionInterval;this.timer=setInterval(this.runJob.bind(this),t)}},{key:"stop",value:function(){clearInterval(this.timer)}},{key:"toggleVisible",value:function(t){this.visible=t,t?this.start():this.stop()}},{key:"runJob",value:function(){var t=this;cancelAnimationFrame(this.frame);var e=performance.now(),n=this.opts.detectionThreshold;this.frame=requestAnimationFrame((function(){var span=performance.now()-e;span>n&&t.log({t:"perf",c:10490,d:span})}))}}]),t}(),m=[function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new v(t,e)}],y=n(69),O=null;try{O="AbortController"in window}catch(t){O=null}var j={},w=function(t){var e=String(t).toLowerCase();return{json:!0,text:!0,formData:!0,blob:!0,arrayBuffer:!0}[e]?e:"json"},I=function(t){return t>=200&&t<300},S=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(c.a)(this,t),this.defaultOpts=Object(o.a)(Object(o.a)({},j),e),this.timeout=n.timeout||3e4,this.validateStatus=n.validateStatus||I,this.defaultRespType=n.defaultRespType||"json",this.interceptors={response:[],request:[],errorHandler:[],finally:[]}}return Object(d.a)(t,[{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=t;if(e.body){var c=e.body,d=Object.keys(c);d.forEach((function(t){var param="".concat(t,"=").concat(c[t]);r=r.indexOf("?")>-1?"".concat(r,"&").concat(param):"".concat(r,"?").concat(param)})),delete e.body}return this.fetch(r,Object(o.a)(Object(o.a)({},e),{},{method:"get"}),n)}},{key:"post",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return this.fetch(t,Object(o.a)(Object(o.a)({},e),{},{method:"post"}),n)}},{key:"delete",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return this.fetch(t,Object(o.a)(Object(o.a)({},e),{},{method:"delete"}),n)}},{key:"put",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return this.fetch(t,Object(o.a)(Object(o.a)({},e),{},{method:"put"}),n)}},{key:"fetch",value:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t){var e,n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=arguments.length>2?arguments[2]:void 0,d=c||this.defaultRespType,h=Object(o.a)(Object(o.a)(Object(o.a)({url:t},this.defaultOpts),r),{},{headers:Object(o.a)(Object(o.a)({},this.defaultOpts.headers),r.headers)}),l=this.interceptors.request.reduce((function(e,n){return n(e,t)}),h),f=O?new AbortController:{};l.signal=f.signal;var v=new Promise((function(t,r){e=setTimeout((function(){r({ret_code:9000001,ret_msg:"Request timeout, please re-try!"}),O&&f.abort()}),n.timeout)})),m=fetch(t,l);return Promise.race([m,v]).then((function(t){return clearTimeout(e),t})).then((function(t){return n.validateStatus(t.status)?t.ok?new Promise((function(e){t[w(d)]().then((function(n){e({headers:t.headers,data:n})}))})):{headers:{},data:{}}:Promise.reject({status:t.status,statusText:t.statusText})})).then((function(e){var data=e.data,r=e.headers;return n.interceptors.response.reduce((function(t,e){return t.then(e)}),Promise.resolve({headers:r,data:data,config:l,url:t}))})).catch((function(r){return clearTimeout(e),n.interceptors.errorHandler.forEach((function(e){return e(r,l,t)})),Promise.reject(r)})).finally((function(){n.interceptors.finally.forEach((function(e){return e(l,t)}))}))}))}]),t}(),T=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("undefined"==typeof window||!("fetch"in window))return console.error("fetch function doesn't detected in you environment"),null;var n=new S(t,e),r=n.fetch.bind(n);return r.get=n.get.bind(n),r.post=n.post.bind(n),r.put=n.put.bind(n),r.delete=n.delete.bind(n),r.interceptors=n.interceptors,r}({headers:{"Content-Type":"application/json"}}),k=function(t){t.objectStoreNames.contains(y.a.DEFAULT_LOGGER_STORE)||t.createObjectStore(y.a.DEFAULT_LOGGER_STORE,{autoIncrement:!0}),t.objectStoreNames.contains(y.a.STORE_PV)||t.createObjectStore(y.a.STORE_PV,{autoIncrement:!0}),t.objectStoreNames.contains(y.a.STORE_EVENT)||t.createObjectStore(y.a.STORE_EVENT,{autoIncrement:!0}),t.objectStoreNames.contains(y.a.STORE_SIGNUP)||t.createObjectStore(y.a.STORE_SIGNUP,{autoIncrement:!0})},E=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(c.a)(this,t),this.isRealtimeReport=-1===e.reportInterval,this.opts=Object(o.a)({extendFields:!1,reportInterval:45e3,reportUrl:"",noBackgroundTasks:!1,keepAliveInBackground:!1,maxSendBufferSize:80,logTable:y.a.DEFAULT_LOGGER_STORE},e),this.eventOpts=Object(o.a)({v:0,p:0},n),this.tasks=[],this.timer=0,this.tabActive=!0,this.tmpSenderSize=this.opts.maxSendBufferSize,this.initialized=!1,this.idb=new l("by-skynet-db",2,k)}return Object(d.a)(t,[{key:"init",value:function(){var t=this;"undefined"!=typeof window&&(this.opts.keepAliveInBackground||document.addEventListener("visibilitychange",this.visibilityChange.bind(this)),this.opts.noBackgroundTasks||(this.tasks=m.map((function(e){return e(t.log.bind(t),t.opts)})),this.tasks.forEach((function(t){return t.start()}))),this.isRealtimeReport||(this.timer=setInterval(this.consume.bind(this),this.opts.reportInterval)),this.initialized=!0)}},{key:"visibilityChange",value:function(){var t=this;this.tabActive=!document.hidden,this.tasks.forEach((function(e){return e.toggleVisible(t.tabActive)}))}},{key:"consume",value:function(){var t=this;if(!this.tabActive||!this.initialized)return Promise.resolve();var e=this.tmpSenderSize,n=this.isRealtimeReport,r=this.opts,o=r.maxSendBufferSize,c=r.logTable,d=r.reportUrl;return this.idb.head(c,e).then((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=Object.keys(e).map(f.c);if(0===r.length)return Promise.resolve();var h=n?t.combineDelayValues(Object.values(e)):Object.values(e),l={method:"post",body:JSON.stringify(h)};return T(d,l,"text").then((function(){return t.tmpSenderSize=o,t.idb.delete(c,r)})).catch((function(e){console.error(e);var n=t.tmpSenderSize-5;n=n<1?1:n,t.tmpSenderSize=n}))}))}},{key:"sendDirect",value:function(t){var e={method:"post",body:JSON.stringify([this.combineEvent(t)])},n=this.opts.reportUrl;return console.log("[Skynet] Debug: ",t),T(n,e,"text").catch(console.error)}},{key:"combineDelayValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.opts.getUid;return Object(f.b)(t,(function(t){return Object(o.a)(Object(o.a)({},t),{},{u:e()||window.GA_UID})}))}},{key:"combineEvent",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=navigator.connection,c=this.opts,d=c.getGuid,h=c.getUid,l=Object.keys(this.eventOpts).reduce((function(e,n){var c=t.eventOpts[n],d=Object(f.a)(c)?c():c;return Object(o.a)(Object(o.a)({},e),{},Object(r.a)({},n,d))}),{});return Object(o.a)(Object(o.a)({g:d(),u:h()||window.GA_UID,net:n?n.rtt:-1,w:n?n.downlink>10?99:n.downlink:-1,dt:(new Date).toISOString()},l),e)}},{key:"log",value:function(t){return this.tabActive&&this.initialized?"undefined"!=typeof window&&window&&window._BY_SKYNET_DEBUG_?this.sendDirect(t):this.isRealtimeReport?this.addDelayEvent(t):this.addEvent(t):Promise.resolve()}},{key:"addEvent",value:function(t){return this.idb.insert(this.opts.logTable,this.combineEvent(t)).catch()}},{key:"addDelayEvent",value:function(t){var e=this,n=this.opts.reportDelay;return clearTimeout(e.delayTimer),e.delayTimer=setTimeout((function(){e.consume.apply(e)}),n),this.addEvent(t)}}]),t}()},223:function(t,e,n){"use strict";n.d(e,"a",(function(){return h}));var r=n(9),o=n(44),c=n(45),d=function(t,e,data){return new Promise((function(n,r){var o=e[t](data);o.onsuccess=function(t){return n(t)},o.onerror=function(t){return r(t)}}))},h=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,c=arguments.length>2?arguments[2]:void 0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};Object(o.a)(this,t),this.idbInvalid=null===window.indexedDB||void 0===window.indexedDB,this.dbName=e,this.dbVersion=n,this.onUpgrade=c,this.opts=Object(r.a)({},d),this.db=null,this.dbInitPromise=this.idbInvalid?Promise.reject("IDB not support!"):this.initDB(),this.dbInitPromise.catch(this.handleCompatibleError.bind(this))}return Object(c.a)(t,[{key:"initDB",value:function(){var t=this;return new Promise((function(e,n){var r=t.dbName,o=t.dbVersion,c=t.onUpgrade,d=window.indexedDB.open(r,o);d.onsuccess=function(){t.db=d.result,t.db.onversionchange=function(){t.db&&(t.db.close(),window.location.reload())},e(t.db)},d.onerror=function(t){var e=t.target&&t.target.error;console.warn("Idb open error: ",e),n(t)},d.onupgradeneeded=function(t){c&&c(t.target.result)}}))}},{key:"getTx",value:function(table,t){var e=this;try{return Promise.resolve(this.db.transaction(table,t).objectStore(table))}catch(r){var n=r.target&&r.target.error;return console.warn("Idb get tx error ",n),this.dbInitPromise=this.initDB(),this.dbInitPromise.then((function(){return e.getTx(table,t)}))}}},{key:"handleCompatibleError",value:function(){this.idbInvalid=!1,console.warn("Can't open IDB, your browser doesn't support idb storage!")}},{key:"insert",value:function(table){var t=this,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dbInitPromise.then((function(){return t.cudTx(table,e,"add")})).catch(this.handleCompatibleError.bind(this))}},{key:"head",value:function(table){var t=this,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5;return this.dbInitPromise.then((function(){return new Promise((function(n){var r={},o=e;return t.getTx(table,"readonly").then((function(t){t.openCursor().onsuccess=function(t){var cursor=t.target.result;o-=1,cursor?(r[cursor.key]=cursor.value,o>0?cursor.continue():n(r)):n(r)}})).catch((function(r){var o=r.target&&r.target.error;return console.warn("Idb head error ",o),t.dbInitPromise=t.initDB(),t.dbInitPromise.then((function(){return t.head(table,e).then(n)}))}))}))})).catch((function(e){return t.handleCompatibleError(e),[]}))}},{key:"delete",value:function(table,t){var e=this;return this.dbInitPromise.then((function(){return e.cudTx(table,t,"delete")})).catch(this.handleCompatibleError.bind(this))}},{key:"get",value:function(table,t){var e=this;return this.dbInitPromise.then((function(){return e.cudTx(table,t,"get")})).catch(this.handleCompatibleError.bind(this))}},{key:"cudTx",value:function(table,t,e){var n=this;return this.getTx(table,"readwrite").then((function(r){var o;if(Array.isArray(t)){var c=t.map((function(t){return d(e,r,t)}));o=Promise.all(c)}else o=d(e,r,t);return o.catch((function(r){var o=r.target&&r.target.error;return console.warn("Idb ".concat(e," err "),o),n.dbInitPromise=n.initDB(),n.dbInitPromise.then((function(){return n.cudTx(table,t,e)}))}))}))}}]),t}()},69:function(t,e,n){"use strict";e.a={DEFAULT_LOGGER_STORE:"by-logger",STORE_PV:"by-pv",STORE_EVENT:"by-events",STORE_SIGNUP:"by-signup"}},759:function(t,e,n){"use strict";(function(t){n.d(e,"c",(function(){return k})),n.d(e,"a",(function(){return E})),n.d(e,"b",(function(){return map}));n(49);var r=n(5),o=Object.prototype,c="object"==(void 0===t?"undefined":Object(r.a)(t))&&t&&t.Object===Object&&t,d="object"==("undefined"==typeof self?"undefined":Object(r.a)(self))&&self&&self.Object===Object&&self,h=((c||d||Function("return this")()).isFinite,Symbol?Symbol.toStringTag:void 0),l=(Symbol&&Symbol.isConcatSpreadable,o.toString),f=o.propertyIsEnumerable,v=o.hasOwnProperty,m=/^\s+|\s+$/g,y=/^[-+]0x[0-9a-f]+$/i,O=/^0b[01]+$/i,j=/^0o[0-7]+$/i,w=parseInt,I=o.toString,S=function(t){return!!t&&"object"==Object(r.a)(t)},T=function(t){var e=Object(r.a)(t);return!!t&&("object"==e||"function"==e)},k=function(t){if("number"==typeof t)return t;if(function(t){return"symbol"==Object(r.a)(t)||S(t)&&"[object Symbol]"==I.call(t)}(t))return NaN;if(T(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=T(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(m,"");var n=O.test(t);return n||j.test(t)?w(t.slice(2),n?2:8):y.test(t)?NaN:+t},E=function(t){var e=T(t)?I.call(t):"";return"[object Function]"==e||"[object GeneratorFunction]"==e},map=function(t,e){return Array.isArray(t)?t.map(e):(n=t)&&"object"===Object(r.a)(n)&&n.constructor===Object?Object.keys(t).map((function(n){return e(t[n],n)})):[];var n};function P(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":h&&h in Object(t)?function(t){var e=v.call(t,h),n=t[h];try{t[h]=void 0;var r=!0}catch(t){}var o=l.call(t);return r&&(e?t[h]=n:delete t[h]),o}(t):I(t)}function x(t){return S(t)&&"[object Arguments]"==P(t)}x(function(){return arguments}())}).call(this,n(23))}}]);