{"version":3,"sources":["weixinsdk.js"],"names":["mixin","source","p","args","Array","prototype","slice","call","arguments","target","shift","loadJs","url","callback","node","doc","createElement","charset","listen","async","src","baseElement","head","insertBefore","appendChild","onload","onerror","onreadystatechange","removeChild","test","readyState","upperCaseup","str","replace","first","toUpperCase","MicroMessengerSdk","options","agent","singleton","this","defaultConfig","debug","title","DEFAULT_TITLE","link","DEFAULT_LINK","imgUrl","DEFAULT_IMG","desc","getDescription","setShareObject","signature","ready","win","window","document","ued","getElementsByTagName","documentElement","MM_SDK_URL","location","href","eventStore","mmSdk","wx","navigator","userAgent","getShareObject","shareObject","object","self","initEvents","registerEvents","onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ","onMenuShareQZone","onMenuShareWeibo","event","events","eventType","res","shareType","errMsg","split","fire","original","getSdk","done","apply","seajs","use","getBaseConfig","_signature","weiXinReady","jsApiList","config","getSignature","data","createAppUrl","callbackName","APP_URL","encodeURIComponent","Math","random","toString","substr","setTimeout","undefined","content","metas","i","length","name","getAttribute","on","fn","push","off","fnList","splice","parameter","returned","weixinSdkInit","mesConfig"],"mappings":"CAAA,WAwBE,SAASA,IAIP,IAHA,IAEEC,EAAQC,EAFNC,EAAOC,MAAMC,UAAUC,MAAMC,KAAKC,UAAW,GAC/CC,EAASN,EAAKO,QAERT,EAASE,EAAKO,SACpB,IAAKR,KAAKD,EACRQ,EAAOP,GAAKD,EAAOC,GAGvB,OAAOO,EAGT,SAASE,EAAOC,EAAKC,GACnB,IAAIC,EAAOC,EAAIC,cAAc,UAC7BF,EAAKG,QAAU,QACfC,EAAOJ,EAAMD,GACbC,EAAKK,OAAQ,EACbL,EAAKM,IAAMR,EACXS,EACEC,EAAKC,aAAaT,EAAMO,GACxBC,EAAKE,YAAYV,GAGrB,SAASI,EAAOJ,EAAMD,GAGpB,SAASY,IACPX,EAAKW,OAASX,EAAKY,QAAUZ,EAAKa,mBAAqB,KACvDL,EAAKM,YAAYd,GACjBA,EAAO,KACPD,GAAYA,IANM,WAAYC,EAS9BA,EAAKW,OAASA,EAEdX,EAAKa,mBAAqB,WACpB,kBAAkBE,KAAKf,EAAKgB,aAC9BL,KAMR,SAASM,EAAYC,GACnB,OAAOA,EAAIC,QAAQ,UAAW,SAASD,EAAKE,GAC1C,OAAOA,EAAMC,gBAIjB,SAASC,EAAkBC,GACzB,IAAIC,EAAQC,GAAaC,KACrBC,EAAgBH,EAAMD,UACxBK,OAAO,EACPC,MAAOC,EACPC,KAAMC,EACNC,OAAQC,EACRC,KAAMT,KAAKU,kBAAoBJ,GAYjC,OATAT,EAAUC,EAAMD,QAAUrC,EAAMyC,EAAeJ,GAE/CC,EAAMa,gBACJR,MAAON,EAAQM,MACfE,KAAMR,EAAQQ,KACdE,OAAQV,EAAQU,OAChBE,KAAMZ,EAAQY,OAEhBV,EAAYD,EA1Fd,IAaEc,EACAC,EACAd,EAfEe,EAAMC,OACRxC,EAAMuC,EAAIE,SACVC,OAAM,IAAuBH,EAAIG,IAAMH,EAAIG,IAAMH,EAAIG,OACrDnC,EAAOP,EAAIO,MAAQP,EAAI2C,qBAAqB,QAAQ,IAAM3C,EAAI4C,gBAC9DtC,EAAcC,EAAKoC,qBAAqB,QAAQ,GAGhDE,EAAa,2CACbhB,EAAgB7B,EAAI4B,MACpBG,EAAeQ,EAAIO,SAASC,KAC5Bd,EAAc,0DACde,KACAC,EAAQV,EAAIW,GAMT,kBAAkBpC,KAAKqC,UAAUC,YA4EtC/B,EAAkB/B,WAEhB+D,eAAgB,WACd,OAAO5B,KAAK6B,aAGdlB,eAAgB,SAASmB,GACvB,IAAIC,EAAO/B,KACX+B,EAAKF,YAAcE,EAAKF,gBACxBrE,EAAMuE,EAAKF,YAAaC,GAEnBC,EAAKC,aACRhC,KAAKiC,eAAejC,KAAK6B,aACzBE,EAAKC,YAAa,GAGpBD,EAAKlB,MAAM,WACTW,EAAMU,oBAAoBH,EAAKF,aAC/BL,EAAMW,sBAAsBJ,EAAKF,aACjCL,EAAMY,cAAcL,EAAKF,aACzBL,EAAMa,iBAAiBN,EAAKF,aAC5BL,EAAMc,iBAAiBP,EAAKF,gBAQhCI,eAAgB,SAASJ,GAIvB,IAHA,IACEU,EADER,EAAO/B,KAETwC,GAAU,UAAW,OAAQ,WAAY,SAAU,WAC7CD,EAAQC,EAAOtE,SACrB2D,EAAYU,GAAS,SAAUE,GAC7B,OAAO,SAASC,GACd,IAAIC,EAAYD,EAAIE,OAASF,EAAIE,OAAOC,MAAM,KAAK,GAAK,GACxDF,GAAaA,EAAYpD,EAAYkD,GAAaA,EAClDV,EAAKe,KAAKH,GACRF,UAAWA,EACXE,UAAWA,EACXI,SAAU/E,aAPK,CAUlBuE,IAIPS,OAAQ,SAAS3E,GACf,IACE4E,EADElB,EAAO/B,KAENwB,EAeHyB,EAAKzB,IAdLyB,EAAO,SAASxB,GACdD,EAAQC,EACRpD,GAAYA,EAAS6E,MAAMnB,EAAMP,IAE/BV,EAAIqC,MACNrC,EAAIqC,MAAMC,IAAIhC,EAAY,SAASK,GACjCwB,EAAKxB,KAGPtD,EAAOiD,EAAY,WACjB6B,EAAKnC,EAAIW,QAQjBZ,MAAO,SAASxC,GACd,IAAI0D,EAAO/B,KACX+B,EAAKiB,OAAO,WACVjB,EAAKsB,cAAc,SAASC,GAC1BvB,EAAKwB,YAAYD,EAAYjF,QAKnCkF,YAAa,SAASD,EAAYjF,GAC3BwC,EA+CHxC,GAAYA,EAASmD,IA9CrB8B,EAAWpD,MAAQF,KAAKH,QAAQK,MAChCoD,EAAWE,WACT,aACA,sBACA,wBACA,gBACA,mBACA,mBACA,gBACA,gBACA,yBACA,yBACA,iBACA,cACA,aACA,mBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,eACA,cACA,gBACA,iBACA,eACA,cACA,iBACA,iBACA,cACA,aACA,cACA,0BACA,UACA,aACA,YAEF5C,EAAY0C,EACZ9B,EAAMiC,OAAOH,GACb9B,EAAMX,MAAM,WACVA,GAAQ,EACRxC,GAAYA,EAASmD,OAO3B6B,cAAe,SAAShF,GAClBuC,EACFvC,GAAYA,EAASuC,GAErBZ,KAAK0D,aAAa,KAAM,SAASC,GAC/BtF,GAAYA,EAASsF,MAK3BC,aAAc,SAASC,EAAczF,GACnC,MAAO0F,6CACUD,EACf,kBACUE,mBAAmB3F,GAAOiD,SAASC,KAAKuB,MAAM,KAAK,KAGjEa,aAAc,SAAStF,EAAKC,GAC1B,IAAIwF,EAAe,SAAWG,KAAKC,SAASC,SAAS,IAAIC,OAAO,GAChErD,EAAI+C,GAAgB,SAASF,GAC3BtF,GAAYA,EAASsF,GACrBS,WAAW,WACTtD,EAAI+C,QAAgBQ,GACnB,IAELlG,EAAO6B,KAAK4D,aAAaC,EAAczF,KAGzCsC,eAAgB,WAGd,IAAK,IADD4D,EADAC,EAAQzF,EAAKoC,qBAAqB,QAE7BsD,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAChC,GAAqB,eAAjBD,EAAMC,GAAGE,KAEX,OADAJ,EAAUC,EAAMC,GAAGG,aAAa,YAEvBL,EAAQ7E,QAAQ,KAAK,IAErB,KAIb,OAAO,MAGTmF,GAAI,SAASnC,EAAWoC,GACjBtD,EAAWkB,KACdlB,EAAWkB,OAEK,mBAAPoC,GACTtD,EAAWkB,GAAWqC,KAAKD,IAK/BE,IAAK,SAAStC,EAAWoC,GACvB,IAAIG,EACJ,GAAKzD,EAAWkB,GAGhB,GAAKoC,EAEE,CACLG,EAASzD,EAAWkB,GACpB,IAAK,IAAI+B,EAAI,EAAGA,EAAIQ,EAAOP,OAAQD,IAC7BK,IAAOG,EAAOR,IAChBQ,EAAOC,OAAOT,EAAG,eALdjD,EAAWkB,IAYtBK,KAAM,SAASL,GACb,IAAIuC,EAASzD,EAAWkB,GACpByC,EAAYtH,MAAMC,UAAUC,MAAMC,KAAKC,UAAW,GAClDmH,GAAW,EACf,IAAKH,EACH,OAAO,EAET,IAAK,IAAIR,EAAI,EAAGA,EAAIQ,EAAOP,OAAQD,KACQ,IAArCQ,EAAOR,GAAGtB,MAAM,KAAMgC,KACxBC,GAAW,GAGf,OAAOA,IAKXlE,EAAIrB,kBAAoBA,EAEnBkB,EAAIW,IAAOR,EAAImE,eAClB,IAAIxF,EAAkBkB,EAAIuE,YA1S1BpE,EAAIrB,kBAAoB,aApB5B","file":"../weixinsdk.js","sourcesContent":["(function() {\r\n  var win = window,\r\n    doc = win.document,\r\n    ued = 'undefined' !== typeof win.ued ? win.ued : win.ued = {},\r\n    head = doc.head || doc.getElementsByTagName('head')[0] || doc.documentElement,\r\n    baseElement = head.getElementsByTagName('base')[0],\r\n\r\n    APP_URL = '//act.17173.com/weixin/index.php',\r\n    MM_SDK_URL = '//res.wx.qq.com/open/js/jweixin-1.2.0.js',\r\n    DEFAULT_TITLE = doc.title,\r\n    DEFAULT_LINK = win.location.href,\r\n    DEFAULT_IMG = 'https://ue.17173cdn.com/a/module/m/gb/2017/img/logo.png',\r\n    eventStore = {},\r\n    mmSdk = win.wx,\r\n    signature,\r\n    ready,\r\n    singleton;\r\n\r\n  //非微信环境则退出\r\n  if (!/MicroMessenger/i.test(navigator.userAgent)) {\r\n    ued.MicroMessengerSdk = function() {};\r\n    return;\r\n  }\r\n\r\n  function mixin() {\r\n    var args = Array.prototype.slice.call(arguments, 0),\r\n      target = args.shift(),\r\n      source, p;\r\n    while ((source = args.shift())) {\r\n      for (p in source) {\r\n        target[p] = source[p];\r\n      }\r\n    }\r\n    return target;\r\n  }\r\n\r\n  function loadJs(url, callback) {\r\n    var node = doc.createElement('script');\r\n    node.charset = 'utf-8';\r\n    listen(node, callback);\r\n    node.async = true;\r\n    node.src = url;\r\n    baseElement ?\r\n      head.insertBefore(node, baseElement) :\r\n      head.appendChild(node);\r\n  }\r\n\r\n  function listen(node, callback) {\r\n    var supportOnload = 'onload' in node;\r\n\r\n    function onload() {\r\n      node.onload = node.onerror = node.onreadystatechange = null;\r\n      head.removeChild(node);\r\n      node = null;\r\n      callback && callback();\r\n    }\r\n    if (supportOnload) {\r\n      node.onload = onload;\r\n    } else {\r\n      node.onreadystatechange = function() {\r\n        if (/loaded|complete/.test(node.readyState)) {\r\n          onload();\r\n        }\r\n      };\r\n    }\r\n  }\r\n\r\n  function upperCaseup(str) {\r\n    return str.replace(/(^\\w)/ig, function(str, first) {\r\n      return first.toUpperCase();\r\n    });\r\n  }\r\n\r\n  function MicroMessengerSdk(options) {\r\n    var agent = singleton || this;\r\n    var defaultConfig = agent.options || {\r\n      debug: false,\r\n      title: DEFAULT_TITLE,\r\n      link: DEFAULT_LINK,\r\n      imgUrl: DEFAULT_IMG,\r\n      desc: this.getDescription() || DEFAULT_LINK\r\n    };\r\n\r\n    options = agent.options = mixin(defaultConfig, options);\r\n\r\n    agent.setShareObject({\r\n      title: options.title,\r\n      link: options.link,\r\n      imgUrl: options.imgUrl,\r\n      desc: options.desc\r\n    });\r\n    singleton = agent;\r\n    return singleton;\r\n  }\r\n\r\n  MicroMessengerSdk.prototype = {\r\n\r\n    getShareObject: function() {\r\n      return this.shareObject;\r\n    },\r\n\r\n    setShareObject: function(object) {\r\n      var self = this;\r\n      self.shareObject = self.shareObject || {};\r\n      mixin(self.shareObject, object);\r\n\r\n      if (!self.initEvents) {\r\n        this.registerEvents(this.shareObject);\r\n        self.initEvents = true;\r\n      }\r\n\r\n      self.ready(function() {\r\n        mmSdk.onMenuShareTimeline(self.shareObject);\r\n        mmSdk.onMenuShareAppMessage(self.shareObject);\r\n        mmSdk.onMenuShareQQ(self.shareObject);\r\n        mmSdk.onMenuShareQZone(self.shareObject);\r\n        mmSdk.onMenuShareWeibo(self.shareObject);\r\n      });\r\n    },\r\n\r\n    /**\r\n     * (shareTimeline|sendAppMessage|shareQQ|shareQZone|shareWeibo)(Success|Fail|Complete|Cancel|trigger)\r\n     */\r\n    /*jshint loopfunc:true */\r\n    registerEvents: function(shareObject) {\r\n      var self = this,\r\n        event,\r\n        events = ['success', 'fail', 'complete', 'cancel', 'trigger'];\r\n      while ((event = events.shift())) {\r\n        shareObject[event] = (function(eventType) {\r\n          return function(res) {\r\n            var shareType = res.errMsg ? res.errMsg.split(':')[0] : '';\r\n            shareType += shareType ? upperCaseup(eventType) : eventType;\r\n            self.fire(shareType, {\r\n              eventType: eventType,\r\n              shareType: shareType,\r\n              original: arguments\r\n            });\r\n          };\r\n        })(event);\r\n      }\r\n    },\r\n\r\n    getSdk: function(callback) {\r\n      var self = this,\r\n        done;\r\n      if (!mmSdk) {\r\n        done = function(wx) {\r\n          mmSdk = wx;\r\n          callback && callback.apply(self, mmSdk);\r\n        };\r\n        if (win.seajs) {\r\n          win.seajs.use(MM_SDK_URL, function(wx) {\r\n            done(wx);\r\n          });\r\n        } else {\r\n          loadJs(MM_SDK_URL, function() {\r\n            done(win.wx);\r\n          });\r\n        }\r\n      } else {\r\n        done(mmSdk);\r\n      }\r\n    },\r\n\r\n    ready: function(callback) {\r\n      var self = this;\r\n      self.getSdk(function() {\r\n        self.getBaseConfig(function(_signature) {\r\n          self.weiXinReady(_signature, callback);\r\n        });\r\n      });\r\n    },\r\n\r\n    weiXinReady: function(_signature, callback) {\r\n      if (!ready) {\r\n        _signature.debug = this.options.debug;\r\n        _signature.jsApiList = [\r\n          'checkJsApi',\r\n          'onMenuShareTimeline',\r\n          'onMenuShareAppMessage',\r\n          'onMenuShareQQ',\r\n          'onMenuShareWeibo',\r\n          'onMenuShareQZone',\r\n          'hideMenuItems',\r\n          'showMenuItems',\r\n          'hideAllNonBaseMenuItem',\r\n          'showAllNonBaseMenuItem',\r\n          'translateVoice',\r\n          'startRecord',\r\n          'stopRecord',\r\n          'onVoiceRecordEnd',\r\n          'playVoice',\r\n          'onVoicePlayEnd',\r\n          'pauseVoice',\r\n          'stopVoice',\r\n          'uploadVoice',\r\n          'downloadVoice',\r\n          'chooseImage',\r\n          'previewImage',\r\n          'uploadImage',\r\n          'downloadImage',\r\n          'getNetworkType',\r\n          'openLocation',\r\n          'getLocation',\r\n          'hideOptionMenu',\r\n          'showOptionMenu',\r\n          'closeWindow',\r\n          'scanQRCode',\r\n          'chooseWXPay',\r\n          'openProductSpecificView',\r\n          'addCard',\r\n          'chooseCard',\r\n          'openCard'\r\n        ];\r\n        signature = _signature;\r\n        mmSdk.config(_signature);\r\n        mmSdk.ready(function() {\r\n          ready = true;\r\n          callback && callback(mmSdk);\r\n        });\r\n      } else {\r\n        callback && callback(mmSdk);\r\n      }\r\n    },\r\n\r\n    getBaseConfig: function(callback) {\r\n      if (signature) {\r\n        callback && callback(signature);\r\n      } else {\r\n        this.getSignature(null, function(data) {\r\n          callback && callback(data);\r\n        });\r\n      }\r\n    },\r\n\r\n    createAppUrl: function(callbackName, url) {\r\n      return APP_URL +\r\n        '?callback=' + callbackName +\r\n        '&do=weixin' +\r\n        '&url=' + encodeURIComponent(url || location.href.split('#')[0]);\r\n    },\r\n\r\n    getSignature: function(url, callback) {\r\n      var callbackName = 'weixin' + Math.random().toString(36).substr(2);\r\n      win[callbackName] = function(data) {\r\n        callback && callback(data);\r\n        setTimeout(function() {\r\n          win[callbackName] = undefined;\r\n        }, 0);\r\n      };\r\n      loadJs(this.createAppUrl(callbackName, url));\r\n    },\r\n\r\n    getDescription: function() {\r\n      var metas = head.getElementsByTagName('meta');\r\n      var content;\r\n      for (var i = 0; i < metas.length; i++) {\r\n        if (metas[i].name == 'description') {\r\n          content = metas[i].getAttribute('content');\r\n          if(content){\r\n            return content.replace(/^,/,'');\r\n          }else{\r\n            return null;\r\n          }\r\n        }\r\n      }\r\n      return null;\r\n    },\r\n\r\n    on: function(eventType, fn) {\r\n      if (!eventStore[eventType]) {\r\n        eventStore[eventType] = [];\r\n      }\r\n      if (typeof fn === 'function') {\r\n        eventStore[eventType].push(fn);\r\n      }\r\n    },\r\n\r\n    //解除绑定\r\n    off: function(eventType, fn) {\r\n      var fnList;\r\n      if (!eventStore[eventType]) {\r\n        return;\r\n      }\r\n      if (!fn) {\r\n        delete eventStore[eventType];\r\n      } else {\r\n        fnList = eventStore[eventType];\r\n        for (var i = 0; i < fnList.length; i++) {\r\n          if (fn === fnList[i]) {\r\n            fnList.splice(i, 1);\r\n          }\r\n        }\r\n      }\r\n    },\r\n\r\n    //触发事件\r\n    fire: function(eventType) {\r\n      var fnList = eventStore[eventType];\r\n      var parameter = Array.prototype.slice.call(arguments, 1);\r\n      var returned = true;\r\n      if (!fnList) {\r\n        return false;\r\n      }\r\n      for (var i = 0; i < fnList.length; i++) {\r\n        if (fnList[i].apply(null, parameter) === false) {\r\n          returned = false;\r\n        }\r\n      }\r\n      return returned;\r\n    }\r\n\r\n  };\r\n\r\n  ued.MicroMessengerSdk = MicroMessengerSdk;\r\n\r\n  if (!win.wx && !ued.weixinSdkInit) {\r\n    new MicroMessengerSdk(win.mesConfig);\r\n  }\r\n\r\n})();\r\n"]}