From 9448c04467c6d23b1ca9f8761a64b6a29dd22425 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Thu, 11 Apr 2024 15:08:13 +0200 Subject: [PATCH 01/12] fix: calculate size when vis comes from wrapper --- .../InterpretationModal.js | 8 +++-- .../VisualizationPlugin.js | 33 ++++++++++++------ .../VisualizationPluginWrapper.js | 34 +++++++++++++++++-- 3 files changed, 59 insertions(+), 16 deletions(-) diff --git a/src/components/InterpretationModal/InterpretationModal.js b/src/components/InterpretationModal/InterpretationModal.js index 8a60ca4965..89333fc0f2 100644 --- a/src/components/InterpretationModal/InterpretationModal.js +++ b/src/components/InterpretationModal/InterpretationModal.js @@ -1,6 +1,6 @@ import { InterpretationModal as AnalyticsInterpretationModal } from '@dhis2/analytics' import PropTypes from 'prop-types' -import React, { useState, useEffect } from 'react' +import React, { useState, useEffect, useCallback } from 'react' import { useSelector } from 'react-redux' import { sGetCurrent } from '../../reducers/current.js' import { ModalDownloadDropdown } from '../DownloadMenu/index.js' @@ -19,6 +19,10 @@ const InterpretationModal = ({ onInterpretationUpdate }, context) => { setIsVisualizationLoading(!!interpretationId) }, [interpretationId]) + const onResponsesReceived = useCallback(() => { + setIsVisualizationLoading(false) + }, []) + return interpretationId ? ( { interpretationId={interpretationId} isVisualizationLoading={isVisualizationLoading} onClose={removeInterpretationQueryParams} - onResponsesReceived={() => setIsVisualizationLoading(false)} + onResponsesReceived={onResponsesReceived} visualization={visualization} downloadMenuComponent={ModalDownloadDropdown} pluginComponent={VisualizationPluginWrapper} diff --git a/src/components/VisualizationPlugin/VisualizationPlugin.js b/src/components/VisualizationPlugin/VisualizationPlugin.js index 0ae9c965fa..beeba7b30b 100644 --- a/src/components/VisualizationPlugin/VisualizationPlugin.js +++ b/src/components/VisualizationPlugin/VisualizationPlugin.js @@ -32,6 +32,7 @@ export const VisualizationPlugin = ({ displayProperty, filters, forDashboard, + fromWrapper, id, style, onChartGenerated, @@ -60,11 +61,12 @@ export const VisualizationPlugin = ({ return } - const adjustSize = () => - setSize({ + const adjustSize = () => { + return setSize({ width: node.clientWidth, height: node.clientHeight, }) + } const sizeObserver = new window.ResizeObserver(adjustSize) sizeObserver.observe(node) @@ -324,15 +326,22 @@ export const VisualizationPlugin = ({ const hasLegendSet = legendSets?.length > 0 && isLegendSetType(fetchResult.visualization.type) - const transformedStyle = - forDashboard && hasLegendSet - ? { - ...style, - width: style.width || size.width - (showLegendKey ? 200 : 36), - // 200: width of legend key component with margin and scrollbar - // 36: width of the toggle button with margin - } - : style + + let transformedStyle = style + if (forDashboard && hasLegendSet) { + transformedStyle = { + ...style, + width: style.width || size.width - (showLegendKey ? 200 : 36), + // 200: width of legend key component with margin and scrollbar + // 36: width of the toggle button with margin + } + } else if (fromWrapper) { + transformedStyle = { + ...style, + width: style.width || size.width, + height: style.height || size.height, + } + } // force wdth and height when no value available otherwise the PivotTable container sets 0 as height hiding the table content // and Highcharts does not render correctly the chart/legend @@ -472,6 +481,7 @@ VisualizationPlugin.defaultProps = { displayProperty: 'name', filters: {}, forDashboard: false, + fromWrapper: false, onChartGenerated: Function.prototype, onError: Function.prototype, onLoadingComplete: Function.prototype, @@ -485,6 +495,7 @@ VisualizationPlugin.propTypes = { visualization: PropTypes.object.isRequired, filters: PropTypes.object, forDashboard: PropTypes.bool, + fromWrapper: PropTypes.bool, id: PropTypes.number, style: PropTypes.object, onChartGenerated: PropTypes.func, diff --git a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js index 7fd8e6edc9..979c375708 100644 --- a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js +++ b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js @@ -1,4 +1,5 @@ import { CenteredContent, CircularLoader, ComponentCover } from '@dhis2/ui' +import PropTypes from 'prop-types' import React, { useCallback, useEffect, useState } from 'react' import { VisualizationPlugin } from '../VisualizationPlugin/VisualizationPlugin.js' @@ -27,12 +28,29 @@ const VisualizationPluginWrapper = (props) => { [pluginProps] ) + useEffect(() => { + setPluginProps({ + filters: props.filters, + displayProperty: props.displayProperty, + visualization: props.visualization, + onResponsesReceived: props.onResponsesReceived, + style: props.style, + }) + }, [ + props.filters, + props.displayProperty, + props.visualization, + props.onResponsesReceived, + props.style, + ]) + useEffect(() => { setIsLoading(true) - setPluginProps(props) - }, [props]) + }, [props.filters, props.displayProperty, props.visualization]) - const onLoadingComplete = () => setIsLoading(false) + const onLoadingComplete = () => { + return setIsLoading(false) + } return ( <> @@ -47,9 +65,19 @@ const VisualizationPluginWrapper = (props) => { {...pluginProps} onDataSorted={onDataSorted} onLoadingComplete={onLoadingComplete} + fromWrapper={true} /> ) } +VisualizationPluginWrapper.propTypes = { + className: PropTypes.string, + displayProperty: PropTypes.string, + filters: PropTypes.object, + style: PropTypes.object, + visualization: PropTypes.object, + onResponsesReceived: PropTypes.func, +} + export { VisualizationPluginWrapper } From 1001d6484b07fa906eb89fdc39f17f68ac1e7573 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Thu, 11 Apr 2024 15:51:04 +0200 Subject: [PATCH 02/12] chore: cleanup --- src/components/VisualizationPlugin/VisualizationPlugin.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/VisualizationPlugin/VisualizationPlugin.js b/src/components/VisualizationPlugin/VisualizationPlugin.js index beeba7b30b..cf6efaa43f 100644 --- a/src/components/VisualizationPlugin/VisualizationPlugin.js +++ b/src/components/VisualizationPlugin/VisualizationPlugin.js @@ -61,12 +61,11 @@ export const VisualizationPlugin = ({ return } - const adjustSize = () => { - return setSize({ + const adjustSize = () => + setSize({ width: node.clientWidth, height: node.clientHeight, }) - } const sizeObserver = new window.ResizeObserver(adjustSize) sizeObserver.observe(node) From ebd4e38fb696db1c5dddfd057206d07fe4da89db Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Thu, 11 Apr 2024 15:52:12 +0200 Subject: [PATCH 03/12] chore: cleanup 2 --- .../VisualizationPlugin/VisualizationPluginWrapper.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js index 979c375708..cb5f4737cb 100644 --- a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js +++ b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js @@ -48,9 +48,7 @@ const VisualizationPluginWrapper = (props) => { setIsLoading(true) }, [props.filters, props.displayProperty, props.visualization]) - const onLoadingComplete = () => { - return setIsLoading(false) - } + const onLoadingComplete = () => setIsLoading(false) return ( <> From 61641c39ae5d4c226d1966fd2b8a0482cccf7ff1 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Thu, 11 Apr 2024 15:59:25 +0200 Subject: [PATCH 04/12] chore: upgrade analytics --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 08e33654c1..e220768e25 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "start-server-and-test": "^2.0.0" }, "dependencies": { - "@dhis2/analytics": "^26.6.0", + "@dhis2/analytics": "999.99.9-flashing-fix-alpha.1", "@dhis2/app-runtime": "^3.7.0", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", diff --git a/yarn.lock b/yarn.lock index 5460909cae..f0d3a34a9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2028,10 +2028,10 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/analytics@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.6.0.tgz#1d70463fca8a4d5f5838928e9ab6c5c07873715f" - integrity sha512-fO8ozVfnTulXQptPcT3W/y+Ru6sN/Qjhr6dWHL4LsG2siL1v8QOWKcnM/yScClJtRZvsbEnQ6vX47c7ujRsGUA== +"@dhis2/analytics@999.99.9-flashing-fix-alpha.1": + version "999.99.9-flashing-fix-alpha.1" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-999.99.9-flashing-fix-alpha.1.tgz#41b4ad3a017c0c8c303fdb3eca6b34adec3db83e" + integrity sha512-vz7CIszIhRdEwCWfcnW9E/dUENeqebpdcCkVWX/VsJXJmjEYqvcBZm9mO+3izlI4s7cvgPHDGrVNF6u01N72ug== dependencies: "@dhis2/d2-ui-rich-text" "^7.4.1" "@dhis2/multi-calendar-dates" "1.0.0" From d4f55dda87fe20b8887eb76c07a94cc5b5bf3ccc Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Thu, 11 Apr 2024 16:38:32 +0200 Subject: [PATCH 05/12] fix: include all possible props --- .../VisualizationPluginWrapper.js | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js index cb5f4737cb..0a9c3c1388 100644 --- a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js +++ b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js @@ -30,18 +30,28 @@ const VisualizationPluginWrapper = (props) => { useEffect(() => { setPluginProps({ - filters: props.filters, displayProperty: props.displayProperty, visualization: props.visualization, - onResponsesReceived: props.onResponsesReceived, + filters: props.filters, + forDashboard: props.forDashboard, + id: props.id, style: props.style, + onChartGenerated: props.onChartGenerated, + onDrill: props.onDrill, + onError: props.onError, + onResponsesReceived: props.onResponsesReceived, }) }, [ - props.filters, props.displayProperty, props.visualization, - props.onResponsesReceived, + props.filters, + props.forDashboard, + props.id, props.style, + props.onChartGenerated, + props.onDrill, + props.onError, + props.onResponsesReceived, ]) useEffect(() => { @@ -70,11 +80,16 @@ const VisualizationPluginWrapper = (props) => { } VisualizationPluginWrapper.propTypes = { + displayProperty: PropTypes.string.isRequired, + visualization: PropTypes.object.isRequired, className: PropTypes.string, - displayProperty: PropTypes.string, filters: PropTypes.object, + forDashboard: PropTypes.bool, + id: PropTypes.number, style: PropTypes.object, - visualization: PropTypes.object, + onChartGenerated: PropTypes.func, + onDrill: PropTypes.func, + onError: PropTypes.func, onResponsesReceived: PropTypes.func, } From 92107ab83b5086d921c7e57813006905b8c6fb40 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Fri, 12 Apr 2024 11:45:23 +0200 Subject: [PATCH 06/12] fix: listen on props that will cause vis to refetch --- .../VisualizationPlugin/VisualizationPluginWrapper.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js index 0a9c3c1388..4da56aec00 100644 --- a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js +++ b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js @@ -54,9 +54,11 @@ const VisualizationPluginWrapper = (props) => { props.onResponsesReceived, ]) + // set loading state only for props that will cause + // VisualizationPlugin to fetch and call onLoadingComplete useEffect(() => { setIsLoading(true) - }, [props.filters, props.displayProperty, props.visualization]) + }, [props.filters, props.forDashboard, props.visualization]) const onLoadingComplete = () => setIsLoading(false) From 1b3a35ff42b1730627d1edda123acdcb0cb6946d Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Wed, 17 Apr 2024 14:41:36 +0200 Subject: [PATCH 07/12] fix: resize chart according to viewport height when using modal --- .../VisualizationPlugin/VisualizationPlugin.js | 9 ++++++++- .../VisualizationPlugin/VisualizationPluginWrapper.js | 3 +++ .../styles/VisualizationPlugin.module.css | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/VisualizationPlugin/VisualizationPlugin.js b/src/components/VisualizationPlugin/VisualizationPlugin.js index cf6efaa43f..a447c6bac3 100644 --- a/src/components/VisualizationPlugin/VisualizationPlugin.js +++ b/src/components/VisualizationPlugin/VisualizationPlugin.js @@ -34,6 +34,7 @@ export const VisualizationPlugin = ({ forDashboard, fromWrapper, id, + isInModal, style, onChartGenerated, onError, @@ -455,7 +456,12 @@ export const VisualizationPlugin = ({ } return ( -
+
{renderPlugin()}
{getLegendKey()} {contextualMenuRect && ( @@ -496,6 +502,7 @@ VisualizationPlugin.propTypes = { forDashboard: PropTypes.bool, fromWrapper: PropTypes.bool, id: PropTypes.number, + isInModal: PropTypes.bool, style: PropTypes.object, onChartGenerated: PropTypes.func, onDataSorted: PropTypes.func, diff --git a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js index 4da56aec00..57486471a6 100644 --- a/src/components/VisualizationPlugin/VisualizationPluginWrapper.js +++ b/src/components/VisualizationPlugin/VisualizationPluginWrapper.js @@ -35,6 +35,7 @@ const VisualizationPluginWrapper = (props) => { filters: props.filters, forDashboard: props.forDashboard, id: props.id, + isInModal: props.isInModal, style: props.style, onChartGenerated: props.onChartGenerated, onDrill: props.onDrill, @@ -47,6 +48,7 @@ const VisualizationPluginWrapper = (props) => { props.filters, props.forDashboard, props.id, + props.isInModal, props.style, props.onChartGenerated, props.onDrill, @@ -88,6 +90,7 @@ VisualizationPluginWrapper.propTypes = { filters: PropTypes.object, forDashboard: PropTypes.bool, id: PropTypes.number, + isInModal: PropTypes.bool, style: PropTypes.object, onChartGenerated: PropTypes.func, onDrill: PropTypes.func, diff --git a/src/components/VisualizationPlugin/styles/VisualizationPlugin.module.css b/src/components/VisualizationPlugin/styles/VisualizationPlugin.module.css index f03812c0e5..0820a0ea03 100644 --- a/src/components/VisualizationPlugin/styles/VisualizationPlugin.module.css +++ b/src/components/VisualizationPlugin/styles/VisualizationPlugin.module.css @@ -4,6 +4,9 @@ height: 100%; display: flex; } +.modalHeight { + max-height: calc(-285px + 100vh); +} .chartWrapper { display: flex; From e8932951d6e15d9e308161f35173cd87fb3b486f Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Wed, 17 Apr 2024 14:58:43 +0200 Subject: [PATCH 08/12] fix: only isInModal needed --- src/components/VisualizationPlugin/VisualizationPlugin.js | 6 ++---- .../VisualizationPlugin/VisualizationPluginWrapper.js | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/components/VisualizationPlugin/VisualizationPlugin.js b/src/components/VisualizationPlugin/VisualizationPlugin.js index a447c6bac3..0aa482969a 100644 --- a/src/components/VisualizationPlugin/VisualizationPlugin.js +++ b/src/components/VisualizationPlugin/VisualizationPlugin.js @@ -32,7 +32,6 @@ export const VisualizationPlugin = ({ displayProperty, filters, forDashboard, - fromWrapper, id, isInModal, style, @@ -335,7 +334,7 @@ export const VisualizationPlugin = ({ // 200: width of legend key component with margin and scrollbar // 36: width of the toggle button with margin } - } else if (fromWrapper) { + } else if (isInModal) { transformedStyle = { ...style, width: style.width || size.width, @@ -455,6 +454,7 @@ export const VisualizationPlugin = ({ } } + console.log('jj visPlugin isInModal', { isInModal }) return (
{ {...pluginProps} onDataSorted={onDataSorted} onLoadingComplete={onLoadingComplete} - fromWrapper={true} /> ) From 1067370d611cee5364ddeefdf33fe25f8e257759 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Wed, 17 Apr 2024 15:04:13 +0200 Subject: [PATCH 09/12] fix: remove console --- src/components/VisualizationPlugin/VisualizationPlugin.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/VisualizationPlugin/VisualizationPlugin.js b/src/components/VisualizationPlugin/VisualizationPlugin.js index 0aa482969a..f751aa58a4 100644 --- a/src/components/VisualizationPlugin/VisualizationPlugin.js +++ b/src/components/VisualizationPlugin/VisualizationPlugin.js @@ -454,7 +454,6 @@ export const VisualizationPlugin = ({ } } - console.log('jj visPlugin isInModal', { isInModal }) return (
Date: Wed, 17 Apr 2024 15:05:15 +0200 Subject: [PATCH 10/12] fix: use shorter name --- src/components/VisualizationPlugin/VisualizationPlugin.js | 2 +- .../VisualizationPlugin/styles/VisualizationPlugin.module.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/VisualizationPlugin/VisualizationPlugin.js b/src/components/VisualizationPlugin/VisualizationPlugin.js index f751aa58a4..eded3ef3bc 100644 --- a/src/components/VisualizationPlugin/VisualizationPlugin.js +++ b/src/components/VisualizationPlugin/VisualizationPlugin.js @@ -457,7 +457,7 @@ export const VisualizationPlugin = ({ return (
diff --git a/src/components/VisualizationPlugin/styles/VisualizationPlugin.module.css b/src/components/VisualizationPlugin/styles/VisualizationPlugin.module.css index 0820a0ea03..2172b39e06 100644 --- a/src/components/VisualizationPlugin/styles/VisualizationPlugin.module.css +++ b/src/components/VisualizationPlugin/styles/VisualizationPlugin.module.css @@ -4,7 +4,7 @@ height: 100%; display: flex; } -.modalHeight { +.modal { max-height: calc(-285px + 100vh); } From 997fd6bb9b27f825d7b2578862d9f61d6c875a3f Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Wed, 17 Apr 2024 15:28:59 +0200 Subject: [PATCH 11/12] fix: analytics upgrade --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e220768e25..11dbd7276b 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "start-server-and-test": "^2.0.0" }, "dependencies": { - "@dhis2/analytics": "999.99.9-flashing-fix-alpha.1", + "@dhis2/analytics": "999.99.9-flashing-fix-alpha.2", "@dhis2/app-runtime": "^3.7.0", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", diff --git a/yarn.lock b/yarn.lock index f0d3a34a9a..97d828d318 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2028,10 +2028,10 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/analytics@999.99.9-flashing-fix-alpha.1": - version "999.99.9-flashing-fix-alpha.1" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-999.99.9-flashing-fix-alpha.1.tgz#41b4ad3a017c0c8c303fdb3eca6b34adec3db83e" - integrity sha512-vz7CIszIhRdEwCWfcnW9E/dUENeqebpdcCkVWX/VsJXJmjEYqvcBZm9mO+3izlI4s7cvgPHDGrVNF6u01N72ug== +"@dhis2/analytics@999.99.9-flashing-fix-alpha.2": + version "999.99.9-flashing-fix-alpha.2" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-999.99.9-flashing-fix-alpha.2.tgz#e3d24f6faae820933a78d6a1b74331e443b8b678" + integrity sha512-0z0Os5X0sskUv6M0wgVN+4y+CMi7RoZ0huZ72p5maXoNumw3geg3OqbojMFGSX1ShChR/ip+qkUgoLEAwoUseA== dependencies: "@dhis2/d2-ui-rich-text" "^7.4.1" "@dhis2/multi-calendar-dates" "1.0.0" From 4191cf0ca3a7fe7fe965020db4a0b5c77ad70994 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Mon, 22 Apr 2024 12:42:17 +0200 Subject: [PATCH 12/12] fix: analytics --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f1169f023e..36a9374981 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "typescript": "^4.8.4" }, "dependencies": { - "@dhis2/analytics": "999.99.9-flashing-fix-alpha.2", + "@dhis2/analytics": "^26.6.5", "@dhis2/app-runtime": "^3.7.0", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", diff --git a/yarn.lock b/yarn.lock index 19a5ceedfb..0cc8819006 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2028,10 +2028,10 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/analytics@999.99.9-flashing-fix-alpha.2": - version "999.99.9-flashing-fix-alpha.2" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-999.99.9-flashing-fix-alpha.2.tgz#e3d24f6faae820933a78d6a1b74331e443b8b678" - integrity sha512-0z0Os5X0sskUv6M0wgVN+4y+CMi7RoZ0huZ72p5maXoNumw3geg3OqbojMFGSX1ShChR/ip+qkUgoLEAwoUseA== +"@dhis2/analytics@^26.6.5": + version "26.6.5" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.6.5.tgz#44ee29a279c37f3969096d859bc0f07d953e3f42" + integrity sha512-ob6kNEEkIAC50RtKuUZWi8Y04uwsPHK/EiYhzxZkSOdS5wFm8X+88KZrD//fILXQjwMhJvl/4+F/T0qVxOF/jQ== dependencies: "@dhis2/d2-ui-rich-text" "^7.4.1" "@dhis2/multi-calendar-dates" "1.0.0"