From 6c763334fa7e53789f6abfa8137d33284bf876f0 Mon Sep 17 00:00:00 2001 From: Daniel Naab <dnaab@usgs.gov> Date: Thu, 31 May 2018 11:04:52 -0500 Subject: [PATCH] Remove usage of Set class in favor of D3 version. Fixes issues with spread operator and removes need for polyfill. --- .../src/scripts/components/hydrograph/drawingData.js | 3 ++- assets/src/scripts/components/hydrograph/legend.js | 5 +++-- assets/src/scripts/components/hydrograph/tooltip.js | 10 ++++------ assets/src/scripts/utils.js | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/assets/src/scripts/components/hydrograph/drawingData.js b/assets/src/scripts/components/hydrograph/drawingData.js index ab7dfd2c6..6393cf61b 100644 --- a/assets/src/scripts/components/hydrograph/drawingData.js +++ b/assets/src/scripts/components/hydrograph/drawingData.js @@ -1,3 +1,4 @@ +import { set } from 'd3-collection'; import memoize from 'fast-memoize'; import find from 'lodash/find'; import { DateTime } from 'luxon'; @@ -287,7 +288,7 @@ export const pointsTableDataSelector = memoize(tsKey => createSelector( const getLineClasses = function(pt) { let dataMask = null; if (pt.value === null) { - let qualifiers = new Set(pt.qualifiers.map(q => q.toLowerCase())); + let qualifiers = set(pt.qualifiers.map(q => q.toLowerCase())); // current business rules specify that a particular data point // will only have at most one masking qualifier diff --git a/assets/src/scripts/components/hydrograph/legend.js b/assets/src/scripts/components/hydrograph/legend.js index 5ff49d3d8..9493b12a1 100644 --- a/assets/src/scripts/components/hydrograph/legend.js +++ b/assets/src/scripts/components/hydrograph/legend.js @@ -1,7 +1,8 @@ // functions to facilitate legend creation for a d3 plot +import { set } from 'd3-collection'; import memoize from 'fast-memoize'; - import { createSelector } from 'reselect'; + import { CIRCLE_RADIUS } from './layout'; import { defineLineMarker, defineTextOnlyMarker, defineRectangleMarker } from './markers'; import { currentVariableLineSegmentsSelector, HASH_ID, MASK_DESC } from './drawingData'; @@ -184,7 +185,7 @@ const uniqueClassesSelector = memoize(tsKey => createSelector( default: classes.some((cls) => !cls.approved && !cls.estimated && !cls.dataMask), approved: classes.some((cls) => cls.approved), estimated: classes.some((cls) => cls.estimated), - dataMasks: new Set(classes.map((cls) => cls.dataMask).filter((mask) => { + dataMasks: set(classes.map((cls) => cls.dataMask).filter((mask) => { return mask; })) }; diff --git a/assets/src/scripts/components/hydrograph/tooltip.js b/assets/src/scripts/components/hydrograph/tooltip.js index abe0bb8cc..c7c616da7 100644 --- a/assets/src/scripts/components/hydrograph/tooltip.js +++ b/assets/src/scripts/components/hydrograph/tooltip.js @@ -1,4 +1,4 @@ - +import { set } from 'd3-collection'; import { mouse, select } from 'd3-selection'; import { transition } from 'd3-transition'; import memoize from 'fast-memoize'; @@ -75,11 +75,9 @@ const getTooltipText = function(datum, qualifiers, unitCode, ianaTimeZone) { let label = ''; if (datum && qualifiers) { let valueStr = datum.value === null ? ' ' : `${datum.value} ${unitCode}`; - - const maskKeys = new Set(Object.keys(MASK_DESC)); - const qualiferKeysLower = new Set(datum.qualifiers.map(x => x.toLowerCase())); - const maskKeyIntersect = [...qualiferKeysLower].filter(x => maskKeys.has(x)); - + const maskKeys = set(Object.keys(MASK_DESC)); + const qualiferKeysLower = set(datum.qualifiers.map(x => x.toLowerCase())); + const maskKeyIntersect = [...qualiferKeysLower.values()].filter(x => maskKeys.has(x)); if (maskKeyIntersect.length) { // a data point will have at most one masking qualifier valueStr = MASK_DESC[[maskKeyIntersect][0]]; diff --git a/assets/src/scripts/utils.js b/assets/src/scripts/utils.js index e975fea40..2195326af 100644 --- a/assets/src/scripts/utils.js +++ b/assets/src/scripts/utils.js @@ -70,7 +70,7 @@ export const deltaDays = function (date1, date2) { */ export const setEquality = function (set1, set2) { let sizeEqual = set1.size === set2.size; - let itemsEqual = [...set1].every(x => { + let itemsEqual = Array.from(set1).every(x => { return set2.has(x); }); return sizeEqual && itemsEqual; -- GitLab