@@ -179,21 +179,21 @@ const procOperator = (data: any, operator) => {
179179 switch ( operator . operator ) {
180180 case 'sum' :
181181 return {
182- sum : sum ( data . map ( ( element ) => Number ( element [ operator . field ] ) ) ) ,
182+ sum : sum ( data . map ( ( element ) => Number ( get ( element , operator . field ) ) ) ) ,
183183 } ;
184184 case 'avg' :
185185 return {
186- avg : mean ( data . map ( ( element ) => Number ( element [ operator . field ] ) ) ) ,
186+ avg : mean ( data . map ( ( element ) => Number ( get ( element , operator . field ) ) ) ) ,
187187 } ;
188188 case 'count' :
189189 return { count : size ( data ) } ;
190190 case 'max' :
191191 return {
192- max : max ( data . map ( ( element ) => Number ( element [ operator . field ] ) ) ) ,
192+ max : max ( data . map ( ( element ) => Number ( get ( element , operator . field ) ) ) ) ,
193193 } ;
194194 case 'min' :
195195 return {
196- min : min ( data . map ( ( element ) => Number ( element [ operator . field ] ) ) ) ,
196+ min : min ( data . map ( ( element ) => Number ( get ( element , operator . field ) ) ) ) ,
197197 } ;
198198 case 'last' :
199199 return {
@@ -223,8 +223,8 @@ const procPipelineStep = (pipelineStep, data, sourceFields) => {
223223 ( operator ) => operator . expression
224224 ) ;
225225 const keysToGroupBy = pipelineStep . form . groupBy . map ( ( key ) => key . field ) ;
226- data = groupBy ( data , ( dataKey ) =>
227- keysToGroupBy . map ( ( key ) => dataKey [ key ] )
226+ data = groupBy ( data , ( item ) =>
227+ keysToGroupBy . map ( ( key ) => get ( item , key ) )
228228 ) ;
229229 for ( const key in data ) {
230230 let supplementaryFields : any ;
@@ -276,18 +276,18 @@ const procPipelineStep = (pipelineStep, data, sourceFields) => {
276276 switch ( elt . expression . operator ) {
277277 case 'add' :
278278 data . map ( ( obj : any ) => {
279- obj [ elt . name ] = obj [ elt . expression . field ] ;
279+ obj [ elt . name ] = get ( obj , elt . expression . field ) ;
280280 } ) ;
281281 break ;
282282 case 'month' :
283283 data . map ( ( obj : any ) => {
284284 try {
285285 const month =
286- new Date ( obj [ elt . expression . field ] ) . getMonth ( ) + 1 ;
286+ new Date ( get ( obj , elt . expression . field ) ) . getMonth ( ) + 1 ;
287287 const monthAsString =
288288 month < 10 ? '0' + month : month . toString ( ) ;
289289 const dateWithMonth =
290- new Date ( obj [ elt . expression . field ] ) . getFullYear ( ) +
290+ new Date ( get ( obj , elt . expression . field ) ) . getFullYear ( ) +
291291 '-' +
292292 monthAsString ;
293293 obj [ elt . name ] = dateWithMonth ;
@@ -299,7 +299,9 @@ const procPipelineStep = (pipelineStep, data, sourceFields) => {
299299 case 'year' :
300300 data . map ( ( obj : any ) => {
301301 try {
302- const year = new Date ( obj [ elt . expression . field ] ) . getFullYear ( ) ;
302+ const year = new Date (
303+ get ( obj , elt . expression . field )
304+ ) . getFullYear ( ) ;
303305 const yearAsString = year . toString ( ) ;
304306 obj [ elt . name ] = yearAsString ;
305307 } catch {
@@ -310,7 +312,7 @@ const procPipelineStep = (pipelineStep, data, sourceFields) => {
310312 case 'day' :
311313 data . map ( ( obj : any ) => {
312314 try {
313- const date = new Date ( obj [ elt . expression . field ] ) ;
315+ const date = new Date ( get ( obj , elt . expression . field ) ) ;
314316 const dayAsString =
315317 date . getFullYear ( ) +
316318 '-' +
@@ -326,7 +328,7 @@ const procPipelineStep = (pipelineStep, data, sourceFields) => {
326328 case 'week' :
327329 data . map ( ( obj : any ) => {
328330 try {
329- const date = new Date ( obj [ elt . expression . field ] ) ;
331+ const date = new Date ( get ( obj , elt . expression . field ) ) ;
330332 const firstDayOfYear = new Date ( date . getFullYear ( ) , 0 , 1 ) ;
331333 const pastDaysOfYear =
332334 ( date . valueOf ( ) - firstDayOfYear . valueOf ( ) ) / 86400000 ;
@@ -342,7 +344,7 @@ const procPipelineStep = (pipelineStep, data, sourceFields) => {
342344 break ;
343345 case 'multiply' :
344346 data . map ( ( obj : any ) => {
345- obj [ elt . name ] = obj [ elt . expression . field ] ;
347+ obj [ elt . name ] = get ( obj , elt . expression . field ) ;
346348 } ) ;
347349 break ;
348350 }
0 commit comments