vue-rails 2.0.1 → 2.2.1

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