vuejs 1.0.21 → 1.0.22
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 +1 -1
- data/lib/vuejs/version.rb +1 -1
- data/vendor/assets/javascripts/vue-router.js +4 -4
- data/vendor/assets/javascripts/vue.js +305 -203
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b59bb869339efb98b682f6dda4a101a92dd4ad2e
|
4
|
+
data.tar.gz: de8e7c90f144cc313f59dd25a1768f2c5601c564
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f1a628095390b9e8e4a761733813ad3b78fff7a5a590ea05289f1da1d7010c701ebe368477bde0585b8c495419a67dbb2d1c065b07e1b98bc7b500388ca72b8
|
7
|
+
data.tar.gz: 94c93f25a80b7ceb40adc9a32286ec80cc50f739ef3bf0025d948b702eda12d33d5da040a8551fc639cbc7b459131f222ac45226fc5f1734ce90b768a01c49c2
|
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.
|
5
|
+
The current version is Vue.js (v1.0.21) + vue-router (v0.7.13) + vue-resource (v0.7.0)
|
6
6
|
|
7
7
|
> Reactive Components for Modern Web Interfaces
|
8
8
|
|
data/lib/vuejs/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* vue-router v0.7.
|
2
|
+
* vue-router v0.7.13
|
3
3
|
* (c) 2016 Evan You
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -1875,7 +1875,6 @@
|
|
1875
1875
|
function Link (Vue) {
|
1876
1876
|
var _Vue$util = Vue.util;
|
1877
1877
|
var _bind = _Vue$util.bind;
|
1878
|
-
var getAttr = _Vue$util.getAttr;
|
1879
1878
|
var isObject = _Vue$util.isObject;
|
1880
1879
|
var addClass = _Vue$util.addClass;
|
1881
1880
|
var removeClass = _Vue$util.removeClass;
|
@@ -1928,8 +1927,9 @@
|
|
1928
1927
|
// update things when the route changes
|
1929
1928
|
this.unwatch = vm.$watch('$route', _bind(this.onRouteUpdate, this));
|
1930
1929
|
// check v-link-active ids
|
1931
|
-
var activeIds =
|
1930
|
+
var activeIds = this.el.getAttribute(LINK_UPDATE);
|
1932
1931
|
if (activeIds) {
|
1932
|
+
this.el.removeAttribute(LINK_UPDATE);
|
1933
1933
|
this.activeIds = activeIds.split(',');
|
1934
1934
|
}
|
1935
1935
|
// no need to handle click if link expects to be opened
|
@@ -2706,4 +2706,4 @@
|
|
2706
2706
|
|
2707
2707
|
return Router;
|
2708
2708
|
|
2709
|
-
}));
|
2709
|
+
}));
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vue.js v1.0.
|
2
|
+
* Vue.js v1.0.21
|
3
3
|
* (c) 2016 Evan You
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -740,7 +740,7 @@ var directive = Object.freeze({
|
|
740
740
|
var close = escapeRegex(config.delimiters[1]);
|
741
741
|
var unsafeOpen = escapeRegex(config.unsafeDelimiters[0]);
|
742
742
|
var unsafeClose = escapeRegex(config.unsafeDelimiters[1]);
|
743
|
-
tagRE = new RegExp(unsafeOpen + '(
|
743
|
+
tagRE = new RegExp(unsafeOpen + '((?:.|\\n)+?)' + unsafeClose + '|' + open + '((?:.|\\n)+?)' + close, 'g');
|
744
744
|
htmlRE = new RegExp('^' + unsafeOpen + '.*' + unsafeClose + '$');
|
745
745
|
// reset cache
|
746
746
|
cache = new Cache(1000);
|
@@ -765,7 +765,6 @@ var directive = Object.freeze({
|
|
765
765
|
if (hit) {
|
766
766
|
return hit;
|
767
767
|
}
|
768
|
-
text = text.replace(/\n/g, '');
|
769
768
|
if (!tagRE.test(text)) {
|
770
769
|
return null;
|
771
770
|
}
|
@@ -981,23 +980,22 @@ var text = Object.freeze({
|
|
981
980
|
});
|
982
981
|
|
983
982
|
var warn = undefined;
|
983
|
+
var formatComponentName = undefined;
|
984
984
|
|
985
985
|
if ('development' !== 'production') {
|
986
986
|
(function () {
|
987
987
|
var hasConsole = typeof console !== 'undefined';
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
if (config.debug) {
|
993
|
-
if (e) {
|
994
|
-
throw e;
|
995
|
-
} else {
|
996
|
-
console.warn(new Error('Warning Stack Trace').stack);
|
997
|
-
}
|
998
|
-
}
|
988
|
+
|
989
|
+
warn = function (msg, vm) {
|
990
|
+
if (hasConsole && !config.silent) {
|
991
|
+
console.error('[Vue warn]: ' + msg + (vm ? formatComponentName(vm) : ''));
|
999
992
|
}
|
1000
993
|
};
|
994
|
+
|
995
|
+
formatComponentName = function (vm) {
|
996
|
+
var name = vm._isVue ? vm.$options.name : vm.name;
|
997
|
+
return name ? ' (found in component: <' + hyphenate(name) + '>)' : '';
|
998
|
+
};
|
1001
999
|
})();
|
1002
1000
|
}
|
1003
1001
|
|
@@ -1631,7 +1629,7 @@ var transition = Object.freeze({
|
|
1631
1629
|
return parentVal;
|
1632
1630
|
}
|
1633
1631
|
if (typeof childVal !== 'function') {
|
1634
|
-
'development' !== 'production' && warn('The "data" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.');
|
1632
|
+
'development' !== 'production' && warn('The "data" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);
|
1635
1633
|
return parentVal;
|
1636
1634
|
}
|
1637
1635
|
if (!parentVal) {
|
@@ -1665,7 +1663,7 @@ var transition = Object.freeze({
|
|
1665
1663
|
|
1666
1664
|
strats.el = function (parentVal, childVal, vm) {
|
1667
1665
|
if (!vm && childVal && typeof childVal !== 'function') {
|
1668
|
-
'development' !== 'production' && warn('The "el" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.');
|
1666
|
+
'development' !== 'production' && warn('The "el" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);
|
1669
1667
|
return;
|
1670
1668
|
}
|
1671
1669
|
var ret = childVal || parentVal;
|
@@ -1681,15 +1679,6 @@ var transition = Object.freeze({
|
|
1681
1679
|
return childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal;
|
1682
1680
|
};
|
1683
1681
|
|
1684
|
-
/**
|
1685
|
-
* 0.11 deprecation warning
|
1686
|
-
*/
|
1687
|
-
|
1688
|
-
strats.paramAttributes = function () {
|
1689
|
-
/* istanbul ignore next */
|
1690
|
-
'development' !== 'production' && warn('"paramAttributes" option has been deprecated in 0.12. ' + 'Use "props" instead.');
|
1691
|
-
};
|
1692
|
-
|
1693
1682
|
/**
|
1694
1683
|
* Assets
|
1695
1684
|
*
|
@@ -1888,31 +1877,26 @@ var transition = Object.freeze({
|
|
1888
1877
|
* @param {Object} options
|
1889
1878
|
* @param {String} type
|
1890
1879
|
* @param {String} id
|
1880
|
+
* @param {Boolean} warnMissing
|
1891
1881
|
* @return {Object|Function}
|
1892
1882
|
*/
|
1893
1883
|
|
1894
|
-
function resolveAsset(options, type, id) {
|
1884
|
+
function resolveAsset(options, type, id, warnMissing) {
|
1895
1885
|
/* istanbul ignore if */
|
1896
1886
|
if (typeof id !== 'string') {
|
1897
1887
|
return;
|
1898
1888
|
}
|
1899
1889
|
var assets = options[type];
|
1900
1890
|
var camelizedId;
|
1901
|
-
|
1891
|
+
var res = assets[id] ||
|
1902
1892
|
// camelCase ID
|
1903
1893
|
assets[camelizedId = camelize(id)] ||
|
1904
1894
|
// Pascal Case ID
|
1905
1895
|
assets[camelizedId.charAt(0).toUpperCase() + camelizedId.slice(1)];
|
1906
|
-
|
1907
|
-
|
1908
|
-
/**
|
1909
|
-
* Assert asset exists
|
1910
|
-
*/
|
1911
|
-
|
1912
|
-
function assertAsset(val, type, id) {
|
1913
|
-
if (!val) {
|
1914
|
-
'development' !== 'production' && warn('Failed to resolve ' + type + ': ' + id);
|
1896
|
+
if ('development' !== 'production' && warnMissing && !res) {
|
1897
|
+
warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id, options);
|
1915
1898
|
}
|
1899
|
+
return res;
|
1916
1900
|
}
|
1917
1901
|
|
1918
1902
|
var uid$1 = 0;
|
@@ -2029,10 +2013,9 @@ var transition = Object.freeze({
|
|
2029
2013
|
});
|
2030
2014
|
|
2031
2015
|
/**
|
2032
|
-
* Convenience method to remove the element at given index.
|
2016
|
+
* Convenience method to remove the element at given index or target element reference.
|
2033
2017
|
*
|
2034
|
-
* @param {
|
2035
|
-
* @param {*} val
|
2018
|
+
* @param {*} item
|
2036
2019
|
*/
|
2037
2020
|
|
2038
2021
|
def(arrayProto, '$remove', function $remove(item) {
|
@@ -2329,7 +2312,6 @@ var transition = Object.freeze({
|
|
2329
2312
|
getOuterHTML: getOuterHTML,
|
2330
2313
|
mergeOptions: mergeOptions,
|
2331
2314
|
resolveAsset: resolveAsset,
|
2332
|
-
assertAsset: assertAsset,
|
2333
2315
|
checkComponentAttr: checkComponentAttr,
|
2334
2316
|
commonTagRE: commonTagRE,
|
2335
2317
|
reservedTagRE: reservedTagRE,
|
@@ -2716,8 +2698,8 @@ var transition = Object.freeze({
|
|
2716
2698
|
|
2717
2699
|
var warnNonExistent;
|
2718
2700
|
if ('development' !== 'production') {
|
2719
|
-
warnNonExistent = function (path) {
|
2720
|
-
warn('You are setting a non-existent path "' + path.raw + '" ' + 'on a vm instance. Consider pre-initializing the property ' + 'with the "data" option for more reliable reactivity ' + 'and better performance.');
|
2701
|
+
warnNonExistent = function (path, vm) {
|
2702
|
+
warn('You are setting a non-existent path "' + path.raw + '" ' + 'on a vm instance. Consider pre-initializing the property ' + 'with the "data" option for more reliable reactivity ' + 'and better performance.', vm);
|
2721
2703
|
};
|
2722
2704
|
}
|
2723
2705
|
|
@@ -2749,7 +2731,7 @@ var transition = Object.freeze({
|
|
2749
2731
|
if (!isObject(obj)) {
|
2750
2732
|
obj = {};
|
2751
2733
|
if ('development' !== 'production' && last._isVue) {
|
2752
|
-
warnNonExistent(path);
|
2734
|
+
warnNonExistent(path, last);
|
2753
2735
|
}
|
2754
2736
|
set(last, key, obj);
|
2755
2737
|
}
|
@@ -2760,7 +2742,7 @@ var transition = Object.freeze({
|
|
2760
2742
|
obj[key] = val;
|
2761
2743
|
} else {
|
2762
2744
|
if ('development' !== 'production' && obj._isVue) {
|
2763
|
-
warnNonExistent(path);
|
2745
|
+
warnNonExistent(path, obj);
|
2764
2746
|
}
|
2765
2747
|
set(obj, key, val);
|
2766
2748
|
}
|
@@ -3027,8 +3009,8 @@ var expression = Object.freeze({
|
|
3027
3009
|
if ('development' !== 'production' && has[id] != null) {
|
3028
3010
|
circular[id] = (circular[id] || 0) + 1;
|
3029
3011
|
if (circular[id] > config._maxUpdateCount) {
|
3030
|
-
|
3031
|
-
|
3012
|
+
warn('You may have an infinite update loop for watcher ' + 'with expression "' + watcher.expression + '"', watcher.vm);
|
3013
|
+
break;
|
3032
3014
|
}
|
3033
3015
|
}
|
3034
3016
|
}
|
@@ -3132,7 +3114,7 @@ var expression = Object.freeze({
|
|
3132
3114
|
value = this.getter.call(scope, scope);
|
3133
3115
|
} catch (e) {
|
3134
3116
|
if ('development' !== 'production' && config.warnExpressionErrors) {
|
3135
|
-
warn('Error when evaluating expression
|
3117
|
+
warn('Error when evaluating expression ' + '"' + this.expression + '": ' + e.toString(), this.vm);
|
3136
3118
|
}
|
3137
3119
|
}
|
3138
3120
|
// "touch" every property so they are all tracked as
|
@@ -3168,14 +3150,14 @@ var expression = Object.freeze({
|
|
3168
3150
|
this.setter.call(scope, scope, value);
|
3169
3151
|
} catch (e) {
|
3170
3152
|
if ('development' !== 'production' && config.warnExpressionErrors) {
|
3171
|
-
warn('Error when evaluating setter "' + this.expression + '"'
|
3153
|
+
warn('Error when evaluating setter ' + '"' + this.expression + '": ' + e.toString(), this.vm);
|
3172
3154
|
}
|
3173
3155
|
}
|
3174
3156
|
// two-way sync for v-for alias
|
3175
3157
|
var forContext = scope.$forContext;
|
3176
3158
|
if (forContext && forContext.alias === this.expression) {
|
3177
3159
|
if (forContext.filters) {
|
3178
|
-
'development' !== 'production' && warn('It seems you are using two-way binding on ' + 'a v-for alias (' + this.expression + '), and the ' + 'v-for has filters. This will not work properly. ' + 'Either remove the filters or use an array of ' + 'objects and bind to object properties instead.');
|
3160
|
+
'development' !== 'production' && warn('It seems you are using two-way binding on ' + 'a v-for alias (' + this.expression + '), and the ' + 'v-for has filters. This will not work properly. ' + 'Either remove the filters or use an array of ' + 'objects and bind to object properties instead.', this.vm);
|
3179
3161
|
return;
|
3180
3162
|
}
|
3181
3163
|
forContext._withLock(function () {
|
@@ -3915,9 +3897,9 @@ var template = Object.freeze({
|
|
3915
3897
|
var EL = 1500;
|
3916
3898
|
var COMPONENT = 1500;
|
3917
3899
|
var PARTIAL = 1750;
|
3918
|
-
var
|
3919
|
-
var
|
3920
|
-
var SLOT =
|
3900
|
+
var IF = 2100;
|
3901
|
+
var FOR = 2200;
|
3902
|
+
var SLOT = 2300;
|
3921
3903
|
|
3922
3904
|
var uid$3 = 0;
|
3923
3905
|
|
@@ -3943,7 +3925,7 @@ var template = Object.freeze({
|
|
3943
3925
|
}
|
3944
3926
|
|
3945
3927
|
if (!this.alias) {
|
3946
|
-
'development' !== 'production' && warn('
|
3928
|
+
'development' !== 'production' && warn('Invalid v-for expression "' + this.descriptor.raw + '": ' + 'alias is required.', this.vm);
|
3947
3929
|
return;
|
3948
3930
|
}
|
3949
3931
|
|
@@ -4285,7 +4267,7 @@ var template = Object.freeze({
|
|
4285
4267
|
var primitive = !isObject(value);
|
4286
4268
|
var id;
|
4287
4269
|
if (key || trackByKey || primitive) {
|
4288
|
-
id = trackByKey ? trackByKey === '$index' ? index : value
|
4270
|
+
id = trackByKey ? trackByKey === '$index' ? index : getPath(value, trackByKey) : key || value;
|
4289
4271
|
if (!cache[id]) {
|
4290
4272
|
cache[id] = frag;
|
4291
4273
|
} else if (trackByKey !== '$index') {
|
@@ -4320,7 +4302,7 @@ var template = Object.freeze({
|
|
4320
4302
|
var primitive = !isObject(value);
|
4321
4303
|
var frag;
|
4322
4304
|
if (key || trackByKey || primitive) {
|
4323
|
-
var id = trackByKey ? trackByKey === '$index' ? index : value
|
4305
|
+
var id = trackByKey ? trackByKey === '$index' ? index : getPath(value, trackByKey) : key || value;
|
4324
4306
|
frag = this.cache[id];
|
4325
4307
|
} else {
|
4326
4308
|
frag = value[this.id];
|
@@ -4347,7 +4329,7 @@ var template = Object.freeze({
|
|
4347
4329
|
var key = hasOwn(scope, '$key') && scope.$key;
|
4348
4330
|
var primitive = !isObject(value);
|
4349
4331
|
if (trackByKey || key || primitive) {
|
4350
|
-
var id = trackByKey ? trackByKey === '$index' ? index : value
|
4332
|
+
var id = trackByKey ? trackByKey === '$index' ? index : getPath(value, trackByKey) : key || value;
|
4351
4333
|
this.cache[id] = null;
|
4352
4334
|
} else {
|
4353
4335
|
value[this.id] = null;
|
@@ -4499,7 +4481,7 @@ var template = Object.freeze({
|
|
4499
4481
|
|
4500
4482
|
if ('development' !== 'production') {
|
4501
4483
|
vFor.warnDuplicate = function (value) {
|
4502
|
-
warn('Duplicate value found in v-for="' + this.descriptor.raw + '": ' + JSON.stringify(value) + '. Use track-by="$index" if ' + 'you are expecting duplicate values.');
|
4484
|
+
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);
|
4503
4485
|
};
|
4504
4486
|
}
|
4505
4487
|
|
@@ -4521,7 +4503,7 @@ var template = Object.freeze({
|
|
4521
4503
|
this.anchor = createAnchor('v-if');
|
4522
4504
|
replace(el, this.anchor);
|
4523
4505
|
} else {
|
4524
|
-
'development' !== 'production' && warn('v-if="' + this.expression + '" cannot be ' + 'used on an instance root element.');
|
4506
|
+
'development' !== 'production' && warn('v-if="' + this.expression + '" cannot be ' + 'used on an instance root element.', this.vm);
|
4525
4507
|
this.invalid = true;
|
4526
4508
|
}
|
4527
4509
|
},
|
@@ -4954,7 +4936,7 @@ var template = Object.freeze({
|
|
4954
4936
|
// friendly warning...
|
4955
4937
|
this.checkFilters();
|
4956
4938
|
if (this.hasRead && !this.hasWrite) {
|
4957
|
-
'development' !== 'production' && warn('It seems you are using a read-only filter with ' + 'v-model. You might want to use a two-way filter
|
4939
|
+
'development' !== 'production' && warn('It seems you are using a read-only filter with ' + 'v-model="' + this.descriptor.raw + '". ' + 'You might want to use a two-way filter to ensure correct behavior.', this.vm);
|
4958
4940
|
}
|
4959
4941
|
var el = this.el;
|
4960
4942
|
var tag = el.tagName;
|
@@ -4966,7 +4948,7 @@ var template = Object.freeze({
|
|
4966
4948
|
} else if (tag === 'TEXTAREA') {
|
4967
4949
|
handler = handlers.text;
|
4968
4950
|
} else {
|
4969
|
-
'development' !== 'production' && warn('v-model does not support element type: ' + tag);
|
4951
|
+
'development' !== 'production' && warn('v-model does not support element type: ' + tag, this.vm);
|
4970
4952
|
return;
|
4971
4953
|
}
|
4972
4954
|
el.__v_model = this;
|
@@ -5082,7 +5064,7 @@ var template = Object.freeze({
|
|
5082
5064
|
}
|
5083
5065
|
|
5084
5066
|
if (typeof handler !== 'function') {
|
5085
|
-
'development' !== 'production' && warn('v-on:' + this.arg + '="' + this.expression + '" expects a function value, ' + 'got ' + handler);
|
5067
|
+
'development' !== 'production' && warn('v-on:' + this.arg + '="' + this.expression + '" expects a function value, ' + 'got ' + handler, this.vm);
|
5086
5068
|
return;
|
5087
5069
|
}
|
5088
5070
|
|
@@ -5175,11 +5157,17 @@ var template = Object.freeze({
|
|
5175
5157
|
if (value) {
|
5176
5158
|
var isImportant = importantRE.test(value) ? 'important' : '';
|
5177
5159
|
if (isImportant) {
|
5160
|
+
/* istanbul ignore if */
|
5161
|
+
if ('development' !== 'production') {
|
5162
|
+
warn('It\'s probably a bad idea to use !important with inline rules. ' + 'This feature will be deprecated in a future version of Vue.');
|
5163
|
+
}
|
5178
5164
|
value = value.replace(importantRE, '').trim();
|
5165
|
+
this.el.style.setProperty(prop.kebab, value, isImportant);
|
5166
|
+
} else {
|
5167
|
+
this.el.style[prop.camel] = value;
|
5179
5168
|
}
|
5180
|
-
this.el.style.setProperty(prop, value, isImportant);
|
5181
5169
|
} else {
|
5182
|
-
this.el.style.
|
5170
|
+
this.el.style[prop.camel] = '';
|
5183
5171
|
}
|
5184
5172
|
}
|
5185
5173
|
|
@@ -5224,11 +5212,17 @@ var template = Object.freeze({
|
|
5224
5212
|
while (i--) {
|
5225
5213
|
prefixed = camelPrefixes[i] + upper;
|
5226
5214
|
if (prefixed in testEl.style) {
|
5227
|
-
return
|
5215
|
+
return {
|
5216
|
+
kebab: prefixes[i] + prop,
|
5217
|
+
camel: prefixed
|
5218
|
+
};
|
5228
5219
|
}
|
5229
5220
|
}
|
5230
5221
|
if (camel in testEl.style) {
|
5231
|
-
return
|
5222
|
+
return {
|
5223
|
+
kebab: prop,
|
5224
|
+
camel: camel
|
5225
|
+
};
|
5232
5226
|
}
|
5233
5227
|
}
|
5234
5228
|
|
@@ -5275,7 +5269,7 @@ var template = Object.freeze({
|
|
5275
5269
|
|
5276
5270
|
// only allow binding on native attributes
|
5277
5271
|
if (disallowedInterpAttrRE.test(attr) || attr === 'name' && (tag === 'PARTIAL' || tag === 'SLOT')) {
|
5278
|
-
'development' !== 'production' && warn(attr + '="' + descriptor.raw + '": ' + 'attribute interpolation is not allowed in Vue.js ' + 'directives and special attributes.');
|
5272
|
+
'development' !== 'production' && warn(attr + '="' + descriptor.raw + '": ' + 'attribute interpolation is not allowed in Vue.js ' + 'directives and special attributes.', this.vm);
|
5279
5273
|
this.el.removeAttribute(attr);
|
5280
5274
|
this.invalid = true;
|
5281
5275
|
}
|
@@ -5285,12 +5279,12 @@ var template = Object.freeze({
|
|
5285
5279
|
var raw = attr + '="' + descriptor.raw + '": ';
|
5286
5280
|
// warn src
|
5287
5281
|
if (attr === 'src') {
|
5288
|
-
warn(raw + 'interpolation in "src" attribute will cause ' + 'a 404 request. Use v-bind:src instead.');
|
5282
|
+
warn(raw + 'interpolation in "src" attribute will cause ' + 'a 404 request. Use v-bind:src instead.', this.vm);
|
5289
5283
|
}
|
5290
5284
|
|
5291
5285
|
// warn style
|
5292
5286
|
if (attr === 'style') {
|
5293
|
-
warn(raw + 'interpolation in "style" attribute will cause ' + 'the attribute to be discarded in Internet Explorer. ' + 'Use v-bind:style instead.');
|
5287
|
+
warn(raw + 'interpolation in "style" attribute will cause ' + 'the attribute to be discarded in Internet Explorer. ' + 'Use v-bind:style instead.', this.vm);
|
5294
5288
|
}
|
5295
5289
|
}
|
5296
5290
|
}
|
@@ -5386,7 +5380,7 @@ var template = Object.freeze({
|
|
5386
5380
|
|
5387
5381
|
var ref = {
|
5388
5382
|
bind: function bind() {
|
5389
|
-
'development' !== 'production' && warn('v-ref:' + this.arg + ' must be used on a child ' + 'component. Found on <' + this.el.tagName.toLowerCase() + '>.');
|
5383
|
+
'development' !== 'production' && warn('v-ref:' + this.arg + ' must be used on a child ' + 'component. Found on <' + this.el.tagName.toLowerCase() + '>.', this.vm);
|
5390
5384
|
}
|
5391
5385
|
};
|
5392
5386
|
|
@@ -5450,19 +5444,16 @@ var template = Object.freeze({
|
|
5450
5444
|
},
|
5451
5445
|
|
5452
5446
|
cleanup: function cleanup(value) {
|
5453
|
-
if (this.prevKeys)
|
5454
|
-
|
5455
|
-
|
5456
|
-
|
5457
|
-
|
5458
|
-
|
5459
|
-
|
5460
|
-
|
5461
|
-
|
5462
|
-
|
5463
|
-
} else {
|
5464
|
-
removeClass(this.el, key);
|
5465
|
-
}
|
5447
|
+
if (!this.prevKeys) return;
|
5448
|
+
|
5449
|
+
var i = this.prevKeys.length;
|
5450
|
+
while (i--) {
|
5451
|
+
var key = this.prevKeys[i];
|
5452
|
+
if (!key) continue;
|
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);
|
5466
5457
|
}
|
5467
5458
|
}
|
5468
5459
|
}
|
@@ -5472,22 +5463,48 @@ var template = Object.freeze({
|
|
5472
5463
|
var keys = Object.keys(obj);
|
5473
5464
|
for (var i = 0, l = keys.length; i < l; i++) {
|
5474
5465
|
var key = keys[i];
|
5475
|
-
if (obj[key])
|
5476
|
-
|
5477
|
-
}
|
5466
|
+
if (!obj[key]) continue;
|
5467
|
+
toggleClasses(el, key, addClass);
|
5478
5468
|
}
|
5479
5469
|
}
|
5480
5470
|
|
5481
5471
|
function stringToObject(value) {
|
5482
5472
|
var res = {};
|
5483
5473
|
var keys = value.trim().split(/\s+/);
|
5484
|
-
var i = keys.length;
|
5485
|
-
while (i--) {
|
5474
|
+
for (var i = 0, l = keys.length; i < l; i++) {
|
5486
5475
|
res[keys[i]] = true;
|
5487
5476
|
}
|
5488
5477
|
return res;
|
5489
5478
|
}
|
5490
5479
|
|
5480
|
+
/**
|
5481
|
+
* Add or remove a class/classes on an element
|
5482
|
+
*
|
5483
|
+
* @param {Element} el
|
5484
|
+
* @param {String} key The class name. This may or may not
|
5485
|
+
* contain a space character, in such a
|
5486
|
+
* case we'll deal with multiple class
|
5487
|
+
* names at once.
|
5488
|
+
* @param {Function} fn
|
5489
|
+
*/
|
5490
|
+
|
5491
|
+
function toggleClasses(el, key, fn) {
|
5492
|
+
key = key.trim();
|
5493
|
+
|
5494
|
+
if (key.indexOf(' ') === -1) {
|
5495
|
+
fn(el, key);
|
5496
|
+
return;
|
5497
|
+
}
|
5498
|
+
|
5499
|
+
// The key contains one or more space characters.
|
5500
|
+
// Since a class name doesn't accept such characters, we
|
5501
|
+
// treat it as multiple classes.
|
5502
|
+
var keys = key.split(/\s+/);
|
5503
|
+
for (var i = 0, l = keys.length; i < l; i++) {
|
5504
|
+
fn(el, keys[i]);
|
5505
|
+
}
|
5506
|
+
}
|
5507
|
+
|
5491
5508
|
var component = {
|
5492
5509
|
|
5493
5510
|
priority: COMPONENT,
|
@@ -5703,7 +5720,7 @@ var template = Object.freeze({
|
|
5703
5720
|
}
|
5704
5721
|
/* istanbul ignore if */
|
5705
5722
|
if ('development' !== 'production' && this.el.hasAttribute('transition') && child._isFragment) {
|
5706
|
-
warn('Transitions will not work on a fragment instance. ' + 'Template: ' + child.$options.template);
|
5723
|
+
warn('Transitions will not work on a fragment instance. ' + 'Template: ' + child.$options.template, child);
|
5707
5724
|
}
|
5708
5725
|
return child;
|
5709
5726
|
}
|
@@ -5862,10 +5879,11 @@ var template = Object.freeze({
|
|
5862
5879
|
*
|
5863
5880
|
* @param {Element|DocumentFragment} el
|
5864
5881
|
* @param {Array} propOptions
|
5882
|
+
* @param {Vue} vm
|
5865
5883
|
* @return {Function} propsLinkFn
|
5866
5884
|
*/
|
5867
5885
|
|
5868
|
-
function compileProps(el, propOptions) {
|
5886
|
+
function compileProps(el, propOptions, vm) {
|
5869
5887
|
var props = [];
|
5870
5888
|
var names = Object.keys(propOptions);
|
5871
5889
|
var i = names.length;
|
@@ -5875,7 +5893,7 @@ var template = Object.freeze({
|
|
5875
5893
|
options = propOptions[name] || empty;
|
5876
5894
|
|
5877
5895
|
if ('development' !== 'production' && name === '$data') {
|
5878
|
-
warn('Do not use $data as prop.');
|
5896
|
+
warn('Do not use $data as prop.', vm);
|
5879
5897
|
continue;
|
5880
5898
|
}
|
5881
5899
|
|
@@ -5884,7 +5902,7 @@ var template = Object.freeze({
|
|
5884
5902
|
// so we need to camelize the path here
|
5885
5903
|
path = camelize(name);
|
5886
5904
|
if (!identRE$1.test(path)) {
|
5887
|
-
'development' !== 'production' && warn('Invalid prop key: "' + name + '". Prop keys ' + 'must be valid identifiers.');
|
5905
|
+
'development' !== 'production' && warn('Invalid prop key: "' + name + '". Prop keys ' + 'must be valid identifiers.', vm);
|
5888
5906
|
continue;
|
5889
5907
|
}
|
5890
5908
|
|
@@ -5922,14 +5940,14 @@ var template = Object.freeze({
|
|
5922
5940
|
// check non-settable path for two-way bindings
|
5923
5941
|
if ('development' !== 'production' && prop.mode === propBindingModes.TWO_WAY && !settablePathRE.test(value)) {
|
5924
5942
|
prop.mode = propBindingModes.ONE_WAY;
|
5925
|
-
warn('Cannot bind two-way prop with non-settable ' + 'parent path: ' + value);
|
5943
|
+
warn('Cannot bind two-way prop with non-settable ' + 'parent path: ' + value, vm);
|
5926
5944
|
}
|
5927
5945
|
}
|
5928
5946
|
prop.parentPath = value;
|
5929
5947
|
|
5930
5948
|
// warn required two-way
|
5931
5949
|
if ('development' !== 'production' && options.twoWay && prop.mode !== propBindingModes.TWO_WAY) {
|
5932
|
-
warn('Prop "' + name + '" expects a two-way binding type.');
|
5950
|
+
warn('Prop "' + name + '" expects a two-way binding type.', vm);
|
5933
5951
|
}
|
5934
5952
|
} else if ((value = getAttr(el, attr)) !== null) {
|
5935
5953
|
// has literal binding!
|
@@ -5939,10 +5957,10 @@ var template = Object.freeze({
|
|
5939
5957
|
var lowerCaseName = path.toLowerCase();
|
5940
5958
|
value = /[A-Z\-]/.test(name) && (el.getAttribute(lowerCaseName) || el.getAttribute(':' + lowerCaseName) || el.getAttribute('v-bind:' + lowerCaseName) || el.getAttribute(':' + lowerCaseName + '.once') || el.getAttribute('v-bind:' + lowerCaseName + '.once') || el.getAttribute(':' + lowerCaseName + '.sync') || el.getAttribute('v-bind:' + lowerCaseName + '.sync'));
|
5941
5959
|
if (value) {
|
5942
|
-
warn('Possible usage error for prop `' + lowerCaseName + '` - ' + 'did you mean `' + attr + '`? HTML is case-insensitive, remember to use ' + 'kebab-case for props in templates.');
|
5960
|
+
warn('Possible usage error for prop `' + lowerCaseName + '` - ' + 'did you mean `' + attr + '`? HTML is case-insensitive, remember to use ' + 'kebab-case for props in templates.', vm);
|
5943
5961
|
} else if (options.required) {
|
5944
5962
|
// warn missing required
|
5945
|
-
warn('Missing required prop: ' + name);
|
5963
|
+
warn('Missing required prop: ' + name, vm);
|
5946
5964
|
}
|
5947
5965
|
}
|
5948
5966
|
// push prop
|
@@ -6010,34 +6028,75 @@ var template = Object.freeze({
|
|
6010
6028
|
}
|
6011
6029
|
|
6012
6030
|
/**
|
6013
|
-
*
|
6031
|
+
* Process a prop with a rawValue, applying necessary coersions,
|
6032
|
+
* default values & assertions and call the given callback with
|
6033
|
+
* processed value.
|
6014
6034
|
*
|
6015
6035
|
* @param {Vue} vm
|
6016
6036
|
* @param {Object} prop
|
6017
|
-
* @param {*}
|
6037
|
+
* @param {*} rawValue
|
6038
|
+
* @param {Function} fn
|
6018
6039
|
*/
|
6019
6040
|
|
6020
|
-
function
|
6021
|
-
var
|
6022
|
-
value =
|
6041
|
+
function processPropValue(vm, prop, rawValue, fn) {
|
6042
|
+
var isSimple = prop.dynamic && isSimplePath(prop.parentPath);
|
6043
|
+
var value = rawValue;
|
6023
6044
|
if (value === undefined) {
|
6024
|
-
value = getPropDefaultValue(vm, prop
|
6045
|
+
value = getPropDefaultValue(vm, prop);
|
6025
6046
|
}
|
6026
|
-
|
6027
|
-
|
6047
|
+
value = coerceProp(prop, value);
|
6048
|
+
var coerced = value !== rawValue;
|
6049
|
+
if (!assertProp(prop, value, vm)) {
|
6050
|
+
value = undefined;
|
6051
|
+
}
|
6052
|
+
if (isSimple && !coerced) {
|
6053
|
+
withoutConversion(function () {
|
6054
|
+
fn(value);
|
6055
|
+
});
|
6056
|
+
} else {
|
6057
|
+
fn(value);
|
6028
6058
|
}
|
6029
6059
|
}
|
6030
6060
|
|
6061
|
+
/**
|
6062
|
+
* Set a prop's initial value on a vm and its data object.
|
6063
|
+
*
|
6064
|
+
* @param {Vue} vm
|
6065
|
+
* @param {Object} prop
|
6066
|
+
* @param {*} value
|
6067
|
+
*/
|
6068
|
+
|
6069
|
+
function initProp(vm, prop, value) {
|
6070
|
+
processPropValue(vm, prop, value, function (value) {
|
6071
|
+
defineReactive(vm, prop.path, value);
|
6072
|
+
});
|
6073
|
+
}
|
6074
|
+
|
6075
|
+
/**
|
6076
|
+
* Update a prop's value on a vm.
|
6077
|
+
*
|
6078
|
+
* @param {Vue} vm
|
6079
|
+
* @param {Object} prop
|
6080
|
+
* @param {*} value
|
6081
|
+
*/
|
6082
|
+
|
6083
|
+
function updateProp(vm, prop, value) {
|
6084
|
+
processPropValue(vm, prop, value, function (value) {
|
6085
|
+
vm[prop.path] = value;
|
6086
|
+
});
|
6087
|
+
}
|
6088
|
+
|
6031
6089
|
/**
|
6032
6090
|
* Get the default value of a prop.
|
6033
6091
|
*
|
6034
6092
|
* @param {Vue} vm
|
6035
|
-
* @param {Object}
|
6093
|
+
* @param {Object} prop
|
6036
6094
|
* @return {*}
|
6037
6095
|
*/
|
6038
6096
|
|
6039
|
-
function getPropDefaultValue(vm,
|
6097
|
+
function getPropDefaultValue(vm, prop) {
|
6040
6098
|
// no default, return undefined
|
6099
|
+
var options = prop.options;
|
6041
6100
|
if (!hasOwn(options, 'default')) {
|
6042
6101
|
// absent boolean value defaults to false
|
6043
6102
|
return options.type === Boolean ? false : undefined;
|
@@ -6045,7 +6104,7 @@ var template = Object.freeze({
|
|
6045
6104
|
var def = options['default'];
|
6046
6105
|
// warn against non-factory defaults for Object & Array
|
6047
6106
|
if (isObject(def)) {
|
6048
|
-
'development' !== 'production' && warn('
|
6107
|
+
'development' !== 'production' && warn('Invalid default value for prop "' + prop.name + '": ' + 'Props with type Object/Array must use a factory function ' + 'to return the default value.', vm);
|
6049
6108
|
}
|
6050
6109
|
// call factory function for non-Function types
|
6051
6110
|
return typeof def === 'function' && options.type !== Function ? def.call(vm) : def;
|
@@ -6056,9 +6115,10 @@ var template = Object.freeze({
|
|
6056
6115
|
*
|
6057
6116
|
* @param {Object} prop
|
6058
6117
|
* @param {*} value
|
6118
|
+
* @param {Vue} vm
|
6059
6119
|
*/
|
6060
6120
|
|
6061
|
-
function assertProp(prop, value) {
|
6121
|
+
function assertProp(prop, value, vm) {
|
6062
6122
|
if (!prop.options.required && ( // non-required
|
6063
6123
|
prop.raw === null || // abscent
|
6064
6124
|
value == null) // null or undefined
|
@@ -6067,39 +6127,28 @@ var template = Object.freeze({
|
|
6067
6127
|
}
|
6068
6128
|
var options = prop.options;
|
6069
6129
|
var type = options.type;
|
6070
|
-
var valid =
|
6071
|
-
var
|
6130
|
+
var valid = !type;
|
6131
|
+
var expectedTypes = [];
|
6072
6132
|
if (type) {
|
6073
|
-
if (type
|
6074
|
-
|
6075
|
-
|
6076
|
-
|
6077
|
-
|
6078
|
-
|
6079
|
-
|
6080
|
-
expectedType = 'boolean';
|
6081
|
-
valid = typeof value === 'boolean';
|
6082
|
-
} else if (type === Function) {
|
6083
|
-
expectedType = 'function';
|
6084
|
-
valid = typeof value === 'function';
|
6085
|
-
} else if (type === Object) {
|
6086
|
-
expectedType = 'object';
|
6087
|
-
valid = isPlainObject(value);
|
6088
|
-
} else if (type === Array) {
|
6089
|
-
expectedType = 'array';
|
6090
|
-
valid = isArray(value);
|
6091
|
-
} else {
|
6092
|
-
valid = value instanceof type;
|
6133
|
+
if (!isArray(type)) {
|
6134
|
+
type = [type];
|
6135
|
+
}
|
6136
|
+
for (var i = 0; i < type.length && !valid; i++) {
|
6137
|
+
var assertedType = assertType(value, type[i]);
|
6138
|
+
expectedTypes.push(assertedType.expectedType);
|
6139
|
+
valid = assertedType.valid;
|
6093
6140
|
}
|
6094
6141
|
}
|
6095
6142
|
if (!valid) {
|
6096
|
-
'development' !== 'production'
|
6143
|
+
if ('development' !== 'production') {
|
6144
|
+
warn('Invalid prop: type check failed for prop "' + prop.name + '".' + ' Expected ' + expectedTypes.map(formatType).join(', ') + ', got ' + formatValue(value) + '.', vm);
|
6145
|
+
}
|
6097
6146
|
return false;
|
6098
6147
|
}
|
6099
6148
|
var validator = options.validator;
|
6100
6149
|
if (validator) {
|
6101
6150
|
if (!validator(value)) {
|
6102
|
-
'development' !== 'production' && warn('Invalid prop: custom validator check failed for
|
6151
|
+
'development' !== 'production' && warn('Invalid prop: custom validator check failed for prop "' + prop.name + '".', vm);
|
6103
6152
|
return false;
|
6104
6153
|
}
|
6105
6154
|
}
|
@@ -6123,10 +6172,62 @@ var template = Object.freeze({
|
|
6123
6172
|
return coerce(value);
|
6124
6173
|
}
|
6125
6174
|
|
6126
|
-
|
6127
|
-
|
6175
|
+
/**
|
6176
|
+
* Assert the type of a value
|
6177
|
+
*
|
6178
|
+
* @param {*} value
|
6179
|
+
* @param {Function} type
|
6180
|
+
* @return {Object}
|
6181
|
+
*/
|
6182
|
+
|
6183
|
+
function assertType(value, type) {
|
6184
|
+
var valid;
|
6185
|
+
var expectedType;
|
6186
|
+
if (type === String) {
|
6187
|
+
expectedType = 'string';
|
6188
|
+
valid = typeof value === expectedType;
|
6189
|
+
} else if (type === Number) {
|
6190
|
+
expectedType = 'number';
|
6191
|
+
valid = typeof value === expectedType;
|
6192
|
+
} else if (type === Boolean) {
|
6193
|
+
expectedType = 'boolean';
|
6194
|
+
valid = typeof value === expectedType;
|
6195
|
+
} else if (type === Function) {
|
6196
|
+
expectedType = 'function';
|
6197
|
+
valid = typeof value === expectedType;
|
6198
|
+
} else if (type === Object) {
|
6199
|
+
expectedType = 'object';
|
6200
|
+
valid = isPlainObject(value);
|
6201
|
+
} else if (type === Array) {
|
6202
|
+
expectedType = 'array';
|
6203
|
+
valid = isArray(value);
|
6204
|
+
} else {
|
6205
|
+
valid = value instanceof type;
|
6206
|
+
}
|
6207
|
+
return {
|
6208
|
+
valid: valid,
|
6209
|
+
expectedType: expectedType
|
6210
|
+
};
|
6128
6211
|
}
|
6129
6212
|
|
6213
|
+
/**
|
6214
|
+
* Format type for output
|
6215
|
+
*
|
6216
|
+
* @param {String} type
|
6217
|
+
* @return {String}
|
6218
|
+
*/
|
6219
|
+
|
6220
|
+
function formatType(type) {
|
6221
|
+
return type ? type.charAt(0).toUpperCase() + type.slice(1) : 'custom type';
|
6222
|
+
}
|
6223
|
+
|
6224
|
+
/**
|
6225
|
+
* Format value
|
6226
|
+
*
|
6227
|
+
* @param {*} value
|
6228
|
+
* @return {String}
|
6229
|
+
*/
|
6230
|
+
|
6130
6231
|
function formatValue(val) {
|
6131
6232
|
return Object.prototype.toString.call(val).slice(8, -1);
|
6132
6233
|
}
|
@@ -6143,19 +6244,9 @@ var template = Object.freeze({
|
|
6143
6244
|
var childKey = prop.path;
|
6144
6245
|
var parentKey = prop.parentPath;
|
6145
6246
|
var twoWay = prop.mode === bindingModes.TWO_WAY;
|
6146
|
-
var isSimple = isSimplePath(parentKey);
|
6147
6247
|
|
6148
6248
|
var parentWatcher = this.parentWatcher = new Watcher(parent, parentKey, function (val) {
|
6149
|
-
|
6150
|
-
if (assertProp(prop, val)) {
|
6151
|
-
if (isSimple) {
|
6152
|
-
withoutConversion(function () {
|
6153
|
-
child[childKey] = val;
|
6154
|
-
});
|
6155
|
-
} else {
|
6156
|
-
child[childKey] = val;
|
6157
|
-
}
|
6158
|
-
}
|
6249
|
+
updateProp(child, prop, val);
|
6159
6250
|
}, {
|
6160
6251
|
twoWay: twoWay,
|
6161
6252
|
filters: prop.filters,
|
@@ -6165,14 +6256,7 @@ var template = Object.freeze({
|
|
6165
6256
|
});
|
6166
6257
|
|
6167
6258
|
// set the child initial value.
|
6168
|
-
|
6169
|
-
if (isSimple && value !== undefined) {
|
6170
|
-
withoutConversion(function () {
|
6171
|
-
initProp(child, prop, value);
|
6172
|
-
});
|
6173
|
-
} else {
|
6174
|
-
initProp(child, prop, value);
|
6175
|
-
}
|
6259
|
+
initProp(child, prop, parentWatcher.value);
|
6176
6260
|
|
6177
6261
|
// setup two-way binding
|
6178
6262
|
if (twoWay) {
|
@@ -6292,7 +6376,7 @@ var template = Object.freeze({
|
|
6292
6376
|
/* istanbul ignore if */
|
6293
6377
|
if ('development' !== 'production') {
|
6294
6378
|
if (this.type && this.type !== TYPE_TRANSITION && this.type !== TYPE_ANIMATION) {
|
6295
|
-
warn('invalid CSS transition type for transition="' + this.id + '": ' + this.type);
|
6379
|
+
warn('invalid CSS transition type for transition="' + this.id + '": ' + this.type, vm);
|
6296
6380
|
}
|
6297
6381
|
}
|
6298
6382
|
// bind
|
@@ -6782,7 +6866,7 @@ var template = Object.freeze({
|
|
6782
6866
|
*/
|
6783
6867
|
|
6784
6868
|
function compileAndLinkProps(vm, el, props, scope) {
|
6785
|
-
var propsLinkFn = compileProps(el, props);
|
6869
|
+
var propsLinkFn = compileProps(el, props, vm);
|
6786
6870
|
var propDirs = linkAndCapture(function () {
|
6787
6871
|
propsLinkFn(vm, scope);
|
6788
6872
|
}, vm);
|
@@ -7273,7 +7357,7 @@ var template = Object.freeze({
|
|
7273
7357
|
if (name === 'class' && Array.prototype.some.call(attrs, function (attr) {
|
7274
7358
|
return attr.name === ':class' || attr.name === 'v-bind:class';
|
7275
7359
|
})) {
|
7276
|
-
warn('class="' + rawValue + '": Do not mix mustache interpolation ' + 'and v-bind for "class" on the same element. Use one or the other.');
|
7360
|
+
warn('class="' + rawValue + '": Do not mix mustache interpolation ' + 'and v-bind for "class" on the same element. Use one or the other.', options);
|
7277
7361
|
}
|
7278
7362
|
}
|
7279
7363
|
} else
|
@@ -7311,12 +7395,7 @@ var template = Object.freeze({
|
|
7311
7395
|
continue;
|
7312
7396
|
}
|
7313
7397
|
|
7314
|
-
dirDef = resolveAsset(options, 'directives', dirName);
|
7315
|
-
|
7316
|
-
if ('development' !== 'production') {
|
7317
|
-
assertAsset(dirDef, 'directive', dirName);
|
7318
|
-
}
|
7319
|
-
|
7398
|
+
dirDef = resolveAsset(options, 'directives', dirName, true);
|
7320
7399
|
if (dirDef) {
|
7321
7400
|
pushDir(dirName, dirDef);
|
7322
7401
|
}
|
@@ -7568,7 +7647,7 @@ var template = Object.freeze({
|
|
7568
7647
|
}
|
7569
7648
|
/* eslint-enable no-cond-assign */
|
7570
7649
|
if ('development' !== 'production' && getBindAttr(el, 'slot')) {
|
7571
|
-
warn('The "slot" attribute must be static.');
|
7650
|
+
warn('The "slot" attribute must be static.', vm.$parent);
|
7572
7651
|
}
|
7573
7652
|
}
|
7574
7653
|
for (name in contents) {
|
@@ -7653,7 +7732,7 @@ var template = Object.freeze({
|
|
7653
7732
|
var el = options.el;
|
7654
7733
|
var props = options.props;
|
7655
7734
|
if (props && !el) {
|
7656
|
-
'development' !== 'production' && warn('Props will not be compiled if no `el` option is ' + 'provided at instantiation.');
|
7735
|
+
'development' !== 'production' && warn('Props will not be compiled if no `el` option is ' + 'provided at instantiation.', this);
|
7657
7736
|
}
|
7658
7737
|
// make sure to convert string selectors into element now
|
7659
7738
|
el = options.el = query(el);
|
@@ -7671,7 +7750,7 @@ var template = Object.freeze({
|
|
7671
7750
|
var data = this._data = dataFn ? dataFn() : {};
|
7672
7751
|
if (!isPlainObject(data)) {
|
7673
7752
|
data = {};
|
7674
|
-
'development' !== 'production' && warn('data functions should return an object.');
|
7753
|
+
'development' !== 'production' && warn('data functions should return an object.', this);
|
7675
7754
|
}
|
7676
7755
|
var props = this._props;
|
7677
7756
|
var runtimeData = this._runtimeData ? typeof this._runtimeData === 'function' ? this._runtimeData() : this._runtimeData : null;
|
@@ -7688,7 +7767,7 @@ var template = Object.freeze({
|
|
7688
7767
|
if (!props || !hasOwn(props, key) || runtimeData && hasOwn(runtimeData, key) && props[key].raw === null) {
|
7689
7768
|
this._proxy(key);
|
7690
7769
|
} else if ('development' !== 'production') {
|
7691
|
-
warn('Data field "' + key + '" is already defined ' + 'as a prop. Use prop default value instead.');
|
7770
|
+
warn('Data field "' + key + '" is already defined ' + 'as a prop. Use prop default value instead.', this);
|
7692
7771
|
}
|
7693
7772
|
}
|
7694
7773
|
// observe data
|
@@ -7888,7 +7967,7 @@ var template = Object.freeze({
|
|
7888
7967
|
handler._fromParent = true;
|
7889
7968
|
vm.$on(name.replace(eventRE), handler);
|
7890
7969
|
} else if ('development' !== 'production') {
|
7891
|
-
warn('v-on:' + name + '="' + attrs[i].value + '"
|
7970
|
+
warn('v-on:' + name + '="' + attrs[i].value + '" ' + 'expects a function value, got ' + handler, vm);
|
7892
7971
|
}
|
7893
7972
|
}
|
7894
7973
|
}
|
@@ -7937,7 +8016,7 @@ var template = Object.freeze({
|
|
7937
8016
|
if (method) {
|
7938
8017
|
vm[action](key, method, options);
|
7939
8018
|
} else {
|
7940
|
-
'development' !== 'production' && warn('Unknown method: "' + handler + '" when ' + 'registering callback for ' + action + ': "' + key + '".');
|
8019
|
+
'development' !== 'production' && warn('Unknown method: "' + handler + '" when ' + 'registering callback for ' + action + ': "' + key + '".', vm);
|
7941
8020
|
}
|
7942
8021
|
} else if (handler && type === 'object') {
|
7943
8022
|
register(vm, action, key, handler.handler, handler);
|
@@ -8578,10 +8657,7 @@ var template = Object.freeze({
|
|
8578
8657
|
var filter, fn, args, arg, offset, i, l, j, k;
|
8579
8658
|
for (i = 0, l = filters.length; i < l; i++) {
|
8580
8659
|
filter = filters[write ? l - i - 1 : i];
|
8581
|
-
fn = resolveAsset(this.$options, 'filters', filter.name);
|
8582
|
-
if ('development' !== 'production') {
|
8583
|
-
assertAsset(fn, 'filter', filter.name);
|
8584
|
-
}
|
8660
|
+
fn = resolveAsset(this.$options, 'filters', filter.name, true);
|
8585
8661
|
if (!fn) continue;
|
8586
8662
|
fn = write ? fn.write : fn.read || fn;
|
8587
8663
|
if (typeof fn !== 'function') continue;
|
@@ -8614,10 +8690,7 @@ var template = Object.freeze({
|
|
8614
8690
|
if (typeof value === 'function') {
|
8615
8691
|
factory = value;
|
8616
8692
|
} else {
|
8617
|
-
factory = resolveAsset(this.$options, 'components', value);
|
8618
|
-
if ('development' !== 'production') {
|
8619
|
-
assertAsset(factory, 'component', value);
|
8620
|
-
}
|
8693
|
+
factory = resolveAsset(this.$options, 'components', value, true);
|
8621
8694
|
}
|
8622
8695
|
if (!factory) {
|
8623
8696
|
return;
|
@@ -9219,7 +9292,7 @@ var template = Object.freeze({
|
|
9219
9292
|
|
9220
9293
|
Vue.prototype.$mount = function (el) {
|
9221
9294
|
if (this._isCompiled) {
|
9222
|
-
'development' !== 'production' && warn('$mount() should be called only once.');
|
9295
|
+
'development' !== 'production' && warn('$mount() should be called only once.', this);
|
9223
9296
|
return;
|
9224
9297
|
}
|
9225
9298
|
el = query(el);
|
@@ -9378,10 +9451,7 @@ var template = Object.freeze({
|
|
9378
9451
|
},
|
9379
9452
|
|
9380
9453
|
insert: function insert(id) {
|
9381
|
-
var partial = resolveAsset(this.vm.$options, 'partials', id);
|
9382
|
-
if ('development' !== 'production') {
|
9383
|
-
assertAsset(partial, 'partial', id);
|
9384
|
-
}
|
9454
|
+
var partial = resolveAsset(this.vm.$options, 'partials', id, true);
|
9385
9455
|
if (partial) {
|
9386
9456
|
this.factory = new FragmentFactory(this.vm, partial);
|
9387
9457
|
vIf.insert.call(this);
|
@@ -9437,9 +9507,7 @@ var template = Object.freeze({
|
|
9437
9507
|
// because why not
|
9438
9508
|
var n = delimiter === 'in' ? 3 : 2;
|
9439
9509
|
// extract and flatten keys
|
9440
|
-
var keys = toArray(arguments, n)
|
9441
|
-
return prev.concat(cur);
|
9442
|
-
}, []);
|
9510
|
+
var keys = Array.prototype.concat.apply([], toArray(arguments, n));
|
9443
9511
|
var res = [];
|
9444
9512
|
var item, key, val, j;
|
9445
9513
|
for (var i = 0, l = arr.length; i < l; i++) {
|
@@ -9464,26 +9532,58 @@ var template = Object.freeze({
|
|
9464
9532
|
/**
|
9465
9533
|
* Filter filter for arrays
|
9466
9534
|
*
|
9467
|
-
* @param {String}
|
9468
|
-
* @param {
|
9535
|
+
* @param {String|Array<String>|Function} ...sortKeys
|
9536
|
+
* @param {Number} [order]
|
9469
9537
|
*/
|
9470
9538
|
|
9471
|
-
function orderBy(arr
|
9539
|
+
function orderBy(arr) {
|
9540
|
+
var comparator = null;
|
9541
|
+
var sortKeys = undefined;
|
9472
9542
|
arr = convertArray(arr);
|
9473
|
-
|
9543
|
+
|
9544
|
+
// determine order (last argument)
|
9545
|
+
var args = toArray(arguments, 1);
|
9546
|
+
var order = args[args.length - 1];
|
9547
|
+
if (typeof order === 'number') {
|
9548
|
+
order = order < 0 ? -1 : 1;
|
9549
|
+
args = args.length > 1 ? args.slice(0, -1) : args;
|
9550
|
+
} else {
|
9551
|
+
order = 1;
|
9552
|
+
}
|
9553
|
+
|
9554
|
+
// determine sortKeys & comparator
|
9555
|
+
var firstArg = args[0];
|
9556
|
+
if (!firstArg) {
|
9474
9557
|
return arr;
|
9558
|
+
} else if (typeof firstArg === 'function') {
|
9559
|
+
// custom comparator
|
9560
|
+
comparator = function (a, b) {
|
9561
|
+
return firstArg(a, b) * order;
|
9562
|
+
};
|
9563
|
+
} else {
|
9564
|
+
// string keys. flatten first
|
9565
|
+
sortKeys = Array.prototype.concat.apply([], args);
|
9566
|
+
comparator = function (a, b, i) {
|
9567
|
+
i = i || 0;
|
9568
|
+
return i >= sortKeys.length - 1 ? baseCompare(a, b, i) : baseCompare(a, b, i) || comparator(a, b, i + 1);
|
9569
|
+
};
|
9475
9570
|
}
|
9476
|
-
|
9477
|
-
|
9478
|
-
|
9479
|
-
if (sortKey
|
9480
|
-
if (
|
9481
|
-
|
9571
|
+
|
9572
|
+
function baseCompare(a, b, sortKeyIndex) {
|
9573
|
+
var sortKey = sortKeys[sortKeyIndex];
|
9574
|
+
if (sortKey) {
|
9575
|
+
if (sortKey !== '$key') {
|
9576
|
+
if (isObject(a) && '$value' in a) a = a.$value;
|
9577
|
+
if (isObject(b) && '$value' in b) b = b.$value;
|
9578
|
+
}
|
9579
|
+
a = isObject(a) ? getPath(a, sortKey) : a;
|
9580
|
+
b = isObject(b) ? getPath(b, sortKey) : b;
|
9482
9581
|
}
|
9483
|
-
a = isObject(a) ? getPath(a, sortKey) : a;
|
9484
|
-
b = isObject(b) ? getPath(b, sortKey) : b;
|
9485
9582
|
return a === b ? 0 : a > b ? order : -order;
|
9486
|
-
}
|
9583
|
+
}
|
9584
|
+
|
9585
|
+
// sort on a copy to avoid mutating original array
|
9586
|
+
return arr.slice().sort(comparator);
|
9487
9587
|
}
|
9488
9588
|
|
9489
9589
|
/**
|
@@ -9803,17 +9903,19 @@ var template = Object.freeze({
|
|
9803
9903
|
|
9804
9904
|
installGlobalAPI(Vue);
|
9805
9905
|
|
9806
|
-
Vue.version = '1.0.
|
9906
|
+
Vue.version = '1.0.21';
|
9807
9907
|
|
9808
9908
|
// devtools global hook
|
9809
9909
|
/* istanbul ignore next */
|
9810
|
-
|
9811
|
-
if (devtools) {
|
9812
|
-
devtools
|
9813
|
-
|
9814
|
-
|
9910
|
+
setTimeout(function () {
|
9911
|
+
if (config.devtools) {
|
9912
|
+
if (devtools) {
|
9913
|
+
devtools.emit('init', Vue);
|
9914
|
+
} else if ('development' !== 'production' && inBrowser && /Chrome\/\d+/.test(window.navigator.userAgent)) {
|
9915
|
+
console.log('Download the Vue Devtools for a better development experience:\n' + 'https://github.com/vuejs/vue-devtools');
|
9916
|
+
}
|
9815
9917
|
}
|
9816
|
-
}
|
9918
|
+
}, 0);
|
9817
9919
|
|
9818
9920
|
return Vue;
|
9819
9921
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vuejs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Lim
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|