1
1
( function ( global , factory ) {
2
2
if ( typeof define === "function" && define . amd ) {
3
- define ( [ ' module' , ' exports' , ' ../utils' ] , factory ) ;
3
+ define ( [ " module" , " exports" , "lodash" , " ../utils" ] , factory ) ;
4
4
} else if ( typeof exports !== "undefined" ) {
5
- factory ( module , exports , require ( ' ../utils' ) ) ;
5
+ factory ( module , exports , require ( "lodash" ) , require ( " ../utils" ) ) ;
6
6
} else {
7
7
var mod = {
8
8
exports : { }
9
9
} ;
10
- factory ( mod , mod . exports , global . utils ) ;
10
+ factory ( mod , mod . exports , global . lodash , global . utils ) ;
11
11
global . index = mod . exports ;
12
12
}
13
- } ) ( this , function ( module , exports , _utils ) {
14
- ' use strict' ;
13
+ } ) ( this , function ( module , exports , _lodash , _utils ) {
14
+ " use strict" ;
15
15
16
16
Object . defineProperty ( exports , "__esModule" , {
17
17
value : true
18
18
} ) ;
19
19
20
+ var _lodash2 = _interopRequireDefault ( _lodash ) ;
21
+
22
+ function _interopRequireDefault ( obj ) {
23
+ return obj && obj . __esModule ? obj : {
24
+ default : obj
25
+ } ;
26
+ }
27
+
28
+ var _typeof = typeof Symbol === "function" && typeof Symbol . iterator === "symbol" ? function ( obj ) {
29
+ return typeof obj ;
30
+ } : function ( obj ) {
31
+ return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ;
32
+ } ;
33
+
20
34
function _defineProperty ( obj , key , value ) {
21
35
if ( key in obj ) {
22
36
Object . defineProperty ( obj , key , {
47
61
} ;
48
62
49
63
var updatedDiff = function updatedDiff ( lhs , rhs ) {
64
+ var simpleArray = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : true ;
65
+
50
66
51
67
if ( lhs === rhs ) return { } ;
52
68
63
79
return Object . keys ( r ) . reduce ( function ( acc , key ) {
64
80
65
81
if ( l . hasOwnProperty ( key ) ) {
66
- if ( Array . isArray ( l [ key ] , r [ key ] ) ) {
67
- return acc ;
82
+ if ( Array . isArray ( l [ key ] ) && Array . isArray ( r [ key ] ) ) {
83
+ var _ret = function ( ) {
84
+ if ( _lodash2 . default . isEqual ( l [ key ] , r [ key ] ) ) {
85
+ return {
86
+ v : acc
87
+ } ;
88
+ }
89
+ var leftArray = _lodash2 . default . cloneDeep ( l [ key ] ) ;
90
+ var rightArray = _lodash2 . default . cloneDeep ( r [ key ] ) ;
91
+ var addedFields = _lodash2 . default . uniq ( _lodash2 . default . difference ( r [ key ] , l [ key ] ) ) ;
92
+ var deletedFields = _lodash2 . default . uniq ( _lodash2 . default . difference ( l [ key ] , r [ key ] ) ) ;
93
+ _lodash2 . default . pullAll ( leftArray , deletedFields ) ;
94
+ _lodash2 . default . pullAll ( rightArray , addedFields ) ;
95
+ if ( _lodash2 . default . isEqual ( leftArray , rightArray ) || simpleArray ) {
96
+ return {
97
+ v : acc
98
+ } ;
99
+ } else {
100
+ var allKeys = _lodash2 . default . uniq ( rightArray ) ;
101
+ var allKeysCounter = _lodash2 . default . reduce ( allKeys , function ( acc , curr ) {
102
+ return acc [ curr ] = 0 , acc ;
103
+ } , { } ) ;
104
+ var allKeysObject = _lodash2 . default . reduce ( allKeys , function ( acc , curr ) {
105
+ return acc [ curr ] = [ ] , acc ;
106
+ } , { } ) ;
107
+
108
+ var _loop = function _loop ( i ) {
109
+ if ( ! _lodash2 . default . isEqual ( leftArray [ i ] , rightArray [ i ] ) ) {
110
+ ( function ( ) {
111
+ var index = _lodash2 . default . findIndex ( r [ key ] , function ( value ) {
112
+ return _lodash2 . default . isEqual ( value , rightArray [ i ] ) ;
113
+ } ) ;
114
+ for ( var j = 0 ; j < allKeysCounter [ rightArray [ i ] ] ; j ++ ) {
115
+ index = _lodash2 . default . findIndex ( r [ key ] , function ( value ) {
116
+ return _lodash2 . default . isEqual ( value , rightArray [ i ] , index + 1 ) ;
117
+ } ) ;
118
+ }
119
+ allKeysObject [ rightArray [ i ] ] . push ( {
120
+ counter : allKeysCounter [ rightArray [ i ] ] ,
121
+ newIndex : index
122
+ } ) ;
123
+ } ) ( ) ;
124
+ }
125
+ allKeysCounter [ rightArray [ i ] ] = allKeysCounter [ rightArray [ i ] ] ++ ;
126
+ } ;
127
+
128
+ for ( var i = 0 ; i < leftArray . length ; i ++ ) {
129
+ _loop ( i ) ;
130
+ }
131
+ var _iteratorNormalCompletion = true ;
132
+ var _didIteratorError = false ;
133
+ var _iteratorError = undefined ;
134
+
135
+ try {
136
+ for ( var _iterator = Object . keys ( allKeysObject ) [ Symbol . iterator ] ( ) , _step ; ! ( _iteratorNormalCompletion = ( _step = _iterator . next ( ) ) . done ) ; _iteratorNormalCompletion = true ) {
137
+ var _key = _step . value ;
138
+
139
+ if ( _lodash2 . default . isEmpty ( allKeysObject [ _key ] ) ) {
140
+ delete allKeysObject [ _key ] ;
141
+ }
142
+ }
143
+ } catch ( err ) {
144
+ _didIteratorError = true ;
145
+ _iteratorError = err ;
146
+ } finally {
147
+ try {
148
+ if ( ! _iteratorNormalCompletion && _iterator . return ) {
149
+ _iterator . return ( ) ;
150
+ }
151
+ } finally {
152
+ if ( _didIteratorError ) {
153
+ throw _iteratorError ;
154
+ }
155
+ }
156
+ }
157
+
158
+ return {
159
+ v : _extends ( { } , acc , _defineProperty ( { } , key , { after : allKeysObject } ) )
160
+ } ;
161
+ }
162
+ } ( ) ;
163
+
164
+ if ( ( typeof _ret === "undefined" ? "undefined" : _typeof ( _ret ) ) === "object" ) return _ret . v ;
68
165
}
69
- var difference = updatedDiff ( l [ key ] , r [ key ] ) ;
166
+ var difference = updatedDiff ( l [ key ] , r [ key ] , simpleArray ) ;
70
167
71
168
if ( ( 0 , _utils . isObject ) ( difference ) && ( 0 , _utils . isEmpty ) ( difference ) && ! ( 0 , _utils . isDate ) ( difference ) ) return acc ;
72
169
80
177
} ;
81
178
82
179
exports . default = updatedDiff ;
83
- module . exports = exports [ ' default' ] ;
180
+ module . exports = exports [ " default" ] ;
84
181
} ) ;
0 commit comments