/*! * vue-resource v1.5.1 * https://github.com/pagekit/vue-resource * Released under the MIT License. */ !function (t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.VueResource = e() }(this, function () { "use strict"; function u(t) { this.state = 2, this.value = void 0, this.deferred = []; var e = this; try { t(function (t) { e.resolve(t) }, function (t) { e.reject(t) }) } catch (t) { e.reject(t) } } u.reject = function (n) { return new u(function (t, e) { e(n) }) }, u.resolve = function (n) { return new u(function (t, e) { t(n) }) }, u.all = function (s) { return new u(function (n, t) { var o = 0, r = []; function e(e) { return function (t) { r[e] = t, (o += 1) === s.length && n(r) } } 0 === s.length && n(r); for (var i = 0; i < s.length; i += 1) u.resolve(s[i]).then(e(i), t) }) }, u.race = function (o) { return new u(function (t, e) { for (var n = 0; n < o.length; n += 1) u.resolve(o[n]).then(t, e) }) }; var t = u.prototype; function c(t, e) { t instanceof Promise ? this.promise = t : this.promise = new Promise(t.bind(e)), this.context = e } t.resolve = function (t) { var e = this; if (2 === e.state) { if (t === e) throw new TypeError("Promise settled with itself."); var n = !1; try { var o = t && t.then; if (null !== t && "object" == typeof t && "function" == typeof o) return void o.call(t, function (t) { n || e.resolve(t), n = !0 }, function (t) { n || e.reject(t), n = !0 }) } catch (t) { return void(n || e.reject(t)) } e.state = 0, e.value = t, e.notify() } }, t.reject = function (t) { var e = this; if (2 === e.state) { if (t === e) throw new TypeError("Promise settled with itself."); e.state = 1, e.value = t, e.notify() } }, t.notify = function () { var t, i = this; r(function () { if (2 !== i.state) for (; i.deferred.length;) { var t = i.deferred.shift(), e = t[0], n = t[1], o = t[2], r = t[3]; try { 0 === i.state ? o("function" == typeof e ? e.call(void 0, i.value) : i.value) : 1 === i.state && ("function" == typeof n ? o(n.call(void 0, i.value)) : r(i.value)) } catch (t) { r(t) } } }, t) }, t.then = function (n, o) { var r = this; return new u(function (t, e) { r.deferred.push([n, o, t, e]), r.notify() }) }, t.catch = function (t) { return this.then(void 0, t) }, "undefined" == typeof Promise && (window.Promise = u), c.all = function (t, e) { return new c(Promise.all(t), e) }, c.resolve = function (t, e) { return new c(Promise.resolve(t), e) }, c.reject = function (t, e) { return new c(Promise.reject(t), e) }, c.race = function (t, e) { return new c(Promise.race(t), e) }; var e = c.prototype; e.bind = function (t) { return this.context = t, this }, e.then = function (t, e) { return t && t.bind && this.context && (t = t.bind(this.context)), e && e.bind && this.context && (e = e.bind(this.context)), new c(this.promise.then(t, e), this.context) }, e.catch = function (t) { return t && t.bind && this.context && (t = t.bind(this.context)), new c(this.promise.catch(t), this.context) }, e.finally = function (e) { return this.then(function (t) { return e.call(this), t }, function (t) { return e.call(this), Promise.reject(t) }) }; var r, i = {}.hasOwnProperty, o = [].slice, a = !1, s = "undefined" != typeof window; function f(t) { return t ? t.replace(/^\s*|\s*$/g, "") : "" } function p(t) { return t ? t.toLowerCase() : "" } var h = Array.isArray; function d(t) { return "string" == typeof t } function l(t) { return "function" == typeof t } function m(t) { return null !== t && "object" == typeof t } function y(t) { return m(t) && Object.getPrototypeOf(t) == Object.prototype } function v(t, e, n) { var o = c.resolve(t); return arguments.length < 2 ? o : o.then(e, n) } function b(t, e, n) { return l(n = n || {}) && (n = n.call(e)), T(t.bind({$vm: e, $options: n}), t, {$options: n}) } function g(t, e) { var n, o; if (h(t)) for (n = 0; n < t.length; n++) e.call(t[n], t[n], n); else if (m(t)) for (o in t) i.call(t, o) && e.call(t[o], t[o], o); return t } var w = Object.assign || function (e) { return o.call(arguments, 1).forEach(function (t) { x(e, t) }), e }; function T(e) { return o.call(arguments, 1).forEach(function (t) { x(e, t, !0) }), e } function x(t, e, n) { for (var o in e) n && (y(e[o]) || h(e[o])) ? (y(e[o]) && !y(t[o]) && (t[o] = {}), h(e[o]) && !h(t[o]) && (t[o] = []), x(t[o], e[o], n)) : void 0 !== e[o] && (t[o] = e[o]) } function j(t, e, n) { var o, u, a, r = (o = t, u = ["+", "#", ".", "/", ";", "?", "&"], { vars: a = [], expand: function (s) { return o.replace(/\{([^{}]+)\}|([^{}]+)/g, function (t, e, n) { if (e) { var o = null, r = []; if (-1 !== u.indexOf(e.charAt(0)) && (o = e.charAt(0), e = e.substr(1)), e.split(/,/g).forEach(function (t) { var e = /([^:*]*)(?::(\d+)|(\*))?/.exec(t); r.push.apply(r, function (t, e, n, o) { var r = t[n], i = []; if (E(r) && "" !== r) if ("string" == typeof r || "number" == typeof r || "boolean" == typeof r) r = r.toString(), o && "*" !== o && (r = r.substring(0, parseInt(o, 10))), i.push(O(e, r, P(e) ? n : null)); else if ("*" === o) Array.isArray(r) ? r.filter(E).forEach(function (t) { i.push(O(e, t, P(e) ? n : null)) }) : Object.keys(r).forEach(function (t) { E(r[t]) && i.push(O(e, r[t], t)) }); else { var s = []; Array.isArray(r) ? r.filter(E).forEach(function (t) { s.push(O(e, t)) }) : Object.keys(r).forEach(function (t) { E(r[t]) && (s.push(encodeURIComponent(t)), s.push(O(e, r[t].toString()))) }), P(e) ? i.push(encodeURIComponent(n) + "=" + s.join(",")) : 0 !== s.length && i.push(s.join(",")) } else ";" === e ? i.push(encodeURIComponent(n)) : "" !== r || "&" !== e && "?" !== e ? "" === r && i.push("") : i.push(encodeURIComponent(n) + "="); return i }(s, o, e[1], e[2] || e[3])), a.push(e[1]) }), o && "+" !== o) { var i = ","; return "?" === o ? i = "&" : "#" !== o && (i = o), (0 !== r.length ? o : "") + r.join(i) } return r.join(",") } return C(n) }) } }), i = r.expand(e); return n && n.push.apply(n, r.vars), i } function E(t) { return null != t } function P(t) { return ";" === t || "&" === t || "?" === t } function O(t, e, n) { return e = "+" === t || "#" === t ? C(e) : encodeURIComponent(e), n ? encodeURIComponent(n) + "=" + e : e } function C(t) { return t.split(/(%[0-9A-Fa-f]{2})/g).map(function (t) { return /%[0-9A-Fa-f]/.test(t) || (t = encodeURI(t)), t }).join("") } function $(t, e) { var r, i = this || {}, n = t; return d(t) && (n = { url: t, params: e }), n = T({}, $.options, i.$options, n), $.transforms.forEach(function (t) { var e, n, o; d(t) && (t = $.transform[t]), l(t) && (e = t, n = r, o = i.$vm, r = function (t) { return e.call(o, t, n) }) }), r(n) } function U(i) { return new c(function (o) { var r = new XDomainRequest, t = function (t) { var e = t.type, n = 0; "load" === e ? n = 200 : "error" === e && (n = 500), o(i.respondWith(r.responseText, {status: n})) }; i.abort = function () { return r.abort() }, r.open(i.method, i.getUrl()), i.timeout && (r.timeout = i.timeout), r.onload = t, r.onabort = t, r.onerror = t, r.ontimeout = t, r.onprogress = function () { }, r.send(i.getBody()) }) } $.options = {url: "", root: null, params: {}}, $.transform = { template: function (e) { var t = [], n = j(e.url, e.params, t); return t.forEach(function (t) { delete e.params[t] }), n }, query: function (t, e) { var n = Object.keys($.options.params), o = {}, r = e(t); return g(t.params, function (t, e) { -1 === n.indexOf(e) && (o[e] = t) }), (o = $.params(o)) && (r += (-1 == r.indexOf("?") ? "?" : "&") + o), r }, root: function (t, e) { var n, o, r = e(t); return d(t.root) && !/^(https?:)?\//.test(r) && (n = t.root, o = "/", r = (n && void 0 === o ? n.replace(/\s+$/, "") : n && o ? n.replace(new RegExp("[" + o + "]+$"), "") : n) + "/" + r), r } }, $.transforms = ["template", "query", "root"], $.params = function (t) { var e = [], n = encodeURIComponent; return e.add = function (t, e) { l(e) && (e = e()), null === e && (e = ""), this.push(n(t) + "=" + n(e)) }, function n(o, t, r) { var i, s = h(t), u = y(t); g(t, function (t, e) { i = m(t) || h(t), r && (e = r + "[" + (u || i ? e : "") + "]"), !r && s ? o.add(t.name, t.value) : i ? n(o, t, e) : o.add(e, t) }) }(e, t), e.join("&").replace(/%20/g, "+") }, $.parse = function (t) { var e = document.createElement("a"); return document.documentMode && (e.href = t, t = e.href), e.href = t, { href: e.href, protocol: e.protocol ? e.protocol.replace(/:$/, "") : "", port: e.port, host: e.host, hostname: e.hostname, pathname: "/" === e.pathname.charAt(0) ? e.pathname : "/" + e.pathname, search: e.search ? e.search.replace(/^\?/, "") : "", hash: e.hash ? e.hash.replace(/^#/, "") : "" } }; var R = s && "withCredentials" in new XMLHttpRequest; function n(u) { return new c(function (o) { var t, r, e = u.jsonp || "callback", i = u.jsonpCallback || "_jsonp" + Math.random().toString(36).substr(2), s = null; t = function (t) { var e = t.type, n = 0; "load" === e && null !== s ? n = 200 : "error" === e && (n = 500), n && window[i] && (delete window[i], document.body.removeChild(r)), o(u.respondWith(s, {status: n})) }, window[i] = function (t) { s = JSON.stringify(t) }, u.abort = function () { t({type: "abort"}) }, u.params[e] = i, u.timeout && setTimeout(u.abort, u.timeout), (r = document.createElement("script")).src = u.getUrl(), r.type = "text/javascript", r.async = !0, r.onload = t, r.onerror = t, document.body.appendChild(r) }) } function A(r) { return new c(function (n) { var o = new XMLHttpRequest, t = function (t) { var e = r.respondWith("response" in o ? o.response : o.responseText, { status: 1223 === o.status ? 204 : o.status, statusText: 1223 === o.status ? "No Content" : f(o.statusText) }); g(f(o.getAllResponseHeaders()).split("\n"), function (t) { e.headers.append(t.slice(0, t.indexOf(":")), t.slice(t.indexOf(":") + 1)) }), n(e) }; r.abort = function () { return o.abort() }, o.open(r.method, r.getUrl(), !0), r.timeout && (o.timeout = r.timeout), r.responseType && "responseType" in o && (o.responseType = r.responseType), (r.withCredentials || r.credentials) && (o.withCredentials = !0), r.crossOrigin || r.headers.set("X-Requested-With", "XMLHttpRequest"), l(r.progress) && "GET" === r.method && o.addEventListener("progress", r.progress), l(r.downloadProgress) && o.addEventListener("progress", r.downloadProgress), l(r.progress) && /^(POST|PUT)$/i.test(r.method) && o.upload.addEventListener("progress", r.progress), l(r.uploadProgress) && o.upload && o.upload.addEventListener("progress", r.uploadProgress), r.headers.forEach(function (t, e) { o.setRequestHeader(e, t) }), o.onload = t, o.onabort = t, o.onerror = t, o.ontimeout = t, o.send(r.getBody()) }) } function S(s) { var u = require("got"); return new c(function (e) { var n, t = s.getUrl(), o = s.getBody(), r = s.method, i = {}; s.headers.forEach(function (t, e) { i[e] = t }), u(t, {body: o, method: r, headers: i}).then(n = function (t) { var n = s.respondWith(t.body, {status: t.statusCode, statusText: f(t.statusMessage)}); g(t.headers, function (t, e) { n.headers.set(e, t) }), e(n) }, function (t) { return n(t.response) }) }) } function k(t) { return (t.client || (s ? A : S))(t) } var I = function (t) { var n = this; this.map = {}, g(t, function (t, e) { return n.append(e, t) }) }; function L(t, n) { return Object.keys(t).reduce(function (t, e) { return p(n) === p(e) ? e : t }, null) } I.prototype.has = function (t) { return null !== L(this.map, t) }, I.prototype.get = function (t) { var e = this.map[L(this.map, t)]; return e ? e.join() : null }, I.prototype.getAll = function (t) { return this.map[L(this.map, t)] || [] }, I.prototype.set = function (t, e) { this.map[function (t) { if (/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t)) throw new TypeError("Invalid character in header field name"); return f(t) }(L(this.map, t) || t)] = [f(e)] }, I.prototype.append = function (t, e) { var n = this.map[L(this.map, t)]; n ? n.push(f(e)) : this.set(t, e) }, I.prototype.delete = function (t) { delete this.map[L(this.map, t)] }, I.prototype.deleteAll = function () { this.map = {} }, I.prototype.forEach = function (n, o) { var r = this; g(this.map, function (t, e) { g(t, function (t) { return n.call(o, t, e, r) }) }) }; var q = function (t, e) { var n, o, r, i = e.url, s = e.headers, u = e.status, a = e.statusText; this.url = i, this.ok = 200 <= u && u < 300, this.status = u || 0, this.statusText = a || "", this.headers = new I(s), d(this.body = t) ? this.bodyText = t : (r = t, "undefined" != typeof Blob && r instanceof Blob && (this.bodyBlob = t, (0 === (o = t).type.indexOf("text") || -1 !== o.type.indexOf("json")) && (this.bodyText = (n = t, new c(function (t) { var e = new FileReader; e.readAsText(n), e.onload = function () { t(e.result) } }))))) }; q.prototype.blob = function () { return v(this.bodyBlob) }, q.prototype.text = function () { return v(this.bodyText) }, q.prototype.json = function () { return v(this.text(), function (t) { return JSON.parse(t) }) }, Object.defineProperty(q.prototype, "data", { get: function () { return this.body }, set: function (t) { this.body = t } }); var H = function (t) { var e; this.body = null, this.params = {}, w(this, t, {method: (e = t.method || "GET", e ? e.toUpperCase() : "")}), this.headers instanceof I || (this.headers = new I(this.headers)) }; H.prototype.getUrl = function () { return $(this) }, H.prototype.getBody = function () { return this.body }, H.prototype.respondWith = function (t, e) { return new q(t, w(e || {}, {url: this.getUrl()})) }; var B = {"Content-Type": "application/json;charset=utf-8"}; function M(t) { var e = this || {}, n = function (i) { var s = [k], u = []; function t(t) { for (; s.length;) { var e = s.pop(); if (l(e)) { var o = void 0, n = void 0; if (m(o = e.call(i, t, function (t) { return n = t }) || n)) return new c(function (t, n) { u.forEach(function (e) { o = v(o, function (t) { return e.call(i, t) || t }, n) }), v(o, t, n) }, i); l(o) && u.unshift(o) } else r = "Invalid interceptor of type " + typeof e + ", must be a function", "undefined" != typeof console && a && console.warn("[VueResource warn]: " + r) } var r } return m(i) || (i = null), t.use = function (t) { s.push(t) }, t }(e.$vm); return function (n) { o.call(arguments, 1).forEach(function (t) { for (var e in t) void 0 === n[e] && (n[e] = t[e]) }) }(t || {}, e.$options, M.options), M.interceptors.forEach(function (t) { d(t) && (t = M.interceptor[t]), l(t) && n.use(t) }), n(new H(t)).then(function (t) { return t.ok ? t : c.reject(t) }, function (t) { var e; return t instanceof Error && (e = t, "undefined" != typeof console && console.error(e)), c.reject(t) }) } function N(n, o, t, r) { var i = this || {}, s = {}; return g(t = w({}, N.actions, t), function (t, e) { t = T({url: n, params: w({}, o)}, r, t), s[e] = function () { return (i.$http || M)(function (t, e) { var n, o = w({}, t), r = {}; switch (e.length) { case 2: r = e[0], n = e[1]; break; case 1: /^(POST|PUT|PATCH)$/i.test(o.method) ? n = e[0] : r = e[0]; break; case 0: break; default: throw"Expected up to 2 arguments [params, body], got " + e.length + " arguments" } return o.body = n, o.params = w({}, o.params, r), o }(t, arguments)) } }), s } function D(n) { var t, e, o; D.installed || (e = (t = n).config, o = t.nextTick, r = o, a = e.debug || !e.silent, n.url = $, n.http = M, n.resource = N, n.Promise = c, Object.defineProperties(n.prototype, { $url: { get: function () { return b(n.url, this, this.$options.url) } }, $http: { get: function () { return b(n.http, this, this.$options.http) } }, $resource: { get: function () { return n.resource.bind(this) } }, $promise: { get: function () { var e = this; return function (t) { return new n.Promise(t, e) } } } })) } return M.options = {}, M.headers = { put: B, post: B, patch: B, delete: B, common: {Accept: "application/json, text/plain, */*"}, custom: {} }, M.interceptor = { before: function (t) { l(t.before) && t.before.call(this, t) }, method: function (t) { t.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(t.method) && (t.headers.set("X-HTTP-Method-Override", t.method), t.method = "POST") }, jsonp: function (t) { "JSONP" == t.method && (t.client = n) }, json: function (t) { var e = t.headers.get("Content-Type") || ""; return m(t.body) && 0 === e.indexOf("application/json") && (t.body = JSON.stringify(t.body)), function (o) { return o.bodyText ? v(o.text(), function (t) { var e, n; if (0 === (o.headers.get("Content-Type") || "").indexOf("application/json") || (n = (e = t).match(/^\s*(\[|\{)/)) && { "[": /]\s*$/, "{": /}\s*$/ }[n[1]].test(e)) try { o.body = JSON.parse(t) } catch (t) { o.body = null } else o.body = t; return o }) : o } }, form: function (t) { var e; e = t.body, "undefined" != typeof FormData && e instanceof FormData ? t.headers.delete("Content-Type") : m(t.body) && t.emulateJSON && (t.body = $.params(t.body), t.headers.set("Content-Type", "application/x-www-form-urlencoded")) }, header: function (n) { g(w({}, M.headers.common, n.crossOrigin ? {} : M.headers.custom, M.headers[p(n.method)]), function (t, e) { n.headers.has(e) || n.headers.set(e, t) }) }, cors: function (t) { if (s) { var e = $.parse(location.href), n = $.parse(t.getUrl()); n.protocol === e.protocol && n.host === e.host || (t.crossOrigin = !0, t.emulateHTTP = !1, R || (t.client = U)) } } }, M.interceptors = ["before", "method", "jsonp", "json", "form", "header", "cors"], ["get", "delete", "head", "jsonp"].forEach(function (n) { M[n] = function (t, e) { return this(w(e || {}, {url: t, method: n})) } }), ["post", "put", "patch"].forEach(function (o) { M[o] = function (t, e, n) { return this(w(n || {}, {url: t, method: o, body: e})) } }), N.actions = { get: {method: "GET"}, save: {method: "POST"}, query: {method: "GET"}, update: {method: "PUT"}, remove: {method: "DELETE"}, delete: {method: "DELETE"} }, "undefined" != typeof window && window.Vue && window.Vue.use(D), D });