!(function (e, t) { typeof exports === 'object' && typeof module === 'object' ? module.exports = t() : typeof define === 'function' && define.amd ? define([], t) : typeof exports === 'object' ? exports.qh = t() : e.qh = t() }(window, function () { return (function (e) { var t = {}; function n (r) { if (t[r]) return t[r].exports; var a = t[r] = { i: r, l: !1, exports: {} }; return e[r].call(a.exports, a, a.exports, n), a.l = !0, a.exports } return n.m = e, n.c = t, n.d = function (e, t, r) { n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: r }) }, n.r = function (e) { typeof Symbol !== 'undefined' && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }), Object.defineProperty(e, '__esModule', { value: !0 }) }, n.t = function (e, t) { if (1 & t && (e = n(e)), 8 & t) return e; if (4 & t && typeof e === 'object' && e && e.__esModule) return e; var r = Object.create(null); if (n.r(r), Object.defineProperty(r, 'default', { enumerable: !0, value: e }), 2 & t && typeof e !== 'string') for (var a in e)n.d(r, a, function (t) { return e[t] }.bind(null, a)); return r }, n.n = function (e) { var t = e && e.__esModule ? function () { return e.default } : function () { return e }; return n.d(t, 'a', t), t }, n.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, n.p = '', n(n.s = 0) }([function (e, t, n) { 'use strict'; n.r(t); var r = {}; n.r(r), n.d(r, 'canIUse', function () { return A }); var a = {}; n.r(a), n.d(a, 'navigateTo', function () { return I }), n.d(a, 'redirectTo', function () { return O }), n.d(a, 'navigateBack', function () { return E }), n.d(a, 'reLaunch', function () { return R }), n.d(a, 'switchTab', function () { return L }), n.d(a, 'reLoad', function () { return D }); var o = {}; n.r(o), n.d(o, 'pageScrollTo', function () { return N }), n.d(o, 'showLoading', function () { return W }), n.d(o, 'showToast', function () { return J }), n.d(o, 'hideLoading', function () { return Q }), n.d(o, 'hideToast', function () { return H }), n.d(o, 'showModal', function () { return Y }), n.d(o, 'showActionSheet', function () { return X }), n.d(o, 'getMenuButtonBoundingClientRect', function () { return K }), n.d(o, 'setNavigationBarTextStyle', function () { return Z }), n.d(o, 'setNavigationBarTitle', function () { return ee }), n.d(o, 'setNavigationBarColor', function () { return te }); var i = {}; n.r(i), n.d(i, 'request', function () { return ke }), n.d(i, 'connectSocket', function () { return Pe }), n.d(i, 'onSocketOpen', function () { return Fe }), n.d(i, 'onSocketError', function () { return Me }), n.d(i, 'sendSocketMessage', function () { return Te }), n.d(i, 'onSocketMessage', function () { return je }), n.d(i, 'closeSocket', function () { return _e }), n.d(i, 'onSocketClose', function () { return qe }), n.d(i, 'downloadFile', function () { return ye }), n.d(i, 'download', function () { return fe }), n.d(i, 'uploadFile', function () { return ve }); var s = {}; n.r(s), n.d(s, 'setStorageSync', function () { return Ae }), n.d(s, 'setStorage', function () { return Ie }), n.d(s, 'getStorageSync', function () { return Oe }), n.d(s, 'getStorage', function () { return Ee }), n.d(s, 'getStorageInfoSync', function () { return Le }), n.d(s, 'getStorageInfo', function () { return Re }), n.d(s, 'removeStorageSync', function () { return De }), n.d(s, 'removeStorage', function () { return Ne }), n.d(s, 'clearStorageSync', function () { return Ve }), n.d(s, 'clearStorage', function () { return Be }); var c = {}; n.r(c), n.d(c, 'chooseImage', function () { return Ue }), n.d(c, 'getImageInfo', function () { return ze }), n.d(c, 'saveImageToPhotosAlbum', function () { return Ge }), n.d(c, 'createVideoContext', function () { return Qe }), n.d(c, 'chooseVideo', function () { return He }), n.d(c, 'chooseMessageFile', function () { return Ye }), n.d(c, 'saveVideoToPhotosAlbum', function () { return Xe }), n.d(c, 'createInnerAudioContext', function () { return Ke }); var l = {}; n.r(l), n.d(l, 'getLocation', function () { return Ze }); var u = {}; n.r(u), n.d(u, 'createCanvasContext', function () { return Ot }), n.d(u, 'canvasGetImageData', function () { return Et }), n.d(u, 'canvasPutImageData', function () { return Lt }), n.d(u, 'canvasToTempFilePath', function () { return Rt }); var p = {}; n.r(p), n.d(p, 'getFileSystemManager', function () { return Vt }), n.d(p, 'saveFile', function () { return Bt }), n.d(p, 'removeSavedFile', function () { return Ut }), n.d(p, 'openDocument', function () { return zt }), n.d(p, 'getSavedFileList', function () { return Gt }), n.d(p, 'getSavedFileInfo', function () { return $t }), n.d(p, 'getFileInfo', function () { return Wt }); var d = {}; n.r(d), n.d(d, 'login', function () { return Jt }), n.d(d, 'isLoginSync', function () { return Qt }), n.d(d, 'checkSession', function () { return Ht }), n.d(d, 'showLoginException', function () { return Yt }), n.d(d, 'registerEvent', function () { return Xt }), n.d(d, 'getUserInfo', function () { return Kt }), n.d(d, 'getM2', function () { return Zt }), n.d(d, 'getM2Sync', function () { return en }), n.d(d, 'authorize', function () { return tn }), n.d(d, 'openSetting', function () { return nn }), n.d(d, 'getSetting', function () { return rn }), n.d(d, 'navigateToMiniProgram', function () { return an }), n.d(d, 'navigateBackMiniProgram', function () { return on }); var m = {}; n.r(m), n.d(m, 'getSystemInfo', function () { return sn }), n.d(m, 'getSystemInfoSync', function () { return cn }), n.d(m, 'getSeAppInfoSync', function () { return ln }); var y = {}; n.r(y), n.d(y, 'hideShareMenu', function () { return un }), n.d(y, 'showShareMenu', function () { return pn }); var f = {}; n.r(f), n.d(f, 'createSelectorQuery', function () { return Sn }), n.d(f, 'createIntersectionObserver', function () { return Tn }); var g = {}; n.r(g), n.d(g, 'createRewardedVideoAd', function () { return Ln }); var h = {}; n.r(h), n.d(h, 'getLaunchOptionsSync', function () { return Rn }); const v = Object.prototype.toString; const b = e => v.call(e) === '[object Object]'; const w = e => v.call(e) === '[object Array]'; function S (e, t) { typeof e === 'function' && e(t) } function k ({ name: e = '', para: t, correct: n, wrong: r }) { var a; return `${e}:fail parameter error: ${t ? `parameter.${t}` : 'parameter'} should be ${n} instead of ${typeof (a = r === null ? 'Null' : typeof r) !== 'string' ? a : a = a.replace(/^./, e => e.toUpperCase())}` } function C (e, t = {}, n, r, a, o = !0) { window.senative.call(e, JSON.stringify(t), function (e, t, i) { let s; if (o) try { s = JSON.parse(i) } catch (e) { s = i } else s = i; e === 0 ? (S(n, s), S(a, s)) : (!(function (e, t, n) { typeof e === 'function' && e(t, n) }(r, { errCode: e, errMsg: t }, s)), S(a, { errCode: e, errMsg: t })) }) } function x (e, t = {}, n = !0, r = !1) { let a, o, i; if (window.senative.callsync(e, JSON.stringify(t), function (e, t, r) { if (a = e, o = t, n) try { i = JSON.parse(r) } catch (e) { i = r } else i = r }), a === 0) return i; if (o) { if (r) throw o; console.error(o) }i && console.error(i.errMsg) } const P = [].concat([{ name: 'canIUse', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string', required: !0 }], return: [{ type: 'boolean', value: [!0, !1] }] }], [{ name: 'createCanvasContext', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string', required: !0 }], create: 'CanvasContext' }, { name: 'canvasGetImageData', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { canvasId: { type: 'string', required: !0 }, x: { type: 'number', required: !0 }, y: { type: 'number', required: !0 }, width: { type: 'number', required: !0 }, height: { type: 'number', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { width: { type: 'number' }, height: { type: 'number' }, data: { type: 'Uint8ClampedArray' } } }] }, { name: 'canvasPutImageData', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { canvasId: { type: 'string', required: !0 }, data: { type: 'Uint8ClampedArray', required: !0 }, x: { type: 'number', required: !0 }, y: { type: 'number', required: !0 }, width: { type: 'number', required: !0 }, height: { type: 'number', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'canvasToTempFilePath', version: '1.0.0', native: ['canvasToTempFilePath'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { x: { type: 'number' }, y: { type: 'number' }, width: { type: 'number' }, height: { type: 'number' }, destWidth: { type: 'number' }, destHeight: { type: 'number' }, canvasId: { type: 'string', required: !0 }, quality: { type: 'number', required: !0 }, fileType: { type: 'string', value: ['jpg', 'png'] }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [[{ name: 'tempFilePath', type: 'string' }]] }, { name: 'CanvasContext.draw', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'boolean' }, { type: 'function' }] }, { name: 'CanvasContext.arc', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'boolean' }] }, { name: 'CanvasContext.arcTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.beginPath', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'CanvasContext.bezierCurveTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [] }, { name: 'CanvasContext.clearRect', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.clip', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'CanvasContext.closePath', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'CanvasContext.createCircularGradient', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }], create: 'CanvasGradient' }, { name: 'CanvasContext.createLinearGradient', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }], create: 'CanvasGradient' }, { name: 'CanvasGradient.addColorStop', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'string' }] }, { name: 'CanvasContext.createPattern', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'string', value: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'] }] }, { name: 'CanvasContext.drawImage', version: '1.0.0', native: [], middleware: ['log', 'auth'], args: [{ type: 'string' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.fill', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'CanvasContext.fillRect', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.fillText', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.lineTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.measureText', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }], return: [{ type: 'object', key: { width: { type: 'number' } } }] }, { name: 'CanvasContext.moveTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.quadraticCurveTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.rect', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.restore', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'CanvasContext.rotate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }] }, { name: 'CanvasContext.save', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'CanvasContext.scale', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.setFillStyle', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'any' }] }, { name: 'CanvasContext.setFontSize', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }] }, { name: 'CanvasContext.setGlobalAlpha', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }] }, { name: 'CanvasContext.setLineCap', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string', value: ['butt', 'round', 'square'] }] }, { name: 'CanvasContext.setLineDash', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'array' }, { type: 'number' }] }, { name: 'CanvasContext.setLineJoin', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }] }, { name: 'CanvasContext.setLineWidth', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }] }, { name: 'CanvasContext.setMiterLimit', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }] }, { name: 'CanvasContext.setShadow', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'string' }] }, { name: 'CanvasContext.setStrokeStyle', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }] }, { name: 'CanvasContext.setTextAlign', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string', value: ['left', 'center', 'right'] }] }, { name: 'CanvasContext.setTextBaseline', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string', value: ['top', 'bottom', 'middle', 'normal'] }] }, { name: 'CanvasContext.setTransform', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.stroke', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'CanvasContext.strokeRect', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.strokeText', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.transform', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }, { type: 'number' }] }, { name: 'CanvasContext.translate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }, { type: 'number' }] }], [{ name: 'getFileSystemManager', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], create: 'FileSystemManager' }, { name: 'saveFile', version: '1.0.0', native: ['FileSystemManager.saveFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { tempFilePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { savedFilePath: { type: 'string' } } }] }, { name: 'removeSavedFile', version: '1.0.0', native: ['FileSystemManager.removeSavedFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'openDocument', version: '1.0.0', native: ['openDocument'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, fileType: { type: 'string', required: !0, value: ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf'] }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'getSavedFileList', version: '1.0.0', native: ['FileSystemManager.getSavedFileList'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { fileList: { type: 'string' } } }] }, { name: 'getSavedFileInfo', version: '1.0.0', native: ['getSavedFileInfo'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { size: { type: 'number' }, createTime: { type: 'number' } } }] }, { name: 'getFileInfo', version: '1.0.0', native: ['FileSystemManager.getFileInfo'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { size: { type: 'number' } } }] }, { name: 'FileSystemManager.access', version: '1.0.0', native: ['FileSystemManager.access'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { path: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.accessSync', version: '1.0.0', throw: !0, native: ['FileSystemManager.accessSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }] }, { name: 'FileSystemManager.appendFile', version: '1.0.0', native: ['FileSystemManager.appendFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, data: { type: 'string', required: !0 }, encoding: { type: 'string', value: ['base64', 'utf-8', 'utf8'] }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.appendFileSync', version: '1.0.0', native: ['FileSystemManager.appendFileSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'string' }, { type: 'string' }] }, { name: 'FileSystemManager.copyFile', version: '1.0.0', native: ['FileSystemManager.copyFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { srcPath: { type: 'string', required: !0 }, destPath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.copyFileSync', version: '1.0.0', native: ['FileSystemManager.copyFileSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'string' }] }, { name: 'FileSystemManager.getFileInfo', version: '1.0.0', native: ['FileSystemManager.getFileInfo'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { size: { type: 'number' } } }] }, { name: 'FileSystemManager.getSavedFileList', version: '1.0.0', native: ['FileSystemManager.getSavedFileList'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { fileList: { type: 'array' } } }] }, { name: 'FileSystemManager.mkdir', version: '1.0.0', native: ['FileSystemManager.mkdir'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { dirPath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.mkdirSync', version: '1.0.0', native: ['FileSystemManager.mkdirSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }] }, { name: 'FileSystemManager.readdir', version: '1.0.0', native: ['FileSystemManager.readdir'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { dirPath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { files: { type: 'array' } } }] }, { name: 'FileSystemManager.readdirSync', version: '1.0.0', native: ['FileSystemManager.readdirSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }], return: [{ type: 'array' }] }, { name: 'FileSystemManager.readFile', version: '1.0.0', native: ['FileSystemManager.readFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, encoding: { type: 'string', value: ['base64', 'utf-8', 'utf8'] }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { data: { type: 'any' } } }] }, { name: 'FileSystemManager.readFileSync', version: '1.0.0', native: ['FileSystemManager.readFileSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'string' }], return: [{ type: 'any' }] }, { name: 'FileSystemManager.removeSavedFile', version: '1.0.0', native: ['FileSystemManager.removeSavedFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.rename', version: '1.0.0', native: ['FileSystemManager.rename'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { oldPath: { type: 'string', required: !0 }, newPath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.renameSync', version: '1.0.0', native: ['FileSystemManager.renameSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'string' }] }, { name: 'FileSystemManager.rmdir', version: '1.0.0', native: ['FileSystemManager.rmdir'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { dirPath: { type: 'string', required: !0 }, recursive: { type: 'boolean' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.rmdirSync', version: '1.0.0', native: ['FileSystemManager.rmdirSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'boolean' }] }, { name: 'FileSystemManager.saveFile', version: '1.0.0', native: ['FileSystemManager.saveFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { tempFilePath: { type: 'string', required: !0 }, filePath: { type: 'string' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { savedFilePath: { type: 'string' } } }] }, { name: 'FileSystemManager.saveFileSync', version: '1.0.0', native: ['FileSystemManager.saveFileSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'string' }], return: [{ type: 'string' }] }, { name: 'FileSystemManager.stat', version: '1.0.0', native: ['FileSystemManager.stat'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { path: { type: 'string', required: !0 }, recursive: { type: 'boolean' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { stats: { type: 'any' } } }] }, { name: 'FileSystemManager.statSync', version: '1.0.0', native: ['FileSystemManager.statSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'boolean' }], return: [{ type: 'any' }] }, { name: 'FileSystemManager.unlink', version: '1.0.0', native: ['FileSystemManager.unlink'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.unlinkSync', version: '1.0.0', native: ['FileSystemManager.unlinkSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }] }, { name: 'FileSystemManager.unzip', version: '1.0.0', native: ['FileSystemManager.unzip'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { zipFilePath: { type: 'string', required: !0 }, targetPath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.writeFile', version: '1.0.0', native: ['FileSystemManager.writeFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, data: { type: 'string', required: !0 }, encoding: { type: 'string', value: ['base64', 'utf-8', 'utf8'] }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'FileSystemManager.writeFileSync', version: '1.0.0', native: ['FileSystemManager.writeFileSync'], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'string' }, { type: 'string' }] }], [{ name: 'getLaunchOptionsSync', version: '1.0.0', native: ['getLaunchOptionsSync'], middleware: ['log', 'auth', 'params'], return: [{ type: 'object', key: { path: { type: 'string' }, scene: { type: 'number' }, query: { type: 'object' }, shareTicket: { type: 'string' }, referrerInfo: { type: 'object' } } }] }], [{ name: 'getLocation', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { latitude: { type: 'any' }, longitude: { type: 'any' }, accuracy: { type: 'any' } } }] }], [{ name: 'chooseImage', version: '1.0.0', native: ['chooseImage'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { count: { type: 'number' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { tempFilePaths: { type: 'array' }, tempFiles: { type: 'array' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }] }, { name: 'getImageInfo', version: '1.0.0', native: ['getImageInfo', 'downloadFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { src: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { width: { type: 'number' }, height: { type: 'number' }, path: { type: 'string' }, orientation: { type: 'string' }, type: { type: 'string', value: ['up', 'up-mirrored', 'down', 'down-mirrored', 'left-mirrored', 'right', 'right-mirrored', 'left'] } } }] }, { name: 'saveImageToPhotosAlbum', version: '1.0.0', native: ['saveImageToPhotosAlbum', 'downloadFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'chooseVideo', version: '1.0.0', native: ['chooseVideo'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { compressed: { type: 'boolean' }, maxDuration: { type: 'number' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { tempFilePath: { type: 'string' }, duration: { type: 'number' }, size: { type: 'number' }, height: { type: 'number' }, width: { type: 'number' } } }] }, { name: 'saveVideoToPhotosAlbum', version: '1.0.0', native: ['saveVideoToPhotosAlbum', 'downloadFile'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { filePath: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'createVideoContext', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string', required: !0 }, { type: 'object', required: !0 }], create: 'VideoContext' }, { name: 'VideoContext.play', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'VideoContext.pause', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'VideoContext.stop', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'VideoContext.seek', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }] }, { name: 'VideoContext.playbackRate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }] }, { name: 'VideoContext.requestFullScreen', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'VideoContext.exitFullScreen', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'createInnerAudioContext', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], create: 'innerAudioContext' }, { name: 'innerAudioContext.play', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'innerAudioContext.pause', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'innerAudioContext.stop', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'innerAudioContext.seek', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'number' }] }, { name: 'innerAudioContext.destroy', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'innerAudioContext.onCanplay', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offCanplay', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.onPlay', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offPlay', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.onPause', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offPause', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.onEnded', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offEnded', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.onTimeUpdate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offTimeUpdate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.onError', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offError', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.onWaiting', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offWaiting', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.onSeeking', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offSeeking', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.onSeeked', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'innerAudioContext.offSeeked', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }], [{ name: 'request', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'object', required: !0, key: { url: { type: 'string', required: !0 }, data: { type: 'object|string' }, header: { type: 'object' }, method: { type: 'string', value: ['OPTIONS', 'GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'TRACE', 'CONNECT', 'options', 'get', 'head', 'post', 'put', 'delete', 'trace', 'connect'] }, dataType: { type: 'string' }, responseType: { type: 'string', value: ['text', 'arraybuffer'] }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { data: { type: 'any' }, statusCode: { type: 'number' }, header: { type: 'object' } } }], create: 'RequestTask' }, { name: 'RequestTask.abort', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'downloadFile', version: '1.0.0', native: ['downloadFile'], middleware: ['log', 'auth', 'params'], create: 'DownloadTask', args: [{ type: 'object', key: { url: { type: 'string', required: !0 }, header: { type: 'object' }, filePath: { type: 'string' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { tempFilePath: { type: 'string' }, statusCode: { type: 'number' }, filePath: { type: 'string' } } }] }, { name: 'DownloadTask.abort', version: '1.0.0', native: ['downloadAbort'], middleware: ['log', 'auth'] }, { name: 'DownloadTask.onProgressUpdate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { progress: { type: 'number' }, totalBytesWritten: { type: 'number' }, totalBytesExpectedToWrite: { type: 'string' } } }] }, { name: 'DownloadTask.offProgressUpdate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'download', version: '1.0.0', native: ['download'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { url: { type: 'string', required: !0 }, fileName: { type: 'string' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'uploadFile', version: '1.0.0', native: ['uploadFile'], middleware: ['log', 'auth', 'params'], create: 'UploadTask', args: [{ type: 'object', key: { url: { type: 'string', required: !0 }, filePath: { type: 'string', required: !0 }, name: { type: 'string', required: !0 }, header: { type: 'object' }, formData: { type: 'object' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { data: { type: 'string' }, statusCode: { type: 'number' } } }] }, { name: 'UploadTask.abort', version: '1.0.0', native: ['uploadAbort'], middleware: ['log', 'auth'] }, { name: 'UploadTask.onProgressUpdate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { progress: { type: 'number' }, totalBytesWritten: { type: 'number' }, totalBytesExpectedToWrite: { type: 'number' } } }] }, { name: 'UploadTask.offProgressUpdate', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'connectSocket', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'object', key: { url: { type: 'string', required: !0 }, protocols: { type: 'any' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [], create: 'SocketTask' }, { name: 'SocketTask.send', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { data: { type: 'string|ArrayBuffer', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'SocketTask.close', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { code: { type: 'number' }, reason: { type: 'string' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'SocketTask.onOpen', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { header: { type: 'object' } } }] }, { name: 'SocketTask.onClose', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { code: { type: 'number' }, reason: { type: 'string' } } }] }, { name: 'SocketTask.onError', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { errMsg: { type: 'string' } } }] }, { name: 'SocketTask.onMessage', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { data: { type: 'string|ArrayBuffer' } } }] }, { name: 'onSocketOpen', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { header: { type: 'object' } } }] }, { name: 'onSocketError', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'onSocketMessage', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { data: { type: 'string|ArrayBuffer' } } }] }, { name: 'onSocketClose', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'sendSocketMessage', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { taskID: { type: 'string' }, data: { type: 'string|ArrayBuffer', required: !0 }, dataType: { type: 'string' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'closeSocket', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { taskID: { type: 'string' }, data: { type: 'number' }, reason: { type: 'string' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }], [{ name: 'authorize', version: '1.0.0', native: ['authorize'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { scope: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'login', version: '1.0.0', native: ['login'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { timeout: { type: 'number' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { code: { type: 'string' } } }] }, { name: 'checkSession', version: '1.0.0', native: ['checkSession'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'isLoginSync', version: '1.0.0', native: ['isLoginSync'], middleware: ['log', 'auth', 'params'], return: [{ type: 'boolean' }] }, { name: 'registerEvent', version: '1.0.0', native: ['registerEvent'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { list: { type: 'array' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'showLoginException', version: '1.0.0', native: ['showLoginException'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'getM2', version: '1.0.0', native: ['getM2'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'string' }] }, { name: 'getUserInfo', version: '1.0.0', native: ['getUserInfo'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'openSetting', version: '1.0.0', native: ['openSetting'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { authSetting: { type: 'object' } } }] }, { name: 'getSetting', version: '1.0.0', native: ['getSetting'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { authSetting: { type: 'object' } } }] }, { name: 'navigateToMiniProgram', version: '1.0.0', native: ['navigateToMiniProgram'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { appId: { type: 'string', required: !0 }, path: { type: 'string' }, extraData: { type: 'object' }, envVersion: { type: 'string', value: ['develop', 'trial', 'release'] }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'navigateBackMiniProgram', version: '1.0.0', native: ['navigateBackMiniProgram'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { extraData: { type: 'object' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }], [{ name: 'navigateTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { url: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'redirectTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { url: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'switchTab', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { url: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'navigateBack', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { delta: { type: 'number' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'reLaunch', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { url: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'reLoad', version: '1.0.0', native: [], middleware: ['log', 'auth'] }], [{ name: 'createSelectorQuery', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], create: 'SelectorQuery' }, { name: 'SelectorQuery.exec', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [], return: 'NodesRef' }, { name: 'SelectorQuery.in', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'any' }], return: 'SelectorQuery' }, { name: 'SelectorQuery.select', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }], return: 'NodesRef' }, { name: 'SelectorQuery.selectAll', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }], return: 'NodesRef' }, { name: 'SelectorQuery.selectViewport', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'any' }], return: 'NodesRef' }, { name: 'NodesRef.boundingClientRect', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function' }], callback: [{ type: 'object', key: { id: { type: 'string' }, dataset: { type: 'object' }, left: { type: 'number' }, right: { type: 'number' }, top: { type: 'number' }, bottom: { type: 'number' }, width: { type: 'number' }, height: { type: 'number' } } }], return: 'SelectorQuery' }, { name: 'NodesRef.fields', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'object', key: { id: { type: 'boolean' }, dataset: { type: 'boolean' }, rect: { type: 'boolean' }, size: { type: 'boolean' }, scrollOffset: { type: 'boolean' }, properties: { type: 'boolean' }, computedStyle: { type: 'boolean' } } }, { type: 'function' }], return: 'SelectorQuery' }, { name: 'NodesRef.scrollOffset', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function' }], callback: [{ type: 'object', key: { id: { type: 'string' }, dataset: { type: 'object' }, scrollLeft: { type: 'number' }, scrollTop: { type: 'number' } } }], return: 'SelectorQuery' }, { name: 'createIntersectionObserver', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], create: 'IntersectionObserver' }, { name: 'IntersectionObserver.relativeTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'object', key: { left: { type: 'number' }, right: { type: 'number' }, top: { type: 'number' }, bottom: { type: 'number' } } }], return: 'IntersectionObserver' }, { name: 'IntersectionObserver.relativeToViewport', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'object', key: { left: { type: 'number' }, right: { type: 'number' }, top: { type: 'number' }, bottom: { type: 'number' } } }], return: 'IntersectionObserver' }, { name: 'IntersectionObserver.observe', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'callback' }], return: 'IntersectionObserver' }, { name: 'IntersectionObserver.disconnect', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'] }], [{ name: 'getStorageInfoSync', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], return: [{ type: 'object', key: { keys: { type: 'array' }, currentSize: { type: 'number' }, limitSize: { type: 'any' } } }] }, { name: 'clearStorageSync', version: '1.0.0', native: [], middleware: ['log', 'auth'] }, { name: 'getStorageSync', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }], return: [{ type: 'any' }] }, { name: 'setStorageSync', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }, { type: 'any' }] }, { name: 'removeStorageSync', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'string' }] }, { name: 'getStorageInfo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { keys: { type: 'array' }, currentSize: { type: 'number' }, limitSize: { type: 'any' } } }] }, { name: 'clearStorage', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'getStorage', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { key: { type: 'string' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { data: { type: 'any' } } }] }, { name: 'setStorage', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { key: { type: 'string', required: !0 }, data: { type: 'any', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'removeStorage', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { key: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }], [{ name: 'getSystemInfoSync', version: '1.0.0', native: ['getSystemInfoSync'], middleware: ['log', 'auth', 'params'], return: [{ type: 'object', key: { version: { type: 'string' }, SDKVersion: { type: 'string' }, system: { type: 'string' }, screenWidth: { type: 'number' }, screenHeight: { type: 'number' }, windowWidth: { type: 'number' }, windowHeight: { type: 'number' }, pixelRatio: { type: 'string' }, cpu: { type: 'string' }, multiscreenEnabled: { type: 'boolean' }, scaling: { type: 'number' }, sourceEnabled: { type: 'boolean' }, electricityQuantity: { type: 'number' } } }] }, { name: 'getSystemInfo', version: '1.0.0', native: ['getSystemInfo'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { version: { type: 'string' }, SDKVersion: { type: 'string' }, system: { type: 'string' }, screenWidth: { type: 'number' }, screenHeight: { type: 'number' }, windowWidth: { type: 'number' }, windowHeight: { type: 'number' }, pixelRatio: { type: 'string' }, cpu: { type: 'string' }, multiscreenEnabled: { type: 'boolean' }, scaling: { type: 'number' }, sourceEnabled: { type: 'boolean' }, electricityQuantity: { type: 'number' } } }] }, { name: 'getSeAppInfoSync', version: '1.0.0', native: ['getSeAppInfoSync'], middleware: ['log', 'auth', 'params'], private: !0, return: [{ type: 'object', key: { API: { type: 'string' }, appversion: { type: 'string' } } }] }], [{ name: 'showActionSheet', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { itemList: { type: 'array', required: !0 }, itemColor: { type: 'string' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { tapIndex: { type: 'number' } } }] }, { name: 'showLoading', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { title: { type: 'string', required: !0 }, mask: { type: 'boolean' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'showToast', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { title: { type: 'string', required: !0 }, icon: { type: 'string', value: ['success', 'loading', 'none'] }, image: { type: 'string' }, mask: { type: 'boolean' }, duration: { type: 'number' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'hideLoading', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'hideToast', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'showModal', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { title: { type: 'string', required: !0 }, content: { type: 'string', required: !0 }, showCancel: { type: 'boolean' }, cancelText: { type: 'string' }, cancelType: { type: 'string' }, confirmText: { type: 'string' }, confirmType: { type: 'string' }, close: { type: 'function' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [{ type: 'object', key: { confirm: { type: 'boolean' }, cancel: { type: 'boolean' } } }] }, { name: 'pageScrollTo', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { scrollTop: { type: 'number', required: !0 }, duration: { type: 'number' }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'setNavigationBarTitle', version: '1.0.0', native: ['setNavigationBarTitle'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { title: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'setNavigationBarColor', version: '1.0.0', native: ['setNavigationBarColor'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { backgroundColor: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'setNavigationBarTextStyle', version: '1.0.0', native: ['setNavigationBarTextStyle'], middleware: ['log', 'auth', 'params', 'promise'], args: [{ type: 'object', key: { textStyle: { type: 'string', required: !0 }, success: { type: 'function' }, fail: { type: 'function' }, complete: { type: 'function' } } }], success: [] }, { name: 'getMenuButtonBoundingClientRect', version: '1.0.0', native: ['getMenuButtonBoundingClientRectSync'], middleware: ['log', 'auth', 'params'], return: [{ type: 'object', key: { width: { type: 'number' }, height: { type: 'number' }, top: { type: 'number' }, right: { type: 'number' }, bottom: { type: 'number' }, left: { type: 'number' } } }] }], [{ name: 'createRewardedVideoAd', version: '1.0.0', native: ['LoadRewardedVideoAd'], middleware: ['log', 'auth', 'params'], args: [{ type: 'object', key: { adUnitId: { type: 'string', required: !0 } } }], create: 'RewardedVideoAd' }, { name: 'RewardedVideoAd.destroy', version: '1.0.0', native: ['DestroyRewardedVideoAd'], middleware: ['log', 'auth'] }, { name: 'RewardedVideoAd.load', version: '1.0.0', native: ['LoadRewardedVideoAd'], middleware: ['log', 'auth', 'params'], return: [{ type: 'promise' }] }, { name: 'RewardedVideoAd.show', version: '1.0.0', native: ['ShowRewardedVideoAd'], middleware: ['log', 'auth', 'params'], return: [{ type: 'promise' }] }, { name: 'RewardedVideoAd.offClose', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'RewardedVideoAd.offError', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'RewardedVideoAd.offLoad', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }, { name: 'RewardedVideoAd.onClose', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { isEnded: { type: 'boolean' }, currentTime: { type: 'number' }, duration: { type: 'number' } } }] }, { name: 'RewardedVideoAd.onError', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [{ type: 'object', key: { errMsg: { type: 'string' }, errCode: { type: 'number' } } }] }, { name: 'RewardedVideoAd.onLoad', version: '1.0.0', native: [], middleware: ['log', 'auth', 'params'], args: [{ type: 'function', required: !0 }], callback: [] }]); var F = P; const M = new Set(); try { x('canIUseMapSync').reduce((e, t) => e.add(t.name), M) } catch (e) {} const T = F.reduce((e, t) => ((function (e) { return M.size === 0 || (!(e.native && e.native.length > 0) || e.native.every(e => M.has(e))) }(t)) && e.push(t), e), []); const j = ['return', 'success', 'object', 'callback', 'fail', 'complete']; const _ = T.reduce((e, t, n) => { t.success && (t.fail = [], t.complete = []); let r = t.name && t.name.split('.'); return r && (r.length > 1 ? (!e[r[0]] && (e[r[0]] = {}), e[r[0]][r[1]] = {}, q(e[r[0]][r[1]], t)) : (e[r[0]] = {}, q(e[r[0]], t))), e }, {}); function q (e, t) { j.forEach(n => { let r = n === 'object' ? 'args' : n; t[r] && (e[n] = {}, t[r].length > 0 && t[r][0].type === 'object' && Object.entries(t[r][0].key).forEach(t => { e[n][t[0]] = {}, t[1].value ? t[1].value.forEach(r => { e[n][t[0]][r] = !0 }) : t[1].key && Object.keys(t[1].key).forEach(r => { e[n][t[0]][r] = !0 }) })) }) } const A = e => { let t = !1; if (e) { e.split('.').reduce((e, n) => e[n] ? (t = !0, e[n]) : (t = !1, {}), _) } return t }; function I ({ url: e, success: t, fail: n, complete: r } = {}) { window.$router && window.$router.push({ path: e }, function (e) { S(t, e), S(r, e) }, function (e) { S(n, e), S(r, e) }) } function O ({ url: e, success: t, fail: n, complete: r } = {}) { window.$router && window.$router.replace(e, function (e) { S(t, e), S(r, e) }, function (e) { S(n, e), S(r, e) }) } function E ({ delta: e, success: t, fail: n, complete: r } = {}) { let a = !0; try { if (!window.$router) return; e = parseInt(e || 1, 10); let t = window.$router.options.routes; e > t.length ? window.$router.push(t[0].path) : window.$router.go(-e) } catch (e) { a = !1, S(n, e) }a && S(t), S(r) } function L ({ url: e, success: t, fail: n, complete: r } = {}) { window.$router && window.$router.push({ path: e }, function (e) { S(t, e), S(r, e) }, function (e) { S(n, e), S(r, e) }) } function R ({ url: e, success: t, complete: n } = {}) { e = e + (e.indexOf('?') > -1 ? '&' : '?') + 'ts=' + Date.now(), location.href = location.href.replace(/\/pages\/(.*)/, e), S(t), S(n) } function D () { window.location.reload() } function N (e = {}) { const { scrollTop: t, duration: n, success: r, fail: a, complete: o } = e; return t && typeof t !== 'number' ? S(a, 'scrollTop参数传递错误') : n && typeof n !== 'number' ? S(a, 'duration参数传递错误') : void (function (e, t, n, r, a) { let o = null; let i = e.pageYOffset; if (i === t) return; const s = n / 16; const c = i > t ? 'UP' : 'DOWN'; const l = c === 'UP' ? (i - t) / s : (t - i) / s; window.requestAnimationFrame(function n () { c === 'UP' ? (i -= l, window.scrollTo(0, i), i > t ? (e.scrollTop = i, o = window.requestAnimationFrame(n)) : (window.scrollTo(0, t), window.cancelAnimationFrame(o), S(r), S(a))) : c === 'DOWN' && (i += l, i < t ? (window.scrollTo(0, i), o = window.requestAnimationFrame(n)) : (window.scrollTo(0, t), window.cancelAnimationFrame(o), S(r), S(a))) }) }(window, t, n, r, o)) } const V = { position: 'fixed', zIndex: 909, top: 0, left: 0, right: 0, bottom: 0, background: 'rgba(0, 0, 0, 0.65)', animation: 'seappCustomShowMaskAnimation .3s', webkitAnimation: 'seappCustomShowMaskAnimation .3s' }; const B = { position: 'fixed', zIndex: 910, bottom: 0, left: 0, right: 0, display: 'flex', display: '-webkit-flex', alignItems: 'center', justifyContent: 'center', webkitAlignItems: 'center', webkitJustifyContent: 'center', transition: 'transform .3s', webkitTransition: '-webkit-transform .3s' }; const U = { display: 'flex', display: '-webkit-flex', flexDirection: 'column', webkitFlexDirection: 'column', width: '100%', alignItems: 'center', justifyContent: 'center', webkitAlignItems: 'center', webkitJustifyContent: 'center', fontSize: '17px', lineHeight: '40px', textAlign: 'center' }; const z = { width: '100%', height: '40px', padding: '0 10px', textOverflow: 'ellipsis', whiteSpace: 'nowrap', overflow: 'hidden', textAlign: 'center', boxSizing: 'border-box', borderTop: '1px #eee solid', backgroundColor: '#fff' }; function G () { const e = document.querySelector('#seapp-custom-action-sheet'); const t = document.querySelector('#seapp-custom-action-sheet-mask'); e && e.parentNode.removeChild(e), t && t.parentNode.removeChild(t) } function $ (e, t) { var n; ((n = e) && n instanceof Object ? { res: !0 } : { res: !1, msg: k({ correct: 'Object', wrong: n }) }).res || console.error(k({ name: t, para: null, correct: 'Object', wrong: typeof e })) } function W (e = {}) { $(e, 'showLoading'); const { title: t, mask: n = !1, success: r, fail: a, complete: o } = e; let i = { errMsg: 'showLoading:ok' }; typeof n !== 'boolean' && (i.errMsg = k({ name: 'showLoading', para: 'mask', correct: 'boolean', wrong: n }), console.error(i.errMsg), S(a, i), S(o, i)), window.$showLoading({ title: t, mask: n, success: r, fail: a, complete: o }) } function J (e = {}) { $(e, 'showToast'); const { title: t, icon: n = 'success', image: r = null, duration: a = 2e3, mask: o = !1, success: i, fail: s, complete: c } = e; let l = { errMsg: 'showToast:ok' }; n !== 'success' && n !== 'loading' && n !== 'none' && (l.errMsg = k({ name: 'showToast', para: 'icon', correct: 'success|laoding|none', wrong: n }), console.error(l.errMsg), S(s, l), S(c, l)), typeof o !== 'boolean' && (l.errMsg = k({ name: 'showToast', para: 'mask', correct: 'boolean', wrong: o }), console.error(l.errMsg), S(s, l), S(c, l)), typeof a !== 'number' && (l.errMsg = k({ name: 'showToast', para: 'duration', correct: 'number', wrong: a }), console.error(l.errMsg), S(s, l), S(c, l)), window.$showToast({ title: t, icon: n, image: r, duration: a, mask: o, success: i, fail: s, complete: c }) } function Q (e = {}) { const { success: t, fail: n, complete: r } = e; window.$hideLoading({ success: t, fail: n, complete: r }) } function H (e = {}) { const { success: t, fail: n, complete: r } = e; window.$hideToast({ success: t, fail: n, complete: r }) } function Y (e = {}) { $(e, 'showModal'); const { title: t, content: n, showCancel: r = !0, cancelText: a = '取消', cancelType: o, confirmText: i = '确定', confirmType: s, close: c, success: l, fail: u, complete: p } = e; let d = { errMsg: 'showModal:ok' }; (t && typeof t !== 'string' || void 0 === t) && (d.errMsg = k({ name: 'showModal', para: 'title', correct: 'string', wrong: t }), console.error(d.errMsg), S(u, d), S(p, d)), (n && typeof n !== 'string' || void 0 === n) && (d.errMsg = k({ name: 'showModal', para: 'content', correct: 'string', wrong: n }), console.error(d.errMsg), S(u, d), S(p, d)), window.$showModal({ title: t, content: n, showCancel: r, cancelText: a, cancelType: o, confirmText: i, confirmType: s, close: c, success: l, fail: u, complete: p }) } function X (e = {}) { $(e, 'showActionSheet'); let{ itemList: t = [], itemColor: n = '#3c76ff', success: r, fail: a, complete: o } = e; let i = { errMsg: 'showActionSheet:ok' }; return t && !(t instanceof Array) || void 0 === t ? (i.errMsg = k({ name: 'showActionSheet', para: 'itemList', correct: 'array', wrong: t }), console.error(i.errMsg), S(a, i), S(o, i), Promise.reject(i)) : n && typeof n !== 'string' ? (i.errMsg = k({ name: 'showActionSheet', para: 'itemColor', correct: 'string', wrong: n }), console.error(i.errMsg), S(a, i), S(o, i), Promise.reject(i)) : (t.length > 6 && (t = t.slice(0, 6)), void (function (e) { G(); const { itemList: t, itemColor: n, success: r, complete: a } = e; const o = document.createElement('div'); o.id = 'seapp-custom-action-sheet-mask', Object.assign(o.style, V); const i = document.createElement('div'); i.id = 'seapp-custom-action-sheet', Object.assign(i.style, B); const s = document.createElement('div'); s.id = 'seapp-custom-action-sheet-content', Object.assign(s.style, U), t.forEach((e, t) => { const r = document.createElement('div'); Object.assign(r.style, z, { color: n }), r.dataset.tapIndex = t, r.innerText = e, s.appendChild(r) }); const c = document.createElement('div'); c.id = 'seapp-custom-action-sheet-cancel-btn', Object.assign(c.style, z, { color: '#000' }), c.innerText = '取消', s.appendChild(c), i.appendChild(s), i.style.transform = `translateY(${40 * (t.length + 1)}px)`, document.body.appendChild(i), document.body.appendChild(o); const l = document.querySelector('#seapp-custom-action-sheet-mask'); const u = document.querySelector('#seapp-custom-action-sheet'); const p = u.querySelector('#seapp-custom-action-sheet-content'); const d = u.querySelector('#seapp-custom-action-sheet-cancel-btn'); let m = { errMsg: 'showActionSheet:ok' }; p.onclick = e => { const t = e.target || e.srcElement; if (t.dataset.tapIndex > -1) return m.tapIndex = parseInt(t.dataset.tapIndex, 10), S(r, m), S(a, m), G(), Promise.resolve(m) }, d.onclick = () => (G(), S(a, m), Promise.resolve(m)), l.onclick = () => (G(), S(a, m), Promise.resolve(m)), setTimeout(() => { u.style.transform = 'translateY(0)', u.style.webkitTransform = 'translateY(0)' }, 10) }({ itemList: t, itemColor: n, success: r, fail: a, complete: o }))) } function K () { return x('getMenuButtonBoundingClientRectSync') } function Z ({ textStyle: e, success: t, fail: n, complete: r } = {}) { C('setNavigationBarTextStyle', { textStyle: e }, t, n, r) } function ee ({ title: e, success: t, fail: n, complete: r } = {}) { C('setNavigationBarTitle', { title: e }, t, n, r) } function te ({ backgroundColor: e, success: t, fail: n, complete: r } = {}) { C('setNavigationBarColor', { backgroundColor: e }, t, n, r) } const ne = Symbol('getRandom'); const re = Symbol('pool'); const ae = Symbol('ts'); const oe = new class {constructor () { this[re] = [], this[ae] = Date.now() }[ne] (e = 1) { return Math.random().toString().slice(-e) }once (e = 1) { if (e > 15) return console.error('最大只能申请15位随机数'), !1; this[ne](e) }apply () { let e; let t; let n; let r = 0; for (;;) if (this[ae] !== Date.now() && (this[re] = [], this[ae] = Date.now()), r <= 10 && r++, e = this[ne](r), t = this[ae] + '' + e, this[re].indexOf(t) === -1) { n = t, this[re].push(t); break } return parseInt(n) }}(); const ie = Symbol('__EventPool'); const se = Symbol('__on'); const ce = new class {constructor () { this[ie] = {} }once (...e) { this[se](...e, !0) }on (...e) { this[se](...e) }[se] (e, t, n = !1) { if (typeof t === 'function') { if (this[ie][e] || (this[ie][e] = new Map()), !this[ie][e].has(t)) { const r = { once: n, cb: t }; this[ie][e].set(t, r) } } else console.error('2 arguments required, the callback provided as parameter 2 is not an function.') }off (e, t) { this[ie][e] && (arguments.length > 1 && !0 === t ? delete this[ie][e] : arguments.length > 1 && typeof t === 'function' ? (this[ie][e].delete(t), this[ie][e].size === 0 && delete this[ie][e]) : console.error('2 arguments required, the param 2 should be Function or Boolean.')) }emit (e, t) { this[ie][e] && this[ie][e].forEach((n, r, a) => { n.once && this.off(e, r), n.cb(t) }) }}(); function le (e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } const ue = Symbol('progressEvent'); class pe {constructor (e) { this.id = oe.apply(), this[ue] = pe.ProgressEventPrefix + this.id }abort () {}onProgressUpdate (e) { ce.on(this[ue], e) }offProgressUpdate (e) { ce.off(this[ue], !0) }} function de (e, t = '') { if (!e) return ''; let n = []; return Object.entries(e).forEach(e => { n.push(e.join('=')) }), n.join(t) }le(pe, 'GlobalProgressCallback', '__loadTaskProgressUpdate'), le(pe, 'ProgressEventPrefix', 'loadTask.progress'), window[pe.GlobalProgressCallback] = function (e, t, n, r) { let a = (n / r).toFixed(2); ce.emit(pe.ProgressEventPrefix + e, { progress: a, totalBytesWritten: n, totalBytesExpectedToWrite: r }) }; const me = Symbol('init'); function ye ({ url: e, header: t, filePath: n, success: r, fail: a, complete: o }) { return t = de(t, ';'), new ge({ url: e, header: t, filePath: n, success: r, fail: a, complete: o }) } function fe ({ url: e, fileName: t, success: n, fail: r, complete: a }) { C('download', { url: e, fileName: t }, n, r, a) } class ge extends pe {constructor (e) { super(), this[me](e) }[me] (e) { C('downloadFile', { url: e.url, header: e.header, filePath: e.filePath, taskEvent: pe.GlobalProgressCallback, taskParam: this.id + '' }, e.success, e.fail, t => { S(e.complete, t), this.offProgressUpdate() }) }abort () { C('downloadAbort') }} const he = Symbol('init'); function ve ({ url: e, filePath: t, name: n, header: r = { 'content-type': 'multipart/form-data' }, formData: a, success: o, fail: i, complete: s }) { return r = de(r, ';'), a = de(a, ';'), new be({ url: e, filePath: t, name: n, header: r, formData: a, success: o, fail: i, complete: s }) } class be extends pe {constructor (e) { super(), this[he](e) }[he] (e) { C('uploadFile', { url: e.url, name: e.name, filePath: e.filePath, header: e.header, formData: e.formData, taskEvent: pe.GlobalProgressCallback, taskParam: this.id + '' }, t => { let n = t; try { t && t.data && (n.data = unescape(t.data)) } catch (e) {}e.success(n) }, e.fail, t => { S(e.complete, t), this.offProgressUpdate() }) }abort () { C('uploadAbort') }} function we (e, t) { return (t = typeof t === 'string' ? t : (function (e) { return e ? typeof e === 'string' ? e : Object.keys(e).map(t => `${encodeURIComponent(t)}=${typeof e[t] === 'object' ? encodeURIComponent(JSON.stringify(e[t])) : encodeURIComponent(e[t])}`).join('&') : '' }(t))) && (e += (~e.indexOf('?') ? '&' : '?') + t), e = e.replace('?&', '?') } class Se {constructor (e) { var t, n, r; r = void 0, (n = '_xhr') in (t = this) ? Object.defineProperty(t, n, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[n] = r, this._xhr = e }abort () { this._xhr && (this._xhr.abort(), delete this._xhr) }} function ke ({ url: e, data: t, header: n = {}, method: r = 'GET', dataType: a = 'json', responseType: o = 'text', success: i, fail: s, complete: c } = {}) { var l; var u = null; var p = r.toUpperCase(); for (const e in n) if (n.hasOwnProperty(e) && e.toLowerCase() === 'content-type') { l = (l = n[e]).indexOf('application/json') === 0 ? 'json' : l.indexOf('application/x-www-form-urlencoded') === 0 ? 'urlencoded' : 'string'; break } if (p !== 'GET') if (l || (n['Content-Type'] = 'application/json', l = 'json'), typeof t === 'string' || t instanceof ArrayBuffer)u = t; else if (l === 'json') try { u = JSON.stringify(t) } catch (e) { u = t.toString() } else if (l === 'urlencoded') { let e = []; for (let n in t)t.hasOwnProperty(n) && e.push(encodeURIComponent(n) + '=' + encodeURIComponent(t[n])); u = e.join('&') } else u = t.toString(); else p !== 'GET' && p !== 'HEAD' || (e = we(e, t)); var d = new XMLHttpRequest(); var m = new Se(d); for (var y in d.open(r, e), n)n.hasOwnProperty(y) && d.setRequestHeader(y, n[y]); var f = setTimeout(function () { d.onload = d.onabort = d.onerror = null, m.abort(), S(s, { errCode: 1, errMsg: 'request:fail timeout' }), S(c, { errCode: 1, errMsg: 'request:fail timeout' }) }, 6e4); return d.responseType = o, d.onload = function () { clearTimeout(f); let e = d.status; let t = o === 'text' ? d.responseText : d.response; if (o === 'text' && a === 'json') try { t = JSON.parse(t) } catch (e) { return S(s, { errCode: 2, errMsg: 'request:fail json parse error' }), void S(c, { errCode: 2, errMsg: 'request:fail json parse error' }) } const n = { data: t, statusCode: e, header: (r = d.getAllResponseHeaders(), l = {}, r.split('\n').forEach(e => { var t = e.match(/(\S+\s*):\s*(.*)/); if (t && t.length === 3) { var n = t[1]; var r = t[2]; l[n] = r } }), l) }; var r, l; S(i, n), S(c, n) }, d.onabort = function () { clearTimeout(f), S(s, { errCode: 3, errMsg: 'request:fail abort' }), S(c, { errCode: 3, errMsg: 'request:fail abort' }) }, d.onerror = function () { clearTimeout(f), S(s, { errCode: 4, errMsg: 'request:fail' }), S(c, { errCode: 4, errMsg: 'request:fail' }) }, d.send(u), m } class Ce {constructor (e) { this.socketTaskId = Date.now(), this.socket = e, this.CONNECTING = 0, this.OPEN = 1, this.CLOSING = 2, this.CLOSED = 3 } get readyState () { return this.socket.readyState }send ({ data: e, success: t, fail: n, complete: r } = {}) { let a = null; try { this.socket.send(e) } catch (e) { a = e }a ? (S(n, a), S(r, a)) : (S(t), S(r)) }close ({ code: e = 1e3, reason: t = '', success: n, fail: r, complete: a } = {}) { let o = null; try { this.socket.close(e, t) } catch (e) { o = e }o ? (S(r, o), S(a, o)) : (S(n), S(a)) }onOpen (e) { this.socket.onopen = e }onClose (e) { this.socket.onclose = e }onError (e) { this.socket.onerror = e }onMessage (e) { this.socket.onmessage = e }} const xe = []; function Pe ({ url: e, protocols: t = [], success: n, fail: r, complete: a } = {}) { let o = null; let i = null; try { const n = new WebSocket(e, t); i = new Ce(n), xe.push(n), ce.emit('connectSocketOpen', n), ce.emit('connectSocketError', n), ce.emit('connectSocketMessage', n), ce.emit('connectSocketClose', n) } catch (e) { o = e } return o ? (S(r, { errCode: -1, errMsg: o.message }), S(a, { errCode: -1, errMsg: o.message })) : (S(n, i), S(a, i)), i } function Fe (e) { xe.forEach(t => { t.onopen = e }), ce.on('connectSocketOpen', t => { t.onopen = e }) } function Me (e) { xe.forEach(t => { t.onerror = e }), ce.on('connectSocketError', t => { t.onerror = e }) } function Te ({ data: e, success: t, fail: n, complete: r } = {}) { let a = null; try { xe.forEach(t => { t.send(e) }) } catch (e) { a = e }a ? (S(n, { errCode: -1, errMsg: a.message }), S(r, { errCode: -1, errMsg: a.message })) : (S(t), S(r)) } function je (e) { xe.forEach(t => { t.onmessage = e }), ce.on('connectSocketMessage', t => { t.onmessage = e }) } function _e ({ code: e = 1e3, reason: t = '', success: n, fail: r, complete: a } = {}) { let o = null; try { xe.forEach(n => { n.close(e, t) }) } catch (e) { o = e }o ? (S(r, { errCode: -1, errMsg: o.message }), S(a, { errCode: -1, errMsg: o.message })) : (S(n), S(a), ce.off('connectSocketOpen', !0), ce.off('connectSocketError', !0), ce.off('connectSocketClose', !0), ce.off('connectSocketMessage', !0)) } function qe (e) { xe.forEach(t => { t.onclose = e }), ce.on('connectSocketClose', t => { t.onclose = e }) } function Ae (e, t) { const n = JSON.stringify(t || ''); localStorage.setItem(e, n) } function Ie ({ key: e, data: t, success: n, fail: r, complete: a } = {}) { return new Promise((o, i) => { let s = { status: 0, message: 'success' }; try { Ae(e, t) } catch (e) { s = { errCode: -1, errMsg: e.message } }s.status === 0 ? (S(n, s), S(a, s), o(s)) : (S(r, s), S(a, s), i(s)) }) } function Oe (e) { let t = localStorage.getItem(e); return JSON.parse(t) } function Ee ({ key: e, success: t, fail: n, complete: r } = {}) { return new Promise((a, o) => { let i = { status: 0, message: 'success' }; try { i.data = Oe(e) } catch (e) { i = { errCode: -1, errMsg: e.message } }i.status === 0 ? (S(t, i), S(r, i), a(i)) : (S(n, i), S(r, i), o(i)) }) } function Le () { let e = { currentSize: 0, keys: [], limitSize: NaN }; return Object.keys(localStorage).forEach(t => { e.keys.push(t), e.currentSize += 2 * localStorage.getItem(t).length }), e } function Re ({ success: e, fail: t, complete: n } = {}) { return new Promise((r, a) => { let o = null; try { o = Le() } catch (e) { o = { errCode: -1, errMsg: e.message } }o.status === -1 ? (S(t, o), S(n, o), a(o)) : (S(e, o), S(n, o), r(o)) }) } function De (e) { return localStorage.removeItem(e), !0 } function Ne ({ key: e, success: t, fail: n, complete: r } = {}) { try { De(e), S(t), S(r) } catch (e) { S(n, { errCode: -1, errMsg: e.message }) } return Promise.resolve() } function Ve () { return localStorage.clear(), !0 } function Be ({ success: e, fail: t, complete: n } = {}) { try { Ve(), S(e), S(n) } catch (e) { S(t, { errCode: -1, errMsg: e.message }) } return Promise.resolve() } function Ue ({ count: e = 9, sizeType: t = ['original', 'compressed'], sourceType: n, success: r, fail: a, complete: o } = {}) { C('chooseImage', { count: e, sizeType: t, sourceType: n }, r, a, o) } async function ze ({ src: e, success: t, fail: n, complete: r } = {}) { let a = e; /^http/i.exec(e) && await new Promise((t, n) => { ye({ url: e, success (e) { a = e.tempFilePath, t() }, fail (e) { console.error(e), n(e) } }) }), await C('getImageInfo', { src: a }, t, n, r) } async function Ge ({ filePath: e, success: t, fail: n, complete: r } = {}) { let a = e; /^http/i.exec(e) && await new Promise((t, n) => { ye({ url: e, success (e) { a = e.tempFilePath, t() }, fail (e) { console.error(e), n(e) } }) }), await C('saveImageToPhotosAlbum', { filePath: a }, t, n, r) } var $e; const We = Symbol('context'); let Je = (e => t => { e.forEach(e => { t.prototype[e] = function (...t) { this[We][e](...t) } }) })(['play', 'pause', 'stop', 'seek', 'playbackRate', 'requestFullScreen', 'exitFullScreen'])($e = class {constructor (e, t) { this.domId = e, this[We] = window.$createVideoContext(e, t) }}) || $e; function Qe (e, t) { return new Je(e, t) } function He ({ compressed: e = !0, sourceType: t = ['album', 'camera'], maxDuration: n = 60, camera: r = 'back', success: a, fail: o, complete: i } = {}) { C('chooseVideo', { sourceType: t, compressed: e, maxDuration: n, camera: r }, a, o, i) } function Ye ({ count: e, type: t = 'all', extension: n = [], success: r, fail: a, complete: o } = {}) { C('chooseMessageFile', { count: e, type: t, extension: n }, r, a, o) } async function Xe ({ filePath: e, success: t, fail: n, complete: r } = {}) { let a = e; /^http/i.exec(e) && await new Promise((t, n) => { ye({ url: e, success (e) { a = e.tempFilePath, t() }, fail (e) { console.error(e), n(e) } }) }), await C('saveVideoToPhotosAlbum', { filePath: a }, t, n, r) } function Ke () { return window.$createInnerAudioContext() } function Ze ({ altitude: e, success: t, complete: n, fail: r } = {}) { navigator.geolocation ? navigator.geolocation.getCurrentPosition(e => { S(t, e.coords), S(n, e.coords) }, e => { S(r, { errCode: e.code, errMsg: e.message }), S(n, { errCode: e.code, errMsg: e.message }) }, { enableHighAcuracy: e }) : (S(r, { errCode: -1, errMsg: '当前设备暂不支持获取位置信息' }), S(n, { errCode: -1, errMsg: '当前设备暂不支持获取位置信息' }), console.error('当前设备暂不支持获取位置信息')) } const et = Symbol('msgPool'); const tt = Symbol('lock'); const nt = Symbol('nextMessage'); const rt = Symbol('listen'); const at = Symbol('send'); var ot = new class {constructor () { this[tt] = !1, this[nt] = null, this[et] = [], this[rt]() }[rt] () { ce.on('fromApiFeMessage', e => { ce.emit('receiveApiFeMessage', e) }) }[at] (e) { this[tt] ? this[et].push(e) : (this[tt] = !0, e.callback ? (e.data.callback = !0, ce.once('receiveApiFeMessage', t => { this[tt] = !1, S(e.callback, t), this[nt] = this[et].shift(), this[nt] && this[at](this[nt]) }), ce.emit('fromApiBeMessage', e.data)) : (this[tt] = !1, ce.emit('fromApiBeMessage', e.data), this[nt] = this[et].shift(), this[nt] && this[at](this[nt]))) }send (e = '', t = [...{ methodName: '', params: [], create: null, call: null }], n) { if (!e) return void console.error('apiType不能为空'); if (t.length === 0) return; let r = oe.apply(); this[at]({ data: { apiType: e, actions: t, messageid: 'msg' + r }, callback: n }) }}(); const it = Symbol('PromiseList'); class st {constructor () { this.__id = '__' + oe.apply() }static PromiseListPush (e, t) { st[it][e] || (st[it][e] = []), st[it][e].push(t) }static PromiseListGet (e) { return st[it][e] ? st[it][e] : [] }static async PromiseAll (e, t) { let n = st.PromiseListGet(e).splice(0, st.PromiseListGet(e).length); await Promise.all(n).then(n => { ot.send(e, n, t) }).catch(e => { console.error(e) }) }} var ct, lt, ut; ut = {}, (lt = it) in (ct = st) ? Object.defineProperty(ct, lt, { value: ut, enumerable: !0, configurable: !0, writable: !0 }) : ct[lt] = ut; var pt = st; var dt = { getState: function () { let e = {}; return ['fillStyle', 'font', 'globalAlpha', 'lineCap', 'lineDashOffset', 'lineJoin', 'lineWidth', 'miterLimit', 'shadowBlur', 'shadowColor', 'shadowOffsetX', 'shadowOffsetY', 'strokeStyle', 'textAlign', 'textBaseline'].forEach(t => { e[t] = this[t] }), e }, arc: function (e, t, n, r, a, o) { this.arc(e, t, n, r, a, o) }, arcTo: function (e, t, n, r, a) { this.arcTo(e, t, n, r, a) }, beginPath: function () { this.beginPath() }, bezierCurveTo: function (e, t, n, r, a, o) { this.bezierCurveTo(e, t, n, r, a, o) }, clearCanvas: function () { this.clearRect(0, 0, this.canvas.width, this.canvas.height), this.restore(), this.save() }, clearRect: function (e, t, n, r) { this.clearRect(e, t, n, r) }, clip: function () { this.clip() }, closePath: function () { this.closePath() }, createCanvasContext: function (e) { let t = document.getElementById(e).getContext('2d'); return t.save(), t }, createCircularGradient: function (e, t, n) { return this.createRadialGradient(e, t, 0, e, t, n) }, createLinearGradient: function (e, t, n, r) { return this.createLinearGradient(e, t, n, r) }, createPattern: function (e, t) { return this.createPattern(e, t) }, drawImage: function (e, ...t) { this.drawImage(e, ...t) }, drawOver: function () { return !0 }, fill: function () { this.fill() }, fillRect: function (e, t, n, r) { this.fillRect(e, t, n, r) }, fillText: function (e, t, n, r) { this.fillText(e, t, n, r) }, setFont: function (e) { this.font = e }, canvasGetImageData: function (e, t, n, r, a) { let o = document.getElementById(e).getContext('2d').getImageData(t, n, r, a); return { data: o.data, width: o.width, height: o.height } }, canvasPutImageData: function (e, t, n, r, a, o) { const i = document.getElementById(e).getContext('2d'); let s = i.createImageData(a, o); for (var c = 0; c < s.data.length; c += 4)s.data[c + 0] = t[c + 0], s.data[c + 1] = t[c + 1], s.data[c + 2] = t[c + 2], s.data[c + 3] = t[c + 3]; i.putImageData(s, n, r, 0, 0, a, o) }, canvasToTempFilePath: function (e, t, n, r, a, o, i) { const s = document.getElementById(e).getContext('2d').getImageData(t, n, r, a); const c = document.createElement('canvas'); return c.width = r, c.height = a, c.getContext('2d').putImageData(s, 0, 0, 0, 0, r, a), { uri: c.toDataURL('image/' + o, i) } }, lineTo: function (e, t) { this.lineTo(e, t) }, measureText: function (e) { return this.measureText(e) }, moveTo: function (e, t) { this.moveTo(e, t) }, quadraticCurveTo: function (e, t, n, r) { this.quadraticCurveTo(e, t, n, r) }, rect: function (e, t, n, r) { this.rect(e, t, n, r) }, restore: function () { this.restore() }, rotate: function (e) { this.rotate(e) }, save: function () { this.save() }, scale: function (e, t) { this.scale(e, t) }, setFontSize: function (e) { let t = this.font; t = t.replace(/\b[0-9]+px/, e + 'px'), this.font = t }, setFillStyle: function (e) { this.fillStyle = e }, setGlobalAlpha: function (e) { this.globalAlpha = e }, setLineCap: function (e) { this.lineCap = e }, setLineDash: function (e, t) { this.setLineDash(e), this.lineDashOffset = t }, setLineJoin: function (e) { this.lineJoin = e }, setLineWidth: function (e) { this.lineWidth = e }, setMiterLimit: function (e) { this.miterLimit = e }, setShadow: function (e, t, n, r) { e && (this.shadowOffsetX = e), t && (this.shadowOffsetY = t), n && (this.shadowBlur = n), r && (this.shadowColor = r) }, setStrokeStyle: function (e) { this.strokeStyle = e }, setTextAlign: function (e) { this.textAlign = e }, setTextBaseline: function (e) { this.textBaseline = e }, setTransform: function (e, t, n, r, a, o) { this.setTransform(e, n, r, t, a, o) }, stroke: function () { this.stroke() }, strokeRect: function (e, t, n, r) { this.strokeRect(e, t, n, r) }, strokeText: function (e, t, n, r) { this.strokeText(e, t, n, r) }, transform: function (e, t, n, r, a, o) { this.transform(e, n, r, t, a, o) }, translate: function (e, t) { this.translate(e, t) }, addColorStop: function (e, t) { this.addColorStop(e, t) }, getCanvasSize: function (e) { const t = document.getElementById(e).getContext('2d'); return { width: t.canvas.width, height: t.canvas.height } } }; const mt = Symbol('response'); const yt = Symbol('listen'); const ft = Symbol('send'); const gt = Symbol('block'); const ht = Symbol('getOriginParams'); const vt = Symbol('API_INSTANCE'); var bt, wt, St; function kt (e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e }(new class {constructor () { this[gt] = {}, this[yt](), this[vt] = {} }[yt] () { ce.on('fromApiBeMessage', e => { let t = this[mt](e.apiType, e.actions); e.callback && this[ft](Object.assign({}, { errCode: t.errCode, errMsg: t.errMsg, data: t.data })) }) }[ft] (e) { ce.emit('fromApiFeMessage', e) }[ht] (e) { if (b(e)) return e.__id ? this[vt][e.__id] : e; if (w(e)) { for (let t in e)e[t] = this[ht](e[t]); return e } return e }[mt] (e, t) { let n = { errCode: 0, errMsg: '', data: null }; return t.map(t => { this[gt][e][t.methodName] || console.error(t.methodName + ' not exist in fe apis ~'); try { let r = this[ht](t.params); t.create && t.call ? n.data = this[vt][t.create.__id] = this[gt][e][t.methodName].call(this[vt][t.call.__id], ...r) : t.create ? n.data = this[vt][t.create.__id] = this[gt][e][t.methodName](...r) : t.call ? n.data = this[gt][e][t.methodName].call(this[vt][t.call.__id], ...r) : n.data = this[gt][e][t.methodName](...r), n.errCode = 0, n.errMsg = 'success' } catch (e) { console.error(e), n.errCode = 1, n.errMsg = e.message } }), n }bind (e, t) { this[gt][e] = t }}()).bind('canvas', dt); const Ct = 'canvas'; const xt = Symbol('clearCanvas'); const Pt = Symbol('setFont'); const Ft = Symbol('getState'); let Mt = {}; function Tt (e, t) { let n; Mt[e] ? (n = Mt[e], S(t, n)) : (n = document.createElement('img'), n.setAttribute('src', e), n.onload = () => { Mt[e] = n, S(t, n) }) } const jt = e => function (...t) { let n = this; pt.PromiseListPush(Ct, new Promise((r, a) => { e === 'drawImage' ? /^[a-z]{1}:/i.exec(t[0]) ? console.error('Local resources are not allowed to be loaded') : Mt[t[0]] ? (t[0] = typeof Mt[t[0]] === 'string' ? Mt[Mt[t[0]]] : Mt[t[0]], r({ methodName: e, params: t, create: null, call: this })) : t[0].indexOf('http') !== -1 ? ye({ url: t[0], success (a) { Mt[t[0]] = a.tempFilePath, Tt(a.tempFilePath, a => { t[0] = a, r({ methodName: e, params: t, create: null, call: n }) }) }, fail () { a({ msg: `download image ${t[0]} fail` }) } }) : Tt(t[0], a => { t[0] = a, r({ methodName: e, params: t, create: null, call: n }) }) : r({ methodName: e, params: t, create: null, call: this }) })) }; let _t = (e => t => { e.async.forEach(e => { t.prototype[e] = jt(e) }) })({ async: ['arc', 'arcTo', 'beginPath', 'bezierCurveTo', 'clearRect', 'clip', 'closePath', 'drawImage', 'fill', 'fillRect', 'fillText', 'lineTo', 'moveTo', 'quadraticCurveTo', 'rect', 'restore', 'rotate', 'setFillStyle', 'setGlobalAlpha', 'setFontSize', 'setLineCap', 'setLineDash', 'setLineJoin', 'setLineWidth', 'setMiterLimit', 'setShadow', 'setStrokeStyle', 'setTextAlign', 'setTextBaseline', 'setTransform', 'save', 'scale', 'stroke', 'strokeRect', 'strokeText', 'transform', 'translate'], sync: [] })((St = wt = class e extends pt {constructor (e) { super(), this.canvasId = e, this.state = {}, this.__init() }__init () { ot.send(Ct, [{ methodName: 'createCanvasContext', params: [this.canvasId], create: this, call: null }]), this[Ft](), e.self = this, e.hasListenProperty || (e.hasListenProperty = !0, Object.keys(this.state).forEach(t => { let n = t.replace(/^\w/, function (e) { return e.toUpperCase() }); t === 'font' ? Object.defineProperty(this.__proto__, t, { get: () => e.self.state[t], set: n => { let r = e.self; r.state[t] = n, r[Pt] && r[Pt](n) } }) : /shadow/.exec(t) ? this.__proto__.__defineSetter__(t, n => { let r = e.self; let a = { shadowOffsetX: 0, shadowOffsetY: 0, shadowBlur: 0, shadowColor: 'black' }; r.state[t] = a[t] = n, r.setShadow && r.setShadow(...Object.values(a)) }) : this.__proto__.__defineSetter__(t, r => { let a = e.self; a.state[t] = r, a['set' + n] && a['set' + n](r) }) })) }[Ft] () { ot.send(Ct, [{ methodName: 'getState', params: [], create: null, call: this }], e => { e.errCode === 0 && Object.assign(this.state, e.data) }) }draw (e = !1, t) { typeof e === 'function' && (t = e), (e = !0 === e) || this[xt](), pt.PromiseAll(Ct, () => { this[Ft](), S(t) }).catch(e => { console.error(e.msg) }) }measureText (e) { return new qt([e], this) }[xt] () { ot.send(Ct, [{ methodName: 'clearCanvas', params: [], create: null, call: this }]) }[Pt] (e) { pt.PromiseListPush(Ct, new Promise((t, n) => { t({ methodName: 'setFont', params: [e], create: '', call: this }) })) }createCircularGradient (e, t, n) { return new At('circularGradient', [e, t, n], this) }createLinearGradient (e, t, n, r) { return new At('linearGradient', [e, t, n, r], this) }createPattern (e, t) { return new It([e, t], this) }}, kt(wt, 'hasListenProperty', !1), kt(wt, 'self', null), bt = St)) || bt; class qt extends pt {constructor (e, t) { super(), this.width = 0, this.__init(e, t) }__init (e, t) { ot.send(Ct, [{ methodName: 'measureText', params: e, create: this, call: t }], e => { e.errCode === 0 && (this.width = e.data.width) }) }} class At extends pt {constructor (e, t, n) { super(), this.type = e, this.data = t, this.color = [], this.__init(e, t, n) }__init (e, t, n) { let r = e === 'linearGradient' ? 'createLinearGradient' : 'createCircularGradient'; pt.PromiseListPush(Ct, new Promise((e, a) => { e({ methodName: r, params: t, create: this, call: n }) })) }addColorStop (...e) { this.color.push({ color: e[1], stop: e[0] }), pt.PromiseListPush(Ct, new Promise((t, n) => { t({ methodName: 'addColorStop', params: e, create: '', call: this }) })) }} class It extends pt {constructor (e, t) { super(), this.image = e[0], this.repetition = e[1], this.__init(e, t) }__init (e, t) { let n = this; pt.PromiseListPush(Ct, new Promise((r, a) => { Tt(e[0], a => { e[0] = a, r({ methodName: 'createPattern', params: e, create: n, call: t }) }) })) }} function Ot (e, t) { return new _t(e) } function Et (e, t) { const { canvasId: n, x: r, y: a, width: o, height: i, success: s, fail: c, complete: l } = e; try { ot.send(Ct, [{ methodName: 'canvasGetImageData', params: [n, r, a, o, i], create: null, call: null }], e => { if (e.errCode === 0) { let t = { width: e.data.width, height: e.data.height, data: e.data.data }; S(s, t), S(l, t) } else S(c, e), S(l, e) }) } catch (e) { const t = { errCode: -1, errMsg: e.message }; S(c, t), S(l, t) } } function Lt (e, t) { const { canvasId: n, x: r, y: a, width: o, height: i, data: s, success: c, fail: l, complete: u } = e; try { ot.send(Ct, [{ methodName: 'canvasPutImageData', params: [n, s, r, a, o, i], create: null, call: null }], e => { e.errCode === 0 ? (S(c, e.data), S(u, e.data)) : (S(l, e), S(u, e)) }) } catch (e) { const t = { errCode: -1, errMsg: e.message }; S(l, t), S(u, t) } } function Rt (e, t) { let{ canvasId: n, x: r, y: a, width: o, height: i, destWidth: s, destHeight: c, fileType: l, quality: u, success: p, fail: d, complete: m } = e; try { ot.send(Ct, [{ methodName: 'getCanvasSize', params: [n], create: null, call: null }], e => { if (e.errCode === 0) { let t = e.data; let y = t.width; let f = t.height; let g = self.devicePixelRatio || 1; r = r || 0, a = a || 0, o = o || y - r, i = i || f - a, s = s || o / g, c = c || i / g, l = l || 'png', ot.send(Ct, [{ methodName: 'canvasToTempFilePath', params: [n, r, a, o, i, l, u], create: null, call: null }], e => { e.errCode === 0 ? C('canvasToTempFilePath', { encoding: 'base64', data: e.data.uri }, p, d, m) : (S(d, e), S(m, e)) }) } else S(d, e), S(m, e) }) } catch (e) { const t = { errCode: -1, errMsg: e.message }; S(d, t), S(m, t) } } function Dt (e) { return (t, n) => { t.errMsg && console.error(t.errMsg), S(e, n) } } const Nt = new class {access ({ path: e, success: t, fail: n, complete: r } = {}) { C('FileSystemManager.access', { path: e }, t, Dt(n), r) }accessSync (e) { return x('FileSystemManager.accessSync', { path: e }, !0, !0) }appendFile ({ filePath: e, data: t, encoding: n, success: r, fail: a, complete: o } = {}) { C('FileSystemManager.appendFile', { filePath: e, data: t, encoding: n }, r, Dt(a), o) }appendFileSync (e, t, n) { return x('FileSystemManager.appendFileSync', { filePath: e, data: t, encoding: n }) }copyFile ({ srcPath: e, destPath: t, success: n, fail: r, complete: a } = {}) { C('FileSystemManager.copyFile', { srcPath: e, destPath: t }, n, Dt(r), a) }copyFileSync (e, t) { return x('FileSystemManager.copyFileSync', { srcPath: e, destPath: t }) }getFileInfo ({ filePath: e, success: t, fail: n, complete: r } = {}) { C('FileSystemManager.getFileInfo', { filePath: e }, t, Dt(n), r) }getSavedFileList ({ success: e, fail: t, complete: n } = {}) { C('FileSystemManager.getSavedFileList', {}, e, Dt(t), n) }mkdir ({ dirPath: e, success: t, fail: n, complete: r } = {}) { C('FileSystemManager.mkdir', { dirPath: e }, t, Dt(n), r) }mkdirSync (e) { return x('FileSystemManager.mkdirSync', { dirPath: e }) }readdir ({ dirPath: e, success: t, fail: n, complete: r } = {}) { C('FileSystemManager.readdir', { dirPath: e }, t, Dt(n), r) }readdirSync (e) { const t = x('FileSystemManager.readdirSync', { dirPath: e }); if (t) return t.files }readFile ({ filePath: e, encoding: t, success: n, fail: r, complete: a } = {}) { C('FileSystemManager.readFile', { filePath: e, encoding: t }, e => { S(n, { data: e }) }, Dt(r), a, !1) }readFileSync (e, t) { return x('FileSystemManager.readFileSync', { filePath: e, encoding: t }, !1) }removeSavedFile ({ filePath: e, success: t, fail: n, complete: r } = {}) { C('FileSystemManager.removeSavedFile', { filePath: e }, t, Dt(n), r) }rename ({ oldPath: e, newPath: t, success: n, fail: r, complete: a } = {}) { C('FileSystemManager.rename', { oldPath: e, newPath: t }, n, Dt(r), a) }renameSync (e, t) { return x('FileSystemManager.renameSync', { oldPath: e, newPath: t }) }rmdir ({ dirPath: e, recursive: t, success: n, fail: r, complete: a } = {}) { C('FileSystemManager.rmdir', { dirPath: e, recursive: t }, n, Dt(r), a) }rmdirSync (e, t) { const n = x('FileSystemManager.rmdirSync', { dirPath: e, recursive: t }); if (n) return n.savedFilePath }saveFile ({ filePath: e, tempFilePath: t, success: n, fail: r, complete: a } = {}) { C('FileSystemManager.saveFile', { filePath: e, tempFilePath: t }, n, Dt(r), a) }saveFileSync (e, t) { return x('FileSystemManager.saveFileSync', { tempFilePath: e, filePath: t }) }stat ({ path: e, recursive: t, success: n, fail: r, complete: a } = {}) { C('FileSystemManager.stat', { path: e, recursive: t }, n, Dt(r), a) }statSync (e, t) { const n = x('FileSystemManager.statSync', { path: e, recursive: t }); if (n) return n.stats }unlink ({ filePath: e, success: t, fail: n, complete: r } = {}) { C('FileSystemManager.unlink', { filePath: e }, t, Dt(n), r) }unlinkSync (e) { return x('FileSystemManager.unlinkSync', { filePath: e }) }unzip ({ zipFilePath: e, targetPath: t, success: n, fail: r, complete: a } = {}) { C('FileSystemManager.unzip', { zipFilePath: e, targetPath: t }, n, Dt(r), a) }writeFile ({ filePath: e, data: t, encoding: n, success: r, fail: a, complete: o } = {}) { C('FileSystemManager.writeFile', { filePath: e, data: t, encoding: n }, r, Dt(a), o) }writeFileSync (e, t, n) { return x('FileSystemManager.writeFileSync', { filePath: e, data: t, encoding: n }) }}(); function Vt () { return Nt } function Bt (e = {}) { return Nt.saveFile(e) } function Ut (e = {}) { return Nt.removeSavedFile(e) } function zt (e = {}) { const { filePath: t, fileType: n, success: r, fail: a, complete: o } = e; C('openDocument', { filePath: t, fileType: n }, r, Dt(a), o) } function Gt (e = {}) { return Nt.getSavedFileList(e) } function $t (e = {}) { const { filePath: t, success: n, fail: r, complete: a } = e; C('getSavedFileInfo', { filePath: t }, n, Dt(r), a) } function Wt (e = {}) { return Nt.getFileInfo(e) } function Jt ({ success: e, complete: t, fail: n } = {}) { C('login', '', t => { const n = { code: t.auth_code }; S(e, n) }, n, t) } function Qt () { return window.senative.callsync('isLoginSync') === 'true' } function Ht ({ success: e, complete: t, fail: n } = {}) { C('checkSession', '', e, n, t) } function Yt ({ success: e, complete: t, fail: n } = {}) { C('showLoginException', '', e, n, t) } function Xt ({ list: e = [], success: t, complete: n, fail: r } = {}) { const a = []; e.forEach(e => { window[`_${e.eventId}Callback`] = e.callback, a.push({ event_id: e.eventId, function_name: `_${e.eventId}Callback()` }) }), C('registerEvent', { list: a }, t, r, n) } function Kt ({ success: e, complete: t, fail: n } = {}) { C('getUserInfo', '', e, n, t) } function Zt ({ success: e, complete: t, fail: n } = {}) { C('getM2', '', e, n, t) } function en () { return x('getM2Sync', {}, !1) } function tn ({ scope: e, success: t, complete: n, fail: r } = {}) { C('authorize', { scope: e }, t, r, n) } function nn ({ success: e, complete: t, fail: n } = {}) { C('openSetting', '', e, n, t) } function rn ({ success: e, complete: t, fail: n } = {}) { C('getSetting', '', e, n, t) } function an ({ appId: e, path: t, extraData: n = {}, envVersion: r = 'release', success: a, fail: o, complete: i } = {}) { C('navigateToMiniProgram', { appId: e, path: t ? `#/${t}` : '', extraData: escape(JSON.stringify(n)), envVersion: r }, a, o, i) } function on ({ extraData: e = {}, success: t, fail: n, complete: r } = {}) { C('navigateBackMiniProgram', { extraData: escape(JSON.stringify(e)) }, t, n, r) } function sn ({ success: e, complete: t, fail: n } = {}) { C('getSystemInfo', '', e, n, t) } function cn () { return x('getSystemInfoSync', {}) } function ln () { return x('getSeAppInfoSync', {}) } function un ({ success: e, fail: t, complete: n } = {}) { C('hideShareMenu', '', e, t, n) } function pn ({ success: e, fail: t, complete: n } = {}) { C('showShareMenu', '', e, t, n) } const dn = {}; function mn (e) { let t = dn[e]; return t || (t = { id: 1, callbacks: Object.create(null) }, dn[e] = t), { get: e => t.callbacks[e], pop (e) { const n = t.callbacks[e]; return n && delete t.callbacks[e], n }, push (e) { const n = t.id++; return t.callbacks[n] = e, n } } } function yn (e = {}) { const t = JSON.parse(JSON.stringify(e)); const n = Object.keys(t); const r = n.length; if (r) for (let e = 0; e < r; e++) { const r = n[e]; const a = r.length; if (r.substr(0, 1) === 'v' && (a === 9 || a === 10)) { delete t[r]; break } } return t } const fn = mn('requestComponentInfo'); function gn (e) { return typeof e === 'function' } function hn ({ reqId: e, reqs: t }) { const n = []; t.forEach(function ({ component: e, selector: t, single: r, fields: a }) { e === 0 ? n.push(function (e) { const t = {}; e.id && (t.id = ''); e.dataset && (t.dataset = {}); e.rect && (t.left = 0, t.right = 0, t.top = 0, t.bottom = 0); e.size && (t.width = document.documentElement.clientWidth, t.height = document.documentElement.clientHeight); e.scrollOffset && (t.scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft || 0, t.scrollTop = document.documentElement.scrollTop || document.body.scrollTop || 0); return t }(a)) : n.push(function (e, t, n, r) { const a = e ? e.$el : window.getApp() ? window.getApp().$el : window.app; if (n) { const e = a && (a.matches(t) ? a : a.querySelector(t)); return e ? vn(e, r) : null } if (a) { let e = []; const n = a.querySelectorAll(t); return n && n.length && (e = [].map.call(n, e => vn(e, r))), a.matches(t) && e.unshift(a), e } return [] }(e, t, r, a)) }); const r = fn.pop(e); r && r(n) } function vn (e, t) { const n = {}; if (t.id && (n.id = e.id), t.dataset && (n.dataset = yn(e.dataset || {})), t.rect || t.size) { const r = e.getBoundingClientRect(); t.rect && (n.left = r.left, n.right = r.right, n.top = r.top, n.bottom = r.bottom), t.size && (n.width = r.width, n.height = r.height) } if (t.properties && t.properties.forEach(t => { t = t.replace(/-([a-z])/g, function (e, t) { return t.toUpperCase() }); const r = e.getAttribute(t); r && (n[t] = r) }), t.scrollOffset && (e.__vue__ && e.__vue__._getScrollPosition ? Object.assign(n, e.__vue__._getScrollPosition()) : (n.scrollLeft = 0, n.scrollTop = 0)), t.computedStyle) { const r = window.getComputedStyle(e); t.computedStyle.forEach(e => { const t = e.replace(/([A-Z])/g, function (e, t) { return '-' + t.toLowerCase() }); const a = r.getPropertyValue(t); a && (n[e] = a) }) } return n } class bn {constructor () { this._defaultWebviewId = null, this._webviewId = null, this._queue = [], this._queueCb = [], this._component = null }in (e) { return this._component = e, this }select (e) { return typeof e === 'string' && (e = e.replace('>>>', '>')), new wn(this._component, e, this, !0) }selectAll (e) { return typeof e === 'string' && (e = e.replace('>>>', '>')), new wn(this._component, e, this, !1) }selectViewport () { return new wn(0, '', this, !0) }_exec (e, t) { hn({ reqId: fn.push(t), reqs: e }) }exec (e) { this._exec(this._queue, t => { const n = this._queueCb; t.forEach((e, t) => { const r = n[t]; gn(r) && r.call(this, e) }), gn(e) && e.call(this, t) }) }_push (e, t, n, r, a = null) { this._queue.push({ component: t, selector: e, single: n, fields: r }), this._queueCb.push(a) }} class wn {constructor (e, t, n, r) { this._component = e, this._selector = t, this._selectorQuery = n, this._single = r }boundingClientRect (e) { const { _selector: t, _component: n, _single: r, _selectorQuery: a } = this; return a._push(t, n, r, { id: !0, dataset: !0, rect: !0, size: !0 }, e), a }scrollOffset (e) { const { _selector: t, _component: n, _single: r, _selectorQuery: a } = this; return a._push(t, n, r, { id: !0, dataset: !0, scrollOffset: !0 }, e), a }fields (e, t) { const { _selector: n, _component: r, _single: a, _selectorQuery: o } = this; const { id: i, dataset: s, rect: c, size: l, scrollOffset: u, properties: p = [], computedStyle: d = [] } = e; return o._push(n, r, a, { id: i, dataset: s, rect: c, size: l, scrollOffset: u, properties: p, computedStyle: d }, t), o }} function Sn () { return new bn() } const kn = mn('requestComponentObserver'); function Cn (e) { return { bottom: e.bottom, height: e.height, left: e.left, right: e.right, top: e.top, width: e.width } } const xn = {}; function Pn ({ reqId: e, reqEnd: t, res: n }) { const r = kn.get(e); if (r) { if (t) return void kn.pop(e); r(n) } } const Fn = { thresholds: [1e-8], initialRatio: 0, observeAll: !1 }; class Mn {constructor (e) { this.options = Object.assign({}, Fn, e) }_makeRootMargin (e = {}) { this.options.rootMargin = ['top', 'right', 'bottom', 'left'].map(t => `${Number(e[t]) || 0}px`).join(' ') }relativeTo (e, t) { return this.options.relativeToSelector = e, this._makeRootMargin(t), this }relativeToViewport (e) { return this.options.relativeToSelector = null, this._makeRootMargin(e), this }observe (e, t) { if (typeof t === 'function') return this.options.selector = e, this.reqId = kn.push(t), (function ({ reqId: e, options: t }) { const n = document; const r = t.relativeToSelector ? n.querySelector(t.relativeToSelector) : null; let a = xn[e] = new IntersectionObserver((t, n) => { t.forEach(t => { Pn({ reqId: e, res: { intersectionRatio: t.intersectionRatio, intersectionRect: Cn(t.intersectionRect), boundingClientRect: Cn(t.boundingClientRect), relativeRect: Cn(t.rootBounds), time: Date.now(), dataset: yn(t.target.dataset || {}), id: t.target.id } }) }) }, { root: r, rootMargin: t.rootMargin, threshold: t.thresholds }); t.observeAll ? (a.USE_MUTATION_OBSERVER = !0, Array.prototype.map.call(n.querySelectorAll(t.selector), e => { a.observe(e) })) : (a.USE_MUTATION_OBSERVER = !1, a.observe(n.querySelector(t.selector))) }({ reqId: this.reqId, options: this.options })), this }disconnect () { !(function ({ reqId: e }) { const t = xn[e]; t && (t.disconnect(), Pn({ reqId: e, reqEnd: !0 })) }({ reqId: this.reqId })) }} function Tn (e, t) { return new Mn(t) } const jn = [['AD_AUTO_LOAD_FAILED', -2e3, '广告自动加载失败'], ['AD_USE_BEFORE_LOADED', -2001, '请确保广告成功加载后再试'], ['AD_LOAD_FAILED', -2002, '广告加载失败']].reduce((e, t) => Object.assign(e, { [t[0]]: { errCode: t[1], errMsg: t[2] } }), {}); function _n (e, t = {}) { const { errCode: n, errMsg: r } = jn[e] || {}; return { errCode: n, errMsg: r } } var qn; const An = 'https://mp.360.cn/component_pages/reward_video.html'; const In = Symbol('__loadStatus'); let On = null; window.__RewardedVideoAdEvent = function (e, t) { if (t.errCode === 0 && e === 'onClose') { let e = t.data.currentTime === t.data.duration; ce.emit('RewardedVideoAdOnClose', { isEnded: e, currentTime: t.data.currentTime, duration: t.data.duration }) } else t.errCode === 0 && e === 'onLoad' ? (ce.emit('RewardedVideoAdOnLoad'), ce.emit('RewardedVideoAdOnComplete_inner', 'success')) : e === 'onError' && (ce.emit('RewardedVideoAdOnError', { errMsg: t.errMsg, errCode: t.errCode }), ce.emit('RewardedVideoAdOnComplete_inner', 'fail')) }; let En = (e => t => { e.forEach(e => { t.prototype[e] = function (...t) { if (On) return this[`__${e}`](...t); console.error('RewardedVideoAd instance has been destroyed, please recreate') } }) })(['show', 'load', 'destroy', 'onLoad', 'offLoad', 'onError', 'offError', 'onClose', 'offClose'])(qn = class e extends class {__show () { return new Promise((e, t) => { this[In] === 1 ? ce.once('RewardedVideoAdOnComplete_inner', n => { n === 'success' ? (C('ShowRewardedVideoAd'), e()) : t(_n('AD_AUTO_LOAD_FAILED')) }) : this[In] === 2 ? (C('ShowRewardedVideoAd'), e()) : t(_n('AD_USE_BEFORE_LOADED')) }) }__load () { return new Promise((e, t) => { this[In] !== 2 ? (this[In] !== 1 && (this[In] = 1, C('LoadRewardedVideoAd', { url: An + '?adUnitId=' + this.id, adeventcallback: '__RewardedVideoAdEvent' })), ce.once('RewardedVideoAdOnComplete_inner', n => { n === 'success' ? (this[In] = 2, e()) : (this[In] = 3, t(_n('AD_LOAD_FAILED'))) })) : e() }) }__destroy () { this.__unbindAll(), On = null, C('DestroyRewardedVideoAd') }__onLoad (e) { ce.on('RewardedVideoAdOnLoad', e) }__offLoad (e) { ce.off('RewardedVideoAdOnLoad', e) }__onError (e) { ce.on('RewardedVideoAdOnError', e) }__offError (e) { ce.off('RewardedVideoAdOnError', e) }__onClose (e) { ce.on('RewardedVideoAdOnClose', e) }__offClose (e) { ce.off('RewardedVideoAdOnClose', e) }__unbindAll () { ce.off('RewardedVideoAdOnLoad', !0), ce.off('RewardedVideoAdOnError', !0), ce.off('RewardedVideoAdOnClose', !0), ce.off('RewardedVideoAdOnComplete_inner', !0) }} {static getInstance (t) { return On && On.__destroy(), On = new e(t), On }constructor (e) { super(), this.id = e, this[In] = 0, ce.on('RewardedVideoAdOnClose', () => { this[In] = 0 }), this.__load().then().catch(() => {}) }}) || qn; function Ln ({ adUnitId: e }) { return En.getInstance(e) } function Rn () { try { let e = x('getLaunchOptionsSync'); if (e && (e.referrerInfo && e.referrerInfo.extraData && (e.referrerInfo.extraData = JSON.parse(unescape(e.referrerInfo.extraData))), e.path && e.path.indexOf('?') !== -1)) { const t = e.path.slice(e.path.indexOf('?')); e.query = (function (e) { return JSON.parse('{"'.concat(decodeURIComponent(e.substring(1)).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"'), '"}')) }(t)) } return e } catch (e) { console.error('getLaunchOptionsSync failed') } } const Dn = F.reduce((e, t) => (t.private && (e[t.name] = t.private), e), {}); const Nn = F.reduce((e, t) => (t.args && (e[t.name] = t.args), e), {}); function Vn (e, t, n) { typeof t === 'string' ? console.error(e + ' 参数错误: the property ' + t + ' of argument Object ' + n) : (t += 1, console.error(e + ' 参数错误: argument ' + t + ' ' + n)) } function Bn (e, t, n, r) { return void 0 === r ? !n.required || (Vn(e, t, 'is required'), !1) : !!(function (e, t, n, r = '') { let a = r.toLowerCase().split('|').some(e => { switch (e) { case 'string':case 'number':case 'boolean':case 'function':case 'undefined':case 'null':case 'symbol':return typeof n === e; case 'any':return !0; case 'array':return w(n); case 'object':return b(n); case 'uint8clampedarray':return n instanceof Uint8ClampedArray; case 'arraybuffer':return n instanceof ArrayBuffer; default:return !0 } }); if (!a) { const a = /\b(\w+)]/.exec(toString.call(n)); Vn(e, t, `can only be ${r} type, but provided a ${a && a[1] || 'unknown type'}`) } return a }(e, t, r, n.type)) && (n.value && n.value.indexOf(r) === -1 ? (Vn(e, t, 'is assigned a illegal parameter value, please search in the online document for a correct value'), !1) : n.type.toLowerCase() !== 'object' || typeof n.key !== 'object' || Object.entries(n.key).every(t => Bn(e, t[0], t[1], r[t[0]]))) } const Un = { auth: function (e, t, n) { return A(e) || Dn[e] || console.error(`Due to version issues, your browser does not support the api < ${e} >, please update browser or seek the online document for help!`), n }, log: function (e, t, n) { return n }, params: function (e, t, n) { return Nn[e] && Nn[e].map((n, r) => { Bn(e, r, n, t[r]) }), n }, promise: function (e, t, n, r) { return t.length === 0 ? n : t[0] && (t[0].success || t[0].fail || t[0].complete) ? n : (...e) => new Promise((t, a) => { const o = e[0].success; const i = e[0].fail; e[0].success = function (...e) { o && o(...e), t(...e) }, e[0].fail = function (...e) { i && i(...e), a(...e) }, n.call(r, ...e) }) } }; const zn = {}; const Gn = {}; const $n = {}; const Wn = {}; function Jn (e, t, n, r) { return Gn[e].reduce((n, a) => Un[a] ? Un[a](e, t, n, r) : n, n) }F.map(e => { !e.middleware || w(e.middleware) ? (zn[e.name] = !0, Gn[e.name] = e.middleware || null, $n[e.name] = e.throw || null, Wn[e.name] = e.create || null) : console.error('请使用数组定义api所需的中间件配置!') }); t.default = (function e (t, n) { return new Proxy(t, { get: (t, r) => { if (typeof r === 'string' && typeof t[r] === 'function') { const a = n ? n + '.' + r : r; return zn[a] && Gn[a] ? (...n) => { let o; if ($n[a]) return o = Jn(a, n, t[r], t).call(t, ...n), Wn[a] && (o = e(o, Wn[a])), o; try { return o = Jn(a, n, t[r], t).call(t, ...n), Wn[a] && (o = e(o, Wn[a])), o } catch (e) { console.error(e) } } : t[r] } return t[r] } }) }(Object.assign({}, r, a, o, i, s, c, l, u, p, d, y, m, f, g, h))) }])).default }))