vuejs-rails 1.0.21 → 1.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Readme.md +9 -1
- data/lib/vuejs-rails/version.rb +1 -1
- data/vendor/assets/javascripts/vue.js +256 -149
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2577a08c2d277a4f5a7c3afc88ce511c46b59dd
|
4
|
+
data.tar.gz: 8b7d24d0ea59feb2faccfb2c254256c9070dbcb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73424af37a8b27043e74bb640ca90605419b494113d3b99205dc59dfec3c759af51ac2cdf4f1cc0052aba6227414a98ad322978e90d5376cf82eda48b97bcac0
|
7
|
+
data.tar.gz: 70328412997be4f0393d2f2acd688d1415e28a896cf11f91d592eb64364f10fc934cbbe115d8006e1f229f13dc924a1fa9412993584eb99db43e7ff5cee93a82
|
data/Readme.md
CHANGED
@@ -10,12 +10,20 @@ Have in your Gemfile:
|
|
10
10
|
|
11
11
|
gem 'vuejs-rails'
|
12
12
|
|
13
|
-
And
|
13
|
+
And in your application.js manifest:
|
14
14
|
|
15
15
|
//= require vue
|
16
16
|
//= require vue-router (optional)
|
17
17
|
//= require vue-resource (optional)
|
18
18
|
|
19
|
+
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.
|
20
|
+
|
21
|
+
In app/views/layouts/application.html.erb, move this line from the head of the document to the end of the body:
|
22
|
+
|
23
|
+
```<%= javascript_include_tag 'application' %>```
|
24
|
+
|
25
|
+
You may write your Vue.js code directly in your views using ```<script>``` tags, or in a separate Javascript file (recommended).
|
26
|
+
|
19
27
|
## Contributing
|
20
28
|
|
21
29
|
Contributions are welcome, please follow [GitHub Flow](https://guides.github.com/introduction/flow/index.html)
|
data/lib/vuejs-rails/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vue.js v1.0.
|
2
|
+
* Vue.js v1.0.24
|
3
3
|
* (c) 2016 Evan You
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -50,6 +50,10 @@
|
|
50
50
|
delete obj[key];
|
51
51
|
var ob = obj.__ob__;
|
52
52
|
if (!ob) {
|
53
|
+
if (obj._isVue) {
|
54
|
+
delete obj._data[key];
|
55
|
+
obj._digest();
|
56
|
+
}
|
53
57
|
return;
|
54
58
|
}
|
55
59
|
ob.dep.notify();
|
@@ -400,6 +404,8 @@
|
|
400
404
|
var UA = inBrowser && window.navigator.userAgent.toLowerCase();
|
401
405
|
var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
|
402
406
|
var isAndroid = UA && UA.indexOf('android') > 0;
|
407
|
+
var isIos = UA && /(iphone|ipad|ipod|ios)/i.test(UA);
|
408
|
+
var isWechat = UA && UA.indexOf('micromessenger') > 0;
|
403
409
|
|
404
410
|
var transitionProp = undefined;
|
405
411
|
var transitionEndEvent = undefined;
|
@@ -440,7 +446,7 @@
|
|
440
446
|
}
|
441
447
|
|
442
448
|
/* istanbul ignore if */
|
443
|
-
if (typeof MutationObserver !== 'undefined') {
|
449
|
+
if (typeof MutationObserver !== 'undefined' && !(isWechat && isIos)) {
|
444
450
|
var counter = 1;
|
445
451
|
var observer = new MutationObserver(nextTickHandler);
|
446
452
|
var textNode = document.createTextNode(counter);
|
@@ -469,6 +475,27 @@
|
|
469
475
|
};
|
470
476
|
})();
|
471
477
|
|
478
|
+
var _Set = undefined;
|
479
|
+
/* istanbul ignore if */
|
480
|
+
if (typeof Set !== 'undefined' && Set.toString().match(/native code/)) {
|
481
|
+
// use native Set when available.
|
482
|
+
_Set = Set;
|
483
|
+
} else {
|
484
|
+
// a non-standard Set polyfill that only works with primitive keys.
|
485
|
+
_Set = function () {
|
486
|
+
this.set = Object.create(null);
|
487
|
+
};
|
488
|
+
_Set.prototype.has = function (key) {
|
489
|
+
return this.set[key] !== undefined;
|
490
|
+
};
|
491
|
+
_Set.prototype.add = function (key) {
|
492
|
+
this.set[key] = 1;
|
493
|
+
};
|
494
|
+
_Set.prototype.clear = function () {
|
495
|
+
this.set = Object.create(null);
|
496
|
+
};
|
497
|
+
}
|
498
|
+
|
472
499
|
function Cache(limit) {
|
473
500
|
this.size = 0;
|
474
501
|
this.limit = limit;
|
@@ -1113,8 +1140,9 @@ var transition = Object.freeze({
|
|
1113
1140
|
*/
|
1114
1141
|
|
1115
1142
|
function inDoc(node) {
|
1116
|
-
|
1117
|
-
var
|
1143
|
+
if (!node) return false;
|
1144
|
+
var doc = node.ownerDocument.documentElement;
|
1145
|
+
var parent = node.parentNode;
|
1118
1146
|
return doc === node || doc === parent || !!(parent && parent.nodeType === 1 && doc.contains(parent));
|
1119
1147
|
}
|
1120
1148
|
|
@@ -1549,7 +1577,7 @@ var transition = Object.freeze({
|
|
1549
1577
|
if (resolveAsset(options, 'components', tag)) {
|
1550
1578
|
return { id: tag };
|
1551
1579
|
} else {
|
1552
|
-
var is = hasAttrs && getIsBinding(el);
|
1580
|
+
var is = hasAttrs && getIsBinding(el, options);
|
1553
1581
|
if (is) {
|
1554
1582
|
return is;
|
1555
1583
|
} else if ('development' !== 'production') {
|
@@ -1562,7 +1590,7 @@ var transition = Object.freeze({
|
|
1562
1590
|
}
|
1563
1591
|
}
|
1564
1592
|
} else if (hasAttrs) {
|
1565
|
-
return getIsBinding(el);
|
1593
|
+
return getIsBinding(el, options);
|
1566
1594
|
}
|
1567
1595
|
}
|
1568
1596
|
|
@@ -1570,14 +1598,18 @@ var transition = Object.freeze({
|
|
1570
1598
|
* Get "is" binding from an element.
|
1571
1599
|
*
|
1572
1600
|
* @param {Element} el
|
1601
|
+
* @param {Object} options
|
1573
1602
|
* @return {Object|undefined}
|
1574
1603
|
*/
|
1575
1604
|
|
1576
|
-
function getIsBinding(el) {
|
1605
|
+
function getIsBinding(el, options) {
|
1577
1606
|
// dynamic syntax
|
1578
|
-
var exp =
|
1607
|
+
var exp = el.getAttribute('is');
|
1579
1608
|
if (exp != null) {
|
1580
|
-
|
1609
|
+
if (resolveAsset(options, 'components', exp)) {
|
1610
|
+
el.removeAttribute('is');
|
1611
|
+
return { id: exp };
|
1612
|
+
}
|
1581
1613
|
} else {
|
1582
1614
|
exp = getBindAttr(el, 'is');
|
1583
1615
|
if (exp != null) {
|
@@ -1688,7 +1720,7 @@ var transition = Object.freeze({
|
|
1688
1720
|
*/
|
1689
1721
|
|
1690
1722
|
function mergeAssets(parentVal, childVal) {
|
1691
|
-
var res = Object.create(parentVal);
|
1723
|
+
var res = Object.create(parentVal || null);
|
1692
1724
|
return childVal ? extend(res, guardArrayAssets(childVal)) : res;
|
1693
1725
|
}
|
1694
1726
|
|
@@ -1847,8 +1879,16 @@ var transition = Object.freeze({
|
|
1847
1879
|
function mergeOptions(parent, child, vm) {
|
1848
1880
|
guardComponents(child);
|
1849
1881
|
guardProps(child);
|
1882
|
+
if ('development' !== 'production') {
|
1883
|
+
if (child.propsData && !vm) {
|
1884
|
+
warn('propsData can only be used as an instantiation option.');
|
1885
|
+
}
|
1886
|
+
}
|
1850
1887
|
var options = {};
|
1851
1888
|
var key;
|
1889
|
+
if (child['extends']) {
|
1890
|
+
parent = typeof child['extends'] === 'function' ? mergeOptions(parent, child['extends'].options, vm) : mergeOptions(parent, child['extends'], vm);
|
1891
|
+
}
|
1852
1892
|
if (child.mixins) {
|
1853
1893
|
for (var i = 0, l = child.mixins.length; i < l; i++) {
|
1854
1894
|
parent = mergeOptions(parent, child.mixins[i], vm);
|
@@ -2281,11 +2321,14 @@ var transition = Object.freeze({
|
|
2281
2321
|
devtools: devtools,
|
2282
2322
|
isIE9: isIE9,
|
2283
2323
|
isAndroid: isAndroid,
|
2324
|
+
isIos: isIos,
|
2325
|
+
isWechat: isWechat,
|
2284
2326
|
get transitionProp () { return transitionProp; },
|
2285
2327
|
get transitionEndEvent () { return transitionEndEvent; },
|
2286
2328
|
get animationProp () { return animationProp; },
|
2287
2329
|
get animationEndEvent () { return animationEndEvent; },
|
2288
2330
|
nextTick: nextTick,
|
2331
|
+
get _Set () { return _Set; },
|
2289
2332
|
query: query,
|
2290
2333
|
inDoc: inDoc,
|
2291
2334
|
getAttr: getAttr,
|
@@ -2398,14 +2441,9 @@ var transition = Object.freeze({
|
|
2398
2441
|
this._updateRef();
|
2399
2442
|
|
2400
2443
|
// initialize data as empty object.
|
2401
|
-
// it will be filled up in
|
2444
|
+
// it will be filled up in _initData().
|
2402
2445
|
this._data = {};
|
2403
2446
|
|
2404
|
-
// save raw constructor data before merge
|
2405
|
-
// so that we know which properties are provided at
|
2406
|
-
// instantiation.
|
2407
|
-
this._runtimeData = options.data;
|
2408
|
-
|
2409
2447
|
// call init hook
|
2410
2448
|
this._callHook('init');
|
2411
2449
|
|
@@ -2955,24 +2993,22 @@ var expression = Object.freeze({
|
|
2955
2993
|
// triggered, the DOM would have already been in updated
|
2956
2994
|
// state.
|
2957
2995
|
|
2958
|
-
var queueIndex;
|
2959
2996
|
var queue = [];
|
2960
2997
|
var userQueue = [];
|
2961
2998
|
var has = {};
|
2962
2999
|
var circular = {};
|
2963
3000
|
var waiting = false;
|
2964
|
-
var internalQueueDepleted = false;
|
2965
3001
|
|
2966
3002
|
/**
|
2967
3003
|
* Reset the batcher's state.
|
2968
3004
|
*/
|
2969
3005
|
|
2970
3006
|
function resetBatcherState() {
|
2971
|
-
queue =
|
2972
|
-
userQueue =
|
3007
|
+
queue.length = 0;
|
3008
|
+
userQueue.length = 0;
|
2973
3009
|
has = {};
|
2974
3010
|
circular = {};
|
2975
|
-
waiting =
|
3011
|
+
waiting = false;
|
2976
3012
|
}
|
2977
3013
|
|
2978
3014
|
/**
|
@@ -2980,15 +3016,26 @@ var expression = Object.freeze({
|
|
2980
3016
|
*/
|
2981
3017
|
|
2982
3018
|
function flushBatcherQueue() {
|
2983
|
-
|
2984
|
-
|
2985
|
-
|
2986
|
-
|
2987
|
-
|
2988
|
-
|
2989
|
-
|
3019
|
+
var _again = true;
|
3020
|
+
|
3021
|
+
_function: while (_again) {
|
3022
|
+
_again = false;
|
3023
|
+
|
3024
|
+
runBatcherQueue(queue);
|
3025
|
+
runBatcherQueue(userQueue);
|
3026
|
+
// user watchers triggered more watchers,
|
3027
|
+
// keep flushing until it depletes
|
3028
|
+
if (queue.length) {
|
3029
|
+
_again = true;
|
3030
|
+
continue _function;
|
3031
|
+
}
|
3032
|
+
// dev tool hook
|
3033
|
+
/* istanbul ignore if */
|
3034
|
+
if (devtools && config.devtools) {
|
3035
|
+
devtools.emit('flush');
|
3036
|
+
}
|
3037
|
+
resetBatcherState();
|
2990
3038
|
}
|
2991
|
-
resetBatcherState();
|
2992
3039
|
}
|
2993
3040
|
|
2994
3041
|
/**
|
@@ -3000,8 +3047,8 @@ var expression = Object.freeze({
|
|
3000
3047
|
function runBatcherQueue(queue) {
|
3001
3048
|
// do not cache length because more watchers might be pushed
|
3002
3049
|
// as we run existing watchers
|
3003
|
-
for (
|
3004
|
-
var watcher = queue[
|
3050
|
+
for (var i = 0; i < queue.length; i++) {
|
3051
|
+
var watcher = queue[i];
|
3005
3052
|
var id = watcher.id;
|
3006
3053
|
has[id] = null;
|
3007
3054
|
watcher.run();
|
@@ -3014,6 +3061,7 @@ var expression = Object.freeze({
|
|
3014
3061
|
}
|
3015
3062
|
}
|
3016
3063
|
}
|
3064
|
+
queue.length = 0;
|
3017
3065
|
}
|
3018
3066
|
|
3019
3067
|
/**
|
@@ -3030,20 +3078,14 @@ var expression = Object.freeze({
|
|
3030
3078
|
function pushWatcher(watcher) {
|
3031
3079
|
var id = watcher.id;
|
3032
3080
|
if (has[id] == null) {
|
3033
|
-
|
3034
|
-
|
3035
|
-
|
3036
|
-
|
3037
|
-
|
3038
|
-
|
3039
|
-
|
3040
|
-
|
3041
|
-
q.push(watcher);
|
3042
|
-
// queue the flush
|
3043
|
-
if (!waiting) {
|
3044
|
-
waiting = true;
|
3045
|
-
nextTick(flushBatcherQueue);
|
3046
|
-
}
|
3081
|
+
// push watcher into appropriate queue
|
3082
|
+
var q = watcher.user ? userQueue : queue;
|
3083
|
+
has[id] = q.length;
|
3084
|
+
q.push(watcher);
|
3085
|
+
// queue the flush
|
3086
|
+
if (!waiting) {
|
3087
|
+
waiting = true;
|
3088
|
+
nextTick(flushBatcherQueue);
|
3047
3089
|
}
|
3048
3090
|
}
|
3049
3091
|
}
|
@@ -3084,8 +3126,8 @@ var expression = Object.freeze({
|
|
3084
3126
|
this.dirty = this.lazy; // for lazy watchers
|
3085
3127
|
this.deps = [];
|
3086
3128
|
this.newDeps = [];
|
3087
|
-
this.depIds =
|
3088
|
-
this.newDepIds =
|
3129
|
+
this.depIds = new _Set();
|
3130
|
+
this.newDepIds = new _Set();
|
3089
3131
|
this.prevError = null; // for async error stacks
|
3090
3132
|
// parse expression for getter/setter
|
3091
3133
|
if (isFn) {
|
@@ -3177,8 +3219,6 @@ var expression = Object.freeze({
|
|
3177
3219
|
|
3178
3220
|
Watcher.prototype.beforeGet = function () {
|
3179
3221
|
Dep.target = this;
|
3180
|
-
this.newDepIds = Object.create(null);
|
3181
|
-
this.newDeps.length = 0;
|
3182
3222
|
};
|
3183
3223
|
|
3184
3224
|
/**
|
@@ -3189,10 +3229,10 @@ var expression = Object.freeze({
|
|
3189
3229
|
|
3190
3230
|
Watcher.prototype.addDep = function (dep) {
|
3191
3231
|
var id = dep.id;
|
3192
|
-
if (!this.newDepIds
|
3193
|
-
this.newDepIds
|
3232
|
+
if (!this.newDepIds.has(id)) {
|
3233
|
+
this.newDepIds.add(id);
|
3194
3234
|
this.newDeps.push(dep);
|
3195
|
-
if (!this.depIds
|
3235
|
+
if (!this.depIds.has(id)) {
|
3196
3236
|
dep.addSub(this);
|
3197
3237
|
}
|
3198
3238
|
}
|
@@ -3207,14 +3247,18 @@ var expression = Object.freeze({
|
|
3207
3247
|
var i = this.deps.length;
|
3208
3248
|
while (i--) {
|
3209
3249
|
var dep = this.deps[i];
|
3210
|
-
if (!this.newDepIds
|
3250
|
+
if (!this.newDepIds.has(dep.id)) {
|
3211
3251
|
dep.removeSub(this);
|
3212
3252
|
}
|
3213
3253
|
}
|
3254
|
+
var tmp = this.depIds;
|
3214
3255
|
this.depIds = this.newDepIds;
|
3215
|
-
|
3256
|
+
this.newDepIds = tmp;
|
3257
|
+
this.newDepIds.clear();
|
3258
|
+
tmp = this.deps;
|
3216
3259
|
this.deps = this.newDeps;
|
3217
3260
|
this.newDeps = tmp;
|
3261
|
+
this.newDeps.length = 0;
|
3218
3262
|
};
|
3219
3263
|
|
3220
3264
|
/**
|
@@ -3338,15 +3382,33 @@ var expression = Object.freeze({
|
|
3338
3382
|
* @param {*} val
|
3339
3383
|
*/
|
3340
3384
|
|
3341
|
-
|
3342
|
-
|
3343
|
-
|
3344
|
-
|
3345
|
-
|
3346
|
-
|
3347
|
-
|
3348
|
-
|
3349
|
-
|
3385
|
+
var seenObjects = new _Set();
|
3386
|
+
function traverse(val, seen) {
|
3387
|
+
var i = undefined,
|
3388
|
+
keys = undefined;
|
3389
|
+
if (!seen) {
|
3390
|
+
seen = seenObjects;
|
3391
|
+
seen.clear();
|
3392
|
+
}
|
3393
|
+
var isA = isArray(val);
|
3394
|
+
var isO = isObject(val);
|
3395
|
+
if (isA || isO) {
|
3396
|
+
if (val.__ob__) {
|
3397
|
+
var depId = val.__ob__.dep.id;
|
3398
|
+
if (seen.has(depId)) {
|
3399
|
+
return;
|
3400
|
+
} else {
|
3401
|
+
seen.add(depId);
|
3402
|
+
}
|
3403
|
+
}
|
3404
|
+
if (isA) {
|
3405
|
+
i = val.length;
|
3406
|
+
while (i--) traverse(val[i], seen);
|
3407
|
+
} else if (isO) {
|
3408
|
+
keys = Object.keys(val);
|
3409
|
+
i = keys.length;
|
3410
|
+
while (i--) traverse(val[keys[i]], seen);
|
3411
|
+
}
|
3350
3412
|
}
|
3351
3413
|
}
|
3352
3414
|
|
@@ -3455,10 +3517,13 @@ var expression = Object.freeze({
|
|
3455
3517
|
|
3456
3518
|
function nodeToFragment(node) {
|
3457
3519
|
// if its a template tag and the browser supports it,
|
3458
|
-
// its content is already a document fragment.
|
3520
|
+
// its content is already a document fragment. However, iOS Safari has
|
3521
|
+
// bug when using directly cloned template content with touch
|
3522
|
+
// events and can cause crashes when the nodes are removed from DOM, so we
|
3523
|
+
// have to treat template elements as string templates. (#2805)
|
3524
|
+
/* istanbul ignore if */
|
3459
3525
|
if (isRealTemplate(node)) {
|
3460
|
-
|
3461
|
-
return node.content;
|
3526
|
+
return stringToFragment(node.innerHTML);
|
3462
3527
|
}
|
3463
3528
|
// script template
|
3464
3529
|
if (node.tagName === 'SCRIPT') {
|
@@ -3854,7 +3919,7 @@ var template = Object.freeze({
|
|
3854
3919
|
this.vm = vm;
|
3855
3920
|
var template;
|
3856
3921
|
var isString = typeof el === 'string';
|
3857
|
-
if (isString || isTemplate(el)) {
|
3922
|
+
if (isString || isTemplate(el) && !el.hasAttribute('v-if')) {
|
3858
3923
|
template = parseTemplate(el, true);
|
3859
3924
|
} else {
|
3860
3925
|
template = document.createDocumentFragment();
|
@@ -4196,7 +4261,15 @@ var template = Object.freeze({
|
|
4196
4261
|
});
|
4197
4262
|
setTimeout(op, staggerAmount);
|
4198
4263
|
} else {
|
4199
|
-
|
4264
|
+
var target = prevEl.nextSibling;
|
4265
|
+
/* istanbul ignore if */
|
4266
|
+
if (!target) {
|
4267
|
+
// reset end anchor position in case the position was messed up
|
4268
|
+
// by an external drag-n-drop library.
|
4269
|
+
after(this.end, prevEl);
|
4270
|
+
target = this.end;
|
4271
|
+
}
|
4272
|
+
frag.before(target);
|
4200
4273
|
}
|
4201
4274
|
},
|
4202
4275
|
|
@@ -4267,7 +4340,7 @@ var template = Object.freeze({
|
|
4267
4340
|
var primitive = !isObject(value);
|
4268
4341
|
var id;
|
4269
4342
|
if (key || trackByKey || primitive) {
|
4270
|
-
id =
|
4343
|
+
id = getTrackByKey(index, key, value, trackByKey);
|
4271
4344
|
if (!cache[id]) {
|
4272
4345
|
cache[id] = frag;
|
4273
4346
|
} else if (trackByKey !== '$index') {
|
@@ -4281,8 +4354,10 @@ var template = Object.freeze({
|
|
4281
4354
|
} else {
|
4282
4355
|
'development' !== 'production' && this.warnDuplicate(value);
|
4283
4356
|
}
|
4284
|
-
} else {
|
4357
|
+
} else if (Object.isExtensible(value)) {
|
4285
4358
|
def(value, id, frag);
|
4359
|
+
} else if ('development' !== 'production') {
|
4360
|
+
warn('Frozen v-for objects cannot be automatically tracked, make sure to ' + 'provide a track-by key.');
|
4286
4361
|
}
|
4287
4362
|
}
|
4288
4363
|
frag.raw = value;
|
@@ -4302,7 +4377,7 @@ var template = Object.freeze({
|
|
4302
4377
|
var primitive = !isObject(value);
|
4303
4378
|
var frag;
|
4304
4379
|
if (key || trackByKey || primitive) {
|
4305
|
-
var id =
|
4380
|
+
var id = getTrackByKey(index, key, value, trackByKey);
|
4306
4381
|
frag = this.cache[id];
|
4307
4382
|
} else {
|
4308
4383
|
frag = value[this.id];
|
@@ -4329,7 +4404,7 @@ var template = Object.freeze({
|
|
4329
4404
|
var key = hasOwn(scope, '$key') && scope.$key;
|
4330
4405
|
var primitive = !isObject(value);
|
4331
4406
|
if (trackByKey || key || primitive) {
|
4332
|
-
var id =
|
4407
|
+
var id = getTrackByKey(index, key, value, trackByKey);
|
4333
4408
|
this.cache[id] = null;
|
4334
4409
|
} else {
|
4335
4410
|
value[this.id] = null;
|
@@ -4479,6 +4554,19 @@ var template = Object.freeze({
|
|
4479
4554
|
return ret;
|
4480
4555
|
}
|
4481
4556
|
|
4557
|
+
/**
|
4558
|
+
* Get the track by key for an item.
|
4559
|
+
*
|
4560
|
+
* @param {Number} index
|
4561
|
+
* @param {String} key
|
4562
|
+
* @param {*} value
|
4563
|
+
* @param {String} [trackByKey]
|
4564
|
+
*/
|
4565
|
+
|
4566
|
+
function getTrackByKey(index, key, value, trackByKey) {
|
4567
|
+
return trackByKey ? trackByKey === '$index' ? index : trackByKey.charAt(0).match(/\w/) ? getPath(value, trackByKey) : value[trackByKey] : key || value;
|
4568
|
+
}
|
4569
|
+
|
4482
4570
|
if ('development' !== 'production') {
|
4483
4571
|
vFor.warnDuplicate = function (value) {
|
4484
4572
|
warn('Duplicate value found in v-for="' + this.descriptor.raw + '": ' + JSON.stringify(value) + '. Use track-by="$index" if ' + 'you are expecting duplicate values.', this.vm);
|
@@ -5080,7 +5168,7 @@ var template = Object.freeze({
|
|
5080
5168
|
}
|
5081
5169
|
// key filter
|
5082
5170
|
var keys = Object.keys(this.modifiers).filter(function (key) {
|
5083
|
-
return key !== 'stop' && key !== 'prevent' && key !== 'self';
|
5171
|
+
return key !== 'stop' && key !== 'prevent' && key !== 'self' && key !== 'capture';
|
5084
5172
|
});
|
5085
5173
|
if (keys.length) {
|
5086
5174
|
handler = keyFilter(handler, keys);
|
@@ -5209,6 +5297,12 @@ var template = Object.freeze({
|
|
5209
5297
|
}
|
5210
5298
|
var i = prefixes.length;
|
5211
5299
|
var prefixed;
|
5300
|
+
if (camel !== 'filter' && camel in testEl.style) {
|
5301
|
+
return {
|
5302
|
+
kebab: prop,
|
5303
|
+
camel: camel
|
5304
|
+
};
|
5305
|
+
}
|
5212
5306
|
while (i--) {
|
5213
5307
|
prefixed = camelPrefixes[i] + upper;
|
5214
5308
|
if (prefixed in testEl.style) {
|
@@ -5218,12 +5312,6 @@ var template = Object.freeze({
|
|
5218
5312
|
};
|
5219
5313
|
}
|
5220
5314
|
}
|
5221
|
-
if (camel in testEl.style) {
|
5222
|
-
return {
|
5223
|
-
kebab: prop,
|
5224
|
-
camel: camel
|
5225
|
-
};
|
5226
|
-
}
|
5227
5315
|
}
|
5228
5316
|
|
5229
5317
|
// xlink
|
@@ -5312,8 +5400,12 @@ var template = Object.freeze({
|
|
5312
5400
|
attr = camelize(attr);
|
5313
5401
|
}
|
5314
5402
|
if (!interp && attrWithPropsRE.test(attr) && attr in el) {
|
5315
|
-
|
5403
|
+
var attrValue = attr === 'value' ? value == null // IE9 will set input.value to "null" for null...
|
5316
5404
|
? '' : value : value;
|
5405
|
+
|
5406
|
+
if (el[attr] !== attrValue) {
|
5407
|
+
el[attr] = attrValue;
|
5408
|
+
}
|
5317
5409
|
}
|
5318
5410
|
// set model props
|
5319
5411
|
var modelProp = modelProps[attr];
|
@@ -5413,66 +5505,66 @@ var template = Object.freeze({
|
|
5413
5505
|
deep: true,
|
5414
5506
|
|
5415
5507
|
update: function update(value) {
|
5416
|
-
if (value
|
5417
|
-
this.handleObject(stringToObject(value));
|
5418
|
-
} else if (isPlainObject(value)) {
|
5419
|
-
this.handleObject(value);
|
5420
|
-
} else if (isArray(value)) {
|
5421
|
-
this.handleArray(value);
|
5422
|
-
} else {
|
5508
|
+
if (!value) {
|
5423
5509
|
this.cleanup();
|
5510
|
+
} else if (typeof value === 'string') {
|
5511
|
+
this.setClass(value.trim().split(/\s+/));
|
5512
|
+
} else {
|
5513
|
+
this.setClass(normalize$1(value));
|
5424
5514
|
}
|
5425
5515
|
},
|
5426
5516
|
|
5427
|
-
|
5428
|
-
this.cleanup(value);
|
5429
|
-
this.prevKeys = Object.keys(value);
|
5430
|
-
setObjectClasses(this.el, value);
|
5431
|
-
},
|
5432
|
-
|
5433
|
-
handleArray: function handleArray(value) {
|
5517
|
+
setClass: function setClass(value) {
|
5434
5518
|
this.cleanup(value);
|
5435
5519
|
for (var i = 0, l = value.length; i < l; i++) {
|
5436
5520
|
var val = value[i];
|
5437
|
-
if (val
|
5438
|
-
|
5439
|
-
} else if (val && typeof val === 'string') {
|
5440
|
-
addClass(this.el, val);
|
5521
|
+
if (val) {
|
5522
|
+
apply(this.el, val, addClass);
|
5441
5523
|
}
|
5442
5524
|
}
|
5443
|
-
this.prevKeys = value
|
5525
|
+
this.prevKeys = value;
|
5444
5526
|
},
|
5445
5527
|
|
5446
5528
|
cleanup: function cleanup(value) {
|
5447
|
-
|
5448
|
-
|
5449
|
-
var i =
|
5529
|
+
var prevKeys = this.prevKeys;
|
5530
|
+
if (!prevKeys) return;
|
5531
|
+
var i = prevKeys.length;
|
5450
5532
|
while (i--) {
|
5451
|
-
var key =
|
5452
|
-
if (!key)
|
5453
|
-
|
5454
|
-
var keys = isPlainObject(key) ? Object.keys(key) : [key];
|
5455
|
-
for (var j = 0, l = keys.length; j < l; j++) {
|
5456
|
-
toggleClasses(this.el, keys[j], removeClass);
|
5533
|
+
var key = prevKeys[i];
|
5534
|
+
if (!value || value.indexOf(key) < 0) {
|
5535
|
+
apply(this.el, key, removeClass);
|
5457
5536
|
}
|
5458
5537
|
}
|
5459
5538
|
}
|
5460
5539
|
};
|
5461
5540
|
|
5462
|
-
|
5463
|
-
|
5464
|
-
|
5465
|
-
|
5466
|
-
|
5467
|
-
|
5468
|
-
|
5469
|
-
}
|
5541
|
+
/**
|
5542
|
+
* Normalize objects and arrays (potentially containing objects)
|
5543
|
+
* into array of strings.
|
5544
|
+
*
|
5545
|
+
* @param {Object|Array<String|Object>} value
|
5546
|
+
* @return {Array<String>}
|
5547
|
+
*/
|
5470
5548
|
|
5471
|
-
function
|
5472
|
-
var res =
|
5473
|
-
|
5474
|
-
|
5475
|
-
|
5549
|
+
function normalize$1(value) {
|
5550
|
+
var res = [];
|
5551
|
+
if (isArray(value)) {
|
5552
|
+
for (var i = 0, l = value.length; i < l; i++) {
|
5553
|
+
var _key = value[i];
|
5554
|
+
if (_key) {
|
5555
|
+
if (typeof _key === 'string') {
|
5556
|
+
res.push(_key);
|
5557
|
+
} else {
|
5558
|
+
for (var k in _key) {
|
5559
|
+
if (_key[k]) res.push(k);
|
5560
|
+
}
|
5561
|
+
}
|
5562
|
+
}
|
5563
|
+
}
|
5564
|
+
} else if (isObject(value)) {
|
5565
|
+
for (var key in value) {
|
5566
|
+
if (value[key]) res.push(key);
|
5567
|
+
}
|
5476
5568
|
}
|
5477
5569
|
return res;
|
5478
5570
|
}
|
@@ -5488,14 +5580,12 @@ var template = Object.freeze({
|
|
5488
5580
|
* @param {Function} fn
|
5489
5581
|
*/
|
5490
5582
|
|
5491
|
-
function
|
5583
|
+
function apply(el, key, fn) {
|
5492
5584
|
key = key.trim();
|
5493
|
-
|
5494
5585
|
if (key.indexOf(' ') === -1) {
|
5495
5586
|
fn(el, key);
|
5496
5587
|
return;
|
5497
5588
|
}
|
5498
|
-
|
5499
5589
|
// The key contains one or more space characters.
|
5500
5590
|
// Since a class name doesn't accept such characters, we
|
5501
5591
|
// treat it as multiple classes.
|
@@ -5546,6 +5636,7 @@ var template = Object.freeze({
|
|
5546
5636
|
// cached, when the component is used elsewhere this attribute
|
5547
5637
|
// will remain at link time.
|
5548
5638
|
this.el.removeAttribute('is');
|
5639
|
+
this.el.removeAttribute(':is');
|
5549
5640
|
// remove ref, same as above
|
5550
5641
|
if (this.descriptor.ref) {
|
5551
5642
|
this.el.removeAttribute('v-ref:' + hyphenate(this.descriptor.ref));
|
@@ -5980,6 +6071,7 @@ var template = Object.freeze({
|
|
5980
6071
|
return function propsLinkFn(vm, scope) {
|
5981
6072
|
// store resolved props info
|
5982
6073
|
vm._props = {};
|
6074
|
+
var inlineProps = vm.$options.propsData;
|
5983
6075
|
var i = props.length;
|
5984
6076
|
var prop, path, options, value, raw;
|
5985
6077
|
while (i--) {
|
@@ -5988,7 +6080,9 @@ var template = Object.freeze({
|
|
5988
6080
|
path = prop.path;
|
5989
6081
|
options = prop.options;
|
5990
6082
|
vm._props[path] = prop;
|
5991
|
-
if (
|
6083
|
+
if (inlineProps && hasOwn(inlineProps, path)) {
|
6084
|
+
initProp(vm, prop, inlineProps[path]);
|
6085
|
+
}if (raw === null) {
|
5992
6086
|
// initialize absent prop
|
5993
6087
|
initProp(vm, prop, undefined);
|
5994
6088
|
} else if (prop.dynamic) {
|
@@ -6749,7 +6843,7 @@ var template = Object.freeze({
|
|
6749
6843
|
// link function for the node itself.
|
6750
6844
|
var nodeLinkFn = partial || !options._asComponent ? compileNode(el, options) : null;
|
6751
6845
|
// link function for the childNodes
|
6752
|
-
var childLinkFn = !(nodeLinkFn && nodeLinkFn.terminal) && el
|
6846
|
+
var childLinkFn = !(nodeLinkFn && nodeLinkFn.terminal) && !isScript(el) && el.hasChildNodes() ? compileNodeList(el.childNodes, options) : null;
|
6753
6847
|
|
6754
6848
|
/**
|
6755
6849
|
* A composite linker function to be called on a already
|
@@ -6925,7 +7019,7 @@ var template = Object.freeze({
|
|
6925
7019
|
});
|
6926
7020
|
if (names.length) {
|
6927
7021
|
var plural = names.length > 1;
|
6928
|
-
warn('Attribute' + (plural ? 's ' : ' ') + names.join(', ') + (plural ? ' are' : ' is') + ' ignored on component ' + '<' + options.el.tagName.toLowerCase() + '> because ' + 'the component is a fragment instance: ' + 'http://vuejs.org/guide/components.html#
|
7022
|
+
warn('Attribute' + (plural ? 's ' : ' ') + names.join(', ') + (plural ? ' are' : ' is') + ' ignored on component ' + '<' + options.el.tagName.toLowerCase() + '> because ' + 'the component is a fragment instance: ' + 'http://vuejs.org/guide/components.html#Fragment-Instance');
|
6929
7023
|
}
|
6930
7024
|
}
|
6931
7025
|
|
@@ -6962,7 +7056,7 @@ var template = Object.freeze({
|
|
6962
7056
|
|
6963
7057
|
function compileNode(node, options) {
|
6964
7058
|
var type = node.nodeType;
|
6965
|
-
if (type === 1 && node
|
7059
|
+
if (type === 1 && !isScript(node)) {
|
6966
7060
|
return compileElement(node, options);
|
6967
7061
|
} else if (type === 3 && node.data.trim()) {
|
6968
7062
|
return compileTextNode(node, options);
|
@@ -7257,7 +7351,6 @@ var template = Object.freeze({
|
|
7257
7351
|
var attr, name, value, modifiers, matched, dirName, rawName, arg, def, termDef;
|
7258
7352
|
for (var i = 0, j = attrs.length; i < j; i++) {
|
7259
7353
|
attr = attrs[i];
|
7260
|
-
modifiers = parseModifiers(attr.name);
|
7261
7354
|
name = attr.name.replace(modifierRE, '');
|
7262
7355
|
if (matched = name.match(dirAttrRE)) {
|
7263
7356
|
def = resolveAsset(options, 'directives', matched[1]);
|
@@ -7265,6 +7358,7 @@ var template = Object.freeze({
|
|
7265
7358
|
if (!termDef || (def.priority || DEFAULT_TERMINAL_PRIORITY) > termDef.priority) {
|
7266
7359
|
termDef = def;
|
7267
7360
|
rawName = attr.name;
|
7361
|
+
modifiers = parseModifiers(attr.name);
|
7268
7362
|
value = attr.value;
|
7269
7363
|
dirName = matched[1];
|
7270
7364
|
arg = matched[2];
|
@@ -7485,6 +7579,10 @@ var template = Object.freeze({
|
|
7485
7579
|
}
|
7486
7580
|
}
|
7487
7581
|
|
7582
|
+
function isScript(el) {
|
7583
|
+
return el.tagName === 'SCRIPT' && (!el.hasAttribute('type') || el.getAttribute('type') === 'text/javascript');
|
7584
|
+
}
|
7585
|
+
|
7488
7586
|
var specialCharRE = /[^\w\-:\.]/;
|
7489
7587
|
|
7490
7588
|
/**
|
@@ -7614,8 +7712,8 @@ var template = Object.freeze({
|
|
7614
7712
|
value = attrs[i].value;
|
7615
7713
|
if (!to.hasAttribute(name) && !specialCharRE.test(name)) {
|
7616
7714
|
to.setAttribute(name, value);
|
7617
|
-
} else if (name === 'class' && !parseText(value)) {
|
7618
|
-
value.
|
7715
|
+
} else if (name === 'class' && !parseText(value) && (value = value.trim())) {
|
7716
|
+
value.split(/\s+/).forEach(function (cls) {
|
7619
7717
|
addClass(to, cls);
|
7620
7718
|
});
|
7621
7719
|
}
|
@@ -7654,6 +7752,10 @@ var template = Object.freeze({
|
|
7654
7752
|
contents[name] = extractFragment(contents[name], content);
|
7655
7753
|
}
|
7656
7754
|
if (content.hasChildNodes()) {
|
7755
|
+
var nodes = content.childNodes;
|
7756
|
+
if (nodes.length === 1 && nodes[0].nodeType === 3 && !nodes[0].data.trim()) {
|
7757
|
+
return;
|
7758
|
+
}
|
7657
7759
|
contents['default'] = extractFragment(content.childNodes, content);
|
7658
7760
|
}
|
7659
7761
|
}
|
@@ -7672,7 +7774,7 @@ var template = Object.freeze({
|
|
7672
7774
|
var node = nodes[i];
|
7673
7775
|
if (isTemplate(node) && !node.hasAttribute('v-if') && !node.hasAttribute('v-for')) {
|
7674
7776
|
parent.removeChild(node);
|
7675
|
-
node = parseTemplate(node);
|
7777
|
+
node = parseTemplate(node, true);
|
7676
7778
|
}
|
7677
7779
|
frag.appendChild(node);
|
7678
7780
|
}
|
@@ -7753,7 +7855,6 @@ var template = Object.freeze({
|
|
7753
7855
|
'development' !== 'production' && warn('data functions should return an object.', this);
|
7754
7856
|
}
|
7755
7857
|
var props = this._props;
|
7756
|
-
var runtimeData = this._runtimeData ? typeof this._runtimeData === 'function' ? this._runtimeData() : this._runtimeData : null;
|
7757
7858
|
// proxy data on instance
|
7758
7859
|
var keys = Object.keys(data);
|
7759
7860
|
var i, key;
|
@@ -7764,10 +7865,10 @@ var template = Object.freeze({
|
|
7764
7865
|
// 1. it's not already defined as a prop
|
7765
7866
|
// 2. it's provided via a instantiation option AND there are no
|
7766
7867
|
// template prop present
|
7767
|
-
if (!props || !hasOwn(props, key)
|
7868
|
+
if (!props || !hasOwn(props, key)) {
|
7768
7869
|
this._proxy(key);
|
7769
7870
|
} else if ('development' !== 'production') {
|
7770
|
-
warn('Data field "' + key + '" is already defined ' + 'as a prop.
|
7871
|
+
warn('Data field "' + key + '" is already defined ' + 'as a prop. To provide default value for a prop, use the "default" ' + 'prop option; if you want to pass prop values to an instantiation ' + 'call, use the "propsData" option.', this);
|
7771
7872
|
}
|
7772
7873
|
}
|
7773
7874
|
// observe data
|
@@ -7957,18 +8058,21 @@ var template = Object.freeze({
|
|
7957
8058
|
|
7958
8059
|
function registerComponentEvents(vm, el) {
|
7959
8060
|
var attrs = el.attributes;
|
7960
|
-
var name, handler;
|
8061
|
+
var name, value, handler;
|
7961
8062
|
for (var i = 0, l = attrs.length; i < l; i++) {
|
7962
8063
|
name = attrs[i].name;
|
7963
8064
|
if (eventRE.test(name)) {
|
7964
8065
|
name = name.replace(eventRE, '');
|
7965
|
-
|
7966
|
-
|
7967
|
-
|
7968
|
-
|
7969
|
-
|
7970
|
-
|
8066
|
+
// force the expression into a statement so that
|
8067
|
+
// it always dynamically resolves the method to call (#2670)
|
8068
|
+
// kinda ugly hack, but does the job.
|
8069
|
+
value = attrs[i].value;
|
8070
|
+
if (isSimplePath(value)) {
|
8071
|
+
value += '.apply(this, $arguments)';
|
7971
8072
|
}
|
8073
|
+
handler = (vm._scope || vm._context).$eval(value, true);
|
8074
|
+
handler._fromParent = true;
|
8075
|
+
vm.$on(name.replace(eventRE), handler);
|
7972
8076
|
}
|
7973
8077
|
}
|
7974
8078
|
}
|
@@ -8619,7 +8723,7 @@ var template = Object.freeze({
|
|
8619
8723
|
}
|
8620
8724
|
// remove reference from data ob
|
8621
8725
|
// frozen object may not have observer.
|
8622
|
-
if (this._data.__ob__) {
|
8726
|
+
if (this._data && this._data.__ob__) {
|
8623
8727
|
this._data.__ob__.removeVm(this);
|
8624
8728
|
}
|
8625
8729
|
// Clean up references to private properties and other
|
@@ -8692,6 +8796,7 @@ var template = Object.freeze({
|
|
8692
8796
|
} else {
|
8693
8797
|
factory = resolveAsset(this.$options, 'components', value, true);
|
8694
8798
|
}
|
8799
|
+
/* istanbul ignore if */
|
8695
8800
|
if (!factory) {
|
8696
8801
|
return;
|
8697
8802
|
}
|
@@ -8741,7 +8846,7 @@ var template = Object.freeze({
|
|
8741
8846
|
Vue.prototype.$get = function (exp, asStatement) {
|
8742
8847
|
var res = parseExpression(exp);
|
8743
8848
|
if (res) {
|
8744
|
-
if (asStatement
|
8849
|
+
if (asStatement) {
|
8745
8850
|
var self = this;
|
8746
8851
|
return function statementHandler() {
|
8747
8852
|
self.$arguments = toArray(arguments);
|
@@ -9673,17 +9778,19 @@ var template = Object.freeze({
|
|
9673
9778
|
* 12345 => $12,345.00
|
9674
9779
|
*
|
9675
9780
|
* @param {String} sign
|
9781
|
+
* @param {Number} decimals Decimal places
|
9676
9782
|
*/
|
9677
9783
|
|
9678
|
-
currency: function currency(value, _currency) {
|
9784
|
+
currency: function currency(value, _currency, decimals) {
|
9679
9785
|
value = parseFloat(value);
|
9680
9786
|
if (!isFinite(value) || !value && value !== 0) return '';
|
9681
9787
|
_currency = _currency != null ? _currency : '$';
|
9682
|
-
|
9683
|
-
var
|
9788
|
+
decimals = decimals != null ? decimals : 2;
|
9789
|
+
var stringified = Math.abs(value).toFixed(decimals);
|
9790
|
+
var _int = decimals ? stringified.slice(0, -1 - decimals) : stringified;
|
9684
9791
|
var i = _int.length % 3;
|
9685
9792
|
var head = i > 0 ? _int.slice(0, i) + (_int.length > 3 ? ',' : '') : '';
|
9686
|
-
var _float = stringified.slice(-
|
9793
|
+
var _float = decimals ? stringified.slice(-1 - decimals) : '';
|
9687
9794
|
var sign = value < 0 ? '-' : '';
|
9688
9795
|
return sign + _currency + head + _int.slice(i).replace(digitsRE, '$1,') + _float;
|
9689
9796
|
},
|
@@ -9903,7 +10010,7 @@ var template = Object.freeze({
|
|
9903
10010
|
|
9904
10011
|
installGlobalAPI(Vue);
|
9905
10012
|
|
9906
|
-
Vue.version = '1.0.
|
10013
|
+
Vue.version = '1.0.24';
|
9907
10014
|
|
9908
10015
|
// devtools global hook
|
9909
10016
|
/* istanbul ignore next */
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vuejs-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Butler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple asset-pipeline wrapper for vue.js by Evan You
|
14
14
|
email:
|
@@ -48,9 +48,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
48
48
|
version: '0'
|
49
49
|
requirements: []
|
50
50
|
rubyforge_project: vuejs-rails
|
51
|
-
rubygems_version: 2.
|
51
|
+
rubygems_version: 2.4.5.1
|
52
52
|
signing_key:
|
53
53
|
specification_version: 4
|
54
54
|
summary: vue.js asset pipeline provider/wrapper
|
55
55
|
test_files: []
|
56
|
-
has_rdoc:
|