1- < << << << HEAD
2- << << << < HEAD
3- = = === ==
4- >>> >>> > restored generate filters
51import colorbrewer from 'colorbrewer' ;
62import { ckmeans } from 'simple-statistics' ;
73import { comparator } from '../utils/files' ;
@@ -37,21 +33,6 @@ function getStops(layer, clusterLayer, nextIndex, dispatch) {
3733 const {
3834 colors, periods, limit, radiusRange,
3935 } = layer ;
40- << < << << HEAD
41- const clusters =
42- clusterLayer &&
43- clusterLayer . stops &&
44- nextIndex &&
45- clusterLayer . stops [ nextIndex ] &&
46- ! [ ...new Set ( clusterLayer . stops [ nextIndex ] . map ( d => d [ 1 ] ) ) ] . includes ( undefined )
47- ? [ ...new Set ( clusterLayer . stops [ nextIndex ] . map ( d => d [ 1 ] ) ) ] . length
48- : layer . clusters ||
49- ( clusterLayer &&
50- clusterLayer . layerObj &&
51- clusterLayer . layerObj . colors &&
52- clusterLayer . layerObj . colors . length ) ||
53- clusterLayer . categories . color . length ;
54- === = ===
5536 const clusters = ( clusterLayer && clusterLayer . stops && nextIndex
5637 && clusterLayer . stops [ nextIndex ] &&
5738 ! [ ...new Set ( clusterLayer . stops [ nextIndex ] . map ( d => d [ 1 ] ) ) ] . includes ( undefined ) ) ?
@@ -60,29 +41,17 @@ function getStops(layer, clusterLayer, nextIndex, dispatch) {
6041 layer . clusters || ( clusterLayer && clusterLayer . layerObj &&
6142 clusterLayer . layerObj . colors && clusterLayer . layerObj . colors . length ) ||
6243 clusterLayer . categories . color . length ;
63- >>> > >>> restored generate filters
6444 const colorsStops = [ ] ;
6545 const radiusStops = [ ] ;
6646 let breaks = [ ] ;
6747 const radius = radiusRange || defaultRadiusRange ;
6848
6949 // Sort data based on data value
70- << < << << HEAD
71- const list = layer . data . map (
72- ( x , i ) => ( {
73- data : x ,
74- osmIDs : layer . osmIDs [ i ] ,
75- periods : periods [ i ] ,
76- } ) ,
77- this ,
78- ) ;
79- === = ===
8050 const list = layer . data . map ( ( x , i ) => ( {
8151 data : x ,
8252 osmIDs : layer . osmIDs [ i ] ,
8353 periods : periods [ i ] ,
8454 } ) , this ) ;
85- >>> > >>> restored generate filters
8655 list . sort ( ( a , b ) => {
8756 if ( a . data < b . data ) {
8857 return - 1 ;
@@ -97,22 +66,11 @@ function getStops(layer, clusterLayer, nextIndex, dispatch) {
9766 const period = list . map ( items => items . periods ) ;
9867
9968 // Sort for limit limit || data based on osmIDs
100- << < << << HEAD
101- const dataList = layer . osmIDs . map (
102- ( x , i ) => ( {
103- osmIDs : x ,
104- data : layer . data [ i ] ,
105- periods : periods [ i ] ,
106- } ) ,
107- this ,
108- ) ;
109- === = ===
11069 const dataList = layer . osmIDs . map ( ( x , i ) => ( {
11170 osmIDs : x ,
11271 data : layer . data [ i ] ,
11372 periods : periods [ i ] ,
11473 } ) , this ) ;
115- >>> > >>> restored generate filters
11674 dataList . sort ( ( a , b ) => {
11775 if ( a . data < b . data ) {
11876 return - 1 ;
@@ -132,31 +90,6 @@ function getStops(layer, clusterLayer, nextIndex, dispatch) {
13290 } else if ( clusters && sortedData . length && sortedData . length < clusters ) {
13391 ckmeansCluster = ckmeans ( sortedData , sortedData . length ) ;
13492 }
135- << < << << HEAD
136- const cluster = ( Array . isArray ( clusters ) && clusters ) || ckmeansCluster ;
137-
138- const currentState = dispatch && dispatch ( getCurrentState ( ) ) ;
139- if (
140- currentState &&
141- currentState . FILTER &&
142- currentState . FILTER [ clusterLayer . id ] &&
143- currentState . FILTER [ clusterLayer . id ] . doUpdate
144- ) {
145- breaks =
146- limit ||
147- ( cluster && cluster . length && cluster . map ( cl => cl [ cl . length - 1 ] ) ) ;
148- } else {
149- breaks =
150- clusterLayer . categories &&
151- clusterLayer . categories . label &&
152- clusterLayer . type !== 'chart'
153- ? limit
154- : ( cluster && cluster . length && cluster . map ( cl => cl [ cl . length - 1 ] ) ) ||
155- limit ;
156- }
157-
158- const OSMIDsExist = layer . osmIDs && layer . osmIDs . length !== 0 ;
159- === = ===
16093 const cluster = ( Array . isArray ( clusters ) && clusters )
16194 || ckmeansCluster ;
16295
@@ -171,22 +104,12 @@ function getStops(layer, clusterLayer, nextIndex, dispatch) {
171104 }
172105
173106 const OSMIDsExist = ( layer . osmIDs && layer . osmIDs . length !== 0 ) ;
174- >>> > >>> restored generate filters
175107 const data = limit ? rangeData : sortedData ;
176108 const osmIDs = limit ? rangeID : osmID ;
177109 const breakStops = [ ] ;
178110
179- << < << << HEAD
180- const activeBreaks =
181- clusterLayer . categories &&
182- clusterLayer . categories . label &&
183- clusterLayer . type !== 'chart'
184- ? limit
185- : breaks ;
186- === = ===
187111 const activeBreaks = clusterLayer . categories && clusterLayer . categories . label ?
188112 limit : breaks ;
189- >>> > >>> restored generate filters
190113
191114 // Assign colors and radius to osmId or data value
192115 for ( let k = 0 ; k < data . length ; k += 1 ) {
@@ -195,11 +118,7 @@ function getStops(layer, clusterLayer, nextIndex, dispatch) {
195118 // Check for repeating stop domains
196119 const stopValue = OSMIDsExist ? osmIDs [ k ] : data [ k ] ;
197120 colorsStops . push ( [ stopValue , getColor ( colors , i ) ] ) ;
198- << < << << HEAD
199- radiusStops . push ( [ stopValue , Number ( radius [ i ] ) ] ) ;
200- === = ===
201121 radiusStops . push ( [ stopValue , ( Number ( radius [ i ] ) ) ] ) ;
202- >>> > >>> restored generate filters
203122 breakStops . push ( activeBreaks [ i ] ) ;
204123 break ;
205124 }
@@ -229,20 +148,8 @@ function getStops(layer, clusterLayer, nextIndex, dispatch) {
229148 }
230149 }
231150 }
232- << << << < HEAD
233- return [
234- periodStops ,
235- periodRadius ,
236- uniqPeriods ,
237- breaks ,
238- colors ,
239- periodStroke ,
240- periodBreaks ,
241- ] ;
242- === === =
243151 return [ periodStops , periodRadius , uniqPeriods , breaks , colors , periodStroke ,
244152 periodBreaks ] ;
245- >>> >>> > restored generate filters
246153 }
247154 return [ ] ;
248155}
@@ -251,41 +158,6 @@ export default function (layer, timefield, dispatch, nextIndex) {
251158 const data = [ ] ;
252159 const osmIDs = [ ] ;
253160 const periods = [ ] ;
254- << < << << HEAD
255- const stops =
256- layer [ 'unfiltered-stops' ] ||
257- ( layer . layerObj && layer . layerObj [ 'unfiltered-stops' ] ) ||
258- ( layer && layer . layerObj && layer . layerObj . stops && layer . layerObj . stops ) ;
259- const { categories } = layer . categories ? layer : layer . layerObj ;
260- const clusters = categories && categories . clusters ;
261- const limit =
262- categories && categories . label
263- ? categories . limit
264- : ( stops && stops [ 3 ] ) || categories . limit ;
265- const color = layer . categories
266- ? layer . categories . color
267- : layer . layerObj . categories . color ;
268- const colors =
269- categories && categories . label
270- ? categories . color
271- : ( stops && stops [ 4 ] ) || getColorBrewerColor ( color , clusters ) || color ;
272- const rawData =
273- layer . data ||
274- layer . source . data . features ||
275- layer . source . data ||
276- layer . mergedData ;
277- const rows = rawData . filter ( d => ( d . properties || d ) [ layer . property ] !== 'n/a' ) ;
278- let sortedData = [ ...rows ] ;
279- sortedData = sortedData
280- . filter ( d => d . period !== '' )
281- . filter ( d => d . Phase !== '' ) ;
282- let sortedDataDate ;
283- if (
284- layer . aggregate &&
285- layer . aggregate . timeseries &&
286- ! layer . aggregate [ 'no-sort' ]
287- ) {
288- === = ===
289161 const stops = layer [ 'unfiltered-stops' ] ||
290162 ( layer . layerObj && layer . layerObj [ 'unfiltered-stops' ] ) ||
291163 ( layer && layer . layerObj && layer . layerObj . stops && layer . layerObj . stops ) ;
@@ -303,47 +175,21 @@ export default function (layer, timefield, dispatch, nextIndex) {
303175 sortedData = sortedData . filter ( d => d . period !== '' ) . filter ( d => d . Phase !== '' ) ;
304176 let sortedDataDate ;
305177 if ( layer . aggregate && layer . aggregate . timeseries && ! layer . aggregate [ 'no-sort' ] ) {
306- >>> >>> > restored generate filters
307178 if ( layer [ 'data-parse' ] && layer . aggregate [ 'date-parse' ] ) {
308179 const { split, chunk } = layer . aggregate [ 'date-parse' ] ;
309180 sortedDataDate = rows . map ( ( d ) => {
310181 const dataCopy = d ;
311182
312183 return {
313184 ...dataCopy ,
314- < << << << HEAD
315- date : new Date ( ( dataCopy . properties || dataCopy ) . period . split ( split ) [ chunk ] ) ,
316- === = ===
317185 date : new Date ( ( dataCopy . properties ||
318186 dataCopy ) . period . split ( split ) [ chunk ] ) ,
319- >>> > >>> restored generate filters
320187 } ;
321188 } ) ;
322189 sortedData = sortedDataDate . sort ( comparator ) ;
323190 } else if ( layer . aggregate && ! layer . aggregate [ 'date-parse' ] ) {
324191 sortedData = rows . sort ( ( a , b ) => {
325192 if ( ! Number . isNaN ( Date . parse ( ( a . properties || a ) [ timefield ] ) ) ) {
326- < << << << HEAD
327- return (
328- new Date ( ( a . properties || a ) [ timefield ] ) -
329- new Date ( ( b . properties || b ) [ timefield ] )
330- ) ;
331- } else if (
332- Number . isNaN ( Date . parse ( ( a . properties || a ) [ timefield ] ) ) &&
333- ! Number . isNaN ( Date . parse ( ( a . properties || a ) [ timefield ] . toString ( ) . split ( '-' ) [ 0 ] ) )
334- ) {
335- return (
336- new Date ( ( a . properties || a ) [ timefield ] . toString ( ) . split ( '-' ) [ 0 ] ) -
337- new Date ( ( b . properties || b ) [ timefield ] . toString ( ) . split ( '-' ) [ 0 ] )
338- ) ;
339- } else if (
340- ( a . properties || a ) [ timefield ] > ( b . properties || b ) [ timefield ]
341- ) {
342- return 1 ;
343- } else if (
344- ( b . properties || b ) [ timefield ] > ( a . properties || a ) [ timefield ]
345- ) {
346- === === =
347193 return new Date ( ( a . properties ||
348194 a ) [ timefield ] ) - new Date ( ( b . properties || b ) [ timefield ] ) ;
349195 } else if ( Number . isNaN ( Date . parse ( ( a . properties || a ) [ timefield ] ) )
@@ -353,77 +199,24 @@ export default function (layer, timefield, dispatch, nextIndex) {
353199 } else if ( ( a . properties || a ) [ timefield ] > ( b . properties || b ) [ timefield ] ) {
354200 return 1 ;
355201 } else if ( ( b . properties || b ) [ timefield ] > ( a . properties || a ) [ timefield ] ) {
356- >>> >>> > restored generate filters
357202 return - 1 ;
358203 }
359204 return 0 ;
360205 } ) ;
361206 }
362- << < << << HEAD
363- } else if ( layer && layer . aggregate && layer . aggregate [ 'year-sort' ] ) {
364- /** Sorts data based on year alone keeping the week sort implemented on superset
365- * Should be done in superset in the future
366- */
367- const yearlySortedData = [ ] ;
368- const years = Array . from ( new Set ( [ ...rows . map ( d => d . year ) ] ) ) . sort ( ) ;
369- years . forEach ( ( year ) => {
370- rows . forEach ( ( datum ) => {
371- if ( datum . year === year ) {
372- yearlySortedData . push ( datum ) ;
373- }
374- } ) ;
375- } ) ;
376- sortedData = [ ...yearlySortedData ] ;
377- } else {
378- sortedData = [ ...rows ] ;
379- }
380- const isGeoJSON =
381- ( layer . source && layer . source . data . features ) ||
382- ( layer . layerObj &&
383- layer . layerObj . source &&
384- layer . layerObj . source . data . features ) ;
385- === = ===
386207 } else {
387208 sortedData = [ ...rows ] ;
388209 }
389210
390211 const isGeoJSON = ( layer . source && layer . source . data . features )
391212 || ( layer . layerObj && layer . layerObj . source && layer . layerObj . source . data . features ) ;
392- >>> > >>> restored generate filters
393213
394214 // if (isGeoJSON && layer.type === 'circle') {
395215 // sortedData.sort((a, b) => a.properties[layer.property] - b.properties[layer.property]);
396216 // } else if (layer.type !== 'fill') {
397217 // sortedData.sort((a, b) => a[layer.property] - b[layer.property]);
398218 // }
399219
400- << < << << HEAD
401- const geoJSONWithOSMKey =
402- isGeoJSON &&
403- ( ( layer && layer . source && layer . source . join && layer . source . join [ 1 ] ) ||
404- ( layer . layerObj && layer . layerObj . source . join [ 1 ] ) ) ;
405-
406- const radiusRange =
407- layer [ 'radius-range' ] ||
408- ( layer . layerObj && layer . layerObj [ 'unfiltered-stops' ] ) ;
409-
410- const groupByProp =
411- ( layer . aggregate && layer . aggregate [ 'group-by' ] ) ||
412- ( layer . layerObj &&
413- layer . layerObj . aggregate &&
414- layer . layerObj . aggregate [ 'group-by' ] ) ;
415-
416- for ( let i = 0 ; i < sortedData . length ; i += 1 ) {
417- if ( isGeoJSON ) {
418- data . push ( Number ( sortedData [ i ] . properties [ layer . property || layer . layerObj . property ] ) ) ;
419- periods . push ( sortedData [ i ] . properties [ timefield ] || null ) ;
420- if ( geoJSONWithOSMKey ) {
421- osmIDs . push ( sortedData [ i ] . properties [
422- groupByProp ||
423- ( ( layer . source && layer . source . join [ 1 ] ) ||
424- ( layer . layerObj && layer . layerObj . source . join [ 1 ] ) )
425- ] ) ;
426- === = ===
427220 const geoJSONWithOSMKey = ( isGeoJSON &&
428221 ( ( layer && layer . source && layer . source . join &&
429222 layer . source . join [ 1 ] ) ||
@@ -443,7 +236,6 @@ export default function (layer, timefield, dispatch, nextIndex) {
443236 osmIDs . push ( sortedData [ i ] . properties [ ( groupByProp
444237 || ( ( layer . source && layer . source . join [ 1 ] ) ||
445238 ( layer . layerObj && layer . layerObj . source . join [ 1 ] ) ) ) ] ) ;
446- >>> > >>> restored generate filters
447239 }
448240 } else {
449241 periods . push ( sortedData [ i ] [ timefield ] || null ) ;
@@ -453,36 +245,6 @@ export default function (layer, timefield, dispatch, nextIndex) {
453245 } else {
454246 data . push ( Number ( propVal ) ) ;
455247 }
456- << < << << HEAD
457- osmIDs . push ( sortedData [ i ] [
458- groupByProp ||
459- ( layer && layer . source && layer . source . join [ 1 ] ) ||
460- ( layer &&
461- layer . layerObj &&
462- layer . layerObj . source &&
463- layer . layerObj . source . join &&
464- layer . layerObj . source . join [ 1 ] )
465- ] ) ;
466- }
467- }
468- return getStops (
469- {
470- data,
471- colors,
472- osmIDs,
473- periods,
474- limit,
475- clusters,
476- radiusRange,
477- } ,
478- layer ,
479- nextIndex ,
480- dispatch ,
481- ) ;
482- }
483- === = ===
484- > >>> > >> refactored buildFiltersMap in maps
485- === = ===
486248 osmIDs . push ( sortedData [ i ] [ ( groupByProp || ( layer && layer . source &&
487249 layer . source . join [ 1 ] ) ||
488250 ( layer && layer . layerObj && layer . layerObj . source &&
@@ -493,5 +255,4 @@ export default function (layer, timefield, dispatch, nextIndex) {
493255 return getStops ( {
494256 data, colors, osmIDs, periods, limit, clusters, radiusRange,
495257 } , layer , nextIndex , dispatch ) ;
496- }
497- >>> > >>> restored generate filters
258+ }
0 commit comments