Last active
December 3, 2018 08:52
-
-
Save vutranHS/01fd443d90b0f685963456ba22936629 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (function(global) { | |
| if (typeof define !== 'undefined') { | |
| return; | |
| } | |
| /* eslint strict:0 */ | |
| var modules = {}; | |
| var inGuard = false; | |
| function def(id, deps, factory) { | |
| if (deps instanceof Function) { | |
| factory = deps; | |
| deps = []; | |
| } | |
| modules[id] = { | |
| factory: factory, | |
| deps: deps, | |
| module: { | |
| exports: {} | |
| }, | |
| isInitialized: false, | |
| hasError: false, | |
| }; | |
| } | |
| function req(id) { | |
| // Weex built-in modules | |
| if (id.indexOf('@weex-module') === 0) { | |
| return {}; | |
| } | |
| var originId = id; | |
| id = id.replace('@ali', 'kg'); | |
| var mod = modules[id]; | |
| if (!mod) { | |
| id = id + '/index'; | |
| mod = modules[id]; | |
| } | |
| if (mod && mod.isInitialized) { | |
| return mod.module.exports; | |
| } | |
| return requireImpl(id, originId); | |
| } | |
| function requireImpl(id, originId) { | |
| if (global.ErrorUtils && !inGuard) { | |
| inGuard = true; | |
| var returnValue; | |
| try { | |
| returnValue = requireImpl.apply(this, arguments); | |
| } catch (e) { | |
| global.ErrorUtils.reportFatalError(e); | |
| } | |
| inGuard = false; | |
| return returnValue; | |
| } | |
| var mod = modules[id]; | |
| if (!mod) { | |
| throw new Error('Requiring unknown module "' + originId + '"'); | |
| } | |
| if (mod.hasError) { | |
| throw new Error('Requiring module "' + originId + '" which threw an exception'); | |
| } | |
| try { | |
| // We must optimistically mark mod as initialized before running the factory to keep any | |
| // require cycles inside the factory from causing an infinite require loop. | |
| mod.isInitialized = true; | |
| // keep args in sync with with defineModuleCode in | |
| // rx/bundler/src/resolver.js | |
| mod.factory(req, mod.module.exports, mod.module); | |
| } catch (e) { | |
| mod.hasError = true; | |
| mod.isInitialized = false; | |
| throw e; | |
| } | |
| return mod.module.exports; | |
| } | |
| global.define = def; | |
| global.require = req; | |
| global.__d = def; | |
| global.__r = req; | |
| })(this); | |
| ! function a(b, c, d) { | |
| function e(g, h) { | |
| if (!c[g]) { | |
| if (!b[g]) { | |
| var i = "function" == typeof require && require; | |
| if (!h && i) return i(g, !0); | |
| if (f) return f(g, !0); | |
| var j = new Error("Cannot find module '" + g + "'"); | |
| throw j.code = "MODULE_NOT_FOUND", | |
| j | |
| } | |
| var k = c[g] = { | |
| exports: {} | |
| }; | |
| b[g][0].call(k.exports, function(a) { | |
| var c = b[g][1][a]; | |
| return e(c ? c : a) | |
| }, k, k.exports, a, b, c, d) | |
| } | |
| return c[g].exports | |
| } | |
| for (var f = "function" == typeof require && require, g = 0; g < d.length; g++) | |
| e(d[g]); | |
| return e | |
| }({ | |
| 1: [function(a, b) { | |
| function c() {} | |
| var d = b.exports = {}; | |
| d.nextTick = function() { | |
| var a = "undefined" != typeof window && window.setImmediate, | |
| b = "undefined" != typeof window && window.postMessage && window.addEventListener; | |
| if (a) return function(a) { | |
| return window.setImmediate(a) | |
| }; | |
| if (b) { | |
| var c = []; | |
| return window.addEventListener("message", function(a) { | |
| var b = a.source; | |
| if ((b === window || null === b) && "process-tick" === a.data && (a.stopPropagation(), | |
| c.length > 0)) { | |
| var d = c.shift(); | |
| d() | |
| } | |
| }, !0), | |
| function(a) { | |
| c.push(a), | |
| window.postMessage("process-tick", "*") | |
| } | |
| } | |
| return function(a) { | |
| setTimeout(a, 0) | |
| } | |
| }(), | |
| d.title = "browser", | |
| d.browser = !0, | |
| d.env = {}, | |
| d.argv = [], | |
| d.on = c, | |
| d.addListener = c, | |
| d.once = c, | |
| d.off = c, | |
| d.removeListener = c, | |
| d.removeAllListeners = c, | |
| d.emit = c, | |
| d.binding = function() { | |
| throw new Error("process.binding is not supported") | |
| }, | |
| d.cwd = function() { | |
| return "/" | |
| }, | |
| d.chdir = function() { | |
| throw new Error("process.chdir is not supported") | |
| } | |
| }, {}], | |
| 2: [function(a, b) { | |
| "use strict"; | |
| function c(a) { | |
| function b(a) { | |
| return null === i ? void k.push(a) : void f(function() { | |
| var b = i ? a.onFulfilled : a.onRejected; | |
| if (null === b) return void(i ? a.resolve : a.reject)(j); | |
| var c; | |
| try { | |
| c = b(j) | |
| } catch (d) { | |
| return void a.reject(d) | |
| } | |
| a.resolve(c) | |
| }) | |
| } | |
| function c(a) { | |
| try { | |
| if (a === l) throw new TypeError("A promise cannot be resolved with itself."); | |
| if (a && ("object" == typeof a || "function" == typeof a)) { | |
| var b = a.then; | |
| if ("function" == typeof b) return void e(b.bind(a), c, g) | |
| } | |
| i = !0, | |
| j = a, | |
| h() | |
| } catch (d) { | |
| g(d) | |
| } | |
| } | |
| function g(a) { | |
| i = !1, | |
| j = a, | |
| h() | |
| } | |
| function h() { | |
| for (var a = 0, c = k.length; c > a; a++) | |
| b(k[a]); | |
| k = null | |
| } | |
| if ("object" != typeof this) throw new TypeError("Promises must be constructed via new"); | |
| if ("function" != typeof a) throw new TypeError("not a function"); | |
| var i = null, | |
| j = null, | |
| k = [], | |
| l = this; | |
| this.then = function(a, c) { | |
| return new l.constructor(function(e, f) { | |
| b(new d(a, c, e, f)) | |
| }) | |
| }, | |
| e(a, c, g) | |
| } | |
| function d(a, b, c, d) { | |
| this.onFulfilled = "function" == typeof a ? a : null, | |
| this.onRejected = "function" == typeof b ? b : null, | |
| this.resolve = c, | |
| this.reject = d | |
| } | |
| function e(a, b, c) { | |
| var d = !1; | |
| try { | |
| a(function(a) { | |
| d || (d = !0, | |
| b(a)) | |
| }, function(a) { | |
| d || (d = !0, | |
| c(a)) | |
| }) | |
| } catch (e) { | |
| if (d) return; | |
| d = !0, | |
| c(e) | |
| } | |
| } | |
| var f = a("asap"); | |
| b.exports = c | |
| }, { | |
| asap: 4 | |
| }], | |
| 3: [function(a, b) { | |
| "use strict"; | |
| function c(a) { | |
| this.then = function(b) { | |
| return "function" != typeof b ? this : new d(function(c, d) { | |
| e(function() { | |
| try { | |
| c(b(a)) | |
| } catch (e) { | |
| d(e) | |
| } | |
| }) | |
| }) | |
| } | |
| } | |
| var d = a("./core.js"), | |
| e = a("asap"); | |
| b.exports = d, | |
| c.prototype = d.prototype; | |
| var f = new c(!0), | |
| g = new c(!1), | |
| h = new c(null), | |
| i = new c(void 0), | |
| j = new c(0), | |
| k = new c(""); | |
| d.resolve = function(a) { | |
| if (a instanceof d) return a; | |
| if (null === a) return h; | |
| if (void 0 === a) return i; | |
| if (a === !0) return f; | |
| if (a === !1) return g; | |
| if (0 === a) return j; | |
| if ("" === a) return k; | |
| if ("object" == typeof a || "function" == typeof a) try { | |
| var b = a.then; | |
| if ("function" == typeof b) return new d(b.bind(a)) | |
| } catch (e) { | |
| return new d(function(a, b) { | |
| b(e) | |
| }) | |
| } | |
| return new c(a) | |
| }, | |
| d.all = function(a) { | |
| var b = Array.prototype.slice.call(a); | |
| return new d(function(a, c) { | |
| function d(f, g) { | |
| try { | |
| if (g && ("object" == typeof g || "function" == typeof g)) { | |
| var h = g.then; | |
| if ("function" == typeof h) return void h.call(g, function(a) { | |
| d(f, a) | |
| }, c) | |
| } | |
| b[f] = g, | |
| 0 === --e && a(b) | |
| } catch (i) { | |
| c(i) | |
| } | |
| } | |
| if (0 === b.length) return a([]); | |
| for (var e = b.length, f = 0; f < b.length; f++) | |
| d(f, b[f]) | |
| }) | |
| }, | |
| d.reject = function(a) { | |
| return new d(function(b, c) { | |
| c(a) | |
| }) | |
| }, | |
| d.race = function(a) { | |
| return new d(function(b, c) { | |
| a.forEach(function(a) { | |
| d.resolve(a).then(b, c) | |
| }) | |
| }) | |
| }, | |
| d.prototype["catch"] = function(a) { | |
| return this.then(null, a) | |
| } | |
| }, { | |
| "./core.js": 2, | |
| asap: 4 | |
| }], | |
| 4: [function(a, b) { | |
| (function(a) { | |
| function c() { | |
| for (; e.next;) { | |
| e = e.next; | |
| var a = e.task; | |
| e.task = void 0; | |
| var b = e.domain; | |
| b && (e.domain = void 0, | |
| b.enter()); | |
| try { | |
| a() | |
| } catch (d) { | |
| if (i) throw b && b.exit(), | |
| setTimeout(c, 0), | |
| b && b.enter(), | |
| d; | |
| setTimeout(function() { | |
| throw d | |
| }, 0) | |
| } | |
| b && b.exit() | |
| } | |
| g = !1 | |
| } | |
| function d(b) { | |
| f = f.next = { | |
| task: b, | |
| domain: i && a.domain, | |
| next: null | |
| }, | |
| g || (g = !0, | |
| h()) | |
| } | |
| var e = { | |
| task: void 0, | |
| next: null | |
| }, f = e, | |
| g = !1, | |
| h = void 0, | |
| i = !1; | |
| if ("undefined" != typeof a && a.nextTick) i = !0, | |
| h = function() { | |
| a.nextTick(c) | |
| }; | |
| else if ("function" == typeof setImmediate) h = "undefined" != typeof window ? setImmediate.bind(window, c) : function() { | |
| setImmediate(c) | |
| }; | |
| else if ("undefined" != typeof MessageChannel) { | |
| var j = new MessageChannel; | |
| j.port1.onmessage = c, | |
| h = function() { | |
| j.port2.postMessage(0) | |
| } | |
| } else h = function() { | |
| setTimeout(c, 0) | |
| }; | |
| b.exports = d | |
| }).call(this, a("_process")) | |
| }, { | |
| _process: 1 | |
| }], | |
| 5: [function() { | |
| "function" != typeof Promise.prototype.done && (Promise.prototype.done = function() { | |
| var a = arguments.length ? this.then.apply(this, arguments) : this; | |
| a.then(null, function(a) { | |
| setTimeout(function() { | |
| throw a | |
| }, 0) | |
| }) | |
| }) | |
| }, {}], | |
| 6: [function(a) { | |
| a("asap"); | |
| "undefined" == typeof Promise && (Promise = a("./lib/core.js"), | |
| a("./lib/es6-extensions.js")), | |
| a("./polyfill-done.js") | |
| }, { | |
| "./lib/core.js": 2, | |
| "./lib/es6-extensions.js": 3, | |
| "./polyfill-done.js": 5, | |
| asap: 4 | |
| }] | |
| }, {}, [6]); | |
| ! function(a, b) { | |
| function c() { | |
| var a = {}, b = new p(function(b, c) { | |
| a.resolve = b, | |
| a.reject = c | |
| }); | |
| return a.promise = b, | |
| a | |
| } | |
| function d(a, b) { | |
| for (var c in b) | |
| void 0 === a[c] && (a[c] = b[c]); | |
| return a | |
| } | |
| function e(a) { | |
| var b = document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0] || document.firstElementChild || document; | |
| b.appendChild(a) | |
| } | |
| function f(a) { | |
| var b = []; | |
| for (var c in a) | |
| a[c] && b.push(c + "=" + encodeURIComponent(a[c])); | |
| return b.join("&") | |
| } | |
| function g(a) { | |
| try { | |
| return ".com" === a.substring(a.lastIndexOf(".")) ? a.substring(a.lastIndexOf(".", a.lastIndexOf(".") - 1) + 1) : a.split(".").slice(1).join(".") | |
| } catch (b) { | |
| return a.substring(a.lastIndexOf(".", a.lastIndexOf(".") - 1) + 1) | |
| } | |
| } | |
| function h(a) { | |
| function b(a, b) { | |
| return a << b | a >>> 32 - b | |
| } | |
| function c(a, b) { | |
| var c, d, e, f, g; | |
| return e = 2147483648 & a, | |
| f = 2147483648 & b, | |
| c = 1073741824 & a, | |
| d = 1073741824 & b, | |
| g = (1073741823 & a) + (1073741823 & b), | |
| c & d ? 2147483648 ^ g ^ e ^ f : c | d ? 1073741824 & g ? 3221225472 ^ g ^ e ^ f : 1073741824 ^ g ^ e ^ f : g ^ e ^ f | |
| } | |
| function d(a, b, c) { | |
| return a & b | ~a & c | |
| } | |
| function e(a, b, c) { | |
| return a & c | b & ~c | |
| } | |
| function f(a, b, c) { | |
| return a ^ b ^ c | |
| } | |
| function g(a, b, c) { | |
| return b ^ (a | ~c) | |
| } | |
| function h(a, e, f, g, h, i, j) { | |
| return a = c(a, c(c(d(e, f, g), h), j)), | |
| c(b(a, i), e) | |
| } | |
| function i(a, d, f, g, h, i, j) { | |
| return a = c(a, c(c(e(d, f, g), h), j)), | |
| c(b(a, i), d) | |
| } | |
| function j(a, d, e, g, h, i, j) { | |
| return a = c(a, c(c(f(d, e, g), h), j)), | |
| c(b(a, i), d) | |
| } | |
| function k(a, d, e, f, h, i, j) { | |
| return a = c(a, c(c(g(d, e, f), h), j)), | |
| c(b(a, i), d) | |
| } | |
| function l(a) { | |
| for (var b, c = a.length, d = c + 8, e = (d - d % 64) / 64, f = 16 * (e + 1), g = new Array(f - 1), h = 0, i = 0; c > i;) | |
| b = (i - i % 4) / 4, | |
| h = i % 4 * 8, | |
| g[b] = g[b] | a.charCodeAt(i) << h, | |
| i++; | |
| return b = (i - i % 4) / 4, | |
| h = i % 4 * 8, | |
| g[b] = g[b] | 128 << h, | |
| g[f - 2] = c << 3, | |
| g[f - 1] = c >>> 29, | |
| g | |
| } | |
| function m(a) { | |
| var b, c, d = "", | |
| e = ""; | |
| for (c = 0; 3 >= c; c++) | |
| b = a >>> 8 * c & 255, | |
| e = "0" + b.toString(16), | |
| d += e.substr(e.length - 2, 2); | |
| return d | |
| } | |
| function n(a) { | |
| a = a.replace(/\r\n/g, "\n"); | |
| for (var b = "", c = 0; c < a.length; c++) { | |
| var d = a.charCodeAt(c); | |
| 128 > d ? b += String.fromCharCode(d) : d > 127 && 2048 > d ? (b += String.fromCharCode(d >> 6 | 192), | |
| b += String.fromCharCode(63 & d | 128)) : (b += String.fromCharCode(d >> 12 | 224), | |
| b += String.fromCharCode(d >> 6 & 63 | 128), | |
| b += String.fromCharCode(63 & d | 128)) | |
| } | |
| return b | |
| } | |
| var o, p, q, r, s, t, u, v, w, x = [], | |
| y = 7, | |
| z = 12, | |
| A = 17, | |
| B = 22, | |
| C = 5, | |
| D = 9, | |
| E = 14, | |
| F = 20, | |
| G = 4, | |
| H = 11, | |
| I = 16, | |
| J = 23, | |
| K = 6, | |
| L = 10, | |
| M = 15, | |
| N = 21; | |
| for (a = n(a), | |
| x = l(a), | |
| t = 1732584193, | |
| u = 4023233417, | |
| v = 2562383102, | |
| w = 271733878, | |
| o = 0; o < x.length; o += 16) | |
| p = t, | |
| q = u, | |
| r = v, | |
| s = w, | |
| t = h(t, u, v, w, x[o + 0], y, 3614090360), | |
| w = h(w, t, u, v, x[o + 1], z, 3905402710), | |
| v = h(v, w, t, u, x[o + 2], A, 606105819), | |
| u = h(u, v, w, t, x[o + 3], B, 3250441966), | |
| t = h(t, u, v, w, x[o + 4], y, 4118548399), | |
| w = h(w, t, u, v, x[o + 5], z, 1200080426), | |
| v = h(v, w, t, u, x[o + 6], A, 2821735955), | |
| u = h(u, v, w, t, x[o + 7], B, 4249261313), | |
| t = h(t, u, v, w, x[o + 8], y, 1770035416), | |
| w = h(w, t, u, v, x[o + 9], z, 2336552879), | |
| v = h(v, w, t, u, x[o + 10], A, 4294925233), | |
| u = h(u, v, w, t, x[o + 11], B, 2304563134), | |
| t = h(t, u, v, w, x[o + 12], y, 1804603682), | |
| w = h(w, t, u, v, x[o + 13], z, 4254626195), | |
| v = h(v, w, t, u, x[o + 14], A, 2792965006), | |
| u = h(u, v, w, t, x[o + 15], B, 1236535329), | |
| t = i(t, u, v, w, x[o + 1], C, 4129170786), | |
| w = i(w, t, u, v, x[o + 6], D, 3225465664), | |
| v = i(v, w, t, u, x[o + 11], E, 643717713), | |
| u = i(u, v, w, t, x[o + 0], F, 3921069994), | |
| t = i(t, u, v, w, x[o + 5], C, 3593408605), | |
| w = i(w, t, u, v, x[o + 10], D, 38016083), | |
| v = i(v, w, t, u, x[o + 15], E, 3634488961), | |
| u = i(u, v, w, t, x[o + 4], F, 3889429448), | |
| t = i(t, u, v, w, x[o + 9], C, 568446438), | |
| w = i(w, t, u, v, x[o + 14], D, 3275163606), | |
| v = i(v, w, t, u, x[o + 3], E, 4107603335), | |
| u = i(u, v, w, t, x[o + 8], F, 1163531501), | |
| t = i(t, u, v, w, x[o + 13], C, 2850285829), | |
| w = i(w, t, u, v, x[o + 2], D, 4243563512), | |
| v = i(v, w, t, u, x[o + 7], E, 1735328473), | |
| u = i(u, v, w, t, x[o + 12], F, 2368359562), | |
| t = j(t, u, v, w, x[o + 5], G, 4294588738), | |
| w = j(w, t, u, v, x[o + 8], H, 2272392833), | |
| v = j(v, w, t, u, x[o + 11], I, 1839030562), | |
| u = j(u, v, w, t, x[o + 14], J, 4259657740), | |
| t = j(t, u, v, w, x[o + 1], G, 2763975236), | |
| w = j(w, t, u, v, x[o + 4], H, 1272893353), | |
| v = j(v, w, t, u, x[o + 7], I, 4139469664), | |
| u = j(u, v, w, t, x[o + 10], J, 3200236656), | |
| t = j(t, u, v, w, x[o + 13], G, 681279174), | |
| w = j(w, t, u, v, x[o + 0], H, 3936430074), | |
| v = j(v, w, t, u, x[o + 3], I, 3572445317), | |
| u = j(u, v, w, t, x[o + 6], J, 76029189), | |
| t = j(t, u, v, w, x[o + 9], G, 3654602809), | |
| w = j(w, t, u, v, x[o + 12], H, 3873151461), | |
| v = j(v, w, t, u, x[o + 15], I, 530742520), | |
| u = j(u, v, w, t, x[o + 2], J, 3299628645), | |
| t = k(t, u, v, w, x[o + 0], K, 4096336452), | |
| w = k(w, t, u, v, x[o + 7], L, 1126891415), | |
| v = k(v, w, t, u, x[o + 14], M, 2878612391), | |
| u = k(u, v, w, t, x[o + 5], N, 4237533241), | |
| t = k(t, u, v, w, x[o + 12], K, 1700485571), | |
| w = k(w, t, u, v, x[o + 3], L, 2399980690), | |
| v = k(v, w, t, u, x[o + 10], M, 4293915773), | |
| u = k(u, v, w, t, x[o + 1], N, 2240044497), | |
| t = k(t, u, v, w, x[o + 8], K, 1873313359), | |
| w = k(w, t, u, v, x[o + 15], L, 4264355552), | |
| v = k(v, w, t, u, x[o + 6], M, 2734768916), | |
| u = k(u, v, w, t, x[o + 13], N, 1309151649), | |
| t = k(t, u, v, w, x[o + 4], K, 4149444226), | |
| w = k(w, t, u, v, x[o + 11], L, 3174756917), | |
| v = k(v, w, t, u, x[o + 2], M, 718787259), | |
| u = k(u, v, w, t, x[o + 9], N, 3951481745), | |
| t = c(t, p), | |
| u = c(u, q), | |
| v = c(v, r), | |
| w = c(w, s); | |
| var O = m(t) + m(u) + m(v) + m(w); | |
| return O.toLowerCase() | |
| } | |
| function i(a) { | |
| return "[object Object]" == {}.toString.call(a) | |
| } | |
| function j(a, b, c) { | |
| var d = c || {}; | |
| document.cookie = a.replace(/[^+#$&^`|]/g, encodeURIComponent).replace("(", "%28").replace(")", "%29") + "=" + b.replace(/[^+#$&\/:<-\[\]-}]/g, encodeURIComponent) + (d.domain ? ";domain=" + d.domain : "") + (d.path ? ";path=" + d.path : "") + (d.secure ? ";secure" : "") + (d.httponly ? ";HttpOnly" : "") | |
| } | |
| function k(a) { | |
| var b = new RegExp("(?:^|;\\s*)" + a + "\\=([^;]+)(?:;\\s*|$)").exec(document.cookie); | |
| return b ? b[1] : void 0 | |
| } | |
| function l(a, b, c) { | |
| var d = new Date; | |
| d.setTime(d.getTime() - 864e5); | |
| var e = "/"; | |
| document.cookie = a + "=;path=" + e + ";domain=." + b + ";expires=" + d.toGMTString(), | |
| document.cookie = a + "=;path=" + e + ";domain=." + c + "." + b + ";expires=" + d.toGMTString() | |
| } | |
| function m() { | |
| var b = a.location.hostname; | |
| if (!b) { | |
| var c = a.parent.location.hostname; | |
| c && ~c.indexOf("zebra.alibaba-inc.com") && (b = c) | |
| } | |
| var d = ["taobao.net", "taobao.com", "tmall.com", "tmall.hk", "alibaba-inc.com"], | |
| e = new RegExp("([^.]*?)\\.?((?:" + d.join(")|(?:").replace(/\./g, "\\.") + "))", "i"), | |
| f = b.match(e) || [], | |
| g = f[2] || "taobao.com", | |
| h = f[1] || "m"; | |
| "taobao.net" !== g || "x" !== h && "waptest" !== h && "daily" !== h ? "taobao.net" === g && "demo" === h ? h = "demo" : "alibaba-inc.com" === g && "zebra" === h ? h = "zebra" : "waptest" !== h && "wapa" !== h && "m" !== h && (h = "m") : h = "waptest"; | |
| var i = "h5api"; | |
| "taobao.net" === g && "waptest" === h && (i = "acs"), | |
| r.mainDomain = g, | |
| r.subDomain = h, | |
| r.prefix = i | |
| } | |
| function n() { | |
| var b = a.navigator.userAgent, | |
| c = b.match(/WindVane[\/\s]([\d\.\_]+)/); | |
| c && (r.WindVaneVersion = c[1]); | |
| var d = b.match(/AliApp\(([^\/]+)\/([\d\.\_]+)\)/i); | |
| d && (r.AliAppName = d[1], | |
| r.AliAppVersion = d[2]) | |
| } | |
| function o(a) { | |
| this.id = ++v, | |
| this.params = d(a || {}, { | |
| v: "*", | |
| data: {}, | |
| type: "get", | |
| dataType: "jsonp" | |
| }), | |
| this.params.type = this.params.type.toLowerCase(), | |
| "object" == typeof this.params.data && (this.params.data = JSON.stringify(this.params.data)), | |
| this.middlewares = s.slice(0) | |
| } | |
| var p = a.Promise, | |
| q = (p || { | |
| resolve: function() { | |
| return void 0 | |
| } | |
| }).resolve(); | |
| String.prototype.trim || (String.prototype.trim = function() { | |
| return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") | |
| }); | |
| var r = { | |
| useJsonpResultType: !1, | |
| safariGoLogin: !0, | |
| useAlipayJSBridge: !1 | |
| }, s = [], | |
| t = { | |
| ERROR: -1, | |
| SUCCESS: 0, | |
| TOKEN_EXPIRED: 1, | |
| SESSION_EXPIRED: 2 | |
| }; | |
| m(), | |
| n(); | |
| var u = "AP" === r.AliAppName && parseFloat(r.AliAppVersion) >= 10.1; | |
| u && 10.1 === parseFloat(r.AliAppVersion) && parseInt(r.AliAppVersion.substr(5)) < 2 && (u = !1); | |
| var v = 0, | |
| w = "2.4.11"; | |
| o.prototype.use = function(a) { | |
| if (!a) throw new Error("middleware is undefined"); | |
| return this.middlewares.push(a), | |
| this | |
| }, | |
| o.prototype.__processRequestMethod = function(a) { | |
| var b = this.params, | |
| c = this.options; | |
| "get" === b.type && "jsonp" === b.dataType ? c.getJSONP = !0 : "get" === b.type && "originaljsonp" === b.dataType ? c.getOriginalJSONP = !0 : "get" === b.type && "json" === b.dataType ? c.getJSON = !0 : "post" === b.type && (c.postJSON = !0), | |
| a() | |
| }, | |
| o.prototype.__processRequestType = function(c) { | |
| var d = this, | |
| e = this.params, | |
| f = this.options; | |
| if (r.H5Request === !0 && (f.H5Request = !0), | |
| r.WindVaneRequest === !0 && (f.WindVaneRequest = !0), | |
| f.H5Request === !1 && f.WindVaneRequest === !0) { | |
| if (!u && (!b.windvane || parseFloat(f.WindVaneVersion) < 5.4)) throw new Error("WINDVANE_NOT_FOUND::缺少WindVane环境"); | |
| if (u && !a.AlipayJSBridge) throw new Error("ALIPAY_NOT_READY::支付宝通道未准备好,支付宝请见 https://lark.alipay.com/mtbsdkdocs/mtopjssdkdocs/pucq6z") | |
| } else if (f.H5Request === !0) f.WindVaneRequest = !1; | |
| else if ("undefined" == typeof f.WindVaneRequest && "undefined" == typeof f.H5Request && (b.windvane && parseFloat(f.WindVaneVersion) >= 5.4 ? f.WindVaneRequest = !0 : f.H5Request = !0, | |
| u)) if (f.WindVaneRequest = f.H5Request = void 0, | |
| a.AlipayJSBridge) if (i(e.data)) f.WindVaneRequest = !0; | |
| else try { | |
| i(JSON.parse(e.data)) ? f.WindVaneRequest = !0 : f.H5Request = !0 | |
| } catch (g) { | |
| f.H5Request = !0 | |
| } else f.H5Request = !0; | |
| var h = a.navigator.userAgent.toLowerCase(); | |
| return h.indexOf("youku") > -1 && f.mainDomain.indexOf("youku.com") < 0 && (f.WindVaneRequest = !1, | |
| f.H5Request = !0), | |
| f.mainDomain.indexOf("youku.com") > -1 && h.indexOf("youku") < 0 && (f.WindVaneRequest = !1, | |
| f.H5Request = !0), | |
| c ? c().then(function() { | |
| var a = f.retJson.ret; | |
| if (a instanceof Array && (a = a.join(",")), | |
| f.WindVaneRequest === !0 && u && f.retJson.error || !a || a.indexOf("PARAM_PARSE_ERROR") > -1 || a.indexOf("HY_FAILED") > -1 || a.indexOf("HY_NO_HANDLER") > -1 || a.indexOf("HY_CLOSED") > -1 || a.indexOf("HY_EXCEPTION") > -1 || a.indexOf("HY_NO_PERMISSION") > -1) { | |
| console.log('get token', a); | |
| if (!u || !isNaN(f.retJson.error) || -1 !== f.retJson.error.indexOf("FAIL_SYS_ACCESS_DENIED")) return u && i(e.data) && (e.data = JSON.stringify(e.data)), | |
| r.H5Request = !0, | |
| d.__sequence([d.__processRequestType, d.__processToken, d.__processRequestUrl, d.middlewares, d.__processRequest]); | |
| "undefined" == typeof f.retJson.api && "undefined" == typeof f.retJson.v && (f.retJson.api = e.api, | |
| f.retJson.v = e.v, | |
| f.retJson.ret = [f.retJson.error + "::" + f.retJson.errorMessage], | |
| f.retJson.data = {}) | |
| } | |
| }) : void 0 | |
| }; | |
| var x = "_m_h5_c", | |
| y = "_m_h5_tk", | |
| z = "_m_h5_tk_enc"; | |
| o.prototype.__getTokenFromAlipay = function() { | |
| var b = c(), | |
| d = this.options, | |
| e = (a.navigator.userAgent, !! location.protocol.match(/^https?\:$/)); | |
| console.log('token', d); | |
| return d.useAlipayJSBridge === !0 && !e && u && a.AlipayJSBridge && a.AlipayJSBridge.call ? a.AlipayJSBridge.call("getMtopToken", function(a) { | |
| console.log('token', d, a); | |
| a && a.token && (d.token = a.token), | |
| b.resolve() | |
| }, function() { | |
| b.resolve() | |
| }) : b.resolve(), | |
| b.promise | |
| }, | |
| o.prototype.__getTokenFromCookie = function() { | |
| var a = this.options; | |
| var hihi; | |
| if (a.CDR && k(x)) { | |
| a.token = k(x).split(";")[0]; | |
| } else { | |
| a.token = a.token || k(y); | |
| } | |
| return a.token && (a.token = a.token.split("_")[0]), | |
| p.resolve() | |
| }, | |
| o.prototype.__waitWKWebViewCookie = function(b) { | |
| var c = this.options; | |
| c.waitWKWebViewCookieFn && c.H5Request && a.webkit && a.webkit.messageHandlers ? c.waitWKWebViewCookieFn(b) : b() | |
| }, | |
| o.prototype.__processToken = function(a) { | |
| var b = this, | |
| c = this.options; | |
| this.params; | |
| return c.token && delete c.token, | |
| c.WindVaneRequest !== !0 ? q.then(function() { | |
| return b.__getTokenFromAlipay() | |
| }).then(function(haha) { | |
| console.log(haha); | |
| return b.__getTokenFromCookie() | |
| }).then(a).then(function() { | |
| var a = c.retJson, | |
| d = a.ret; | |
| if (d instanceof Array && (d = d.join(",")), | |
| d.indexOf("TOKEN_EMPTY") > -1 || c.CDR === !0 && d.indexOf("ILLEGAL_ACCESS") > -1 || d.indexOf("TOKEN_EXOIRED") > -1) { | |
| if (c.maxRetryTimes = c.maxRetryTimes || 5, | |
| c.failTimes = c.failTimes || 0, | |
| c.H5Request && ++c.failTimes < c.maxRetryTimes) return b.__sequence([b.__waitWKWebViewCookie, b.__processToken, b.__processRequestUrl, b.middlewares, b.__processRequest]); | |
| c.maxRetryTimes > 0 && (l(x, c.pageDomain, "*"), | |
| l(y, c.mainDomain, c.subDomain), | |
| l(z, c.mainDomain, c.subDomain)), | |
| a.retType = t.TOKEN_EXPIRED | |
| console.log('token', z); | |
| } | |
| }) : void a() | |
| }, | |
| o.prototype.__processRequestUrl = function(b) { | |
| var c = this.params, | |
| d = this.options; | |
| console.log('where d options', d); | |
| if (d.hostSetting && d.hostSetting[a.location.hostname]) { | |
| var e = d.hostSetting[a.location.hostname]; | |
| e.prefix && (d.prefix = e.prefix), | |
| e.subDomain && (d.subDomain = e.subDomain), | |
| e.mainDomain && (d.mainDomain = e.mainDomain) | |
| } | |
| if (d.H5Request === !0) { | |
| var f = "//" + (d.prefix ? d.prefix + "." : "") + (d.subDomain ? d.subDomain + "." : "") + d.mainDomain + "/h5/" + c.api.toLowerCase() + "/" + c.v.toLowerCase() + "/", | |
| g = c.appKey || ("waptest" === d.subDomain ? "4272" : "12574478"), | |
| i = (new Date).getTime(), | |
| j = h(d.token + "&" + i + "&" + g + "&" + c.data), | |
| k = { | |
| jsv: w, | |
| appKey: g, | |
| t: i, | |
| sign: j | |
| }, l = { | |
| data: c.data, | |
| ua: c.ua | |
| }; | |
| if (f.includes('querydetail')) { | |
| f = f.replace('querydetail', 'slash'); | |
| const newData = JSON.parse(c.data); | |
| newData.skuId = '335592730'; | |
| newData.itemId = '252210917'; | |
| const hihi = JSON.stringify(newData); | |
| j = h(d.token + "&" + i + "&" + g + "&" + hihi); | |
| k = { | |
| jsv: w, | |
| appKey: g, | |
| t: i, | |
| sign: j | |
| }; | |
| l = { | |
| data: hihi, | |
| ua: '114#oTvSejXbTTobpobr0sRlwa/00jXe9kChgM+8hFsZXdudCsrI7FMc4RxyF0/h7OhzinSnTe/nmmkVWHrNENCM8Sws4u+OSBVvS1LN0R5sLRXkimgtXmpmQe6lHWXTkbozKCcpiO9WwblFoQCTfZ8sgQ7wfTsnnTb8z6gm8TsTbpJUyUxxBENT4L2jQTfMXl8rL6rmTJob19uVQjHTEZTwtY8w0sZ4SzTUGWJMjJ7KvBt0Iw3RFHR0dgvRjx9VPbuC5poCCBGkBVnR9+y85a4Kni9QvWDS/CQwmQgWGE9IJ5fLYlKu1cc6xYZVbfIKQxsuO4QWxbP4OvjoSg+ByaXGBASMZ0k+rjYBgWfRlEx+f5rhbzVP7g/sUuGSQTE34tlgbfQ+wdjypTOlRQNegNmIryxFS3g1/zoMwa82vQBtZICdJ1LMoVks00fNycBjZ7TINiMnFmjqPyD1UNNjD5tXTSSdMzJJDcuSCQ+yk5O4Gc9tKwrN8R/oa/9DITMl2KfBnav9x7zeWXNfvE7IwKPf20zX15ZSMBfs78WHJqXmBOYpW3VaCX2IU9nq9Z09mNpmKHjsKg7asrtMMltJt26fnHQEGHAdFhCUoDhSwYKNLDme844RGL8/4KwWC7GG+uMiyBpyFhu4klgM' | |
| }; | |
| c.api = 'mtop.lazada.promotion.slash.slash'; | |
| } | |
| console.log('hihi', f, k, l); | |
| Object.keys(c).forEach(function(a) { | |
| "undefined" == typeof k[a] && "undefined" == typeof l[a] && "headers" !== a && "ext_headers" !== a && "ext_querys" !== a && (k[a] = c[a]) | |
| }), | |
| c.ext_querys && Object.keys(c.ext_querys).forEach(function(a) { | |
| k[a] = c.ext_querys[a] | |
| }), | |
| d.getJSONP ? k.type = "jsonp" : d.getOriginalJSONP ? k.type = "originaljsonp" : (d.getJSON || d.postJSON) && (k.type = "originaljson"), | |
| "undefined" != typeof c.valueType && ("original" === c.valueType ? d.getJSONP || d.getOriginalJSONP ? k.type = "originaljsonp" : (d.getJSON || d.postJSON) && (k.type = "originaljson") : "string" === c.valueType && (d.getJSONP || d.getOriginalJSONP ? k.type = "jsonp" : (d.getJSON || d.postJSON) && (k.type = "json"))), | |
| d.useJsonpResultType === !0 && "originaljson" === k.type && delete k.type, | |
| d.dangerouslySetProtocol && (f = d.dangerouslySetProtocol + ":" + f), | |
| d.querystring = k, | |
| d.postdata = l, | |
| d.path = f | |
| } | |
| b() | |
| }, | |
| o.prototype.__processUnitPrefix = function(a) { | |
| a() | |
| }; | |
| var A = 0; | |
| o.prototype.__requestJSONP = function(a) { | |
| function b(a) { | |
| if (k && clearTimeout(k), | |
| l.parentNode && l.parentNode.removeChild(l), | |
| "TIMEOUT" === a) window[j] = function() { | |
| window[j] = void 0; | |
| try { | |
| delete window[j] | |
| } catch (a) {} | |
| }; | |
| else { | |
| window[j] = void 0; | |
| try { | |
| delete window[j] | |
| } catch (b) {} | |
| } | |
| } | |
| var d = c(), | |
| g = this.params, | |
| h = this.options, | |
| i = g.timeout || 2e4, | |
| j = "mtopjsonp" + (g.jsonpIncPrefix || "") + ++A, | |
| k = setTimeout(function() { | |
| a(h.timeoutErrMsg || "TIMEOUT::接口超时"), | |
| b("TIMEOUT") | |
| }, i); | |
| h.querystring.callback = j; | |
| var l = document.createElement("script"); | |
| return l.src = h.path + "?" + f(h.querystring) + "&" + f(h.postdata), | |
| l.async = !0, | |
| l.onerror = function() { | |
| b("ABORT"), | |
| a(h.abortErrMsg || "ABORT::接口异常退出") | |
| }, | |
| window[j] = function() { | |
| h.results = Array.prototype.slice.call(arguments), | |
| b(), | |
| d.resolve() | |
| }, | |
| e(l), | |
| d.promise | |
| }, | |
| o.prototype.__requestJSON = function(b) { | |
| function d(a) { | |
| l && clearTimeout(l), | |
| "TIMEOUT" === a && i.abort() | |
| } | |
| var e = c(), | |
| g = this.params, | |
| h = this.options, | |
| i = new a.XMLHttpRequest, | |
| j = g.timeout || 2e4, | |
| l = setTimeout(function() { | |
| b(h.timeoutErrMsg || "TIMEOUT::接口超时"), | |
| d("TIMEOUT") | |
| }, j); | |
| h.CDR && k(x) && (h.querystring.c = decodeURIComponent(k(x))), | |
| i.onreadystatechange = function() { | |
| if (4 == i.readyState) { | |
| var a, c, f = i.status; | |
| if (f >= 200 && 300 > f || 304 == f) { | |
| d(), | |
| a = i.responseText, | |
| c = i.getAllResponseHeaders() || ""; | |
| try { | |
| a = /^\s*$/.test(a) ? {} : JSON.parse(a), | |
| a.responseHeaders = c, | |
| h.results = [a], | |
| e.resolve() | |
| } catch (g) { | |
| b("PARSE_JSON_ERROR::解析JSON失败") | |
| } | |
| } else d("ABORT"), | |
| b(h.abortErrMsg || "ABORT::接口异常退出") | |
| } | |
| }; | |
| var m, n, o = h.path + "?" + f(h.querystring); | |
| h.getJSON ? (m = "GET", | |
| o += "&" + f(h.postdata)) : h.postJSON && (m = "POST", | |
| n = f(h.postdata)), | |
| i.open(m, o, !0), | |
| i.withCredentials = !0, | |
| i.setRequestHeader("Accept", "application/json"), | |
| i.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
| var p = g.ext_headers || g.headers; | |
| if (p) for (var q in p) | |
| i.setRequestHeader(q, p[q]); | |
| return i.send(n), | |
| e.promise | |
| }, | |
| o.prototype.__requestWindVane = function(a) { | |
| function d(a) { | |
| g.results = [a], | |
| e.resolve() | |
| } | |
| var e = c(), | |
| f = this.params, | |
| g = this.options, | |
| h = f.data, | |
| i = f.api, | |
| j = f.v, | |
| k = g.postJSON ? 1 : 0, | |
| l = g.getJSON || g.postJSON || g.getOriginalJSONP ? "originaljson" : ""; | |
| "undefined" != typeof f.valueType && ("original" === f.valueType ? l = "originaljson" : "string" === f.valueType && (l = "")), | |
| g.useJsonpResultType === !0 && (l = ""); | |
| var m, n, o = "https" === location.protocol ? 1 : 0, | |
| p = f.isSec || 0, | |
| q = f.sessionOption || "AutoLoginOnly", | |
| r = f.ecode || 0, | |
| s = f.ext_headers || {}, t = f.ext_querys || {}; | |
| s.referer = location.href, | |
| n = "undefined" != typeof f.timer ? parseInt(f.timer) : "undefined" != typeof f.timeout ? parseInt(f.timeout) : 2e4, | |
| m = 2 * n, | |
| f.needLogin === !0 && "undefined" == typeof f.sessionOption && (q = "AutoLoginAndManualLogin"), | |
| "undefined" != typeof f.secType && "undefined" == typeof f.isSec && (p = f.secType); | |
| var u = { | |
| api: i, | |
| v: j, | |
| post: String(k), | |
| type: l, | |
| isHttps: String(o), | |
| ecode: String(r), | |
| isSec: String(p), | |
| param: JSON.parse(h), | |
| timer: n, | |
| sessionOption: q, | |
| ext_headers: s, | |
| ext_querys: t | |
| }; | |
| return f.ttid && g.dangerouslySetWVTtid === !0 && (u.ttid = f.ttid), | |
| b.windvane.call("MtopWVPlugin", "send", u, d, d, m), | |
| e.promise | |
| }, | |
| o.prototype.__requestAlipay = function(b) { | |
| function d(a) { | |
| g.results = [a], | |
| e.resolve() | |
| } | |
| var e = c(), | |
| f = this.params, | |
| g = this.options, | |
| h = { | |
| apiName: f.api, | |
| apiVersion: f.v, | |
| needEcodeSign: "1" === String(f.ecode), | |
| usePost: !! g.postJSON | |
| }; | |
| return i(f.data) || (f.data = JSON.parse(f.data)), | |
| h.data = f.data, | |
| f.ttid && g.dangerouslySetWVTtid === !0 && (h.ttid = f.ttid), (g.getJSON || g.postJSON || g.getOriginalJSONP) && (h.type = "originaljson"), | |
| "undefined" != typeof f.valueType && ("original" === f.valueType ? h.type = "originaljson" : "string" === f.valueType && delete h.type), | |
| g.useJsonpResultType === !0 && delete h.type, | |
| a.AlipayJSBridge.call("mtop", h, d), | |
| e.promise | |
| }, | |
| o.prototype.__processRequest = function(a, b) { | |
| var c = this; | |
| return q.then(function() { | |
| var a = c.options; | |
| if (a.H5Request && (a.getJSONP || a.getOriginalJSONP)) return c.__requestJSONP(b); | |
| if (a.H5Request && (a.getJSON || a.postJSON)) return c.__requestJSON(b); | |
| if (a.WindVaneRequest) return u ? c.__requestAlipay(b) : c.__requestWindVane(b); | |
| throw new Error("UNEXCEPT_REQUEST::错误的请求类型") | |
| }).then(a).then(function() { | |
| var a = c.options, | |
| b = (c.params, | |
| a.results[0]), | |
| d = b && b.ret || []; | |
| b.ret = d, | |
| d instanceof Array && (d = d.join(",")); | |
| var e = b.c; | |
| a.CDR && e && j(x, e, { | |
| domain: a.pageDomain, | |
| path: "/" | |
| }), | |
| d.indexOf("SUCCESS") > -1 ? b.retType = t.SUCCESS : b.retType = t.ERROR, | |
| a.retJson = b | |
| }) | |
| }, | |
| o.prototype.__sequence = function(a) { | |
| function b(a) { | |
| if (a instanceof Array) a.forEach(b); | |
| else { | |
| var g, h = c(), | |
| i = c(); | |
| e.push(function() { | |
| return h = c(), | |
| g = a.call(d, function(a) { | |
| return h.resolve(a), | |
| i.promise | |
| }, function(a) { | |
| return h.reject(a), | |
| i.promise | |
| }), | |
| g && (g = g["catch"](function(a) { | |
| h.reject(a) | |
| })), | |
| h.promise | |
| }), | |
| f.push(function(a) { | |
| return i.resolve(a), | |
| g | |
| }) | |
| } | |
| } | |
| var d = this, | |
| e = [], | |
| f = []; | |
| a.forEach(b); | |
| for (var g, h = q; g = e.shift();) | |
| h = h.then(g); | |
| for (; g = f.pop();) | |
| h = h.then(g); | |
| return h | |
| }; | |
| var B = function(a) { | |
| a() | |
| }, C = function(a) { | |
| a() | |
| }; | |
| o.prototype.request = function(c) { | |
| var e = this; | |
| if (this.options = d(c || {}, r), !p) { | |
| var f = "当前浏览器不支持Promise,请在windows对象上挂载Promise对象可参考(http://gitlab.alibaba-inc.com/mtb/lib-es6polyfill/tree/master)中的解决方案"; | |
| throw b.mtop = { | |
| ERROR: f | |
| }, | |
| new Error(f) | |
| } | |
| var h = p.resolve([B, C]).then(function(a) { | |
| var b = a[0], | |
| c = a[1]; | |
| return e.__sequence([b, e.__processRequestMethod, e.__processRequestType, e.__processToken, e.__processRequestUrl, e.middlewares, e.__processRequest, c]) | |
| }).then(function() { | |
| var a = e.options.retJson; | |
| return a.retType !== t.SUCCESS ? p.reject(a) : e.options.successCallback ? void e.options.successCallback(a) : p.resolve(a) | |
| })["catch"](function(a) { | |
| var b; | |
| return a instanceof Error ? (console.error(a.stack), | |
| b = { | |
| ret: [a.message], | |
| stack: [a.stack], | |
| retJson: t.ERROR | |
| }) : b = "string" == typeof a ? { | |
| ret: [a], | |
| retJson: t.ERROR | |
| } : void 0 !== a ? a : e.options.retJson, | |
| e.options.failureCallback ? void e.options.failureCallback(b) : p.reject(b) | |
| }); | |
| return this.__processRequestType(), | |
| e.options.H5Request && (e.constructor.__firstProcessor || (e.constructor.__firstProcessor = h), | |
| B = function(a) { | |
| e.constructor.__firstProcessor.then(a)["catch"](a) | |
| }), ("get" === this.params.type && "json" === this.params.dataType || "post" === this.params.type) && (c.pageDomain = c.pageDomain || g(a.location.hostname), | |
| c.mainDomain !== c.pageDomain && (c.maxRetryTimes = 4, | |
| c.CDR = !0)), | |
| h | |
| }, | |
| b.mtop = function(a) { | |
| return new o(a) | |
| }, | |
| b.mtop.request = function(a, b, c) { | |
| var d = { | |
| H5Request: a.H5Request, | |
| WindVaneRequest: a.WindVaneRequest, | |
| LoginRequest: a.LoginRequest, | |
| AntiCreep: a.AntiCreep, | |
| AntiFlood: a.AntiFlood, | |
| successCallback: b, | |
| failureCallback: c || b | |
| }; | |
| return new o(a).request(d) | |
| }, | |
| b.mtop.H5Request = function(a, b, c) { | |
| var d = { | |
| H5Request: !0, | |
| successCallback: b, | |
| failureCallback: c || b | |
| }; | |
| return new o(a).request(d) | |
| }, | |
| b.mtop.middlewares = s, | |
| b.mtop.config = r, | |
| b.mtop.RESPONSE_TYPE = t, | |
| b.mtop.CLASS = o | |
| }(window, window.lib || (window.lib = {})), | |
| function(a, b) { | |
| function c(a) { | |
| return a.preventDefault(), !1 | |
| } | |
| function d(a) { | |
| var b = new RegExp("(?:^|;\\s*)" + a + "\\=([^;]+)(?:;\\s*|$)").exec(document.cookie); | |
| return b ? b[1] : void 0 | |
| } | |
| function e(b, d) { | |
| var e = this, | |
| f = a.dpr || 1, | |
| g = document.createElement("div"), | |
| h = document.documentElement.getBoundingClientRect(), | |
| i = Math.max(h.width, window.innerWidth) / f, | |
| j = Math.max(h.height, window.innerHeight) / f; | |
| g.style.cssText = ["-webkit-transform:scale(" + f + ") translateZ(0)", "-ms-transform:scale(" + f + ") translateZ(0)", "transform:scale(" + f + ") translateZ(0)", "-webkit-transform-origin:0 0", "-ms-transform-origin:0 0", "transform-origin:0 0", "width:" + i + "px", "height:" + j + "px", "z-index:999999", "position:" + (i > 800 ? "fixed" : "absolute"), "left:0", "top:0px", "background:" + (i > 800 ? "rgba(0,0,0,.5)" : "#FFF"), "display:none"].join(";"); | |
| var k = document.createElement("div"); | |
| k.style.cssText = ["width:100%", "height:52px", "background:#EEE", "line-height:52px", "text-align:left", "box-sizing:border-box", "padding-left:20px", "position:absolute", "left:0", "top:0", "font-size:16px", "font-weight:bold", "color:#333"].join(";"), | |
| k.innerText = b; | |
| var l = document.createElement("a"); | |
| l.style.cssText = ["display:block", "position:absolute", "right:0", "top:0", "height:52px", "line-height:52px", "padding:0 20px", "color:#999"].join(";"), | |
| l.innerText = "关闭"; | |
| var m = document.createElement("iframe"); | |
| m.style.cssText = ["width:100%", "height:100%", "border:0", "overflow:hidden"].join(";"), | |
| i > 800 && (k.style.cssText = ["width:370px", "height:52px", "background:#EEE", "line-height:52px", "text-align:left", "box-sizing:border-box", "padding-left:20px", "position:absolute", "left:" + (i / 2 - 185) + "px", "top:40px", "font-size:16px", "font-weight:bold", "color:#333"].join(";"), | |
| m.style.cssText = ["position:absolute", "top:92px", "left:" + (i / 2 - 185) + "px", "width:370px", "height:480px", "border:0", "background:#FFF", "overflow:hidden"].join(";")), | |
| k.appendChild(l), | |
| g.appendChild(k), | |
| g.appendChild(m), | |
| g.className = "J_MIDDLEWARE_FRAME_WIDGET", | |
| document.body.appendChild(g), | |
| m.src = d, | |
| l.addEventListener("click", function() { | |
| e.hide(); | |
| var a = document.createEvent("HTMLEvents"); | |
| a.initEvent("close", !1, !1), | |
| g.dispatchEvent(a) | |
| }, !1), | |
| this.addEventListener = function() { | |
| g.addEventListener.apply(g, arguments) | |
| }, | |
| this.removeEventListener = function() { | |
| g.removeEventListener.apply(g, arguments) | |
| }, | |
| this.show = function() { | |
| document.addEventListener("touchmove", c, !1), | |
| g.style.display = "block", | |
| window.scrollTo(0, 0) | |
| }, | |
| this.hide = function() { | |
| document.removeEventListener("touchmove", c), | |
| window.scrollTo(0, -h.top), | |
| g.parentNode && g.parentNode.removeChild(g) | |
| } | |
| } | |
| function f(a) { | |
| var c = this, | |
| d = this.options, | |
| e = this.params; | |
| return a().then(function() { | |
| var a = d.retJson, | |
| f = a.ret, | |
| g = navigator.userAgent.toLowerCase(), | |
| h = g.indexOf("safari") > -1 && g.indexOf("chrome") < 0 && g.indexOf("qqbrowser") < 0; | |
| if (f instanceof Array && (f = f.join(",")), (f.indexOf("SESSION_EXPIRED") > -1 || f.indexOf("SID_INVALID") > -1 || f.indexOf("AUTH_REJECT") > -1 || f.indexOf("NEED_LOGIN") > -1) && (a.retType = l.SESSION_EXPIRED, !d.WindVaneRequest && (k.LoginRequest === !0 || d.LoginRequest === !0 || e.needLogin === !0))) { | |
| if (!b.login) throw new Error("LOGIN_NOT_FOUND::缺少lib.login"); | |
| if (d.safariGoLogin !== !0 || !h || "taobao.com" === d.pageDomain) return b.login.goLoginAsync().then(function(a) { | |
| return c.__sequence([c.__processToken, c.__processRequestUrl, c.__processUnitPrefix, c.middlewares, c.__processRequest]) | |
| })["catch"](function(a) { | |
| throw "CANCEL" === a ? new Error("LOGIN_CANCEL::用户取消登录") : new Error("LOGIN_FAILURE::用户登录失败") | |
| }); | |
| b.login.goLogin() | |
| } | |
| }) | |
| } | |
| function g(a) { | |
| var b = this.options; | |
| this.params; | |
| return b.H5Request !== !0 || k.AntiFlood !== !0 && b.AntiFlood !== !0 ? void a() : a().then(function() { | |
| var a = b.retJson, | |
| c = a.ret; | |
| c instanceof Array && (c = c.join(",")), | |
| c.indexOf("FAIL_SYS_USER_VALIDATE") > -1 && a.data.url && (b.AntiFloodReferer ? location.href = a.data.url.replace(/(http_referer=).+/, "$1" + b.AntiFloodReferer) : location.href = a.data.url) | |
| }) | |
| } | |
| function h(b) { | |
| var c = this, | |
| f = this.options, | |
| g = this.params; | |
| return g.forceAntiCreep !== !0 && f.H5Request !== !0 || k.AntiCreep !== !0 && f.AntiCreep !== !0 ? void b() : b().then(function() { | |
| var b = f.retJson, | |
| h = b.ret; | |
| if (h instanceof Array && (h = h.join(",")), | |
| h.indexOf("RGV587_ERROR::SM") > -1 && b.data.url) { | |
| var j = "_m_h5_smt", | |
| k = d(j), | |
| l = !1; | |
| if (f.saveAntiCreepToken === !0 && k) { | |
| k = JSON.parse(k); | |
| for (var m in k) | |
| g[m] && (l = !0) | |
| } | |
| if (f.saveAntiCreepToken === !0 && k && !l) { | |
| for (var m in k) | |
| g[m] = k[m]; | |
| return c.__sequence([c.__processToken, c.__processRequestUrl, c.__processUnitPrefix, c.middlewares, c.__processRequest]) | |
| } | |
| return new i(function(d, h) { | |
| function i() { | |
| m.removeEventListener("close", i), | |
| a.removeEventListener("message", k), | |
| h("USER_INPUT_CANCEL::用户取消输入") | |
| } | |
| function k(b) { | |
| var e; | |
| try { | |
| e = JSON.parse(b.data) || {} | |
| } catch (l) {} | |
| if (e && "child" === e.type) { | |
| m.removeEventListener("close", i), | |
| a.removeEventListener("message", k), | |
| m.hide(); | |
| var n; | |
| try { | |
| n = JSON.parse(decodeURIComponent(e.content)), | |
| "string" == typeof n && (n = JSON.parse(n)); | |
| for (var o in n) | |
| g[o] = n[o]; | |
| f.saveAntiCreepToken === !0 ? (document.cookie = j + "=" + JSON.stringify(n) + ";", | |
| a.location.reload()) : c.__sequence([c.__processToken, c.__processRequestUrl, c.__processUnitPrefix, c.middlewares, c.__processRequest]).then(d) | |
| } catch (l) { | |
| h("USER_INPUT_FAILURE::用户输入失败") | |
| } | |
| } | |
| } | |
| var l = b.data.url, | |
| m = new e("", l); | |
| m.addEventListener("close", i, !1), | |
| a.addEventListener("message", k, !1), | |
| m.show() | |
| }) | |
| } | |
| }) | |
| } | |
| if (!b || !b.mtop || b.mtop.ERROR) throw new Error("Mtop 初始化失败!请参考Mtop文档http://gitlab.alibaba-inc.com/mtb/lib-mtop"); | |
| var i = a.Promise, | |
| j = b.mtop.CLASS, | |
| k = b.mtop.config, | |
| l = b.mtop.RESPONSE_TYPE; | |
| b.mtop.middlewares.push(f), | |
| b.mtop.loginRequest = function(a, b, c) { | |
| var d = { | |
| LoginRequest: !0, | |
| H5Request: !0, | |
| successCallback: b, | |
| failureCallback: c || b | |
| }; | |
| return new j(a).request(d) | |
| }, | |
| b.mtop.antiFloodRequest = function(a, b, c) { | |
| var d = { | |
| AntiFlood: !0, | |
| successCallback: b, | |
| failureCallback: c || b | |
| }; | |
| return new j(a).request(d) | |
| }, | |
| b.mtop.middlewares.push(g), | |
| b.mtop.antiCreepRequest = function(a, b, c) { | |
| var d = { | |
| AntiCreep: !0, | |
| successCallback: b, | |
| failureCallback: c || b | |
| }; | |
| return new j(a).request(d) | |
| }, | |
| b.mtop.middlewares.push(h) | |
| }(window, window.lib || (window.lib = {})); | |
| ! function(a, b) { | |
| function c(a) { | |
| return a.preventDefault(), !1 | |
| } | |
| function d(b, d) { | |
| var e = this, | |
| f = a.dpr || 1, | |
| h = document.createElement("div"), | |
| i = document.documentElement.getBoundingClientRect(), | |
| j = Math.max(i.width, window.innerWidth) / f, | |
| k = Math.max(i.height, window.innerHeight) / f; | |
| h.style.cssText = ["-webkit-transform:scale(" + f + ") translateZ(0)", "-ms-transform:scale(" + f + ") translateZ(0)", "transform:scale(" + f + ") translateZ(0)", "-webkit-transform-origin:0 0", "-ms-transform-origin:0 0", "transform-origin:0 0", "width:" + j + "px", "height:" + k + "px", "z-index:999999", "position:absolute", "left:0", "top:0px", "background:#FFF", "display:none"].join(";"); | |
| var l = document.createElement("div"); | |
| l.style.cssText = ["width:100%", "height:52px", "background:#EEE", "line-height:52px", "text-align:left", "box-sizing:border-box", "padding-left:20px", "position:absolute", "left:0", "top:0", "font-size:16px", "font-weight:bold", "color:#333"].join(";"), | |
| l.innerText = b; | |
| var m = document.createElement("a"); | |
| m.style.cssText = ["display:block", "position:absolute", "right:0", "top:0", "height:52px", "line-height:52px", "padding:0 20px", "color:#999"].join(";"), | |
| m.innerText = "关闭"; | |
| var n = document.createElement("iframe"); | |
| n.style.cssText = ["width:100%", "height:100%", "border:0", "overflow:hidden"].join(";"), | |
| l.appendChild(m), | |
| h.appendChild(l), | |
| h.appendChild(n), | |
| g.body.appendChild(h), | |
| n.src = d, | |
| m.addEventListener("click", function() { | |
| e.hide(); | |
| var a = g.createEvent("HTMLEvents"); | |
| a.initEvent("close", !1, !1), | |
| h.dispatchEvent(a) | |
| }, !1), | |
| this.addEventListener = function() { | |
| h.addEventListener.apply(h, arguments) | |
| }, | |
| this.removeEventListener = function() { | |
| h.removeEventListener.apply(h, arguments) | |
| }, | |
| this.show = function() { | |
| document.addEventListener("touchmove", c, !1), | |
| h.style.display = "block", | |
| window.scrollTo(0, 0) | |
| }, | |
| this.hide = function() { | |
| document.removeEventListener("touchmove", c), | |
| window.scrollTo(0, -i.top), | |
| g.body.removeChild(h) | |
| } | |
| } | |
| function e(a, b) { | |
| this.request = a, | |
| this.response = b; | |
| var c = 0, | |
| d = {}; | |
| this.on = function(a, b) { | |
| d[a] = b | |
| }, | |
| this.next = function() { | |
| var b = m[c++]; | |
| b ? a[b.__name__] ? b(this) : this.next() : this.end() | |
| }, | |
| this.reset = function() { | |
| c = 0, | |
| d.reset && d.reset.call(this) | |
| }, | |
| this.end = function() { | |
| d.end && d.end.call(this) | |
| } | |
| } | |
| function f(a, b) { | |
| b.__name__ = a, | |
| m.push(b) | |
| } | |
| var g = a.document, | |
| h = a.navigator.userAgent, | |
| i = h.match(/WindVane[\/\s]([\d\.\_]+)/); | |
| i && (i = i[1]); | |
| var j, k, l = h.match(/AliApp\(([^\/]+)\/([\d\.\_]+)\)/i); | |
| l && (j = l[1], | |
| k = l[2]), | |
| b.mtop = b.mtop || {}, | |
| b.mtop.middleware = {}; | |
| var m = []; | |
| b.mtop.middleware.pipe = function(a, b) { | |
| return new e(a, b) | |
| }, | |
| b.mtop.middleware.add = f, | |
| f("LoginRequest", function(a) { | |
| function c() { | |
| a.reset() | |
| } | |
| function d() { | |
| a.response && a.response.ret.push("MW_ERROR::LOGIN_FAILURE"), | |
| a.end() | |
| } | |
| function e() { | |
| a.response && a.response.ret.push("MW_ERROR::WIDGET_CANCEL"), | |
| a.end() | |
| } | |
| var f = (a.response && a.response.ret || []).join(","); | |
| f.indexOf("SESSION_EXPIRED") > -1 || f.indexOf("SID_INVALID") > -1 || f.indexOf("AUTH_REJECT") > -1 || f.indexOf("NEED_LOGIN") > -1 ? b.login.goLogin(function(a) { | |
| "SUCCESS" === a ? c() : "CANCEL" === a ? e() : d() | |
| }) : a.next() | |
| }), | |
| f("AntiCreep", function(b) { | |
| function c() { | |
| h.removeEventListener("close", c), | |
| a.removeEventListener("message", e), | |
| b.response && b.response.ret.push("MW_ERROR::WIDGET_CANCEL"), | |
| b.end() | |
| } | |
| function e() { | |
| h.removeEventListener("close", c), | |
| a.removeEventListener("message", e); | |
| var d = JSON.parse(g.data) || {}; | |
| if (d && "child" === d.type) { | |
| var f; | |
| try { | |
| f = JSON.parse(decodeURIComponent(d.content)), | |
| "string" == typeof f && (f = JSON.parse(f)) | |
| } catch (g) { | |
| f = null | |
| } | |
| if (f) { | |
| for (var i in f) | |
| b.request[i] = f[i]; | |
| b.reset() | |
| } else b.response && b.response.ret.push("MW_ERROR::SM_FAILURE"), | |
| b.end(); | |
| h.hide() | |
| } else b.end() | |
| } | |
| var f = (b.response && b.response.ret || []).join(","); | |
| if (!l && f.indexOf("RGV587_ERROR::SM") > -1 && b.response.data.url) { | |
| var g = b.response.data.url, | |
| h = new d("", g); | |
| h.addEventListener("close", c, !1), | |
| a.addEventListener("message", e, !1), | |
| h.show() | |
| } else b.next() | |
| }), | |
| f("AntiFlood", function(a) { | |
| var b = (a.response && a.response.ret || []).join(","); | |
| if (!l && b.indexOf("FAIL_SYS_USER_VALIDATE") > -1 && a.response.data.url) { | |
| var c = a.response.data.url; | |
| location.href = c | |
| } else a.next() | |
| }) | |
| }(window, window.lib || (window.lib = {})); | |
| ! function(a, b) { | |
| function c(a, b) { | |
| a = a.toString().split("."), | |
| b = b.toString().split("."); | |
| for (var c = 0; c < a.length || c < b.length; c++) { | |
| var d = parseInt(a[c], 10), | |
| e = parseInt(b[c], 10); | |
| if (window.isNaN(d) && (d = 0), | |
| window.isNaN(e) && (e = 0), | |
| d < e) return -1; | |
| if (d > e) return 1 | |
| } | |
| return 0 | |
| } | |
| var d = a.Promise, | |
| e = a.document, | |
| f = a.navigator.userAgent, | |
| g = /Windows\sPhone\s(?:OS\s)?[\d\.]+/i.test(f) || /Windows\sNT\s[\d\.]+/i.test(f), | |
| h = g && a.WindVane_Win_Private && a.WindVane_Win_Private.call, | |
| i = /iPhone|iPad|iPod/i.test(f), | |
| j = /Android/i.test(f), | |
| k = f.match(/WindVane[\/\s](\d+[._]\d+[._]\d+)/), | |
| l = Object.prototype.hasOwnProperty, | |
| m = b.windvane = a.WindVane || (a.WindVane = {}), | |
| n = (a.WindVane_Native, | |
| Math.floor(65536 * Math.random())), | |
| o = 1, | |
| p = [], | |
| q = 3, | |
| r = "hybrid", | |
| s = "wv_hybrid", | |
| t = "iframe_", | |
| u = "param_", | |
| v = "chunk_", | |
| w = 6e5, | |
| x = 6e5, | |
| y = 6e4; | |
| k = k ? (k[1] || "0.0.0").replace(/\_/g, ".") : "0.0.0"; | |
| var z = { | |
| isAvailable: 1 === c(k, "0"), | |
| call: function(a, b, c, e, f, g) { | |
| var h, i; | |
| "number" == typeof arguments[arguments.length - 1] && (g = arguments[arguments.length - 1]), | |
| "function" != typeof e && (e = null), | |
| "function" != typeof f && (f = null), | |
| d && (i = {}, | |
| i.promise = new d(function(a, b) { | |
| i.resolve = a, | |
| i.reject = b | |
| })), | |
| h = A.getSid(); | |
| var j = { | |
| success: e, | |
| failure: f, | |
| deferred: i | |
| }; | |
| if (g > 0 && (j.timeout = setTimeout(function() { | |
| z.onFailure(h, { | |
| ret: "HY_TIMEOUT" | |
| }) | |
| }, g)), | |
| A.registerCall(h, j), | |
| A.registerGC(h, g), | |
| z.isAvailable ? A.callMethod(a, b, c, h) : z.onFailure(h, { | |
| ret: "HY_NOT_IN_WINDVANE" | |
| }), | |
| i) return i.promise | |
| }, | |
| fireEvent: function(a, b, c) { | |
| var d = e.createEvent("HTMLEvents"); | |
| d.initEvent(a, !1, !0), | |
| d.param = A.parseData(b || A.getData(c)), | |
| e.dispatchEvent(d) | |
| }, | |
| getParam: function(a) { | |
| return A.getParam(a) | |
| }, | |
| setData: function(a, b) { | |
| A.setData(a, b) | |
| }, | |
| onSuccess: function(a, b) { | |
| A.onComplete(a, b, "success") | |
| }, | |
| onFailure: function(a, b) { | |
| A.onComplete(a, b, "failure") | |
| } | |
| }, A = { | |
| params: {}, | |
| chunks: {}, | |
| calls: {}, | |
| getSid: function() { | |
| return (n + o++) % 65536 + "" | |
| }, | |
| buildParam: function(a) { | |
| return a && "object" == typeof a ? JSON.stringify(a) : a || "" | |
| }, | |
| getParam: function(a) { | |
| return this.params[u + a] || "" | |
| }, | |
| setParam: function(a, b) { | |
| this.params[u + a] = b | |
| }, | |
| parseData: function(a) { | |
| var b; | |
| if (a && "string" == typeof a) try { | |
| b = JSON.parse(a) | |
| } catch (a) { | |
| b = { | |
| ret: ["WV_ERR::PARAM_PARSE_ERROR"] | |
| } | |
| } else b = a || {}; | |
| return b | |
| }, | |
| setData: function() { | |
| this.chunks[v + sid] = this.chunks[v + sid] || [], | |
| this.chunks[v + sid].push(chunk) | |
| }, | |
| getData: function(a) { | |
| return this.chunks[v + a] ? this.chunks[v + a].join("") : "" | |
| }, | |
| registerCall: function(a, b) { | |
| this.calls[a] = b | |
| }, | |
| unregisterCall: function(a) { | |
| var b = {}; | |
| return this.calls[a] && (b = this.calls[a], | |
| delete this.calls[a]), | |
| b | |
| }, | |
| useIframe: function(a, b) { | |
| var c = t + a, | |
| d = p.pop(); | |
| d || (d = e.createElement("iframe"), | |
| d.setAttribute("frameborder", "0"), | |
| d.style.cssText = "width:0;height:0;border:0;display:none;"), | |
| d.setAttribute("id", c), | |
| d.setAttribute("src", b), | |
| d.parentNode || setTimeout(function() { | |
| e.body.appendChild(d) | |
| }, 5) | |
| }, | |
| retrieveIframe: function(a) { | |
| var b = t + a, | |
| c = e.querySelector("#" + b); | |
| p.length >= q ? e.body.removeChild(c) : p.indexOf(c) < 0 && p.push(c) | |
| }, | |
| callMethod: function(b, c, d, e) { | |
| if (d = A.buildParam(d), | |
| g) h ? a.WindVane_Win_Private.call(b, c, e, d) : this.onComplete(e, { | |
| ret: "HY_NO_HANDLER_ON_WP" | |
| }, "failure"); | |
| else { | |
| var f = r + "://" + b + ":" + e + "/" + c + "?" + d; | |
| if (i) this.setParam(e, d), | |
| this.useIframe(e, f); | |
| else if (j) { | |
| var k = s + ":"; | |
| window.prompt(f, k) | |
| } else this.onComplete(e, { | |
| ret: "HY_NOT_SUPPORT_DEVICE" | |
| }, "failure") | |
| } | |
| }, | |
| registerGC: function(a, b) { | |
| var c = this, | |
| d = Math.max(b || 0, w), | |
| e = Math.max(b || 0, y), | |
| f = Math.max(b || 0, x); | |
| setTimeout(function() { | |
| c.unregisterCall(a) | |
| }, d), | |
| i ? setTimeout(function() { | |
| c.params[u + a] && delete c.params[u + a] | |
| }, e) : j && setTimeout(function() { | |
| c.chunks[v + a] && delete c.chunks[v + a] | |
| }, f) | |
| }, | |
| onComplete: function(a, b, c) { | |
| var d = this.unregisterCall(a), | |
| e = d.success, | |
| f = d.failure, | |
| g = d.deferred, | |
| h = d.timeout; | |
| h && clearTimeout(h), | |
| b = b ? b : this.getData(a), | |
| b = this.parseData(b); | |
| var k = b.ret; | |
| "string" == typeof k && (b = b.value || b, | |
| b.ret || (b.ret = [k])), | |
| "success" === c ? (e && e(b), | |
| g && g.resolve(b)) : "failure" === c && (f && f(b), | |
| g && g.reject(b)), | |
| i ? (this.retrieveIframe(a), | |
| this.params[u + a] && delete this.params[u + a]) : j && this.chunks[v + a] && delete this.chunks[v + a] | |
| } | |
| }; | |
| for (var B in z) | |
| l.call(m, B) || (m[B] = z[B]) | |
| }(window, window.lib || (window.lib = {})); | |
| "use strict"; | |
| var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(a) { | |
| return typeof a | |
| } : function(a) { | |
| return a && "function" == typeof Symbol && a.constructor === Symbol && a !== Symbol.prototype ? "symbol" : typeof a | |
| }; | |
| ! function(a, n) { | |
| function i(a) { | |
| var n = this; | |
| if (!n.options) return a(); | |
| if (!n.params) return a(); | |
| var i = n.params || {}, o = n.options || {}, e = m(), | |
| t = e.regionID, | |
| r = e.language, | |
| d = p(t); | |
| o.querystring = o.querystring || {}, | |
| o.querystring["x-i18n-regionID"] = i["x-i18n-regionID"] || t || i.regionID, | |
| o.querystring["x-i18n-language"] = i["x-i18n-language"] || r || i.language, | |
| o.querystring.appkey = c() ? "4272" : "24677475"; | |
| var l = new RegExp(["(" + o.prefix + ")", "(" + o.subDomain + ")", o.mainDomain].join(".")); | |
| return 0 === o.prefix.length && (l = new RegExp(["(" + o.subDomain + ")", o.mainDomain].join("."))), | |
| o.path && 0 !== o.path.length ? (0 !== d.prefix.length ? o.path = o.path.replace(l, d.prefix + "." + d.subDomain + "." + d.mainDomain) : o.path = o.path.replace(l, d.subDomain + "." + d.mainDomain), | |
| a()) : a() | |
| } | |
| var o = { | |
| ID: { | |
| prefix: "", | |
| subDomain: "acs-m", | |
| mainDomain: "lazada.co.id" | |
| }, | |
| MY: { | |
| prefix: "", | |
| subDomain: "acs-m", | |
| mainDomain: "lazada.com.my" | |
| }, | |
| PH: { | |
| prefix: "", | |
| subDomain: "acs-m", | |
| mainDomain: "lazada.com.ph" | |
| }, | |
| SG: { | |
| prefix: "", | |
| subDomain: "acs-m", | |
| mainDomain: "lazada.sg" | |
| }, | |
| TH: { | |
| prefix: "", | |
| subDomain: "acs-m", | |
| mainDomain: "lazada.co.th" | |
| }, | |
| VN: { | |
| prefix: "", | |
| subDomain: "acs-m", | |
| mainDomain: "lazada.vn" | |
| }, | |
| DAILY: { | |
| prefix: "acs", | |
| subDomain: "waptest", | |
| mainDomain: "lazada.test" | |
| }, | |
| PRE: { | |
| ID: { | |
| prefix: "", | |
| subDomain: "acs-wapa", | |
| mainDomain: "lazada.co.id" | |
| }, | |
| MY: { | |
| prefix: "", | |
| subDomain: "acs-wapa", | |
| mainDomain: "lazada.com.my" | |
| }, | |
| PH: { | |
| prefix: "", | |
| subDomain: "acs-wapa", | |
| mainDomain: "lazada.com.ph" | |
| }, | |
| SG: { | |
| prefix: "", | |
| subDomain: "acs-wapa", | |
| mainDomain: "lazada.sg" | |
| }, | |
| TH: { | |
| prefix: "", | |
| subDomain: "acs-wapa", | |
| mainDomain: "lazada.co.th" | |
| }, | |
| VN: { | |
| prefix: "", | |
| subDomain: "acs-wapa", | |
| mainDomain: "lazada.vn" | |
| } | |
| } | |
| }, e = { | |
| ID: { | |
| id: "360", | |
| lang: ["id"], | |
| langShort: ["id"], | |
| currency: "IDR", | |
| domain: "lazada.co.id" | |
| }, | |
| MY: { | |
| id: "458", | |
| currency: "MYR", | |
| lang: ["en-MY", "ms"], | |
| langShort: ["en", "ms"], | |
| domain: "lazada.com.my" | |
| }, | |
| PH: { | |
| id: "608", | |
| currency: "PHP", | |
| lang: ["en-PH"], | |
| langShort: ["en"], | |
| domain: "lazada.com.ph" | |
| }, | |
| SG: { | |
| id: "702", | |
| currency: "SGD", | |
| lang: ["en-SG"], | |
| langShort: ["en"], | |
| domain: "lazada.sg" | |
| }, | |
| TH: { | |
| id: "764", | |
| currency: "THB", | |
| lang: ["th", "en"], | |
| domain: "lazada.co.th" | |
| }, | |
| VN: { | |
| id: "704", | |
| currency: "VND", | |
| lang: ["vi", "en"], | |
| domain: "lazada.vn" | |
| } | |
| }, t = "function" == typeof callNative, | |
| r = function() { | |
| if (t) return "weex"; | |
| var a = navigator.userAgent.toLowerCase(); | |
| if (/AliApp/i.test(a)) { | |
| var n = "", | |
| i = a.match(/AliApp\(([a-z-A-Z]{1,20})\/(\d+(\.\d+){0,3})?\)/i); | |
| if (i && i.length >= 3 && (n = i[1]), | |
| n && ("la-android" === n.toLowerCase() || "la" === n.toLowerCase())) return "windvane" | |
| } | |
| return "h5" | |
| }; | |
| if ("windvane" === r() || "weex" === r()) return void console.warn("native 内中间件失效"); | |
| if (!n || !n.mtop || n.mtop.ERROR) throw new Error("Mtop 初始化失败!请参考Mtop文档http://gitlab.alibaba-inc.com/mtb/lib-mtop"); | |
| var m = function() { | |
| var a = "", | |
| n = "", | |
| i = void 0; | |
| if ("object" === ("undefined" == typeof window ? "undefined" : _typeof(window)) && window._i18n_) { | |
| if ("string" == typeof(i = window._i18n_)) try { | |
| i = JSON.parse(i) | |
| } catch (a) { | |
| i = {} | |
| } | |
| "object" === (void 0 === i ? "undefined" : _typeof(i)) && (a = i.regionID, | |
| n = i.language) | |
| } | |
| if (!a && window.g_config && "object" === _typeof(window.g_config) && (a = window.g_config.regionID, | |
| n = window.g_config.language), !a && "object" === ("undefined" == typeof location ? "undefined" : _typeof(location)) && location.hostname) for (var o in e) { | |
| var t = e[o]; | |
| if (t && t.domain && location.hostname.indexOf(t.domain) >= 0) { | |
| a = o, | |
| n = e[o].lang[0]; | |
| break | |
| } | |
| } | |
| return a = a || "", | |
| n = n || "", { | |
| regionID: a, | |
| language: n | |
| } | |
| }, c = function() { | |
| var a = window && window.location.host || ""; | |
| return RegExp(/127.0.0.1|local|daily|waptest|test/).test(a) || location.search.indexOf("debug=true") >= 0 | |
| }, d = function() { | |
| var a = "object" === ("undefined" == typeof location ? "undefined" : _typeof(location)) && location.hostname || ""; | |
| return a.indexOf("-p.lazada.") >= 0 || a.indexOf("pre-wormhole.") >= 0 | |
| }, p = function(a) { | |
| var n = ""; | |
| if (c()) n = o.DAILY; | |
| else if (d()) n = o.PRE[a.toLocaleUpperCase()]; | |
| else { | |
| if ("string" != typeof a || !a) { | |
| var i = m() || {}; | |
| a = i.regionID || "SG" | |
| } | |
| n = o[a.toLocaleUpperCase()] | |
| } | |
| return n | |
| }; | |
| n.mtop.middlewares.push(i) | |
| }(window, window.lib || (window.lib = {})); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment