From 7cd511422d3c79fde456390a80f8118ff7566af5 Mon Sep 17 00:00:00 2001 From: Bjorn Sandvik Date: Wed, 27 Sep 2023 21:15:57 +0200 Subject: [PATCH 01/25] chore: period type select refactor (#2977) --- i18n/en.pot | 10 ++--- src/actions/layerEdit.js | 4 +- .../edit/thematic/ThematicDialog.js | 3 +- src/components/periods/PeriodTypeSelect.js | 40 +++++++++++-------- src/constants/periods.js | 14 ++++--- src/reducers/layerEdit.js | 6 +-- src/util/periods.js | 6 ++- 7 files changed, 47 insertions(+), 36 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index fbce2a3d2..7686c57f4 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2023-09-06T13:08:55.205Z\n" -"PO-Revision-Date: 2023-09-06T13:08:55.205Z\n" +"POT-Creation-Date: 2023-09-27T14:55:16.411Z\n" +"PO-Revision-Date: 2023-09-27T14:55:16.411Z\n" msgid "Untitled map, {{date}}" msgstr "Untitled map, {{date}}" @@ -802,9 +802,6 @@ msgstr "Previous year" msgid "Next year" msgstr "Next year" -msgid "Relative" -msgstr "Relative" - msgid "Period type" msgstr "Period type" @@ -1202,6 +1199,9 @@ msgstr "Equal counts" msgid "Symbol" msgstr "Symbol" +msgid "Relative" +msgstr "Relative" + msgid "Daily" msgstr "Daily" diff --git a/src/actions/layerEdit.js b/src/actions/layerEdit.js index 80037f548..e6fd006ad 100644 --- a/src/actions/layerEdit.js +++ b/src/actions/layerEdit.js @@ -179,10 +179,10 @@ export const setPeriodName = (periodName) => ({ }) // Set period type (thematic) -export const setPeriodType = (periodType, clearPeriod = true) => ({ +export const setPeriodType = (periodType, keepPeriod) => ({ type: types.LAYER_EDIT_PERIOD_TYPE_SET, periodType, - clearPeriod, + keepPeriod, }) // Set period (event & thematic) diff --git a/src/components/edit/thematic/ThematicDialog.js b/src/components/edit/thematic/ThematicDialog.js index 263c4120f..d074437c0 100644 --- a/src/components/edit/thematic/ThematicDialog.js +++ b/src/components/edit/thematic/ThematicDialog.js @@ -224,7 +224,6 @@ class ThematicDialog extends Component { noDataColor, operand, periodType, - settings, renderingStrategy, startDate, endDate, @@ -420,7 +419,7 @@ class ThematicDialog extends Component { { + const { hiddenPeriods } = useSystemSettings() + + const periodTypes = useMemo( + () => getPeriodTypes(includeRelativePeriods, hiddenPeriods), + [includeRelativePeriods, hiddenPeriods] + ) + + // Set default period type useEffect(() => { - const relativePeriodType = { - id: RELATIVE_PERIODS, - name: i18n.t('Relative'), - } + if (!value) { + const isRelativePeriod = !!( + includeRelativePeriods && + period && + getRelativePeriods().find((p) => p.id === period.id) + ) - if (!value && period) { - if (getRelativePeriods().find((p) => p.id === period.id)) { - // false will not clear the period dropdown - onChange(relativePeriodType, false) + if (!period || isRelativePeriod) { + // default to first period type + onChange(periodTypes[0], isRelativePeriod) } - } else if (!value) { - // set relativePeriods as default - onChange(relativePeriodType) } - }, [value, period, onChange]) + }, [value, period, periodTypes, includeRelativePeriods, onChange]) return ( [ - { - id: RELATIVE_PERIODS, - name: i18n.t('Relative'), - }, +export const periodTypes = (includeRelativePeriods) => [ + ...(includeRelativePeriods + ? [ + { + id: RELATIVE_PERIODS, + name: i18n.t('Relative'), + }, + ] + : []), { id: DAILY, name: i18n.t('Daily'), diff --git a/src/reducers/layerEdit.js b/src/reducers/layerEdit.js index 2549cbb36..f40823e43 100644 --- a/src/reducers/layerEdit.js +++ b/src/reducers/layerEdit.js @@ -107,9 +107,9 @@ const layerEdit = (state = null, action) => { return { ...state, periodType: action.periodType.id, - filters: action.clearPeriod - ? removePeriodFromFilters(state.filters) - : state.filters, + filters: action.keepPeriod + ? state.filters + : removePeriodFromFilters(state.filters), } case types.LAYER_EDIT_PERIOD_SET: diff --git a/src/util/periods.js b/src/util/periods.js index 366633e8a..2fdd0f826 100644 --- a/src/util/periods.js +++ b/src/util/periods.js @@ -6,8 +6,10 @@ import { periodTypes, periodGroups } from '../constants/periods.js' const getYearOffsetFromNow = (year) => year - new Date(Date.now()).getFullYear() -export const getPeriodTypes = (hiddenPeriods = []) => - periodTypes().filter(({ group }) => !hiddenPeriods.includes(group)) +export const getPeriodTypes = (includeRelativePeriods, hiddenPeriods = []) => + periodTypes(includeRelativePeriods).filter( + ({ group }) => !hiddenPeriods.includes(group) + ) export const getFixedPeriodsByType = (periodType, year) => { const period = getFixedPeriodsOptionsById(periodType) From 7f84e89e6338de66466155d03d887fdab6cf6e70 Mon Sep 17 00:00:00 2001 From: Bjorn Sandvik Date: Wed, 27 Sep 2023 21:16:20 +0200 Subject: [PATCH 02/25] chore: color scale refactor (#2982) --- .../classification/Classification.js | 2 +- src/components/core/ColorScaleSelect.js | 7 +- .../edit/earthEngine/EarthEngineDialog.js | 2 +- .../edit/earthEngine/LegendPreview.js | 2 +- .../edit/earthEngine/StyleSelect.js | 4 +- src/components/edit/earthEngine/StyleTab.js | 2 +- src/constants/earthEngine.js | 77 ++++++++++++++++--- src/loaders/earthEngineLoader.js | 10 ++- src/reducers/layerEdit.js | 2 +- .../__tests__/getMigratedMapConfig.spec.js | 37 +++++++++ src/util/colors.js | 14 ++-- src/util/favorites.js | 5 ++ src/util/getMigratedMapConfig.js | 36 ++++++--- src/util/legend.js | 3 +- 14 files changed, 158 insertions(+), 45 deletions(-) diff --git a/src/components/classification/Classification.js b/src/components/classification/Classification.js index 1b9031abe..5227c6168 100644 --- a/src/components/classification/Classification.js +++ b/src/components/classification/Classification.js @@ -68,7 +68,7 @@ Classification.propTypes = { setClassification: PropTypes.func.isRequired, setColorScale: PropTypes.func.isRequired, classes: PropTypes.number, - colorScale: PropTypes.string, + colorScale: PropTypes.array, method: PropTypes.number, } diff --git a/src/components/core/ColorScaleSelect.js b/src/components/core/ColorScaleSelect.js index ee3d735ac..7498ce974 100644 --- a/src/components/core/ColorScaleSelect.js +++ b/src/components/core/ColorScaleSelect.js @@ -14,12 +14,11 @@ const ColorScaleSelect = ({ palette, width, onChange, className }) => { const [isOpen, setIsOpen] = useState(false) const anchorRef = useRef() - const bins = palette.split(',').length + const bins = palette.length const scale = getColorScale(palette) const onColorScaleSelect = (scale) => { - const classes = palette.split(',').length - onChange(getColorPalette(scale, classes)) + onChange(getColorPalette(scale, bins)) setIsOpen(false) } @@ -61,7 +60,7 @@ const ColorScaleSelect = ({ palette, width, onChange, className }) => { } ColorScaleSelect.propTypes = { - palette: PropTypes.string.isRequired, + palette: PropTypes.array.isRequired, onChange: PropTypes.func.isRequired, className: PropTypes.string, width: PropTypes.number, diff --git a/src/components/edit/earthEngine/EarthEngineDialog.js b/src/components/edit/earthEngine/EarthEngineDialog.js index a435d042c..37998b45f 100644 --- a/src/components/edit/earthEngine/EarthEngineDialog.js +++ b/src/components/edit/earthEngine/EarthEngineDialog.js @@ -266,7 +266,7 @@ EarthEngineDialog.propTypes = { params: PropTypes.shape({ max: PropTypes.number.isRequired, min: PropTypes.number.isRequired, - palette: PropTypes.string.isRequired, + palette: PropTypes.array.isRequired, }), rows: PropTypes.array, } diff --git a/src/components/edit/earthEngine/LegendPreview.js b/src/components/edit/earthEngine/LegendPreview.js index f84c04baa..6cfdf387c 100644 --- a/src/components/edit/earthEngine/LegendPreview.js +++ b/src/components/edit/earthEngine/LegendPreview.js @@ -31,7 +31,7 @@ LegendPreview.propTypes = { params: PropTypes.shape({ max: PropTypes.number.isRequired, min: PropTypes.number.isRequired, - palette: PropTypes.string.isRequired, + palette: PropTypes.array.isRequired, }), } diff --git a/src/components/edit/earthEngine/StyleSelect.js b/src/components/edit/earthEngine/StyleSelect.js index 383f959ad..310e49df4 100644 --- a/src/components/edit/earthEngine/StyleSelect.js +++ b/src/components/edit/earthEngine/StyleSelect.js @@ -12,7 +12,7 @@ const maxSteps = 9 const StyleSelect = ({ unit, params, setParams }) => { const { min, max, palette } = params - const [steps, setSteps] = useState(palette.split(',').length) + const [steps, setSteps] = useState(palette.length) const onStepsChange = useCallback( (steps) => { @@ -95,7 +95,7 @@ StyleSelect.propTypes = { params: PropTypes.shape({ max: PropTypes.number.isRequired, min: PropTypes.number.isRequired, - palette: PropTypes.string.isRequired, + palette: PropTypes.array.isRequired, }), } diff --git a/src/components/edit/earthEngine/StyleTab.js b/src/components/edit/earthEngine/StyleTab.js index c065162e8..b48328b6d 100644 --- a/src/components/edit/earthEngine/StyleTab.js +++ b/src/components/edit/earthEngine/StyleTab.js @@ -25,7 +25,7 @@ StyleTab.propTypes = { params: PropTypes.shape({ max: PropTypes.number.isRequired, min: PropTypes.number.isRequired, - palette: PropTypes.string.isRequired, + palette: PropTypes.array.isRequired, }), } diff --git a/src/constants/earthEngine.js b/src/constants/earthEngine.js index 2c3d7d099..94880cd81 100644 --- a/src/constants/earthEngine.js +++ b/src/constants/earthEngine.js @@ -31,7 +31,14 @@ export const earthEngineLayers = () => [ params: { min: 0, max: 25, - palette: '#fee5d9,#fcbba1,#fc9272,#fb6a4a,#de2d26,#a50f15', // Reds + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], // Reds }, opacity: 0.9, }, @@ -209,7 +216,14 @@ export const earthEngineLayers = () => [ params: { min: 0, max: 10, - palette: '#fee5d9,#fcbba1,#fc9272,#fb6a4a,#de2d26,#a50f15', // Reds + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], // Reds }, opacity: 0.9, tileScale: 4, @@ -254,7 +268,14 @@ export const earthEngineLayers = () => [ params: { min: 0, max: 1500, - palette: '#ffffd4,#fee391,#fec44f,#fe9929,#d95f0e,#993404', // YlOrBr + palette: [ + '#ffffd4', + '#fee391', + '#fec44f', + '#fe9929', + '#d95f0e', + '#993404', + ], // YlOrBr }, opacity: 0.9, }, @@ -279,7 +300,14 @@ export const earthEngineLayers = () => [ params: { min: 0, max: 100, - palette: '#eff3ff,#c6dbef,#9ecae1,#6baed6,#3182bd,#08519c', // Blues + palette: [ + '#eff3ff', + '#c6dbef', + '#9ecae1', + '#6baed6', + '#3182bd', + '#08519c', + ], // Blues }, opacity: 0.9, }, @@ -309,8 +337,17 @@ export const earthEngineLayers = () => [ params: { min: 0, max: 40, - palette: - '#fff5f0,#fee0d2,#fcbba1,#fc9272,#fb6a4a,#ef3b2c,#cb181d,#a50f15,#67000d', // Reds + palette: [ + '#fff5f0', + '#fee0d2', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#ef3b2c', + '#cb181d', + '#a50f15', + '#67000d', + ], // Reds }, opacity: 0.9, }, @@ -450,7 +487,14 @@ export const earthEngineLayers = () => [ params: { min: 0, max: 10, - palette: '#fee5d9,#fcbba1,#fc9272,#fb6a4a,#de2d26,#a50f15', // Reds + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], // Reds }, opacity: 0.9, }, @@ -483,7 +527,14 @@ export const earthEngineLayers = () => [ params: { min: 0, max: 1000, - palette: '#fee5d9,#fcbba1,#fc9272,#fb6a4a,#de2d26,#a50f15', // Reds + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], // Reds }, methods: { multiply: [100], // Convert from people/hectare to people/km2 @@ -510,7 +561,15 @@ export const earthEngineLayers = () => [ params: { min: 0, max: 63, - palette: '#ffffd4,#fee391,#fec44f,#fe9929,#ec7014,#cc4c02,#8c2d04', // YlOrBr + palette: [ + '#ffffd4', + '#fee391', + '#fec44f', + '#fe9929', + '#ec7014', + '#cc4c02', + '#8c2d04', + ], // YlOrBr }, opacity: 0.9, }, diff --git a/src/loaders/earthEngineLoader.js b/src/loaders/earthEngineLoader.js index b72677a23..13d456e54 100644 --- a/src/loaders/earthEngineLoader.js +++ b/src/loaders/earthEngineLoader.js @@ -108,6 +108,11 @@ const earthEngineLoader = async (config) => { } } + // Backward compability for layers saved before 2.40 + if (typeof layerConfig.params?.palette === 'string') { + layerConfig.params.palette = layerConfig.params.palette.split(',') + } + dataset = getEarthEngineLayer(layerConfig.id) if (dataset) { @@ -168,15 +173,14 @@ const earthEngineLoader = async (config) => { } export const createLegend = ({ min, max, palette }) => { - const colors = palette.split(',') - const step = (max - min) / (colors.length - (min > 0 ? 2 : 1)) + const step = (max - min) / (palette.length - (min > 0 ? 2 : 1)) const precision = precisionRound(step, max) const valueFormat = numberPrecision(precision) let from = min let to = valueFormat(min + step) - return colors.map((color, index) => { + return palette.map((color, index) => { const item = { color } if (index === 0 && min > 0) { diff --git a/src/reducers/layerEdit.js b/src/reducers/layerEdit.js index f40823e43..148c763fa 100644 --- a/src/reducers/layerEdit.js +++ b/src/reducers/layerEdit.js @@ -318,7 +318,7 @@ const layerEdit = (state = null, action) => { newState = { ...state, colorScale: action.colorScale, - classes: action.colorScale.split(',').length, + classes: action.colorScale.length, } if (newState.styleDataItem) { diff --git a/src/util/__tests__/getMigratedMapConfig.spec.js b/src/util/__tests__/getMigratedMapConfig.spec.js index 09526c407..7b078a832 100644 --- a/src/util/__tests__/getMigratedMapConfig.spec.js +++ b/src/util/__tests__/getMigratedMapConfig.spec.js @@ -172,3 +172,40 @@ test('getMigratedMapConfig with old GIS app format and Boundary layer', () => { }) ) }) + +test('getMigratedMapConfig with colorScale converted to an array', () => { + const config = { + id: 'mapId', + name: 'map name', + basemap: { id: 'osmStreet' }, + mapViews: [ + { + layer: 'thematic', + name: 'Thematic layer', + colorScale: '#fee5d9,#fcbba1,#fc9272,#fb6a4a,#de2d26,#a50f15', + }, + ], + } + + expect(getMigratedMapConfig(config, defaultBasemapId)).toEqual( + expect.objectContaining({ + id: 'mapId', + name: 'map name', + basemap: { id: 'osmStreet' }, + mapViews: [ + { + layer: 'thematic', + name: 'Thematic layer', + colorScale: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], + }, + ], + }) + ) +}) diff --git a/src/util/colors.js b/src/util/colors.js index 37ad87c3d..f52e38a20 100644 --- a/src/util/colors.js +++ b/src/util/colors.js @@ -38,17 +38,15 @@ export const colorScales = [ ] // Returns a color brewer scale for a number of classes -export const getColorPalette = (scale, classes) => { - return colorbrewer[scale][classes].join(',') -} +export const getColorPalette = (scale, classes) => colorbrewer[scale][classes] // Returns color scale name for a palette -export const getColorScale = (palette) => { - const classes = palette.split(',').length - return colorScales.find( - (name) => colorbrewer[name][classes].join(',') === palette +// join(',') is used to compare two arrays of colors +export const getColorScale = (palette) => + colorScales.find( + (name) => + colorbrewer[name][palette.length].join(',') === palette.join(',') ) -} export const defaultColorScaleName = 'YlOrBr' export const defaultClasses = 5 diff --git a/src/util/favorites.js b/src/util/favorites.js index 2c6b1b231..9d8f0020c 100644 --- a/src/util/favorites.js +++ b/src/util/favorites.js @@ -202,6 +202,11 @@ const models2objects = (config) => { } } + // Color scale needs to be stored as a string in analytical object + if (Array.isArray(config.colorScale)) { + config.colorScale = config.colorScale.join(',') + } + return config } diff --git a/src/util/getMigratedMapConfig.js b/src/util/getMigratedMapConfig.js index 312544941..e970c0fbb 100644 --- a/src/util/getMigratedMapConfig.js +++ b/src/util/getMigratedMapConfig.js @@ -2,7 +2,7 @@ import { isString, isObject, sortBy } from 'lodash/fp' import { EXTERNAL_LAYER } from '../constants/layers.js' export const getMigratedMapConfig = (config, defaultBasemapId) => - renameBoundaryLayerToOrgUnitLayer( + upgradeMapViews( upgradeGisAppLayers(extractBasemap(config, defaultBasemapId)) ) @@ -79,15 +79,27 @@ const upgradeGisAppLayers = (config) => { } // Change layer name from boundary to orgUnit when loading an old map +// Change colorScale from string to array // TODO: Change in db with an upgrade script -const renameBoundaryLayerToOrgUnitLayer = (config) => ({ - ...config, - mapViews: config.mapViews.map((v) => - v.layer === 'boundary' - ? { - ...v, - layer: 'orgUnit', - } - : v - ), -}) +const upgradeMapViews = (config) => { + if ( + config.mapViews.find( + (view) => + view.layer === 'boundary' || typeof view.colorScale === 'string' + ) + ) { + return { + ...config, + mapViews: config.mapViews.map((view) => ({ + ...view, + layer: view.layer === 'boundary' ? 'orgUnit' : view.layer, + colorScale: + typeof view.colorScale === 'string' + ? view.colorScale.split(',') + : view.colorScale, + })), + } + } else { + return config + } +} diff --git a/src/util/legend.js b/src/util/legend.js index 9048f8572..fd1e49c33 100644 --- a/src/util/legend.js +++ b/src/util/legend.js @@ -73,11 +73,10 @@ export const getAutomaticLegendItems = ( colorScale = defaultColorScale ) => { const items = data.length ? getLegendItems(data, method, classes) : [] - const colors = colorScale.split(',') return items.map((item, index) => ({ ...item, - color: colors[index], + color: colorScale[index], })) } /* eslint-enable max-params */ From 3decb2b1fbe6d1d37fcdee6e425bc236e5e884af Mon Sep 17 00:00:00 2001 From: Bjorn Sandvik Date: Fri, 29 Sep 2023 17:10:26 +0200 Subject: [PATCH 03/25] chore: fixed period select refactor (#2989) Co-authored-by: Jen Jones Arnesen --- src/components/orgunits/OrgUnitData.js | 2 +- src/components/periods/PeriodSelect.js | 226 ++++++++--------- src/util/__tests__/periods.spec.js | 325 +++++++++++++++++++++++++ src/util/periods.js | 38 ++- 4 files changed, 469 insertions(+), 122 deletions(-) create mode 100644 src/util/__tests__/periods.spec.js diff --git a/src/components/orgunits/OrgUnitData.js b/src/components/orgunits/OrgUnitData.js index bce650e02..4108d34d1 100644 --- a/src/components/orgunits/OrgUnitData.js +++ b/src/components/orgunits/OrgUnitData.js @@ -23,7 +23,7 @@ const ORGUNIT_PROFILE_QUERY = { // Only YEARLY period type is supported in first version const periodType = 'YEARLY' const currentYear = String(new Date().getFullYear()) -const periods = getFixedPeriodsByType(periodType, currentYear) +const periods = getFixedPeriodsByType({ periodType, currentYear }) const defaultPeriod = filterFuturePeriods(periods)[0] || periods[0] /* diff --git a/src/components/periods/PeriodSelect.js b/src/components/periods/PeriodSelect.js index f020e3ce4..671387b20 100644 --- a/src/components/periods/PeriodSelect.js +++ b/src/components/periods/PeriodSelect.js @@ -7,7 +7,8 @@ import { } from '@dhis2/ui' import cx from 'classnames' import PropTypes from 'prop-types' -import React, { Component } from 'react' +import React, { useState, useMemo, useCallback, useEffect } from 'react' +import usePrevious from '../../hooks/usePrevious.js' import { getFixedPeriodsByType, filterFuturePeriods, @@ -16,124 +17,127 @@ import { getYear } from '../../util/time.js' import { SelectField } from '../core/index.js' import styles from './styles/PeriodSelect.module.css' -class PeriodSelect extends Component { - static propTypes = { - onChange: PropTypes.func.isRequired, - className: PropTypes.string, - errorText: PropTypes.string, - period: PropTypes.shape({ - id: PropTypes.string.isRequired, - startDate: PropTypes.string, - }), - periodType: PropTypes.string, - } - - state = { - year: null, - periods: null, - } - - componentDidMount() { - this.setPeriods() - } - - componentDidUpdate(prevProps, prevState) { - const { periodType, period, onChange } = this.props - const { year, periods } = this.state - - if (periodType !== prevProps.periodType) { - this.setPeriods() - } else if (periods && !period) { - onChange(filterFuturePeriods(periods)[0] || periods[0]) // Autoselect most recent period - } - - // Change period if year is changed (but keep period index) - if (period && prevState.periods && year !== prevState.year) { - const periodIndex = prevState.periods.findIndex( - (item) => item.id === period.id - ) - onChange(periods[periodIndex]) - } - } - - render() { - const { periodType, period, onChange, className, errorText } = - this.props - const { periods } = this.state - - if (!periods) { - return null +const PeriodSelect = ({ + onChange, + className, + errorText, + firstDate, + lastDate, + period, + periodType, +}) => { + const [year, setYear] = useState(getYear(period?.startDate || lastDate)) + const prevYear = usePrevious(year) + + // Set periods when periodType or year changes + /* eslint-disable react-hooks/exhaustive-deps */ + const periods = useMemo( + () => + periodType + ? getFixedPeriodsByType({ + periodType, + year, + firstDate, + lastDate, + }) + : [period], // saved map period (not included in depency array by design) + [periodType, year, firstDate, lastDate] + ) + /* eslint-enable react-hooks/exhaustive-deps */ + + const periodIndex = useMemo( + () => period && periods.findIndex((p) => p.id === period.id), + [period, periods] + ) + + const prevPeriodIndex = usePrevious(periodIndex) + + // Increment/decrement year + const changeYear = useCallback( + (change) => { + const newYear = year + change + + if ( + (!firstDate || newYear >= getYear(firstDate)) && + (!lastDate || newYear <= getYear(lastDate)) + ) { + setYear(newYear) + } + }, + [year, firstDate, lastDate] + ) + + // Autoselect most recent period + useEffect(() => { + if (!period && periods) { + onChange(filterFuturePeriods(periods)[0] || periods[0]) } + }, [period, periods, onChange]) - const value = - period && periods.some((p) => p.id === period.id) ? period.id : null - - return ( -
- - {periodType && ( -
- -
- )} -
- ) - } - - setPeriods() { - const { periodType, period } = this.props - const year = this.state.year || getYear(period && period.startDate) - let periods + // Keep the same period position when year changes + useEffect(() => { + if (year !== prevYear && prevPeriodIndex >= 0) { + const newPeriod = periods[prevPeriodIndex] - if (periodType) { - periods = getFixedPeriodsByType(periodType, year) - } else if (period) { - periods = [period] // If period is loaded in favorite + if (newPeriod) { + onChange(newPeriod) + } } + }, [year, prevYear, periods, prevPeriodIndex, onChange]) - this.setState({ periods, year }) + if (!periods) { + return null } - nextYear = () => { - this.changeYear(1) - } - - previousYear = () => { - this.changeYear(-1) - } - - changeYear = (change) => { - const { periodType } = this.props - const year = this.state.year + change + const value = + period && periods.some((p) => p.id === period.id) ? period.id : null + + return ( +
+ + {periodType && ( +
+ +
+ )} +
+ ) +} - this.setState({ - year, - periods: getFixedPeriodsByType(periodType, year), - }) - } +PeriodSelect.propTypes = { + onChange: PropTypes.func.isRequired, + className: PropTypes.string, + errorText: PropTypes.string, + firstDate: PropTypes.string, + lastDate: PropTypes.string, + period: PropTypes.shape({ + id: PropTypes.string.isRequired, + startDate: PropTypes.string, + }), + periodType: PropTypes.string, } export default PeriodSelect diff --git a/src/util/__tests__/periods.spec.js b/src/util/__tests__/periods.spec.js new file mode 100644 index 000000000..0069b2102 --- /dev/null +++ b/src/util/__tests__/periods.spec.js @@ -0,0 +1,325 @@ +import { getFixedPeriodsByType } from '../periods.js' + +describe('util/periods', () => { + test('getFixedPeriodsByType - RELATIVE', () => { + expect( + getFixedPeriodsByType({ periodType: 'RELATIVE', year: 2020 }) + ).toBe(null) + }) + + test('getFixedPeriodsByType - YEAR not provided', () => { + expect(getFixedPeriodsByType({ periodType: 'MONTHLY' })).toStrictEqual( + [] + ) + }) + + test('getFixedPeriodsByType - MONTHLY first and last date', () => { + expect( + getFixedPeriodsByType({ + periodType: 'MONTHLY', + year: 2020, + firstDate: '2020-04-01', + lastDate: '2020-08-30', + }) + ).toStrictEqual([ + { + endDate: '2020-07-31', + id: '202007', + iso: '202007', + name: 'July 2020', + startDate: '2020-07-01', + }, + { + endDate: '2020-06-30', + id: '202006', + iso: '202006', + name: 'June 2020', + startDate: '2020-06-01', + }, + { + endDate: '2020-05-31', + id: '202005', + iso: '202005', + name: 'May 2020', + startDate: '2020-05-01', + }, + { + endDate: '2020-04-30', + id: '202004', + iso: '202004', + name: 'April 2020', + startDate: '2020-04-01', + }, + ]) + }) + + test('getFixedPeriodsByType - YEARLY first and last date', () => { + expect( + getFixedPeriodsByType({ + periodType: 'YEARLY', + year: 2020, + firstDate: '2018-04-01', + lastDate: '2021-04-01', + }) + ).toStrictEqual([ + { + endDate: '2020-12-31', + id: '2020', + iso: '2020', + name: '2020', + startDate: '2020-01-01', + }, + { + endDate: '2019-12-31', + id: '2019', + iso: '2019', + name: '2019', + startDate: '2019-01-01', + }, + ]) + }) + + test('getFixedPeriodsByType - YEARLY first date', () => { + expect( + getFixedPeriodsByType({ + periodType: 'YEARLY', + year: 2020, + firstDate: '2020-04-01', + }) + ).toStrictEqual([]) + }) + + test('getFixedPeriodsByType - FYAPR 2020', () => { + expect( + getFixedPeriodsByType({ periodType: 'FYAPR', year: 2020 }) + ).toStrictEqual([ + { + endDate: '2021-03-31', + id: '2020April', + name: 'April 2020 - March 2021', + startDate: '2020-04-01', + }, + { + endDate: '2020-03-31', + id: '2019April', + name: 'April 2019 - March 2020', + startDate: '2019-04-01', + }, + { + endDate: '2019-03-31', + id: '2018April', + name: 'April 2018 - March 2019', + startDate: '2018-04-01', + }, + { + endDate: '2018-03-31', + id: '2017April', + name: 'April 2017 - March 2018', + startDate: '2017-04-01', + }, + { + endDate: '2017-03-31', + id: '2016April', + name: 'April 2016 - March 2017', + startDate: '2016-04-01', + }, + { + endDate: '2016-03-31', + id: '2015April', + name: 'April 2015 - March 2016', + startDate: '2015-04-01', + }, + { + endDate: '2015-03-31', + id: '2014April', + name: 'April 2014 - March 2015', + startDate: '2014-04-01', + }, + { + endDate: '2014-03-31', + id: '2013April', + name: 'April 2013 - March 2014', + startDate: '2013-04-01', + }, + { + endDate: '2013-03-31', + id: '2012April', + name: 'April 2012 - March 2013', + startDate: '2012-04-01', + }, + { + endDate: '2012-03-31', + id: '2011April', + name: 'April 2011 - March 2012', + startDate: '2011-04-01', + }, + ]) + }) + + test('getFixedPeriodsByType YEARLY 2020', () => { + expect( + getFixedPeriodsByType({ periodType: 'YEARLY', year: 2020 }) + ).toStrictEqual([ + { + endDate: '2020-12-31', + id: '2020', + iso: '2020', + name: '2020', + startDate: '2020-01-01', + }, + { + endDate: '2019-12-31', + id: '2019', + iso: '2019', + name: '2019', + startDate: '2019-01-01', + }, + { + endDate: '2018-12-31', + id: '2018', + iso: '2018', + name: '2018', + startDate: '2018-01-01', + }, + { + endDate: '2017-12-31', + id: '2017', + iso: '2017', + name: '2017', + startDate: '2017-01-01', + }, + { + endDate: '2016-12-31', + id: '2016', + iso: '2016', + name: '2016', + startDate: '2016-01-01', + }, + { + endDate: '2015-12-31', + id: '2015', + iso: '2015', + name: '2015', + startDate: '2015-01-01', + }, + { + endDate: '2014-12-31', + id: '2014', + iso: '2014', + name: '2014', + startDate: '2014-01-01', + }, + { + endDate: '2013-12-31', + id: '2013', + iso: '2013', + name: '2013', + startDate: '2013-01-01', + }, + { + endDate: '2012-12-31', + id: '2012', + iso: '2012', + name: '2012', + startDate: '2012-01-01', + }, + { + endDate: '2011-12-31', + id: '2011', + iso: '2011', + name: '2011', + startDate: '2011-01-01', + }, + ]) + }) + test('getFixedPeriodsByType - MONTHLY 2020', () => { + expect( + getFixedPeriodsByType({ periodType: 'MONTHLY', year: 2020 }) + ).toStrictEqual([ + { + endDate: '2020-12-31', + id: '202012', + iso: '202012', + name: 'December 2020', + startDate: '2020-12-01', + }, + { + endDate: '2020-11-30', + id: '202011', + iso: '202011', + name: 'November 2020', + startDate: '2020-11-01', + }, + { + endDate: '2020-10-31', + id: '202010', + iso: '202010', + name: 'October 2020', + startDate: '2020-10-01', + }, + { + endDate: '2020-09-30', + id: '202009', + iso: '202009', + name: 'September 2020', + startDate: '2020-09-01', + }, + { + endDate: '2020-08-31', + id: '202008', + iso: '202008', + name: 'August 2020', + startDate: '2020-08-01', + }, + { + endDate: '2020-07-31', + id: '202007', + iso: '202007', + name: 'July 2020', + startDate: '2020-07-01', + }, + { + endDate: '2020-06-30', + id: '202006', + iso: '202006', + name: 'June 2020', + startDate: '2020-06-01', + }, + { + endDate: '2020-05-31', + id: '202005', + iso: '202005', + name: 'May 2020', + startDate: '2020-05-01', + }, + { + endDate: '2020-04-30', + id: '202004', + iso: '202004', + name: 'April 2020', + startDate: '2020-04-01', + }, + { + endDate: '2020-03-31', + id: '202003', + iso: '202003', + name: 'March 2020', + startDate: '2020-03-01', + }, + { + endDate: '2020-02-29', + id: '202002', + iso: '202002', + name: 'February 2020', + startDate: '2020-02-01', + }, + { + endDate: '2020-01-31', + id: '202001', + iso: '202001', + name: 'January 2020', + startDate: '2020-01-01', + }, + ]) + }) +}) diff --git a/src/util/periods.js b/src/util/periods.js index 2fdd0f826..cfc89b3e8 100644 --- a/src/util/periods.js +++ b/src/util/periods.js @@ -6,25 +6,43 @@ import { periodTypes, periodGroups } from '../constants/periods.js' const getYearOffsetFromNow = (year) => year - new Date(Date.now()).getFullYear() +const filterPeriods = (periods, firstDate, lastDate) => + periods.filter( + (p) => + (!firstDate || p.startDate >= firstDate) && + (!lastDate || p.endDate <= lastDate) + ) + export const getPeriodTypes = (includeRelativePeriods, hiddenPeriods = []) => periodTypes(includeRelativePeriods).filter( ({ group }) => !hiddenPeriods.includes(group) ) -export const getFixedPeriodsByType = (periodType, year) => { +export const getFixedPeriodsByType = ({ + periodType, + year, + firstDate, + lastDate, +}) => { const period = getFixedPeriodsOptionsById(periodType) const forceDescendingForYearTypes = !!periodType.match(/^FY|YEARLY/) const offset = getYearOffsetFromNow(year) - const periods = period?.getPeriods({ offset, reversePeriods: true }) || null - if (periods && forceDescendingForYearTypes) { - // TODO: the reverse() is a workaround for a bug in the analytics - // getPeriods function that no longer correctly reverses the order - // for YEARLY and FY period types - return periods.reverse() + let periods = period?.getPeriods({ offset, reversePeriods: true }) + + if (!periods) { + return null } - return periods + + if (firstDate || lastDate) { + periods = filterPeriods(periods, firstDate, lastDate) + } + + // TODO: the reverse() is a workaround for a bug in the analytics + // getPeriods function that no longer correctly reverses the order + // for YEARLY and FY period types + return forceDescendingForYearTypes ? periods.reverse() : periods } export const getRelativePeriods = (hiddenPeriods = []) => @@ -48,7 +66,7 @@ export const getPeriodNames = () => ({ }, {}), }) -export const filterFuturePeriods = (periods) => { - const now = new Date(Date.now()) +export const filterFuturePeriods = (periods, date) => { + const now = new Date(date || Date.now()) return periods.filter(({ startDate }) => new Date(startDate) < now) } From e7e3c47d15f920c56634a4685e31853fa6769bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Sandvik?= Date: Tue, 12 Dec 2023 17:42:10 +0100 Subject: [PATCH 04/25] fix: i18n merge conflict --- i18n/en.pot | 5 ----- 1 file changed, 5 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index e799c8ea8..fa68b662c 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,13 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -<<<<<<< HEAD -"POT-Creation-Date: 2023-09-27T14:55:16.411Z\n" -"PO-Revision-Date: 2023-09-27T14:55:16.411Z\n" -======= "POT-Creation-Date: 2023-10-23T12:55:26.288Z\n" "PO-Revision-Date: 2023-10-23T12:55:26.288Z\n" ->>>>>>> dev msgid "Untitled map, {{date}}" msgstr "Untitled map, {{date}}" From 683973ca029103e3410c66d4dcefed8a6aac7a28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Sandvik?= Date: Tue, 19 Mar 2024 19:31:09 +0100 Subject: [PATCH 05/25] chore: revert i18n/en.pot --- i18n/en.pot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index 209871844..d982a426a 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -857,6 +857,9 @@ msgstr "Previous year" msgid "Next year" msgstr "Next year" +msgid "Relative" +msgstr "Relative" + msgid "Period type" msgstr "Period type" @@ -1248,9 +1251,6 @@ msgstr "Equal counts" msgid "Symbol" msgstr "Symbol" -msgid "Relative" -msgstr "Relative" - msgid "Daily" msgstr "Daily" @@ -1421,4 +1421,4 @@ msgid "End date is invalid" msgstr "End date is invalid" msgid "End date cannot be earlier than start date" -msgstr "End date cannot be earlier than start date" +msgstr "End date cannot be earlier than start date" \ No newline at end of file From 1b98395e9393ea9987ae3c76d1a118458b7639f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Sandvik?= Date: Tue, 19 Mar 2024 19:31:50 +0100 Subject: [PATCH 06/25] chore: code cleaning --- i18n/en.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/en.pot b/i18n/en.pot index d982a426a..f94749c03 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -1421,4 +1421,4 @@ msgid "End date is invalid" msgstr "End date is invalid" msgid "End date cannot be earlier than start date" -msgstr "End date cannot be earlier than start date" \ No newline at end of file +msgstr "End date cannot be earlier than start date" From 5ac7150626c418a90aaa7b6526e97a92b5ee1207 Mon Sep 17 00:00:00 2001 From: Bjorn Sandvik Date: Wed, 8 May 2024 15:53:25 +0200 Subject: [PATCH 07/25] feat: new precipitation and temperature layers + refactor (#3079) --- i18n/en.pot | 290 +++++---- src/actions/layerEdit.js | 14 +- src/components/core/NumberField.js | 2 +- .../edit/earthEngine/EarthEngineDialog.js | 135 ++-- .../edit/earthEngine/LegendPreview.js | 9 +- .../edit/earthEngine/PeriodSelect.js | 92 ++- .../edit/earthEngine/StyleSelect.js | 31 +- src/components/edit/earthEngine/StyleTab.js | 53 +- .../layers/earthEngine/EarthEngineLayer.js | 10 +- .../layers/earthEngine/EarthEnginePopup.js | 10 +- src/components/periods/PeriodTypeSelect.js | 5 +- src/constants/actionTypes.js | 4 +- src/constants/earthEngine.js | 579 ------------------ .../earthEngineLayers/buildings_GOOGLE.js | 30 + .../earthEngineLayers/elevation_SRTM.js | 33 + src/constants/earthEngineLayers/index.js | 32 + .../earthEngineLayers/landcover_MCD12Q1.js | 114 ++++ .../legacy/nighttime_DMSP-OLS.js | 44 ++ .../legacy/population_WorldPop.js | 46 ++ .../legacy/population_WorldPop_100m.js | 40 ++ .../legacy/precipitation_pentad_CHIRPS.js | 44 ++ .../legacy/temperature_MOD11A2v061.js | 61 ++ .../population_age_sex_WorldPop.js | 189 ++++++ .../population_total_WorldPop.js | 41 ++ .../precipitation_monthly_ERA5-Land.js | 51 ++ .../temperature_monthly_ERA5-Land.js | 55 ++ src/constants/periods.js | 4 + src/loaders/earthEngineLoader.js | 77 ++- src/reducers/layerEdit.js | 12 +- src/util/__tests__/earthEngine.spec.js | 57 ++ src/util/__tests__/favorites.spec.js | 27 +- src/util/earthEngine.js | 96 +-- src/util/favorites.js | 14 +- src/util/getDefaultLayerTypes.js | 4 +- 34 files changed, 1359 insertions(+), 946 deletions(-) delete mode 100644 src/constants/earthEngine.js create mode 100644 src/constants/earthEngineLayers/buildings_GOOGLE.js create mode 100644 src/constants/earthEngineLayers/elevation_SRTM.js create mode 100644 src/constants/earthEngineLayers/index.js create mode 100644 src/constants/earthEngineLayers/landcover_MCD12Q1.js create mode 100644 src/constants/earthEngineLayers/legacy/nighttime_DMSP-OLS.js create mode 100644 src/constants/earthEngineLayers/legacy/population_WorldPop.js create mode 100644 src/constants/earthEngineLayers/legacy/population_WorldPop_100m.js create mode 100644 src/constants/earthEngineLayers/legacy/precipitation_pentad_CHIRPS.js create mode 100644 src/constants/earthEngineLayers/legacy/temperature_MOD11A2v061.js create mode 100644 src/constants/earthEngineLayers/population_age_sex_WorldPop.js create mode 100644 src/constants/earthEngineLayers/population_total_WorldPop.js create mode 100644 src/constants/earthEngineLayers/precipitation_monthly_ERA5-Land.js create mode 100644 src/constants/earthEngineLayers/temperature_monthly_ERA5-Land.js create mode 100644 src/util/__tests__/earthEngine.spec.js diff --git a/i18n/en.pot b/i18n/en.pot index f94749c03..44634826f 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-03-15T10:46:33.764Z\n" -"PO-Revision-Date: 2024-03-15T10:46:33.764Z\n" +"POT-Creation-Date: 2024-03-19T18:42:35.202Z\n" +"PO-Revision-Date: 2024-03-19T18:42:35.202Z\n" msgid "Untitled map, {{date}}" msgstr "Untitled map, {{date}}" @@ -347,9 +347,6 @@ msgstr "Max should be greater than min" msgid "Valid steps are {{minSteps}} to {{maxSteps}}" msgstr "Valid steps are {{minSteps}} to {{maxSteps}}" -msgid "Unit: {{ unit }}" -msgstr "Unit: {{ unit }}" - msgid "Min" msgstr "Min" @@ -359,6 +356,9 @@ msgstr "Max" msgid "Steps" msgstr "Steps" +msgid "Facility buffer" +msgstr "Facility buffer" + msgid "Org Units" msgstr "Org Units" @@ -857,9 +857,6 @@ msgstr "Previous year" msgid "Next year" msgstr "Next year" -msgid "Relative" -msgstr "Relative" - msgid "Period type" msgstr "Period type" @@ -962,15 +959,148 @@ msgstr "Bing Aerial" msgid "Bing Aerial Labels" msgstr "Bing Aerial Labels" +msgid "Building footprints" +msgstr "Building footprints" + +msgid "" +"The outlines of buildings derived from high-resolution satellite imagery. " +"Only for the continent of Africa." +msgstr "" +"The outlines of buildings derived from high-resolution satellite imagery. " +"Only for the continent of Africa." + +msgid "Building counts are only available for smaller organisation unit areas." +msgstr "Building counts are only available for smaller organisation unit areas." + +msgid "" +"Select a smaller area or single organization unit to see the count of " +"buildings." +msgstr "" +"Select a smaller area or single organization unit to see the count of " +"buildings." + +msgid "Number of buildings" +msgstr "Number of buildings" + +msgid "Elevation" +msgstr "Elevation" + +msgid "meters" +msgstr "meters" + +msgid "Elevation above sea-level." +msgstr "Elevation above sea-level." + +msgid "Landcover" +msgstr "Landcover" + +msgid "Distinct landcover types collected from satellites." +msgstr "Distinct landcover types collected from satellites." + +msgid "Evergreen Needleleaf forest" +msgstr "Evergreen Needleleaf forest" + +msgid "Evergreen Broadleaf forest" +msgstr "Evergreen Broadleaf forest" + +msgid "Deciduous Needleleaf forest" +msgstr "Deciduous Needleleaf forest" + +msgid "Deciduous Broadleaf forest" +msgstr "Deciduous Broadleaf forest" + +msgid "Mixed forest" +msgstr "Mixed forest" + +msgid "Closed shrublands" +msgstr "Closed shrublands" + +msgid "Open shrublands" +msgstr "Open shrublands" + +msgid "Woody savannas" +msgstr "Woody savannas" + +msgid "Savannas" +msgstr "Savannas" + +msgid "Grasslands" +msgstr "Grasslands" + +msgid "Permanent wetlands" +msgstr "Permanent wetlands" + +msgid "Croplands" +msgstr "Croplands" + +msgid "Urban and built-up" +msgstr "Urban and built-up" + +msgid "Cropland/Natural vegetation mosaic" +msgstr "Cropland/Natural vegetation mosaic" + +msgid "Snow and ice" +msgstr "Snow and ice" + +msgid "Barren or sparsely vegetated" +msgstr "Barren or sparsely vegetated" + +msgid "Water" +msgstr "Water" + +msgid "Nighttime lights" +msgstr "Nighttime lights" + +msgid "light intensity" +msgstr "light intensity" + +msgid "" +"Light intensity from cities, towns, and other sites with persistent " +"lighting, including gas flares." +msgstr "" +"Light intensity from cities, towns, and other sites with persistent " +"lighting, including gas flares." + msgid "Population" msgstr "Population" -msgid "people per hectare" -msgstr "people per hectare" +msgid "people per km²" +msgstr "people per km²" msgid "Estimated number of people living in an area." msgstr "Estimated number of people living in an area." +msgid "people per hectare" +msgstr "people per hectare" + +msgid "Precipitation" +msgstr "Precipitation" + +msgid "millimeter" +msgstr "millimeter" + +msgid "" +"Precipitation collected from satellite and weather stations on the ground. " +"The values are in millimeters within 5 days periods. Updated monthly, " +"during the 3rd week of the following month." +msgstr "" +"Precipitation collected from satellite and weather stations on the ground. " +"The values are in millimeters within 5 days periods. Updated monthly, " +"during the 3rd week of the following month." + +msgid "Temperature MODIS" +msgstr "Temperature MODIS" + +msgid "°C during daytime" +msgstr "°C during daytime" + +msgid "" +"Land surface temperatures collected from satellite. Blank spots will appear " +"in areas with a persistent cloud cover." +msgstr "" +"Land surface temperatures collected from satellite. Blank spots will appear " +"in areas with a persistent cloud cover." + msgid "Population age groups" msgstr "Population age groups" @@ -1085,138 +1215,25 @@ msgstr "Female 75 - 79 years" msgid "Female 80 years and above" msgstr "Female 80 years and above" -msgid "Building footprints" -msgstr "Building footprints" - -msgid "Number of buildings" -msgstr "Number of buildings" +msgid "Precipitation monthly" +msgstr "Precipitation monthly" msgid "" -"The outlines of buildings derived from high-resolution satellite imagery. " -"Only for the continent of Africa." +"Accumulated liquid and frozen water, including rain and snow, that falls to " +"the surface. Combines model data with observations from across the world." msgstr "" -"The outlines of buildings derived from high-resolution satellite imagery. " -"Only for the continent of Africa." +"Accumulated liquid and frozen water, including rain and snow, that falls to " +"the surface. Combines model data with observations from across the world." -msgid "Building counts are only available for smaller organisation unit areas." -msgstr "Building counts are only available for smaller organisation unit areas." +msgid "Temperature monthly" +msgstr "Temperature monthly" msgid "" -"Select a smaller area or single organization unit to see the count of " -"buildings." +"Temperature at 2m above the surface. Combines model data with observations " +"from across the world." msgstr "" -"Select a smaller area or single organization unit to see the count of " -"buildings." - -msgid "Elevation" -msgstr "Elevation" - -msgid "meters" -msgstr "meters" - -msgid "Elevation above sea-level." -msgstr "Elevation above sea-level." - -msgid "Precipitation" -msgstr "Precipitation" - -msgid "millimeter" -msgstr "millimeter" - -msgid "" -"Precipitation collected from satellite and weather stations on the ground. " -"The values are in millimeters within 5 days periods. Updated monthly, " -"during the 3rd week of the following month." -msgstr "" -"Precipitation collected from satellite and weather stations on the ground. " -"The values are in millimeters within 5 days periods. Updated monthly, " -"during the 3rd week of the following month." - -msgid "Temperature" -msgstr "Temperature" - -msgid "°C during daytime" -msgstr "°C during daytime" - -msgid "" -"Land surface temperatures collected from satellite. Blank spots will appear " -"in areas with a persistent cloud cover." -msgstr "" -"Land surface temperatures collected from satellite. Blank spots will appear " -"in areas with a persistent cloud cover." - -msgid "Landcover" -msgstr "Landcover" - -msgid "Distinct landcover types collected from satellites." -msgstr "Distinct landcover types collected from satellites." - -msgid "Evergreen Needleleaf forest" -msgstr "Evergreen Needleleaf forest" - -msgid "Evergreen Broadleaf forest" -msgstr "Evergreen Broadleaf forest" - -msgid "Deciduous Needleleaf forest" -msgstr "Deciduous Needleleaf forest" - -msgid "Deciduous Broadleaf forest" -msgstr "Deciduous Broadleaf forest" - -msgid "Mixed forest" -msgstr "Mixed forest" - -msgid "Closed shrublands" -msgstr "Closed shrublands" - -msgid "Open shrublands" -msgstr "Open shrublands" - -msgid "Woody savannas" -msgstr "Woody savannas" - -msgid "Savannas" -msgstr "Savannas" - -msgid "Grasslands" -msgstr "Grasslands" - -msgid "Permanent wetlands" -msgstr "Permanent wetlands" - -msgid "Croplands" -msgstr "Croplands" - -msgid "Urban and built-up" -msgstr "Urban and built-up" - -msgid "Cropland/Natural vegetation mosaic" -msgstr "Cropland/Natural vegetation mosaic" - -msgid "Snow and ice" -msgstr "Snow and ice" - -msgid "Barren or sparsely vegetated" -msgstr "Barren or sparsely vegetated" - -msgid "Water" -msgstr "Water" - -msgid "people per km²" -msgstr "people per km²" - -msgid "Nighttime lights" -msgstr "Nighttime lights" - -msgid "light intensity" -msgstr "light intensity" - -msgid "" -"Light intensity from cities, towns, and other sites with persistent " -"lighting, including gas flares." -msgstr "" -"Light intensity from cities, towns, and other sites with persistent " -"lighting, including gas flares." +"Temperature at 2m above the surface. Combines model data with observations " +"from across the world." msgid "All" msgstr "All" @@ -1251,6 +1268,9 @@ msgstr "Equal counts" msgid "Symbol" msgstr "Symbol" +msgid "Relative" +msgstr "Relative" + msgid "Daily" msgstr "Daily" diff --git a/src/actions/layerEdit.js b/src/actions/layerEdit.js index eb6b4381a..b810d7895 100644 --- a/src/actions/layerEdit.js +++ b/src/actions/layerEdit.js @@ -234,10 +234,10 @@ export const setOrgUnitMode = (mode) => ({ payload: mode, }) -// Set layer params (EE) -export const setParams = (params) => ({ - type: types.LAYER_EDIT_PARAMS_SET, - payload: params, +// Set layer style (EE) +export const setStyle = (payload) => ({ + type: types.LAYER_EDIT_STYLE_SET, + payload, }) // Set collection filter (EE) @@ -359,6 +359,12 @@ export const setNoDataColor = (color) => ({ payload: color, }) +// Set period for EE layer +export const setEarthEnginePeriod = (payload) => ({ + type: types.LAYER_EDIT_EARTH_ENGINE_PERIOD_SET, + payload, +}) + // Set feature style export const setFeatureStyle = (payload) => ({ type: types.LAYER_EDIT_FEATURE_STYLE_SET, diff --git a/src/components/core/NumberField.js b/src/components/core/NumberField.js index 1c44e87be..986592bf8 100644 --- a/src/components/core/NumberField.js +++ b/src/components/core/NumberField.js @@ -27,7 +27,7 @@ const NumberField = ({ label={label} value={Number.isNaN(value) ? '' : String(value)} disabled={disabled} - onChange={({ value }) => onChange(value)} + onChange={({ value }) => onChange(Number(value))} helpText={helpText} inputWidth={inputWidth} /> diff --git a/src/components/edit/earthEngine/EarthEngineDialog.js b/src/components/edit/earthEngine/EarthEngineDialog.js index 37998b45f..fbbe54c87 100644 --- a/src/components/edit/earthEngine/EarthEngineDialog.js +++ b/src/components/edit/earthEngine/EarthEngineDialog.js @@ -1,24 +1,18 @@ import i18n from '@dhis2/d2-i18n' import { NoticeBox } from '@dhis2/ui' import PropTypes from 'prop-types' -import React, { useState, useEffect, useCallback } from 'react' +import React, { useState, useEffect } from 'react' import { connect } from 'react-redux' import { setOrgUnits, - setFilter, + setEarthEnginePeriod, setBufferRadius, } from '../../../actions/layerEdit.js' -import { getEarthEngineLayer } from '../../../constants/earthEngine.js' import { DEFAULT_ORG_UNIT_LEVEL, EE_BUFFER, NONE, } from '../../../constants/layers.js' -import { - getPeriodFromFilter, - getPeriods, - defaultFilters, -} from '../../../util/earthEngine.js' import { Help, Tab, Tabs } from '../../core/index.js' import OrgUnitSelect from '../../orgunits/OrgUnitSelect.js' import styles from '../styles/LayerDialog.module.css' @@ -29,84 +23,42 @@ import StyleTab from './StyleTab.js' const EarthEngineDialog = (props) => { const [tab, setTab] = useState('data') - const [periods, setPeriods] = useState() const [error, setError] = useState() const { - layerId, - datasetId, - band, - rows, - params, - filter, + aggregations, areaRadius, + band, + bands, + datasetId, + defaultAggregations, + description, + filters, + maskOperator, + notice, + orgUnitField, orgUnits, + rows, setOrgUnits, - orgUnitField, - setFilter, + source, + sourceUrl, + style, + period, + periodType, setBufferRadius, + setEarthEnginePeriod, + unit, validateLayer, onLayerValidation, } = props - const dataset = getEarthEngineLayer(layerId) - - const { - description, - notice, - periodType, - bands, - filters = defaultFilters, - unit, - source, - sourceUrl, - aggregations, - } = dataset - - const period = getPeriodFromFilter(filter) - - const setPeriod = useCallback( - (period) => setFilter(period ? filters(period) : null), - [filters, setFilter] - ) - const noBandSelected = Array.isArray(bands) && (!band || !band.length) + const hasAggregations = !!(aggregations || defaultAggregations) const hasMultipleAggregations = !aggregations || aggregations.length > 1 const hasOrgUnitField = !!orgUnitField && orgUnitField !== NONE - // Load all available periods - useEffect(() => { - let isCancelled = false - - if (periodType) { - getPeriods(datasetId, periodType) - .then((periods) => { - if (!isCancelled) { - setPeriods(periods) - } - }) - .catch((error) => - setError({ - type: 'engine', - message: error.message, - }) - ) - } - - return () => (isCancelled = true) - }, [datasetId, periodType]) - - // Set most recent period by default - useEffect(() => { - if (filter === undefined) { - if (Array.isArray(periods) && periods.length) { - setPeriod(periods[0]) - } - } - }, [periods, filter, setPeriod]) - // Set default org unit level useEffect(() => { if (!rows) { @@ -205,7 +157,7 @@ const EarthEngineDialog = (props) => { } /> )} - + {hasAggregations && } {unit && (
{i18n.t('Unit')}: {unit} @@ -225,11 +177,12 @@ const EarthEngineDialog = (props) => { )} {tab === 'period' && ( { {tab === 'style' && ( )} @@ -251,29 +205,46 @@ const EarthEngineDialog = (props) => { EarthEngineDialog.propTypes = { datasetId: PropTypes.string.isRequired, - layerId: PropTypes.string.isRequired, setBufferRadius: PropTypes.func.isRequired, - setFilter: PropTypes.func.isRequired, + setEarthEnginePeriod: PropTypes.func.isRequired, setOrgUnits: PropTypes.func.isRequired, validateLayer: PropTypes.bool.isRequired, onLayerValidation: PropTypes.func.isRequired, + aggregations: PropTypes.array, areaRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), band: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), - filter: PropTypes.array, + bands: PropTypes.array, + defaultAggregations: PropTypes.oneOfType([ + PropTypes.array, + PropTypes.string, + ]), + description: PropTypes.string, + filters: PropTypes.array, legend: PropTypes.object, + maskOperator: PropTypes.string, + notice: PropTypes.string, orgUnitField: PropTypes.string, orgUnits: PropTypes.object, - params: PropTypes.shape({ - max: PropTypes.number.isRequired, - min: PropTypes.number.isRequired, - palette: PropTypes.array.isRequired, - }), + period: PropTypes.object, + periodType: PropTypes.string, + precision: PropTypes.number, rows: PropTypes.array, + source: PropTypes.string, + sourceUrl: PropTypes.string, + style: PropTypes.oneOfType([ + PropTypes.array, + PropTypes.shape({ + max: PropTypes.number, + min: PropTypes.number, + palette: PropTypes.array, + }), + ]), + unit: PropTypes.string, } export default connect( null, - { setOrgUnits, setFilter, setBufferRadius }, + { setOrgUnits, setEarthEnginePeriod, setBufferRadius }, null, { forwardRef: true, diff --git a/src/components/edit/earthEngine/LegendPreview.js b/src/components/edit/earthEngine/LegendPreview.js index 6cfdf387c..3ec5d7521 100644 --- a/src/components/edit/earthEngine/LegendPreview.js +++ b/src/components/edit/earthEngine/LegendPreview.js @@ -5,11 +5,11 @@ import { createLegend } from '../../../loaders/earthEngineLoader.js' import LegendItem from '../../legend/LegendItem.js' import styles from '../styles/LayerDialog.module.css' -const paramsAreValid = ({ min, max }) => +const styleIsValid = ({ min, max }) => !Number.isNaN(min) && !Number.isNaN(max) && max > min -const LegendPreview = ({ params }) => { - const legend = paramsAreValid(params) && createLegend(params) +const LegendPreview = ({ style, showBelowMin }) => { + const legend = styleIsValid(style) && createLegend(style, showBelowMin) return legend ? (
@@ -28,7 +28,8 @@ const LegendPreview = ({ params }) => { } LegendPreview.propTypes = { - params: PropTypes.shape({ + showBelowMin: PropTypes.bool, + style: PropTypes.shape({ max: PropTypes.number.isRequired, min: PropTypes.number.isRequired, palette: PropTypes.array.isRequired, diff --git a/src/components/edit/earthEngine/PeriodSelect.js b/src/components/edit/earthEngine/PeriodSelect.js index 63b3efc1a..e9ed33dad 100644 --- a/src/components/edit/earthEngine/PeriodSelect.js +++ b/src/components/edit/earthEngine/PeriodSelect.js @@ -2,20 +2,25 @@ import i18n from '@dhis2/d2-i18n' import { CircularLoader } from '@dhis2/ui' import PropTypes from 'prop-types' import React, { useState, useMemo, useCallback, useEffect } from 'react' +import { BY_YEAR, EE_MONTHLY } from '../../../constants/periods.js' +import { getPeriods } from '../../../util/earthEngine.js' import { SelectField } from '../../core/index.js' import styles from './styles/PeriodSelect.module.css' -// http://localhost:8080/api/periodTypes.json const EarthEnginePeriodSelect = ({ periodType, period, - periods, + datasetId, + filters, onChange, + onError, errorText, className, }) => { + const [periods, setPeriods] = useState() + const [yearPeriods, setYearPeriods] = useState() const [year, setYear] = useState() - const byYear = periodType === 'Custom' + const byYear = periodType === BY_YEAR || periodType === EE_MONTHLY const years = useMemo( () => @@ -28,29 +33,65 @@ const EarthEnginePeriodSelect = ({ [byYear, periods] ) - const byYearPeriods = useMemo( - () => - byYear && year && periods - ? periods.filter((p) => p.year === year) - : null, - [byYear, year, periods] - ) + const onYearChange = useCallback(({ id }) => { + setYear(id) + }, []) - const onYearChange = useCallback( - ({ id }) => { - onChange(null) - setYear(id) - }, - [onChange] - ) + useEffect(() => { + let isCancelled = false + if (periodType) { + getPeriods(datasetId, periodType, filters) + .then((periods) => { + if (!isCancelled) { + setPeriods(periods) + } + }) + .catch((error) => + onError({ + type: 'engine', + message: error.message, + }) + ) + } + + return () => (isCancelled = true) + }, [datasetId, periodType, filters, onError]) + + // Set year from period useEffect(() => { - if (byYear && period) { + if (!year && byYear && period) { setYear(period.year) } - }, [byYear, period]) + }, [year, byYear, period]) + + // Set most recent period by default + useEffect(() => { + if (!period && Array.isArray(periods) && periods.length) { + onChange(periods[0]) + } + }, [period, periods, onChange]) + + // Set avaiable periods for one year + useEffect(() => { + if (byYear && year && periods) { + setYearPeriods(periods.filter((p) => p.year === year)) + } + }, [year, byYear, periods]) + + // If year is changed, set most recent period for one year + useEffect(() => { + if ( + byYear && + period && + yearPeriods && + !yearPeriods.find(({ id }) => id === period.id) + ) { + onChange(yearPeriods[0]) + } + }, [byYear, period, yearPeriods, onChange]) - const items = byYear ? byYearPeriods : periods + const items = yearPeriods || periods return items ? (
@@ -67,7 +108,12 @@ const EarthEnginePeriodSelect = ({ label={i18n.t('Period')} loading={!periods} items={items} - value={items && period && period.id} + value={ + items && + period && + items.find(({ id }) => id === period.id) && + period.id + } onChange={onChange} helpText={i18n.t( 'Available periods are set by the source data' @@ -85,12 +131,14 @@ const EarthEnginePeriodSelect = ({ } EarthEnginePeriodSelect.propTypes = { + datasetId: PropTypes.string.isRequired, periodType: PropTypes.string.isRequired, onChange: PropTypes.func.isRequired, + onError: PropTypes.func.isRequired, className: PropTypes.string, errorText: PropTypes.string, + filters: PropTypes.array, period: PropTypes.object, - periods: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), } export default EarthEnginePeriodSelect diff --git a/src/components/edit/earthEngine/StyleSelect.js b/src/components/edit/earthEngine/StyleSelect.js index 310e49df4..69df9617f 100644 --- a/src/components/edit/earthEngine/StyleSelect.js +++ b/src/components/edit/earthEngine/StyleSelect.js @@ -2,7 +2,7 @@ import i18n from '@dhis2/d2-i18n' import PropTypes from 'prop-types' import React, { useState, useCallback } from 'react' import { connect } from 'react-redux' -import { setParams } from '../../../actions/layerEdit.js' +import { setStyle } from '../../../actions/layerEdit.js' import { getColorScale, getColorPalette } from '../../../util/colors.js' import { NumberField, ColorScaleSelect } from '../../core/index.js' import styles from '../styles/LayerDialog.module.css' @@ -10,8 +10,8 @@ import styles from '../styles/LayerDialog.module.css' const minSteps = 3 const maxSteps = 9 -const StyleSelect = ({ unit, params, setParams }) => { - const { min, max, palette } = params +const StyleSelect = ({ unit, style, setStyle }) => { + const { min, max, palette } = style const [steps, setSteps] = useState(palette.length) const onStepsChange = useCallback( @@ -21,13 +21,13 @@ const StyleSelect = ({ unit, params, setParams }) => { const newPalette = getColorPalette(scale, steps) if (newPalette) { - setParams({ palette: newPalette }) + setStyle({ palette: newPalette }) } } setSteps(steps) }, - [palette, setParams] + [palette, setStyle] ) let warningText @@ -48,22 +48,19 @@ const StyleSelect = ({ unit, params, setParams }) => { return (

- {i18n.t('Unit: {{ unit }}', { - unit, - nsSeparator: '|', // https://github.com/i18next/i18next/issues/361 - })} + {i18n.t('Unit')}: {unit}

setParams({ min: parseInt(min) })} + onChange={(min) => setStyle({ min })} className={styles.flexInnerColumn} /> setParams({ max: parseInt(max) })} + onChange={(max) => setStyle({ max })} className={styles.flexInnerColumn} /> { min={minSteps} max={maxSteps} onChange={onStepsChange} - className={styles.flexInnerColumn} + className={styles.stepField} /> {warningText && (
{warningText}
)}
setParams({ palette })} + palette={style.palette} + onChange={(palette) => setStyle({ palette })} width={260} />
@@ -90,9 +87,9 @@ const StyleSelect = ({ unit, params, setParams }) => { } StyleSelect.propTypes = { - setParams: PropTypes.func.isRequired, + setStyle: PropTypes.func.isRequired, unit: PropTypes.string.isRequired, - params: PropTypes.shape({ + style: PropTypes.shape({ max: PropTypes.number.isRequired, min: PropTypes.number.isRequired, palette: PropTypes.array.isRequired, @@ -100,5 +97,5 @@ StyleSelect.propTypes = { } export default connect(null, { - setParams, + setStyle, })(StyleSelect) diff --git a/src/components/edit/earthEngine/StyleTab.js b/src/components/edit/earthEngine/StyleTab.js index b48328b6d..cdf8c72c0 100644 --- a/src/components/edit/earthEngine/StyleTab.js +++ b/src/components/edit/earthEngine/StyleTab.js @@ -1,3 +1,4 @@ +import i18n from '@dhis2/d2-i18n' import PropTypes from 'prop-types' import React from 'react' import { EE_BUFFER } from '../../../constants/layers.js' @@ -6,27 +7,45 @@ import styles from '../styles/LayerDialog.module.css' import LegendPreview from './LegendPreview.js' import StyleSelect from './StyleSelect.js' -const StyleTab = ({ unit, params, hasOrgUnitField }) => ( -
-
- {params && } - +const StyleTab = ({ unit, style, showBelowMin, hasOrgUnitField }) => { + const { min, max, palette } = style + const isClassStyle = + min !== undefined && + max !== undefined && + palette !== undefined && + palette.length < 10 + + return ( +
+
+ {isClassStyle && } + +
+ {isClassStyle && ( + + )}
- {params && } -
-) + ) +} StyleTab.propTypes = { hasOrgUnitField: PropTypes.bool.isRequired, - unit: PropTypes.string.isRequired, - params: PropTypes.shape({ - max: PropTypes.number.isRequired, - min: PropTypes.number.isRequired, - palette: PropTypes.array.isRequired, - }), + showBelowMin: PropTypes.bool, + style: PropTypes.oneOfType([ + PropTypes.array, + PropTypes.shape({ + color: PropTypes.string, + max: PropTypes.number, + min: PropTypes.number, + palette: PropTypes.array, + strokeWidth: PropTypes.number, + }), + ]), + unit: PropTypes.string, } export default StyleTab diff --git a/src/components/map/layers/earthEngine/EarthEngineLayer.js b/src/components/map/layers/earthEngine/EarthEngineLayer.js index 214f7ac13..472153730 100644 --- a/src/components/map/layers/earthEngine/EarthEngineLayer.js +++ b/src/components/map/layers/earthEngine/EarthEngineLayer.js @@ -57,7 +57,7 @@ export default class EarthEngineLayer extends Layer { isVisible, datasetId, band, - mask, + maskOperator, attribution, filter, methods, @@ -68,7 +68,7 @@ export default class EarthEngineLayer extends Layer { value, resolution, projection, - params, + style, popup, data, aggregationType, @@ -87,7 +87,7 @@ export default class EarthEngineLayer extends Layer { isVisible, datasetId, band, - mask, + maskOperator, attribution, filter, methods, @@ -108,8 +108,8 @@ export default class EarthEngineLayer extends Layer { onLoad: this.onLoad.bind(this), } - if (params) { - config.params = params + if (style) { + config.style = style } if (areaRadius) { diff --git a/src/components/map/layers/earthEngine/EarthEnginePopup.js b/src/components/map/layers/earthEngine/EarthEnginePopup.js index e85a9e106..6c39d1c70 100644 --- a/src/components/map/layers/earthEngine/EarthEnginePopup.js +++ b/src/components/map/layers/earthEngine/EarthEnginePopup.js @@ -37,10 +37,10 @@ const EarthEnginePopup = (props) => { {items - .filter((i) => values[i.id]) - .sort((a, b) => values[b.id] - values[a.id]) - .map(({ id, name, color }) => ( - + .filter((i) => values[i.value]) + .sort((a, b) => values[b.value] - values[a.value]) + .map(({ value, name, color }) => ( + { > {name} - {valueFormat(values[id])} + {valueFormat(values[value])} {isPercentage ? '%' : ''} diff --git a/src/components/periods/PeriodTypeSelect.js b/src/components/periods/PeriodTypeSelect.js index 89cf0e392..2122545b6 100644 --- a/src/components/periods/PeriodTypeSelect.js +++ b/src/components/periods/PeriodTypeSelect.js @@ -1,9 +1,9 @@ +import { useCachedDataQuery } from '@dhis2/analytics' import i18n from '@dhis2/d2-i18n' import PropTypes from 'prop-types' import React, { useMemo, useEffect } from 'react' import { getPeriodTypes, getRelativePeriods } from '../../util/periods.js' import { SelectField } from '../core/index.js' -import { useSystemSettings } from '../SystemSettingsProvider.js' const PeriodTypeSelect = ({ onChange, @@ -13,7 +13,8 @@ const PeriodTypeSelect = ({ period, value, }) => { - const { hiddenPeriods } = useSystemSettings() + const { systemSettings } = useCachedDataQuery() + const { hiddenPeriods } = systemSettings const periodTypes = useMemo( () => getPeriodTypes(includeRelativePeriods, hiddenPeriods), diff --git a/src/constants/actionTypes.js b/src/constants/actionTypes.js index 98a764eaf..6bcee7896 100644 --- a/src/constants/actionTypes.js +++ b/src/constants/actionTypes.js @@ -109,7 +109,7 @@ export const LAYER_EDIT_RENDERING_STRATEGY_SET = export const LAYER_EDIT_AGGREGATION_TYPE_SET = 'LAYER_EDIT_AGGREGATION_TYPE_SET' export const LAYER_EDIT_DATA_ELEMENT_GROUP_SET = 'LAYER_EDIT_DATA_ELEMENT_GROUP_SET' -export const LAYER_EDIT_PARAMS_SET = 'LAYER_EDIT_PARAMS_SET' +export const LAYER_EDIT_STYLE_SET = 'LAYER_EDIT_STYLE_SET' export const LAYER_EDIT_FILTER_SET = 'LAYER_EDIT_FILTER_SET' export const LAYER_EDIT_LABELS_SET = 'LAYER_EDIT_LABELS_SET' export const LAYER_EDIT_LABEL_TEMPLATE = 'LAYER_EDIT_LABEL_TEMPLATE' @@ -140,6 +140,8 @@ export const LAYER_EDIT_BAND_SET = 'LAYER_EDIT_BAND_SET' export const LAYER_EDIT_FEATURE_STYLE_SET = 'LAYER_EDIT_FEATURE_STYLE_SET' export const LAYER_EDIT_FALLBACK_COORDINATE_FIELD_SET = 'LAYER_EDIT_FALLBACK_COORDINATE_FIELD_SET' +export const LAYER_EDIT_EARTH_ENGINE_PERIOD_SET = + 'LAYER_EDIT_EARTH_ENGINE_PERIOD_SET' /* PERIODS */ export const RELATIVE_PERIODS_SET = 'RELATIVE_PERIODS_SET' diff --git a/src/constants/earthEngine.js b/src/constants/earthEngine.js deleted file mode 100644 index 94880cd81..000000000 --- a/src/constants/earthEngine.js +++ /dev/null @@ -1,579 +0,0 @@ -import i18n from '@dhis2/d2-i18n' -import { defaultFilters } from '../util/earthEngine.js' -import { EARTH_ENGINE_LAYER } from './layers.js' - -// layerId should be unique -// datasetId is the Earth Engine dataset id -export const earthEngineLayers = () => [ - { - layer: EARTH_ENGINE_LAYER, - layerId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj_TOTAL', - datasetId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj', - name: i18n.t('Population'), - unit: i18n.t('people per hectare'), - description: i18n.t('Estimated number of people living in an area.'), - source: 'WorldPop / Google Earth Engine', - sourceUrl: - 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop_age_sex_cons_unadj', - img: 'images/population.png', - defaultAggregations: ['sum', 'mean'], - periodType: 'Yearly', - band: 'population', - filters: ({ id, name, year }) => [ - { - id, - name, - type: 'eq', - arguments: ['year', year], - }, - ], - mosaic: true, - params: { - min: 0, - max: 25, - palette: [ - '#fee5d9', - '#fcbba1', - '#fc9272', - '#fb6a4a', - '#de2d26', - '#a50f15', - ], // Reds - }, - opacity: 0.9, - }, - { - layer: EARTH_ENGINE_LAYER, - layerId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj', - datasetId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj', - name: i18n.t('Population age groups'), - unit: i18n.t('people per hectare'), - description: i18n.t( - 'Estimated number of people living in an area, grouped by age and gender.' - ), - source: 'WorldPop / Google Earth Engine', - sourceUrl: - 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop_age_sex_cons_unadj', - img: 'images/population.png', - periodType: 'Yearly', - defaultAggregations: ['sum', 'mean'], - bands: [ - { - id: 'M_0', - name: i18n.t('Male 0 - 1 years'), - }, - { - id: 'M_1', - name: i18n.t('Male 1 - 4 years'), - }, - { - id: 'M_5', - name: i18n.t('Male 5 - 9 years'), - }, - { - id: 'M_10', - name: i18n.t('Male 10 - 14 years'), - }, - { - id: 'M_15', - name: i18n.t('Male 15 - 19 years'), - }, - { - id: 'M_20', - name: i18n.t('Male 20 - 24 years'), - }, - { - id: 'M_25', - name: i18n.t('Male 25 - 29 years'), - }, - { - id: 'M_30', - name: i18n.t('Male 30 - 34 years'), - }, - { - id: 'M_35', - name: i18n.t('Male 35 - 39 years'), - }, - { - id: 'M_40', - name: i18n.t('Male 40 - 44 years'), - }, - { - id: 'M_45', - name: i18n.t('Male 45 - 49 years'), - }, - { - id: 'M_50', - name: i18n.t('Male 50 - 54 years'), - }, - { - id: 'M_55', - name: i18n.t('Male 55 - 59 years'), - }, - { - id: 'M_60', - name: i18n.t('Male 60 - 64 years'), - }, - { - id: 'M_65', - name: i18n.t('Male 65 - 69 years'), - }, - { - id: 'M_70', - name: i18n.t('Male 70 - 74 years'), - }, - { - id: 'M_75', - name: i18n.t('Male 75 - 79 years'), - }, - { - id: 'M_80', - name: i18n.t('Male 80 years and above'), - }, - { - id: 'F_0', - name: i18n.t('Female 0 - 1 years'), - }, - { - id: 'F_1', - name: i18n.t('Female 1 - 4 years'), - }, - { - id: 'F_5', - name: i18n.t('Female 5 - 9 years'), - }, - { - id: 'F_10', - name: i18n.t('Female 10 - 14 years'), - }, - { - id: 'F_15', - name: i18n.t('Female 15 - 19 years'), - }, - { - id: 'F_20', - name: i18n.t('Female 20 - 24 years'), - }, - { - id: 'F_25', - name: i18n.t('Female 25 - 29 years'), - }, - { - id: 'F_30', - name: i18n.t('Female 30 - 34 years'), - }, - { - id: 'F_35', - name: i18n.t('Female 35 - 39 years'), - }, - { - id: 'F_40', - name: i18n.t('Female 40 - 44 years'), - }, - { - id: 'F_45', - name: i18n.t('Female 45 - 49 years'), - }, - { - id: 'F_50', - name: i18n.t('Female 50 - 54 years'), - }, - { - id: 'F_55', - name: i18n.t('Female 55 - 59 years'), - }, - { - id: 'F_60', - name: i18n.t('Female 60 - 64 years'), - }, - { - id: 'F_65', - name: i18n.t('Female 65 - 69 years'), - }, - { - id: 'F_70', - name: i18n.t('Female 70 - 74 years'), - multiple: true, - }, - { - id: 'F_75', - name: i18n.t('Female 75 - 79 years'), - }, - { - id: 'F_80', - name: i18n.t('Female 80 years and above'), - }, - ], - filters: ({ id, name, year }) => [ - { - id, - name, - type: 'eq', - arguments: ['year', year], - }, - ], - mosaic: true, - params: { - min: 0, - max: 10, - palette: [ - '#fee5d9', - '#fcbba1', - '#fc9272', - '#fb6a4a', - '#de2d26', - '#a50f15', - ], // Reds - }, - opacity: 0.9, - tileScale: 4, - }, - { - layer: EARTH_ENGINE_LAYER, - layerId: 'GOOGLE/Research/open-buildings/v1/polygons', - datasetId: 'GOOGLE/Research/open-buildings/v1/polygons', - format: 'FeatureCollection', - name: i18n.t('Building footprints'), - unit: i18n.t('Number of buildings'), - description: i18n.t( - 'The outlines of buildings derived from high-resolution satellite imagery. Only for the continent of Africa.' - ), - notice: i18n.t( - 'Building counts are only available for smaller organisation unit areas.' - ), - error: i18n.t( - 'Select a smaller area or single organization unit to see the count of buildings.' - ), - source: 'NASA / USGS / JPL-Caltech / Google Earth Engine', - sourceUrl: 'https://sites.research.google/open-buildings/', - img: 'images/buildings.png', - aggregations: ['count'], - defaultAggregations: ['count'], - opacity: 0.9, - }, - { - layer: EARTH_ENGINE_LAYER, - layerId: 'USGS/SRTMGL1_003', - datasetId: 'USGS/SRTMGL1_003', - name: i18n.t('Elevation'), - unit: i18n.t('meters'), - description: i18n.t('Elevation above sea-level.'), - source: 'NASA / USGS / JPL-Caltech / Google Earth Engine', - sourceUrl: - 'https://explorer.earthengine.google.com/#detail/USGS%2FSRTMGL1_003', - img: 'images/elevation.png', - aggregations: ['min', 'max', 'mean', 'median', 'stdDev', 'variance'], - defaultAggregations: ['mean', 'min', 'max'], - band: 'elevation', - params: { - min: 0, - max: 1500, - palette: [ - '#ffffd4', - '#fee391', - '#fec44f', - '#fe9929', - '#d95f0e', - '#993404', - ], // YlOrBr - }, - opacity: 0.9, - }, - { - layer: EARTH_ENGINE_LAYER, - layerId: 'UCSB-CHG/CHIRPS/PENTAD', - datasetId: 'UCSB-CHG/CHIRPS/PENTAD', - name: i18n.t('Precipitation'), - unit: i18n.t('millimeter'), - description: i18n.t( - 'Precipitation collected from satellite and weather stations on the ground. The values are in millimeters within 5 days periods. Updated monthly, during the 3rd week of the following month.' - ), - source: 'UCSB / CHG / Google Earth Engine', - sourceUrl: - 'https://explorer.earthengine.google.com/#detail/UCSB-CHG%2FCHIRPS%2FPENTAD', - periodType: 'Custom', - band: 'precipitation', - aggregations: ['min', 'max', 'mean', 'median', 'stdDev', 'variance'], - defaultAggregations: ['mean', 'min', 'max'], - mask: true, - img: 'images/precipitation.png', - params: { - min: 0, - max: 100, - palette: [ - '#eff3ff', - '#c6dbef', - '#9ecae1', - '#6baed6', - '#3182bd', - '#08519c', - ], // Blues - }, - opacity: 0.9, - }, - { - layer: EARTH_ENGINE_LAYER, - layerId: 'MODIS/006/MOD11A2', - datasetId: 'MODIS/006/MOD11A2', - name: i18n.t('Temperature'), - unit: i18n.t('°C during daytime'), - description: i18n.t( - 'Land surface temperatures collected from satellite. Blank spots will appear in areas with a persistent cloud cover.' - ), - source: 'NASA LP DAAC / Google Earth Engine', - sourceUrl: - 'https://explorer.earthengine.google.com/#detail/MODIS%2FMOD11A2', - img: 'images/temperature.png', - aggregations: ['min', 'max', 'mean', 'median', 'stdDev', 'variance'], - defaultAggregations: ['mean', 'min', 'max'], - periodType: 'Custom', - band: 'LST_Day_1km', - mask: true, - methods: { - toFloat: [], - multiply: [0.02], - subtract: [273.15], - }, - params: { - min: 0, - max: 40, - palette: [ - '#fff5f0', - '#fee0d2', - '#fcbba1', - '#fc9272', - '#fb6a4a', - '#ef3b2c', - '#cb181d', - '#a50f15', - '#67000d', - ], // Reds - }, - opacity: 0.9, - }, - { - layer: EARTH_ENGINE_LAYER, - layerId: 'MODIS/006/MCD12Q1', // Layer id kept for backward compability for saved maps - datasetId: 'MODIS/061/MCD12Q1', // No longer in use: 'MODIS/006/MCD12Q1' / 'MODIS/051/MCD12Q1', - name: i18n.t('Landcover'), - description: i18n.t( - 'Distinct landcover types collected from satellites.' - ), - source: 'NASA LP DAAC / Google Earth Engine', - sourceUrl: - 'https://developers.google.com/earth-engine/datasets/catalog/MODIS_061_MCD12Q1', - periodType: 'Yearly', - band: 'LC_Type1', - filters: defaultFilters, - defaultAggregations: 'percentage', - legend: { - items: [ - // http://www.eomf.ou.edu/static/IGBP.pdf - { - id: 1, - name: i18n.t('Evergreen Needleleaf forest'), - color: '#162103', - }, - { - id: 2, - name: i18n.t('Evergreen Broadleaf forest'), - color: '#235123', - }, - { - id: 3, - name: i18n.t('Deciduous Needleleaf forest'), - color: '#399b38', - }, - { - id: 4, - name: i18n.t('Deciduous Broadleaf forest'), - color: '#38eb38', - }, - { - id: 5, - name: i18n.t('Mixed forest'), - color: '#39723b', - }, - { - id: 6, - name: i18n.t('Closed shrublands'), - color: '#6a2424', - }, - { - id: 7, - name: i18n.t('Open shrublands'), - color: '#c3a55f', - }, - { - id: 8, - name: i18n.t('Woody savannas'), - color: '#b76124', - }, - { - id: 9, - name: i18n.t('Savannas'), - color: '#d99125', - }, - { - id: 10, - name: i18n.t('Grasslands'), - color: '#92af1f', - }, - { - id: 11, - name: i18n.t('Permanent wetlands'), - color: '#10104c', - }, - { - id: 12, - name: i18n.t('Croplands'), - color: '#cdb400', - }, - { - id: 13, - name: i18n.t('Urban and built-up'), - color: '#cc0202', - }, - { - id: 14, - name: i18n.t('Cropland/Natural vegetation mosaic'), - color: '#332808', - }, - { - id: 15, - name: i18n.t('Snow and ice'), - color: '#d7cdcc', - }, - { - id: 16, - name: i18n.t('Barren or sparsely vegetated'), - color: '#f7e174', - }, - { - id: 17, - name: i18n.t('Water'), - color: '#aec3d6', - }, - ], - }, - mask: false, - popup: '{name}: {value}', - img: 'images/landcover.png', - opacity: 0.9, - }, - { - layer: EARTH_ENGINE_LAYER, - legacy: true, // Kept for backward compability - layerId: 'WorldPop/GP/100m/pop', - datasetId: 'WorldPop/GP/100m/pop', - name: i18n.t('Population'), - unit: i18n.t('people per hectare'), - description: i18n.t('Estimated number of people living in an area.'), - source: 'WorldPop / Google Earth Engine', - sourceUrl: - 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop', - img: 'images/population.png', - defaultAggregations: ['sum', 'mean'], - periodType: 'Yearly', - filters: ({ id, name, year }) => [ - { - id, - name, - type: 'eq', - arguments: ['year', year], - }, - ], - mosaic: true, - params: { - min: 0, - max: 10, - palette: [ - '#fee5d9', - '#fcbba1', - '#fc9272', - '#fb6a4a', - '#de2d26', - '#a50f15', - ], // Reds - }, - opacity: 0.9, - }, - { - layer: EARTH_ENGINE_LAYER, - legacy: true, // Kept for backward compability - layerId: 'WorldPop/POP', - datasetId: 'WorldPop/POP', - name: i18n.t('Population'), - unit: i18n.t('people per km²'), - description: i18n.t('Estimated number of people living in an area.'), - source: 'WorldPop / Google Earth Engine', - sourceUrl: - 'https://explorer.earthengine.google.com/#detail/WorldPop%2FPOP', - img: 'images/population.png', - periodType: 'Yearly', - filters: ({ id, name, year }) => [ - { - id, - name, - type: 'eq', - arguments: ['year', year], - }, - { - type: 'eq', - arguments: ['UNadj', 'yes'], - }, - ], - mosaic: true, - params: { - min: 0, - max: 1000, - palette: [ - '#fee5d9', - '#fcbba1', - '#fc9272', - '#fb6a4a', - '#de2d26', - '#a50f15', - ], // Reds - }, - methods: { - multiply: [100], // Convert from people/hectare to people/km2 - }, - opacity: 0.9, - }, - { - layer: EARTH_ENGINE_LAYER, - legacy: true, // Kept for backward compability - layerId: 'NOAA/DMSP-OLS/NIGHTTIME_LIGHTS', - datasetId: 'NOAA/DMSP-OLS/NIGHTTIME_LIGHTS', - name: i18n.t('Nighttime lights'), - unit: i18n.t('light intensity'), - description: i18n.t( - 'Light intensity from cities, towns, and other sites with persistent lighting, including gas flares.' - ), - source: 'NOAA / Google Earth Engine', - sourceUrl: - 'https://explorer.earthengine.google.com/#detail/NOAA%2FDMSP-OLS%2FNIGHTTIME_LIGHTS', - periodType: 'Yearly', - band: 'stable_lights', - mask: true, - img: 'images/nighttime.png', - params: { - min: 0, - max: 63, - palette: [ - '#ffffd4', - '#fee391', - '#fec44f', - '#fe9929', - '#ec7014', - '#cc4c02', - '#8c2d04', - ], // YlOrBr - }, - opacity: 0.9, - }, -] - -export const getEarthEngineLayer = (id) => - earthEngineLayers().find((l) => l.layerId === id) diff --git a/src/constants/earthEngineLayers/buildings_GOOGLE.js b/src/constants/earthEngineLayers/buildings_GOOGLE.js new file mode 100644 index 000000000..79b08f92f --- /dev/null +++ b/src/constants/earthEngineLayers/buildings_GOOGLE.js @@ -0,0 +1,30 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../layers.js' + +export default { + layer: EARTH_ENGINE_LAYER, + format: 'FeatureCollection', + layerId: 'GOOGLE/Research/open-buildings/v1/polygons', + img: 'images/buildings.png', + datasetId: 'GOOGLE/Research/open-buildings/v1/polygons', + name: i18n.t('Building footprints'), + description: i18n.t( + 'The outlines of buildings derived from high-resolution satellite imagery. Only for the continent of Africa.' + ), + notice: i18n.t( + 'Building counts are only available for smaller organisation unit areas.' + ), + error: i18n.t( + 'Select a smaller area or single organization unit to see the count of buildings.' + ), + source: 'NASA / USGS / JPL-Caltech / Google Earth Engine', + sourceUrl: 'https://sites.research.google/open-buildings/', + unit: i18n.t('Number of buildings'), + aggregations: ['count'], + defaultAggregations: ['count'], + style: { + color: '#FFA500', + strokeWidth: 1, + }, + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/elevation_SRTM.js b/src/constants/earthEngineLayers/elevation_SRTM.js new file mode 100644 index 000000000..418db0699 --- /dev/null +++ b/src/constants/earthEngineLayers/elevation_SRTM.js @@ -0,0 +1,33 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../layers.js' + +export default { + layer: EARTH_ENGINE_LAYER, + layerId: 'USGS/SRTMGL1_003', + datasetId: 'USGS/SRTMGL1_003', + format: 'Image', + img: 'images/elevation.png', + name: i18n.t('Elevation'), + unit: i18n.t('meters'), + description: i18n.t('Elevation above sea-level.'), + source: 'NASA / USGS / JPL-Caltech / Google Earth Engine', + sourceUrl: + 'https://explorer.earthengine.google.com/#detail/USGS%2FSRTMGL1_003', + aggregations: ['min', 'max', 'mean', 'median', 'stdDev', 'variance'], + defaultAggregations: ['mean', 'min', 'max'], + band: 'elevation', + style: { + min: 0, + max: 1500, + palette: [ + '#ffffd4', + '#fee391', + '#fec44f', + '#fe9929', + '#d95f0e', + '#993404', + ], // YlOrBr (ColorBrewer) + }, + maskOperator: 'gte', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/index.js b/src/constants/earthEngineLayers/index.js new file mode 100644 index 000000000..eb36251c3 --- /dev/null +++ b/src/constants/earthEngineLayers/index.js @@ -0,0 +1,32 @@ +import buildings from './buildings_GOOGLE.js' +import elevation from './elevation_SRTM.js' +import landcover from './landcover_MCD12Q1.js' +import legacyNighttime from './legacy/nighttime_DMSP-OLS.js' +import legacyPopulationWorldPop from './legacy/population_WorldPop.js' +import legacyPopulation100m from './legacy/population_WorldPop_100m.js' +import legacyPrecipitation from './legacy/precipitation_pentad_CHIRPS.js' +import legacyTemperature from './legacy/temperature_MOD11A2v061.js' +import populationAgeSex from './population_age_sex_WorldPop.js' +import populationTotal from './population_total_WorldPop.js' +import precipitationMonthly from './precipitation_monthly_ERA5-Land.js' +import temperatureMonthly from './temperature_monthly_ERA5-Land.js' + +const earthEngineLayers = [ + populationTotal, + populationAgeSex, + buildings, + elevation, + precipitationMonthly, + temperatureMonthly, + landcover, + legacyNighttime, + legacyPopulation100m, + legacyPopulationWorldPop, + legacyPrecipitation, + legacyTemperature, +] + +export const getEarthEngineLayer = (id) => + earthEngineLayers.find((l) => l.layerId === id) + +export default earthEngineLayers diff --git a/src/constants/earthEngineLayers/landcover_MCD12Q1.js b/src/constants/earthEngineLayers/landcover_MCD12Q1.js new file mode 100644 index 000000000..48f514bd2 --- /dev/null +++ b/src/constants/earthEngineLayers/landcover_MCD12Q1.js @@ -0,0 +1,114 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../layers.js' + +export default { + layer: EARTH_ENGINE_LAYER, + format: 'ImageCollection', + layerId: 'MODIS/006/MCD12Q1', // Layer id kept for backward compability for saved maps + datasetId: 'MODIS/061/MCD12Q1', // No longer in use: 'MODIS/006/MCD12Q1' / 'MODIS/051/MCD12Q1', + name: i18n.t('Landcover'), + description: i18n.t('Distinct landcover types collected from satellites.'), + img: 'images/landcover.png', + source: 'NASA LP DAAC / Google Earth Engine', + sourceUrl: + 'https://developers.google.com/earth-engine/datasets/catalog/MODIS_061_MCD12Q1', + periodType: 'YEARLY', + band: 'LC_Type1', + filters: [ + { + type: 'eq', + arguments: ['system:index', '$1'], + }, + ], + defaultAggregations: 'percentage', + style: [ + // http://www.eomf.ou.edu/static/IGBP.pdf + { + value: 1, + name: i18n.t('Evergreen Needleleaf forest'), + color: '#162103', + }, + { + value: 2, + name: i18n.t('Evergreen Broadleaf forest'), + color: '#235123', + }, + { + value: 3, + name: i18n.t('Deciduous Needleleaf forest'), + color: '#399b38', + }, + { + value: 4, + name: i18n.t('Deciduous Broadleaf forest'), + color: '#38eb38', + }, + { + value: 5, + name: i18n.t('Mixed forest'), + color: '#39723b', + }, + { + value: 6, + name: i18n.t('Closed shrublands'), + color: '#6a2424', + }, + { + value: 7, + name: i18n.t('Open shrublands'), + color: '#c3a55f', + }, + { + value: 8, + name: i18n.t('Woody savannas'), + color: '#b76124', + }, + { + value: 9, + name: i18n.t('Savannas'), + color: '#d99125', + }, + { + value: 10, + name: i18n.t('Grasslands'), + color: '#92af1f', + }, + { + value: 11, + name: i18n.t('Permanent wetlands'), + color: '#10104c', + }, + { + value: 12, + name: i18n.t('Croplands'), + color: '#cdb400', + }, + { + value: 13, + name: i18n.t('Urban and built-up'), + color: '#cc0202', + }, + { + value: 14, + name: i18n.t('Cropland/Natural vegetation mosaic'), + color: '#332808', + }, + { + value: 15, + name: i18n.t('Snow and ice'), + color: '#d7cdcc', + }, + { + value: 16, + name: i18n.t('Barren or sparsely vegetated'), + color: '#f7e174', + }, + { + value: 17, + name: i18n.t('Water'), + color: '#aec3d6', + }, + ], + popup: '{name}: {value}', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/legacy/nighttime_DMSP-OLS.js b/src/constants/earthEngineLayers/legacy/nighttime_DMSP-OLS.js new file mode 100644 index 000000000..bf0e3e670 --- /dev/null +++ b/src/constants/earthEngineLayers/legacy/nighttime_DMSP-OLS.js @@ -0,0 +1,44 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../../layers.js' + +export const legacyNighttimeDatasetId = 'NOAA/DMSP-OLS/NIGHTTIME_LIGHTS' + +export default { + legacy: true, // Kept for backward compability + layer: EARTH_ENGINE_LAYER, + format: 'ImageCollection', + layerId: legacyNighttimeDatasetId, + datasetId: legacyNighttimeDatasetId, + name: i18n.t('Nighttime lights'), + unit: i18n.t('light intensity'), + description: i18n.t( + 'Light intensity from cities, towns, and other sites with persistent lighting, including gas flares.' + ), + source: 'NOAA / Google Earth Engine', + sourceUrl: + 'https://explorer.earthengine.google.com/#detail/NOAA%2FDMSP-OLS%2FNIGHTTIME_LIGHTS', + periodType: 'YEARLY', + filters: [ + { + type: 'eq', + arguments: ['system:index', '$1'], + }, + ], + band: 'stable_lights', + img: 'images/nighttime.png', + style: { + min: 0, + max: 63, + palette: [ + '#ffffd4', + '#fee391', + '#fec44f', + '#fe9929', + '#ec7014', + '#cc4c02', + '#8c2d04', + ], // YlOrBr (ColorBrewer) + }, + maskOperator: 'gte', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/legacy/population_WorldPop.js b/src/constants/earthEngineLayers/legacy/population_WorldPop.js new file mode 100644 index 000000000..80847a1de --- /dev/null +++ b/src/constants/earthEngineLayers/legacy/population_WorldPop.js @@ -0,0 +1,46 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../../layers.js' + +export default { + layer: EARTH_ENGINE_LAYER, + legacy: true, // Kept for backward compability + layerId: 'WorldPop/POP', + datasetId: 'WorldPop/POP', + format: 'ImageCollection', + name: i18n.t('Population'), + unit: i18n.t('people per km²'), + description: i18n.t('Estimated number of people living in an area.'), + source: 'WorldPop / Google Earth Engine', + sourceUrl: 'https://explorer.earthengine.google.com/#detail/WorldPop%2FPOP', + img: 'images/population.png', + periodType: 'YEARLY', + band: 'population', + filters: [ + { + type: 'eq', + arguments: ['year', '$1'], + }, + { + type: 'eq', + arguments: ['UNadj', 'yes'], + }, + ], + mosaic: true, + style: { + min: 0, + max: 1000, + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], // Reds (ColorBrewer) + }, + methods: { + multiply: [100], // Convert from people/hectare to people/km2 + }, + maskOperator: 'gt', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/legacy/population_WorldPop_100m.js b/src/constants/earthEngineLayers/legacy/population_WorldPop_100m.js new file mode 100644 index 000000000..eb7ec70b6 --- /dev/null +++ b/src/constants/earthEngineLayers/legacy/population_WorldPop_100m.js @@ -0,0 +1,40 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../../layers.js' + +export default { + layer: EARTH_ENGINE_LAYER, + legacy: true, // Kept for backward compability + layerId: 'WorldPop/GP/100m/pop', + datasetId: 'WorldPop/GP/100m/pop', + name: i18n.t('Population'), + unit: i18n.t('people per hectare'), + description: i18n.t('Estimated number of people living in an area.'), + source: 'WorldPop / Google Earth Engine', + sourceUrl: + 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop', + img: 'images/population.png', + defaultAggregations: ['sum', 'mean'], + periodType: 'YEARLY', + band: 'population', + filters: [ + { + type: 'eq', + arguments: ['year', '$1'], + }, + ], + mosaic: true, + style: { + min: 0, + max: 10, + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], // Reds (ColorBrewer) + }, + maskOperator: 'gt', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/legacy/precipitation_pentad_CHIRPS.js b/src/constants/earthEngineLayers/legacy/precipitation_pentad_CHIRPS.js new file mode 100644 index 000000000..105f20feb --- /dev/null +++ b/src/constants/earthEngineLayers/legacy/precipitation_pentad_CHIRPS.js @@ -0,0 +1,44 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../../layers.js' +import { BY_YEAR } from '../../periods.js' + +export default { + legacy: true, // kept for backward compability + layer: EARTH_ENGINE_LAYER, + format: 'ImageCollection', + layerId: 'UCSB-CHG/CHIRPS/PENTAD', + datasetId: 'UCSB-CHG/CHIRPS/PENTAD', + name: i18n.t('Precipitation'), + unit: i18n.t('millimeter'), + description: i18n.t( + 'Precipitation collected from satellite and weather stations on the ground. The values are in millimeters within 5 days periods. Updated monthly, during the 3rd week of the following month.' + ), + source: 'UCSB / CHG / Google Earth Engine', + sourceUrl: + 'https://explorer.earthengine.google.com/#detail/UCSB-CHG%2FCHIRPS%2FPENTAD', + periodType: BY_YEAR, + filters: [ + { + type: 'eq', + arguments: ['system:index', '$1'], + }, + ], + band: 'precipitation', + aggregations: ['min', 'max', 'mean', 'median', 'stdDev', 'variance'], + defaultAggregations: ['mean', 'min', 'max'], + img: 'images/precipitation.png', + style: { + min: 0, + max: 100, + palette: [ + '#eff3ff', + '#c6dbef', + '#9ecae1', + '#6baed6', + '#3182bd', + '#08519c', + ], // Blues (ColorBrewer) + }, + maskOperator: 'gte', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/legacy/temperature_MOD11A2v061.js b/src/constants/earthEngineLayers/legacy/temperature_MOD11A2v061.js new file mode 100644 index 000000000..68055e2e8 --- /dev/null +++ b/src/constants/earthEngineLayers/legacy/temperature_MOD11A2v061.js @@ -0,0 +1,61 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../../layers.js' +import { BY_YEAR } from '../../periods.js' + +export default { + legacy: true, // kept for backward compability + layer: EARTH_ENGINE_LAYER, + format: 'ImageCollection', + layerId: 'MODIS/006/MOD11A2', + datasetId: 'MODIS/006/MOD11A2', + img: 'images/temperature.png', + name: i18n.t('Temperature MODIS'), + unit: i18n.t('°C during daytime'), + description: i18n.t( + 'Land surface temperatures collected from satellite. Blank spots will appear in areas with a persistent cloud cover.' + ), + source: 'NASA LP DAAC / Google Earth Engine', + sourceUrl: + 'https://explorer.earthengine.google.com/#detail/MODIS%2FMOD11A2', + aggregations: ['min', 'max', 'mean', 'median', 'stdDev', 'variance'], + defaultAggregations: ['mean', 'min', 'max'], + band: 'LST_Day_1km', + periodType: BY_YEAR, + filters: [ + { + type: 'eq', + arguments: ['system:index', '$1'], + }, + ], + methods: [ + { + name: 'toFloat', + arguments: [], + }, + { + name: 'multiply', + arguments: [0.02], + }, + { + name: 'subtract', + arguments: [273.15], + }, + ], + style: { + min: 0, + max: 40, + palette: [ + '#fff5f0', + '#fee0d2', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#ef3b2c', + '#cb181d', + '#a50f15', + '#67000d', + ], // Reds (ColorBrewer) + }, + maskOperator: 'gte', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/population_age_sex_WorldPop.js b/src/constants/earthEngineLayers/population_age_sex_WorldPop.js new file mode 100644 index 000000000..d2a9bb125 --- /dev/null +++ b/src/constants/earthEngineLayers/population_age_sex_WorldPop.js @@ -0,0 +1,189 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../layers.js' + +export default { + layer: EARTH_ENGINE_LAYER, + format: 'ImageCollection', + layerId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj', + datasetId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj', + img: 'images/population.png', + name: i18n.t('Population age groups'), + unit: 'people per hectare', + description: i18n.t( + 'Estimated number of people living in an area, grouped by age and gender.' + ), + source: 'WorldPop / Google Earth Engine', + sourceUrl: + 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop_age_sex_cons_unadj', + periodType: 'YEARLY', + defaultAggregations: ['sum', 'mean'], + useCentroid: true, + bands: [ + { + id: 'M_0', + name: i18n.t('Male 0 - 1 years'), + }, + { + id: 'M_1', + name: i18n.t('Male 1 - 4 years'), + }, + { + id: 'M_5', + name: i18n.t('Male 5 - 9 years'), + }, + { + id: 'M_10', + name: i18n.t('Male 10 - 14 years'), + }, + { + id: 'M_15', + name: i18n.t('Male 15 - 19 years'), + }, + { + id: 'M_20', + name: i18n.t('Male 20 - 24 years'), + }, + { + id: 'M_25', + name: i18n.t('Male 25 - 29 years'), + }, + { + id: 'M_30', + name: i18n.t('Male 30 - 34 years'), + }, + { + id: 'M_35', + name: i18n.t('Male 35 - 39 years'), + }, + { + id: 'M_40', + name: i18n.t('Male 40 - 44 years'), + }, + { + id: 'M_45', + name: i18n.t('Male 45 - 49 years'), + }, + { + id: 'M_50', + name: i18n.t('Male 50 - 54 years'), + }, + { + id: 'M_55', + name: i18n.t('Male 55 - 59 years'), + }, + { + id: 'M_60', + name: i18n.t('Male 60 - 64 years'), + }, + { + id: 'M_65', + name: i18n.t('Male 65 - 69 years'), + }, + { + id: 'M_70', + name: i18n.t('Male 70 - 74 years'), + }, + { + id: 'M_75', + name: i18n.t('Male 75 - 79 years'), + }, + { + id: 'M_80', + name: i18n.t('Male 80 years and above'), + }, + { + id: 'F_0', + name: i18n.t('Female 0 - 1 years'), + }, + { + id: 'F_1', + name: i18n.t('Female 1 - 4 years'), + }, + { + id: 'F_5', + name: i18n.t('Female 5 - 9 years'), + }, + { + id: 'F_10', + name: i18n.t('Female 10 - 14 years'), + }, + { + id: 'F_15', + name: i18n.t('Female 15 - 19 years'), + }, + { + id: 'F_20', + name: i18n.t('Female 20 - 24 years'), + }, + { + id: 'F_25', + name: i18n.t('Female 25 - 29 years'), + }, + { + id: 'F_30', + name: i18n.t('Female 30 - 34 years'), + }, + { + id: 'F_35', + name: i18n.t('Female 35 - 39 years'), + }, + { + id: 'F_40', + name: i18n.t('Female 40 - 44 years'), + }, + { + id: 'F_45', + name: i18n.t('Female 45 - 49 years'), + }, + { + id: 'F_50', + name: i18n.t('Female 50 - 54 years'), + }, + { + id: 'F_55', + name: i18n.t('Female 55 - 59 years'), + }, + { + id: 'F_60', + name: i18n.t('Female 60 - 64 years'), + }, + { + id: 'F_65', + name: i18n.t('Female 65 - 69 years'), + }, + { + id: 'F_70', + name: i18n.t('Female 70 - 74 years'), + }, + { + id: 'F_75', + name: i18n.t('Female 75 - 79 years'), + }, + { + id: 'F_80', + name: i18n.t('Female 80 years and above'), + }, + ], + filters: [ + { + type: 'eq', + arguments: ['year', '$1'], + }, + ], + mosaic: true, + style: { + min: 0, + max: 10, + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], + }, + maskOperator: 'gt', + opacity: 0.9, + tileScale: 4, +} diff --git a/src/constants/earthEngineLayers/population_total_WorldPop.js b/src/constants/earthEngineLayers/population_total_WorldPop.js new file mode 100644 index 000000000..d5dfe9e64 --- /dev/null +++ b/src/constants/earthEngineLayers/population_total_WorldPop.js @@ -0,0 +1,41 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../layers.js' + +export default { + layer: EARTH_ENGINE_LAYER, + layerId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj_TOTAL', + img: 'images/population.png', + datasetId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj', + format: 'ImageCollection', + name: i18n.t('Population'), + description: i18n.t('Estimated number of people living in an area.'), + source: 'WorldPop / Google Earth Engine', + sourceUrl: + 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop_age_sex_cons_unadj', + unit: i18n.t('people per hectare'), + defaultAggregations: ['sum', 'mean'], + periodType: 'YEARLY', + useCentroid: true, + band: 'population', + filters: [ + { + type: 'eq', + arguments: ['year', '$1'], + }, + ], + mosaic: true, + style: { + min: 0, + max: 25, + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], + }, + maskOperator: 'gt', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/precipitation_monthly_ERA5-Land.js b/src/constants/earthEngineLayers/precipitation_monthly_ERA5-Land.js new file mode 100644 index 000000000..e27302f43 --- /dev/null +++ b/src/constants/earthEngineLayers/precipitation_monthly_ERA5-Land.js @@ -0,0 +1,51 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../layers.js' +import { EE_MONTHLY } from '../periods.js' + +export default { + layer: EARTH_ENGINE_LAYER, + img: 'images/precipitation.png', + layerId: 'ECMWF/ERA5_LAND/MONTHLY_AGGR/total_precipitation_sum', + datasetId: 'ECMWF/ERA5_LAND/MONTHLY_AGGR', + format: 'ImageCollection', + name: i18n.t('Precipitation monthly'), + description: i18n.t( + 'Accumulated liquid and frozen water, including rain and snow, that falls to the surface. Combines model data with observations from across the world.' + ), + source: 'Copernicus Climate Data Store / Google Earth Engine', + sourceUrl: + 'https://developers.google.com/earth-engine/datasets/catalog/ECMWF_ERA5_LAND_DAILY_AGGR', + unit: i18n.t('millimeter'), + aggregations: ['min', 'max', 'mean', 'median', 'stdDev', 'variance'], + defaultAggregations: ['mean', 'min', 'max'], + periodType: EE_MONTHLY, + band: 'total_precipitation_sum', + filters: [ + { + type: 'eq', + arguments: ['system:index', '$1'], + }, + ], + methods: [ + { + name: 'multiply', + arguments: [1000], + }, + ], + style: { + min: 0, + max: 700, + palette: [ + '#f7fbff', + '#deebf7', + '#c6dbef', + '#9ecae1', + '#6baed6', + '#4292c6', + '#2171b5', + '#084594', + ], + }, + maskOperator: 'gt', + opacity: 0.9, +} diff --git a/src/constants/earthEngineLayers/temperature_monthly_ERA5-Land.js b/src/constants/earthEngineLayers/temperature_monthly_ERA5-Land.js new file mode 100644 index 000000000..50216fa08 --- /dev/null +++ b/src/constants/earthEngineLayers/temperature_monthly_ERA5-Land.js @@ -0,0 +1,55 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../layers.js' +import { EE_MONTHLY } from '../periods.js' + +export default { + layer: EARTH_ENGINE_LAYER, + img: 'images/temperature.png', + layerId: 'ECMWF/ERA5_LAND/MONTHLY_AGGR/temperature_2m', + datasetId: 'ECMWF/ERA5_LAND/MONTHLY_AGGR', + format: 'ImageCollection', + name: i18n.t('Temperature monthly'), + description: i18n.t( + 'Temperature at 2m above the surface. Combines model data with observations from across the world.' + ), + source: 'Copernicus Climate Data Store / Google Earth Engine', + sourceUrl: + 'https://developers.google.com/earth-engine/datasets/catalog/ECMWF_ERA5_LAND_MONTHLY_AGGR', + unit: '°C', + aggregations: ['min', 'max', 'mean', 'median', 'stdDev', 'variance'], + defaultAggregations: ['mean', 'min', 'max'], + periodType: EE_MONTHLY, + band: 'temperature_2m', + filters: [ + { + type: 'eq', + arguments: ['system:index', '$1'], + }, + ], + methods: [ + { + name: 'toFloat', + arguments: [], + }, + { + name: 'subtract', + arguments: [273.15], + }, + ], + style: { + min: 0, + max: 35, + palette: [ + '#fff5f0', + '#fee0d2', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#ef3b2c', + '#cb181d', + '#a50f15', + '#67000d', + ], + }, + opacity: 0.9, +} diff --git a/src/constants/periods.js b/src/constants/periods.js index 80bc4df2c..16deca6d0 100644 --- a/src/constants/periods.js +++ b/src/constants/periods.js @@ -190,3 +190,7 @@ export const invalidSplitViewPeriods = [ LAST_52_WEEKS, WEEKS_THIS_YEAR, ] + +// Period types used for Earth Engine layers +export const BY_YEAR = 'BY_YEAR' +export const EE_MONTHLY = 'EE_MONTHLY' diff --git a/src/loaders/earthEngineLoader.js b/src/loaders/earthEngineLoader.js index f43c6ef20..2e692b31b 100644 --- a/src/loaders/earthEngineLoader.js +++ b/src/loaders/earthEngineLoader.js @@ -1,9 +1,13 @@ import i18n from '@dhis2/d2-i18n' import { getInstance as getD2 } from 'd2' import { precisionRound } from 'd3-format' -import { getEarthEngineLayer } from '../constants/earthEngine.js' +import { getEarthEngineLayer } from '../constants/earthEngineLayers/index.js' import { getOrgUnitsFromRows } from '../util/analytics.js' -import { hasClasses, getPeriodNameFromFilter } from '../util/earthEngine.js' +import { + hasClasses, + getStaticFilterFromPeriod, + getPeriodFromFilter, +} from '../util/earthEngine.js' import { getDisplayProperty } from '../util/helpers.js' import { toGeoJson } from '../util/map.js' import { getRoundToPrecisionFn } from '../util/numbers.js' @@ -14,7 +18,7 @@ import { // Returns a promise const earthEngineLoader = async (config) => { - const { rows, aggregationType } = config + const { format, rows, aggregationType } = config const orgUnits = getOrgUnitsFromRows(rows) const coordinateField = getCoordinateField(config) const alerts = [] @@ -86,6 +90,23 @@ const earthEngineLoader = async (config) => { // From database as favorite layerConfig = JSON.parse(config.config) + const { filter, params } = layerConfig + + // Backward compability for layers saved before 2.41 + if (filter) { + layerConfig.period = getPeriodFromFilter(filter, layerConfig.id) + delete layerConfig.filter + } + + // Backward compability for layers saved before 2.41 + if (params) { + layerConfig.style = params + if (params.palette) { + layerConfig.style.palette = params.palette.split(',') + } + delete layerConfig.params + } + // Backward compability for layers with periods saved before 2.36 // (could also be fixed in a db update script) if (layerConfig.image) { @@ -120,6 +141,7 @@ const earthEngineLoader = async (config) => { } delete config.config + delete config.filters // Backend returns empty filters array } else { dataset = getEarthEngineLayer(layerConfig.id) } @@ -130,9 +152,20 @@ const earthEngineLoader = async (config) => { ...layerConfig, } - const { unit, filter, description, source, sourceUrl, band, bands } = layer + const { + unit, + period, + filters, + description, + source, + sourceUrl, + band, + bands, + style, + maskOperator, + } = layer + const { name } = dataset || config - const period = getPeriodNameFromFilter(filter) const data = Array.isArray(features) && features.length ? features : undefined const hasBand = (b) => @@ -145,8 +178,9 @@ const earthEngineLoader = async (config) => { const legend = { ...layer.legend, + items: Array.isArray(style) ? style : null, title: name, - period, + period: period?.name, groups, unit, description, @@ -155,15 +189,22 @@ const earthEngineLoader = async (config) => { } // Create/update legend items from params - if (!hasClasses(aggregationType) && layer.params) { - legend.items = createLegend(layer.params) + if ( + format !== 'FeatureCollection' && + !hasClasses(aggregationType) && + style?.palette + ) { + legend.items = createLegend(style, !maskOperator) } + const filter = getStaticFilterFromPeriod(period, filters) + return { ...layer, legend, name, data, + filter, alerts, isLoaded: true, isLoading: false, @@ -172,35 +213,35 @@ const earthEngineLoader = async (config) => { } } -export const createLegend = ({ min, max, palette }) => { - const step = (max - min) / (palette.length - (min > 0 ? 2 : 1)) +export const createLegend = ({ min, max, palette }, showBelowMin) => { + const step = (max - min) / (palette.length - (showBelowMin ? 2 : 1)) const precision = precisionRound(step, max) const valueFormat = getRoundToPrecisionFn(precision) - let from = min + let from = valueFormat(min) let to = valueFormat(min + step) return palette.map((color, index) => { const item = { color } - if (index === 0 && min > 0) { + if (index === 0 && showBelowMin) { // Less than min - item.from = 0 + item.from = -Infinity item.to = min item.name = '< ' + min to = min - } else if (from < max) { - item.from = from - item.to = to + } else if (+from < max) { + item.from = +from + item.to = +to item.name = from + ' - ' + to } else { // Higher than max - item.from = from + item.from = +from item.name = '> ' + from } from = to - to = valueFormat(min + step * (index + (min > 0 ? 1 : 2))) + to = valueFormat(min + step * (index + (showBelowMin ? 1 : 2))) return item }) diff --git a/src/reducers/layerEdit.js b/src/reducers/layerEdit.js index 8506f629e..565c843b5 100644 --- a/src/reducers/layerEdit.js +++ b/src/reducers/layerEdit.js @@ -440,11 +440,11 @@ const layerEdit = (state = null, action) => { band: action.payload, } - case types.LAYER_EDIT_PARAMS_SET: + case types.LAYER_EDIT_STYLE_SET: return { ...state, - params: { - ...state.params, + style: { + ...state.style, ...action.payload, }, } @@ -569,6 +569,12 @@ const layerEdit = (state = null, action) => { return newState + case types.LAYER_EDIT_EARTH_ENGINE_PERIOD_SET: + return { + ...state, + period: action.payload, + } + case types.LAYER_EDIT_FEATURE_STYLE_SET: return { ...state, diff --git a/src/util/__tests__/earthEngine.spec.js b/src/util/__tests__/earthEngine.spec.js new file mode 100644 index 000000000..8ab992157 --- /dev/null +++ b/src/util/__tests__/earthEngine.spec.js @@ -0,0 +1,57 @@ +import { getStaticFilterFromPeriod } from '../earthEngine.js' + +jest.mock('../../components/map/MapApi.js', () => ({ + loadEarthEngineWorker: jest.fn(), +})) + +describe('earth engine utils', () => { + it('get static filter from dynamic filter and period', () => { + let period = { id: '202312' } + let dynamicFilter = [ + { + type: 'eq', + arguments: ['system:index', '$1'], + }, + ] + let staticFilter = getStaticFilterFromPeriod(period, dynamicFilter) + expect(staticFilter).not.toEqual(dynamicFilter) + expect(staticFilter.length).toEqual(dynamicFilter.length) + expect(staticFilter[0].arguments[1]).toEqual(period.id) + + period = { id: 2020 } + dynamicFilter = [ + { + type: 'eq', + arguments: ['year', '$1'], + }, + ] + staticFilter = getStaticFilterFromPeriod(period, dynamicFilter) + expect(staticFilter).not.toEqual(dynamicFilter) + expect(staticFilter.length).toEqual(dynamicFilter.length) + expect(staticFilter[0].arguments[1]).toEqual(period.id) + + period = { id: 2020 } + dynamicFilter = [ + { + type: 'eq', + arguments: ['year', '$1'], + }, + { + type: 'eq', + arguments: ['UNadj', 'yes'], + }, + ] + staticFilter = getStaticFilterFromPeriod(period, dynamicFilter) + expect(staticFilter.length).toEqual(dynamicFilter.length) + expect(staticFilter).not.toEqual(dynamicFilter) + expect(staticFilter[0]).not.toEqual(dynamicFilter[0]) + expect(staticFilter[1]).toEqual(dynamicFilter[1]) + expect(staticFilter[0].arguments[1]).toEqual(period.id) + + let response = getStaticFilterFromPeriod(period, undefined) + expect(response).toBeUndefined() + + response = getStaticFilterFromPeriod(undefined, dynamicFilter) + expect(response).toBeUndefined() + }) +}) diff --git a/src/util/__tests__/favorites.spec.js b/src/util/__tests__/favorites.spec.js index 406033d71..cb82b6160 100644 --- a/src/util/__tests__/favorites.spec.js +++ b/src/util/__tests__/favorites.spec.js @@ -66,6 +66,7 @@ describe('cleanMapConfig', () => { layer: 'earthEngine', layerId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj_TOTAL', datasetId: 'WorldPop/GP/100m/pop_age_sex_cons_unadj', + format: 'ImageCollection', name: 'Population', unit: 'people per hectare', description: @@ -74,15 +75,29 @@ describe('cleanMapConfig', () => { sourceUrl: 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop_age_sex_cons_unadj', defaultAggregations: ['sum', 'mean'], - periodType: 'Yearly', + periodType: 'YEARLY', + useCentroid: true, band: 'population', + filters: [ + { + type: 'eq', + arguments: ['year', '$1'], + }, + ], mosaic: true, - params: { + style: { min: 0, max: 25, - palette: - '#fee5d9,#fcbba1,#fc9272,#fb6a4a,#de2d26,#a50f15', + palette: [ + '#fee5d9', + '#fcbba1', + '#fc9272', + '#fb6a4a', + '#de2d26', + '#a50f15', + ], }, + maskOperator: 'gt', opacity: 0.9, aggregationType: ['sum', 'mean'], rows: [ @@ -160,12 +175,13 @@ describe('cleanMapConfig', () => { defaultBasemapId: 'thedefaultBasemap', }) + console.log(JSON.stringify(cleanedConfig)) + expect(cleanedConfig).toEqual({ basemap: 'thedefaultBasemap', mapViews: [ { areaRadius: 5000, - config: '{"id":"WorldPop/GP/100m/pop_age_sex_cons_unadj_TOTAL","params":{"min":0,"max":25,"palette":"#fee5d9,#fcbba1,#fc9272,#fb6a4a,#de2d26,#a50f15"},"band":"population","aggregationType":["sum","mean"],"filter":[{"id":"ABW_2020","name":"2020","type":"eq","arguments":["year",2020]}]}', layer: 'earthEngine', name: 'Population', opacity: 0.9, @@ -185,6 +201,7 @@ describe('cleanMapConfig', () => { ], }, ], + config: '{"id":"WorldPop/GP/100m/pop_age_sex_cons_unadj_TOTAL","style":{"min":0,"max":25,"palette":["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"]},"band":"population","aggregationType":["sum","mean"]}', }, ], }) diff --git a/src/util/earthEngine.js b/src/util/earthEngine.js index 9e11d9b20..5310b9e3d 100644 --- a/src/util/earthEngine.js +++ b/src/util/earthEngine.js @@ -1,5 +1,7 @@ import i18n from '@dhis2/d2-i18n' import { loadEarthEngineWorker } from '../components/map/MapApi.js' +import { legacyNighttimeDatasetId } from '../constants/earthEngineLayers/legacy/nighttime_DMSP-OLS.js' +import { EE_MONTHLY } from '../constants/periods.js' import { apiFetch } from './api.js' import { formatStartEndDate } from './time.js' @@ -15,34 +17,55 @@ export const getStartEndDate = (data) => false ) -export const getPeriodFromFilter = (filter) => { +const getStaticFiltersFromDynamic = (filters, ...args) => + filters.map((filter) => ({ + ...filter, + arguments: filter.arguments.map((arg) => { + const match = arg.match(/^\$([0-9]+)$/) + return match ? args[match[1] - 1] : arg + }), + })) + +const getMonth = (data) => { + const date = new Date(data['system:time_start']) + const month = date.toLocaleString('default', { month: 'long' }) + const year = date.getFullYear() + return `${month} ${year}` +} + +export const getStaticFilterFromPeriod = (period, filters) => { + if (!period || !filters) { + return + } + + return getStaticFiltersFromDynamic(filters, period.id) +} + +const nonDigits = /^\D+/g + +// Only used for backward compatibility +export const getPeriodFromFilter = (filter, datasetId) => { if (!Array.isArray(filter) || !filter.length) { return null } + const isNightTimeLights = datasetId === legacyNighttimeDatasetId + const { id, name, year, arguments: args } = filter[0] + let periodId = id || args[1] + + // Remove non-digits from periodId (needed for backward compatibility for population layers saved before 2.41) + if (!isNightTimeLights && nonDigits.test(periodId)) { + periodId = Number(periodId.replace(nonDigits, '')) // Remove non-digits + } return { - id: id || args[1], + id: periodId, name, year, } } -// Returns period name from filter -export const getPeriodNameFromFilter = (filter) => { - const period = getPeriodFromFilter(filter) - - if (!period) { - return null - } - - const { name, year } = period - const showYear = year && String(year) !== name - - return `${name}${showYear ? ` ${year}` : ''}` -} - // Returns auth token for EE API as a promise /* eslint-disable no-async-promise-executor */ export const getAuthToken = () => @@ -72,7 +95,6 @@ export const getAuthToken = () => ...token, }) }) - /* eslint-enable no-async-promise-executor */ let workerPromise @@ -89,31 +111,31 @@ const getWorkerInstance = async () => { return workerPromise } -export const getPeriods = async (eeId, periodType) => { - const getPeriod = ({ id, properties }) => { - const year = new Date(properties['system:time_start']).getFullYear() - const name = - periodType === 'Yearly' ? String(year) : getStartEndDate(properties) - - // Remove when old population should not be supported - if (eeId === 'WorldPop/POP') { - return { id: name, name, year } - } +export const getPeriods = async (eeId, periodType, filters) => { + const useSystemIndex = filters.some((f) => + f.arguments.includes('system:index') + ) - return { id, name, year } + const getPeriod = ({ id, properties }) => { + const year = + properties.year || + new Date(properties['system:time_start']).getFullYear() + + return periodType === 'YEARLY' + ? { id: useSystemIndex ? id : year, name: String(year) } + : { + id, + name: + periodType === EE_MONTHLY + ? getMonth(properties) + : getStartEndDate(properties), + year, + } } const eeWorker = await getWorkerInstance() const { features } = await eeWorker.getPeriods(eeId) + return features.map(getPeriod) } - -export const defaultFilters = ({ id, name, year }) => [ - { - type: 'eq', - arguments: ['system:index', String(id)], - name, - year, - }, -] diff --git a/src/util/favorites.js b/src/util/favorites.js index b9c7eeca2..db1d680e7 100644 --- a/src/util/favorites.js +++ b/src/util/favorites.js @@ -64,8 +64,8 @@ const validLayerProperties = [ 'organisationUnitSelectionMode', 'orgUnitField', 'orgUnitFieldDisplayName', - 'params', - 'periodName', + 'style', + 'period', 'periodType', 'renderingStrategy', 'program', @@ -134,14 +134,14 @@ const models2objects = (layer) => { } if (layerType === EARTH_ENGINE_LAYER) { - const { layerId: id, band, params, aggregationType, filter } = layer + const { layerId: id, band, style, aggregationType, period } = layer const eeConfig = { id, - params, + style, band, aggregationType, - filter, + period, } // Removes undefined keys before stringify @@ -152,11 +152,11 @@ const models2objects = (layer) => { delete layer.layerId delete layer.datasetId - delete layer.params + delete layer.style + delete layer.period delete layer.filter delete layer.filters delete layer.periodType - delete layer.periodName delete layer.aggregationType delete layer.band } else if (layerType === TRACKED_ENTITY_LAYER) { diff --git a/src/util/getDefaultLayerTypes.js b/src/util/getDefaultLayerTypes.js index 836c449b6..b246630f2 100644 --- a/src/util/getDefaultLayerTypes.js +++ b/src/util/getDefaultLayerTypes.js @@ -1,5 +1,5 @@ import i18n from '@dhis2/d2-i18n' -import { earthEngineLayers } from '../constants/earthEngine.js' +import earthEngineLayers from '../constants/earthEngineLayers/index.js' import { THEMATIC_LAYER, EVENT_LAYER, @@ -40,5 +40,5 @@ export const getDefaultLayerTypes = () => [ img: 'images/orgunits.png', opacity: 1, }, - ...earthEngineLayers().filter((l) => !l.legacy), + ...earthEngineLayers.filter((l) => !l.legacy), ] From 77373caaf7e60191878c085fe5c472c61d20ba3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Sandvik?= Date: Wed, 8 May 2024 16:15:26 +0200 Subject: [PATCH 08/25] chore: i18n --- i18n/en.pot | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index f94749c03..74fec5009 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-03-15T10:46:33.764Z\n" -"PO-Revision-Date: 2024-03-15T10:46:33.764Z\n" +"POT-Creation-Date: 2024-05-08T14:13:18.349Z\n" +"PO-Revision-Date: 2024-05-08T14:13:18.349Z\n" msgid "Untitled map, {{date}}" msgstr "Untitled map, {{date}}" @@ -857,9 +857,6 @@ msgstr "Previous year" msgid "Next year" msgstr "Next year" -msgid "Relative" -msgstr "Relative" - msgid "Period type" msgstr "Period type" @@ -1251,6 +1248,9 @@ msgstr "Equal counts" msgid "Symbol" msgstr "Symbol" +msgid "Relative" +msgstr "Relative" + msgid "Daily" msgstr "Daily" From 52ed092dfff9a1604004976b6e4234aa62c76797 Mon Sep 17 00:00:00 2001 From: Bjorn Sandvik Date: Thu, 11 Jul 2024 11:07:28 +0200 Subject: [PATCH 09/25] feat: allow admins to select layer sources to show in the app Implement: https://dhis2.atlassian.net/browse/DHIS2-16098 Reserve DHIS2_MAPS_APP_CORE namespace in app config. Add dataStore handling hook. Add redux store to handle managed layer sources. Add manage layer sources button and modal components accessible to maps admin user (authority: F_EXTERNAL_MAP_LAYER_PUBLIC_ADD). Add/update cypress tests. Include @google/earthengine patch to support service worker, it was previously included in @dhis2/maps-gl as a custom version of the library. --------- Co-authored-by: Jen Jones Arnesen Co-authored-by: Bruno Raimbault --- cypress/integration/manageLayerSources.cy.js | 358 ++++++++++++++++++ d2.config.js | 2 + i18n/en.pot | 17 +- package.json | 2 +- src/actions/layerSources.js | 19 + src/components/app/App.js | 2 + src/components/app/useLoadDataStore.js | 57 +++ src/components/layerSources/LayerSource.js | 41 ++ .../layerSources/ManageLayerSourcesButton.js | 35 ++ .../layerSources/ManageLayerSourcesModal.js | 68 ++++ .../styles/LayerSource.module.css | 52 +++ .../ManageLayerSourcesButton.module.css | 4 + .../styles/ManageLayerSourcesModal.module.css | 10 + .../layers/overlays/AddLayerButton.js | 17 +- .../layers/overlays/AddLayerPopover.js | 61 ++- src/components/orgunits/OrgUnitData.js | 4 +- src/constants/actionTypes.js | 5 + src/constants/earthEngineLayers/index.js | 14 + src/constants/settings.js | 5 + src/hooks/useManagedLayerSourcesStore.js | 67 ++++ src/reducers/index.js | 2 + src/reducers/layerSources.js | 17 + src/util/__tests__/app.spec.js | 4 +- src/util/app.js | 10 +- src/util/getDefaultLayerTypes.js | 2 - yarn.lock | 123 ++++-- 26 files changed, 925 insertions(+), 73 deletions(-) create mode 100644 cypress/integration/manageLayerSources.cy.js create mode 100644 src/actions/layerSources.js create mode 100644 src/components/app/useLoadDataStore.js create mode 100644 src/components/layerSources/LayerSource.js create mode 100644 src/components/layerSources/ManageLayerSourcesButton.js create mode 100644 src/components/layerSources/ManageLayerSourcesModal.js create mode 100644 src/components/layerSources/styles/LayerSource.module.css create mode 100644 src/components/layerSources/styles/ManageLayerSourcesButton.module.css create mode 100644 src/components/layerSources/styles/ManageLayerSourcesModal.module.css create mode 100644 src/hooks/useManagedLayerSourcesStore.js create mode 100644 src/reducers/layerSources.js diff --git a/cypress/integration/manageLayerSources.cy.js b/cypress/integration/manageLayerSources.cy.js new file mode 100644 index 000000000..372c362f8 --- /dev/null +++ b/cypress/integration/manageLayerSources.cy.js @@ -0,0 +1,358 @@ +import { EXTENDED_TIMEOUT, getApiBaseUrl } from '../support/util.js' + +const MAPS_ADMIN_AUTHORITY_ID = 'F_EXTERNAL_MAP_LAYER_PUBLIC_ADD' +const MAPS_APP_NAMESPACE = 'DHIS2_MAPS_APP_CORE' +const MAPS_APP_KEY_MANAGED_LAYER_SOURCES = 'MANAGED_LAYER_SOURCES' +const LAYER_SOURCES_DEFAULT_MANAGED_LIST = [ + 'WorldPop/GP/100m/pop_age_sex_cons_unadj_TOTAL', + 'WorldPop/GP/100m/pop_age_sex_cons_unadj', + 'ECMWF/ERA5_LAND/MONTHLY_AGGR/total_precipitation_sum', + 'ECMWF/ERA5_LAND/MONTHLY_AGGR/temperature_2m', + 'MODIS/006/MCD12Q1', + 'USGS/SRTMGL1_003', + 'GOOGLE/Research/open-buildings/v1/polygons', +] +const LAYER_SOURCES_DEFAULT_MANAGED = LAYER_SOURCES_DEFAULT_MANAGED_LIST.length +const LAYER_SOURCES_DEFAULT_STANDARD = 6 +const LAYER_SOURCES_DEFAULT_ALL = + LAYER_SOURCES_DEFAULT_MANAGED + LAYER_SOURCES_DEFAULT_STANDARD + +context('Manage Layer Sources', () => { + it('admin authority is already available for current user', () => { + cy.request({ + method: 'GET', + url: `${getApiBaseUrl()}/api/me/authorization/${MAPS_ADMIN_AUTHORITY_ID}`, + headers: { + 'Content-Type': 'text/plain', + }, + }).then((response) => { + expect(response.status).to.eq(200) + expect(response.body).to.eq(true) + }) + }) + + it('w/ admin authority: check add layer popover and managelayersources modal behavior and content', () => { + // Make sure authority request response is not comming from cache + cy.intercept( + 'GET', + '**/me?fields=id%2Cusername%2CdisplayName~rename(name)%2Cauthorities%2Csettings%5BkeyAnalysisDisplayProperty%5D', + (request) => { + delete request.headers['if-none-match'] + } + ).as('getAuthorization') + + // Visit page + cy.visit('/', EXTENDED_TIMEOUT) + + // Opening add layer popover and checking content + cy.getByDataTest('add-layer-button').click() + cy.getByDataTest('addlayerpopover').should('be.visible') + cy.getByDataTest('managelayersources-button').should('be.visible') + cy.getByDataTest('managelayersources-button').contains( + 'Manage available layer sources' + ) + + // Opening manage layers modal and checking content + cy.getByDataTest('managelayersources-button').click() + cy.getByDataTest('addlayerpopover').should('not.exist') + cy.getByDataTest('managelayersourcesmodal').should('be.visible') + cy.getByDataTest('managelayersourcesmodal-title').should('be.visible') + cy.getByDataTest('managelayersourcesmodal-content').should('be.visible') + cy.getByDataTest('layersource-checkbox') + .its('length') + .should('be.gte', 1) + cy.getByDataTest('managelayersourcesmodal-actions').should('be.visible') + cy.getByDataTest('managelayersourcesmodal-button') + .contains('Close') + .should('be.visible') + + // Closing manage layers modal + cy.getByDataTest('managelayersourcesmodal-button').click() + cy.getByDataTest('managelayersourcesmodal').should('not.exist') + }) + + it('w/ admin authority: add and remove layers', () => { + Cypress.Commands.add('waitForLayerContainers', (n) => { + cy.getByDataTest('addlayerpopover', EXTENDED_TIMEOUT) + .find('[class^="Layer_container"]') + .should('have.length', n) + }) + Cypress.Commands.add('waitForCheckbox', (index, assertion) => { + cy.getByDataTest('layersource-checkbox', EXTENDED_TIMEOUT) + .eq(index) + .find('input') + .should(assertion) + }) + + // Replace dataStore with default layer sources visibility list + cy.request({ + method: 'PUT', + url: `${getApiBaseUrl()}/api/dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}`, + headers: { + 'Content-Type': 'application/json;charset=UTF-8', + }, + body: LAYER_SOURCES_DEFAULT_MANAGED_LIST, + }).then((response) => { + expect(response.status).to.eq(200) + }) + + // Visit page + cy.visit('/', EXTENDED_TIMEOUT) + + cy.getByDataTest('add-layer-button').click() + + cy.log('remove one layer') + cy.getByDataTest('managelayersources-button').click() + cy.waitForCheckbox(0, 'be.checked') + cy.getByDataTest('layersource-checkbox').eq(0).click() + cy.getByDataTest('managelayersourcesmodal-button').click() + + cy.log('check there is n-1 layers available') + cy.getByDataTest('add-layer-button').click() + const n1 = LAYER_SOURCES_DEFAULT_ALL - 1 + cy.waitForLayerContainers(n1).then((elements) => { + cy.wrap(elements.length).should('equal', n1) + }) + + cy.log('verify the checkbox of the first layer is not checked') + cy.getByDataTest('managelayersources-button').click() + cy.waitForCheckbox(0, 'not.be.checked') + + cy.log('remove one more layer') + cy.waitForCheckbox(1, 'be.checked') + cy.getByDataTest('layersource-checkbox').eq(1).click() + cy.getByDataTest('managelayersourcesmodal-button').click() + + cy.log('check there is n-2 layers available') + cy.getByDataTest('add-layer-button').click() + const n2 = LAYER_SOURCES_DEFAULT_ALL - 2 + cy.waitForLayerContainers(n2).then((elements) => { + cy.wrap(elements.length).should('equal', n2) + }) + + cy.log('verify the checkbox of the second layer is not checked') + cy.getByDataTest('managelayersources-button').click() + cy.waitForCheckbox(1, 'not.be.checked') + + cy.log('add one layer') + cy.waitForCheckbox(0, 'not.be.checked') + cy.getByDataTest('layersource-checkbox').eq(0).click() + cy.getByDataTest('managelayersourcesmodal-button').click() + + cy.log('check there is n-1 layers available') + cy.getByDataTest('add-layer-button').click() + const n3 = LAYER_SOURCES_DEFAULT_ALL - 1 + cy.waitForLayerContainers(n3).then((elements) => { + cy.wrap(elements.length).should('equal', n3) + }) + + cy.log('verify the checkbox of the first layer is checked') + cy.getByDataTest('managelayersources-button').click() + cy.waitForCheckbox(0, 'be.checked') + cy.getByDataTest('managelayersourcesmodal-button').click() + + // Restore dataStore with default layer sources visibility list + cy.request({ + method: 'PUT', + url: `${getApiBaseUrl()}/api/dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}`, + headers: { + 'Content-Type': 'application/json;charset=UTF-8', + }, + body: LAYER_SOURCES_DEFAULT_MANAGED_LIST, + }).then((response) => { + expect(response.status).to.eq(200) + }) + }) + + it('w/o admin authority: check managelayersources button is hidden', () => { + Cypress.Commands.add('waitForLayerContainers', (n) => { + cy.getByDataTest('addlayerpopover', EXTENDED_TIMEOUT) + .find('[class^="Layer_container"]') + .should('have.length', n) + }) + + // Remove admin authority + cy.intercept( + 'GET', + '**/me?fields=id%2Cusername%2CdisplayName~rename(name)%2Cauthorities%2Csettings%5BkeyAnalysisDisplayProperty%5D', + (request) => { + delete request.headers['if-none-match'] + request.continue((response) => { + if (response.body.authorities) { + response.body.authorities = ['M_dhis-web-mapping'] + } + }) + } + ).as('getAuthorization') + + // Replace dataStore with default layer sources visibility list -1 + cy.request({ + method: 'PUT', + url: `${getApiBaseUrl()}/api/dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}`, + headers: { + 'Content-Type': 'application/json;charset=UTF-8', + }, + body: LAYER_SOURCES_DEFAULT_MANAGED_LIST.slice(0, -1), + }).then((response) => { + expect(response.status).to.eq(200) + }) + + // Visit page + cy.visit('/', EXTENDED_TIMEOUT) + + cy.wait('@getAuthorization', EXTENDED_TIMEOUT).then((interception) => { + cy.log(interception.response.body.authorities) + expect(interception.response.body.authorities).to.deep.equal([ + 'M_dhis-web-mapping', + ]) + + // Checks that settings are persisted + cy.getByDataTest('add-layer-button').click() + const n4 = LAYER_SOURCES_DEFAULT_ALL - 1 + cy.waitForLayerContainers(n4).then((elements) => { + cy.wrap(elements.length).should('equal', n4) + }) + + // Checks that manage layers modal is not accessible + cy.getByDataTest('managelayers-button').should('not.exist') + }) + + // Restore dataStore with default layer sources visibility list + cy.request({ + method: 'PUT', + url: `${getApiBaseUrl()}/api/dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}`, + headers: { + 'Content-Type': 'application/json;charset=UTF-8', + }, + body: LAYER_SOURCES_DEFAULT_MANAGED_LIST, + }).then((response) => { + expect(response.status).to.eq(200) + }) + }) + + it('at start, if dataStore = [], app initializes namespace', () => { + Cypress.Commands.add('waitForLayerContainers', (n) => { + cy.getByDataTest('addlayerpopover', EXTENDED_TIMEOUT) + .find('[class^="Layer_container"]') + .should('have.length', n) + }) + + // Mock empty dataStore + cy.intercept('GET', '**/dataStore', (request) => { + delete request.headers['if-none-match'] + request.continue((response) => { + response.send([]) + }) + }).as('getDataStoreEmpty') + + // Checks app sends namespace initialization request + cy.intercept( + 'POST', + `**/dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}`, + (request) => { + expect(request.body) + .to.be.an('array') + .that.has.lengthOf(LAYER_SOURCES_DEFAULT_MANAGED) + // Mock response (request is not actually sent) + request.reply({ + statusCode: 200, + }) + } + ).as('postNamespaceDefault') + + // Visit page + cy.visit('/', EXTENDED_TIMEOUT) + + cy.wait('@getDataStoreEmpty', EXTENDED_TIMEOUT).then(() => { + cy.wait('@postNamespaceDefault', EXTENDED_TIMEOUT).then(() => { + // Verify default layer sources are available + cy.getByDataTest('add-layer-button').click() + const n0 = LAYER_SOURCES_DEFAULT_ALL + cy.waitForLayerContainers(n0).then((elements) => { + cy.wrap(elements.length).should('equal', n0) + }) + }) + }) + }) + + it('at start, if namespace = {}, app re-initializes namespace', () => { + Cypress.Commands.add('waitForLayerContainers', (n) => { + cy.getByDataTest('addlayerpopover', EXTENDED_TIMEOUT) + .find('[class^="Layer_container"]') + .should('have.length', n) + }) + + // Mock object namespace + cy.intercept( + 'GET', + `**/dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}`, + (request) => { + delete request.headers['if-none-match'] + request.continue((response) => { + response.send({ invalid: 'fromat' }) + }) + } + ).as('getNamespaceObject') + + // Checks app sends namespace re-initialization request + cy.intercept( + 'PUT', + `**/dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}`, + (request) => { + expect(request.body) + .to.be.an('array') + .that.has.lengthOf(LAYER_SOURCES_DEFAULT_MANAGED) + // Mock response (request is not actually sent) + request.reply({ + statusCode: 200, + }) + } + ).as('putNamespaceDefault') + + // Visit page + cy.visit('/', EXTENDED_TIMEOUT) + + cy.wait('@getNamespaceObject', EXTENDED_TIMEOUT).then(() => { + cy.wait('@putNamespaceDefault', EXTENDED_TIMEOUT).then(() => { + // Verify default layer sources are available + cy.getByDataTest('add-layer-button').click() + const n0 = LAYER_SOURCES_DEFAULT_ALL + cy.waitForLayerContainers(n0).then((elements) => { + cy.wrap(elements.length).should('equal', n0) + }) + }) + }) + }) + + it('at start, if "invalid_source_id" in namespace, app ignores id', () => { + Cypress.Commands.add('waitForLayerContainers', (n) => { + cy.getByDataTest('addlayerpopover', EXTENDED_TIMEOUT) + .find('[class^="Layer_container"]') + .should('have.length', n) + }) + + // Mock "invalid_source_id" in namespace + cy.intercept( + 'GET', + `**/dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}`, + (request) => { + delete request.headers['if-none-match'] + request.continue((response) => { + response.send([...response.body, 'invalid_source_id']) + }) + } + ).as('getNamespaceArray') + + // Visit page + cy.visit('/', EXTENDED_TIMEOUT) + + cy.wait('@getNamespaceArray', EXTENDED_TIMEOUT).then(() => { + // Verify default layer sources are available + cy.getByDataTest('add-layer-button').click() + const n0 = LAYER_SOURCES_DEFAULT_ALL + cy.waitForLayerContainers(n0).then((elements) => { + cy.wrap(elements.length).should('equal', n0) + }) + }) + }) +}) diff --git a/d2.config.js b/d2.config.js index c182c651d..57f8d0e17 100644 --- a/d2.config.js +++ b/d2.config.js @@ -20,6 +20,8 @@ const config = { }, coreApp: true, + + dataStoreNamespace: 'DHIS2_MAPS_APP_CORE', } module.exports = config diff --git a/i18n/en.pot b/i18n/en.pot index fe79d2fd8..ebbae574e 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-06-04T09:11:11.417Z\n" -"PO-Revision-Date: 2024-06-04T09:11:11.417Z\n" +"POT-Creation-Date: 2024-07-09T09:06:27.427Z\n" +"PO-Revision-Date: 2024-07-09T09:06:27.427Z\n" msgid "Untitled map, {{date}}" msgstr "Untitled map, {{date}}" @@ -545,6 +545,19 @@ msgstr "Style by group set" msgid "Indicator group" msgstr "Indicator group" +msgid "Manage available layer sources" +msgstr "Manage available layer sources" + +msgid "Configure available layer sources" +msgstr "Configure available layer sources" + +msgid "" +"Choose which layer sources are available to add to maps. This selection " +"applies to all users." +msgstr "" +"Choose which layer sources are available to add to maps. This selection " +"applies to all users." + msgid "Collapse" msgstr "Collapse" diff --git a/package.json b/package.json index 60384b29f..f6d40bd57 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@dhis2/app-service-alerts": "3.9.4", "@dhis2/app-service-datastore": "^1.0.0-beta.3", "@dhis2/d2-i18n": "^1.1.3", - "@dhis2/maps-gl": "^3.9.2", + "@dhis2/maps-gl": "git+https://github.com/d2-ci/maps-gl.git#6bc87213a92fda4fb9fcfe79b0a9f18aa21bb63a", "@dhis2/ui": "^9.2.0", "@krakenjs/post-robot": "^11.0.0", "@reportportal/agent-js-cypress": "git+https://github.com/dhis2/agent-js-cypress.git#develop", diff --git a/src/actions/layerSources.js b/src/actions/layerSources.js new file mode 100644 index 000000000..e3f4355ec --- /dev/null +++ b/src/actions/layerSources.js @@ -0,0 +1,19 @@ +import * as types from '../constants/actionTypes.js' + +// Initialize visible layerSources +export const initLayerSources = (newArray) => ({ + type: types.LAYER_SOURCES_INIT, + payload: newArray, +}) + +// Add layerSource +export const addLayerSource = (id) => ({ + type: types.LAYER_SOURCE_ADD, + payload: id, +}) + +// Remove layerSource +export const removeLayerSource = (id) => ({ + type: types.LAYER_SOURCE_REMOVE, + payload: id, +}) diff --git a/src/components/app/App.js b/src/components/app/App.js index 65c12df72..d5b33743c 100644 --- a/src/components/app/App.js +++ b/src/components/app/App.js @@ -12,10 +12,12 @@ import DetailsPanel from './DetailsPanel.js' import ModalContainer from './ModalContainer.js' import './App.css' import styles from './styles/App.module.css' +import { useLoadDataStore } from './useLoadDataStore.js' import { useLoadMap } from './useLoadMap.js' const App = () => { useLoadMap() + useLoadDataStore() const [interpretationsRenderCount, setInterpretationsRenderCount] = useState(1) diff --git a/src/components/app/useLoadDataStore.js b/src/components/app/useLoadDataStore.js new file mode 100644 index 000000000..b5dc36c51 --- /dev/null +++ b/src/components/app/useLoadDataStore.js @@ -0,0 +1,57 @@ +import { useDataEngine } from '@dhis2/app-runtime' +import { useDispatch } from 'react-redux' +import { initLayerSources } from '../../actions/layerSources.js' +import { earthEngineLayersDefaultIds } from '../../constants/earthEngineLayers/index.js' +import { + MAPS_APP_NAMESPACE, + MAPS_APP_KEY_MANAGED_LAYER_SOURCES, +} from '../../constants/settings.js' + +export const useLoadDataStore = () => { + // Keys: MAPS_APP_KEY_MANAGED_LAYER_SOURCES + const resourceLayerSourcesVisibility = `dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}` + const layerSourceDefaultIds = [...earthEngineLayersDefaultIds] + const dispatch = useDispatch() + const engine = useDataEngine() + engine + .query({ dataStore: { resource: 'dataStore' } }) + .then(({ dataStore }) => { + if (!dataStore.includes(MAPS_APP_NAMESPACE)) { + // Create namespace/key if missing in datastore + engine + .mutate({ + resource: resourceLayerSourcesVisibility, + type: 'create', + data: layerSourceDefaultIds, + }) + .then(() => { + dispatch(initLayerSources(layerSourceDefaultIds)) + }) + } else { + engine + .query({ + layerSourcesVisibility: { + resource: resourceLayerSourcesVisibility, + }, + }) + .then(({ layerSourcesVisibility }) => { + if (!Array.isArray(layerSourcesVisibility)) { + // Reset namespace/key if integrity has been broken + engine + .mutate({ + resource: resourceLayerSourcesVisibility, + type: 'update', + data: layerSourceDefaultIds, + }) + .then(() => { + dispatch( + initLayerSources(layerSourceDefaultIds) + ) + }) + } else { + dispatch(initLayerSources(layerSourcesVisibility)) + } + }) + } + }) +} diff --git a/src/components/layerSources/LayerSource.js b/src/components/layerSources/LayerSource.js new file mode 100644 index 000000000..97d9a5ab4 --- /dev/null +++ b/src/components/layerSources/LayerSource.js @@ -0,0 +1,41 @@ +import i18n from '@dhis2/d2-i18n' +import PropTypes from 'prop-types' +import React from 'react' +import { Checkbox } from '../core/index.js' +import styles from './styles/LayerSource.module.css' + +const LayerSource = ({ layerSource, isAdded, onShow, onHide }) => { + const { layerId, name, img, description, source } = layerSource + + return ( +
trigger hide, n > trigger show + onClick={() => (isAdded ? onHide(layerId) : onShow(layerId))} + > + {}} + /> + +
+

{name}

+

{description}

+
+ {i18n.t('Source')}: {source} +
+
+
+ ) +} + +LayerSource.propTypes = { + isAdded: PropTypes.bool.isRequired, + layerSource: PropTypes.object.isRequired, + onHide: PropTypes.func.isRequired, + onShow: PropTypes.func.isRequired, +} + +export default LayerSource diff --git a/src/components/layerSources/ManageLayerSourcesButton.js b/src/components/layerSources/ManageLayerSourcesButton.js new file mode 100644 index 000000000..9f3b32c2c --- /dev/null +++ b/src/components/layerSources/ManageLayerSourcesButton.js @@ -0,0 +1,35 @@ +import { useCachedDataQuery } from '@dhis2/analytics' +import i18n from '@dhis2/d2-i18n' +import { Button } from '@dhis2/ui' +import PropTypes from 'prop-types' +import React from 'react' +import { MAPS_ADMIN_AUTHORITY_ID } from '../../constants/settings.js' +import styles from './styles/ManageLayerSourcesButton.module.css' + +const ManageLayerSourcesButton = ({ onClick }) => { + const { currentUser } = useCachedDataQuery() + const isMapsAdmin = currentUser.authorities.has(MAPS_ADMIN_AUTHORITY_ID) + + if (!isMapsAdmin) { + return null + } + + return ( +
+ +
+ ) +} + +ManageLayerSourcesButton.propTypes = { + onClick: PropTypes.func.isRequired, +} + +export default ManageLayerSourcesButton diff --git a/src/components/layerSources/ManageLayerSourcesModal.js b/src/components/layerSources/ManageLayerSourcesModal.js new file mode 100644 index 000000000..89f6a371d --- /dev/null +++ b/src/components/layerSources/ManageLayerSourcesModal.js @@ -0,0 +1,68 @@ +import i18n from '@dhis2/d2-i18n' +import { + Modal, + ModalTitle, + ModalContent, + ModalActions, + Button, + ButtonStrip, +} from '@dhis2/ui' +import PropTypes from 'prop-types' +import React from 'react' +import earthEngineLayers from '../../constants/earthEngineLayers/index.js' +import useManagedLayerSourcesStore from '../../hooks/useManagedLayerSourcesStore.js' +import LayerSource from './LayerSource.js' +import styles from './styles/ManageLayerSourcesModal.module.css' + +const nonLegacyEarthEngineLayers = earthEngineLayers + .filter((l) => !l.legacy) + .sort((a, b) => a.name.localeCompare(b.name)) +const layerSources = [...nonLegacyEarthEngineLayers] + +const ManageLayerSourcesModal = ({ onClose }) => { + const { managedLayerSources, showLayerSource, hideLayerSource } = + useManagedLayerSourcesStore() + + return ( + + + {i18n.t('Configure available layer sources')} + + +
+ {i18n.t( + 'Choose which layer sources are available to add to maps. This selection applies to all users.' + )} +
+ {layerSources.map((layerSource) => ( + + ))} +
+ + + + + +
+ ) +} + +ManageLayerSourcesModal.propTypes = { + onClose: PropTypes.func.isRequired, +} + +export default ManageLayerSourcesModal diff --git a/src/components/layerSources/styles/LayerSource.module.css b/src/components/layerSources/styles/LayerSource.module.css new file mode 100644 index 000000000..8f6c11f72 --- /dev/null +++ b/src/components/layerSources/styles/LayerSource.module.css @@ -0,0 +1,52 @@ +.layerSource { + display: flex; + align-items: center; + color: var(--colors-grey800); + font-size: 0.9rem; + border: 1px solid var(--colors-grey300); + border-radius: 4px; + padding: var(--spacers-dp16) var(--spacers-dp8); + margin-bottom: var(--spacers-dp8); + margin-right: var(--spacers-dp8); + cursor: pointer; +} + +.layerSource:hover { + border-color: var(--colors-grey400); +} + +.layerSource input { + cursor: pointer; +} + +.layerSource img { + display: block; + box-sizing: border-box; + border: 1px solid var(--colors-grey400); + width: 120px; + height: 120px; + margin-left: var(--spacers-dp16); + margin-right: var(--spacers-dp16); +} + +.layerSourceInfo { + align-self: start; +} + +.layerSourceInfo h2 { + margin: 0; + padding-top: 2px; + font-size: 0.9rem; + font-weight: 500; +} + +.layerSourceInfo p { + color: var(--colors-grey700); + margin: var(--spacers-dp8) 0; + line-height: 1.2rem; +} + +.layerSourceInfo .source { + color: var(--colors-grey600); + padding-top: var(--spacers-dp8); +} diff --git a/src/components/layerSources/styles/ManageLayerSourcesButton.module.css b/src/components/layerSources/styles/ManageLayerSourcesButton.module.css new file mode 100644 index 000000000..ffea82b56 --- /dev/null +++ b/src/components/layerSources/styles/ManageLayerSourcesButton.module.css @@ -0,0 +1,4 @@ +.button { + margin-left: var(--spacers-dp16); + margin-bottom: var(--spacers-dp12); +} diff --git a/src/components/layerSources/styles/ManageLayerSourcesModal.module.css b/src/components/layerSources/styles/ManageLayerSourcesModal.module.css new file mode 100644 index 000000000..b3f2cd5e2 --- /dev/null +++ b/src/components/layerSources/styles/ManageLayerSourcesModal.module.css @@ -0,0 +1,10 @@ +.description { + font-size: 0.9rem; + line-height: 1.5rem; + padding-bottom: var(--spacers-dp12); +} + +.layersTable { + border-collapse: collapse; + width: 100%; +} diff --git a/src/components/layers/overlays/AddLayerButton.js b/src/components/layers/overlays/AddLayerButton.js index 7adf7871d..4e63fa692 100644 --- a/src/components/layers/overlays/AddLayerButton.js +++ b/src/components/layers/overlays/AddLayerButton.js @@ -1,14 +1,22 @@ import i18n from '@dhis2/d2-i18n' import { IconAddCircle24 } from '@dhis2/ui' import React, { useState, useRef } from 'react' +import ManageLayerSourcesModal from '../../layerSources/ManageLayerSourcesModal.js' import AddLayerPopover from './AddLayerPopover.js' import styles from './styles/AddLayerButton.module.css' const AddLayerButton = () => { const [isOpen, setIsOpen] = useState(false) + const [isManaging, setIsManaging] = useState(false) const buttonRef = useRef() + const toggleDialog = () => setIsOpen(!isOpen) + const onManaging = () => { + setIsManaging(true) + setIsOpen(false) + } + return ( <>
@@ -24,7 +32,14 @@ const AddLayerButton = () => {
{isOpen && ( - + + )} + {isManaging && ( + setIsManaging(false)} /> )} ) diff --git a/src/components/layers/overlays/AddLayerPopover.js b/src/components/layers/overlays/AddLayerPopover.js index dca19f96d..9aba2069f 100644 --- a/src/components/layers/overlays/AddLayerPopover.js +++ b/src/components/layers/overlays/AddLayerPopover.js @@ -2,23 +2,50 @@ import { useCachedDataQuery } from '@dhis2/analytics' import { Popover } from '@dhis2/ui' import PropTypes from 'prop-types' import React from 'react' -import { connect } from 'react-redux' +import { useSelector, useDispatch } from 'react-redux' import { addLayer, editLayer } from '../../../actions/layers.js' +import earthEngineLayers from '../../../constants/earthEngineLayers/index.js' import { EXTERNAL_LAYER } from '../../../constants/layers.js' +import useManagedLayerSourcesStore from '../../../hooks/useManagedLayerSourcesStore.js' import { isSplitViewMap } from '../../../util/helpers.js' +import ManageLayerSourcesButton from '../../layerSources/ManageLayerSourcesButton.js' import LayerList from './LayerList.js' -const AddLayerPopover = ({ - anchorEl, - isSplitView, - addLayer, - editLayer, - onClose, -}) => { - const { layerTypes } = useCachedDataQuery() +const includeEarthEngineLayers = (defaultLayerSources, managedLayerSources) => { + // Earth Engine layers that are added to this DHIS2 instance + const managedEarthEngineLayers = earthEngineLayers + .filter((l) => !l.legacy && managedLayerSources.includes(l.layerId)) + .sort((a, b) => a.name.localeCompare(b.name)) + + // Make copy before slicing below + const layerSources = [...defaultLayerSources] + + // Insert Earth Engine layers before external layers + layerSources.splice(5, 0, ...managedEarthEngineLayers) + + return layerSources +} + +const AddLayerPopover = ({ anchorEl, onClose, onManaging }) => { + const isSplitView = useSelector((state) => + isSplitViewMap(state.map.mapViews) + ) + const dispatch = useDispatch() + const { defaultLayerSources } = useCachedDataQuery() + const { managedLayerSources } = useManagedLayerSourcesStore() + const layerSources = includeEarthEngineLayers( + defaultLayerSources, + managedLayerSources + ) + const onLayerSelect = (layer) => { const config = { ...layer } - layer.layer === EXTERNAL_LAYER ? addLayer(config) : editLayer(config) + const layerType = layer.layer + + dispatch( + layerType === EXTERNAL_LAYER ? addLayer(config) : editLayer(config) + ) + onClose() } @@ -32,25 +59,19 @@ const AddLayerPopover = ({ dataTest="addlayerpopover" > + ) } AddLayerPopover.propTypes = { - addLayer: PropTypes.func.isRequired, - editLayer: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired, + onManaging: PropTypes.func.isRequired, anchorEl: PropTypes.object, - isSplitView: PropTypes.bool, } -export default connect( - ({ map }) => ({ - isSplitView: isSplitViewMap(map.mapViews), - }), - { addLayer, editLayer } -)(AddLayerPopover) +export default AddLayerPopover diff --git a/src/components/orgunits/OrgUnitData.js b/src/components/orgunits/OrgUnitData.js index 4108d34d1..7d33e7a5f 100644 --- a/src/components/orgunits/OrgUnitData.js +++ b/src/components/orgunits/OrgUnitData.js @@ -22,8 +22,8 @@ const ORGUNIT_PROFILE_QUERY = { // Only YEARLY period type is supported in first version const periodType = 'YEARLY' -const currentYear = String(new Date().getFullYear()) -const periods = getFixedPeriodsByType({ periodType, currentYear }) +const year = String(new Date().getFullYear()) +const periods = getFixedPeriodsByType({ periodType, year }) const defaultPeriod = filterFuturePeriods(periods)[0] || periods[0] /* diff --git a/src/constants/actionTypes.js b/src/constants/actionTypes.js index 6bcee7896..ba3596a75 100644 --- a/src/constants/actionTypes.js +++ b/src/constants/actionTypes.js @@ -166,3 +166,8 @@ export const FEATURE_PROFILE_CLOSE = 'FEATURE_PROFILE_CLOSE' /* AGGREGATIONS */ export const AGGREGATIONS_SET = 'AGGREGATIONS_SET' + +/* LAYER SOURCES */ +export const LAYER_SOURCES_INIT = 'LAYER_SOURCES_INIT' +export const LAYER_SOURCE_ADD = 'LAYER_SOURCE_ADD' +export const LAYER_SOURCE_REMOVE = 'LAYER_SOURCE_REMOVE' diff --git a/src/constants/earthEngineLayers/index.js b/src/constants/earthEngineLayers/index.js index eb36251c3..8fdc3b092 100644 --- a/src/constants/earthEngineLayers/index.js +++ b/src/constants/earthEngineLayers/index.js @@ -26,6 +26,20 @@ const earthEngineLayers = [ legacyTemperature, ] +const earthEngineLayersDefault = [ + populationTotal, + populationAgeSex, + buildings, + elevation, + precipitationMonthly, + temperatureMonthly, + landcover, +] + +export const earthEngineLayersDefaultIds = earthEngineLayersDefault.map( + (l) => l.layerId +) + export const getEarthEngineLayer = (id) => earthEngineLayers.find((l) => l.layerId === id) diff --git a/src/constants/settings.js b/src/constants/settings.js index 1a42d38c0..016a66ef1 100644 --- a/src/constants/settings.js +++ b/src/constants/settings.js @@ -16,3 +16,8 @@ export const SYSTEM_SETTINGS = [ 'keyHideBiMonthlyPeriods', 'keyDefaultBaseMap', ] + +export const MAPS_ADMIN_AUTHORITY_ID = 'F_EXTERNAL_MAP_LAYER_PUBLIC_ADD' + +export const MAPS_APP_NAMESPACE = 'DHIS2_MAPS_APP_CORE' +export const MAPS_APP_KEY_MANAGED_LAYER_SOURCES = 'MANAGED_LAYER_SOURCES' diff --git a/src/hooks/useManagedLayerSourcesStore.js b/src/hooks/useManagedLayerSourcesStore.js new file mode 100644 index 000000000..4b37a1fb5 --- /dev/null +++ b/src/hooks/useManagedLayerSourcesStore.js @@ -0,0 +1,67 @@ +import { useDataEngine } from '@dhis2/app-runtime' +import { useState, useCallback } from 'react' +import { useDispatch, useSelector } from 'react-redux' +import { addLayerSource, removeLayerSource } from '../actions/layerSources.js' +import { + MAPS_APP_NAMESPACE, + MAPS_APP_KEY_MANAGED_LAYER_SOURCES, +} from '../constants/settings.js' + +const resourceLayerSourcesVisibility = `dataStore/${MAPS_APP_NAMESPACE}/${MAPS_APP_KEY_MANAGED_LAYER_SOURCES}` + +const useManagedLayerSourcesStore = () => { + const [error, setError] = useState() + const engine = useDataEngine() + const dispatch = useDispatch() + const managedLayerSources = useSelector((state) => state.layerSources) + + // Add layer id to data store & redux store + const showLayerSource = useCallback( + (layerId) => { + if (!managedLayerSources.includes(layerId)) { + engine + .mutate({ + resource: resourceLayerSourcesVisibility, + type: 'update', + data: [...managedLayerSources, layerId], + }) + .then((response) => { + if ([200, 201].includes(response.httpStatusCode)) { + dispatch(addLayerSource(layerId)) + } else { + setError(response) + } + }) + .catch(setError) + } + }, + [engine, dispatch, managedLayerSources] + ) + + // Remove layer id from data store & redux store + const hideLayerSource = useCallback( + (layerId) => { + if (managedLayerSources.includes(layerId)) { + engine + .mutate({ + resource: resourceLayerSourcesVisibility, + type: 'update', + data: managedLayerSources.filter((l) => l !== layerId), + }) + .then((response) => { + if ([200, 201].includes(response.httpStatusCode)) { + dispatch(removeLayerSource(layerId)) + } else { + setError(response) + } + }) + .catch(setError) + } + }, + [engine, dispatch, managedLayerSources] + ) + + return { managedLayerSources, showLayerSource, hideLayerSource, error } +} + +export default useManagedLayerSourcesStore diff --git a/src/reducers/index.js b/src/reducers/index.js index 43230bb68..dae694828 100644 --- a/src/reducers/index.js +++ b/src/reducers/index.js @@ -8,6 +8,7 @@ import feature from './feature.js' import featureProfile from './featureProfile.js' import interpretation from './interpretation.js' import layerEdit from './layerEdit.js' +import layerSources from './layerSources.js' import map from './map.js' import orgUnitProfile from './orgUnitProfile.js' import ui from './ui.js' @@ -20,6 +21,7 @@ export default combineReducers({ download, interpretation, layerEdit, + layerSources, map, orgUnitProfile, ui, diff --git a/src/reducers/layerSources.js b/src/reducers/layerSources.js new file mode 100644 index 000000000..227901c05 --- /dev/null +++ b/src/reducers/layerSources.js @@ -0,0 +1,17 @@ +import * as types from '../constants/actionTypes.js' + +const layerSourcesReducer = (state = [], action) => { + switch (action.type) { + case types.LAYER_SOURCES_INIT: + return action.payload + case types.LAYER_SOURCE_ADD: + return [...state, action.payload] + case types.LAYER_SOURCE_REMOVE: + return state.filter((item) => item !== action.payload) + + default: + return state + } +} + +export default layerSourcesReducer diff --git a/src/util/__tests__/app.spec.js b/src/util/__tests__/app.spec.js index 9832d672b..81c80b44c 100644 --- a/src/util/__tests__/app.spec.js +++ b/src/util/__tests__/app.spec.js @@ -96,7 +96,7 @@ describe('utils/app', () => { expect(cfg.basemaps).toHaveLength(9) expect(cfg.nameProperty).toEqual('displayName') - expect(cfg.layerTypes).toHaveLength(13) + expect(cfg.defaultLayerSources).toHaveLength(6) expect(cfg.currentUser.username).toEqual('admin') expect(cfg.currentUser).toMatchObject({ id: 'xE7jOejl9FI', @@ -144,7 +144,7 @@ describe('utils/app', () => { expect(cfg.basemaps).toHaveLength(5) expect(cfg.nameProperty).toEqual('displayShortName') - expect(cfg.layerTypes).toHaveLength(13) + expect(cfg.defaultLayerSources).toHaveLength(6) expect(cfg.currentUser).toMatchObject({ id: 'xE7jOejl9FI', name: 'John Traore', diff --git a/src/util/app.js b/src/util/app.js index 0707a6928..ed5ec2640 100644 --- a/src/util/app.js +++ b/src/util/app.js @@ -55,8 +55,8 @@ const getBasemapList = (externalMapLayers, systemSettings) => { .concat(externalBasemaps) } -const getLayerTypes = (externalMapLayers) => { - const externalLayerTypes = externalMapLayers +const getDefaultLayerSources = (externalMapLayers) => { + const externalLayerSources = externalMapLayers .filter( (layer) => layer.mapLayerPosition !== MAP_LAYER_POSITION_BASEMAP ) @@ -64,7 +64,7 @@ const getLayerTypes = (externalMapLayers) => { .map(createExternalOverlayLayer) .filter((overlay) => layerTypes.includes(overlay.config.type)) - return getDefaultLayerTypes().concat(externalLayerTypes) + return getDefaultLayerTypes().concat(externalLayerSources) } export const providerDataTransformation = ({ @@ -89,5 +89,7 @@ export const providerDataTransformation = ({ externalMapLayers.externalMapLayers, systemSettings ), - layerTypes: getLayerTypes(externalMapLayers.externalMapLayers), + defaultLayerSources: getDefaultLayerSources( + externalMapLayers.externalMapLayers + ), }) diff --git a/src/util/getDefaultLayerTypes.js b/src/util/getDefaultLayerTypes.js index b246630f2..2c7e85db8 100644 --- a/src/util/getDefaultLayerTypes.js +++ b/src/util/getDefaultLayerTypes.js @@ -1,5 +1,4 @@ import i18n from '@dhis2/d2-i18n' -import earthEngineLayers from '../constants/earthEngineLayers/index.js' import { THEMATIC_LAYER, EVENT_LAYER, @@ -40,5 +39,4 @@ export const getDefaultLayerTypes = () => [ img: 'images/orgunits.png', opacity: 1, }, - ...earthEngineLayers.filter((l) => !l.legacy), ] diff --git a/yarn.lock b/yarn.lock index f9972990d..1732b1e05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2234,10 +2234,9 @@ i18next "^10.3" moment "^2.24.0" -"@dhis2/maps-gl@^3.9.2": +"@dhis2/maps-gl@git+https://github.com/d2-ci/maps-gl.git#6bc87213a92fda4fb9fcfe79b0a9f18aa21bb63a": version "3.9.2" - resolved "https://registry.yarnpkg.com/@dhis2/maps-gl/-/maps-gl-3.9.2.tgz#510a7d0f91bfbbdc6139283c8269506e3680bdc3" - integrity sha512-AJQ8Q2qKiZ6+ieaiM7qdsZ5tjIEdUQKp/zCQoUaTpmgOPB86sM2BYV1fJ8tvSSqHU4Wo7jyoEoNku1zbpCQZRQ== + resolved "git+https://github.com/d2-ci/maps-gl.git#6bc87213a92fda4fb9fcfe79b0a9f18aa21bb63a" dependencies: "@mapbox/sphericalmercator" "^1.2.0" "@turf/area" "^6.5.0" @@ -2247,7 +2246,7 @@ "@turf/circle" "^6.5.0" "@turf/length" "^6.5.0" comlink "^4.4.1" - fetch-jsonp "^1.2.3" + fetch-jsonp "^1.3.0" lodash.throttle "^4.1.1" maplibre-gl "^2.4.0" polylabel "^1.1.0" @@ -5317,13 +5316,16 @@ cachedir@^2.3.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.2, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" callsites@^3.0.0: version "3.1.0" @@ -6642,6 +6644,15 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -7280,6 +7291,18 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-get-iterator@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" @@ -8000,10 +8023,10 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -fetch-jsonp@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/fetch-jsonp/-/fetch-jsonp-1.2.3.tgz#ae99a867095cb1ce5c39fac601d70d1084db122f" - integrity sha512-C13k1o7R9JTN1wmhKkrW5bU/00LwixXnkufQUR6Rbf4KCS0i8mycQaovt4WVbHnA2NKgi7Ryp9Whpy/CGcij6Q== +fetch-jsonp@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fetch-jsonp/-/fetch-jsonp-1.3.0.tgz#99b8c25bd100938d7a7a6b5db9d6b81f32a10809" + integrity sha512-hxCYGvmANEmpkHpeWY8Kawfa5Z1t2csTpIClIDG/0S92eALWHRU1RnGaj86Tf5Cc0QF+afSa4SQ4pFB2rFM5QA== figures@^3.0.0, figures@^3.2.0: version "3.2.0" @@ -8323,10 +8346,10 @@ fsevents@^2.3.2, fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.1, function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.2, function.prototype.name@^1.1.5: version "1.1.5" @@ -8380,14 +8403,16 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== +get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" @@ -8727,12 +8752,12 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-intrinsic "^1.1.1" + es-define-property "^1.0.0" has-proto@^1.0.1: version "1.0.1" @@ -8811,6 +8836,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + he@1.2.0, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -11697,10 +11729,10 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.2, object-inspect@^1.7.0, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.12.2, object-inspect@^1.13.1, object-inspect@^1.7.0: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.5: version "1.1.5" @@ -14177,6 +14209,18 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -14257,13 +14301,14 @@ shell-quote@^1.4.2, shell-quote@^1.6.1, shell-quote@^1.7.3: integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" From fa0825d0bcb8d196fa5ee7185ca582da4e8a165b Mon Sep 17 00:00:00 2001 From: braimbault Date: Tue, 23 Jul 2024 13:06:50 +0200 Subject: [PATCH 10/25] chore: periods util test update --- src/util/__tests__/periods.spec.js | 121 ++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 3 deletions(-) diff --git a/src/util/__tests__/periods.spec.js b/src/util/__tests__/periods.spec.js index 0069b2102..2751bdb8d 100644 --- a/src/util/__tests__/periods.spec.js +++ b/src/util/__tests__/periods.spec.js @@ -20,34 +20,46 @@ describe('util/periods', () => { year: 2020, firstDate: '2020-04-01', lastDate: '2020-08-30', + periodsSettings: { + locale: 'en', + calendar: 'gregory', + }, }) ).toStrictEqual([ { + displayName: 'July 2020', endDate: '2020-07-31', id: '202007', iso: '202007', name: 'July 2020', + periodType: 'MONTHLY', startDate: '2020-07-01', }, { + displayName: 'June 2020', endDate: '2020-06-30', id: '202006', iso: '202006', name: 'June 2020', + periodType: 'MONTHLY', startDate: '2020-06-01', }, { + displayName: 'May 2020', endDate: '2020-05-31', id: '202005', iso: '202005', name: 'May 2020', + periodType: 'MONTHLY', startDate: '2020-05-01', }, { + displayName: 'April 2020', endDate: '2020-04-30', id: '202004', iso: '202004', name: 'April 2020', + periodType: 'MONTHLY', startDate: '2020-04-01', }, ]) @@ -60,20 +72,28 @@ describe('util/periods', () => { year: 2020, firstDate: '2018-04-01', lastDate: '2021-04-01', + periodsSettings: { + locale: 'en', + calendar: 'gregory', + }, }) ).toStrictEqual([ { + displayName: '2020', endDate: '2020-12-31', id: '2020', iso: '2020', name: '2020', + periodType: 'YEARLY', startDate: '2020-01-01', }, { + displayName: '2019', endDate: '2019-12-31', id: '2019', iso: '2019', name: '2019', + periodType: 'YEARLY', startDate: '2019-01-01', }, ]) @@ -91,66 +111,103 @@ describe('util/periods', () => { test('getFixedPeriodsByType - FYAPR 2020', () => { expect( - getFixedPeriodsByType({ periodType: 'FYAPR', year: 2020 }) + getFixedPeriodsByType({ + periodType: 'FYAPR', + year: 2020, + periodsSettings: { + locale: 'en', + calendar: 'gregory', + }, + }) ).toStrictEqual([ { + displayName: 'April 2020 - March 2021', endDate: '2021-03-31', id: '2020April', + iso: '2020April', name: 'April 2020 - March 2021', + periodType: 'FYAPR', startDate: '2020-04-01', }, { + displayName: 'April 2019 - March 2020', endDate: '2020-03-31', id: '2019April', + iso: '2019April', name: 'April 2019 - March 2020', + periodType: 'FYAPR', startDate: '2019-04-01', }, { + displayName: 'April 2018 - March 2019', endDate: '2019-03-31', id: '2018April', + iso: '2018April', name: 'April 2018 - March 2019', + periodType: 'FYAPR', startDate: '2018-04-01', }, { + displayName: 'April 2017 - March 2018', endDate: '2018-03-31', id: '2017April', + iso: '2017April', name: 'April 2017 - March 2018', + periodType: 'FYAPR', startDate: '2017-04-01', }, { + displayName: 'April 2016 - March 2017', endDate: '2017-03-31', id: '2016April', + iso: '2016April', name: 'April 2016 - March 2017', + periodType: 'FYAPR', startDate: '2016-04-01', }, { + displayName: 'April 2015 - March 2016', endDate: '2016-03-31', id: '2015April', + iso: '2015April', name: 'April 2015 - March 2016', + periodType: 'FYAPR', startDate: '2015-04-01', }, { + displayName: 'April 2014 - March 2015', endDate: '2015-03-31', id: '2014April', + iso: '2014April', name: 'April 2014 - March 2015', + periodType: 'FYAPR', startDate: '2014-04-01', }, { + displayName: 'April 2013 - March 2014', endDate: '2014-03-31', id: '2013April', + iso: '2013April', name: 'April 2013 - March 2014', + periodType: 'FYAPR', startDate: '2013-04-01', }, { + displayName: 'April 2012 - March 2013', endDate: '2013-03-31', id: '2012April', + iso: '2012April', name: 'April 2012 - March 2013', + periodType: 'FYAPR', startDate: '2012-04-01', }, { + displayName: 'April 2011 - March 2012', endDate: '2012-03-31', id: '2011April', + iso: '2011April', name: 'April 2011 - March 2012', + periodType: 'FYAPR', startDate: '2011-04-01', }, ]) @@ -158,166 +215,224 @@ describe('util/periods', () => { test('getFixedPeriodsByType YEARLY 2020', () => { expect( - getFixedPeriodsByType({ periodType: 'YEARLY', year: 2020 }) + getFixedPeriodsByType({ + periodType: 'YEARLY', + year: 2020, + periodsSettings: { + locale: 'en', + calendar: 'gregory', + }, + }) ).toStrictEqual([ { + displayName: '2020', endDate: '2020-12-31', id: '2020', iso: '2020', name: '2020', + periodType: 'YEARLY', startDate: '2020-01-01', }, { + displayName: '2019', endDate: '2019-12-31', id: '2019', iso: '2019', name: '2019', + periodType: 'YEARLY', startDate: '2019-01-01', }, { + displayName: '2018', endDate: '2018-12-31', id: '2018', iso: '2018', name: '2018', + periodType: 'YEARLY', startDate: '2018-01-01', }, { + displayName: '2017', endDate: '2017-12-31', id: '2017', iso: '2017', name: '2017', + periodType: 'YEARLY', startDate: '2017-01-01', }, { + displayName: '2016', endDate: '2016-12-31', id: '2016', iso: '2016', name: '2016', + periodType: 'YEARLY', startDate: '2016-01-01', }, { + displayName: '2015', endDate: '2015-12-31', id: '2015', iso: '2015', name: '2015', + periodType: 'YEARLY', startDate: '2015-01-01', }, { + displayName: '2014', endDate: '2014-12-31', id: '2014', iso: '2014', name: '2014', + periodType: 'YEARLY', startDate: '2014-01-01', }, { + displayName: '2013', endDate: '2013-12-31', id: '2013', iso: '2013', name: '2013', + periodType: 'YEARLY', startDate: '2013-01-01', }, { + displayName: '2012', endDate: '2012-12-31', id: '2012', iso: '2012', name: '2012', + periodType: 'YEARLY', startDate: '2012-01-01', }, { + displayName: '2011', endDate: '2011-12-31', id: '2011', iso: '2011', name: '2011', + periodType: 'YEARLY', startDate: '2011-01-01', }, ]) }) test('getFixedPeriodsByType - MONTHLY 2020', () => { expect( - getFixedPeriodsByType({ periodType: 'MONTHLY', year: 2020 }) + getFixedPeriodsByType({ + periodType: 'MONTHLY', + year: 2020, + periodsSettings: { + locale: 'en', + calendar: 'gregory', + }, + }) ).toStrictEqual([ { + displayName: 'December 2020', endDate: '2020-12-31', id: '202012', iso: '202012', name: 'December 2020', + periodType: 'MONTHLY', startDate: '2020-12-01', }, { + displayName: 'November 2020', endDate: '2020-11-30', id: '202011', iso: '202011', name: 'November 2020', + periodType: 'MONTHLY', startDate: '2020-11-01', }, { + displayName: 'October 2020', endDate: '2020-10-31', id: '202010', iso: '202010', name: 'October 2020', + periodType: 'MONTHLY', startDate: '2020-10-01', }, { + displayName: 'September 2020', endDate: '2020-09-30', id: '202009', iso: '202009', name: 'September 2020', + periodType: 'MONTHLY', startDate: '2020-09-01', }, { + displayName: 'August 2020', endDate: '2020-08-31', id: '202008', iso: '202008', name: 'August 2020', + periodType: 'MONTHLY', startDate: '2020-08-01', }, { + displayName: 'July 2020', endDate: '2020-07-31', id: '202007', iso: '202007', name: 'July 2020', + periodType: 'MONTHLY', startDate: '2020-07-01', }, { + displayName: 'June 2020', endDate: '2020-06-30', id: '202006', iso: '202006', name: 'June 2020', + periodType: 'MONTHLY', startDate: '2020-06-01', }, { + displayName: 'May 2020', endDate: '2020-05-31', id: '202005', iso: '202005', name: 'May 2020', + periodType: 'MONTHLY', startDate: '2020-05-01', }, { + displayName: 'April 2020', endDate: '2020-04-30', id: '202004', iso: '202004', name: 'April 2020', + periodType: 'MONTHLY', startDate: '2020-04-01', }, { + displayName: 'March 2020', endDate: '2020-03-31', id: '202003', iso: '202003', name: 'March 2020', + periodType: 'MONTHLY', startDate: '2020-03-01', }, { + displayName: 'February 2020', endDate: '2020-02-29', id: '202002', iso: '202002', name: 'February 2020', + periodType: 'MONTHLY', startDate: '2020-02-01', }, { + displayName: 'January 2020', endDate: '2020-01-31', id: '202001', iso: '202001', name: 'January 2020', + periodType: 'MONTHLY', startDate: '2020-01-01', }, ]) From 0eb36b0344bc9aae7255dc2b621b2643f88040cf Mon Sep 17 00:00:00 2001 From: braimbault Date: Thu, 25 Jul 2024 13:04:41 +0200 Subject: [PATCH 11/25] chore(docs): add maps admin section and other small changes --- docs/maps.md | 1089 +++++++++-------- .../images/maps_admin_externallayer.png | Bin 0 -> 44043 bytes .../maps_admin_managesources_button.png | Bin 0 -> 612730 bytes .../population_age_sex_WorldPop.js | 1 + .../population_total_WorldPop.js | 1 + 5 files changed, 559 insertions(+), 532 deletions(-) create mode 100644 docs/resources/images/maps_admin_externallayer.png create mode 100644 docs/resources/images/maps_admin_managesources_button.png diff --git a/docs/maps.md b/docs/maps.md index 08d3ea349..9d02e1876 100644 --- a/docs/maps.md +++ b/docs/maps.md @@ -22,58 +22,58 @@ and groups, or downloaded as an image. ![](resources/images/maps_main.png) -- The **layer panel** on the left side of the workspace shows an - overview of the layers for the current map: +- The **layer panel** on the left side of the workspace shows an + overview of the layers for the current map: - - As layers are added, using the **(+) Add layer** button, they - are arranged and managed in this panel. + - As layers are added, using the **(+) Add layer** button, they + are arranged and managed in this panel. - - The **basemap** card is always shown in the panel. The default available - basemaps are OpenStreetMap Light (OSM Light) and OpenStreetMap Detailed (OSM Detailed). The default selected basemap is OSM Light, unless a different - basemap has been configured in the system settings. OSM Detailed contains more map features and place names. If the Bing Maps API key has been added by a system administrator, then there will be an additional 4 basemaps from Bing Maps (Bing replaced Google Maps provided in previous versions). Bing Road and Bing Dark show roads, borders and places. Use the dark version if the colors on your map layers are bright. Bing Aerial and Bing Aerial Labels show satellite and detailed aerial imagery. Switch between them by selecting the desired image. + - The **basemap** card is always shown in the panel. The default available + basemaps are OpenStreetMap Light (OSM Light) and OpenStreetMap Detailed (OSM Detailed). The default selected basemap is OSM Light, unless a different + basemap has been configured in the system settings. OSM Detailed contains more map features and place names. If the Bing Maps API key has been added by a system administrator, then there will be an additional 4 basemaps from Bing Maps (Bing replaced Google Maps provided in previous versions). Bing Road and Bing Dark show roads, borders and places. Use the dark version if the colors on your map layers are bright. Bing Aerial and Bing Aerial Labels show satellite and detailed aerial imagery. Switch between them by selecting the desired image. - - The small arrow button to the right of the layer panel, at the - top, allows the panel to be hidden or shown. + - The small arrow button to the right of the layer panel, at the + top, allows the panel to be hidden or shown. -- The **File** button near the top left allows you to open and save - maps. See [using the maps file menu](#using_maps_file_menu) for more detailed information. +- The **File** button near the top left allows you to open and save + maps. See [using the maps file menu](#using_maps_file_menu) for more detailed information. -- The **Download** button next to the File button allows you to download the current map as a PNG image. +- The **Download** button next to the File button allows you to download the current map as a PNG image. -- The **Interpretations** button at top right opens an interpretations - panel on the right side of the workspace. See [viewing interpretations](#mapsInterpretation) for more information. +- The **Interpretations** button at top right opens an interpretations + panel on the right side of the workspace. See [viewing interpretations](#mapsInterpretation) for more information. -- The **+** and **-** buttons on the map allow you to zoom in and out - of the map respectively. The mouse scroll wheel zoom is continuous, - allowing us to fit the map perfectly to your content. +- The **+** and **-** buttons on the map allow you to zoom in and out + of the map respectively. The mouse scroll wheel zoom is continuous, + allowing us to fit the map perfectly to your content. -- The **rotate map** button (triangle arrows) allows you to - rotate and tilt the map to enhance the view of your data. Press the button - (or the Control key on your keyboard) while moving your mouse to change the - map view. Click to button again to reset the view. +- The **rotate map** button (triangle arrows) allows you to + rotate and tilt the map to enhance the view of your data. Press and hold the button + (or hold the Control key on your keyboard) while moving your mouse to change the + map view. Click to button again to reset the view. -- **Fullscreen** (four arrows) allows you to view the map in fullscreen. - To exit fullscreen click the button again or the escape key on your keyboard. +- **Fullscreen** (four arrows) allows you to view the map in fullscreen. + To exit fullscreen click the button again or the escape key on your keyboard. -* **Zoom to content** (bounded magnifying glass symbol) automatically - adjusts the zoom level and map center position to put the data on - your map in focus. +- **Zoom to content** (bounded magnifying glass symbol) automatically + adjusts the zoom level and map center position to put the data on + your map in focus. -* **Search** (magnifying glass symbol) allows searching for and - jumping to a location on the map. +- **Search** (magnifying glass symbol) allows searching for and + jumping to a location on the map. -* The **ruler** button allows you to measure distances and areas on the map. +- The **ruler** button allows you to measure distances and areas on the map. -* Right-click on the map to display the longitude and latitude of that - location. +- Right-click on the map to display the longitude and latitude of that + location. **Basemaps** @@ -84,18 +84,18 @@ as: Along the top of the basemap card from left to right are: -- The title of the selected basemap +- The title of the selected basemap -- An arrow symbol to collapse and expand the basemap card +- An arrow symbol to collapse and expand the basemap card In the middle of the basemap card is the list of available basemaps. The current basemap is highlighted. Along the bottom of the basemap card is: -- An eye symbol for toggling the visibility of the layer +- An eye symbol for toggling the visibility of the layer -- A slider for modifying the layer transparency +- A slider for modifying the layer transparency ## Create a new map { #using_maps_create_map } @@ -109,36 +109,46 @@ Along the bottom of the basemap card is: 3. Select a layer to add to the current map. Possible options are: - - [Thematic](#using_maps_thematic_layer) + - [Thematic](#using_maps_thematic_layer) - - [Events](#using_maps_event_layer) + - [Events](#using_maps_event_layer) - - [Tracked entities](#using_maps_tracked_entity_layer) + - [Tracked entities](#using_maps_tracked_entity_layer) - - [Facilities](#using_maps_facility_layer) + - [Facilities](#using_maps_facility_layer) - - [Org units](#using_maps_org_unit_layer) + - [Org units](#using_maps_org_unit_layer) - In addition, several layers may be provided by Google Earth - Engine and other services. The Google Earth Engine layers are available - if the Google Earth Engine API key has been set up. See [documentation](). Other external layers may be added by the system administrator. Here is the list of available Google Earth Engine layers: + In addition, several layers may be provided by [Google Earth + Engine](#using_maps_gee) and [other external services](#using_maps_external_map_layers). Various Google Earth Engine layer sources are available + if the Google Earth Engine API key has been set up (see [documentation](https://docs.dhis2.org/en/use/user-guides/dhis-core-version-master/configuring-the-system/system-settings.html#system_server_settings:~:text=com/analytics.-,Google%20Maps%20API%20key,-Defines%20the%20API)). - - Population + > **Note** + > + > The [**Maps app administrator**](#maps_app_administrator) can: + > + > - Select the sources for Google Earth Engine layers available to other users via the **Manage available layer sources** button. + > - Add external layer sources in the Maintenance app. + + Here is the list of default sources for a Google Earth Engine layer: - - Population age groups + - Population - - Building footprints + - Population age groups - - Elevation + - Building footprints - - Precipitation + - Elevation - - Temperature + - Precipitation - - Landcover + - Temperature - _Labels overlay_ is an [external - layer](#using_maps_external_map_layers) defined in the Maintenance app. + - Landcover + + The single default source for an external layer is: + + - Labels overlay ## Manage thematic layers { #using_maps_thematic_layer } @@ -159,35 +169,35 @@ as: Along the top of the thematic card from left to right are: -- A grab field to allow dragging and re-ordering layers with the mouse +- A grab field to allow dragging and re-ordering layers with the mouse -- The title and period associated with the layer +- The title and period associated with the layer -- An arrow symbol to collapse and expand the thematic card +- An arrow symbol to collapse and expand the thematic card In the middle of the thematic card is a legend indicating the value ranges displayed on the layer. Along the bottom of the thematic card from left to right are: -- An edit (pencil) button to open the layer configuration dialog +- An edit (pencil) button to open the layer configuration dialog -- An eye symbol for toggling the visibility of the layer +- An eye symbol for toggling the visibility of the layer -- A slider for modifying the layer transparency +- A slider for modifying the layer transparency -- A more actions (three dots) button with additional options: +- A more actions (three dots) button with additional options: - - A **Show/hide data table** toggle button to show or hide the data table - associated with the layer + - A **Show/hide data table** toggle button to show or hide the data table + associated with the layer - - **Open as chart** will open this thematic data as a chart in the Data Visualizer app + - **Open as chart** will open this thematic data as a chart in the Data Visualizer app - - **Download data** allows you to download the data for this layer in GeoJSON format for use in other mapping software + - **Download data** allows you to download the data for this layer in GeoJSON format for use in other mapping software - - **Edit layer** is the same as edit button above + - **Edit layer** is the same as edit button above - - **Remove layer** will remove this layer from the current map. + - **Remove layer** will remove this layer from the current map. ### Create a thematic layer @@ -198,139 +208,139 @@ layer** selection. This opens the Thematic layer configuration dialog. ![](resources/images/maps_thematic_layer_dialog_DATA.png) - - Select a data type and then select respectively the group and - the target element. The available fields depend on the type of - item selected. + - Select a data type and then select respectively the group and + the target element. The available fields depend on the type of + item selected. - - Select a value from the **Aggregation type** field for the data - values to be shown on the map. By default, "By data element" is - selected. Alternative values are: Count; Average; Sum; Standard - deviation; Variance; Min; Max. See also [Aggregation - operators](https://dhis2.github.io/dhis2-docs/master/en/user/html/ch10s05.html#d0e8082). + - Select a value from the **Aggregation type** field for the data + values to be shown on the map. By default, "By data element" is + selected. Alternative values are: Count; Average; Sum; Standard + deviation; Variance; Min; Max. See also [Aggregation + operators](https://dhis2.github.io/dhis2-docs/master/en/user/html/ch10s05.html#d0e8082). - - **Only show completed events**: Includes only completed events in the aggregation process. - This is useful when you want to exclude partial events in indicator calculations. Available - for indicators, program indictors and event data items. + - **Only show completed events**: Includes only completed events in the aggregation process. + This is useful when you want to exclude partial events in indicator calculations. Available + for indicators, program indictors and event data items. 2. In the **Period** tab ![](resources/images/maps_thematic_layer_dialog_PERIOD.png) - - select the time span over which the thematic data is mapped. - You can select either a relative or a fixed period. + - select the time span over which the thematic data is mapped. + You can select either a relative or a fixed period. - - Relative period + - Relative period - In the **Period type** field select **Relative**, then - select one of the relative periods, for example **Last year** or - **Last 12 months**, in the **Period** field. + In the **Period type** field select **Relative**, then + select one of the relative periods, for example **Last year** or + **Last 12 months**, in the **Period** field. - A **default relative period for analysis** can be set in the **Systems Settings** - app. + A **default relative period for analysis** can be set in the **Systems Settings** + app. - If you select a relative period covering multiple years/months/weeks/days - the layer can be displayed as + If you select a relative period covering multiple years/months/weeks/days + the layer can be displayed as - - Single (aggregate) + - Single (aggregate) - Show aggregate values for the relative period selected (default). + Show aggregate values for the relative period selected (default). - - Timeline + - Timeline - Includes a timeline allowing you to step through the periods. - Only one timeline layer can be added to the same map. + Includes a timeline allowing you to step through the periods. + Only one timeline layer can be added to the same map. - - Split map views + - Split map views - Show multiple maps allowing you to compare different periods - side by side. Supported for relative periods with 12 items - or below. Can not be combined with other layer types. + Show multiple maps allowing you to compare different periods + side by side. Supported for relative periods with 12 items + or below. Can not be combined with other layer types. - - Fixed period + - Fixed period - In the **Period type** field select period length, then - select the target in the **Period** field. + In the **Period type** field select period length, then + select the target in the **Period** field. - - Start/end dates + - Start/end dates - In the **Period type** field select **Start/end dates** - and fill in a start date and an end date. + In the **Period type** field select **Start/end dates** + and fill in a start date and an end date. 3. In the **Org Units** tab: ![](resources/images/maps_thematic_layer_dialog_ORG_UNITS.png) - - Select the organisation units you want to include in the layer. - It is possible to select either + - Select the organisation units you want to include in the layer. + It is possible to select either - - One or more specific organisation units, organisation unit levels in - the hierarchy, organisation unit groups, or + - One or more specific organisation units, organisation unit levels in + the hierarchy, organisation unit groups, or - - A relative level in the organisation unit hierarchy, with - respect to the user. By selecting a **User organisation - unit** the map data will appear differently for users at - different levels in the organisation unit hierarchy. + - A relative level in the organisation unit hierarchy, with + respect to the user. By selecting a **User organisation + unit** the map data will appear differently for users at + different levels in the organisation unit hierarchy. - - **Use associated geometry**: This dropdown will only show if there - are any additional geometry available for your organisation units. - This is typically used to show facility catchment areas. + - **Use associated geometry**: This dropdown will only show if there + are any additional geometry available for your organisation units. + This is typically used to show facility catchment areas. 4. In the **Filter** tab: ![](resources/images/maps_thematic_layer_dialog_FILTER.png) - - Click **Add Filter** and select an available data item to add a new - filter to the data set. + - Click **Add Filter** and select an available data item to add a new + filter to the data set. - - Select a data dimension from the dropdown box. You can - reduce the number of dimensions shown by using the search field. - Click on the name to select a dimension. + - Select a data dimension from the dropdown box. You can + reduce the number of dimensions shown by using the search field. + Click on the name to select a dimension. - - When a dimension is selected you get a second dropdown with - dimension items. Check the items you want to include in the - filter. + - When a dimension is selected you get a second dropdown with + dimension items. Check the items you want to include in the + filter. - Multiple filters may be added. Click the trash button on the right of - the filter to remove it. + Multiple filters may be added. Click the trash button on the right of + the filter to remove it. 5. In the **Style** tab: ![](resources/images/maps_thematic_layer_dialog_STYLE.png) - - Select either **Choropleth** or **Bubble map**. + - Select either **Choropleth** or **Bubble map**. - - Choropleth will assign a color to each org unit shape according to the data value. This is the recommended technique if the data is normalised (per capita). + - Choropleth will assign a color to each org unit shape according to the data value. This is the recommended technique if the data is normalised (per capita). - - Bubble map will show data values as proportional circles. Use this - technique if the data is not normalised (absolute numbers). The circles are placed in the center of each org unit. + - Bubble map will show data values as proportional circles. Use this + technique if the data is not normalised (absolute numbers). The circles are placed in the center of each org unit. - - Set the **Low radius** and **High radius** for the proportional circles or the point facilities. The circles will be scaled between low and high radius according to the data value. The radius needs to be between 0 and 50 px. + - Set the **Low radius** and **High radius** for the proportional circles or the point facilities. The circles will be scaled between low and high radius according to the data value. The radius needs to be between 0 and 50 px. - - **Show labels**: Allows org unit names and values to be shown on the layer. - Select between "Name", "Name and value" and "Value" only. Font size, weight, style - and color can also be modified. + - **Show labels**: Allows org unit names and values to be shown on the layer. + Select between "Name", "Name and value" and "Value" only. Font size, weight, style + and color can also be modified. - - **Show no data**: By default org units with missing data values will not show on the map. - Check this box if you want to show them with a color. Click the color to change it. + - **Show no data**: By default org units with missing data values will not show on the map. + Check this box if you want to show them with a color. Click the color to change it. - - Select the legend type: + - Select the legend type: - - **Automatic color legend**: the application will create a legend for you based on - what classification method, number of classes and the color scale you select. Set - **Classification** to either: + - **Automatic color legend**: the application will create a legend for you based on + what classification method, number of classes and the color scale you select. Set + **Classification** to either: - - Equal intervals + - Equal intervals - the range of each interval will be (highest data value - lowest data value / number of classes) + the range of each interval will be (highest data value - lowest data value / number of classes) - - Equal counts + - Equal counts - the legend creator will try to distribute the organisation units evenly. + the legend creator will try to distribute the organisation units evenly. - - **Predefined color legend**: Select between the predefined legends. + - **Predefined color legend**: Select between the predefined legends. - - **Single color legend**: Select the color of the bubbles or circles. Only available - for bubble maps. + - **Single color legend**: Select the color of the bubbles or circles. Only available + for bubble maps. 6. Click **Add layer**. @@ -352,49 +362,49 @@ off from the thematic layer card. The data table displays the data forming the thematic layer. -- clicking on a up/down arrow button will sort the table based on that column; - toggling between ascending and descending. +- clicking on a up/down arrow button will sort the table based on that column; + toggling between ascending and descending. -- entering text or expressions into the filter fields below the titles - will apply those filters to the data, and the display will adjust - according to the filter. The filters are applied as follows: +- entering text or expressions into the filter fields below the titles + will apply those filters to the data, and the display will adjust + according to the filter. The filters are applied as follows: - - NAME + - NAME - filter by name containing the given text + filter by name containing the given text - - VALUE + - VALUE - filter values by given numbers and/or ranges, for example: - 2,\>3&\<8 + filter values by given numbers and/or ranges, for example: + 2,\>3&\<8 - - LEGEND + - LEGEND - filter by legend containing the given text + filter by legend containing the given text - - RANGE + - RANGE - filter by ranges containing the given text + filter by ranges containing the given text - - LEVEL + - LEVEL - filter level by numbers and/or ranges, for example: 2,\>3&\<8 + filter level by numbers and/or ranges, for example: 2,\>3&\<8 - - PARENT + - PARENT - filter by parent names containing the given text + filter by parent names containing the given text - - ID + - ID - filter by IDs containing the given text + filter by IDs containing the given text - - TYPE + - TYPE - filter by GIS display types containing the given text + filter by GIS display types containing the given text - - COLOR + - COLOR - filter by color names containing the given text + filter by color names containing the given text > **Note** > @@ -461,32 +471,32 @@ as: Along the top of the event card from left to right are: -- A grab field to allow dragging and re-ordering layers with the mouse +- A grab field to allow dragging and re-ordering layers with the mouse -- The title and period associated with the layer +- The title and period associated with the layer -- An arrow symbol to collapse and expand the event card +- An arrow symbol to collapse and expand the event card In the middle of the event card is a legend indicating the styling of the layer. Along the bottom of the event card from left to right are: -- An edit (pencil) button to open the layer configuration dialog +- An edit (pencil) button to open the layer configuration dialog -- An eye symbol for toggling the visibility of the layer +- An eye symbol for toggling the visibility of the layer -- A slider for modifying the layer transparency +- A slider for modifying the layer transparency -- A more actions (three dots) button with additional options: +- A more actions (three dots) button with additional options: - - A **Show/hide data table** toggle button to show or hide the data table associated with the layer + - A **Show/hide data table** toggle button to show or hide the data table associated with the layer - - **Download data** allows you to download the data for this layer in GeoJSON format for use in other mapping software + - **Download data** allows you to download the data for this layer in GeoJSON format for use in other mapping software - - **Edit layer** is the same as edit button above + - **Edit layer** is the same as edit button above - - **Remove layer** will remove this layer from the current map. + - **Remove layer** will remove this layer from the current map. ### Create an event layer { #maps_create_event_layer } @@ -497,115 +507,115 @@ layer** selection. This opens the Events layer configuration dialog. ![](resources/images/maps_event_layer_dialog_DATA.png) - - Select a program and then select a program stage. The **Stage** - field is only shown once a program is selected. + - Select a program and then select a program stage. The **Stage** + field is only shown once a program is selected. - If there is only one stage available for the selected program, - the stage is automatically selected. + If there is only one stage available for the selected program, + the stage is automatically selected. - - Select a value from the **Coordinate field** for the positions - shown on the map. By default, "Event location" is selected. - Depending on the data elements or attributes that belong to a - program, other coordinates such as "Household position" are - available. + - Select a value from the **Coordinate field** for the positions + shown on the map. By default, "Event location" is selected. + Depending on the data elements or attributes that belong to a + program, other coordinates such as "Household position" are + available. - - By default all events with coordinates are shown on the map. - Use the **Event status** field to only show events having one - status: Active, Completed, Schedule, Overdue or Skipped. + - By default all events with coordinates are shown on the map. + Use the **Event status** field to only show events having one + status: Active, Completed, Schedule, Overdue or Skipped. 2. In the **Period** tab ![](resources/images/maps_event_layer_dialog_PERIOD.png) - - select the time span for when the events took place. You can - select either a fixed period or a relative period. + - select the time span for when the events took place. You can + select either a fixed period or a relative period. - - Relative period + - Relative period - In the **Period** field, select one of the relative periods, - for example **This month** or **Last year**. + In the **Period** field, select one of the relative periods, + for example **This month** or **Last year**. - A **default relative period for analysis** can be set in the - **Systems Settings** app. + A **default relative period for analysis** can be set in the + **Systems Settings** app. - - Fixed period + - Fixed period - In the **Period** field, select **Start/end dates** and fill - in a start date and an end date. + In the **Period** field, select **Start/end dates** and fill + in a start date and an end date. 3. In the **Org Units** tab: ![](resources/images/maps_event_layer_dialog_ORG_UNITS.png) - - Select the organisation units you want to include in the layer. - It is possible to select either + - Select the organisation units you want to include in the layer. + It is possible to select either - - One or more specific organisation units, or + - One or more specific organisation units, or - - A relative level in the organisation unit hierarchy, with - respect to the user. By selecting a **User organisation - unit** the map data will appear differently for users at - different levels in the organisation unit hierarchy. + - A relative level in the organisation unit hierarchy, with + respect to the user. By selecting a **User organisation + unit** the map data will appear differently for users at + different levels in the organisation unit hierarchy. 4. In the **Filter** tab: ![](resources/images/maps_event_layer_dialog_FILTER.png) - - Click ADD FILTER and select an available data item to add a new - filter to the data set. + - Click ADD FILTER and select an available data item to add a new + filter to the data set. - - For data item of type _option set_, you can select any of - the options from the dropdown box by using the down-wards - arrow or by start typing directly in the box to filter for - options. + - For data item of type _option set_, you can select any of + the options from the dropdown box by using the down-wards + arrow or by start typing directly in the box to filter for + options. - - For data item of type _number_, you can select operators like - equal, not equal, greater than or less than. + - For data item of type _number_, you can select operators like + equal, not equal, greater than or less than. - - For data item of type _boolean_ (yes/no), you can check the box - if the condition should be valid or true. + - For data item of type _boolean_ (yes/no), you can check the box + if the condition should be valid or true. - - For data item of type _text_ you will get two choices: - **Contains** implies that the query will match all values - which contains your search value, and **Is exact** implies - that only values which is completely identical to your - search query will be returned. + - For data item of type _text_ you will get two choices: + **Contains** implies that the query will match all values + which contains your search value, and **Is exact** implies + that only values which is completely identical to your + search query will be returned. - Multiple filters may be added. Click the trash button on the right of - the filter to remove it. + Multiple filters may be added. Click the trash button on the right of + the filter to remove it. 5. In the **Style** tab: ![](resources/images/maps_event_layer_dialog_STYLE.png) - - Select **Group events** to group nearby events (cluster), or - **View all events** to display events individually. + - Select **Group events** to group nearby events (cluster), or + **View all events** to display events individually. - - Select a **color** for the event or cluster points. + - Select a **color** for the event or cluster points. - - Select the **radius** (between 1 and 20) for the events. + - Select the **radius** (between 1 and 20) for the events. - - Select **Show buffer** to display visual buffer around each - event. The radius of the buffer can be modified here. This - option is only available if you select **View all events** - above. + - Select **Show buffer** to display visual buffer around each + event. The radius of the buffer can be modified here. This + option is only available if you select **View all events** + above. - - Select a **Style by data element** to colorise the events - according to a data value. If you also select to group events, - the culsters will be displayed as small donut charts showing - the distribution of the data values. The available options vary for - different data types: + - Select a **Style by data element** to colorise the events + according to a data value. If you also select to group events, + the culsters will be displayed as small donut charts showing + the distribution of the data values. The available options vary for + different data types: - - **Option sets**: Select a color for each option in an option - set. You can set default colors for an option in the - Maintenance app. + - **Option sets**: Select a color for each option in an option + set. You can set default colors for an option in the + Maintenance app. - - **Numbers**: You can style a numeric data element in [the same - way as thematic layers](#using_maps_thematic_layer_style) using - automatic or predefined legends. + - **Numbers**: You can style a numeric data element in [the same + way as thematic layers](#using_maps_thematic_layer_style) using + automatic or predefined legends. - - **Booleans**: Select a color for true/yes and another for - false/no. + - **Booleans**: Select a color for true/yes and another for + false/no. 6. Click **Add layer**. @@ -628,37 +638,37 @@ off from the event layer card. The data table displays the data forming the event layer. -- clicking on the up/down arrow will sort the table based on that column; - toggling between ascending and descending. +- clicking on the up/down arrow will sort the table based on that column; + toggling between ascending and descending. -- entering text or expressions into the filter fields below the titles - will apply those filters to the data, and the display will adjust - according to the filter. The filters are applied as follows: +- entering text or expressions into the filter fields below the titles + will apply those filters to the data, and the display will adjust + according to the filter. The filters are applied as follows: - - ID + - ID - filter by event IDs containing the given text + filter by event IDs containing the given text - - ORG UNIT + - ORG UNIT - filter by org unit name containing the given text + filter by org unit name containing the given text - - EVENT TIME + - EVENT TIME - filter by event time containing the given text + filter by event time containing the given text - - TYPE + - TYPE - filter by GIS display types containing the given text + filter by GIS display types containing the given text - - **Style by data element**: If events are styled by a data element - (e.g. gender) both the data value and the color can be filtered. + - **Style by data element**: If events are styled by a data element + (e.g. gender) both the data value and the color can be filtered. - - **Display in reports**: Data elements checked to display in reports will - be shown in separate columns (see below how to add them). + - **Display in reports**: Data elements checked to display in reports will + be shown in separate columns (see below how to add them). - - Numeric data values can be filtered by given numbers, and/or ranges, - for example: 2,\>3&\<8 + - Numeric data values can be filtered by given numbers, and/or ranges, + for example: 2,\>3&\<8 > **Note** > @@ -667,7 +677,7 @@ The data table displays the data forming the event layer. ### Modify information in event data table and popups -If you have access to the selected program in the maintenance app, you can modify the information displayed in the event pop-up window. +If you have access to the selected program in the Maintenance app, you can modify the information displayed in the event pop-up window. ![](resources/images/maps_eventlayer_eventinfopopup.png) @@ -688,19 +698,19 @@ The raw data for event layers can be downloaded in GeoJSON format for more advan ![](resources/images/maps_data_download_dialog.png) -- In the layer card to the left, click the _more actions_ (three dots) icon and then on **Download data** +- In the layer card to the left, click the _more actions_ (three dots) icon and then on **Download data** -- Select the **ID format** to use as the key for Data Element values in the downloaded GeoJSON file. There are three options available: +- Select the **ID format** to use as the key for Data Element values in the downloaded GeoJSON file. There are three options available: - - **ID** - Use the unique ID of the data element - - **Name** - Use the human-friendly name of the data element (translated) - - **Code** - Use the code of the data element + - **ID** - Use the unique ID of the data element + - **Name** - Use the human-friendly name of the data element (translated) + - **Code** - Use the code of the data element -- Select whether or not to **Use human-readable keys** for other Event attributes, such as Program Stage, Latitude, Longitude, Event Data, and Organization Unit ID, Name, and Code. When this option is **not** selected these values will be the computer-friendly ID instead of the human-readable (and translated) name. +- Select whether or not to **Use human-readable keys** for other Event attributes, such as Program Stage, Latitude, Longitude, Event Data, and Organization Unit ID, Name, and Code. When this option is **not** selected these values will be the computer-friendly ID instead of the human-readable (and translated) name. -- Click the **Download** button to generate and download a GeoJSON file. The data will be requested from the DHIS2 server and processed by the maps application. This operation may take several minutes to complete. +- Click the **Download** button to generate and download a GeoJSON file. The data will be requested from the DHIS2 server and processed by the maps application. This operation may take several minutes to complete. -- Once the GeoJSON file has been downloaded it can be imported into most standard GIS software applications. +- Once the GeoJSON file has been downloaded it can be imported into most standard GIS software applications. > Note that the downloaded data does not include style information as it is not natively supported by the GeoJSON format. Styles can optionally be recreated in external GIS applications using the attributes of each feature. @@ -726,29 +736,29 @@ such as: Along the top of the tracked entity card from left to right are: -- A grab field to allow dragging and re-ordering layers with the - mouse. +- A grab field to allow dragging and re-ordering layers with the + mouse. -- The title and period associated with the layer. +- The title and period associated with the layer. -- An arrow symbol to collapse and expand the tracked entity card. +- An arrow symbol to collapse and expand the tracked entity card. In the middle of the tracked entity card is a legend indicating the styling of the layer. Along the bottom of the tracked entity card from left to right are: -- An edit (pencil) button to open the layer configuration dialog +- An edit (pencil) button to open the layer configuration dialog -- An eye symbol for toggling the visibility of the layer +- An eye symbol for toggling the visibility of the layer -- A slider for modifying the layer transparency +- A slider for modifying the layer transparency -- A more actions (three dots) button with additional options: +- A more actions (three dots) button with additional options: - - **Edit layer** is the same as edit button above + - **Edit layer** is the same as edit button above - - **Remove layer** will remove this layer from the current map. + - **Remove layer** will remove this layer from the current map. ### Create a tracked entity layer { #maps_create_tracked_enity_layer } @@ -760,15 +770,15 @@ configuration dialog. ![](resources/images/maps_tracked_entity_layer_dialog_DATA.png) - - Select the **Tracked Entity Type** you want to show on the map. + - Select the **Tracked Entity Type** you want to show on the map. - - Select a **Program** where the tracked entities belong. + - Select a **Program** where the tracked entities belong. - - Use the **Program status** field to select the enrollment status of tracked entities - to include: All, Active, Completed or Cancelled. + - Use the **Program status** field to select the enrollment status of tracked entities + to include: All, Active, Completed or Cancelled. - - Set the **Follow up** status of the tracked entity for the given - program. + - Set the **Follow up** status of the tracked entity for the given + program. 2. In the **Relationships** tab @@ -778,50 +788,50 @@ configuration dialog. > > Displaying tracked entity relationships in Maps is an experimental feature - - If a Tracked Entity Type with relationships has been selected, you can select the **Display Tracked Entity relationships** checkbox + - If a Tracked Entity Type with relationships has been selected, you can select the **Display Tracked Entity relationships** checkbox - - Once checked, you can select the type of relationship to display on the map from the dropdown list. Only relationships from the selected Tracked Entity type are available. + - Once checked, you can select the type of relationship to display on the map from the dropdown list. Only relationships from the selected Tracked Entity type are available. 3. In the **Period** tab ![](resources/images/maps_tracked_entity_layer_dialog_PERIOD.png) - - If no program is selected, you can set start and end dates when - the tracked entities were last updated. + - If no program is selected, you can set start and end dates when + the tracked entities were last updated. - - If a program is selected, you can set the period when tracked entities were last - updated or when they were registered or enrolled in the program. + - If a program is selected, you can set the period when tracked entities were last + updated or when they were registered or enrolled in the program. 4. In the **Org Units** tab: ![](resources/images/maps_tracked_entity_layer_dialog_ORG_UNITS.png) - - Select the organisation units you want to include in the layer. - You have 3 selection modes: + - Select the organisation units you want to include in the layer. + You have 3 selection modes: - - **Selected only**: Include tracked entities belonging to - selected org units only. + - **Selected only**: Include tracked entities belonging to + selected org units only. - - **Selected and below**: Included tracked entities in and - right below selected org units. + - **Selected and below**: Included tracked entities in and + right below selected org units. - - **Selected and all below**: Included tracked entities in and - all below selected org units. + - **Selected and all below**: Included tracked entities in and + all below selected org units. 5. In the **Style** tab: ![](resources/images/maps_tracked_entity_layer_dialog_STYLE.png) - - Select a **color** for the tracked entities points and polygons. + - Select a **color** for the tracked entities points and polygons. - - Select the **point size** (radius between 1 and 20) for the - points. + - Select the **point size** (radius between 1 and 20) for the + points. - - Select **Show buffer** to display visual buffer around each - tracked entity. The buffer distance in meters can be modified - here. + - Select **Show buffer** to display visual buffer around each + tracked entity. The buffer distance in meters can be modified + here. - - If a relationship type has been selected on the relationships tab you can select **color**, **point size**, and **line color** for relationships and related tracked entities instances + - If a relationship type has been selected on the relationships tab you can select **color**, **point size**, and **line color** for relationships and related tracked entities instances 6. Click **Add/Update layer**. @@ -860,33 +870,33 @@ as: Along the top of the facilities card from left to right are: -- A grab field to allow dragging and re-ordering layers with the mouse +- A grab field to allow dragging and re-ordering layers with the mouse -- The **Facilities** title +- The **Facilities** title -- An eye symbol for toggling the visibility of the layer +- An eye symbol for toggling the visibility of the layer -- An arrow symbol to collapse and expand the facilities card +- An arrow symbol to collapse and expand the facilities card In the middle of the facilities card is a legend indicating the group set representation. Along the bottom of the facilities card from left to right are: -- An edit (pencil) button to open the layer configuration dialog +- An edit (pencil) button to open the layer configuration dialog -- A slider for modifying the layer transparency +- A slider for modifying the layer transparency -- A more actions (three dots) button with additional options: +- A more actions (three dots) button with additional options: - - A **Show/hide data table** toggle button to show or hide the data table - associated with the layer + - A **Show/hide data table** toggle button to show or hide the data table + associated with the layer - - **Download data** allows you to download the data for this layer in GeoJSON format for use in other mapping software + - **Download data** allows you to download the data for this layer in GeoJSON format for use in other mapping software - - **Edit layer** is the same as edit button above + - **Edit layer** is the same as edit button above - - **Remove layer** will remove this layer from the current map. + - **Remove layer** will remove this layer from the current map. ### Create a facility layer @@ -897,51 +907,51 @@ layer**selection. This opens the Facility layer configuration dialog. ![](resources/images/maps_facility_layer_dialog_ORG_UNITS.png) - - Select the organisation unit level(s) and/or group(s) from the - selection fields on the right hand side. + - Select the organisation unit level(s) and/or group(s) from the + selection fields on the right hand side. - - Select the organisation units you want to include in the layer. - It is possible to select either + - Select the organisation units you want to include in the layer. + It is possible to select either - - One or more specific organisation units, or + - One or more specific organisation units, or - - A relative level in the organisation unit hierarchy, with - respect to the user. By selecting a **User organisation - unit** the map data will appear differently for users at - different levels in the organisation unit hierarchy. + - A relative level in the organisation unit hierarchy, with + respect to the user. By selecting a **User organisation + unit** the map data will appear differently for users at + different levels in the organisation unit hierarchy. - - The system administrator can set the default organsation unit - level containing facilities in the **System Settings** app. + - The system administrator can set the default organsation unit + level containing facilities in the **System Settings** app. - - **Use associated geometry**: This dropdown will only show if there - are any additional geometry available for your organisation units. - This is typically used to show facility catchment areas. + - **Use associated geometry**: This dropdown will only show if there + are any additional geometry available for your organisation units. + This is typically used to show facility catchment areas. 2. In the **Style** tab: ![](resources/images/maps_facility_layer_dialog_STYLE.png) - - Select any styling you wish to apply to the facilities. + - Select any styling you wish to apply to the facilities. - - Show labels + - Show labels - Allows labels to be shown on the layer. Font size, weight - and color can be modified here. + Allows labels to be shown on the layer. Font size, weight + and color can be modified here. - - Show buffer + - Show buffer - Allows a visual buffer to be displayed on the layer around - each facility. The radius of the buffer can be modified - here. Buffer option is not available if asscoiated geometry is used. + Allows a visual buffer to be displayed on the layer around + each facility. The radius of the buffer can be modified + here. Buffer option is not available if asscoiated geometry is used. - - Facilities can be styled an **organisation unit group set** using - different icons. Select a group set from the list of organisation - unit group sets defined for your DHIS2 instance. - The system administrator can set the default organsation unit - group set in the **System Settings** app. + - Facilities can be styled an **organisation unit group set** using + different icons. Select a group set from the list of organisation + unit group sets defined for your DHIS2 instance. + The system administrator can set the default organsation unit + group set in the **System Settings** app. - - If no group set is selected, the facilities will be shown as filled - circles. The color and the circle radius can be changed. + - If no group set is selected, the facilities will be shown as filled + circles. The color and the circle radius can be changed. 3. Click **Add layer**. @@ -964,24 +974,24 @@ off from the facility layer card. The data table displays the data forming the facility layer. -- clicking on the up/down arrow will sort the table based on that column; - toggling between ascending and descending. +- clicking on the up/down arrow will sort the table based on that column; + toggling between ascending and descending. -- entering text or expressions into the filter fields below the titles - will apply those filters to the data, and the display will adjust - according to the filter. The filters are applied as follows: +- entering text or expressions into the filter fields below the titles + will apply those filters to the data, and the display will adjust + according to the filter. The filters are applied as follows: - - NAME + - NAME - filter by name containing the given text + filter by name containing the given text - - ID + - ID - filter by IDs containing the given text + filter by IDs containing the given text - - TYPE + - TYPE - filter by GIS display types containing the given text + filter by GIS display types containing the given text > **Note** > @@ -1027,30 +1037,30 @@ as: Along the top of the org unit card from left to right are: -- A grab field to allow dragging and re-ordering layers with the mouse +- A grab field to allow dragging and re-ordering layers with the mouse -- The **Organisation unit** title +- The **Organisation unit** title -- An arrow symbol to collapse and expand the org unit card +- An arrow symbol to collapse and expand the org unit card Along the bottom of the org unit card from left to right are: -- An edit (pencil) button to open the layer configuration dialog +- An edit (pencil) button to open the layer configuration dialog -- An eye symbol for toggling the visibility of the layer +- An eye symbol for toggling the visibility of the layer -- A slider for modifying the layer transparency +- A slider for modifying the layer transparency -- A more actions (three dots) button with additional options: +- A more actions (three dots) button with additional options: - - A **Show/hide data table** toggle button to show or hide the data table - associated with the layer + - A **Show/hide data table** toggle button to show or hide the data table + associated with the layer - - **Download data** allows you to download the data for this layer in GeoJSON format for use in other mapping software + - **Download data** allows you to download the data for this layer in GeoJSON format for use in other mapping software - - **Edit layer** is the same as edit button above + - **Edit layer** is the same as edit button above - - **Remove layer** will remove this layer from the current map. + - **Remove layer** will remove this layer from the current map. ### Create an org unit layer @@ -1061,47 +1071,47 @@ layer** selection. This opens the org unit layer configuration dialog. ![](resources/images/maps_org_unit_layer_dialog_ORG_UNITS.png) - - select the organisation unit level(s) and/or group(s) from the - selection fields on the right hand side. + - select the organisation unit level(s) and/or group(s) from the + selection fields on the right hand side. - - Select the organisation units you want to include in the layer. - It is possible to select either + - Select the organisation units you want to include in the layer. + It is possible to select either - - One or more specific organisation units, or + - One or more specific organisation units, or - - A relative level in the organisation unit hierarchy, with - respect to the user. By selecting a **User organisation - unit** the map data will appear differently for users at - different levels in the organisation unit hierarchy. + - A relative level in the organisation unit hierarchy, with + respect to the user. By selecting a **User organisation + unit** the map data will appear differently for users at + different levels in the organisation unit hierarchy. - - **Use associated geometry**: This dropdown will only show if there - are any additional geometry available for your organisation units. - This is typically used to show facility catchment areas. + - **Use associated geometry**: This dropdown will only show if there + are any additional geometry available for your organisation units. + This is typically used to show facility catchment areas. 2. In the **Style** tab: ![](resources/images/maps_org_unit_layer_dialog_STYLE.png) - - select any styling you wish to apply to the org unitss. + - select any styling you wish to apply to the org unitss. - - Labels + - Labels - Allows labels to be shown on the layer. Font style can be - modified here. + Allows labels to be shown on the layer. Font style can be + modified here. - - Boundary color + - Boundary color - Allows the boundary or outline color of the organisation units - to be changed. + Allows the boundary or outline color of the organisation units + to be changed. - - Point radius + - Point radius - Sets the base radius when point type elements, such as - facilities, are presented on the org unit layer. + Sets the base radius when point type elements, such as + facilities, are presented on the org unit layer. - - Organisation units can be styled an **organisation unit group set** - using different colors. Select a group set from the list of organisation - unit group sets defined for your DHIS2 instance. + - Organisation units can be styled an **organisation unit group set** + using different colors. Select a group set from the list of organisation + unit group sets defined for your DHIS2 instance. 3. Click **Add layer**. @@ -1124,32 +1134,32 @@ off from the org unit layer card. The data table displays the data forming the org unit layer. -- clicking on a title will sort the table based on that column; - toggling between ascending and descending. +- clicking on a title will sort the table based on that column; + toggling between ascending and descending. -- entering text or expressions into the filter fields below the titles - will apply those filters to the data, and the display will adjust - according to the filter. The filters are applied as follows: +- entering text or expressions into the filter fields below the titles + will apply those filters to the data, and the display will adjust + according to the filter. The filters are applied as follows: - - NAME + - NAME - filter by name containing the given text + filter by name containing the given text - - LEVEL + - LEVEL - filter level by numbers and/or ranges, for example: 2,\>3&\<8 + filter level by numbers and/or ranges, for example: 2,\>3&\<8 - - PARENT + - PARENT - filter by parent names containing the given text + filter by parent names containing the given text - - ID + - ID - filter by IDs containing the given text + filter by IDs containing the given text - - TYPE + - TYPE - filter by GIS display types containing the given text + filter by GIS display types containing the given text > **Note** > @@ -1208,29 +1218,30 @@ facility. The elevation layer allows you to find the lowest, highest and mean elevation. Use the landcover layer to see the forest cover, croplands or urban areas, and calculate the percentage for each organisation unit. -The following layers are supported: +The following layer sources are supported and displayed by default: ![](resources/images/maps_ee_layer_types.png) -- **Population**: Detailed population data from WorldPop showing the estimated - number of poeple living in an area. Available for yearly periods from 2000 and - onwards. +- **Population**: Detailed population data from WorldPop showing the estimated + number of people living in an area. Available for 2020. -- **Population age groups**: Estimated number of people living in an area, grouped - by age and gender. +- **Population age groups**: Estimated number of people living in an area, grouped + by age and gender. Available for 2020. -- **Building footprints**: The outlines of buildings derived from high-resolution - satellite imagery. Only for the continent of Africa. +- **Building footprints**: The outlines of buildings derived from high-resolution + satellite imagery. Only for Sub-Saharan Africa, South and South-East Asia, Latin America and the Caribbean. -- **Elevation**: Elevation above sea level. +- **Elevation**: Elevation above sea level. -- **Precipitation**: The values are in millimeters within 5 days periods. Updated - monthly, during the 3rd week of the following month. Collected from satellite and weather stations on the ground. +- **Precipitation**: Accumulated liquid and frozen water, including rain and snow, that falls to the surface. Combines model data with observations from across the world. Available monthly, from 1950. -- **Temperature**: Land surface temperatures collected from satellite. - Blank spots will appear in areas with a persistent cloud cover. +- **Temperature**: Temperature at 2m above the surface. Combines model data with observations from across the world. Available monthly, from 1950. -- **Land cover**: 17 distinct landcover types collected from satellites by NASA. +- **Land cover**: 17 distinct landcover types collected from satellites by NASA. Available yearly, between 2001 and 2022. + +> **Note** +> +> The [**Maps app administrator**](#maps_app_administrator) can show or hide layer sources from other users. ### Create an Earth Engine layer @@ -1241,82 +1252,80 @@ layer** selection. This opens the layer configuration dialog. ![](resources/images/maps_ee_layer_dialog_DATA.png) - - For "population age groups" you can select the age/gender **groups** - you would like to include when aggregating the data. + - For "population age groups" you can select the age/gender **groups** + you would like to include when aggregating the data. + + - Select the **aggregation methods** you would like to use when calculating + values for the selected organisation units (some option might not be available depending on the layer source). - - Select the **aggregation methods** you would like to use when calculating - values for the selected organisation units. + - **Sum**: Calculates the total number within each organisation unit. + Recommended to use for the population layers. - - **Sum**: Calculates the total number within each organisation unit. - Recommended to use for the population layers. + - **Min**: Returns the minimum value in the layer unit displayed below the + selection. For population layers it will be the minimum _people per + hectar_. For elevation layer it will return the lowest elevation (meters + above sea level). - - **Min**: Returns the minimum value in the layer unit displayed below the - selection. For population layers it will be the minimum _people per - hectar_. For elevation layer it will return the lowest elevation (meters - above sea level). + - **Max**: Returns the maximum value in the layer unit. For population + layers it will be the minimum _people per hectar_. For elevation layer it + will return the highest elevation for each organisation unit. - - **Max**: Returns the maximum value in the layer unit. For population - layers it will be the minimum _people per hectar_. For elevation layer it - will return the highest elevation for each organisation unit. + - **Mean**: Returns the mean value in the layer unit. For population layers + it will be the mean _people per hectar_. For precipitation layer it will + be the mean rainfall in millimeters across the organisation unit. - - **Mean**: Returns the mean value in the layer unit. For population layers - it will be the mean _people per hectar_. For precipitation layer it will - be the mean rainfall in millimeters across the organisation unit. + - **Median**: Returns the mean value in the layer unit. For population layers + it will be the median _people per hectar_. For temperature layer it will + be the median °C during daytime for the organisation unit. - - **Median**: Returns the mean value in the layer unit. For population layers - it will be the median _people per hectar_. For temperature layer it will - be the median °C during daytime for the organisation unit. + - **Standard deviation**: Returns the standard deviation value in the layer + unit. - - **Standard deviation**: Returns the standard deviation value in the layer - unit. + - **Variance**: Returns the variance value in the layer unit. - - **Variance**: Returns the variance value in the layer unit. + - **Special cases**: + - For "building footprints": **Count**: Returns the number of buildings within each organisation unit. Note that building counts are only available for smaller organisation unit areas. + - For "landcover": **Percentage**, **Hectar**, **Acres**: Return the area covered by each landcover category within each organisation in different units. 2. In the **Period** tab ![](resources/images/maps_ee_layer_dialog_PERIOD.png) - - Select the period for the data source. The available periods are set by - data provider. There is only one period for the "population age groups" layer, - while the "population" layer has yearly data available from 2000 and onwards. - Precipitation data is available in 5 days periods, and temperature data for - 8 days periods. + - Select the period for the data source. The available periods are set by + layer source. Sources are available either montly or yearly others are available at a single point in time. 3. In the **Organisation Units** tab: ![](resources/images/maps_ee_layer_dialog_ORG_UNITS.png) - - Select the organisation units you where you want to see aggregated data values. - It is possible to select either + - Select the organisation units you where you want to see aggregated data values. + It is possible to select either - - One or more specific organisation units, organisation unit levels in - the hierarchy, organisation unit groups, or + - One or more specific organisation units, organisation unit levels in + the hierarchy, organisation unit groups, or - - A relative level in the organisation unit hierarchy, with - respect to the user. By selecting a **User organisation - unit** the map data will appear differently for users at - different levels in the organisation unit hierarchy. + - A relative level in the organisation unit hierarchy, with + respect to the user. By selecting a **User organisation + unit** the map data will appear differently for users at + different levels in the organisation unit hierarchy. - - **Use associated geometry**: This dropdown will only show if there - are any additional geometry available for your organisation units. - This is typically used to calculate values for facility catchment areas. - - - **Building footprints**: Building counts are only available for smaller - organisation unit areas. + - **Use associated geometry**: This dropdown will only show if there + are any additional geometry available for your organisation units. + This is typically used to calculate values for facility catchment areas. 4. In the **Style** tab ![](resources/images/maps_ee_layer_dialog_STYLE.png) - - Modify the parameters specific to the layer type. + - Modify the parameters specific to the layer type. - - Adjust the legend range, steps and colors, as desired. + - Adjust the legend range, steps and colors, as desired. - - If you select organisation units having a single point coordinate - (facilities) you can set a radius buffer to calculate the - data value within. A radius of 5000 meters will aggregate all - values available within a 5 km distance from a facility. Buffer - option is not available if associated geometry is used. + - If you select organisation units having a single point coordinate + (facilities) you can set a radius buffer to calculate the + data value within. A radius of 5000 meters will aggregate all + values available within a 5 km distance from a facility. Buffer + option is not available if associated geometry is used. 5. Click **Add layer**. @@ -1332,31 +1341,29 @@ off from the layer card. The data table displays all the aggregated values for the organisation units selected. -- clicking on the up/down button will sort the table based on that column; - toggling between ascending and descending. - -- entering text or expressions into the filter fields below the titles - will apply those filters to the data, and the display will adjust - according to the filter. The filters are applied as follows: +- Clicking on the up/down button will sort the table based on that column; + toggling between ascending and descending. -- NAME +- Entering text or expressions into the filter fields below the titles + will apply those filters to the data, and the display will adjust + according to the filter. The filters are applied as follows: - filter by org unit name containing the given text + - NAME -- ID + filter by name containing the given text - filter by event IDs containing the given text + - ID -- TYPE + filter by IDs containing the given text - filter by GIS display types containing the given text + - TYPE -- AGGREGATION VALUES + filter by GIS display types containing the given text - there is one column for each of the aggregation types selected + - AGGREGATION VALUES ("Sum" and "Mean" in the example above) - numeric data values can be filtered by given numbers, and/or ranges, - for example: 2,\>3&\<8 + there is one column for each of the aggregation types selected + numeric data values can be filtered by given numbers, and/or ranges, for example: 2,\>3&\<8 > **Note** > @@ -1366,37 +1373,41 @@ The data table displays all the aggregated values for the organisation units sel ![](resources/images/maps_terrain_imagery.png) -External map layers are represented as either basemaps or overlays. These must be added to the instance by a system administrator. +External map layers are represented as either basemaps or overlays. -- Basemaps +> **Note** +> +> The [**Maps app administrator**](#maps_app_administrator) can add external map layers. + +- Basemaps - These are available in the **basemap** card in the layers panel and - are selected as any other basemap. + These are available in the **basemap** card in the layers panel and + are selected as any other basemap. -- Overlays +- Overlays - These are available in the **Add layer** selection. Unlike basemaps, - overlays can be placed above or below any other overlay layers. + These are available in the **Add layer** selection. Unlike basemaps, + overlays can be placed above or below any other overlay layers. Overlay layers are represented by additional layer _cards_ in the layer panel such as: Along the top of the overlay card from left to right are: -- A grab field to allow dragging and re-ordering layers with the mouse +- A grab field to allow dragging and re-ordering layers with the mouse -- The title of the external map layer +- The title of the external map layer -- An arrow symbol to collapse and expand the overlay card +- An arrow symbol to collapse and expand the overlay card In the middle of the card is a legend if the layer has one. Along the bottom of the overlay card from left to right are: -- A slider for modifying the layer transparency +- A slider for modifying the layer transparency -- A delete (trash can) icon to remove the layer from the current - thematic map. +- A delete (trash can) icon to remove the layer from the current + thematic map. ### GeoJSON external layers @@ -1518,13 +1529,13 @@ everyone or a user group. To modify the sharing settings: 3. **Users and groups that currently have access**: For each user or group, choose the access level. The options are: - - No access: The public won't have access to the map. This setting is only applicable to All users. + - No access: The public won't have access to the map. This setting is only applicable to All users. - - View only + - View only - - View and edit + - View and edit - - Remove access: Remove the access for groups or individuals. + - Remove access: Remove the access for groups or individuals. 4. Click **Close** to close the dialog. @@ -1600,14 +1611,14 @@ write is visible to those people. 4. Change the access level for the users you want to modify: - - **View and edit**: Everyone can view and edit the object. + - **View and edit**: Everyone can view and edit the object. - - **View only**: Everyone can view the object. + - **View only**: Everyone can view the object. - - **No access**: The public won't have access to the object. This - setting is only applicable to All users. + - **No access**: The public won't have access to the object. This + setting is only applicable to All users. - - **Remove access**: Remove the access for groups or individuals. + - **Remove access**: Remove the access for groups or individuals. 5. Click **Close** when sharing settings are updated. @@ -1619,24 +1630,24 @@ You can download your map as an image by clicking on the Download button in the ![](resources/images/maps_download.png) -You will enter a "download mode" where you can adjust the map layout before you +You will enter a "download mode" where you can adjust the map layout before you download the image. The left column gives you the following options: -- **Show map name**: Select if you want to include the map name or not. This option - is only available if the map is saved. To change the name, exit download mode and - select _File_ > _Rename_. -- **Show map description**: Select if you want to include the map description or not. - This option is only available if a map description was added when the map was saved. - To change the map description, exit download mode and select _File_ > _Rename_. -- **Show legend**: Select if you want to include the map legend. If the map includes - more than one layer, you can select the visibility for each legend. -- **Show overview map**: Select if you want to include an overview map (often named - inset map). This option will be disabled if there is not enough room for it in the - right column. -- **Show north arrow**: Select to include a north arrow on the map. The default - position is the lower right corner of the map, but you can change it to another - corner. -- Click **Download** to download your map. +- **Show map name**: Select if you want to include the map name or not. This option + is only available if the map is saved. To change the name, exit download mode and + select _File_ > _Rename_. +- **Show map description**: Select if you want to include the map description or not. + This option is only available if a map description was added when the map was saved. + To change the map description, exit download mode and select _File_ > _Rename_. +- **Show legend**: Select if you want to include the map legend. If the map includes + more than one layer, you can select the visibility for each legend. +- **Show overview map**: Select if you want to include an overview map (often named + inset map). This option will be disabled if there is not enough room for it in the + right column. +- **Show north arrow**: Select to include a north arrow on the map. The default + position is the lower right corner of the map, but you can change it to another + corner. +- Click **Download** to download your map. Resize your browser window to change the map dimensions. You can also reposition both the main map and the overview map. @@ -1677,7 +1688,21 @@ sites, facilities, villages or towns on the map. Right-click a point on the map and select **Show longitude/latitude**. The values display in a pop-up window. +## Maps app administrator { #maps_app_administrator } + +A **Maps** app administrator can be defined by the system administrator assigning the `F_EXTERNAL_MAP_LAYER_PUBLIC_ADD` authority. + +The **Maps** app administrator is able to: + +- Select the sources for Google Earth Engine layers available to other users via the Manage available layer sources button. + +![](resources/images/maps_admin_managesources_button.png) + +- Add new external layer sources via the Maintenance app. + +![](resources/images/maps_admin_externallayer.png) + ## See also -- [Manage - legends](https://docs.dhis2.org/master/en/user/html/manage_legend.html) +- [Manage + legends](https://docs.dhis2.org/master/en/user/html/manage_legend.html) diff --git a/docs/resources/images/maps_admin_externallayer.png b/docs/resources/images/maps_admin_externallayer.png new file mode 100644 index 0000000000000000000000000000000000000000..267dfb992a366a3907df3e8abf5dedacd15440cd GIT binary patch literal 44043 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

qjD!Z-yF$k`%u#ea*bAM>s{@ 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 Y>=PE7Gx!?ks)4-Z>FVdQ&MBb@0FgpEF#rGn literal 0 HcmV?d00001 diff --git a/docs/resources/images/maps_admin_managesources_button.png b/docs/resources/images/maps_admin_managesources_button.png new file mode 100644 index 0000000000000000000000000000000000000000..c92099c9b4dde7873b0046341e293513f617e0d8 GIT binary patch literal 612730 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

5^(qCbTzh0)S8Z1ZVC&S%#CNH~? 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�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

bL98fQ{65c6yJy^%8zG8 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 z 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%0APsXSSg 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 Sou2pu_^B#uDiz#*`24>PsIO}P literal 0 HcmV?d00001 diff --git a/src/constants/earthEngineLayers/population_age_sex_WorldPop.js b/src/constants/earthEngineLayers/population_age_sex_WorldPop.js index d2a9bb125..9da471ef9 100644 --- a/src/constants/earthEngineLayers/population_age_sex_WorldPop.js +++ b/src/constants/earthEngineLayers/population_age_sex_WorldPop.js @@ -16,6 +16,7 @@ export default { sourceUrl: 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop_age_sex_cons_unadj', periodType: 'YEARLY', + aggregations: ['min', 'max', 'mean', 'median', 'sum', 'stdDev', 'variance'], defaultAggregations: ['sum', 'mean'], useCentroid: true, bands: [ diff --git a/src/constants/earthEngineLayers/population_total_WorldPop.js b/src/constants/earthEngineLayers/population_total_WorldPop.js index d5dfe9e64..958058608 100644 --- a/src/constants/earthEngineLayers/population_total_WorldPop.js +++ b/src/constants/earthEngineLayers/population_total_WorldPop.js @@ -13,6 +13,7 @@ export default { sourceUrl: 'https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop_age_sex_cons_unadj', unit: i18n.t('people per hectare'), + aggregations: ['min', 'max', 'mean', 'median', 'sum', 'stdDev', 'variance'], defaultAggregations: ['sum', 'mean'], periodType: 'YEARLY', useCentroid: true, From d6068eb76aba40f9238f490c590dc229b2af1fe8 Mon Sep 17 00:00:00 2001 From: braimbault Date: Fri, 26 Jul 2024 16:49:39 +0200 Subject: [PATCH 12/25] fix: Improved EE layer source descriptions --- i18n/en.pot | 50 ++++++++++++++++--- .../edit/earthEngine/EarthEngineDialog.js | 19 +++++++ .../earthEngineLayers/buildings_GOOGLE.js | 14 ++++-- .../earthEngineLayers/elevation_SRTM.js | 9 +++- .../earthEngineLayers/landcover_MCD12Q1.js | 13 +++-- .../population_age_sex_WorldPop.js | 26 ++++++---- .../population_total_WorldPop.js | 12 +++-- .../precipitation_monthly_ERA5-Land.js | 11 ++-- .../temperature_monthly_ERA5-Land.js | 9 +++- 9 files changed, 126 insertions(+), 37 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index ebbae574e..3a3778707 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,11 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-07-09T09:06:27.427Z\n" -"PO-Revision-Date: 2024-07-09T09:06:27.427Z\n" +"POT-Creation-Date: 2024-07-26T14:38:11.702Z\n" +"PO-Revision-Date: 2024-07-26T14:38:11.702Z\n" + +msgid "2020" +msgstr "2020" msgid "Untitled map, {{date}}" msgstr "Untitled map, {{date}}" @@ -320,6 +323,15 @@ msgstr "" msgid "Unit" msgstr "Unit" +msgid "Spatial resolution" +msgstr "Spatial resolution" + +msgid "Temporal resolution" +msgstr "Temporal resolution" + +msgid "Temporal coverage" +msgstr "Temporal coverage" + msgid "Source" msgstr "Source" @@ -998,14 +1010,29 @@ msgstr "" msgid "Number of buildings" msgstr "Number of buildings" +msgid "0.5 meter" +msgstr "0.5 meter" + +msgid "Single point in time" +msgstr "Single point in time" + +msgid "May 2023" +msgstr "May 2023" + msgid "Elevation" msgstr "Elevation" +msgid "Elevation above sea-level." +msgstr "Elevation above sea-level." + msgid "meters" msgstr "meters" -msgid "Elevation above sea-level." -msgstr "Elevation above sea-level." +msgid "~30 meters" +msgstr "~30 meters" + +msgid "Febuary 2000" +msgstr "Febuary 2000" msgid "Landcover" msgstr "Landcover" @@ -1123,6 +1150,9 @@ msgstr "Population age groups" msgid "Estimated number of people living in an area, grouped by age and gender." msgstr "Estimated number of people living in an area, grouped by age and gender." +msgid "~100 meters" +msgstr "~100 meters" + msgid "Male 0 - 1 years" msgstr "Male 0 - 1 years" @@ -1241,6 +1271,15 @@ msgstr "" "Accumulated liquid and frozen water, including rain and snow, that falls to " "the surface. Combines model data with observations from across the world." +msgid "~11 kilometers" +msgstr "~11 kilometers" + +msgid "Monthly" +msgstr "Monthly" + +msgid "Febuary 1950 - Last Month" +msgstr "Febuary 1950 - Last Month" + msgid "Temperature monthly" msgstr "Temperature monthly" @@ -1308,9 +1347,6 @@ msgstr "Weekly (Start Sunday)" msgid "Bi-weekly" msgstr "Bi-weekly" -msgid "Monthly" -msgstr "Monthly" - msgid "Bi-monthly" msgstr "Bi-monthly" diff --git a/src/components/edit/earthEngine/EarthEngineDialog.js b/src/components/edit/earthEngine/EarthEngineDialog.js index fbbe54c87..600cd09e9 100644 --- a/src/components/edit/earthEngine/EarthEngineDialog.js +++ b/src/components/edit/earthEngine/EarthEngineDialog.js @@ -48,6 +48,7 @@ const EarthEngineDialog = (props) => { setBufferRadius, setEarthEnginePeriod, unit, + resolution, validateLayer, onLayerValidation, } = props @@ -163,6 +164,24 @@ const EarthEngineDialog = (props) => { {i18n.t('Unit')}: {unit}

)} + {resolution?.spatial && ( +
+ {i18n.t('Spatial resolution')}:{' '} + {resolution?.spatial} +
+ )} + {resolution?.temporal && ( +
+ {i18n.t('Temporal resolution')}:{' '} + {resolution?.temporal} +
+ )} + {resolution?.temporalCoverage && ( +
+ {i18n.t('Temporal coverage')}:{' '} + {resolution?.temporalCoverage} +
+ )}
{i18n.t('Source')}:{' '} Date: Fri, 26 Jul 2024 17:14:52 +0200 Subject: [PATCH 13/25] fix: support of EE buildings v1 (legacy) --- i18n/en.pot | 8 ++--- .../earthEngineLayers/buildings_GOOGLE.js | 2 +- src/constants/earthEngineLayers/index.js | 2 ++ .../legacy/buildings_GOOGLE.js | 35 +++++++++++++++++++ 4 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 src/constants/earthEngineLayers/legacy/buildings_GOOGLE.js diff --git a/i18n/en.pot b/i18n/en.pot index 3a3778707..1df9c6093 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-07-26T14:38:11.702Z\n" -"PO-Revision-Date: 2024-07-26T14:38:11.702Z\n" +"POT-Creation-Date: 2024-07-26T15:01:52.933Z\n" +"PO-Revision-Date: 2024-07-26T15:01:52.933Z\n" msgid "2020" msgstr "2020" @@ -1277,8 +1277,8 @@ msgstr "~11 kilometers" msgid "Monthly" msgstr "Monthly" -msgid "Febuary 1950 - Last Month" -msgstr "Febuary 1950 - Last Month" +msgid "Febuary 1950 - One month ago" +msgstr "Febuary 1950 - One month ago" msgid "Temperature monthly" msgstr "Temperature monthly" diff --git a/src/constants/earthEngineLayers/buildings_GOOGLE.js b/src/constants/earthEngineLayers/buildings_GOOGLE.js index 8a3c666b1..a8893f84e 100644 --- a/src/constants/earthEngineLayers/buildings_GOOGLE.js +++ b/src/constants/earthEngineLayers/buildings_GOOGLE.js @@ -9,7 +9,7 @@ export default { img: 'images/buildings.png', name: i18n.t('Building footprints'), description: i18n.t( - 'The outlines of buildings derived from high-resolution satellite imagery. Only for the continent of Africa.' + 'The outlines of buildings derived from high-resolution satellite imagery. Only for Sub-Saharan Africa, South and South-East Asia, Latin America and the Caribbean.' ), notice: i18n.t( 'Building counts are only available for smaller organisation unit areas.' diff --git a/src/constants/earthEngineLayers/index.js b/src/constants/earthEngineLayers/index.js index 8fdc3b092..5ef679e21 100644 --- a/src/constants/earthEngineLayers/index.js +++ b/src/constants/earthEngineLayers/index.js @@ -1,6 +1,7 @@ import buildings from './buildings_GOOGLE.js' import elevation from './elevation_SRTM.js' import landcover from './landcover_MCD12Q1.js' +import legacyBuildings from './legacy/buildings_GOOGLE.js' import legacyNighttime from './legacy/nighttime_DMSP-OLS.js' import legacyPopulationWorldPop from './legacy/population_WorldPop.js' import legacyPopulation100m from './legacy/population_WorldPop_100m.js' @@ -19,6 +20,7 @@ const earthEngineLayers = [ precipitationMonthly, temperatureMonthly, landcover, + legacyBuildings, legacyNighttime, legacyPopulation100m, legacyPopulationWorldPop, diff --git a/src/constants/earthEngineLayers/legacy/buildings_GOOGLE.js b/src/constants/earthEngineLayers/legacy/buildings_GOOGLE.js new file mode 100644 index 000000000..ae24c518e --- /dev/null +++ b/src/constants/earthEngineLayers/legacy/buildings_GOOGLE.js @@ -0,0 +1,35 @@ +import i18n from '@dhis2/d2-i18n' +import { EARTH_ENGINE_LAYER } from '../../layers.js' + +export const legacyBuildingsDatasetId = + 'GOOGLE/Research/open-buildings/v1/polygons' + +export default { + legacy: true, // Kept for backward compability + layer: EARTH_ENGINE_LAYER, + layerId: legacyBuildingsDatasetId, + datasetId: legacyBuildingsDatasetId, + format: 'FeatureCollection', + name: i18n.t('Building footprints'), + unit: i18n.t('Number of buildings'), + description: i18n.t( + 'The outlines of buildings derived from high-resolution satellite imagery. Only for the continent of Africa.' + ), + notice: i18n.t( + 'Building counts are only available for smaller organisation unit areas.' + ), + error: i18n.t( + 'Select a smaller area or single organization unit to see the count of buildings.' + ), + source: 'Google Research', + sourceUrl: + 'https://developers.google.com/earth-engine/datasets/catalog/GOOGLE_Research_open-buildings_v1_polygons', + img: 'images/buildings.png', + aggregations: ['count'], + defaultAggregations: ['count'], + style: { + color: '#FFA500', + strokeWidth: 1, + }, + opacity: 0.9, +} From 77ea8f6403702323737f9f259add1b0a12f2e541 Mon Sep 17 00:00:00 2001 From: braimbault Date: Mon, 29 Jul 2024 11:28:28 +0200 Subject: [PATCH 14/25] chore: lint errors --- i18n/en.pot | 17 +++++++++++++---- .../edit/earthEngine/EarthEngineDialog.js | 5 +++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/i18n/en.pot b/i18n/en.pot index 1df9c6093..3847c51b4 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-07-26T15:01:52.933Z\n" -"PO-Revision-Date: 2024-07-26T15:01:52.933Z\n" +"POT-Creation-Date: 2024-07-29T08:54:03.091Z\n" +"PO-Revision-Date: 2024-07-29T08:54:03.091Z\n" msgid "2020" msgstr "2020" @@ -992,10 +992,12 @@ msgstr "Building footprints" msgid "" "The outlines of buildings derived from high-resolution satellite imagery. " -"Only for the continent of Africa." +"Only for Sub-Saharan Africa, South and South-East Asia, Latin America and " +"the Caribbean." msgstr "" "The outlines of buildings derived from high-resolution satellite imagery. " -"Only for the continent of Africa." +"Only for Sub-Saharan Africa, South and South-East Asia, Latin America and " +"the Caribbean." msgid "Building counts are only available for smaller organisation unit areas." msgstr "Building counts are only available for smaller organisation unit areas." @@ -1091,6 +1093,13 @@ msgstr "Barren or sparsely vegetated" msgid "Water" msgstr "Water" +msgid "" +"The outlines of buildings derived from high-resolution satellite imagery. " +"Only for the continent of Africa." +msgstr "" +"The outlines of buildings derived from high-resolution satellite imagery. " +"Only for the continent of Africa." + msgid "Nighttime lights" msgstr "Nighttime lights" diff --git a/src/components/edit/earthEngine/EarthEngineDialog.js b/src/components/edit/earthEngine/EarthEngineDialog.js index 600cd09e9..a67af3dee 100644 --- a/src/components/edit/earthEngine/EarthEngineDialog.js +++ b/src/components/edit/earthEngine/EarthEngineDialog.js @@ -247,6 +247,11 @@ EarthEngineDialog.propTypes = { period: PropTypes.object, periodType: PropTypes.string, precision: PropTypes.number, + resolution: PropTypes.shape({ + spatial: PropTypes.string, + temporal: PropTypes.string, + temporalCoverage: PropTypes.string, + }), rows: PropTypes.array, source: PropTypes.string, sourceUrl: PropTypes.string, From 6a5ba090033e6d9cff810034dabd452c97a17f66 Mon Sep 17 00:00:00 2001 From: braimbault Date: Mon, 29 Jul 2024 11:29:10 +0200 Subject: [PATCH 15/25] fix: handle namespace without key in useLoadDataStore --- src/components/app/useLoadDataStore.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/components/app/useLoadDataStore.js b/src/components/app/useLoadDataStore.js index b5dc36c51..da30328e3 100644 --- a/src/components/app/useLoadDataStore.js +++ b/src/components/app/useLoadDataStore.js @@ -52,6 +52,20 @@ export const useLoadDataStore = () => { dispatch(initLayerSources(layerSourcesVisibility)) } }) + .catch(() => { + // Create key if missing in namespace + engine + .mutate({ + resource: resourceLayerSourcesVisibility, + type: 'create', + data: layerSourceDefaultIds, + }) + .then(() => { + dispatch( + initLayerSources(layerSourceDefaultIds) + ) + }) + }) } }) } From 36f660d4e5375af824babbec8a1fa448b9a9cc33 Mon Sep 17 00:00:00 2001 From: braimbault Date: Mon, 29 Jul 2024 12:13:53 +0200 Subject: [PATCH 16/25] chore: update default buildings layer in cypress test --- cypress/integration/manageLayerSources.cy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/manageLayerSources.cy.js b/cypress/integration/manageLayerSources.cy.js index 372c362f8..d72dffc5c 100644 --- a/cypress/integration/manageLayerSources.cy.js +++ b/cypress/integration/manageLayerSources.cy.js @@ -10,7 +10,7 @@ const LAYER_SOURCES_DEFAULT_MANAGED_LIST = [ 'ECMWF/ERA5_LAND/MONTHLY_AGGR/temperature_2m', 'MODIS/006/MCD12Q1', 'USGS/SRTMGL1_003', - 'GOOGLE/Research/open-buildings/v1/polygons', + 'GOOGLE/Research/open-buildings/v3/polygons', ] const LAYER_SOURCES_DEFAULT_MANAGED = LAYER_SOURCES_DEFAULT_MANAGED_LIST.length const LAYER_SOURCES_DEFAULT_STANDARD = 6 From d636663d47c45dc8e5e31303f2f45a215b8fd95b Mon Sep 17 00:00:00 2001 From: Bjorn Sandvik Date: Mon, 29 Jul 2024 12:23:55 +0200 Subject: [PATCH 17/25] feat: new unmask aggregation option (#3288) * feat: new unmask aggregation param --- src/components/map/layers/earthEngine/EarthEngineLayer.js | 2 ++ src/constants/earthEngineLayers/population_age_sex_WorldPop.js | 1 + src/constants/earthEngineLayers/population_total_WorldPop.js | 1 + 3 files changed, 4 insertions(+) diff --git a/src/components/map/layers/earthEngine/EarthEngineLayer.js b/src/components/map/layers/earthEngine/EarthEngineLayer.js index 472153730..26da42a11 100644 --- a/src/components/map/layers/earthEngine/EarthEngineLayer.js +++ b/src/components/map/layers/earthEngine/EarthEngineLayer.js @@ -74,6 +74,7 @@ export default class EarthEngineLayer extends Layer { aggregationType, areaRadius, tileScale, + unmaskAggregation, } = this.props const { map, isPlugin } = this.context @@ -102,6 +103,7 @@ export default class EarthEngineLayer extends Layer { data, aggregationType, tileScale, + unmaskAggregation, preload: !isPlugin && this.hasAggregations(), onClick: this.onFeatureClick.bind(this), onRightClick: this.onFeatureRightClick.bind(this), diff --git a/src/constants/earthEngineLayers/population_age_sex_WorldPop.js b/src/constants/earthEngineLayers/population_age_sex_WorldPop.js index 048d63a19..2b37ac5c2 100644 --- a/src/constants/earthEngineLayers/population_age_sex_WorldPop.js +++ b/src/constants/earthEngineLayers/population_age_sex_WorldPop.js @@ -22,6 +22,7 @@ export default { }, aggregations: ['min', 'max', 'mean', 'median', 'sum', 'stdDev', 'variance'], defaultAggregations: ['sum', 'mean'], + unmaskAggregation: true, periodType: 'YEARLY', filters: [ { diff --git a/src/constants/earthEngineLayers/population_total_WorldPop.js b/src/constants/earthEngineLayers/population_total_WorldPop.js index 90892fec8..c4b3668db 100644 --- a/src/constants/earthEngineLayers/population_total_WorldPop.js +++ b/src/constants/earthEngineLayers/population_total_WorldPop.js @@ -20,6 +20,7 @@ export default { }, aggregations: ['min', 'max', 'mean', 'median', 'sum', 'stdDev', 'variance'], defaultAggregations: ['sum', 'mean'], + unmaskAggregation: true, periodType: 'YEARLY', filters: [ { From bee54fe01555c973049b4c8791fbb33994443567 Mon Sep 17 00:00:00 2001 From: braimbault Date: Mon, 29 Jul 2024 14:30:51 +0200 Subject: [PATCH 18/25] fix: tableData values when aggregating by class (percentage, hectares and acres) --- src/components/datatable/useTableData.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/datatable/useTableData.js b/src/components/datatable/useTableData.js index 7cca5b6f8..47a0c99ad 100644 --- a/src/components/datatable/useTableData.js +++ b/src/components/datatable/useTableData.js @@ -148,9 +148,9 @@ const getEarthEngineHeaders = ({ aggregationType, legend, data }) => { let customFields = [] if (hasClasses(aggregationType) && items) { - customFields = items.map(({ id, name }) => ({ + customFields = items.map(({ value, name }) => ({ name, - dataKey: String(id), + dataKey: String(value), roundFn: getRoundToPrecisionFn(2), type: TYPE_NUMBER, })) From 8488ffe9640dceaf1fb88fbe4eec12b9e6b9f538 Mon Sep 17 00:00:00 2001 From: braimbault Date: Tue, 30 Jul 2024 15:44:40 +0200 Subject: [PATCH 19/25] fix: bump maps-gl dependency to latest version in feat/custom-ee-layers --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 52e94a791..a02ffbfdf 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@dhis2/app-service-alerts": "3.9.4", "@dhis2/app-service-datastore": "^1.0.0-beta.3", "@dhis2/d2-i18n": "^1.1.3", - "@dhis2/maps-gl": "git+https://github.com/d2-ci/maps-gl.git#6bc87213a92fda4fb9fcfe79b0a9f18aa21bb63a", + "@dhis2/maps-gl": "git+https://github.com/d2-ci/maps-gl.git#feat/custom-ee-layers", "@dhis2/ui": "^9.2.0", "@krakenjs/post-robot": "^11.0.0", "@reportportal/agent-js-cypress": "git+https://github.com/dhis2/agent-js-cypress.git#develop", From 25731b4ed010dd544b64d79c62d858b546e0bce3 Mon Sep 17 00:00:00 2001 From: braimbault Date: Tue, 30 Jul 2024 15:55:45 +0200 Subject: [PATCH 20/25] fix: bump maps-gl dependency to latest version in feat/custom-ee-layers --- yarn.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 131eea685..e212d32fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2234,9 +2234,9 @@ i18next "^10.3" moment "^2.24.0" -"@dhis2/maps-gl@git+https://github.com/d2-ci/maps-gl.git#6bc87213a92fda4fb9fcfe79b0a9f18aa21bb63a": +"@dhis2/maps-gl@git+https://github.com/d2-ci/maps-gl.git#feat/custom-ee-layers": version "3.9.2" - resolved "git+https://github.com/d2-ci/maps-gl.git#6bc87213a92fda4fb9fcfe79b0a9f18aa21bb63a" + resolved "git+https://github.com/d2-ci/maps-gl.git#b640c769ddf9970ef751c245ad791c6ed64f21b7" dependencies: "@mapbox/sphericalmercator" "^1.2.0" "@turf/area" "^6.5.0" From 143351589acec7941a0d79fc806430260d2a2307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Sandvik?= Date: Wed, 31 Jul 2024 08:16:15 +0200 Subject: [PATCH 21/25] chore: yarn.lock --- yarn.lock | 669 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 669 insertions(+) diff --git a/yarn.lock b/yarn.lock index 6ef120023..c3c37139f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1448,6 +1448,18 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/alert@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-9.11.0.tgz#01456616ad601b9c5ff5d71dfb5db102f46e5743" + integrity sha512-jka/E26RkLJexYhi934yj8hpIvdI/mOnFzjwca0kDxnCaJ9JCz/j6x0BklrzRFFt/gGJ9aldG1mVX7fGtIEEvw== + dependencies: + "@dhis2-ui/portal" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/box@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-9.10.1.tgz#67c311156b762c4ecd39532ec36713e229f2ba27" @@ -1458,6 +1470,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/box@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-9.11.0.tgz#92391d2d8bbdb3bdd2714d93e7d519dc041f1db9" + integrity sha512-/ds/LWG8P995QRDHhkVvCS8ao6tOpssAwqFY2PiaRIl2J39b6bmfIVfIQldldiKO1IK05oJmRSCmCx8TfHE9ig== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/button@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-9.10.1.tgz#ccdedc218a966db70d1bf723cdd224d8e6b3e93f" @@ -1472,6 +1494,20 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/button@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-9.11.0.tgz#ee6a5dec0e44da72a654c546a6c685dbcdc33245" + integrity sha512-b5cA+v0uv+5Dj6CXPiFavOUSgiNLKXRBg6OjeZatUTIsoO59UpOxQoVp4cCo8/kZkBBUyuwsMYO2AHuIarTucQ== + dependencies: + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2-ui/popper" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/calendar@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-9.10.1.tgz#7683f05fef63b6841403f746f32a52891e323d64" @@ -1489,6 +1525,23 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/calendar@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-9.11.0.tgz#321c23b8af4c2f1ecc7389348d4d1ddee743e7b7" + integrity sha512-re7URApmtRtiAk0a0AykhMVtQvFZI/z9nvojOXID8CyifCa4Yqx+Ga9yipeqOrzmhVBWuNohgATkOWXcW4lqRg== + dependencies: + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/card" "9.11.0" + "@dhis2-ui/input" "9.11.0" + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/popper" "9.11.0" + "@dhis2/multi-calendar-dates" "^1.2.3" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/card@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-9.10.1.tgz#d4814458245444f95bc0a6c1fd88679e1ffba01c" @@ -1499,6 +1552,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/card@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-9.11.0.tgz#17b40d55240a1fb5c34345b0d16e63ab984cfdb6" + integrity sha512-phjsyukZfmxKqqtRxVRuFJdc30S7XfEkEmQv11wWnAjGVl2YxIWKm8SAGShpu0gC8susJg0GBhY7Ts+h5cRvQg== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/center@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-9.10.1.tgz#5628692b2aeff42870c0e0619aafac5dcab0777d" @@ -1509,6 +1572,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/center@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-9.11.0.tgz#f3d5a302fb2227a78a8430a706a90a43eae92665" + integrity sha512-LEAW1wlpArkA63sko/24H8C4AHYTGFolIMYjcAFX1GR2xBcFpj/4VQRQFK6P9POtrSv+syVlfw51g9zBfhYi9A== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/checkbox@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-9.10.1.tgz#4ee2112c3972beca38a9897ecb82dfd3b307710e" @@ -1521,6 +1594,18 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/checkbox@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-9.11.0.tgz#05d59ac1403a93c44bee2e2e04b008f1851ebeb7" + integrity sha512-jPn/3DCUNLar8EEgUI01h100POtob6GxkcpTkMsRqngN4f+QTAPZGVORVFjd+2nAAG/msHXaqnNqmfwkaKPsaA== + dependencies: + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/required" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/chip@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-9.10.1.tgz#b530093e9ef2c6bfa85f556512a1b43a9b0c9e77" @@ -1531,6 +1616,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/chip@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-9.11.0.tgz#1e8b4276872b8737ed1607588867d0f6d9800e13" + integrity sha512-jc/CCohXhbTT91AagWIxieybSyAR9Mo91vMjRHbe8qzVua40WezAazhjLCd82ynGjEzHWMryaK7om1VK5hbM9A== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/cover@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-9.10.1.tgz#c668649399b4b9e9aaffb0209cfa98c868c3b986" @@ -1541,6 +1636,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/cover@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-9.11.0.tgz#ea8280dfcb2444111cd0e1da87c566d5813dc1c3" + integrity sha512-mwb15H2gJNOO9ZDZEQclfrvKbb0TvLn3n7BMErR8+Z9oE9j8ycMI/Ks6Itov94dIX2Es+1cHZFMDLJUOTtI+yg== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/css@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-9.10.1.tgz#d94b659e3f00c7d353b9f53ab786ebd0dc6fc4cb" @@ -1551,6 +1656,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/css@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-9.11.0.tgz#4540c4795b146b3c92feae5ccbca99b198d66fb2" + integrity sha512-TsLR1Jw7fjTqszrybAdw1ouAdV3hPX9v3JJE/iWqTKPHfTSxtEj201jHAqpNWjxiIgEzPJ2AG61fUh44+Iiibw== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/divider@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-9.10.1.tgz#a6fa0af3b02cc28d35180b784cc53ccd5d710173" @@ -1561,6 +1676,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/divider@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-9.11.0.tgz#af514387024824102dbdb352058809f1d54c8901" + integrity sha512-zDFjs2BZF3Dra8cpYypYmvYTnFgItHoFOAGs1JfVlvTcWGpaggf1ah8BcxqFSxOg7rgL0CGtF9uLujGNdbla5g== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/field@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-9.10.1.tgz#732d289d274c11f853c8fc399de9703ccb0da327" @@ -1574,6 +1699,19 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/field@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-9.11.0.tgz#c57c623ea4ad32a6440062ed4ee81e2130d80f75" + integrity sha512-pVFNqiKVgsefxpgfMnrM6mU9ZM1qZtRAZsDjzooYIlh1r0nUQt01GKgn0TTdyICIoqO3lNLxvxNA5SXv9QRqfQ== + dependencies: + "@dhis2-ui/box" "9.11.0" + "@dhis2-ui/help" "9.11.0" + "@dhis2-ui/label" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/file-input@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-9.10.1.tgz#f1c38080c4f65a35b8383508a22b34bfd0596b05" @@ -1590,6 +1728,22 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/file-input@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-9.11.0.tgz#77735de2a87f734a4041f4a397911313dc816df6" + integrity sha512-CWp34b6hMc67V5KJow5orPzLTVJzFnudouXYQEiPd3fUHJa4xRYW+GvbL+uY46VvF+GSB82eP5+z4PTgicZWxA== + dependencies: + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/label" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2-ui/status-icon" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/header-bar@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-9.10.1.tgz#a3b75bb45630f0576bfa411719749eff928fdc24" @@ -1614,6 +1768,30 @@ moment "^2.29.1" prop-types "^15.7.2" +"@dhis2-ui/header-bar@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-9.11.0.tgz#aeac3955e407e4c398daa81ae3231b52bcd18870" + integrity sha512-1NRznu2gluvAc1Kd5Ogt7K7rlfvvlvouUYGC9kn+mLYHj/h6T+eeTOS8Y0uEJLgmfuuklm2omZ+ASUIY3A7+iA== + dependencies: + "@dhis2-ui/box" "9.11.0" + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/card" "9.11.0" + "@dhis2-ui/center" "9.11.0" + "@dhis2-ui/divider" "9.11.0" + "@dhis2-ui/input" "9.11.0" + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2-ui/logo" "9.11.0" + "@dhis2-ui/menu" "9.11.0" + "@dhis2-ui/modal" "9.11.0" + "@dhis2-ui/user-avatar" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + moment "^2.29.1" + prop-types "^15.7.2" + "@dhis2-ui/help@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-9.10.1.tgz#e4d9999a15c95e070f78a5bc9cb8f1534859d8d2" @@ -1624,6 +1802,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/help@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-9.11.0.tgz#071ed4ff473cbc423b7a1f51c7217b6bbf057974" + integrity sha512-/n1bnolladI44ZVSzxKvt6SnsAlVK9G76uT1pTMNyMRDHCIpZc8070HADv+2GGD5YbwSpltClgy+3U4xPz14/A== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/input@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-9.10.1.tgz#b683732e6b1b0672516c7927f23c87090cc72f11" @@ -1640,6 +1828,22 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/input@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-9.11.0.tgz#4dd6efc15c82605468a3e1211f0b182bd5c66a08" + integrity sha512-jx3scjWkhO3s7SzaTfYUOYpOacGfS9317fGEshrirdkh6+jzLF+qbWLM9BX/hf63JfU4iPZC4cZzr0yWgxohDg== + dependencies: + "@dhis2-ui/box" "9.11.0" + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/input" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2-ui/status-icon" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/intersection-detector@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-9.10.1.tgz#767227650e4436262c91d9d670aa279aca998d3f" @@ -1650,6 +1854,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/intersection-detector@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-9.11.0.tgz#cad6dc8095cdfc9db133fd8a46d19e90130e4f07" + integrity sha512-Dr1WUDvcWbKFFu2DoCwfLwokM/d1oQApEkbAmUBSkAv9uWx61VgLlH/Z3I/Pr/VSJuBR3zWSpmVbduLlFs1Avg== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/label@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-9.10.1.tgz#b4d9de56e9e209d94937c09e83f356bab717a6b3" @@ -1661,6 +1875,17 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/label@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-9.11.0.tgz#286e9b1b79ef7cf45d500a893b4c0fd6b11eeaec" + integrity sha512-wOlHjghmey9nbytOKHHfwzaUzxqgXcmTzy7ntkRBsmqVMdJ07+pL7iFId4EFNdGz2aGPGPAs1qmMEqDJPoz3eA== + dependencies: + "@dhis2-ui/required" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/layer@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-9.10.1.tgz#8f7867ccb62af0b0af5b8a25767e693ee585d38f" @@ -1672,6 +1897,17 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/layer@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-9.11.0.tgz#ffc80120cf38236ec04291e1bb992549c4e685fd" + integrity sha512-jCrgn2n4QlxTY7GRhwgrDqTbMaju7SDUGrrqOTBZXg8bCoVBazqh3dgUUWogOVJ8UH6ob+tycfXvbUf0lJClNg== + dependencies: + "@dhis2-ui/portal" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/legend@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-9.10.1.tgz#8521c229fa46e1926cb9587a6b0c6c5482f6bcf0" @@ -1683,6 +1919,17 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/legend@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-9.11.0.tgz#f8c8201ae9da75c815810715d3aca38e03fb585d" + integrity sha512-MxpJbao+t1qhUrStLhLAn2+Xt2G2gyoiHEf7BeF85opf5HsY+9Xbki1RemP69ixe906czCKD2gieZxNNpdQYBw== + dependencies: + "@dhis2-ui/required" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/loader@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-9.10.1.tgz#1a48b05a9e8c31d7819f66d22b27288a076cfc02" @@ -1693,6 +1940,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/loader@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-9.11.0.tgz#f0a2f8f0646efd9bce632194eb68bba0f1512c2e" + integrity sha512-98M8KmGYYeROkGE/rZ8e3BHQKgfk7ZsZmYrhr6JyEYUWoW+rDHeR/a5bprbMmie//+ePdOx2UxZUJKIDUZEPvw== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/logo@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-9.10.1.tgz#b4bd80780786c35a85c1fe2d7888862df3e97213" @@ -1703,6 +1960,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/logo@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-9.11.0.tgz#2ff0058cc6dffcb0dcf6182e70429d0fa710dcd4" + integrity sha512-R0nebCjwHeYbq0+N2xje1NOTI6bcUB16riSNBBimyZAQXqEWUyiuqxISf49UUG+Ed7UjkcMnJe6AmL+Yoemfug== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/menu@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-9.10.1.tgz#e9d7ef056680ceb3b385940d433d88be02ed6c77" @@ -1719,6 +1986,22 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/menu@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-9.11.0.tgz#33b5f74e193d36dd4a13175bfeaafdaa6ae8373d" + integrity sha512-613Yb3IK2JQGrOTP6caCRkSTqqrOkL0K1Frsv0Uzhts066bZQaIT7drL0T+vIFv0+sgRSGyfBSfTrYQofxnKYQ== + dependencies: + "@dhis2-ui/card" "9.11.0" + "@dhis2-ui/divider" "9.11.0" + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/popper" "9.11.0" + "@dhis2-ui/portal" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/modal@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-9.10.1.tgz#63453611171a61541d3bb07df9b78697e40ec1aa" @@ -1734,6 +2017,21 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/modal@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-9.11.0.tgz#c16b04787641e9f64d385c55959fa8f5537f1acf" + integrity sha512-GDg7uad+/eLvadJEXjVoHTlEfrd639QmVVdjEcvC+RtHOOXKjlR3wpm+FvgUSbw7zhXpcZ68LNdga9X9bjn14Q== + dependencies: + "@dhis2-ui/card" "9.11.0" + "@dhis2-ui/center" "9.11.0" + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/portal" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/node@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-9.10.1.tgz#d70d639edec02dffd1a7fbd3871c10b9463b30e2" @@ -1745,6 +2043,17 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/node@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-9.11.0.tgz#d4cc2b0ca1b653247bf3bf90a9e4152780f61253" + integrity sha512-GfI9ecBzJGeZnS6fLiS19eAg+w9hIXOC5sk69S5NOEKDbCU+CWR97GSpb71RBiq9QZuNBtNEZU7Vqa01+G041Q== + dependencies: + "@dhis2-ui/loader" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/notice-box@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-9.10.1.tgz#0bc013d64da1f1e523c7bcd167987cbe94770947" @@ -1756,6 +2065,17 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/notice-box@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-9.11.0.tgz#2bd5c4a13a9d021c2d694f94ee6520276ccc533f" + integrity sha512-xEfsxFVoiMxVjqvf9QyB7w83cwraS+aS1HaOXTySvseOd+jSk7YlYAQJ2RQbGmik7rsSlyNMXbWoJ9TaJ8Y/pg== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/organisation-unit-tree@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-9.10.1.tgz#8798f023cd9c14e8b586b1249fca92d27d31b3c5" @@ -1769,6 +2089,19 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/organisation-unit-tree@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-9.11.0.tgz#c626c71cac19ba93241a6e36fad2d261f3307c32" + integrity sha512-2mYpgBPjmNlkCnCLrDmmPtC1rs07uxlEeqULTCiqRcbbWzEYL2S+fAao5IiOrlzXR9JIVlG7P8htMYNfj48tJQ== + dependencies: + "@dhis2-ui/checkbox" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2-ui/node" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/pagination@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-9.10.1.tgz#8ae88b47642d8a0a87cdeb99d6a0607f9185ad8b" @@ -1782,6 +2115,19 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/pagination@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-9.11.0.tgz#6967b1241ec3c36855e4570125e202752a6db577" + integrity sha512-HllIE5IVsNK1vM9wxRDfrLtxrrMWOxDEV+8B6QKG9qLXubfoFZL6+b5MGHo/mzDzY+7LxxBpiowoYaj52QMFYQ== + dependencies: + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/select" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/popover@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-9.10.1.tgz#edc06a2208a14a9cf69b1217fd9d4bb9f8f3be4a" @@ -1794,6 +2140,18 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/popover@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-9.11.0.tgz#c6af553735f6c441c59514841f732f3f3ec86371" + integrity sha512-jad3kEqIyvhKQ4YBUGIbvcnFinED9ywgIfp0AG7sP3t80S15/aso+kTPyZ06Tgt/Slk6o6vHEuUy5SSpgnaLcw== + dependencies: + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/popper" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/popper@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-9.10.1.tgz#841ac08c79f81b6cbf3761c1a6aea261e1612f6e" @@ -1807,6 +2165,19 @@ react-popper "^2.2.5" resize-observer-polyfill "^1.5.1" +"@dhis2-ui/popper@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-9.11.0.tgz#6b08e1f32588384b408cb6fdc6ba65369fd0e392" + integrity sha512-RIUSd0qmV0gCE1aTX9kUv8hYbat/5wUECFAhMF/0mqkDZAqTGpyQDFHFTPwAc37wNaxOXb8z6dDMozaNn5OpQA== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@popperjs/core" "^2.10.1" + classnames "^2.3.1" + prop-types "^15.7.2" + react-popper "^2.2.5" + resize-observer-polyfill "^1.5.1" + "@dhis2-ui/portal@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-9.10.1.tgz#fd3d45eecbf73281cfc682b4d9c0c7ed47b2fe39" @@ -1815,6 +2186,14 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/portal@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-9.11.0.tgz#4a3e874d701f1a5b872e717abcad645e073efc16" + integrity sha512-z0hhTMtUK8pQvA9cl6VU2QYvlEFPamxPT3MWGKcfhUTkPj/zrA0ovKWRZwrcEN0AoXb3bqc6TsS6szJL0ohi1Q== + dependencies: + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/radio@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-9.10.1.tgz#c44f0df810b246758b166988e91cc3e5ac4eabb8" @@ -1825,6 +2204,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/radio@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-9.11.0.tgz#e9fbdcfd3fc8e6cbc0107c00606c275fe19d56b6" + integrity sha512-YAI/uow1R+LwANKfMOdOqXYBrrRowf23fQDgZNDvdxVAYU3BxHBoCKhx/14qyslcHv6/pwDLghvDUw0un5suOA== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/required@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-9.10.1.tgz#0755f646334eb6425c67bbb20c47b89e79025691" @@ -1835,6 +2224,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/required@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-9.11.0.tgz#71f2dc7cdbb5b9bd412316af5ccb611caf261484" + integrity sha512-2fThUG/+wdOeQeuZD52M/TdMTCRSdxPxt2IIdkc9MUC+MmvMieJOFjYTzaHaItSqy0huNnOEvmaHEOTcERae/Q== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/segmented-control@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-9.10.1.tgz#ca4daf18d46d43d1cb46a40204430d85c5bd5dc4" @@ -1845,6 +2244,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/segmented-control@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-9.11.0.tgz#97b80b28543039a7c75914df9fe8147d9141b6d3" + integrity sha512-Ejv6/zCa7o9PFK9BvroSio0DgSZt2Ue7Q89MkJYee7yH5dAe6uuCcZ8/lrtpOWOoqEQtDpsrAF6bU5LVjSsAng== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/select@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-9.10.1.tgz#c8e7083632e44c26874ff9e4d2ca05db80028989" @@ -1868,6 +2277,29 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/select@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-9.11.0.tgz#8f09f3500a37d9ad63d9bdb58ec9cfe224626fff" + integrity sha512-sfOZMR+7LaxfLseYyyqrGKBiZEuUCI/IDJXvakIaCqQGhSjjkY5Y8FC6LMZl/0TQUP8yCIjKaqBaUukLZxN6jQ== + dependencies: + "@dhis2-ui/box" "9.11.0" + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/card" "9.11.0" + "@dhis2-ui/checkbox" "9.11.0" + "@dhis2-ui/chip" "9.11.0" + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/input" "9.11.0" + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2-ui/popper" "9.11.0" + "@dhis2-ui/status-icon" "9.11.0" + "@dhis2-ui/tooltip" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/selector-bar@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-9.10.1.tgz#6dbc1759ed17fb487b704e2f0d177601844b4cc8" @@ -1883,6 +2315,21 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/selector-bar@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-9.11.0.tgz#a9ef657f0ecacce87e67e343ccbe60813067186c" + integrity sha512-7VqBu0GSk9By+5Z4B6R2lNEPHUyXjOWWV2fgD29jH8zj7Z65XffJS/A1da8M33uSFX3sstOkpyZVHo71vx0cAA== + dependencies: + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/card" "9.11.0" + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/popper" "9.11.0" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + "@testing-library/react" "^12.1.2" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/sharing-dialog@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-9.10.1.tgz#d73a7b2f013719b7abfc958078369d6c596c4d41" @@ -1909,6 +2356,32 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/sharing-dialog@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-9.11.0.tgz#9adf070335b45b99c718642a887e6f3bc8e3bcad" + integrity sha512-5LSZhO13dXZ5jOSpN2GlAlBfcZmRBrgye13cKvYgEWy+n1CWe4nJwQLYtfYoH5rItCBsjfS4/ouAFu6/koOPcg== + dependencies: + "@dhis2-ui/box" "9.11.0" + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/card" "9.11.0" + "@dhis2-ui/divider" "9.11.0" + "@dhis2-ui/input" "9.11.0" + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/menu" "9.11.0" + "@dhis2-ui/modal" "9.11.0" + "@dhis2-ui/notice-box" "9.11.0" + "@dhis2-ui/popper" "9.11.0" + "@dhis2-ui/select" "9.11.0" + "@dhis2-ui/tab" "9.11.0" + "@dhis2-ui/tooltip" "9.11.0" + "@dhis2-ui/user-avatar" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + "@react-hook/size" "^2.1.2" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/status-icon@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-9.10.1.tgz#e23274968cd304d23770dca9970d5036c758ce53" @@ -1921,6 +2394,18 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/status-icon@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-9.11.0.tgz#2387a0ed48ecd9d09a76fd30ed249efa6df9ee00" + integrity sha512-EUEwH+Q3Z+Y0bdra94NmyqDyUz3gSOijEhIX3BPfk7mesvY9mLp87PvBaSfHJIHf1xywTI/Py067Et6MLPUR2w== + dependencies: + "@dhis2-ui/loader" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/switch@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-9.10.1.tgz#886cb5955274526331e6fa07127c4d8f236403f7" @@ -1933,6 +2418,18 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/switch@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-9.11.0.tgz#2eb848cbf0471375912ee48849d1beb949eedf45" + integrity sha512-norlPc5z/YCNVIHTqU/BpKii+c6biSAXV1Sv+wlfh2eXTa78+lFUNOG8RoO5lQCUmOC1bZd5+L1BjUwh6MlOVw== + dependencies: + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/required" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/tab@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-9.10.1.tgz#8e9b6d1b7610617981bbc24a02ff87b150a00c8d" @@ -1945,6 +2442,18 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/tab@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-9.11.0.tgz#4e475d915aec266919d4c4fc73f58a6144312901" + integrity sha512-ijjxbxOeFe6iOQEZ/bICEjTDnq9PNkBSnO74rR/PImrPvsHUU+d2ZOSYWkh3TwFL9QQ76Vb9NwcAo6eSOGdVOw== + dependencies: + "@dhis2-ui/tooltip" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/table@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-9.10.1.tgz#51c8e4973c1174edcf94627b3a5513340be85b12" @@ -1956,6 +2465,17 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/table@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-9.11.0.tgz#4c37dc4f334ceb49e1d11a3c9839ee229f2e9bd9" + integrity sha512-qc2OtBe9LqDCci3wJM7y4JSA5S3AfubxnySMMJPPEo7jilb6aAEheYFKjfmRXdUP+GxMUdOh4hCUQ22LAG1i9A== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/tag@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-9.10.1.tgz#8bad6d9e6f9ef3aa761bc98c3cbed9455261e633" @@ -1966,6 +2486,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/tag@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-9.11.0.tgz#f1c292d72a84e6e04cdbe4ae16d16ff95f28579a" + integrity sha512-FMN/1NmHyKUdFNdw2E7Bc1UnAFhyljGTwD3DXegY5ncEYBafWQjzLXyQtHJTlu58VfdBwwQ/nIG9qChJj6w2zQ== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/text-area@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-9.10.1.tgz#b4e54872f85fa3825d8bfea0d2c7772e6a3b5c65" @@ -1981,6 +2511,21 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/text-area@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-9.11.0.tgz#e3568e70f9b0ecd45f4e92820f59184db5fdda4b" + integrity sha512-UPTK0PKiicU0OjfyMcNCN8znlrGicUyMY2MoSC1n2Tck2S0JUaCbG4Daski8uCMdss/2ZIra/k6vlP/KWzlHzw== + dependencies: + "@dhis2-ui/box" "9.11.0" + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2-ui/status-icon" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/tooltip@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-9.10.1.tgz#598008b4c8eedf397ad76c313f1c6ab121af6a84" @@ -1993,6 +2538,18 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/tooltip@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-9.11.0.tgz#53095be4ebe458f0b8e22c55f50ddef7fea28255" + integrity sha512-zyGF3J0bpUC3JJM8WK9C+lm5x7fNGnzH0xrgYRP1TbcI/2RJNzlNsWr/pfNfHNqRqSwseai7Q2ssQWyADkuqPQ== + dependencies: + "@dhis2-ui/popper" "9.11.0" + "@dhis2-ui/portal" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/transfer@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-9.10.1.tgz#1c70b0a9be82d3b60202e3ff872ecb1456106df9" @@ -2008,6 +2565,21 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/transfer@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-9.11.0.tgz#f5d445ea46ecad95c47f90ab61648b1b1082cbc7" + integrity sha512-sSmhqSKcuCZSXG4pgLTPNJuY/K8oSGg92x7sHXQfrLFbrnsSenD6ckJjnMt4hWXNHW3xPbG5jVlB+CHWKCLrYQ== + dependencies: + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/input" "9.11.0" + "@dhis2-ui/intersection-detector" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2-ui/user-avatar@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-9.10.1.tgz#c0998148e52dedbe8f0da00e886c09726a4946c5" @@ -2018,6 +2590,16 @@ classnames "^2.3.1" prop-types "^15.7.2" +"@dhis2-ui/user-avatar@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-9.11.0.tgz#82bf405f33d912961ae7447820140e510907fa57" + integrity sha512-4mK1eYYwe54rCsoDxxEqHlSMDYm0G6Ls5UXKmgi07nGvUL9QM2gUEW8J/FPmQDgFcXiBKAZpAbu5yc7d48lIbg== + dependencies: + "@dhis2/prop-types" "^3.1.2" + "@dhis2/ui-constants" "9.11.0" + classnames "^2.3.1" + prop-types "^15.7.2" + "@dhis2/analytics@^26.7.5": version "26.7.5" resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.7.5.tgz#b85a35ba0adb971b237c814d1d384e10e3ec5ca1" @@ -2296,6 +2878,13 @@ dependencies: prop-types "^15.7.2" +"@dhis2/ui-constants@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-9.11.0.tgz#0f41339dca04c95d026c278d17ff795cbe500020" + integrity sha512-uN0vH+HXtnVYmFGj0fARrsouKxMTEKHmq1aGuIbxK49+AcnMtxUirqXwuYx6wc/lJTl+MqdHKGqwTgJvEJ3TGQ== + dependencies: + prop-types "^15.7.2" + "@dhis2/ui-forms@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-9.10.1.tgz#52cfc6c8d0feab615749217a37b882eea70eeeff" @@ -2316,11 +2905,91 @@ prop-types "^15.7.2" react-final-form "^6.5.3" +"@dhis2/ui-forms@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-9.11.0.tgz#4b71be63e5e671dff29a49a9cf906375d2d7ce2d" + integrity sha512-A/gL3QJByckMHeSAnLCpU5FcvBp3l+H16YpJXhNYYHXistaxPfSCwzO+VITl+MBJCi30umbe4hN/rVWjiTw60Q== + dependencies: + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/checkbox" "9.11.0" + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/file-input" "9.11.0" + "@dhis2-ui/input" "9.11.0" + "@dhis2-ui/radio" "9.11.0" + "@dhis2-ui/select" "9.11.0" + "@dhis2-ui/switch" "9.11.0" + "@dhis2-ui/text-area" "9.11.0" + "@dhis2/prop-types" "^3.1.2" + classnames "^2.3.1" + final-form "^4.20.2" + prop-types "^15.7.2" + react-final-form "^6.5.3" + "@dhis2/ui-icons@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-9.10.1.tgz#d930ecf48e17969ba51617ff2880133266a77a46" integrity sha512-OUnShRkXRewIfEq0EPEXR1Phc1PTZOMDATkNUiYr+6Zy1IOxENa1dmeN58mAXlZIxxFH6Fd5wQIqax/iqz40PQ== +"@dhis2/ui-icons@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-9.11.0.tgz#f9ca73d12b26ba3dd1a1ccb381cc3fc39ec15044" + integrity sha512-1XTls+m5xyQKDTgsQ+ehtLOgUdHqIAmKuwSkTf9/LtFpa/Wt2t9waKI7KIZYUL1MhPXSd0d9k2eEClPhseH+4Q== + +"@dhis2/ui@^9.2.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-9.11.0.tgz#da8d4791ca7bc6ceb7d681ce6b743f51dc8987a3" + integrity sha512-vO1GhzbhOHJBVPLjFHyxH4JTbcf5z8xas5iyoRry+tUzDB81CGRB4Hz9C73w8Kw6lyOicrDP/B/keKk9LpDLSQ== + dependencies: + "@dhis2-ui/alert" "9.11.0" + "@dhis2-ui/box" "9.11.0" + "@dhis2-ui/button" "9.11.0" + "@dhis2-ui/calendar" "9.11.0" + "@dhis2-ui/card" "9.11.0" + "@dhis2-ui/center" "9.11.0" + "@dhis2-ui/checkbox" "9.11.0" + "@dhis2-ui/chip" "9.11.0" + "@dhis2-ui/cover" "9.11.0" + "@dhis2-ui/css" "9.11.0" + "@dhis2-ui/divider" "9.11.0" + "@dhis2-ui/field" "9.11.0" + "@dhis2-ui/file-input" "9.11.0" + "@dhis2-ui/header-bar" "9.11.0" + "@dhis2-ui/help" "9.11.0" + "@dhis2-ui/input" "9.11.0" + "@dhis2-ui/intersection-detector" "9.11.0" + "@dhis2-ui/label" "9.11.0" + "@dhis2-ui/layer" "9.11.0" + "@dhis2-ui/legend" "9.11.0" + "@dhis2-ui/loader" "9.11.0" + "@dhis2-ui/logo" "9.11.0" + "@dhis2-ui/menu" "9.11.0" + "@dhis2-ui/modal" "9.11.0" + "@dhis2-ui/node" "9.11.0" + "@dhis2-ui/notice-box" "9.11.0" + "@dhis2-ui/organisation-unit-tree" "9.11.0" + "@dhis2-ui/pagination" "9.11.0" + "@dhis2-ui/popover" "9.11.0" + "@dhis2-ui/popper" "9.11.0" + "@dhis2-ui/portal" "9.11.0" + "@dhis2-ui/radio" "9.11.0" + "@dhis2-ui/required" "9.11.0" + "@dhis2-ui/segmented-control" "9.11.0" + "@dhis2-ui/select" "9.11.0" + "@dhis2-ui/selector-bar" "9.11.0" + "@dhis2-ui/sharing-dialog" "9.11.0" + "@dhis2-ui/switch" "9.11.0" + "@dhis2-ui/tab" "9.11.0" + "@dhis2-ui/table" "9.11.0" + "@dhis2-ui/tag" "9.11.0" + "@dhis2-ui/text-area" "9.11.0" + "@dhis2-ui/tooltip" "9.11.0" + "@dhis2-ui/transfer" "9.11.0" + "@dhis2-ui/user-avatar" "9.11.0" + "@dhis2/ui-constants" "9.11.0" + "@dhis2/ui-forms" "9.11.0" + "@dhis2/ui-icons" "9.11.0" + prop-types "^15.7.2" + "@dhis2/ui@^9.8.9": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-9.10.1.tgz#66b8384f22eb44313fd1f34c76c8615ec5b91e76" From 72e726fbb7e06465cd0db2abeb7ebc5e33e7a160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Sandvik?= Date: Wed, 31 Jul 2024 08:23:32 +0200 Subject: [PATCH 22/25] chore: lint fix --- d2.config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/d2.config.js b/d2.config.js index 55e46d262..cf16fb1fa 100644 --- a/d2.config.js +++ b/d2.config.js @@ -20,9 +20,8 @@ const config = { }, coreApp: true, - dataStoreNamespace: 'DHIS2_MAPS_APP_CORE', - + skipPluginLogic: true, } From 01859273d6022ab2907218e66507cfcfa1af766f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Sandvik?= Date: Wed, 31 Jul 2024 08:31:40 +0200 Subject: [PATCH 23/25] chore: remove double entry of @dhis2/ui --- package.json | 1 - yarn.lock | 669 --------------------------------------------------- 2 files changed, 670 deletions(-) diff --git a/package.json b/package.json index a72c0ea66..6ef23d076 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "@dhis2/app-service-datastore": "^1.0.0-beta.3", "@dhis2/d2-i18n": "^1.1.3", "@dhis2/maps-gl": "git+https://github.com/d2-ci/maps-gl.git#feat/custom-ee-layers", - "@dhis2/ui": "^9.2.0", "@krakenjs/post-robot": "^11.0.0", "@reportportal/agent-js-cypress": "git+https://github.com/dhis2/agent-js-cypress.git#develop", "@reportportal/agent-js-jest": "^5.0.7", diff --git a/yarn.lock b/yarn.lock index c3c37139f..6ef120023 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1448,18 +1448,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/alert@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/alert/-/alert-9.11.0.tgz#01456616ad601b9c5ff5d71dfb5db102f46e5743" - integrity sha512-jka/E26RkLJexYhi934yj8hpIvdI/mOnFzjwca0kDxnCaJ9JCz/j6x0BklrzRFFt/gGJ9aldG1mVX7fGtIEEvw== - dependencies: - "@dhis2-ui/portal" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/box@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-9.10.1.tgz#67c311156b762c4ecd39532ec36713e229f2ba27" @@ -1470,16 +1458,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/box@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/box/-/box-9.11.0.tgz#92391d2d8bbdb3bdd2714d93e7d519dc041f1db9" - integrity sha512-/ds/LWG8P995QRDHhkVvCS8ao6tOpssAwqFY2PiaRIl2J39b6bmfIVfIQldldiKO1IK05oJmRSCmCx8TfHE9ig== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/button@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-9.10.1.tgz#ccdedc218a966db70d1bf723cdd224d8e6b3e93f" @@ -1494,20 +1472,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/button@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/button/-/button-9.11.0.tgz#ee6a5dec0e44da72a654c546a6c685dbcdc33245" - integrity sha512-b5cA+v0uv+5Dj6CXPiFavOUSgiNLKXRBg6OjeZatUTIsoO59UpOxQoVp4cCo8/kZkBBUyuwsMYO2AHuIarTucQ== - dependencies: - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2-ui/popper" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/calendar@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-9.10.1.tgz#7683f05fef63b6841403f746f32a52891e323d64" @@ -1525,23 +1489,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/calendar@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/calendar/-/calendar-9.11.0.tgz#321c23b8af4c2f1ecc7389348d4d1ddee743e7b7" - integrity sha512-re7URApmtRtiAk0a0AykhMVtQvFZI/z9nvojOXID8CyifCa4Yqx+Ga9yipeqOrzmhVBWuNohgATkOWXcW4lqRg== - dependencies: - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/card" "9.11.0" - "@dhis2-ui/input" "9.11.0" - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/popper" "9.11.0" - "@dhis2/multi-calendar-dates" "^1.2.3" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/card@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-9.10.1.tgz#d4814458245444f95bc0a6c1fd88679e1ffba01c" @@ -1552,16 +1499,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/card@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/card/-/card-9.11.0.tgz#17b40d55240a1fb5c34345b0d16e63ab984cfdb6" - integrity sha512-phjsyukZfmxKqqtRxVRuFJdc30S7XfEkEmQv11wWnAjGVl2YxIWKm8SAGShpu0gC8susJg0GBhY7Ts+h5cRvQg== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/center@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-9.10.1.tgz#5628692b2aeff42870c0e0619aafac5dcab0777d" @@ -1572,16 +1509,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/center@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/center/-/center-9.11.0.tgz#f3d5a302fb2227a78a8430a706a90a43eae92665" - integrity sha512-LEAW1wlpArkA63sko/24H8C4AHYTGFolIMYjcAFX1GR2xBcFpj/4VQRQFK6P9POtrSv+syVlfw51g9zBfhYi9A== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/checkbox@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-9.10.1.tgz#4ee2112c3972beca38a9897ecb82dfd3b307710e" @@ -1594,18 +1521,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/checkbox@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/checkbox/-/checkbox-9.11.0.tgz#05d59ac1403a93c44bee2e2e04b008f1851ebeb7" - integrity sha512-jPn/3DCUNLar8EEgUI01h100POtob6GxkcpTkMsRqngN4f+QTAPZGVORVFjd+2nAAG/msHXaqnNqmfwkaKPsaA== - dependencies: - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/required" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/chip@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-9.10.1.tgz#b530093e9ef2c6bfa85f556512a1b43a9b0c9e77" @@ -1616,16 +1531,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/chip@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/chip/-/chip-9.11.0.tgz#1e8b4276872b8737ed1607588867d0f6d9800e13" - integrity sha512-jc/CCohXhbTT91AagWIxieybSyAR9Mo91vMjRHbe8qzVua40WezAazhjLCd82ynGjEzHWMryaK7om1VK5hbM9A== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/cover@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-9.10.1.tgz#c668649399b4b9e9aaffb0209cfa98c868c3b986" @@ -1636,16 +1541,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/cover@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/cover/-/cover-9.11.0.tgz#ea8280dfcb2444111cd0e1da87c566d5813dc1c3" - integrity sha512-mwb15H2gJNOO9ZDZEQclfrvKbb0TvLn3n7BMErR8+Z9oE9j8ycMI/Ks6Itov94dIX2Es+1cHZFMDLJUOTtI+yg== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/css@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-9.10.1.tgz#d94b659e3f00c7d353b9f53ab786ebd0dc6fc4cb" @@ -1656,16 +1551,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/css@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/css/-/css-9.11.0.tgz#4540c4795b146b3c92feae5ccbca99b198d66fb2" - integrity sha512-TsLR1Jw7fjTqszrybAdw1ouAdV3hPX9v3JJE/iWqTKPHfTSxtEj201jHAqpNWjxiIgEzPJ2AG61fUh44+Iiibw== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/divider@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-9.10.1.tgz#a6fa0af3b02cc28d35180b784cc53ccd5d710173" @@ -1676,16 +1561,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/divider@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/divider/-/divider-9.11.0.tgz#af514387024824102dbdb352058809f1d54c8901" - integrity sha512-zDFjs2BZF3Dra8cpYypYmvYTnFgItHoFOAGs1JfVlvTcWGpaggf1ah8BcxqFSxOg7rgL0CGtF9uLujGNdbla5g== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/field@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-9.10.1.tgz#732d289d274c11f853c8fc399de9703ccb0da327" @@ -1699,19 +1574,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/field@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/field/-/field-9.11.0.tgz#c57c623ea4ad32a6440062ed4ee81e2130d80f75" - integrity sha512-pVFNqiKVgsefxpgfMnrM6mU9ZM1qZtRAZsDjzooYIlh1r0nUQt01GKgn0TTdyICIoqO3lNLxvxNA5SXv9QRqfQ== - dependencies: - "@dhis2-ui/box" "9.11.0" - "@dhis2-ui/help" "9.11.0" - "@dhis2-ui/label" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/file-input@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-9.10.1.tgz#f1c38080c4f65a35b8383508a22b34bfd0596b05" @@ -1728,22 +1590,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/file-input@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/file-input/-/file-input-9.11.0.tgz#77735de2a87f734a4041f4a397911313dc816df6" - integrity sha512-CWp34b6hMc67V5KJow5orPzLTVJzFnudouXYQEiPd3fUHJa4xRYW+GvbL+uY46VvF+GSB82eP5+z4PTgicZWxA== - dependencies: - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/label" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2-ui/status-icon" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/header-bar@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-9.10.1.tgz#a3b75bb45630f0576bfa411719749eff928fdc24" @@ -1768,30 +1614,6 @@ moment "^2.29.1" prop-types "^15.7.2" -"@dhis2-ui/header-bar@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/header-bar/-/header-bar-9.11.0.tgz#aeac3955e407e4c398daa81ae3231b52bcd18870" - integrity sha512-1NRznu2gluvAc1Kd5Ogt7K7rlfvvlvouUYGC9kn+mLYHj/h6T+eeTOS8Y0uEJLgmfuuklm2omZ+ASUIY3A7+iA== - dependencies: - "@dhis2-ui/box" "9.11.0" - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/card" "9.11.0" - "@dhis2-ui/center" "9.11.0" - "@dhis2-ui/divider" "9.11.0" - "@dhis2-ui/input" "9.11.0" - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2-ui/logo" "9.11.0" - "@dhis2-ui/menu" "9.11.0" - "@dhis2-ui/modal" "9.11.0" - "@dhis2-ui/user-avatar" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - moment "^2.29.1" - prop-types "^15.7.2" - "@dhis2-ui/help@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-9.10.1.tgz#e4d9999a15c95e070f78a5bc9cb8f1534859d8d2" @@ -1802,16 +1624,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/help@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/help/-/help-9.11.0.tgz#071ed4ff473cbc423b7a1f51c7217b6bbf057974" - integrity sha512-/n1bnolladI44ZVSzxKvt6SnsAlVK9G76uT1pTMNyMRDHCIpZc8070HADv+2GGD5YbwSpltClgy+3U4xPz14/A== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/input@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-9.10.1.tgz#b683732e6b1b0672516c7927f23c87090cc72f11" @@ -1828,22 +1640,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/input@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/input/-/input-9.11.0.tgz#4dd6efc15c82605468a3e1211f0b182bd5c66a08" - integrity sha512-jx3scjWkhO3s7SzaTfYUOYpOacGfS9317fGEshrirdkh6+jzLF+qbWLM9BX/hf63JfU4iPZC4cZzr0yWgxohDg== - dependencies: - "@dhis2-ui/box" "9.11.0" - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/input" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2-ui/status-icon" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/intersection-detector@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-9.10.1.tgz#767227650e4436262c91d9d670aa279aca998d3f" @@ -1854,16 +1650,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/intersection-detector@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/intersection-detector/-/intersection-detector-9.11.0.tgz#cad6dc8095cdfc9db133fd8a46d19e90130e4f07" - integrity sha512-Dr1WUDvcWbKFFu2DoCwfLwokM/d1oQApEkbAmUBSkAv9uWx61VgLlH/Z3I/Pr/VSJuBR3zWSpmVbduLlFs1Avg== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/label@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-9.10.1.tgz#b4d9de56e9e209d94937c09e83f356bab717a6b3" @@ -1875,17 +1661,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/label@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/label/-/label-9.11.0.tgz#286e9b1b79ef7cf45d500a893b4c0fd6b11eeaec" - integrity sha512-wOlHjghmey9nbytOKHHfwzaUzxqgXcmTzy7ntkRBsmqVMdJ07+pL7iFId4EFNdGz2aGPGPAs1qmMEqDJPoz3eA== - dependencies: - "@dhis2-ui/required" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/layer@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-9.10.1.tgz#8f7867ccb62af0b0af5b8a25767e693ee585d38f" @@ -1897,17 +1672,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/layer@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/layer/-/layer-9.11.0.tgz#ffc80120cf38236ec04291e1bb992549c4e685fd" - integrity sha512-jCrgn2n4QlxTY7GRhwgrDqTbMaju7SDUGrrqOTBZXg8bCoVBazqh3dgUUWogOVJ8UH6ob+tycfXvbUf0lJClNg== - dependencies: - "@dhis2-ui/portal" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/legend@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-9.10.1.tgz#8521c229fa46e1926cb9587a6b0c6c5482f6bcf0" @@ -1919,17 +1683,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/legend@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/legend/-/legend-9.11.0.tgz#f8c8201ae9da75c815810715d3aca38e03fb585d" - integrity sha512-MxpJbao+t1qhUrStLhLAn2+Xt2G2gyoiHEf7BeF85opf5HsY+9Xbki1RemP69ixe906czCKD2gieZxNNpdQYBw== - dependencies: - "@dhis2-ui/required" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/loader@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-9.10.1.tgz#1a48b05a9e8c31d7819f66d22b27288a076cfc02" @@ -1940,16 +1693,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/loader@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/loader/-/loader-9.11.0.tgz#f0a2f8f0646efd9bce632194eb68bba0f1512c2e" - integrity sha512-98M8KmGYYeROkGE/rZ8e3BHQKgfk7ZsZmYrhr6JyEYUWoW+rDHeR/a5bprbMmie//+ePdOx2UxZUJKIDUZEPvw== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/logo@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-9.10.1.tgz#b4bd80780786c35a85c1fe2d7888862df3e97213" @@ -1960,16 +1703,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/logo@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/logo/-/logo-9.11.0.tgz#2ff0058cc6dffcb0dcf6182e70429d0fa710dcd4" - integrity sha512-R0nebCjwHeYbq0+N2xje1NOTI6bcUB16riSNBBimyZAQXqEWUyiuqxISf49UUG+Ed7UjkcMnJe6AmL+Yoemfug== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/menu@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-9.10.1.tgz#e9d7ef056680ceb3b385940d433d88be02ed6c77" @@ -1986,22 +1719,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/menu@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/menu/-/menu-9.11.0.tgz#33b5f74e193d36dd4a13175bfeaafdaa6ae8373d" - integrity sha512-613Yb3IK2JQGrOTP6caCRkSTqqrOkL0K1Frsv0Uzhts066bZQaIT7drL0T+vIFv0+sgRSGyfBSfTrYQofxnKYQ== - dependencies: - "@dhis2-ui/card" "9.11.0" - "@dhis2-ui/divider" "9.11.0" - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/popper" "9.11.0" - "@dhis2-ui/portal" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/modal@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-9.10.1.tgz#63453611171a61541d3bb07df9b78697e40ec1aa" @@ -2017,21 +1734,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/modal@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/modal/-/modal-9.11.0.tgz#c16b04787641e9f64d385c55959fa8f5537f1acf" - integrity sha512-GDg7uad+/eLvadJEXjVoHTlEfrd639QmVVdjEcvC+RtHOOXKjlR3wpm+FvgUSbw7zhXpcZ68LNdga9X9bjn14Q== - dependencies: - "@dhis2-ui/card" "9.11.0" - "@dhis2-ui/center" "9.11.0" - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/portal" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/node@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-9.10.1.tgz#d70d639edec02dffd1a7fbd3871c10b9463b30e2" @@ -2043,17 +1745,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/node@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/node/-/node-9.11.0.tgz#d4cc2b0ca1b653247bf3bf90a9e4152780f61253" - integrity sha512-GfI9ecBzJGeZnS6fLiS19eAg+w9hIXOC5sk69S5NOEKDbCU+CWR97GSpb71RBiq9QZuNBtNEZU7Vqa01+G041Q== - dependencies: - "@dhis2-ui/loader" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/notice-box@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-9.10.1.tgz#0bc013d64da1f1e523c7bcd167987cbe94770947" @@ -2065,17 +1756,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/notice-box@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/notice-box/-/notice-box-9.11.0.tgz#2bd5c4a13a9d021c2d694f94ee6520276ccc533f" - integrity sha512-xEfsxFVoiMxVjqvf9QyB7w83cwraS+aS1HaOXTySvseOd+jSk7YlYAQJ2RQbGmik7rsSlyNMXbWoJ9TaJ8Y/pg== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/organisation-unit-tree@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-9.10.1.tgz#8798f023cd9c14e8b586b1249fca92d27d31b3c5" @@ -2089,19 +1769,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/organisation-unit-tree@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/organisation-unit-tree/-/organisation-unit-tree-9.11.0.tgz#c626c71cac19ba93241a6e36fad2d261f3307c32" - integrity sha512-2mYpgBPjmNlkCnCLrDmmPtC1rs07uxlEeqULTCiqRcbbWzEYL2S+fAao5IiOrlzXR9JIVlG7P8htMYNfj48tJQ== - dependencies: - "@dhis2-ui/checkbox" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2-ui/node" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/pagination@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-9.10.1.tgz#8ae88b47642d8a0a87cdeb99d6a0607f9185ad8b" @@ -2115,19 +1782,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/pagination@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/pagination/-/pagination-9.11.0.tgz#6967b1241ec3c36855e4570125e202752a6db577" - integrity sha512-HllIE5IVsNK1vM9wxRDfrLtxrrMWOxDEV+8B6QKG9qLXubfoFZL6+b5MGHo/mzDzY+7LxxBpiowoYaj52QMFYQ== - dependencies: - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/select" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/popover@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-9.10.1.tgz#edc06a2208a14a9cf69b1217fd9d4bb9f8f3be4a" @@ -2140,18 +1794,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/popover@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popover/-/popover-9.11.0.tgz#c6af553735f6c441c59514841f732f3f3ec86371" - integrity sha512-jad3kEqIyvhKQ4YBUGIbvcnFinED9ywgIfp0AG7sP3t80S15/aso+kTPyZ06Tgt/Slk6o6vHEuUy5SSpgnaLcw== - dependencies: - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/popper" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/popper@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-9.10.1.tgz#841ac08c79f81b6cbf3761c1a6aea261e1612f6e" @@ -2165,19 +1807,6 @@ react-popper "^2.2.5" resize-observer-polyfill "^1.5.1" -"@dhis2-ui/popper@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/popper/-/popper-9.11.0.tgz#6b08e1f32588384b408cb6fdc6ba65369fd0e392" - integrity sha512-RIUSd0qmV0gCE1aTX9kUv8hYbat/5wUECFAhMF/0mqkDZAqTGpyQDFHFTPwAc37wNaxOXb8z6dDMozaNn5OpQA== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@popperjs/core" "^2.10.1" - classnames "^2.3.1" - prop-types "^15.7.2" - react-popper "^2.2.5" - resize-observer-polyfill "^1.5.1" - "@dhis2-ui/portal@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-9.10.1.tgz#fd3d45eecbf73281cfc682b4d9c0c7ed47b2fe39" @@ -2186,14 +1815,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/portal@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/portal/-/portal-9.11.0.tgz#4a3e874d701f1a5b872e717abcad645e073efc16" - integrity sha512-z0hhTMtUK8pQvA9cl6VU2QYvlEFPamxPT3MWGKcfhUTkPj/zrA0ovKWRZwrcEN0AoXb3bqc6TsS6szJL0ohi1Q== - dependencies: - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/radio@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-9.10.1.tgz#c44f0df810b246758b166988e91cc3e5ac4eabb8" @@ -2204,16 +1825,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/radio@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/radio/-/radio-9.11.0.tgz#e9fbdcfd3fc8e6cbc0107c00606c275fe19d56b6" - integrity sha512-YAI/uow1R+LwANKfMOdOqXYBrrRowf23fQDgZNDvdxVAYU3BxHBoCKhx/14qyslcHv6/pwDLghvDUw0un5suOA== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/required@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-9.10.1.tgz#0755f646334eb6425c67bbb20c47b89e79025691" @@ -2224,16 +1835,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/required@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/required/-/required-9.11.0.tgz#71f2dc7cdbb5b9bd412316af5ccb611caf261484" - integrity sha512-2fThUG/+wdOeQeuZD52M/TdMTCRSdxPxt2IIdkc9MUC+MmvMieJOFjYTzaHaItSqy0huNnOEvmaHEOTcERae/Q== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/segmented-control@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-9.10.1.tgz#ca4daf18d46d43d1cb46a40204430d85c5bd5dc4" @@ -2244,16 +1845,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/segmented-control@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/segmented-control/-/segmented-control-9.11.0.tgz#97b80b28543039a7c75914df9fe8147d9141b6d3" - integrity sha512-Ejv6/zCa7o9PFK9BvroSio0DgSZt2Ue7Q89MkJYee7yH5dAe6uuCcZ8/lrtpOWOoqEQtDpsrAF6bU5LVjSsAng== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/select@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-9.10.1.tgz#c8e7083632e44c26874ff9e4d2ca05db80028989" @@ -2277,29 +1868,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/select@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/select/-/select-9.11.0.tgz#8f09f3500a37d9ad63d9bdb58ec9cfe224626fff" - integrity sha512-sfOZMR+7LaxfLseYyyqrGKBiZEuUCI/IDJXvakIaCqQGhSjjkY5Y8FC6LMZl/0TQUP8yCIjKaqBaUukLZxN6jQ== - dependencies: - "@dhis2-ui/box" "9.11.0" - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/card" "9.11.0" - "@dhis2-ui/checkbox" "9.11.0" - "@dhis2-ui/chip" "9.11.0" - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/input" "9.11.0" - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2-ui/popper" "9.11.0" - "@dhis2-ui/status-icon" "9.11.0" - "@dhis2-ui/tooltip" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/selector-bar@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-9.10.1.tgz#6dbc1759ed17fb487b704e2f0d177601844b4cc8" @@ -2315,21 +1883,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/selector-bar@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/selector-bar/-/selector-bar-9.11.0.tgz#a9ef657f0ecacce87e67e343ccbe60813067186c" - integrity sha512-7VqBu0GSk9By+5Z4B6R2lNEPHUyXjOWWV2fgD29jH8zj7Z65XffJS/A1da8M33uSFX3sstOkpyZVHo71vx0cAA== - dependencies: - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/card" "9.11.0" - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/popper" "9.11.0" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - "@testing-library/react" "^12.1.2" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/sharing-dialog@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-9.10.1.tgz#d73a7b2f013719b7abfc958078369d6c596c4d41" @@ -2356,32 +1909,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/sharing-dialog@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/sharing-dialog/-/sharing-dialog-9.11.0.tgz#9adf070335b45b99c718642a887e6f3bc8e3bcad" - integrity sha512-5LSZhO13dXZ5jOSpN2GlAlBfcZmRBrgye13cKvYgEWy+n1CWe4nJwQLYtfYoH5rItCBsjfS4/ouAFu6/koOPcg== - dependencies: - "@dhis2-ui/box" "9.11.0" - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/card" "9.11.0" - "@dhis2-ui/divider" "9.11.0" - "@dhis2-ui/input" "9.11.0" - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/menu" "9.11.0" - "@dhis2-ui/modal" "9.11.0" - "@dhis2-ui/notice-box" "9.11.0" - "@dhis2-ui/popper" "9.11.0" - "@dhis2-ui/select" "9.11.0" - "@dhis2-ui/tab" "9.11.0" - "@dhis2-ui/tooltip" "9.11.0" - "@dhis2-ui/user-avatar" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - "@react-hook/size" "^2.1.2" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/status-icon@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-9.10.1.tgz#e23274968cd304d23770dca9970d5036c758ce53" @@ -2394,18 +1921,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/status-icon@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/status-icon/-/status-icon-9.11.0.tgz#2387a0ed48ecd9d09a76fd30ed249efa6df9ee00" - integrity sha512-EUEwH+Q3Z+Y0bdra94NmyqDyUz3gSOijEhIX3BPfk7mesvY9mLp87PvBaSfHJIHf1xywTI/Py067Et6MLPUR2w== - dependencies: - "@dhis2-ui/loader" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/switch@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-9.10.1.tgz#886cb5955274526331e6fa07127c4d8f236403f7" @@ -2418,18 +1933,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/switch@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/switch/-/switch-9.11.0.tgz#2eb848cbf0471375912ee48849d1beb949eedf45" - integrity sha512-norlPc5z/YCNVIHTqU/BpKii+c6biSAXV1Sv+wlfh2eXTa78+lFUNOG8RoO5lQCUmOC1bZd5+L1BjUwh6MlOVw== - dependencies: - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/required" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/tab@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-9.10.1.tgz#8e9b6d1b7610617981bbc24a02ff87b150a00c8d" @@ -2442,18 +1945,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tab@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tab/-/tab-9.11.0.tgz#4e475d915aec266919d4c4fc73f58a6144312901" - integrity sha512-ijjxbxOeFe6iOQEZ/bICEjTDnq9PNkBSnO74rR/PImrPvsHUU+d2ZOSYWkh3TwFL9QQ76Vb9NwcAo6eSOGdVOw== - dependencies: - "@dhis2-ui/tooltip" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/table@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-9.10.1.tgz#51c8e4973c1174edcf94627b3a5513340be85b12" @@ -2465,17 +1956,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/table@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/table/-/table-9.11.0.tgz#4c37dc4f334ceb49e1d11a3c9839ee229f2e9bd9" - integrity sha512-qc2OtBe9LqDCci3wJM7y4JSA5S3AfubxnySMMJPPEo7jilb6aAEheYFKjfmRXdUP+GxMUdOh4hCUQ22LAG1i9A== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/tag@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-9.10.1.tgz#8bad6d9e6f9ef3aa761bc98c3cbed9455261e633" @@ -2486,16 +1966,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tag@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tag/-/tag-9.11.0.tgz#f1c292d72a84e6e04cdbe4ae16d16ff95f28579a" - integrity sha512-FMN/1NmHyKUdFNdw2E7Bc1UnAFhyljGTwD3DXegY5ncEYBafWQjzLXyQtHJTlu58VfdBwwQ/nIG9qChJj6w2zQ== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/text-area@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-9.10.1.tgz#b4e54872f85fa3825d8bfea0d2c7772e6a3b5c65" @@ -2511,21 +1981,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/text-area@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/text-area/-/text-area-9.11.0.tgz#e3568e70f9b0ecd45f4e92820f59184db5fdda4b" - integrity sha512-UPTK0PKiicU0OjfyMcNCN8znlrGicUyMY2MoSC1n2Tck2S0JUaCbG4Daski8uCMdss/2ZIra/k6vlP/KWzlHzw== - dependencies: - "@dhis2-ui/box" "9.11.0" - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2-ui/status-icon" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/tooltip@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-9.10.1.tgz#598008b4c8eedf397ad76c313f1c6ab121af6a84" @@ -2538,18 +1993,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/tooltip@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/tooltip/-/tooltip-9.11.0.tgz#53095be4ebe458f0b8e22c55f50ddef7fea28255" - integrity sha512-zyGF3J0bpUC3JJM8WK9C+lm5x7fNGnzH0xrgYRP1TbcI/2RJNzlNsWr/pfNfHNqRqSwseai7Q2ssQWyADkuqPQ== - dependencies: - "@dhis2-ui/popper" "9.11.0" - "@dhis2-ui/portal" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/transfer@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-9.10.1.tgz#1c70b0a9be82d3b60202e3ff872ecb1456106df9" @@ -2565,21 +2008,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/transfer@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/transfer/-/transfer-9.11.0.tgz#f5d445ea46ecad95c47f90ab61648b1b1082cbc7" - integrity sha512-sSmhqSKcuCZSXG4pgLTPNJuY/K8oSGg92x7sHXQfrLFbrnsSenD6ckJjnMt4hWXNHW3xPbG5jVlB+CHWKCLrYQ== - dependencies: - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/input" "9.11.0" - "@dhis2-ui/intersection-detector" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2-ui/user-avatar@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-9.10.1.tgz#c0998148e52dedbe8f0da00e886c09726a4946c5" @@ -2590,16 +2018,6 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2-ui/user-avatar@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2-ui/user-avatar/-/user-avatar-9.11.0.tgz#82bf405f33d912961ae7447820140e510907fa57" - integrity sha512-4mK1eYYwe54rCsoDxxEqHlSMDYm0G6Ls5UXKmgi07nGvUL9QM2gUEW8J/FPmQDgFcXiBKAZpAbu5yc7d48lIbg== - dependencies: - "@dhis2/prop-types" "^3.1.2" - "@dhis2/ui-constants" "9.11.0" - classnames "^2.3.1" - prop-types "^15.7.2" - "@dhis2/analytics@^26.7.5": version "26.7.5" resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.7.5.tgz#b85a35ba0adb971b237c814d1d384e10e3ec5ca1" @@ -2878,13 +2296,6 @@ dependencies: prop-types "^15.7.2" -"@dhis2/ui-constants@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-constants/-/ui-constants-9.11.0.tgz#0f41339dca04c95d026c278d17ff795cbe500020" - integrity sha512-uN0vH+HXtnVYmFGj0fARrsouKxMTEKHmq1aGuIbxK49+AcnMtxUirqXwuYx6wc/lJTl+MqdHKGqwTgJvEJ3TGQ== - dependencies: - prop-types "^15.7.2" - "@dhis2/ui-forms@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-9.10.1.tgz#52cfc6c8d0feab615749217a37b882eea70eeeff" @@ -2905,91 +2316,11 @@ prop-types "^15.7.2" react-final-form "^6.5.3" -"@dhis2/ui-forms@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-forms/-/ui-forms-9.11.0.tgz#4b71be63e5e671dff29a49a9cf906375d2d7ce2d" - integrity sha512-A/gL3QJByckMHeSAnLCpU5FcvBp3l+H16YpJXhNYYHXistaxPfSCwzO+VITl+MBJCi30umbe4hN/rVWjiTw60Q== - dependencies: - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/checkbox" "9.11.0" - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/file-input" "9.11.0" - "@dhis2-ui/input" "9.11.0" - "@dhis2-ui/radio" "9.11.0" - "@dhis2-ui/select" "9.11.0" - "@dhis2-ui/switch" "9.11.0" - "@dhis2-ui/text-area" "9.11.0" - "@dhis2/prop-types" "^3.1.2" - classnames "^2.3.1" - final-form "^4.20.2" - prop-types "^15.7.2" - react-final-form "^6.5.3" - "@dhis2/ui-icons@9.10.1": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-9.10.1.tgz#d930ecf48e17969ba51617ff2880133266a77a46" integrity sha512-OUnShRkXRewIfEq0EPEXR1Phc1PTZOMDATkNUiYr+6Zy1IOxENa1dmeN58mAXlZIxxFH6Fd5wQIqax/iqz40PQ== -"@dhis2/ui-icons@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui-icons/-/ui-icons-9.11.0.tgz#f9ca73d12b26ba3dd1a1ccb381cc3fc39ec15044" - integrity sha512-1XTls+m5xyQKDTgsQ+ehtLOgUdHqIAmKuwSkTf9/LtFpa/Wt2t9waKI7KIZYUL1MhPXSd0d9k2eEClPhseH+4Q== - -"@dhis2/ui@^9.2.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-9.11.0.tgz#da8d4791ca7bc6ceb7d681ce6b743f51dc8987a3" - integrity sha512-vO1GhzbhOHJBVPLjFHyxH4JTbcf5z8xas5iyoRry+tUzDB81CGRB4Hz9C73w8Kw6lyOicrDP/B/keKk9LpDLSQ== - dependencies: - "@dhis2-ui/alert" "9.11.0" - "@dhis2-ui/box" "9.11.0" - "@dhis2-ui/button" "9.11.0" - "@dhis2-ui/calendar" "9.11.0" - "@dhis2-ui/card" "9.11.0" - "@dhis2-ui/center" "9.11.0" - "@dhis2-ui/checkbox" "9.11.0" - "@dhis2-ui/chip" "9.11.0" - "@dhis2-ui/cover" "9.11.0" - "@dhis2-ui/css" "9.11.0" - "@dhis2-ui/divider" "9.11.0" - "@dhis2-ui/field" "9.11.0" - "@dhis2-ui/file-input" "9.11.0" - "@dhis2-ui/header-bar" "9.11.0" - "@dhis2-ui/help" "9.11.0" - "@dhis2-ui/input" "9.11.0" - "@dhis2-ui/intersection-detector" "9.11.0" - "@dhis2-ui/label" "9.11.0" - "@dhis2-ui/layer" "9.11.0" - "@dhis2-ui/legend" "9.11.0" - "@dhis2-ui/loader" "9.11.0" - "@dhis2-ui/logo" "9.11.0" - "@dhis2-ui/menu" "9.11.0" - "@dhis2-ui/modal" "9.11.0" - "@dhis2-ui/node" "9.11.0" - "@dhis2-ui/notice-box" "9.11.0" - "@dhis2-ui/organisation-unit-tree" "9.11.0" - "@dhis2-ui/pagination" "9.11.0" - "@dhis2-ui/popover" "9.11.0" - "@dhis2-ui/popper" "9.11.0" - "@dhis2-ui/portal" "9.11.0" - "@dhis2-ui/radio" "9.11.0" - "@dhis2-ui/required" "9.11.0" - "@dhis2-ui/segmented-control" "9.11.0" - "@dhis2-ui/select" "9.11.0" - "@dhis2-ui/selector-bar" "9.11.0" - "@dhis2-ui/sharing-dialog" "9.11.0" - "@dhis2-ui/switch" "9.11.0" - "@dhis2-ui/tab" "9.11.0" - "@dhis2-ui/table" "9.11.0" - "@dhis2-ui/tag" "9.11.0" - "@dhis2-ui/text-area" "9.11.0" - "@dhis2-ui/tooltip" "9.11.0" - "@dhis2-ui/transfer" "9.11.0" - "@dhis2-ui/user-avatar" "9.11.0" - "@dhis2/ui-constants" "9.11.0" - "@dhis2/ui-forms" "9.11.0" - "@dhis2/ui-icons" "9.11.0" - prop-types "^15.7.2" - "@dhis2/ui@^9.8.9": version "9.10.1" resolved "https://registry.yarnpkg.com/@dhis2/ui/-/ui-9.10.1.tgz#66b8384f22eb44313fd1f34c76c8615ec5b91e76" From ae70ab512878a10d91cd3962ac0c2f26bc42f841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Sandvik?= Date: Wed, 31 Jul 2024 08:36:52 +0200 Subject: [PATCH 24/25] chore: remove double entry of @dhis2/d2-i18n --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 6ef23d076..47cc2da1c 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,6 @@ "@dhis2/app-runtime": "^3.10.5", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", - "@dhis2/d2-i18n": "^1.1.3", "@dhis2/maps-gl": "git+https://github.com/d2-ci/maps-gl.git#feat/custom-ee-layers", "@krakenjs/post-robot": "^11.0.0", "@reportportal/agent-js-cypress": "git+https://github.com/dhis2/agent-js-cypress.git#develop", From f91ec7afb859de93ef53dc8cf605e7a33ed64371 Mon Sep 17 00:00:00 2001 From: braimbault Date: Wed, 31 Jul 2024 11:09:29 +0200 Subject: [PATCH 25/25] chore: maps-gl bump to 4.0.0 --- package.json | 2 +- yarn.lock | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index b67118c49..6cbb54eee 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@dhis2/app-runtime": "^3.10.5", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", - "@dhis2/maps-gl": "git+https://github.com/d2-ci/maps-gl.git#feat/custom-ee-layers", + "@dhis2/maps-gl": "^4.0.0", "@krakenjs/post-robot": "^11.0.0", "@reportportal/agent-js-cypress": "git+https://github.com/dhis2/agent-js-cypress.git#develop", "@reportportal/agent-js-jest": "^5.0.7", diff --git a/yarn.lock b/yarn.lock index 6ef120023..eeb64372d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2245,9 +2245,10 @@ i18next "^10.3" moment "^2.24.0" -"@dhis2/maps-gl@git+https://github.com/d2-ci/maps-gl.git#feat/custom-ee-layers": - version "3.9.2" - resolved "git+https://github.com/d2-ci/maps-gl.git#b640c769ddf9970ef751c245ad791c6ed64f21b7" +"@dhis2/maps-gl@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@dhis2/maps-gl/-/maps-gl-4.0.0.tgz#e97df2fbc78f787a0916224d7d54fb96b9c376db" + integrity sha512-TDEIBT6rFuEZGXnBxAqKhSmCXk3wtuCf/OrVZBKxT1qk0kHau71f3lzAXbWhYAuop8t6/DyJaIcQrUYMi1Xy3w== dependencies: "@mapbox/sphericalmercator" "^1.2.0" "@turf/area" "^6.5.0"