1
1
/*!
2
- built in 2017-1-3:20:17 version 2.2.3 by 司徒正美
2
+ built in 2017-1-3:21:44 version 2.2.3 by 司徒正美
3
3
https://github.com/RubyLouvre/avalon/tree/2.2.3
4
4
5
5
fix VElement hackIE BUG
@@ -889,6 +889,31 @@ avalon.bind 在绑定非元素节点也要修正事件对象
889
889
locate . SHORTMONTH = locate . MONTH
890
890
dateFilter . locate = locate
891
891
892
+ /**
893
+ $$skipArray:是系统级通用的不可监听属性
894
+ $skipArray: 是当前对象特有的不可监听属性
895
+
896
+ 不同点是
897
+ $$skipArray被hasOwnProperty后返回false
898
+ $skipArray被hasOwnProperty后返回true
899
+ */
900
+ var falsy
901
+ var $$skipArray = {
902
+ $id : falsy ,
903
+ $render : falsy ,
904
+ $track : falsy ,
905
+ $element : falsy ,
906
+ $computed : falsy ,
907
+ $watch : falsy ,
908
+ $fire : falsy ,
909
+ $events : falsy ,
910
+ $accessors : falsy ,
911
+ $hashcode : falsy ,
912
+ $mutations : falsy ,
913
+ $vbthis : falsy ,
914
+ $vbsetter : falsy
915
+ }
916
+
892
917
/*
893
918
https://github.com/hufyhang/orderBy/blob/master/index.js
894
919
*/
@@ -903,20 +928,16 @@ avalon.bind 在绑定非元素节点也要修正事件对象
903
928
}
904
929
var mapping = { }
905
930
var temp = [ ]
906
- var index = 0
907
- for ( var key in array ) {
908
- if ( array . hasOwnProperty ( key ) ) {
909
- var val = array [ key ]
910
- var k = criteria ( val , key )
911
- if ( k in mapping ) {
912
- mapping [ k ] . push ( key )
913
- } else {
914
- mapping [ k ] = [ key ]
915
- }
916
-
917
- temp . push ( k )
931
+ __repeat ( array , Array . isArray ( array ) , function ( key ) {
932
+ var val = array [ key ]
933
+ var k = criteria ( val , key )
934
+ if ( k in mapping ) {
935
+ mapping [ k ] . push ( key )
936
+ } else {
937
+ mapping [ k ] = [ key ]
918
938
}
919
- }
939
+ temp . push ( k )
940
+ } )
920
941
921
942
temp . sort ( )
922
943
if ( decend < 0 ) {
@@ -933,6 +954,24 @@ avalon.bind 在绑定非元素节点也要修正事件对象
933
954
}
934
955
} )
935
956
}
957
+
958
+ function __repeat ( array , isArray$$1 , cb ) {
959
+ if ( isArray$$1 ) {
960
+ array . forEach ( function ( val , index ) {
961
+ cb ( index )
962
+ } )
963
+ } else if ( typeof array . $track === 'string' ) {
964
+ array . $track . replace ( / [ ^ ☥ ] + / g, function ( k ) {
965
+ cb ( k )
966
+ } )
967
+ } else {
968
+ for ( var i in array ) {
969
+ if ( array . hasOwnProperty ( i ) ) {
970
+ cb ( i )
971
+ }
972
+ }
973
+ }
974
+ }
936
975
function filterBy ( array , search ) {
937
976
var type = avalon$2 . type ( array )
938
977
if ( type !== 'array' && type !== 'object' ) throw 'filterBy只能处理对象或数组'
@@ -952,20 +991,21 @@ avalon.bind 在绑定非元素节点也要修正事件对象
952
991
} else {
953
992
return array
954
993
}
955
-
956
- array = convertArray ( array ) . filter ( function ( el , i ) {
957
- return ! ! criteria . apply ( el , [ el . value , i ] . concat ( args ) )
958
- } )
959
-
994
+ var index = 0
960
995
var isArray$$1 = type === 'array'
961
996
var target = isArray$$1 ? [ ] : { }
962
- return recovery ( target , array , function ( el ) {
963
- if ( isArray$$1 ) {
964
- target . push ( el . value )
965
- } else {
966
- target [ el . key ] = el . value
997
+ __repeat ( array , isArray$$1 , function ( key ) {
998
+ var val = array [ key ]
999
+ if ( criteria . apply ( val , [ val , index ] . concat ( args ) ) ) {
1000
+ if ( isArray$$1 ) {
1001
+ target . push ( val )
1002
+ } else {
1003
+ target [ key ] = val
1004
+ }
967
1005
}
1006
+ index ++
968
1007
} )
1008
+ return target
969
1009
}
970
1010
971
1011
function selectBy ( data , array , defaults ) {
@@ -992,7 +1032,7 @@ avalon.bind 在绑定非元素节点也要修正事件对象
992
1032
}
993
1033
//将目标转换为数组
994
1034
if ( type === 'object' ) {
995
- input = convertArray ( input )
1035
+ input = convertArray ( input , false )
996
1036
}
997
1037
var n = input . length
998
1038
limit = Math . floor ( Math . min ( n , limit ) )
@@ -1026,19 +1066,17 @@ avalon.bind 在绑定非元素节点也要修正事件对象
1026
1066
1027
1067
//Chrome谷歌浏览器中js代码Array.sort排序的bug乱序解决办法
1028
1068
//http://www.cnblogs.com/yzeng/p/3949182.html
1029
- function convertArray ( array ) {
1069
+ function convertArray ( array , isArray$$1 ) {
1030
1070
var ret = [ ] ,
1031
1071
i = 0
1032
- for ( var key in array ) {
1033
- if ( array . hasOwnProperty ( key ) ) {
1034
- ret [ i ] = {
1035
- oldIndex : i ,
1036
- value : array [ key ] ,
1037
- key : key
1038
- }
1039
- i ++
1072
+ __repeat ( array , isArray$$1 , function ( key ) {
1073
+ ret [ i ] = {
1074
+ oldIndex : i ,
1075
+ value : array [ key ] ,
1076
+ key : key
1040
1077
}
1041
- }
1078
+ i ++
1079
+ } )
1042
1080
return ret
1043
1081
}
1044
1082
@@ -2816,31 +2854,6 @@ avalon.bind 在绑定非元素节点也要修正事件对象
2816
2854
return avalon$2 . vdom ( a , 'toDOM' )
2817
2855
}
2818
2856
2819
- /**
2820
- $$skipArray:是系统级通用的不可监听属性
2821
- $skipArray: 是当前对象特有的不可监听属性
2822
-
2823
- 不同点是
2824
- $$skipArray被hasOwnProperty后返回false
2825
- $skipArray被hasOwnProperty后返回true
2826
- */
2827
- var falsy
2828
- var $$skipArray = {
2829
- $id : falsy ,
2830
- $render : falsy ,
2831
- $track : falsy ,
2832
- $element : falsy ,
2833
- $computed : falsy ,
2834
- $watch : falsy ,
2835
- $fire : falsy ,
2836
- $events : falsy ,
2837
- $accessors : falsy ,
2838
- $hashcode : falsy ,
2839
- $mutations : falsy ,
2840
- $vbthis : falsy ,
2841
- $vbsetter : falsy
2842
- }
2843
-
2844
2857
avalon$2 . pendingActions = [ ]
2845
2858
avalon$2 . uniqActions = { }
2846
2859
avalon$2 . inTransaction = 0
0 commit comments