vuejs 1.0.25 → 1.0.26

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3cf999a581453ab61637b9fd0a201a59ee27de40
4
- data.tar.gz: 056762dd930a7dc0b35562c3a709ec110669848d
3
+ metadata.gz: 68fd7b450826fa3f0fcb277942086fb1f8aa67e1
4
+ data.tar.gz: 720b4b56d10b9dc7baa772a835e8b6941bea379d
5
5
  SHA512:
6
- metadata.gz: 4491279770eeda3b9b05ddd1ffa04808947cad984171d710d320c1f6900c095f85700c08576acaca5d300e3b912772e4881fe5dac784b7c2917238786139d8cb
7
- data.tar.gz: 41b105e5f6587e8043b66ed449f72513c773d74ea1a5bd90cf50c66d4f6073c6b36e94dfa2f28bc4b38c40efa59919324e5f865d58d347a5dc7e6602664a2439
6
+ metadata.gz: da22388175330dda8df7daceab3561d0d34e8774cb9e3622a993ba57a32332bea77302fff2dc5dffc8319d92e90690b33c2f59f689d3f9272bf5b31f317f064c
7
+ data.tar.gz: 421c595d297b717a6d891134214ea1f831b27aa9bbb9ef8b7d11277b9e4a317459b5cb1b660fa89b6e7e5c1db208a66ebfee2e28e4b76ecf22f0103ba638b69b
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Vuejs ships with the latest [Vue.js + router + resource](http://vuejs.org/) and integrate with Rails' asset pipeline. Vue.js is created by Evan You.
4
4
 
5
- The current version is Vue.js (v1.0.24) + vue-router (v0.7.13) + vue-resource (v0.7.0)
5
+ The current version is Vue.js (v1.0.24) + vue-router (v0.7.13) + vue-resource (v0.7.4)
6
6
 
7
7
  > Reactive Components for Modern Web Interfaces
8
8
 
@@ -1,3 +1,3 @@
1
1
  module Vuejs
2
- VERSION = "1.0.25"
2
+ VERSION = "1.0.26"
3
3
  end
@@ -1,1668 +1,1382 @@
1
- /**
2
- * vue-resource v0.7.2
1
+ /*!
2
+ * vue-resource v0.7.4
3
3
  * https://github.com/vuejs/vue-resource
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- (function webpackUniversalModuleDefinition(root, factory) {
8
- if(typeof exports === 'object' && typeof module === 'object')
9
- module.exports = factory();
10
- else if(typeof define === 'function' && define.amd)
11
- define([], factory);
12
- else if(typeof exports === 'object')
13
- exports["VueResource"] = factory();
14
- else
15
- root["VueResource"] = factory();
16
- })(this, function() {
17
- return /******/ (function(modules) { // webpackBootstrap
18
- /******/ // The module cache
19
- /******/ var installedModules = {};
20
-
21
- /******/ // The require function
22
- /******/ function __webpack_require__(moduleId) {
23
-
24
- /******/ // Check if module is in cache
25
- /******/ if(installedModules[moduleId])
26
- /******/ return installedModules[moduleId].exports;
27
-
28
- /******/ // Create a new module (and put it into the cache)
29
- /******/ var module = installedModules[moduleId] = {
30
- /******/ exports: {},
31
- /******/ id: moduleId,
32
- /******/ loaded: false
33
- /******/ };
34
-
35
- /******/ // Execute the module function
36
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
37
-
38
- /******/ // Flag the module as loaded
39
- /******/ module.loaded = true;
40
-
41
- /******/ // Return the exports of the module
42
- /******/ return module.exports;
43
- /******/ }
44
-
45
-
46
- /******/ // expose the modules object (__webpack_modules__)
47
- /******/ __webpack_require__.m = modules;
48
-
49
- /******/ // expose the module cache
50
- /******/ __webpack_require__.c = installedModules;
51
-
52
- /******/ // __webpack_public_path__
53
- /******/ __webpack_require__.p = "";
54
-
55
- /******/ // Load entry module and return exports
56
- /******/ return __webpack_require__(0);
57
- /******/ })
58
- /************************************************************************/
59
- /******/ ([
60
- /* 0 */
61
- /***/ function(module, exports, __webpack_require__) {
62
-
63
- /**
64
- * Install plugin.
65
- */
66
-
67
- function plugin(Vue) {
68
-
69
- if (plugin.installed) {
70
- return;
71
- }
72
-
73
- var _ = __webpack_require__(1);
74
-
75
- _.config = Vue.config;
76
- _.warning = Vue.util.warn;
77
- _.nextTick = Vue.util.nextTick;
7
+ (function (global, factory) {
8
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
9
+ typeof define === 'function' && define.amd ? define(factory) :
10
+ (global.VueResource = factory());
11
+ }(this, function () { 'use strict';
78
12
 
79
- Vue.url = __webpack_require__(2);
80
- Vue.http = __webpack_require__(8);
81
- Vue.resource = __webpack_require__(23);
82
- Vue.Promise = __webpack_require__(10);
13
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
14
+ return typeof obj;
15
+ } : function (obj) {
16
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj;
17
+ };
83
18
 
84
- Object.defineProperties(Vue.prototype, {
19
+ /**
20
+ * Utility functions.
21
+ */
85
22
 
86
- $url: {
87
- get: function get() {
88
- return _.options(Vue.url, this, this.$options.url);
89
- }
90
- },
23
+ var util = {};
24
+ var config = {};
25
+ var array = [];
26
+ var console = window.console;
27
+ function Util (Vue) {
28
+ util = Vue.util;
29
+ config = Vue.config;
30
+ }
91
31
 
92
- $http: {
93
- get: function get() {
94
- return _.options(Vue.http, this, this.$options.http);
95
- }
96
- },
97
-
98
- $resource: {
99
- get: function get() {
100
- return Vue.resource.bind(this);
101
- }
102
- },
103
-
104
- $promise: {
105
- get: function get() {
106
- var _this = this;
107
-
108
- return function (executor) {
109
- return new Vue.Promise(executor, _this);
110
- };
111
- }
112
- }
32
+ var isArray = Array.isArray;
33
+
34
+ function warn(msg) {
35
+ if (console && util.warn && (!config.silent || config.debug)) {
36
+ console.warn('[VueResource warn]: ' + msg);
37
+ }
38
+ }
39
+
40
+ function error(msg) {
41
+ if (console) {
42
+ console.error(msg);
43
+ }
44
+ }
45
+
46
+ function nextTick(cb, ctx) {
47
+ return util.nextTick(cb, ctx);
48
+ }
49
+
50
+ function trim(str) {
51
+ return str.replace(/^\s*|\s*$/g, '');
52
+ }
53
+
54
+ function toLower(str) {
55
+ return str ? str.toLowerCase() : '';
56
+ }
57
+
58
+ function isString(val) {
59
+ return typeof val === 'string';
60
+ }
61
+
62
+ function isFunction(val) {
63
+ return typeof val === 'function';
64
+ }
65
+
66
+ function isObject(obj) {
67
+ return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';
68
+ }
69
+
70
+ function isPlainObject(obj) {
71
+ return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;
72
+ }
113
73
 
114
- });
115
- }
74
+ function options(fn, obj, opts) {
116
75
 
117
- if (typeof window !== 'undefined' && window.Vue) {
118
- window.Vue.use(plugin);
119
- }
76
+ opts = opts || {};
120
77
 
121
- module.exports = plugin;
78
+ if (isFunction(opts)) {
79
+ opts = opts.call(obj);
80
+ }
122
81
 
123
- /***/ },
124
- /* 1 */
125
- /***/ function(module, exports) {
82
+ return merge(fn.bind({ $vm: obj, $options: opts }), fn, { $options: opts });
83
+ }
126
84
 
127
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
85
+ function each(obj, iterator) {
128
86
 
129
- /**
130
- * Utility functions.
131
- */
87
+ var i, key;
132
88
 
133
- var _ = exports,
134
- array = [],
135
- console = window.console;
89
+ if (typeof obj.length == 'number') {
90
+ for (i = 0; i < obj.length; i++) {
91
+ iterator.call(obj[i], obj[i], i);
92
+ }
93
+ } else if (isObject(obj)) {
94
+ for (key in obj) {
95
+ if (obj.hasOwnProperty(key)) {
96
+ iterator.call(obj[key], obj[key], key);
97
+ }
98
+ }
99
+ }
136
100
 
137
- _.warn = function (msg) {
138
- if (console && _.warning && (!_.config.silent || _.config.debug)) {
139
- console.warn('[VueResource warn]: ' + msg);
140
- }
141
- };
101
+ return obj;
102
+ }
142
103
 
143
- _.error = function (msg) {
144
- if (console) {
145
- console.error(msg);
146
- }
147
- };
104
+ function extend(target) {
148
105
 
149
- _.trim = function (str) {
150
- return str.replace(/^\s*|\s*$/g, '');
151
- };
152
-
153
- _.toLower = function (str) {
154
- return str ? str.toLowerCase() : '';
155
- };
156
-
157
- _.isArray = Array.isArray;
106
+ var args = array.slice.call(arguments, 1);
158
107
 
159
- _.isString = function (val) {
160
- return typeof val === 'string';
161
- };
108
+ args.forEach(function (arg) {
109
+ _merge(target, arg);
110
+ });
162
111
 
163
- _.isFunction = function (val) {
164
- return typeof val === 'function';
165
- };
112
+ return target;
113
+ }
166
114
 
167
- _.isObject = function (obj) {
168
- return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';
169
- };
115
+ function merge(target) {
170
116
 
171
- _.isPlainObject = function (obj) {
172
- return _.isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;
173
- };
117
+ var args = array.slice.call(arguments, 1);
174
118
 
175
- _.options = function (fn, obj, options) {
119
+ args.forEach(function (arg) {
120
+ _merge(target, arg, true);
121
+ });
176
122
 
177
- options = options || {};
123
+ return target;
124
+ }
178
125
 
179
- if (_.isFunction(options)) {
180
- options = options.call(obj);
181
- }
126
+ function _merge(target, source, deep) {
127
+ for (var key in source) {
128
+ if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {
129
+ if (isPlainObject(source[key]) && !isPlainObject(target[key])) {
130
+ target[key] = {};
131
+ }
132
+ if (isArray(source[key]) && !isArray(target[key])) {
133
+ target[key] = [];
134
+ }
135
+ _merge(target[key], source[key], deep);
136
+ } else if (source[key] !== undefined) {
137
+ target[key] = source[key];
138
+ }
139
+ }
140
+ }
182
141
 
183
- return _.merge(fn.bind({ $vm: obj, $options: options }), fn, { $options: options });
184
- };
142
+ function root (options, next) {
185
143
 
186
- _.each = function (obj, iterator) {
144
+ var url = next(options);
187
145
 
188
- var i, key;
146
+ if (isString(options.root) && !url.match(/^(https?:)?\//)) {
147
+ url = options.root + '/' + url;
148
+ }
189
149
 
190
- if (typeof obj.length == 'number') {
191
- for (i = 0; i < obj.length; i++) {
192
- iterator.call(obj[i], obj[i], i);
193
- }
194
- } else if (_.isObject(obj)) {
195
- for (key in obj) {
196
- if (obj.hasOwnProperty(key)) {
197
- iterator.call(obj[key], obj[key], key);
198
- }
199
- }
200
- }
150
+ return url;
151
+ }
201
152
 
202
- return obj;
203
- };
153
+ function query (options, next) {
204
154
 
205
- _.defaults = function (target, source) {
155
+ var urlParams = Object.keys(Url.options.params),
156
+ query = {},
157
+ url = next(options);
206
158
 
207
- for (var key in source) {
208
- if (target[key] === undefined) {
209
- target[key] = source[key];
210
- }
211
- }
159
+ each(options.params, function (value, key) {
160
+ if (urlParams.indexOf(key) === -1) {
161
+ query[key] = value;
162
+ }
163
+ });
212
164
 
213
- return target;
214
- };
165
+ query = Url.params(query);
215
166
 
216
- _.extend = function (target) {
167
+ if (query) {
168
+ url += (url.indexOf('?') == -1 ? '?' : '&') + query;
169
+ }
217
170
 
218
- var args = array.slice.call(arguments, 1);
171
+ return url;
172
+ }
219
173
 
220
- args.forEach(function (arg) {
221
- merge(target, arg);
222
- });
174
+ function legacy (options, next) {
223
175
 
224
- return target;
225
- };
176
+ var variables = [],
177
+ url = next(options);
226
178
 
227
- _.merge = function (target) {
179
+ url = url.replace(/(\/?):([a-z]\w*)/gi, function (match, slash, name) {
228
180
 
229
- var args = array.slice.call(arguments, 1);
181
+ warn('The `:' + name + '` parameter syntax has been deprecated. Use the `{' + name + '}` syntax instead.');
230
182
 
231
- args.forEach(function (arg) {
232
- merge(target, arg, true);
233
- });
183
+ if (options.params[name]) {
184
+ variables.push(name);
185
+ return slash + encodeUriSegment(options.params[name]);
186
+ }
234
187
 
235
- return target;
236
- };
188
+ return '';
189
+ });
237
190
 
238
- function merge(target, source, deep) {
239
- for (var key in source) {
240
- if (deep && (_.isPlainObject(source[key]) || _.isArray(source[key]))) {
241
- if (_.isPlainObject(source[key]) && !_.isPlainObject(target[key])) {
242
- target[key] = {};
243
- }
244
- if (_.isArray(source[key]) && !_.isArray(target[key])) {
245
- target[key] = [];
246
- }
247
- merge(target[key], source[key], deep);
248
- } else if (source[key] !== undefined) {
249
- target[key] = source[key];
250
- }
251
- }
252
- }
191
+ variables.forEach(function (key) {
192
+ delete options.params[key];
193
+ });
253
194
 
254
- /***/ },
255
- /* 2 */
256
- /***/ function(module, exports, __webpack_require__) {
195
+ return url;
196
+ }
257
197
 
258
- /**
259
- * Service for URL templating.
260
- */
198
+ function encodeUriSegment(value) {
261
199
 
262
- var _ = __webpack_require__(1);
263
- var ie = document.documentMode;
264
- var el = document.createElement('a');
200
+ return encodeUriQuery(value, true).replace(/%26/gi, '&').replace(/%3D/gi, '=').replace(/%2B/gi, '+');
201
+ }
265
202
 
266
- function Url(url, params) {
203
+ function encodeUriQuery(value, spaces) {
267
204
 
268
- var options = url,
269
- transform;
205
+ return encodeURIComponent(value).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, spaces ? '%20' : '+');
206
+ }
270
207
 
271
- if (_.isString(url)) {
272
- options = { url: url, params: params };
273
- }
208
+ /**
209
+ * URL Template v2.0.6 (https://github.com/bramstein/url-template)
210
+ */
211
+
212
+ function expand(url, params, variables) {
213
+
214
+ var tmpl = parse(url),
215
+ expanded = tmpl.expand(params);
216
+
217
+ if (variables) {
218
+ variables.push.apply(variables, tmpl.vars);
219
+ }
220
+
221
+ return expanded;
222
+ }
223
+
224
+ function parse(template) {
225
+
226
+ var operators = ['+', '#', '.', '/', ';', '?', '&'],
227
+ variables = [];
228
+
229
+ return {
230
+ vars: variables,
231
+ expand: function expand(context) {
232
+ return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) {
233
+ if (expression) {
234
+
235
+ var operator = null,
236
+ values = [];
237
+
238
+ if (operators.indexOf(expression.charAt(0)) !== -1) {
239
+ operator = expression.charAt(0);
240
+ expression = expression.substr(1);
241
+ }
242
+
243
+ expression.split(/,/g).forEach(function (variable) {
244
+ var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
245
+ values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
246
+ variables.push(tmp[1]);
247
+ });
248
+
249
+ if (operator && operator !== '+') {
250
+
251
+ var separator = ',';
252
+
253
+ if (operator === '?') {
254
+ separator = '&';
255
+ } else if (operator !== '#') {
256
+ separator = operator;
257
+ }
258
+
259
+ return (values.length !== 0 ? operator : '') + values.join(separator);
260
+ } else {
261
+ return values.join(',');
262
+ }
263
+ } else {
264
+ return encodeReserved(literal);
265
+ }
266
+ });
267
+ }
268
+ };
269
+ }
270
+
271
+ function getValues(context, operator, key, modifier) {
272
+
273
+ var value = context[key],
274
+ result = [];
275
+
276
+ if (isDefined(value) && value !== '') {
277
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
278
+ value = value.toString();
279
+
280
+ if (modifier && modifier !== '*') {
281
+ value = value.substring(0, parseInt(modifier, 10));
282
+ }
283
+
284
+ result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));
285
+ } else {
286
+ if (modifier === '*') {
287
+ if (Array.isArray(value)) {
288
+ value.filter(isDefined).forEach(function (value) {
289
+ result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));
290
+ });
291
+ } else {
292
+ Object.keys(value).forEach(function (k) {
293
+ if (isDefined(value[k])) {
294
+ result.push(encodeValue(operator, value[k], k));
295
+ }
296
+ });
297
+ }
298
+ } else {
299
+ var tmp = [];
300
+
301
+ if (Array.isArray(value)) {
302
+ value.filter(isDefined).forEach(function (value) {
303
+ tmp.push(encodeValue(operator, value));
304
+ });
305
+ } else {
306
+ Object.keys(value).forEach(function (k) {
307
+ if (isDefined(value[k])) {
308
+ tmp.push(encodeURIComponent(k));
309
+ tmp.push(encodeValue(operator, value[k].toString()));
310
+ }
311
+ });
312
+ }
313
+
314
+ if (isKeyOperator(operator)) {
315
+ result.push(encodeURIComponent(key) + '=' + tmp.join(','));
316
+ } else if (tmp.length !== 0) {
317
+ result.push(tmp.join(','));
318
+ }
319
+ }
320
+ }
321
+ } else {
322
+ if (operator === ';') {
323
+ result.push(encodeURIComponent(key));
324
+ } else if (value === '' && (operator === '&' || operator === '?')) {
325
+ result.push(encodeURIComponent(key) + '=');
326
+ } else if (value === '') {
327
+ result.push('');
328
+ }
329
+ }
330
+
331
+ return result;
332
+ }
333
+
334
+ function isDefined(value) {
335
+ return value !== undefined && value !== null;
336
+ }
337
+
338
+ function isKeyOperator(operator) {
339
+ return operator === ';' || operator === '&' || operator === '?';
340
+ }
341
+
342
+ function encodeValue(operator, value, key) {
343
+
344
+ value = operator === '+' || operator === '#' ? encodeReserved(value) : encodeURIComponent(value);
345
+
346
+ if (key) {
347
+ return encodeURIComponent(key) + '=' + value;
348
+ } else {
349
+ return value;
350
+ }
351
+ }
352
+
353
+ function encodeReserved(str) {
354
+ return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {
355
+ if (!/%[0-9A-Fa-f]/.test(part)) {
356
+ part = encodeURI(part);
357
+ }
358
+ return part;
359
+ }).join('');
360
+ }
361
+
362
+ function template (options) {
363
+
364
+ var variables = [],
365
+ url = expand(options.url, options.params, variables);
366
+
367
+ variables.forEach(function (key) {
368
+ delete options.params[key];
369
+ });
370
+
371
+ return url;
372
+ }
373
+
374
+ /**
375
+ * Service for URL templating.
376
+ */
377
+
378
+ var ie = document.documentMode;
379
+ var el = document.createElement('a');
380
+
381
+ function Url(url, params) {
382
+
383
+ var self = this || {},
384
+ options = url,
385
+ transform;
386
+
387
+ if (isString(url)) {
388
+ options = { url: url, params: params };
389
+ }
390
+
391
+ options = merge({}, Url.options, self.$options, options);
392
+
393
+ Url.transforms.forEach(function (handler) {
394
+ transform = factory(handler, transform, self.$vm);
395
+ });
396
+
397
+ return transform(options);
398
+ }
399
+
400
+ /**
401
+ * Url options.
402
+ */
403
+
404
+ Url.options = {
405
+ url: '',
406
+ root: null,
407
+ params: {}
408
+ };
409
+
410
+ /**
411
+ * Url transforms.
412
+ */
413
+
414
+ Url.transforms = [template, legacy, query, root];
415
+
416
+ /**
417
+ * Encodes a Url parameter string.
418
+ *
419
+ * @param {Object} obj
420
+ */
274
421
 
275
- options = _.merge({}, Url.options, this.$options, options);
422
+ Url.params = function (obj) {
276
423
 
277
- Url.transforms.forEach(function (handler) {
278
- transform = factory(handler, transform, this.$vm);
279
- }, this);
424
+ var params = [],
425
+ escape = encodeURIComponent;
280
426
 
281
- return transform(options);
282
- };
427
+ params.add = function (key, value) {
283
428
 
284
- /**
285
- * Url options.
286
- */
429
+ if (isFunction(value)) {
430
+ value = value();
431
+ }
287
432
 
288
- Url.options = {
289
- url: '',
290
- root: null,
291
- params: {}
292
- };
433
+ if (value === null) {
434
+ value = '';
435
+ }
293
436
 
294
- /**
295
- * Url transforms.
296
- */
437
+ this.push(escape(key) + '=' + escape(value));
438
+ };
439
+
440
+ serialize(params, obj);
297
441
 
298
- Url.transforms = [__webpack_require__(3), __webpack_require__(5), __webpack_require__(6), __webpack_require__(7)];
442
+ return params.join('&').replace(/%20/g, '+');
443
+ };
444
+
445
+ /**
446
+ * Parse a URL and return its components.
447
+ *
448
+ * @param {String} url
449
+ */
450
+
451
+ Url.parse = function (url) {
452
+
453
+ if (ie) {
454
+ el.href = url;
455
+ url = el.href;
456
+ }
457
+
458
+ el.href = url;
459
+
460
+ return {
461
+ href: el.href,
462
+ protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',
463
+ port: el.port,
464
+ host: el.host,
465
+ hostname: el.hostname,
466
+ pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,
467
+ search: el.search ? el.search.replace(/^\?/, '') : '',
468
+ hash: el.hash ? el.hash.replace(/^#/, '') : ''
469
+ };
470
+ };
471
+
472
+ function factory(handler, next, vm) {
473
+ return function (options) {
474
+ return handler.call(vm, options, next);
475
+ };
476
+ }
477
+
478
+ function serialize(params, obj, scope) {
479
+
480
+ var array = isArray(obj),
481
+ plain = isPlainObject(obj),
482
+ hash;
483
+
484
+ each(obj, function (value, key) {
485
+
486
+ hash = isObject(value) || isArray(value);
487
+
488
+ if (scope) {
489
+ key = scope + '[' + (plain || hash ? key : '') + ']';
490
+ }
491
+
492
+ if (!scope && array) {
493
+ params.add(value.name, value.value);
494
+ } else if (hash) {
495
+ serialize(params, value, key);
496
+ } else {
497
+ params.add(key, value);
498
+ }
499
+ });
500
+ }
501
+
502
+ /**
503
+ * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)
504
+ */
505
+
506
+ var RESOLVED = 0;
507
+ var REJECTED = 1;
508
+ var PENDING = 2;
509
+
510
+ function Promise$2(executor) {
511
+
512
+ this.state = PENDING;
513
+ this.value = undefined;
514
+ this.deferred = [];
515
+
516
+ var promise = this;
517
+
518
+ try {
519
+ executor(function (x) {
520
+ promise.resolve(x);
521
+ }, function (r) {
522
+ promise.reject(r);
523
+ });
524
+ } catch (e) {
525
+ promise.reject(e);
526
+ }
527
+ }
528
+
529
+ Promise$2.reject = function (r) {
530
+ return new Promise$2(function (resolve, reject) {
531
+ reject(r);
532
+ });
533
+ };
534
+
535
+ Promise$2.resolve = function (x) {
536
+ return new Promise$2(function (resolve, reject) {
537
+ resolve(x);
538
+ });
539
+ };
540
+
541
+ Promise$2.all = function all(iterable) {
542
+ return new Promise$2(function (resolve, reject) {
543
+ var count = 0,
544
+ result = [];
545
+
546
+ if (iterable.length === 0) {
547
+ resolve(result);
548
+ }
549
+
550
+ function resolver(i) {
551
+ return function (x) {
552
+ result[i] = x;
553
+ count += 1;
554
+
555
+ if (count === iterable.length) {
556
+ resolve(result);
557
+ }
558
+ };
559
+ }
560
+
561
+ for (var i = 0; i < iterable.length; i += 1) {
562
+ Promise$2.resolve(iterable[i]).then(resolver(i), reject);
563
+ }
564
+ });
565
+ };
566
+
567
+ Promise$2.race = function race(iterable) {
568
+ return new Promise$2(function (resolve, reject) {
569
+ for (var i = 0; i < iterable.length; i += 1) {
570
+ Promise$2.resolve(iterable[i]).then(resolve, reject);
571
+ }
572
+ });
573
+ };
574
+
575
+ var p$1 = Promise$2.prototype;
576
+
577
+ p$1.resolve = function resolve(x) {
578
+ var promise = this;
579
+
580
+ if (promise.state === PENDING) {
581
+ if (x === promise) {
582
+ throw new TypeError('Promise settled with itself.');
583
+ }
584
+
585
+ var called = false;
586
+
587
+ try {
588
+ var then = x && x['then'];
589
+
590
+ if (x !== null && (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && typeof then === 'function') {
591
+ then.call(x, function (x) {
592
+ if (!called) {
593
+ promise.resolve(x);
594
+ }
595
+ called = true;
596
+ }, function (r) {
597
+ if (!called) {
598
+ promise.reject(r);
599
+ }
600
+ called = true;
601
+ });
602
+ return;
603
+ }
604
+ } catch (e) {
605
+ if (!called) {
606
+ promise.reject(e);
607
+ }
608
+ return;
609
+ }
610
+
611
+ promise.state = RESOLVED;
612
+ promise.value = x;
613
+ promise.notify();
614
+ }
615
+ };
616
+
617
+ p$1.reject = function reject(reason) {
618
+ var promise = this;
619
+
620
+ if (promise.state === PENDING) {
621
+ if (reason === promise) {
622
+ throw new TypeError('Promise settled with itself.');
623
+ }
624
+
625
+ promise.state = REJECTED;
626
+ promise.value = reason;
627
+ promise.notify();
628
+ }
629
+ };
630
+
631
+ p$1.notify = function notify() {
632
+ var promise = this;
633
+
634
+ nextTick(function () {
635
+ if (promise.state !== PENDING) {
636
+ while (promise.deferred.length) {
637
+ var deferred = promise.deferred.shift(),
638
+ onResolved = deferred[0],
639
+ onRejected = deferred[1],
640
+ resolve = deferred[2],
641
+ reject = deferred[3];
642
+
643
+ try {
644
+ if (promise.state === RESOLVED) {
645
+ if (typeof onResolved === 'function') {
646
+ resolve(onResolved.call(undefined, promise.value));
647
+ } else {
648
+ resolve(promise.value);
649
+ }
650
+ } else if (promise.state === REJECTED) {
651
+ if (typeof onRejected === 'function') {
652
+ resolve(onRejected.call(undefined, promise.value));
653
+ } else {
654
+ reject(promise.value);
655
+ }
656
+ }
657
+ } catch (e) {
658
+ reject(e);
659
+ }
660
+ }
661
+ }
662
+ });
663
+ };
664
+
665
+ p$1.then = function then(onResolved, onRejected) {
666
+ var promise = this;
667
+
668
+ return new Promise$2(function (resolve, reject) {
669
+ promise.deferred.push([onResolved, onRejected, resolve, reject]);
670
+ promise.notify();
671
+ });
672
+ };
673
+
674
+ p$1.catch = function (onRejected) {
675
+ return this.then(undefined, onRejected);
676
+ };
677
+
678
+ var PromiseObj = window.Promise || Promise$2;
679
+
680
+ function Promise$1(executor, context) {
681
+
682
+ if (executor instanceof PromiseObj) {
683
+ this.promise = executor;
684
+ } else {
685
+ this.promise = new PromiseObj(executor.bind(context));
686
+ }
687
+
688
+ this.context = context;
689
+ }
690
+
691
+ Promise$1.all = function (iterable, context) {
692
+ return new Promise$1(PromiseObj.all(iterable), context);
693
+ };
694
+
695
+ Promise$1.resolve = function (value, context) {
696
+ return new Promise$1(PromiseObj.resolve(value), context);
697
+ };
698
+
699
+ Promise$1.reject = function (reason, context) {
700
+ return new Promise$1(PromiseObj.reject(reason), context);
701
+ };
702
+
703
+ Promise$1.race = function (iterable, context) {
704
+ return new Promise$1(PromiseObj.race(iterable), context);
705
+ };
706
+
707
+ var p = Promise$1.prototype;
299
708
 
300
- /**
301
- * Encodes a Url parameter string.
302
- *
303
- * @param {Object} obj
304
- */
709
+ p.bind = function (context) {
710
+ this.context = context;
711
+ return this;
712
+ };
305
713
 
306
- Url.params = function (obj) {
714
+ p.then = function (fulfilled, rejected) {
307
715
 
308
- var params = [],
309
- escape = encodeURIComponent;
716
+ if (fulfilled && fulfilled.bind && this.context) {
717
+ fulfilled = fulfilled.bind(this.context);
718
+ }
310
719
 
311
- params.add = function (key, value) {
720
+ if (rejected && rejected.bind && this.context) {
721
+ rejected = rejected.bind(this.context);
722
+ }
312
723
 
313
- if (_.isFunction(value)) {
314
- value = value();
315
- }
724
+ this.promise = this.promise.then(fulfilled, rejected);
316
725
 
317
- if (value === null) {
318
- value = '';
319
- }
726
+ return this;
727
+ };
320
728
 
321
- this.push(escape(key) + '=' + escape(value));
322
- };
729
+ p.catch = function (rejected) {
323
730
 
324
- serialize(params, obj);
731
+ if (rejected && rejected.bind && this.context) {
732
+ rejected = rejected.bind(this.context);
733
+ }
325
734
 
326
- return params.join('&').replace(/%20/g, '+');
327
- };
735
+ this.promise = this.promise.catch(rejected);
328
736
 
329
- /**
330
- * Parse a URL and return its components.
331
- *
332
- * @param {String} url
333
- */
737
+ return this;
738
+ };
334
739
 
335
- Url.parse = function (url) {
740
+ p.finally = function (callback) {
336
741
 
337
- if (ie) {
338
- el.href = url;
339
- url = el.href;
340
- }
742
+ return this.then(function (value) {
743
+ callback.call(this);
744
+ return value;
745
+ }, function (reason) {
746
+ callback.call(this);
747
+ return PromiseObj.reject(reason);
748
+ });
749
+ };
341
750
 
342
- el.href = url;
751
+ p.success = function (callback) {
343
752
 
344
- return {
345
- href: el.href,
346
- protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',
347
- port: el.port,
348
- host: el.host,
349
- hostname: el.hostname,
350
- pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,
351
- search: el.search ? el.search.replace(/^\?/, '') : '',
352
- hash: el.hash ? el.hash.replace(/^#/, '') : ''
353
- };
354
- };
753
+ warn('The `success` method has been deprecated. Use the `then` method instead.');
355
754
 
356
- function factory(handler, next, vm) {
357
- return function (options) {
358
- return handler.call(vm, options, next);
359
- };
360
- }
755
+ return this.then(function (response) {
756
+ return callback.call(this, response.data, response.status, response) || response;
757
+ });
758
+ };
361
759
 
362
- function serialize(params, obj, scope) {
760
+ p.error = function (callback) {
363
761
 
364
- var array = _.isArray(obj),
365
- plain = _.isPlainObject(obj),
366
- hash;
762
+ warn('The `error` method has been deprecated. Use the `catch` method instead.');
367
763
 
368
- _.each(obj, function (value, key) {
764
+ return this.catch(function (response) {
765
+ return callback.call(this, response.data, response.status, response) || response;
766
+ });
767
+ };
369
768
 
370
- hash = _.isObject(value) || _.isArray(value);
769
+ p.always = function (callback) {
371
770
 
372
- if (scope) {
373
- key = scope + '[' + (plain || hash ? key : '') + ']';
374
- }
771
+ warn('The `always` method has been deprecated. Use the `finally` method instead.');
375
772
 
376
- if (!scope && array) {
377
- params.add(value.name, value.value);
378
- } else if (hash) {
379
- serialize(params, value, key);
380
- } else {
381
- params.add(key, value);
382
- }
383
- });
384
- }
773
+ var cb = function cb(response) {
774
+ return callback.call(this, response.data, response.status, response) || response;
775
+ };
385
776
 
386
- module.exports = _.url = Url;
777
+ return this.then(cb, cb);
778
+ };
387
779
 
388
- /***/ },
389
- /* 3 */
390
- /***/ function(module, exports, __webpack_require__) {
780
+ function xdrClient (request) {
781
+ return new Promise$1(function (resolve) {
391
782
 
392
- /**
393
- * URL Template (RFC 6570) Transform.
394
- */
783
+ var xdr = new XDomainRequest(),
784
+ response = { request: request },
785
+ handler;
395
786
 
396
- var UrlTemplate = __webpack_require__(4);
787
+ request.cancel = function () {
788
+ xdr.abort();
789
+ };
397
790
 
398
- module.exports = function (options) {
791
+ xdr.open(request.method, Url(request), true);
399
792
 
400
- var variables = [],
401
- url = UrlTemplate.expand(options.url, options.params, variables);
402
-
403
- variables.forEach(function (key) {
404
- delete options.params[key];
405
- });
406
-
407
- return url;
408
- };
409
-
410
- /***/ },
411
- /* 4 */
412
- /***/ function(module, exports) {
413
-
414
- /**
415
- * URL Template v2.0.6 (https://github.com/bramstein/url-template)
416
- */
417
-
418
- exports.expand = function (url, params, variables) {
419
-
420
- var tmpl = this.parse(url),
421
- expanded = tmpl.expand(params);
422
-
423
- if (variables) {
424
- variables.push.apply(variables, tmpl.vars);
425
- }
426
-
427
- return expanded;
428
- };
429
-
430
- exports.parse = function (template) {
431
-
432
- var operators = ['+', '#', '.', '/', ';', '?', '&'],
433
- variables = [];
434
-
435
- return {
436
- vars: variables,
437
- expand: function expand(context) {
438
- return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) {
439
- if (expression) {
440
-
441
- var operator = null,
442
- values = [];
443
-
444
- if (operators.indexOf(expression.charAt(0)) !== -1) {
445
- operator = expression.charAt(0);
446
- expression = expression.substr(1);
447
- }
448
-
449
- expression.split(/,/g).forEach(function (variable) {
450
- var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
451
- values.push.apply(values, exports.getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
452
- variables.push(tmp[1]);
453
- });
454
-
455
- if (operator && operator !== '+') {
456
-
457
- var separator = ',';
458
-
459
- if (operator === '?') {
460
- separator = '&';
461
- } else if (operator !== '#') {
462
- separator = operator;
463
- }
464
-
465
- return (values.length !== 0 ? operator : '') + values.join(separator);
466
- } else {
467
- return values.join(',');
468
- }
469
- } else {
470
- return exports.encodeReserved(literal);
471
- }
472
- });
473
- }
474
- };
475
- };
476
-
477
- exports.getValues = function (context, operator, key, modifier) {
478
-
479
- var value = context[key],
480
- result = [];
481
-
482
- if (this.isDefined(value) && value !== '') {
483
- if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
484
- value = value.toString();
485
-
486
- if (modifier && modifier !== '*') {
487
- value = value.substring(0, parseInt(modifier, 10));
488
- }
489
-
490
- result.push(this.encodeValue(operator, value, this.isKeyOperator(operator) ? key : null));
491
- } else {
492
- if (modifier === '*') {
493
- if (Array.isArray(value)) {
494
- value.filter(this.isDefined).forEach(function (value) {
495
- result.push(this.encodeValue(operator, value, this.isKeyOperator(operator) ? key : null));
496
- }, this);
497
- } else {
498
- Object.keys(value).forEach(function (k) {
499
- if (this.isDefined(value[k])) {
500
- result.push(this.encodeValue(operator, value[k], k));
501
- }
502
- }, this);
503
- }
504
- } else {
505
- var tmp = [];
506
-
507
- if (Array.isArray(value)) {
508
- value.filter(this.isDefined).forEach(function (value) {
509
- tmp.push(this.encodeValue(operator, value));
510
- }, this);
511
- } else {
512
- Object.keys(value).forEach(function (k) {
513
- if (this.isDefined(value[k])) {
514
- tmp.push(encodeURIComponent(k));
515
- tmp.push(this.encodeValue(operator, value[k].toString()));
516
- }
517
- }, this);
518
- }
519
-
520
- if (this.isKeyOperator(operator)) {
521
- result.push(encodeURIComponent(key) + '=' + tmp.join(','));
522
- } else if (tmp.length !== 0) {
523
- result.push(tmp.join(','));
524
- }
525
- }
526
- }
527
- } else {
528
- if (operator === ';') {
529
- result.push(encodeURIComponent(key));
530
- } else if (value === '' && (operator === '&' || operator === '?')) {
531
- result.push(encodeURIComponent(key) + '=');
532
- } else if (value === '') {
533
- result.push('');
534
- }
535
- }
536
-
537
- return result;
538
- };
539
-
540
- exports.isDefined = function (value) {
541
- return value !== undefined && value !== null;
542
- };
543
-
544
- exports.isKeyOperator = function (operator) {
545
- return operator === ';' || operator === '&' || operator === '?';
546
- };
547
-
548
- exports.encodeValue = function (operator, value, key) {
549
-
550
- value = operator === '+' || operator === '#' ? this.encodeReserved(value) : encodeURIComponent(value);
551
-
552
- if (key) {
553
- return encodeURIComponent(key) + '=' + value;
554
- } else {
555
- return value;
556
- }
557
- };
558
-
559
- exports.encodeReserved = function (str) {
560
- return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {
561
- if (!/%[0-9A-Fa-f]/.test(part)) {
562
- part = encodeURI(part);
563
- }
564
- return part;
565
- }).join('');
566
- };
567
-
568
- /***/ },
569
- /* 5 */
570
- /***/ function(module, exports, __webpack_require__) {
571
-
572
- /**
573
- * Legacy Transform.
574
- */
575
-
576
- var _ = __webpack_require__(1);
577
-
578
- module.exports = function (options, next) {
579
-
580
- var variables = [],
581
- url = next(options);
582
-
583
- url = url.replace(/(\/?):([a-z]\w*)/gi, function (match, slash, name) {
584
-
585
- _.warn('The `:' + name + '` parameter syntax has been deprecated. Use the `{' + name + '}` syntax instead.');
586
-
587
- if (options.params[name]) {
588
- variables.push(name);
589
- return slash + encodeUriSegment(options.params[name]);
590
- }
591
-
592
- return '';
593
- });
594
-
595
- variables.forEach(function (key) {
596
- delete options.params[key];
597
- });
598
-
599
- return url;
600
- };
793
+ handler = function handler(event) {
601
794
 
602
- function encodeUriSegment(value) {
795
+ response.data = xdr.responseText;
796
+ response.status = xdr.status;
797
+ response.statusText = xdr.statusText || '';
603
798
 
604
- return encodeUriQuery(value, true).replace(/%26/gi, '&').replace(/%3D/gi, '=').replace(/%2B/gi, '+');
605
- }
799
+ resolve(response);
800
+ };
606
801
 
607
- function encodeUriQuery(value, spaces) {
802
+ xdr.timeout = 0;
803
+ xdr.onload = handler;
804
+ xdr.onabort = handler;
805
+ xdr.onerror = handler;
806
+ xdr.ontimeout = function () {};
807
+ xdr.onprogress = function () {};
608
808
 
609
- return encodeURIComponent(value).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, spaces ? '%20' : '+');
610
- }
809
+ xdr.send(request.data);
810
+ });
811
+ }
611
812
 
612
- /***/ },
613
- /* 6 */
614
- /***/ function(module, exports, __webpack_require__) {
813
+ var originUrl = Url.parse(location.href);
814
+ var supportCors = 'withCredentials' in new XMLHttpRequest();
615
815
 
616
- /**
617
- * Query Parameter Transform.
618
- */
816
+ var exports$1 = {
817
+ request: function request(_request) {
619
818
 
620
- var _ = __webpack_require__(1);
819
+ if (_request.crossOrigin === null) {
820
+ _request.crossOrigin = crossOrigin(_request);
821
+ }
621
822
 
622
- module.exports = function (options, next) {
823
+ if (_request.crossOrigin) {
623
824
 
624
- var urlParams = Object.keys(_.url.options.params),
625
- query = {},
626
- url = next(options);
825
+ if (!supportCors) {
826
+ _request.client = xdrClient;
827
+ }
627
828
 
628
- _.each(options.params, function (value, key) {
629
- if (urlParams.indexOf(key) === -1) {
630
- query[key] = value;
631
- }
632
- });
829
+ _request.emulateHTTP = false;
830
+ }
633
831
 
634
- query = _.url.params(query);
832
+ return _request;
833
+ }
834
+ };
635
835
 
636
- if (query) {
637
- url += (url.indexOf('?') == -1 ? '?' : '&') + query;
638
- }
836
+ function crossOrigin(request) {
639
837
 
640
- return url;
641
- };
838
+ var requestUrl = Url.parse(Url(request));
642
839
 
643
- /***/ },
644
- /* 7 */
645
- /***/ function(module, exports, __webpack_require__) {
840
+ return requestUrl.protocol !== originUrl.protocol || requestUrl.host !== originUrl.host;
841
+ }
646
842
 
647
- /**
648
- * Root Prefix Transform.
649
- */
843
+ var exports$2 = {
844
+ request: function request(_request) {
650
845
 
651
- var _ = __webpack_require__(1);
846
+ if (_request.emulateJSON && isPlainObject(_request.data)) {
847
+ _request.headers['Content-Type'] = 'application/x-www-form-urlencoded';
848
+ _request.data = Url.params(_request.data);
849
+ }
652
850
 
653
- module.exports = function (options, next) {
851
+ if (isObject(_request.data) && /FormData/i.test(_request.data.toString())) {
852
+ delete _request.headers['Content-Type'];
853
+ }
654
854
 
655
- var url = next(options);
855
+ if (isPlainObject(_request.data)) {
856
+ _request.data = JSON.stringify(_request.data);
857
+ }
656
858
 
657
- if (_.isString(options.root) && !url.match(/^(https?:)?\//)) {
658
- url = options.root + '/' + url;
659
- }
859
+ return _request;
860
+ },
861
+ response: function response(_response) {
660
862
 
661
- return url;
662
- };
863
+ try {
864
+ _response.data = JSON.parse(_response.data);
865
+ } catch (e) {}
663
866
 
664
- /***/ },
665
- /* 8 */
666
- /***/ function(module, exports, __webpack_require__) {
867
+ return _response;
868
+ }
869
+ };
667
870
 
668
- /**
669
- * Service for sending network requests.
670
- */
871
+ function jsonpClient (request) {
872
+ return new Promise$1(function (resolve) {
671
873
 
672
- var _ = __webpack_require__(1);
673
- var Client = __webpack_require__(9);
674
- var Promise = __webpack_require__(10);
675
- var interceptor = __webpack_require__(13);
676
- var jsonType = { 'Content-Type': 'application/json' };
874
+ var callback = '_jsonp' + Math.random().toString(36).substr(2),
875
+ response = { request: request, data: null },
876
+ handler,
877
+ script;
677
878
 
678
- function Http(url, options) {
679
- var _this = this;
879
+ request.params[request.jsonp] = callback;
880
+ request.cancel = function () {
881
+ handler({ type: 'cancel' });
882
+ };
680
883
 
681
- var client = Client,
682
- request,
683
- promise;
884
+ script = document.createElement('script');
885
+ script.src = Url(request);
886
+ script.type = 'text/javascript';
887
+ script.async = true;
684
888
 
685
- Http.interceptors.forEach(function (handler) {
686
- client = interceptor(handler, _this.$vm)(client);
687
- });
889
+ window[callback] = function (data) {
890
+ response.data = data;
891
+ };
688
892
 
689
- options = _.isObject(url) ? url : _.extend({ url: url }, options);
690
- request = _.merge({}, Http.options, this.$options, options);
691
- promise = client(request).bind(this.$vm).then(function (response) {
893
+ handler = function handler(event) {
692
894
 
693
- return response.ok ? response : Promise.reject(response);
694
- }, function (response) {
895
+ if (event.type === 'load' && response.data !== null) {
896
+ response.status = 200;
897
+ } else if (event.type === 'error') {
898
+ response.status = 404;
899
+ } else {
900
+ response.status = 0;
901
+ }
695
902
 
696
- if (response instanceof Error) {
697
- _.error(response);
698
- }
903
+ resolve(response);
699
904
 
700
- return Promise.reject(response);
701
- });
905
+ delete window[callback];
906
+ document.body.removeChild(script);
907
+ };
702
908
 
703
- if (request.success) {
704
- promise.success(request.success);
705
- }
909
+ script.onload = handler;
910
+ script.onerror = handler;
706
911
 
707
- if (request.error) {
708
- promise.error(request.error);
709
- }
912
+ document.body.appendChild(script);
913
+ });
914
+ }
710
915
 
711
- return promise;
712
- }
916
+ var exports$3 = {
917
+ request: function request(_request) {
713
918
 
714
- Http.options = {
715
- method: 'get',
716
- data: '',
717
- params: {},
718
- headers: {},
719
- xhr: null,
720
- upload: null,
721
- jsonp: 'callback',
722
- beforeSend: null,
723
- crossOrigin: null,
724
- emulateHTTP: false,
725
- emulateJSON: false,
726
- timeout: 0
727
- };
919
+ if (_request.method == 'JSONP') {
920
+ _request.client = jsonpClient;
921
+ }
728
922
 
729
- Http.interceptors = [__webpack_require__(14), __webpack_require__(15), __webpack_require__(16), __webpack_require__(18), __webpack_require__(19), __webpack_require__(20), __webpack_require__(21)];
923
+ return _request;
924
+ }
925
+ };
730
926
 
731
- Http.headers = {
732
- put: jsonType,
733
- post: jsonType,
734
- patch: jsonType,
735
- delete: jsonType,
736
- common: { 'Accept': 'application/json, text/plain, */*' },
737
- custom: { 'X-Requested-With': 'XMLHttpRequest' }
738
- };
927
+ var exports$4 = {
928
+ request: function request(_request) {
739
929
 
740
- ['get', 'put', 'post', 'patch', 'delete', 'jsonp'].forEach(function (method) {
930
+ if (isFunction(_request.beforeSend)) {
931
+ _request.beforeSend.call(this, _request);
932
+ }
741
933
 
742
- Http[method] = function (url, data, success, options) {
934
+ return _request;
935
+ }
936
+ };
743
937
 
744
- if (_.isFunction(data)) {
745
- options = success;
746
- success = data;
747
- data = undefined;
748
- }
938
+ /**
939
+ * HTTP method override Interceptor.
940
+ */
749
941
 
750
- if (_.isObject(success)) {
751
- options = success;
752
- success = undefined;
753
- }
942
+ var exports$5 = {
943
+ request: function request(_request) {
754
944
 
755
- return this(url, _.extend({ method: method, data: data, success: success }, options));
756
- };
757
- });
945
+ if (_request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(_request.method)) {
946
+ _request.headers['X-HTTP-Method-Override'] = _request.method;
947
+ _request.method = 'POST';
948
+ }
758
949
 
759
- module.exports = _.http = Http;
950
+ return _request;
951
+ }
952
+ };
760
953
 
761
- /***/ },
762
- /* 9 */
763
- /***/ function(module, exports, __webpack_require__) {
954
+ var exports$6 = {
955
+ request: function request(_request) {
764
956
 
765
- /**
766
- * Base client.
767
- */
957
+ _request.method = _request.method.toUpperCase();
958
+ _request.headers = extend({}, Http.headers.common, !_request.crossOrigin ? Http.headers.custom : {}, Http.headers[_request.method.toLowerCase()], _request.headers);
768
959
 
769
- var _ = __webpack_require__(1);
770
- var Promise = __webpack_require__(10);
771
- var xhrClient = __webpack_require__(12);
960
+ if (isPlainObject(_request.data) && /^(GET|JSONP)$/i.test(_request.method)) {
961
+ extend(_request.params, _request.data);
962
+ delete _request.data;
963
+ }
772
964
 
773
- module.exports = function (request) {
965
+ return _request;
966
+ }
967
+ };
774
968
 
775
- var response = (request.client || xhrClient)(request);
969
+ /**
970
+ * Timeout Interceptor.
971
+ */
776
972
 
777
- return Promise.resolve(response).then(function (response) {
973
+ var exports$7 = function exports() {
778
974
 
779
- if (response.headers) {
975
+ var timeout;
780
976
 
781
- var headers = parseHeaders(response.headers);
977
+ return {
978
+ request: function request(_request) {
782
979
 
783
- response.headers = function (name) {
980
+ if (_request.timeout) {
981
+ timeout = setTimeout(function () {
982
+ _request.cancel();
983
+ }, _request.timeout);
984
+ }
784
985
 
785
- if (name) {
786
- return headers[_.toLower(name)];
787
- }
986
+ return _request;
987
+ },
988
+ response: function response(_response) {
788
989
 
789
- return headers;
790
- };
791
- }
990
+ clearTimeout(timeout);
792
991
 
793
- response.ok = response.status >= 200 && response.status < 300;
992
+ return _response;
993
+ }
994
+ };
995
+ };
794
996
 
795
- return response;
796
- });
797
- };
997
+ function interceptor (handler, vm) {
798
998
 
799
- function parseHeaders(str) {
999
+ return function (client) {
800
1000
 
801
- var headers = {},
802
- value,
803
- name,
804
- i;
1001
+ if (isFunction(handler)) {
1002
+ handler = handler.call(vm, Promise$1);
1003
+ }
805
1004
 
806
- if (_.isString(str)) {
807
- _.each(str.split('\n'), function (row) {
1005
+ return function (request) {
808
1006
 
809
- i = row.indexOf(':');
810
- name = _.trim(_.toLower(row.slice(0, i)));
811
- value = _.trim(row.slice(i + 1));
1007
+ if (isFunction(handler.request)) {
1008
+ request = handler.request.call(vm, request);
1009
+ }
812
1010
 
813
- if (headers[name]) {
1011
+ return when(request, function (request) {
1012
+ return when(client(request), function (response) {
814
1013
 
815
- if (_.isArray(headers[name])) {
816
- headers[name].push(value);
817
- } else {
818
- headers[name] = [headers[name], value];
819
- }
820
- } else {
1014
+ if (isFunction(handler.response)) {
1015
+ response = handler.response.call(vm, response);
1016
+ }
821
1017
 
822
- headers[name] = value;
823
- }
824
- });
825
- }
1018
+ return response;
1019
+ });
1020
+ });
1021
+ };
1022
+ };
1023
+ }
826
1024
 
827
- return headers;
828
- }
1025
+ function when(value, fulfilled, rejected) {
829
1026
 
830
- /***/ },
831
- /* 10 */
832
- /***/ function(module, exports, __webpack_require__) {
1027
+ var promise = Promise$1.resolve(value);
833
1028
 
834
- /**
835
- * Promise adapter.
836
- */
1029
+ if (arguments.length < 2) {
1030
+ return promise;
1031
+ }
837
1032
 
838
- var _ = __webpack_require__(1);
839
- var PromiseObj = window.Promise || __webpack_require__(11);
1033
+ return promise.then(fulfilled, rejected);
1034
+ }
840
1035
 
841
- function Promise(executor, context) {
1036
+ function xhrClient (request) {
1037
+ return new Promise$1(function (resolve) {
842
1038
 
843
- if (executor instanceof PromiseObj) {
844
- this.promise = executor;
845
- } else {
846
- this.promise = new PromiseObj(executor.bind(context));
847
- }
1039
+ var xhr = new XMLHttpRequest(),
1040
+ response = { request: request },
1041
+ handler;
848
1042
 
849
- this.context = context;
850
- }
1043
+ request.cancel = function () {
1044
+ xhr.abort();
1045
+ };
851
1046
 
852
- Promise.all = function (iterable, context) {
853
- return new Promise(PromiseObj.all(iterable), context);
854
- };
1047
+ xhr.open(request.method, Url(request), true);
855
1048
 
856
- Promise.resolve = function (value, context) {
857
- return new Promise(PromiseObj.resolve(value), context);
858
- };
1049
+ handler = function handler(event) {
859
1050
 
860
- Promise.reject = function (reason, context) {
861
- return new Promise(PromiseObj.reject(reason), context);
862
- };
1051
+ response.data = 'response' in xhr ? xhr.response : xhr.responseText;
1052
+ response.status = xhr.status === 1223 ? 204 : xhr.status; // IE9 status bug
1053
+ response.statusText = trim(xhr.statusText || '');
1054
+ response.headers = xhr.getAllResponseHeaders();
863
1055
 
864
- Promise.race = function (iterable, context) {
865
- return new Promise(PromiseObj.race(iterable), context);
866
- };
1056
+ resolve(response);
1057
+ };
867
1058
 
868
- var p = Promise.prototype;
1059
+ xhr.timeout = 0;
1060
+ xhr.onload = handler;
1061
+ xhr.onabort = handler;
1062
+ xhr.onerror = handler;
1063
+ xhr.ontimeout = function () {};
1064
+ xhr.onprogress = function () {};
869
1065
 
870
- p.bind = function (context) {
871
- this.context = context;
872
- return this;
873
- };
1066
+ if (isPlainObject(request.xhr)) {
1067
+ extend(xhr, request.xhr);
1068
+ }
874
1069
 
875
- p.then = function (fulfilled, rejected) {
1070
+ if (isPlainObject(request.upload)) {
1071
+ extend(xhr.upload, request.upload);
1072
+ }
876
1073
 
877
- if (fulfilled && fulfilled.bind && this.context) {
878
- fulfilled = fulfilled.bind(this.context);
879
- }
1074
+ each(request.headers || {}, function (value, header) {
1075
+ xhr.setRequestHeader(header, value);
1076
+ });
880
1077
 
881
- if (rejected && rejected.bind && this.context) {
882
- rejected = rejected.bind(this.context);
883
- }
1078
+ xhr.send(request.data);
1079
+ });
1080
+ }
884
1081
 
885
- this.promise = this.promise.then(fulfilled, rejected);
1082
+ function Client (request) {
886
1083
 
887
- return this;
888
- };
1084
+ var response = (request.client || xhrClient)(request);
889
1085
 
890
- p.catch = function (rejected) {
1086
+ return Promise$1.resolve(response).then(function (response) {
891
1087
 
892
- if (rejected && rejected.bind && this.context) {
893
- rejected = rejected.bind(this.context);
894
- }
1088
+ if (response.headers) {
895
1089
 
896
- this.promise = this.promise.catch(rejected);
1090
+ var headers = parseHeaders(response.headers);
897
1091
 
898
- return this;
899
- };
1092
+ response.headers = function (name) {
900
1093
 
901
- p.finally = function (callback) {
1094
+ if (name) {
1095
+ return headers[toLower(name)];
1096
+ }
902
1097
 
903
- return this.then(function (value) {
904
- callback.call(this);
905
- return value;
906
- }, function (reason) {
907
- callback.call(this);
908
- return PromiseObj.reject(reason);
909
- });
910
- };
1098
+ return headers;
1099
+ };
1100
+ }
911
1101
 
912
- p.success = function (callback) {
1102
+ response.ok = response.status >= 200 && response.status < 300;
913
1103
 
914
- _.warn('The `success` method has been deprecated. Use the `then` method instead.');
1104
+ return response;
1105
+ });
1106
+ }
915
1107
 
916
- return this.then(function (response) {
917
- return callback.call(this, response.data, response.status, response) || response;
918
- });
919
- };
1108
+ function parseHeaders(str) {
920
1109
 
921
- p.error = function (callback) {
1110
+ var headers = {},
1111
+ value,
1112
+ name,
1113
+ i;
922
1114
 
923
- _.warn('The `error` method has been deprecated. Use the `catch` method instead.');
1115
+ if (isString(str)) {
1116
+ each(str.split('\n'), function (row) {
924
1117
 
925
- return this.catch(function (response) {
926
- return callback.call(this, response.data, response.status, response) || response;
927
- });
928
- };
1118
+ i = row.indexOf(':');
1119
+ name = trim(toLower(row.slice(0, i)));
1120
+ value = trim(row.slice(i + 1));
929
1121
 
930
- p.always = function (callback) {
1122
+ if (headers[name]) {
931
1123
 
932
- _.warn('The `always` method has been deprecated. Use the `finally` method instead.');
1124
+ if (isArray(headers[name])) {
1125
+ headers[name].push(value);
1126
+ } else {
1127
+ headers[name] = [headers[name], value];
1128
+ }
1129
+ } else {
933
1130
 
934
- var cb = function cb(response) {
935
- return callback.call(this, response.data, response.status, response) || response;
936
- };
1131
+ headers[name] = value;
1132
+ }
1133
+ });
1134
+ }
937
1135
 
938
- return this.then(cb, cb);
939
- };
1136
+ return headers;
1137
+ }
940
1138
 
941
- module.exports = Promise;
1139
+ /**
1140
+ * Service for sending network requests.
1141
+ */
942
1142
 
943
- /***/ },
944
- /* 11 */
945
- /***/ function(module, exports, __webpack_require__) {
1143
+ var jsonType = { 'Content-Type': 'application/json' };
946
1144
 
947
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
1145
+ function Http(url, options) {
948
1146
 
949
- /**
950
- * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)
951
- */
1147
+ var self = this || {},
1148
+ client = Client,
1149
+ request,
1150
+ promise;
952
1151
 
953
- var _ = __webpack_require__(1);
1152
+ Http.interceptors.forEach(function (handler) {
1153
+ client = interceptor(handler, self.$vm)(client);
1154
+ });
954
1155
 
955
- var RESOLVED = 0;
956
- var REJECTED = 1;
957
- var PENDING = 2;
958
-
959
- function Promise(executor) {
960
-
961
- this.state = PENDING;
962
- this.value = undefined;
963
- this.deferred = [];
964
-
965
- var promise = this;
966
-
967
- try {
968
- executor(function (x) {
969
- promise.resolve(x);
970
- }, function (r) {
971
- promise.reject(r);
972
- });
973
- } catch (e) {
974
- promise.reject(e);
975
- }
976
- }
977
-
978
- Promise.reject = function (r) {
979
- return new Promise(function (resolve, reject) {
980
- reject(r);
981
- });
982
- };
983
-
984
- Promise.resolve = function (x) {
985
- return new Promise(function (resolve, reject) {
986
- resolve(x);
987
- });
988
- };
989
-
990
- Promise.all = function all(iterable) {
991
- return new Promise(function (resolve, reject) {
992
- var count = 0,
993
- result = [];
994
-
995
- if (iterable.length === 0) {
996
- resolve(result);
997
- }
998
-
999
- function resolver(i) {
1000
- return function (x) {
1001
- result[i] = x;
1002
- count += 1;
1003
-
1004
- if (count === iterable.length) {
1005
- resolve(result);
1006
- }
1007
- };
1008
- }
1009
-
1010
- for (var i = 0; i < iterable.length; i += 1) {
1011
- Promise.resolve(iterable[i]).then(resolver(i), reject);
1012
- }
1013
- });
1014
- };
1015
-
1016
- Promise.race = function race(iterable) {
1017
- return new Promise(function (resolve, reject) {
1018
- for (var i = 0; i < iterable.length; i += 1) {
1019
- Promise.resolve(iterable[i]).then(resolve, reject);
1020
- }
1021
- });
1022
- };
1023
-
1024
- var p = Promise.prototype;
1025
-
1026
- p.resolve = function resolve(x) {
1027
- var promise = this;
1028
-
1029
- if (promise.state === PENDING) {
1030
- if (x === promise) {
1031
- throw new TypeError('Promise settled with itself.');
1032
- }
1033
-
1034
- var called = false;
1035
-
1036
- try {
1037
- var then = x && x['then'];
1038
-
1039
- if (x !== null && (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && typeof then === 'function') {
1040
- then.call(x, function (x) {
1041
- if (!called) {
1042
- promise.resolve(x);
1043
- }
1044
- called = true;
1045
- }, function (r) {
1046
- if (!called) {
1047
- promise.reject(r);
1048
- }
1049
- called = true;
1050
- });
1051
- return;
1052
- }
1053
- } catch (e) {
1054
- if (!called) {
1055
- promise.reject(e);
1056
- }
1057
- return;
1058
- }
1059
-
1060
- promise.state = RESOLVED;
1061
- promise.value = x;
1062
- promise.notify();
1063
- }
1064
- };
1065
-
1066
- p.reject = function reject(reason) {
1067
- var promise = this;
1068
-
1069
- if (promise.state === PENDING) {
1070
- if (reason === promise) {
1071
- throw new TypeError('Promise settled with itself.');
1072
- }
1073
-
1074
- promise.state = REJECTED;
1075
- promise.value = reason;
1076
- promise.notify();
1077
- }
1078
- };
1079
-
1080
- p.notify = function notify() {
1081
- var promise = this;
1082
-
1083
- _.nextTick(function () {
1084
- if (promise.state !== PENDING) {
1085
- while (promise.deferred.length) {
1086
- var deferred = promise.deferred.shift(),
1087
- onResolved = deferred[0],
1088
- onRejected = deferred[1],
1089
- resolve = deferred[2],
1090
- reject = deferred[3];
1091
-
1092
- try {
1093
- if (promise.state === RESOLVED) {
1094
- if (typeof onResolved === 'function') {
1095
- resolve(onResolved.call(undefined, promise.value));
1096
- } else {
1097
- resolve(promise.value);
1098
- }
1099
- } else if (promise.state === REJECTED) {
1100
- if (typeof onRejected === 'function') {
1101
- resolve(onRejected.call(undefined, promise.value));
1102
- } else {
1103
- reject(promise.value);
1104
- }
1105
- }
1106
- } catch (e) {
1107
- reject(e);
1108
- }
1109
- }
1110
- }
1111
- });
1112
- };
1113
-
1114
- p.then = function then(onResolved, onRejected) {
1115
- var promise = this;
1116
-
1117
- return new Promise(function (resolve, reject) {
1118
- promise.deferred.push([onResolved, onRejected, resolve, reject]);
1119
- promise.notify();
1120
- });
1121
- };
1122
-
1123
- p.catch = function (onRejected) {
1124
- return this.then(undefined, onRejected);
1125
- };
1126
-
1127
- module.exports = Promise;
1128
-
1129
- /***/ },
1130
- /* 12 */
1131
- /***/ function(module, exports, __webpack_require__) {
1132
-
1133
- /**
1134
- * XMLHttp client.
1135
- */
1136
-
1137
- var _ = __webpack_require__(1);
1138
- var Promise = __webpack_require__(10);
1139
-
1140
- module.exports = function (request) {
1141
- return new Promise(function (resolve) {
1142
-
1143
- var xhr = new XMLHttpRequest(),
1144
- response = { request: request },
1145
- handler;
1146
-
1147
- request.cancel = function () {
1148
- xhr.abort();
1149
- };
1150
-
1151
- xhr.open(request.method, _.url(request), true);
1152
-
1153
- handler = function handler(event) {
1154
-
1155
- response.data = xhr.responseText;
1156
- response.status = xhr.status;
1157
- response.statusText = xhr.statusText;
1158
- response.headers = xhr.getAllResponseHeaders();
1156
+ options = isObject(url) ? url : extend({ url: url }, options);
1157
+ request = merge({}, Http.options, self.$options, options);
1158
+ promise = client(request).bind(self.$vm).then(function (response) {
1159
1159
 
1160
- resolve(response);
1161
- };
1160
+ return response.ok ? response : Promise$1.reject(response);
1161
+ }, function (response) {
1162
1162
 
1163
- xhr.timeout = 0;
1164
- xhr.onload = handler;
1165
- xhr.onabort = handler;
1166
- xhr.onerror = handler;
1167
- xhr.ontimeout = function () {};
1168
- xhr.onprogress = function () {};
1163
+ if (response instanceof Error) {
1164
+ error(response);
1165
+ }
1169
1166
 
1170
- if (_.isPlainObject(request.xhr)) {
1171
- _.extend(xhr, request.xhr);
1172
- }
1167
+ return Promise$1.reject(response);
1168
+ });
1173
1169
 
1174
- if (_.isPlainObject(request.upload)) {
1175
- _.extend(xhr.upload, request.upload);
1176
- }
1170
+ if (request.success) {
1171
+ promise.success(request.success);
1172
+ }
1177
1173
 
1178
- _.each(request.headers || {}, function (value, header) {
1179
- xhr.setRequestHeader(header, value);
1180
- });
1174
+ if (request.error) {
1175
+ promise.error(request.error);
1176
+ }
1181
1177
 
1182
- xhr.send(request.data);
1183
- });
1184
- };
1178
+ return promise;
1179
+ }
1185
1180
 
1186
- /***/ },
1187
- /* 13 */
1188
- /***/ function(module, exports, __webpack_require__) {
1181
+ Http.options = {
1182
+ method: 'get',
1183
+ data: '',
1184
+ params: {},
1185
+ headers: {},
1186
+ xhr: null,
1187
+ upload: null,
1188
+ jsonp: 'callback',
1189
+ beforeSend: null,
1190
+ crossOrigin: null,
1191
+ emulateHTTP: false,
1192
+ emulateJSON: false,
1193
+ timeout: 0
1194
+ };
1189
1195
 
1190
- /**
1191
- * Interceptor factory.
1192
- */
1196
+ Http.headers = {
1197
+ put: jsonType,
1198
+ post: jsonType,
1199
+ patch: jsonType,
1200
+ delete: jsonType,
1201
+ common: { 'Accept': 'application/json, text/plain, */*' },
1202
+ custom: { 'X-Requested-With': 'XMLHttpRequest' }
1203
+ };
1193
1204
 
1194
- var _ = __webpack_require__(1);
1195
- var Promise = __webpack_require__(10);
1205
+ Http.interceptors = [exports$4, exports$7, exports$3, exports$5, exports$2, exports$6, exports$1];
1196
1206
 
1197
- module.exports = function (handler, vm) {
1207
+ ['get', 'put', 'post', 'patch', 'delete', 'jsonp'].forEach(function (method) {
1198
1208
 
1199
- return function (client) {
1209
+ Http[method] = function (url, data, success, options) {
1200
1210
 
1201
- if (_.isFunction(handler)) {
1202
- handler = handler.call(vm, Promise);
1203
- }
1211
+ if (isFunction(data)) {
1212
+ options = success;
1213
+ success = data;
1214
+ data = undefined;
1215
+ }
1204
1216
 
1205
- return function (request) {
1217
+ if (isObject(success)) {
1218
+ options = success;
1219
+ success = undefined;
1220
+ }
1206
1221
 
1207
- if (_.isFunction(handler.request)) {
1208
- request = handler.request.call(vm, request);
1209
- }
1222
+ return this(url, extend({ method: method, data: data, success: success }, options));
1223
+ };
1224
+ });
1210
1225
 
1211
- return when(request, function (request) {
1212
- return when(client(request), function (response) {
1226
+ function Resource(url, params, actions, options) {
1213
1227
 
1214
- if (_.isFunction(handler.response)) {
1215
- response = handler.response.call(vm, response);
1216
- }
1228
+ var self = this || {},
1229
+ resource = {};
1217
1230
 
1218
- return response;
1219
- });
1220
- });
1221
- };
1222
- };
1223
- };
1231
+ actions = extend({}, Resource.actions, actions);
1224
1232
 
1225
- function when(value, fulfilled, rejected) {
1233
+ each(actions, function (action, name) {
1226
1234
 
1227
- var promise = Promise.resolve(value);
1235
+ action = merge({ url: url, params: params || {} }, options, action);
1228
1236
 
1229
- if (arguments.length < 2) {
1230
- return promise;
1231
- }
1237
+ resource[name] = function () {
1238
+ return (self.$http || Http)(opts(action, arguments));
1239
+ };
1240
+ });
1232
1241
 
1233
- return promise.then(fulfilled, rejected);
1234
- }
1242
+ return resource;
1243
+ }
1235
1244
 
1236
- /***/ },
1237
- /* 14 */
1238
- /***/ function(module, exports, __webpack_require__) {
1245
+ function opts(action, args) {
1239
1246
 
1240
- /**
1241
- * Before Interceptor.
1242
- */
1247
+ var options = extend({}, action),
1248
+ params = {},
1249
+ data,
1250
+ success,
1251
+ error;
1243
1252
 
1244
- var _ = __webpack_require__(1);
1253
+ switch (args.length) {
1245
1254
 
1246
- module.exports = {
1255
+ case 4:
1247
1256
 
1248
- request: function request(_request) {
1257
+ error = args[3];
1258
+ success = args[2];
1249
1259
 
1250
- if (_.isFunction(_request.beforeSend)) {
1251
- _request.beforeSend.call(this, _request);
1252
- }
1260
+ case 3:
1261
+ case 2:
1253
1262
 
1254
- return _request;
1255
- }
1263
+ if (isFunction(args[1])) {
1256
1264
 
1257
- };
1265
+ if (isFunction(args[0])) {
1258
1266
 
1259
- /***/ },
1260
- /* 15 */
1261
- /***/ function(module, exports) {
1267
+ success = args[0];
1268
+ error = args[1];
1262
1269
 
1263
- /**
1264
- * Timeout Interceptor.
1265
- */
1270
+ break;
1271
+ }
1266
1272
 
1267
- module.exports = function () {
1273
+ success = args[1];
1274
+ error = args[2];
1275
+ } else {
1268
1276
 
1269
- var timeout;
1277
+ params = args[0];
1278
+ data = args[1];
1279
+ success = args[2];
1270
1280
 
1271
- return {
1281
+ break;
1282
+ }
1272
1283
 
1273
- request: function request(_request) {
1284
+ case 1:
1274
1285
 
1275
- if (_request.timeout) {
1276
- timeout = setTimeout(function () {
1277
- _request.cancel();
1278
- }, _request.timeout);
1279
- }
1286
+ if (isFunction(args[0])) {
1287
+ success = args[0];
1288
+ } else if (/^(POST|PUT|PATCH)$/i.test(options.method)) {
1289
+ data = args[0];
1290
+ } else {
1291
+ params = args[0];
1292
+ }
1280
1293
 
1281
- return _request;
1282
- },
1294
+ break;
1283
1295
 
1284
- response: function response(_response) {
1296
+ case 0:
1285
1297
 
1286
- clearTimeout(timeout);
1298
+ break;
1287
1299
 
1288
- return _response;
1289
- }
1300
+ default:
1290
1301
 
1291
- };
1292
- };
1302
+ throw 'Expected up to 4 arguments [params, data, success, error], got ' + args.length + ' arguments';
1303
+ }
1293
1304
 
1294
- /***/ },
1295
- /* 16 */
1296
- /***/ function(module, exports, __webpack_require__) {
1305
+ options.data = data;
1306
+ options.params = extend({}, options.params, params);
1297
1307
 
1298
- /**
1299
- * JSONP Interceptor.
1300
- */
1308
+ if (success) {
1309
+ options.success = success;
1310
+ }
1301
1311
 
1302
- var jsonpClient = __webpack_require__(17);
1312
+ if (error) {
1313
+ options.error = error;
1314
+ }
1303
1315
 
1304
- module.exports = {
1316
+ return options;
1317
+ }
1305
1318
 
1306
- request: function request(_request) {
1319
+ Resource.actions = {
1307
1320
 
1308
- if (_request.method == 'JSONP') {
1309
- _request.client = jsonpClient;
1310
- }
1321
+ get: { method: 'GET' },
1322
+ save: { method: 'POST' },
1323
+ query: { method: 'GET' },
1324
+ update: { method: 'PUT' },
1325
+ remove: { method: 'DELETE' },
1326
+ delete: { method: 'DELETE' }
1311
1327
 
1312
- return _request;
1313
- }
1328
+ };
1314
1329
 
1315
- };
1330
+ function plugin(Vue) {
1316
1331
 
1317
- /***/ },
1318
- /* 17 */
1319
- /***/ function(module, exports, __webpack_require__) {
1332
+ if (plugin.installed) {
1333
+ return;
1334
+ }
1320
1335
 
1321
- /**
1322
- * JSONP client.
1323
- */
1336
+ Util(Vue);
1324
1337
 
1325
- var _ = __webpack_require__(1);
1326
- var Promise = __webpack_require__(10);
1338
+ Vue.url = Url;
1339
+ Vue.http = Http;
1340
+ Vue.resource = Resource;
1341
+ Vue.Promise = Promise$1;
1327
1342
 
1328
- module.exports = function (request) {
1329
- return new Promise(function (resolve) {
1343
+ Object.defineProperties(Vue.prototype, {
1330
1344
 
1331
- var callback = '_jsonp' + Math.random().toString(36).substr(2),
1332
- response = { request: request, data: null },
1333
- handler,
1334
- script;
1345
+ $url: {
1346
+ get: function get() {
1347
+ return options(Vue.url, this, this.$options.url);
1348
+ }
1349
+ },
1335
1350
 
1336
- request.params[request.jsonp] = callback;
1337
- request.cancel = function () {
1338
- handler({ type: 'cancel' });
1339
- };
1351
+ $http: {
1352
+ get: function get() {
1353
+ return options(Vue.http, this, this.$options.http);
1354
+ }
1355
+ },
1340
1356
 
1341
- script = document.createElement('script');
1342
- script.src = _.url(request);
1343
- script.type = 'text/javascript';
1344
- script.async = true;
1357
+ $resource: {
1358
+ get: function get() {
1359
+ return Vue.resource.bind(this);
1360
+ }
1361
+ },
1345
1362
 
1346
- window[callback] = function (data) {
1347
- response.data = data;
1348
- };
1363
+ $promise: {
1364
+ get: function get() {
1365
+ var _this = this;
1349
1366
 
1350
- handler = function handler(event) {
1367
+ return function (executor) {
1368
+ return new Vue.Promise(executor, _this);
1369
+ };
1370
+ }
1371
+ }
1351
1372
 
1352
- if (event.type === 'load' && response.data !== null) {
1353
- response.status = 200;
1354
- } else if (event.type === 'error') {
1355
- response.status = 404;
1356
- } else {
1357
- response.status = 0;
1358
- }
1373
+ });
1374
+ }
1359
1375
 
1360
- resolve(response);
1376
+ if (typeof window !== 'undefined' && window.Vue) {
1377
+ window.Vue.use(plugin);
1378
+ }
1361
1379
 
1362
- delete window[callback];
1363
- document.body.removeChild(script);
1364
- };
1380
+ return plugin;
1365
1381
 
1366
- script.onload = handler;
1367
- script.onerror = handler;
1368
-
1369
- document.body.appendChild(script);
1370
- });
1371
- };
1372
-
1373
- /***/ },
1374
- /* 18 */
1375
- /***/ function(module, exports) {
1376
-
1377
- /**
1378
- * HTTP method override Interceptor.
1379
- */
1380
-
1381
- module.exports = {
1382
-
1383
- request: function request(_request) {
1384
-
1385
- if (_request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(_request.method)) {
1386
- _request.headers['X-HTTP-Method-Override'] = _request.method;
1387
- _request.method = 'POST';
1388
- }
1389
-
1390
- return _request;
1391
- }
1392
-
1393
- };
1394
-
1395
- /***/ },
1396
- /* 19 */
1397
- /***/ function(module, exports, __webpack_require__) {
1398
-
1399
- /**
1400
- * Mime Interceptor.
1401
- */
1402
-
1403
- var _ = __webpack_require__(1);
1404
-
1405
- module.exports = {
1406
-
1407
- request: function request(_request) {
1408
-
1409
- if (_request.emulateJSON && _.isPlainObject(_request.data)) {
1410
- _request.headers['Content-Type'] = 'application/x-www-form-urlencoded';
1411
- _request.data = _.url.params(_request.data);
1412
- }
1413
-
1414
- if (_.isObject(_request.data) && /FormData/i.test(_request.data.toString())) {
1415
- delete _request.headers['Content-Type'];
1416
- }
1417
-
1418
- if (_.isPlainObject(_request.data)) {
1419
- _request.data = JSON.stringify(_request.data);
1420
- }
1421
-
1422
- return _request;
1423
- },
1424
-
1425
- response: function response(_response) {
1426
-
1427
- try {
1428
- _response.data = JSON.parse(_response.data);
1429
- } catch (e) {}
1430
-
1431
- return _response;
1432
- }
1433
-
1434
- };
1435
-
1436
- /***/ },
1437
- /* 20 */
1438
- /***/ function(module, exports, __webpack_require__) {
1439
-
1440
- /**
1441
- * Header Interceptor.
1442
- */
1443
-
1444
- var _ = __webpack_require__(1);
1445
-
1446
- module.exports = {
1447
-
1448
- request: function request(_request) {
1449
-
1450
- _request.method = _request.method.toUpperCase();
1451
- _request.headers = _.extend({}, _.http.headers.common, !_request.crossOrigin ? _.http.headers.custom : {}, _.http.headers[_request.method.toLowerCase()], _request.headers);
1452
-
1453
- if (_.isPlainObject(_request.data) && /^(GET|JSONP)$/i.test(_request.method)) {
1454
- _.extend(_request.params, _request.data);
1455
- delete _request.data;
1456
- }
1457
-
1458
- return _request;
1459
- }
1460
-
1461
- };
1462
-
1463
- /***/ },
1464
- /* 21 */
1465
- /***/ function(module, exports, __webpack_require__) {
1466
-
1467
- /**
1468
- * CORS Interceptor.
1469
- */
1470
-
1471
- var _ = __webpack_require__(1);
1472
- var xdrClient = __webpack_require__(22);
1473
- var xhrCors = 'withCredentials' in new XMLHttpRequest();
1474
- var originUrl = _.url.parse(location.href);
1475
-
1476
- module.exports = {
1477
-
1478
- request: function request(_request) {
1479
-
1480
- if (_request.crossOrigin === null) {
1481
- _request.crossOrigin = crossOrigin(_request);
1482
- }
1483
-
1484
- if (_request.crossOrigin) {
1485
-
1486
- if (!xhrCors) {
1487
- _request.client = xdrClient;
1488
- }
1489
-
1490
- _request.emulateHTTP = false;
1491
- }
1492
-
1493
- return _request;
1494
- }
1495
-
1496
- };
1497
-
1498
- function crossOrigin(request) {
1499
-
1500
- var requestUrl = _.url.parse(_.url(request));
1501
-
1502
- return requestUrl.protocol !== originUrl.protocol || requestUrl.host !== originUrl.host;
1503
- }
1504
-
1505
- /***/ },
1506
- /* 22 */
1507
- /***/ function(module, exports, __webpack_require__) {
1508
-
1509
- /**
1510
- * XDomain client (Internet Explorer).
1511
- */
1512
-
1513
- var _ = __webpack_require__(1);
1514
- var Promise = __webpack_require__(10);
1515
-
1516
- module.exports = function (request) {
1517
- return new Promise(function (resolve) {
1518
-
1519
- var xdr = new XDomainRequest(),
1520
- response = { request: request },
1521
- handler;
1522
-
1523
- request.cancel = function () {
1524
- xdr.abort();
1525
- };
1526
-
1527
- xdr.open(request.method, _.url(request), true);
1528
-
1529
- handler = function handler(event) {
1530
-
1531
- response.data = xdr.responseText;
1532
- response.status = xdr.status;
1533
- response.statusText = xdr.statusText;
1534
-
1535
- resolve(response);
1536
- };
1537
-
1538
- xdr.timeout = 0;
1539
- xdr.onload = handler;
1540
- xdr.onabort = handler;
1541
- xdr.onerror = handler;
1542
- xdr.ontimeout = function () {};
1543
- xdr.onprogress = function () {};
1544
-
1545
- xdr.send(request.data);
1546
- });
1547
- };
1548
-
1549
- /***/ },
1550
- /* 23 */
1551
- /***/ function(module, exports, __webpack_require__) {
1552
-
1553
- /**
1554
- * Service for interacting with RESTful services.
1555
- */
1556
-
1557
- var _ = __webpack_require__(1);
1558
-
1559
- function Resource(url, params, actions, options) {
1560
-
1561
- var self = this,
1562
- resource = {};
1563
-
1564
- actions = _.extend({}, Resource.actions, actions);
1565
-
1566
- _.each(actions, function (action, name) {
1567
-
1568
- action = _.merge({ url: url, params: params || {} }, options, action);
1569
-
1570
- resource[name] = function () {
1571
- return (self.$http || _.http)(opts(action, arguments));
1572
- };
1573
- });
1574
-
1575
- return resource;
1576
- }
1577
-
1578
- function opts(action, args) {
1579
-
1580
- var options = _.extend({}, action),
1581
- params = {},
1582
- data,
1583
- success,
1584
- error;
1585
-
1586
- switch (args.length) {
1587
-
1588
- case 4:
1589
-
1590
- error = args[3];
1591
- success = args[2];
1592
-
1593
- case 3:
1594
- case 2:
1595
-
1596
- if (_.isFunction(args[1])) {
1597
-
1598
- if (_.isFunction(args[0])) {
1599
-
1600
- success = args[0];
1601
- error = args[1];
1602
-
1603
- break;
1604
- }
1605
-
1606
- success = args[1];
1607
- error = args[2];
1608
- } else {
1609
-
1610
- params = args[0];
1611
- data = args[1];
1612
- success = args[2];
1613
-
1614
- break;
1615
- }
1616
-
1617
- case 1:
1618
-
1619
- if (_.isFunction(args[0])) {
1620
- success = args[0];
1621
- } else if (/^(POST|PUT|PATCH)$/i.test(options.method)) {
1622
- data = args[0];
1623
- } else {
1624
- params = args[0];
1625
- }
1626
-
1627
- break;
1628
-
1629
- case 0:
1630
-
1631
- break;
1632
-
1633
- default:
1634
-
1635
- throw 'Expected up to 4 arguments [params, data, success, error], got ' + args.length + ' arguments';
1636
- }
1637
-
1638
- options.data = data;
1639
- options.params = _.extend({}, options.params, params);
1640
-
1641
- if (success) {
1642
- options.success = success;
1643
- }
1644
-
1645
- if (error) {
1646
- options.error = error;
1647
- }
1648
-
1649
- return options;
1650
- }
1651
-
1652
- Resource.actions = {
1653
-
1654
- get: { method: 'GET' },
1655
- save: { method: 'POST' },
1656
- query: { method: 'GET' },
1657
- update: { method: 'PUT' },
1658
- remove: { method: 'DELETE' },
1659
- delete: { method: 'DELETE' }
1660
-
1661
- };
1662
-
1663
- module.exports = _.resource = Resource;
1664
-
1665
- /***/ }
1666
- /******/ ])
1667
- });
1668
- ;
1382
+ }));