const pinnedVessels = layersData.filter(l => l.type === 'VesselTrackAnimation').map(l => ({ title: l.title, hue: hexToHue(l.color), seriesgroup: getSeriesGroupsFromVesselURL(l.url), tilesetId: getTilesetFromVesselURL(l.url) }));
function processLegacyWorkspace(data, dispatch) { const workspace = data; let startOuterDate = TIMELINE_DEFAULT_OUTER_START_DATE; let endOuterDate = TIMELINE_DEFAULT_OUTER_END_DATE; let startInnerDate = TIMELINE_DEFAULT_INNER_START_DATE; let endInnerDate = TIMELINE_DEFAULT_INNER_END_DATE; const serializedStartDate = workspace.state.time.__jsonclass__; if (serializedStartDate !== undefined && serializedStartDate[0] === 'Date' && workspace.state.timeExtent) { endOuterDate = new Date(serializedStartDate[1]); startOuterDate = new Date(endOuterDate.getTime() - workspace.state.timeExtent); startInnerDate = startOuterDate; endInnerDate = new Date(startInnerDate.getTime() + Math.min(workspace.state.timeExtent / 2, 15778476000)); } dispatch({ type: SET_INNER_TIMELINE_DATES_FROM_WORKSPACE, payload: [startInnerDate, endInnerDate] }); dispatch({ type: SET_BASEMAP, payload: workspace.basemap }); const layersData = workspace.map.animations.filter(l => l.args.source.args.url).map(l => ({ title: l.args.title, color: l.args.color, visible: l.args.visible, type: l.type, url: l.args.source.args.url })); layersData.forEach((layer) => { layer.id = calculateLayerId(layer); if (layer.type === LAYER_TYPES.Heatmap) { layer.tilesetId = layer.id; } }); const layers = layersData.filter(l => l.type !== LAYER_TYPES.VesselTrackAnimation); const vesselLayer = layers.filter(l => l.type === LAYER_TYPES.Heatmap)[0]; // vesselLayer.id = '849-tileset-tms'; const tilesetUrl = vesselLayer.url; const rawVesselLayer = workspace.map.animations.filter(l => l.type === LAYER_TYPES.Heatmap)[0]; const filters = uniq(rawVesselLayer.args.selections.Flags.data.category) .filter(flag => (Array.prototype.hasOwnProperty.call(FLAGS, flag))) .map(flag => ({ flag })); const pinnedVessels = layersData.filter(l => l.type === 'VesselTrackAnimation').map(l => ({ title: l.title, hue: hexToHue(l.color), seriesgroup: getSeriesGroupsFromVesselURL(l.url), tilesetId: getTilesetFromVesselURL(l.url) })); let shownVessel = null; if ( rawVesselLayer.args.selections && rawVesselLayer.args.selections.selected && rawVesselLayer.args.selections.selected.data && rawVesselLayer.args.selections.selected.data.series && rawVesselLayer.args.selections.selected.data.series[0] && rawVesselLayer.args.selections.selected.data.seriesgroup && rawVesselLayer.args.selections.selected.data.seriesgroup[0] && rawVesselLayer.args.selections.selected.data.source && rawVesselLayer.args.selections.selected.data.source[0] ) { shownVessel = { series: rawVesselLayer.args.selections.selected.data.series[0], seriesgroup: rawVesselLayer.args.selections.selected.data.seriesgroup[0], tilesetId: getTilesetFromLayerURL(rawVesselLayer.args.selections.selected.data.source[0]) }; } return { zoom: workspace.state.zoom, center: [workspace.state.lat, workspace.state.lon], timelineInnerDates: [startInnerDate, endInnerDate], timelineOuterDates: [startOuterDate, endOuterDate], basemap: workspace.basemap, timelineSpeed: workspace.timelineSpeed, layers, pinnedVessels, tilesetUrl, shownVessel, filters, tilesetId: getTilesetFromLayerURL(tilesetUrl) }; }