11/*!
2- * Vue.js v0.12.12
2+ * Vue.js v0.12.13
33 * (c) 2015 Evan You
44 * Released under the MIT License.
55 */
@@ -362,8 +362,9 @@ return /******/ (function(modules) { // webpackBootstrap
362362 */
363363
364364var toString = Object . prototype . toString
365+ var OBJECT_STRING = '[object Object]'
365366exports . isPlainObject = function ( obj ) {
366- return toString . call ( obj ) === '[object Object]'
367+ return toString . call ( obj ) === OBJECT_STRING
367368}
368369
369370/**
@@ -434,7 +435,8 @@ return /******/ (function(modules) { // webpackBootstrap
434435 */
435436
436437exports . indexOf = function ( arr , obj ) {
437- for ( var i = 0 , l = arr . length ; i < l ; i ++ ) {
438+ var i = arr . length
439+ while ( i -- ) {
438440if ( arr [ i ] === obj ) return i
439441}
440442return - 1
@@ -3153,8 +3155,8 @@ return /******/ (function(modules) { // webpackBootstrap
31533155'Error when evaluating expression "' +
31543156this . expression + '". ' +
31553157( config . debug
3156- ?'' :
3157- 'Turn on debug mode to see stack trace.'
3158+ ?''
3159+ : 'Turn on debug mode to see stack trace.'
31583160) , e
31593161)
31603162}
@@ -5589,6 +5591,7 @@ return /******/ (function(modules) { // webpackBootstrap
55895591this . op =
55905592this . cb = null
55915593this . justEntered = false
5594+ this . entered = this . left = false
55925595this . typeCache = { }
55935596// bind
55945597var self = this
@@ -5631,7 +5634,11 @@ return /******/ (function(modules) { // webpackBootstrap
56315634this . cb = cb
56325635addClass ( this . el , this . enterClass )
56335636op ( )
5637+ this . entered = false
56345638this . callHookWithCb ( 'enter' )
5639+ if ( this . entered ) {
5640+ return // user called done synchronously.
5641+ }
56355642this . cancel = this . hooks && this . hooks . enterCancelled
56365643queue . push ( this . enterNextTick )
56375644}
@@ -5647,16 +5654,20 @@ return /******/ (function(modules) { // webpackBootstrap
56475654_ . nextTick ( function ( ) {
56485655this . justEntered = false
56495656} , this )
5650- var type = this . getCssTransitionType ( this . enterClass )
56515657var enterDone = this . enterDone
5652- if ( type === TYPE_TRANSITION ) {
5653- // trigger transition by removing enter class now
5658+ var type = this . getCssTransitionType ( this . enterClass )
5659+ if ( ! this . pendingJsCb ) {
5660+ if ( type === TYPE_TRANSITION ) {
5661+ // trigger transition by removing enter class now
5662+ removeClass ( this . el , this . enterClass )
5663+ this . setupCssCb ( transitionEndEvent , enterDone )
5664+ } else if ( type === TYPE_ANIMATION ) {
5665+ this . setupCssCb ( animationEndEvent , enterDone )
5666+ } else {
5667+ enterDone ( )
5668+ }
5669+ } else if ( type === TYPE_TRANSITION ) {
56545670removeClass ( this . el , this . enterClass )
5655- this . setupCssCb ( transitionEndEvent , enterDone )
5656- } else if ( type === TYPE_ANIMATION ) {
5657- this . setupCssCb ( animationEndEvent , enterDone )
5658- } else if ( ! this . pendingJsCb ) {
5659- enterDone ( )
56605671}
56615672}
56625673
@@ -5665,6 +5676,7 @@ return /******/ (function(modules) { // webpackBootstrap
56655676 */
56665677
56675678p . enterDone = function ( ) {
5679+ this . entered = true
56685680this . cancel = this . pendingJsCb = null
56695681removeClass ( this . el , this . enterClass )
56705682this . callHook ( 'afterEnter' )
@@ -5698,7 +5710,11 @@ return /******/ (function(modules) { // webpackBootstrap
56985710this . op = op
56995711this . cb = cb
57005712addClass ( this . el , this . leaveClass )
5713+ this . left = false
57015714this . callHookWithCb ( 'leave' )
5715+ if ( this . left ) {
5716+ return // user called done synchronously.
5717+ }
57025718this . cancel = this . hooks && this . hooks . leaveCancelled
57035719// only need to handle leaveDone if
57045720// 1. the transition is already done (synchronously called
@@ -5737,6 +5753,7 @@ return /******/ (function(modules) { // webpackBootstrap
57375753 */
57385754
57395755p . leaveDone = function ( ) {
5756+ this . left = true
57405757this . cancel = this . pendingJsCb = null
57415758this . op ( )
57425759removeClass ( this . el , this . leaveClass )
@@ -6040,9 +6057,10 @@ return /******/ (function(modules) { // webpackBootstrap
60406057)
60416058return
60426059}
6060+ el . __v_model = this
60436061handler . bind . call ( this )
60446062this . update = handler . update
6045- this . unbind = handler . unbind
6063+ this . _unbind = handler . unbind
60466064} ,
60476065
60486066/**
@@ -6062,6 +6080,11 @@ return /******/ (function(modules) { // webpackBootstrap
60626080this . hasWrite = true
60636081}
60646082}
6083+ } ,
6084+
6085+ unbind :function ( ) {
6086+ this . el . __v_model = null
6087+ this . _unbind && this . _unbind ( )
60656088}
60666089}
60676090
@@ -6550,6 +6573,21 @@ return /******/ (function(modules) { // webpackBootstrap
65506573 */
65516574
65526575bind :function ( ) {
6576+
6577+ // some helpful tips...
6578+ /* istanbul ignore if */
6579+ if (
6580+ ( "development" ) !== 'production' &&
6581+ this . el . tagName === 'OPTION' &&
6582+ this . el . parentNode && this . el . parentNode . __v_model
6583+ ) {
6584+ _ . warn (
6585+ 'Don\'t use v-repeat for v-model options; ' +
6586+ 'use the `options` param instead: ' +
6587+ 'http://vuejs.org/guide/forms.html#Dynamic_Select_Options'
6588+ )
6589+ }
6590+
65536591// support for item in array syntax
65546592var inMatch = this . expression . match ( / ( .* ) i n ( .* ) / )
65556593if ( inMatch ) {
@@ -6588,19 +6626,6 @@ return /******/ (function(modules) { // webpackBootstrap
65886626
65896627// create cache object
65906628this . cache = Object . create ( null )
6591-
6592- // some helpful tips...
6593- /* istanbul ignore if */
6594- if (
6595- ( "development" ) !== 'production' &&
6596- this . el . tagName === 'OPTION'
6597- ) {
6598- _ . warn (
6599- 'Don\'t use v-repeat for v-model options; ' +
6600- 'use the `options` param instead: ' +
6601- 'http://vuejs.org/guide/forms.html#Dynamic_Select_Options'
6602- )
6603- }
66046629} ,
66056630
66066631/**
@@ -6719,6 +6744,12 @@ return /******/ (function(modules) { // webpackBootstrap
67196744 */
67206745
67216746update :function ( data ) {
6747+ if ( ( "development" ) !== 'production' && ! _ . isArray ( data ) ) {
6748+ _ . warn (
6749+ 'v-repeat pre-converts Objects into Arrays, and ' +
6750+ 'v-repeat filters should always return Arrays.'
6751+ )
6752+ }
67226753if ( this . componentId ) {
67236754var state = this . componentState
67246755if ( state === UNRESOLVED ) {
@@ -6792,6 +6823,14 @@ return /******/ (function(modules) { // webpackBootstrap
67926823primitive = ! isObject ( raw )
67936824vm = ! init && this . getVm ( raw , i , converted ?obj . $key :null )
67946825if ( vm ) { // reusable instance
6826+
6827+ if ( ( "development" ) !== 'production' && vm . _reused ) {
6828+ _ . warn (
6829+ 'Duplicate objects found in v-repeat="' + this . expression + '": ' +
6830+ JSON . stringify ( raw )
6831+ )
6832+ }
6833+
67956834vm . _reused = true
67966835vm . $index = i // update $index
67976836// update data for track-by or object repeat,
@@ -6989,7 +7028,7 @@ return /******/ (function(modules) { // webpackBootstrap
69897028cache [ id ] = vm
69907029} else if ( ! primitive && idKey !== '$index' ) {
69917030( "development" ) !== 'production' && _ . warn (
6992- 'Duplicate track-by key in v-repeat: ' + id
7031+ 'Duplicateobjects with the same track-by key in v-repeat: ' + id
69937032)
69947033}
69957034} else {
@@ -6999,8 +7038,8 @@ return /******/ (function(modules) { // webpackBootstrap
69997038data [ id ] = vm
70007039} else {
70017040( "development" ) !== 'production' && _ . warn (
7002- 'Duplicate objectsare not supported in v-repeat ' +
7003- 'when using components or transitions.'
7041+ 'Duplicate objectsfound in v-repeat="' + this . expression + '": '+
7042+ JSON . stringify ( data )
70047043)
70057044}
70067045} else {
@@ -7731,6 +7770,7 @@ return /******/ (function(modules) { // webpackBootstrap
77317770esc :27 ,
77327771tab :9 ,
77337772enter :13 ,
7773+ space :32 ,
77347774'delete' :46 ,
77357775up :38 ,
77367776left :37 ,
@@ -8453,11 +8493,18 @@ return /******/ (function(modules) { // webpackBootstrap
84538493) {
84548494ob = value . __ob__
84558495} else if (
8456- _ . isObject ( value ) &&
8496+ ( _ . isArray ( value ) || _ . isPlainObject ( value ) ) &&
84578497! Object . isFrozen ( value ) &&
84588498! value . _isVue
84598499) {
84608500ob = new Observer ( value )
8501+ } else if ( true ) {
8502+ if ( _ . isObject ( value ) && ! _ . isArray ( value ) && ! _ . isPlainObject ( value ) ) {
8503+ _ . warn (
8504+ 'Unobservable object found in data: ' +
8505+ Object . prototype . toString . call ( value )
8506+ )
8507+ }
84618508}
84628509if ( ob && vm ) {
84638510ob . addVm ( vm )
@@ -8505,7 +8552,42 @@ return /******/ (function(modules) { // webpackBootstrap
85058552Observer . prototype . observeArray = function ( items ) {
85068553var i = items . length
85078554while ( i -- ) {
8508- this . observe ( items [ i ] )
8555+ var ob = this . observe ( items [ i ] )
8556+ if ( ob ) {
8557+ ( ob . parents || ( ob . parents = [ ] ) ) . push ( this )
8558+ }
8559+ }
8560+ }
8561+
8562+ /**
8563+ * Remove self from the parent list of removed objects.
8564+ *
8565+ *@param {Array } items
8566+ */
8567+
8568+ Observer . prototype . unobserveArray = function ( items ) {
8569+ var i = items . length
8570+ while ( i -- ) {
8571+ var ob = items [ i ] && items [ i ] . __ob__
8572+ if ( ob ) {
8573+ ob . parents . $remove ( this )
8574+ }
8575+ }
8576+ }
8577+
8578+ /**
8579+ * Notify self dependency, and also parent Array dependency
8580+ * if any.
8581+ */
8582+
8583+ Observer . prototype . notify = function ( ) {
8584+ this . dep . notify ( )
8585+ var parents = this . parents
8586+ if ( parents ) {
8587+ var i = parents . length
8588+ while ( i -- ) {
8589+ parents [ i ] . notify ( )
8590+ }
85098591}
85108592}
85118593
@@ -8530,12 +8612,6 @@ return /******/ (function(modules) { // webpackBootstrap
85308612if ( childOb ) {
85318613childOb . dep . depend ( )
85328614}
8533- if ( _ . isArray ( val ) ) {
8534- for ( var e , i = 0 , l = val . length ; i < l ; i ++ ) {
8535- e = val [ i ]
8536- e && e . __ob__ && e . __ob__ . dep . depend ( )
8537- }
8538- }
85398615}
85408616return val
85418617} ,
@@ -8640,7 +8716,7 @@ return /******/ (function(modules) { // webpackBootstrap
86408716}
86418717var result = original . apply ( this , args )
86428718var ob = this . __ob__
8643- var inserted
8719+ var inserted , removed
86448720switch ( method ) {
86458721case 'push' :
86468722inserted = args
@@ -8650,11 +8726,17 @@ return /******/ (function(modules) { // webpackBootstrap
86508726break
86518727case 'splice' :
86528728inserted = args . slice ( 2 )
8729+ removed = result
8730+ break
8731+ case 'pop' :
8732+ case 'shift' :
8733+ removed = [ result ]
86538734break
86548735}
86558736if ( inserted ) ob . observeArray ( inserted )
8737+ if ( removed ) ob . unobserveArray ( removed )
86568738// notify change
8657- ob . dep . notify ( )
8739+ ob . notify ( )
86588740return result
86598741} )
86608742} )
@@ -8731,7 +8813,7 @@ return /******/ (function(modules) { // webpackBootstrap
87318813return
87328814}
87338815ob . convert ( key , val )
8734- ob . dep . notify ( )
8816+ ob . notify ( )
87358817if ( ob . vms ) {
87368818var i = ob . vms . length
87378819while ( i -- ) {
@@ -8779,7 +8861,7 @@ return /******/ (function(modules) { // webpackBootstrap
87798861if ( ! ob || _ . isReserved ( key ) ) {
87808862return
87818863}
8782- ob . dep . notify ( )
8864+ ob . notify ( )
87838865if ( ob . vms ) {
87848866var i = ob . vms . length
87858867while ( i -- ) {
@@ -9943,13 +10025,15 @@ return /******/ (function(modules) { // webpackBootstrap
994310025exports . $addChild = function ( opts , BaseCtor ) {
994410026BaseCtor = BaseCtor || _ . Vue
994510027opts = opts || { }
9946- var parent = this
994710028var ChildVue
10029+ var parent = this
10030+ // transclusion context
10031+ var context = opts . _context || parent
994810032var inherit = opts . inherit !== undefined
994910033 ?opts . inherit
995010034 :BaseCtor . options . inherit
995110035if ( inherit ) {
9952- var ctors = parent . _childCtors
10036+ var ctors = context . _childCtors
995310037ChildVue = ctors [ BaseCtor . cid ]
995410038if ( ! ChildVue ) {
995510039var optionName = BaseCtor . options . name
@@ -9963,9 +10047,7 @@ return /******/ (function(modules) { // webpackBootstrap
996310047) ( )
996410048ChildVue . options = BaseCtor . options
996510049ChildVue . linker = BaseCtor . linker
9966- // important: transcluded inline repeaters should
9967- // inherit from outer scope rather than host
9968- ChildVue . prototype = opts . _context || this
10050+ ChildVue . prototype = context
996910051ctors [ BaseCtor . cid ] = ChildVue
997010052}
997110053} else {