From 1c9068c9d153798ccbd61f6b916c1ee94ec122f8 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Wed, 20 Mar 2024 09:43:22 +0100 Subject: [PATCH 01/23] fix: show correct date and time in About AO Unit [DHIS2-15825, DHIS2-16365] [24.x] (#1642) Fixes https://dhis2.atlassian.net/browse/DHIS2-15825 and https://dhis2.atlassian.net/browse/DHIS2-16365 * Show correct date and time in About AO Unit * Preserve newlines in interpretations and replies --- src/components/AboutAOUnit/AboutAOUnit.js | 17 ++- .../InterpretationThread.js | 6 +- .../InterpretationsUnit/InterpretationList.js | 4 +- .../Interpretations/common/Message/Message.js | 106 ++++++++++-------- 4 files changed, 78 insertions(+), 55 deletions(-) diff --git a/src/components/AboutAOUnit/AboutAOUnit.js b/src/components/AboutAOUnit/AboutAOUnit.js index 0fb7fb78e..76002a453 100644 --- a/src/components/AboutAOUnit/AboutAOUnit.js +++ b/src/components/AboutAOUnit/AboutAOUnit.js @@ -1,4 +1,8 @@ -import { useDataQuery, useDataMutation } from '@dhis2/app-runtime' +import { + useDataQuery, + useDataMutation, + useTimeZoneConversion, +} from '@dhis2/app-runtime' import i18n from '@dhis2/d2-i18n' import { Parser as RichTextParser } from '@dhis2/d2-ui-rich-text' import { @@ -57,6 +61,7 @@ const getUnsubscribeMutation = (type, id) => ({ const AboutAOUnit = forwardRef(({ type, id, renderId }, ref) => { const [isExpanded, setIsExpanded] = useState(true) + const { fromServerDate } = useTimeZoneConversion() const queries = useMemo(() => getQueries(type), [type]) @@ -208,7 +213,7 @@ const AboutAOUnit = forwardRef(({ type, id, renderId }, ref) => { {i18n.t('Last updated {{time}}', { time: moment( - data.ao.lastUpdated + fromServerDate(data.ao.lastUpdated) ).fromNow(), })}

@@ -219,7 +224,9 @@ const AboutAOUnit = forwardRef(({ type, id, renderId }, ref) => { 'Created {{time}} by {{author}}', { time: moment( - data.ao.created + fromServerDate( + data.ao.created + ) ).fromNow(), author: data.ao.createdBy .displayName, @@ -227,7 +234,9 @@ const AboutAOUnit = forwardRef(({ type, id, renderId }, ref) => { ) : i18n.t('Created {{time}}', { time: moment( - data.ao.created + fromServerDate( + data.ao.created + ) ).fromNow(), })}

diff --git a/src/components/Interpretations/InterpretationModal/InterpretationThread.js b/src/components/Interpretations/InterpretationModal/InterpretationThread.js index cf352317b..262994e1f 100644 --- a/src/components/Interpretations/InterpretationModal/InterpretationThread.js +++ b/src/components/Interpretations/InterpretationModal/InterpretationThread.js @@ -1,3 +1,4 @@ +import { useTimeZoneConversion } from '@dhis2/app-runtime' import { IconClock16, colors } from '@dhis2/ui' import cx from 'classnames' import moment from 'moment' @@ -16,6 +17,7 @@ const InterpretationThread = ({ onThreadUpdated, downloadMenuComponent: DownloadMenu, }) => { + const { fromServerDate } = useTimeZoneConversion() const focusRef = useRef() useEffect(() => { @@ -31,7 +33,9 @@ const InterpretationThread = ({
- {moment(interpretation.created).format('LLL')} + {moment(fromServerDate(interpretation.created)).format( + 'LLL' + )}
{DownloadMenu && ( diff --git a/src/components/Interpretations/InterpretationsUnit/InterpretationList.js b/src/components/Interpretations/InterpretationsUnit/InterpretationList.js index 22de9c3a0..f16d78514 100644 --- a/src/components/Interpretations/InterpretationsUnit/InterpretationList.js +++ b/src/components/Interpretations/InterpretationsUnit/InterpretationList.js @@ -1,3 +1,4 @@ +import { useTimeZoneConversion } from '@dhis2/app-runtime' import { IconCalendar24, colors, spacers } from '@dhis2/ui' import moment from 'moment' import PropTypes from 'prop-types' @@ -25,6 +26,7 @@ export const InterpretationList = ({ refresh, disabled, }) => { + const { fromServerDate } = useTimeZoneConversion() const interpretationsByDate = interpretations.reduce( (groupedInterpretations, interpretation) => { const date = interpretation.created.split('T')[0] @@ -50,7 +52,7 @@ export const InterpretationList = ({
    diff --git a/src/components/Interpretations/common/Message/Message.js b/src/components/Interpretations/common/Message/Message.js index 0253cb5cb..016e8b9d0 100644 --- a/src/components/Interpretations/common/Message/Message.js +++ b/src/components/Interpretations/common/Message/Message.js @@ -1,63 +1,71 @@ +import { useTimeZoneConversion } from '@dhis2/app-runtime' import { Parser as RichTextParser } from '@dhis2/d2-ui-rich-text' import { UserAvatar, spacers, colors } from '@dhis2/ui' import moment from 'moment' import PropTypes from 'prop-types' import React from 'react' -const Message = ({ children, text, created, username }) => ( -
  1. -
    - - {username} - -
    -
    - {text} -
    -
    {children}
    - -
  2. -) + .footer { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: ${spacers.dp8}; + } + `} + + ) +} Message.propTypes = { children: PropTypes.node.isRequired, From bb1e15065c844bfbfaa0e122908c92ff8fa89397 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 20 Mar 2024 08:48:14 +0000 Subject: [PATCH 02/23] chore(release): cut 24.10.3 [skip ci] ## [24.10.3](https://github.com/dhis2/analytics/compare/v24.10.2...v24.10.3) (2024-03-20) ### Bug Fixes * show correct date and time in About AO Unit [DHIS2-15825, DHIS2-16365] [24.x] ([#1642](https://github.com/dhis2/analytics/issues/1642)) ([1c9068c](https://github.com/dhis2/analytics/commit/1c9068c9d153798ccbd61f6b916c1ee94ec122f8)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a65067a83..c4d1e97cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.3](https://github.com/dhis2/analytics/compare/v24.10.2...v24.10.3) (2024-03-20) + + +### Bug Fixes + +* show correct date and time in About AO Unit [DHIS2-15825, DHIS2-16365] [24.x] ([#1642](https://github.com/dhis2/analytics/issues/1642)) ([1c9068c](https://github.com/dhis2/analytics/commit/1c9068c9d153798ccbd61f6b916c1ee94ec122f8)) + ## [24.10.2](https://github.com/dhis2/analytics/compare/v24.10.1...v24.10.2) (2023-10-25) diff --git a/package.json b/package.json index 28744b86f..1948e9dfa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.2", + "version": "24.10.3", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From 4148bf9ae1c8aa386abd7b2b7ad2c01636d8b06d Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Tue, 2 Apr 2024 16:41:22 +0200 Subject: [PATCH 03/23] fix: interpretations panel renders with flashing when liking or unliking an interpretation (#1643) Fixes: https://dhis2.atlassian.net/browse/DHIS2-16392 Backport of #1600 --------- Co-authored-by: Edoardo Sabadelli --- .../InterpretationModal.js | 14 ++++++++++--- .../InterpretationThread.js | 3 +++ .../InterpretationsUnit/InterpretationList.js | 3 +++ .../InterpretationsUnit.js | 20 +++++++++++++----- .../common/Interpretation/Interpretation.js | 8 ++++++- .../common/Interpretation/useLike.js | 21 +++++++++++++++++-- 6 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/components/Interpretations/InterpretationModal/InterpretationModal.js b/src/components/Interpretations/InterpretationModal/InterpretationModal.js index f2d693838..13f6285af 100644 --- a/src/components/Interpretations/InterpretationModal/InterpretationModal.js +++ b/src/components/Interpretations/InterpretationModal/InterpretationModal.js @@ -82,7 +82,7 @@ const InterpretationModal = ({ }) const interpretation = data?.interpretation const shouldRenderModalContent = !error && interpretation - const shouldCssHideModal = loading || isVisualizationLoading + const loadingInProgress = loading || isVisualizationLoading const handleClose = () => { if (isDirty) { onInterpretationUpdate() @@ -96,6 +96,13 @@ const InterpretationModal = ({ } refetch({ id: interpretationId }) } + + const onLikeToggled = ({ likedBy }) => { + setIsDirty(true) + interpretation.likedBy = likedBy + interpretation.likes = likedBy.length + } + const onInterpretationDeleted = () => { setIsDirty(false) onInterpretationUpdate() @@ -110,7 +117,7 @@ const InterpretationModal = ({ return ( <> - {shouldCssHideModal && ( + {loadingInProgress && ( @@ -121,7 +128,7 @@ const InterpretationModal = ({ fluid onClose={handleClose} className={cx(modalCSS.className, { - hidden: shouldCssHideModal, + hidden: loadingInProgress, })} dataTest="interpretation-modal" > @@ -182,6 +189,7 @@ const InterpretationModal = ({ downloadMenuComponent={ downloadMenuComponent } + onLikeToggled={onLikeToggled} />
diff --git a/src/components/Interpretations/InterpretationModal/InterpretationThread.js b/src/components/Interpretations/InterpretationModal/InterpretationThread.js index 262994e1f..5cd061c55 100644 --- a/src/components/Interpretations/InterpretationModal/InterpretationThread.js +++ b/src/components/Interpretations/InterpretationModal/InterpretationThread.js @@ -13,6 +13,7 @@ const InterpretationThread = ({ fetching, interpretation, onInterpretationDeleted, + onLikeToggled, initialFocus, onThreadUpdated, downloadMenuComponent: DownloadMenu, @@ -47,6 +48,7 @@ const InterpretationThread = ({ onReplyIconClick={() => focusRef.current?.focus()} onUpdated={() => onThreadUpdated(true)} onDeleted={onInterpretationDeleted} + onLikeToggled={onLikeToggled} />
{interpretation.comments.map((comment) => ( @@ -145,6 +147,7 @@ InterpretationThread.propTypes = { fetching: PropTypes.bool.isRequired, interpretation: PropTypes.object.isRequired, onInterpretationDeleted: PropTypes.func.isRequired, + onLikeToggled: PropTypes.func.isRequired, downloadMenuComponent: PropTypes.oneOfType([ PropTypes.object, PropTypes.func, diff --git a/src/components/Interpretations/InterpretationsUnit/InterpretationList.js b/src/components/Interpretations/InterpretationsUnit/InterpretationList.js index f16d78514..3782bb2d1 100644 --- a/src/components/Interpretations/InterpretationsUnit/InterpretationList.js +++ b/src/components/Interpretations/InterpretationsUnit/InterpretationList.js @@ -22,6 +22,7 @@ export const InterpretationList = ({ currentUser, interpretations, onInterpretationClick, + onLikeToggled, onReplyIconClick, refresh, disabled, @@ -64,6 +65,7 @@ export const InterpretationList = ({ interpretation={interpretation} currentUser={currentUser} onClick={onInterpretationClick} + onLikeToggled={onLikeToggled} onReplyIconClick={onReplyIconClick} onDeleted={refresh} onUpdated={refresh} @@ -116,6 +118,7 @@ InterpretationList.propTypes = { interpretations: PropTypes.array.isRequired, refresh: PropTypes.func.isRequired, onInterpretationClick: PropTypes.func.isRequired, + onLikeToggled: PropTypes.func.isRequired, onReplyIconClick: PropTypes.func.isRequired, disabled: PropTypes.bool, } diff --git a/src/components/Interpretations/InterpretationsUnit/InterpretationsUnit.js b/src/components/Interpretations/InterpretationsUnit/InterpretationsUnit.js index 3a6d6d257..44ba4a69c 100644 --- a/src/components/Interpretations/InterpretationsUnit/InterpretationsUnit.js +++ b/src/components/Interpretations/InterpretationsUnit/InterpretationsUnit.js @@ -52,11 +52,14 @@ export const InterpretationsUnit = forwardRef( ref ) => { const [isExpanded, setIsExpanded] = useState(true) + const [interpretations, setInterpretations] = useState([]) - const { data, loading, fetching, refetch } = useDataQuery( + const { loading, fetching, refetch } = useDataQuery( interpretationsQuery, { lazy: true, + onComplete: (data) => + setInterpretations(data.interpretations.interpretations), } ) @@ -78,6 +81,14 @@ export const InterpretationsUnit = forwardRef( } }, [type, id, renderId, refetch]) + const onLikeToggled = ({ id, likedBy }) => { + const interpretation = interpretations.find( + (interp) => interp.id === id + ) + interpretation.likedBy = likedBy + interpretation.likes = likedBy.length + } + return (
)} - {data && ( + {interpretations && ( <> { const [isUpdateMode, setIsUpdateMode] = useState(false) const [showSharingDialog, setShowSharingDialog] = useState(false) const { toggleLike, isLikedByCurrentUser, toggleLikeInProgress } = useLike({ interpretation, currentUser, - onComplete: onUpdated, + onComplete: (likedBy) => + onLikeToggled({ + id: interpretation.id, + likedBy, + }), }) const shouldShowButton = !!onClick && !disabled @@ -121,6 +126,7 @@ Interpretation.propTypes = { currentUser: PropTypes.object.isRequired, interpretation: PropTypes.object.isRequired, onDeleted: PropTypes.func.isRequired, + onLikeToggled: PropTypes.func.isRequired, onReplyIconClick: PropTypes.func.isRequired, onUpdated: PropTypes.func.isRequired, disabled: PropTypes.bool, diff --git a/src/components/Interpretations/common/Interpretation/useLike.js b/src/components/Interpretations/common/Interpretation/useLike.js index 38bc5ce2f..f412b2059 100644 --- a/src/components/Interpretations/common/Interpretation/useLike.js +++ b/src/components/Interpretations/common/Interpretation/useLike.js @@ -7,11 +7,28 @@ const useLike = ({ interpretation, currentUser, onComplete }) => { const unlikeMutationRef = useRef({ resource, type: 'delete' }) const [like, { loading: likeLoading }] = useDataMutation( likeMutationRef.current, - { onComplete } + { + onComplete: () => { + const newLikedBy = interpretation.likedBy.concat({ + id: currentUser.id, + }) + setIsLikedByCurrentUser(true) + onComplete(newLikedBy) + }, + } ) const [unlike, { loading: unlikeLoading }] = useDataMutation( unlikeMutationRef.current, - { onComplete } + { + onComplete: () => { + const newLikedBy = interpretation.likedBy.filter( + (lb) => lb.id !== currentUser.id + ) + + setIsLikedByCurrentUser(false) + onComplete(newLikedBy) + }, + } ) const [isLikedByCurrentUser, setIsLikedByCurrentUser] = useState(false) const toggleLike = () => { From 85f45eb8865a26c953db18b9b3deaa9f71f50bd1 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 2 Apr 2024 14:45:09 +0000 Subject: [PATCH 04/23] chore(release): cut 24.10.4 [skip ci] ## [24.10.4](https://github.com/dhis2/analytics/compare/v24.10.3...v24.10.4) (2024-04-02) ### Bug Fixes * interpretations panel renders with flashing when liking or unliking an interpretation ([#1643](https://github.com/dhis2/analytics/issues/1643)) ([4148bf9](https://github.com/dhis2/analytics/commit/4148bf9ae1c8aa386abd7b2b7ad2c01636d8b06d)), closes [#1600](https://github.com/dhis2/analytics/issues/1600) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4d1e97cf..c91c6ace1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.4](https://github.com/dhis2/analytics/compare/v24.10.3...v24.10.4) (2024-04-02) + + +### Bug Fixes + +* interpretations panel renders with flashing when liking or unliking an interpretation ([#1643](https://github.com/dhis2/analytics/issues/1643)) ([4148bf9](https://github.com/dhis2/analytics/commit/4148bf9ae1c8aa386abd7b2b7ad2c01636d8b06d)), closes [#1600](https://github.com/dhis2/analytics/issues/1600) + ## [24.10.3](https://github.com/dhis2/analytics/compare/v24.10.2...v24.10.3) (2024-03-20) diff --git a/package.json b/package.json index 1948e9dfa..f1d217847 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.3", + "version": "24.10.4", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From 68907d2ef4dc1e200eeaa03c2b092229a68b9a99 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Wed, 3 Apr 2024 13:15:32 +0200 Subject: [PATCH 05/23] fix: avoid crash in DV with some chart types (DHIS2-15882) [24.x] (#1651) * fix: avoid crash in DV with some chart types DHIS2-15882 (#1582) * fix: upgrade highcharts to be compatible with code change --------- Co-authored-by: Edoardo Sabadelli --- package.json | 2 +- .../config/adapters/dhis_highcharts/chart.js | 6 +++++- .../config/generators/highcharts/index.js | 11 +++++++---- yarn.lock | 8 ++++---- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index f1d217847..a98d0d6a2 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "classnames": "^2.3.1", "d2-utilizr": "^0.2.16", "d3-color": "^1.2.3", - "highcharts": "^10.2.0", + "highcharts": "^10.3.3", "lodash": "^4.17.21", "mathjs": "^9.4.2", "react-beautiful-dnd": "^10.1.1", diff --git a/src/visualizations/config/adapters/dhis_highcharts/chart.js b/src/visualizations/config/adapters/dhis_highcharts/chart.js index 9174ad816..e50a52ca9 100644 --- a/src/visualizations/config/adapters/dhis_highcharts/chart.js +++ b/src/visualizations/config/adapters/dhis_highcharts/chart.js @@ -22,7 +22,11 @@ const getEvents = () => ({ if (item.legendSymbol) { item.legendSymbol.attr({ translateY: - -((item.legendItem.getBBox().height * 0.75) / 4) + + -( + (item.legendItem.label.getBBox().height * + 0.75) / + 4 + ) + item.legendSymbol.r / 2, }) } diff --git a/src/visualizations/config/generators/highcharts/index.js b/src/visualizations/config/generators/highcharts/index.js index ca8ad2b3d..92a775910 100644 --- a/src/visualizations/config/generators/highcharts/index.js +++ b/src/visualizations/config/generators/highcharts/index.js @@ -20,6 +20,8 @@ function drawLegendSymbolWrap() { H.seriesTypes.column.prototype, 'drawLegendSymbol', function (proceed, legend, item) { + const legendItem = item.legendItem + if (this.options.legendSet?.legends?.length) { const ys = legend.baseline - legend.symbolHeight + 1, // y start x = legend.symbolWidth / 2 > 8 ? legend.symbolWidth / 2 : 8, // x start @@ -32,7 +34,7 @@ function drawLegendSymbolWrap() { .attr({ fill: legends[legends.length >= 5 ? 1 : 0].color, }) - .add(this.legendGroup) + .add(legendItem.group) this.chart.renderer .path(['M', x, ye, 'A', 1, 1, 0, 0, 0, x, ys, 'V', ye]) .attr({ @@ -42,13 +44,14 @@ function drawLegendSymbolWrap() { : legends.length - 1 ].color, }) - .add(this.legendGroup) + .add(legendItem.group) } else { var options = legend.options, symbolHeight = legend.symbolHeight, square = options.squareSymbol, symbolWidth = square ? symbolHeight : legend.symbolWidth - item.legendSymbol = this.chart.renderer + + legendItem.symbol = this.chart.renderer .rect( square ? (legend.symbolWidth - symbolHeight) / 2 : 0, legend.baseline - symbolHeight + 1, @@ -60,7 +63,7 @@ function drawLegendSymbolWrap() { .attr({ zIndex: 3, }) - .add(item.legendGroup) + .add(legendItem.group) } } ) diff --git a/yarn.lock b/yarn.lock index 6d7f4cbab..5da995a54 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10517,10 +10517,10 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highcharts@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-10.2.0.tgz#646b1c80fb4add9e35e5813bd87419ccdf1fc6b7" - integrity sha512-MvLo4dzR2Vo7Y85dsqJ07uabBXSSIRKRRdW4l9IGP55h2jYWNm/m9JBszVVxySH5Lda6g+Ins9NdGppZJpjNCA== +highcharts@^10.3.3: + version "10.3.3" + resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-10.3.3.tgz#b8acca24f2d4b1f2f726540734166e59e07b35c4" + integrity sha512-r7wgUPQI9tr3jFDn3XT36qsNwEIZYcfgz4mkKEA6E4nn5p86y+u1EZjazIG4TRkl5/gmGRtkBUiZW81g029RIw== highlight.js@^10.1.1, highlight.js@~10.5.0: version "10.5.0" From 02ed7a0f2a1ce4c8d24dedd2488613a46c84276c Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 3 Apr 2024 11:19:12 +0000 Subject: [PATCH 06/23] chore(release): cut 24.10.5 [skip ci] ## [24.10.5](https://github.com/dhis2/analytics/compare/v24.10.4...v24.10.5) (2024-04-03) ### Bug Fixes * avoid crash in DV with some chart types (DHIS2-15882) [24.x] ([#1651](https://github.com/dhis2/analytics/issues/1651)) ([68907d2](https://github.com/dhis2/analytics/commit/68907d2ef4dc1e200eeaa03c2b092229a68b9a99)), closes [#1582](https://github.com/dhis2/analytics/issues/1582) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c91c6ace1..246346ee2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.5](https://github.com/dhis2/analytics/compare/v24.10.4...v24.10.5) (2024-04-03) + + +### Bug Fixes + +* avoid crash in DV with some chart types (DHIS2-15882) [24.x] ([#1651](https://github.com/dhis2/analytics/issues/1651)) ([68907d2](https://github.com/dhis2/analytics/commit/68907d2ef4dc1e200eeaa03c2b092229a68b9a99)), closes [#1582](https://github.com/dhis2/analytics/issues/1582) + ## [24.10.4](https://github.com/dhis2/analytics/compare/v24.10.3...v24.10.4) (2024-04-02) diff --git a/package.json b/package.json index a98d0d6a2..5dcd314e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.4", + "version": "24.10.5", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From 8fe3a14ec256f6eb2990fffcc092b1eea8911885 Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Fri, 19 Apr 2024 13:54:31 +0200 Subject: [PATCH 07/23] fix(aboutAOUnit): newlines missing in AO description (#1656) Backport of: #1655 Fixes: https://dhis2.atlassian.net/browse/DHIS2-15914 Set white-space to pre-line to preserve newlines --- src/components/AboutAOUnit/AboutAOUnit.js | 1 + src/components/AboutAOUnit/styles/AboutAOUnit.style.js | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/components/AboutAOUnit/AboutAOUnit.js b/src/components/AboutAOUnit/AboutAOUnit.js index 76002a453..0d734efc1 100644 --- a/src/components/AboutAOUnit/AboutAOUnit.js +++ b/src/components/AboutAOUnit/AboutAOUnit.js @@ -193,6 +193,7 @@ const AboutAOUnit = forwardRef(({ type, id, renderId }, ref) => {

diff --git a/src/components/AboutAOUnit/styles/AboutAOUnit.style.js b/src/components/AboutAOUnit/styles/AboutAOUnit.style.js index fdabe3898..f95205a83 100644 --- a/src/components/AboutAOUnit/styles/AboutAOUnit.style.js +++ b/src/components/AboutAOUnit/styles/AboutAOUnit.style.js @@ -48,6 +48,10 @@ export default css` flex-shrink: 0; } + .description { + white-space: pre-line; + } + .noDescription { color: ${colors.grey600}; } From 6e4b817cf7dd88ab93ba7d11cb9940803c1095a9 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Fri, 19 Apr 2024 11:58:05 +0000 Subject: [PATCH 08/23] chore(release): cut 24.10.6 [skip ci] ## [24.10.6](https://github.com/dhis2/analytics/compare/v24.10.5...v24.10.6) (2024-04-19) ### Bug Fixes * **aboutAOUnit:** newlines missing in AO description ([#1656](https://github.com/dhis2/analytics/issues/1656)) ([8fe3a14](https://github.com/dhis2/analytics/commit/8fe3a14ec256f6eb2990fffcc092b1eea8911885)), closes [#1655](https://github.com/dhis2/analytics/issues/1655) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 246346ee2..5b5733bf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.6](https://github.com/dhis2/analytics/compare/v24.10.5...v24.10.6) (2024-04-19) + + +### Bug Fixes + +* **aboutAOUnit:** newlines missing in AO description ([#1656](https://github.com/dhis2/analytics/issues/1656)) ([8fe3a14](https://github.com/dhis2/analytics/commit/8fe3a14ec256f6eb2990fffcc092b1eea8911885)), closes [#1655](https://github.com/dhis2/analytics/issues/1655) + ## [24.10.5](https://github.com/dhis2/analytics/compare/v24.10.4...v24.10.5) (2024-04-03) diff --git a/package.json b/package.json index 5dcd314e8..3d33e06ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.5", + "version": "24.10.6", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From 17d8e12da54def840b9f329ffe93b635342c2d2c Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Mon, 22 Apr 2024 11:48:32 +0200 Subject: [PATCH 09/23] fix(interpretations): plugin flashes when interacting with Interpretations modal (#1653) Part of fix for https://dhis2.atlassian.net/browse/DHIS2-15570 Memoize the filter object to prevent unnecessary refetching/re-rendering. --- .../InterpretationModal/InterpretationModal.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/components/Interpretations/InterpretationModal/InterpretationModal.js b/src/components/Interpretations/InterpretationModal/InterpretationModal.js index 13f6285af..3d29328c6 100644 --- a/src/components/Interpretations/InterpretationModal/InterpretationModal.js +++ b/src/components/Interpretations/InterpretationModal/InterpretationModal.js @@ -14,7 +14,7 @@ import { } from '@dhis2/ui' import cx from 'classnames' import PropTypes from 'prop-types' -import React, { useEffect, useState } from 'react' +import React, { useEffect, useState, useMemo } from 'react' import css from 'styled-jsx/css' import { InterpretationThread } from './InterpretationThread.js' import { useModalContentWidth } from './useModalContentWidth.js' @@ -115,6 +115,12 @@ const InterpretationModal = ({ } }, [interpretationId, refetch]) + const filters = useMemo(() => { + return { + relativePeriodDate: interpretation?.created, + } + }, [interpretation?.created]) + return ( <> {loadingInProgress && ( @@ -162,10 +168,7 @@ const InterpretationModal = ({

From e684e0264d08dedf8415a3a33a5e5eab9b3b0c48 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Mon, 22 Apr 2024 09:52:14 +0000 Subject: [PATCH 10/23] chore(release): cut 24.10.7 [skip ci] ## [24.10.7](https://github.com/dhis2/analytics/compare/v24.10.6...v24.10.7) (2024-04-22) ### Bug Fixes * **interpretations:** plugin flashes when interacting with Interpretations modal ([#1653](https://github.com/dhis2/analytics/issues/1653)) ([17d8e12](https://github.com/dhis2/analytics/commit/17d8e12da54def840b9f329ffe93b635342c2d2c)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b5733bf9..a44d22956 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.7](https://github.com/dhis2/analytics/compare/v24.10.6...v24.10.7) (2024-04-22) + + +### Bug Fixes + +* **interpretations:** plugin flashes when interacting with Interpretations modal ([#1653](https://github.com/dhis2/analytics/issues/1653)) ([17d8e12](https://github.com/dhis2/analytics/commit/17d8e12da54def840b9f329ffe93b635342c2d2c)) + ## [24.10.6](https://github.com/dhis2/analytics/compare/v24.10.5...v24.10.6) (2024-04-19) diff --git a/package.json b/package.json index 3d33e06ea..f432dc1d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.6", + "version": "24.10.7", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From f052741ca0f5eafc93094cf53b9bf89f7c7244c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Henrik=20=C3=98verland?= Date: Thu, 25 Apr 2024 13:54:28 +0200 Subject: [PATCH 11/23] fix: single value size and position issues (DHIS2-15344) (DHIS2-13077) [24.x] (#1646) * fix: single value size and position issues * chore: add console to confirm this file is used --------- Co-authored-by: Jen Jones Arnesen --- .../config/generators/dhis/singleValue.js | 469 ++++++++++++------ 1 file changed, 314 insertions(+), 155 deletions(-) diff --git a/src/visualizations/config/generators/dhis/singleValue.js b/src/visualizations/config/generators/dhis/singleValue.js index 669a046d0..d409310b5 100644 --- a/src/visualizations/config/generators/dhis/singleValue.js +++ b/src/visualizations/config/generators/dhis/singleValue.js @@ -1,4 +1,4 @@ -import { colors, spacers } from '@dhis2/ui' +import { colors } from '@dhis2/ui' import { FONT_STYLE_VISUALIZATION_TITLE, FONT_STYLE_VISUALIZATION_SUBTITLE, @@ -20,27 +20,124 @@ import { const svgNS = 'http://www.w3.org/2000/svg' +// multiply text width with this factor +// to get very close to actual text width +// nb: dependent on viewbox etc +const ACTUAL_TEXT_WIDTH_FACTOR = 0.9 + +// multiply value text size with this factor +// to get very close to the actual number height +// as numbers don't go below the baseline like e.g. "j" and "g" +const ACTUAL_NUMBER_HEIGHT_FACTOR = 0.67 + +// do not allow text width to exceed this threshold +// a threshold >1 does not really make sense but text width vs viewbox is complicated +const TEXT_WIDTH_CONTAINER_WIDTH_FACTOR = 1.3 + +// do not allow text size to exceed this +const TEXT_SIZE_CONTAINER_HEIGHT_FACTOR = 0.6 +const TEXT_SIZE_MAX_THRESHOLD = 400 + +// multiply text size with this factor +// to get an appropriate letter spacing +const LETTER_SPACING_TEXT_SIZE_FACTOR = (1 / 35) * -1 +const LETTER_SPACING_MIN_THRESHOLD = -6 +const LETTER_SPACING_MAX_THRESHOLD = -1 + +// fixed top margin above title/subtitle +const TOP_MARGIN_FIXED = 16 + +// multiply text size with this factor +// to get an appropriate sub text size +const SUB_TEXT_SIZE_FACTOR = 0.5 +const SUB_TEXT_SIZE_MIN_THRESHOLD = 26 +const SUB_TEXT_SIZE_MAX_THRESHOLD = 40 + +// multiply text size with this factor +// to get an appropriate icon padding +const ICON_PADDING_FACTOR = 0.3 + +// Compute text width before rendering +// Not exactly precise but close enough +const getTextWidth = (text, font) => { + const canvas = document.createElement('canvas') + const context = canvas.getContext('2d') + context.font = font + return Math.round( + context.measureText(text).width * ACTUAL_TEXT_WIDTH_FACTOR + ) +} + +const getTextHeightForNumbers = (textSize) => + textSize * ACTUAL_NUMBER_HEIGHT_FACTOR + +const getIconPadding = (textSize) => Math.round(textSize * ICON_PADDING_FACTOR) + +const getTextSize = ( + formattedValue, + containerWidth, + containerHeight, + showIcon +) => { + let size = Math.min( + Math.round(containerHeight * TEXT_SIZE_CONTAINER_HEIGHT_FACTOR), + TEXT_SIZE_MAX_THRESHOLD + ) + + const widthThreshold = Math.round( + containerWidth * TEXT_WIDTH_CONTAINER_WIDTH_FACTOR + ) + + const textWidth = + getTextWidth(formattedValue, `${size}px Roboto`) + + (showIcon ? getIconPadding(size) : 0) + + if (textWidth > widthThreshold) { + size = Math.round(size * (widthThreshold / textWidth)) + } + + return size +} + const generateValueSVG = ({ formattedValue, subText, valueColor, + textColor, + icon, noData, - y, + containerWidth, + containerHeight, + topMargin = 0, }) => { - const textSize = 300 - - const svgValue = document.createElementNS(svgNS, 'svg') - svgValue.setAttribute('xmlns', svgNS) - svgValue.setAttribute( - 'viewBox', - `0 -${textSize + 50} ${textSize * 0.75 * formattedValue.length} ${ - textSize + 200 - }` + console.log('jj SV generateValueSVG', formattedValue, icon, subText) + const showIcon = icon && formattedValue !== noData.text + + const textSize = getTextSize( + formattedValue, + containerWidth, + containerHeight, + showIcon ) - if (y) { - svgValue.setAttribute('y', y) - } + const textWidth = getTextWidth(formattedValue, `${textSize}px Roboto`) + + const iconSize = textSize + + const subTextSize = + textSize * SUB_TEXT_SIZE_FACTOR > SUB_TEXT_SIZE_MAX_THRESHOLD + ? SUB_TEXT_SIZE_MAX_THRESHOLD + : textSize * SUB_TEXT_SIZE_FACTOR < SUB_TEXT_SIZE_MIN_THRESHOLD + ? SUB_TEXT_SIZE_MIN_THRESHOLD + : textSize * SUB_TEXT_SIZE_FACTOR + + const svgValue = document.createElementNS(svgNS, 'svg') + svgValue.setAttribute('viewBox', `0 0 ${containerWidth} ${containerHeight}`) + svgValue.setAttribute('width', '50%') + svgValue.setAttribute('height', '50%') + svgValue.setAttribute('x', '50%') + svgValue.setAttribute('y', '50%') + svgValue.setAttribute('style', 'overflow: visible') let fillColor = colors.grey900 @@ -50,41 +147,70 @@ const generateValueSVG = ({ fillColor = colors.grey600 } + // show icon if configured in maintenance app + if (showIcon) { + // embed icon to allow changing color + // (elements with fill need to use "currentColor" for this to work) + const iconSvgNode = document.createElementNS(svgNS, 'svg') + iconSvgNode.setAttribute('viewBox', '0 0 48 48') + iconSvgNode.setAttribute('width', iconSize) + iconSvgNode.setAttribute('height', iconSize) + iconSvgNode.setAttribute('y', (iconSize / 2 - topMargin / 2) * -1) + iconSvgNode.setAttribute( + 'x', + `-${(iconSize + getIconPadding(textSize) + textWidth) / 2}` + ) + iconSvgNode.setAttribute('style', `color: ${fillColor}`) + + const parser = new DOMParser() + const svgIconDocument = parser.parseFromString(icon, 'image/svg+xml') + + Array.from(svgIconDocument.documentElement.children).forEach((node) => + iconSvgNode.appendChild(node) + ) + + svgValue.appendChild(iconSvgNode) + } + + const letterSpacing = Math.round(textSize * LETTER_SPACING_TEXT_SIZE_FACTOR) + const textNode = document.createElementNS(svgNS, 'text') - textNode.setAttribute('text-anchor', 'middle') textNode.setAttribute('font-size', textSize) textNode.setAttribute('font-weight', '300') - textNode.setAttribute('letter-spacing', '-5') - textNode.setAttribute('x', '50%') + textNode.setAttribute( + 'letter-spacing', + letterSpacing < LETTER_SPACING_MIN_THRESHOLD + ? LETTER_SPACING_MIN_THRESHOLD + : letterSpacing > LETTER_SPACING_MAX_THRESHOLD + ? LETTER_SPACING_MAX_THRESHOLD + : letterSpacing + ) + textNode.setAttribute('text-anchor', 'middle') + textNode.setAttribute( + 'x', + showIcon ? `${(iconSize + getIconPadding(textSize)) / 2}` : 0 + ) + textNode.setAttribute( + 'y', + topMargin / 2 + getTextHeightForNumbers(textSize) / 2 + ) textNode.setAttribute('fill', fillColor) textNode.setAttribute('data-test', 'visualization-primary-value') + textNode.appendChild(document.createTextNode(formattedValue)) svgValue.appendChild(textNode) if (subText) { - const svgSubText = document.createElementNS(svgNS, 'svg') - const subTextSize = 40 - svgSubText.setAttribute( - 'viewBox', - `0 -50 ${textSize * 0.75 * formattedValue.length} ${textSize + 200}` - ) - - if (y) { - svgSubText.setAttribute('y', y) - } - const subTextNode = document.createElementNS(svgNS, 'text') subTextNode.setAttribute('text-anchor', 'middle') subTextNode.setAttribute('font-size', subTextSize) - subTextNode.setAttribute('x', '50%') - subTextNode.setAttribute('x', '50%') - subTextNode.setAttribute('fill', colors.grey600) + subTextNode.setAttribute('y', iconSize / 2 + topMargin / 2) + subTextNode.setAttribute('dy', subTextSize * 1.7) + subTextNode.setAttribute('fill', textColor) subTextNode.appendChild(document.createTextNode(subText)) - svgSubText.appendChild(subTextNode) - - svgValue.appendChild(svgSubText) + svgValue.appendChild(subTextNode) } return svgValue @@ -92,15 +218,41 @@ const generateValueSVG = ({ const generateDashboardItem = ( config, - { valueColor, titleColor, backgroundColor, noData } + { + svgContainer, + width, + height, + valueColor, + titleColor, + backgroundColor, + noData, + icon, + } ) => { + svgContainer.appendChild( + generateValueSVG({ + formattedValue: config.formattedValue, + subText: config.subText, + valueColor, + textColor: titleColor, + noData, + icon, + containerWidth: width, + containerHeight: height, + }) + ) + const container = document.createElement('div') container.setAttribute( 'style', - `display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; background-color:${backgroundColor};` + `display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; padding-top: 8px; ${ + backgroundColor ? `background-color:${backgroundColor};` : '' + }` ) - const titleStyle = `font-size: 12px; color: ${titleColor || '#666'};` + const titleStyle = `padding: 0 8px; text-align: center; font-size: 12px; color: ${ + titleColor || '#666' + };` const title = document.createElement('span') title.setAttribute('style', titleStyle) @@ -112,25 +264,14 @@ const generateDashboardItem = ( if (config.subtitle) { const subtitle = document.createElement('span') - subtitle.setAttribute( - 'style', - titleStyle + ' margin-top: 4px; padding: 0 8px' - ) + subtitle.setAttribute('style', titleStyle + ' margin-top: 4px;') subtitle.appendChild(document.createTextNode(config.subtitle)) container.appendChild(subtitle) } - container.appendChild( - generateValueSVG({ - formattedValue: config.formattedValue, - subText: config.subText, - valueColor, - noData, - y: 40, - }) - ) + container.appendChild(svgContainer) return container } @@ -161,153 +302,149 @@ const getXFromTextAlign = (textAlign) => { const generateDVItem = ( config, - { valueColor, backgroundColor, titleColor, parentEl, fontStyle, noData } + { + svgContainer, + width, + height, + valueColor, + noData, + backgroundColor, + titleColor, + fontStyle, + icon, + } ) => { - const parentElBBox = parentEl.getBoundingClientRect() - - const width = parentElBBox.width - const height = parentElBBox.height - - const svgNS = 'http://www.w3.org/2000/svg' - - const svg = document.createElementNS(svgNS, 'svg') - svg.setAttribute('xmlns', svgNS) - svg.setAttribute('viewBox', `0 0 ${width} ${height}`) - svg.setAttribute('width', width) - svg.setAttribute('height', height) - svg.setAttribute('data-test', 'visualization-container') - if (backgroundColor) { - svg.setAttribute('style', `background-color: ${backgroundColor};`) + svgContainer.setAttribute( + 'style', + `background-color: ${backgroundColor};` + ) const background = document.createElementNS(svgNS, 'rect') background.setAttribute('width', '100%') background.setAttribute('height', '100%') background.setAttribute('fill', backgroundColor) - svg.appendChild(background) + svgContainer.appendChild(background) } + const svgWrapper = document.createElementNS(svgNS, 'svg') + + // title const title = document.createElementNS(svgNS, 'text') + const titleFontStyle = mergeFontStyleWithDefault( fontStyle && fontStyle[FONT_STYLE_VISUALIZATION_TITLE], FONT_STYLE_VISUALIZATION_TITLE ) - title.setAttribute( - 'x', - getXFromTextAlign(titleFontStyle[FONT_STYLE_OPTION_TEXT_ALIGN]) - ) - title.setAttribute('y', 28) - title.setAttribute( - 'text-anchor', - getTextAnchorFromTextAlign(titleFontStyle[FONT_STYLE_OPTION_TEXT_ALIGN]) - ) - title.setAttribute( - 'font-size', - `${titleFontStyle[FONT_STYLE_OPTION_FONT_SIZE]}px` - ) - title.setAttribute( - 'font-weight', - titleFontStyle[FONT_STYLE_OPTION_BOLD] + + const titleYPosition = + TOP_MARGIN_FIXED + + parseInt(titleFontStyle[FONT_STYLE_OPTION_FONT_SIZE]) + + 'px' + + const titleAttributes = { + x: getXFromTextAlign(titleFontStyle[FONT_STYLE_OPTION_TEXT_ALIGN]), + y: titleYPosition, + 'text-anchor': getTextAnchorFromTextAlign( + titleFontStyle[FONT_STYLE_OPTION_TEXT_ALIGN] + ), + 'font-size': `${titleFontStyle[FONT_STYLE_OPTION_FONT_SIZE]}px`, + 'font-weight': titleFontStyle[FONT_STYLE_OPTION_BOLD] ? FONT_STYLE_OPTION_BOLD - : 'normal' - ) - title.setAttribute( - 'font-style', - titleFontStyle[FONT_STYLE_OPTION_ITALIC] + : 'normal', + 'font-style': titleFontStyle[FONT_STYLE_OPTION_ITALIC] ? FONT_STYLE_OPTION_ITALIC - : 'normal' - ) - if ( - titleColor && - titleFontStyle[FONT_STYLE_OPTION_TEXT_COLOR] === - defaultFontStyle[FONT_STYLE_VISUALIZATION_TITLE][ - FONT_STYLE_OPTION_TEXT_COLOR - ] - ) { - title.setAttribute('fill', titleColor) - } else { - title.setAttribute('fill', titleFontStyle[FONT_STYLE_OPTION_TEXT_COLOR]) + : 'normal', + 'data-test': 'visualization-title', + fill: + titleColor && + titleFontStyle[FONT_STYLE_OPTION_TEXT_COLOR] === + defaultFontStyle[FONT_STYLE_VISUALIZATION_TITLE][ + FONT_STYLE_OPTION_TEXT_COLOR + ] + ? titleColor + : titleFontStyle[FONT_STYLE_OPTION_TEXT_COLOR], } - title.setAttribute('data-test', 'visualization-title') + Object.entries(titleAttributes).forEach(([key, value]) => + title.setAttribute(key, value) + ) if (config.title) { title.appendChild(document.createTextNode(config.title)) - - svg.appendChild(title) + svgWrapper.appendChild(title) } + // subtitle + const subtitle = document.createElementNS(svgNS, 'text') + const subtitleFontStyle = mergeFontStyleWithDefault( fontStyle && fontStyle[FONT_STYLE_VISUALIZATION_SUBTITLE], FONT_STYLE_VISUALIZATION_SUBTITLE ) - const subtitle = document.createElementNS(svgNS, 'text') - subtitle.setAttribute( - 'x', - getXFromTextAlign(subtitleFontStyle[FONT_STYLE_OPTION_TEXT_ALIGN]) - ) - subtitle.setAttribute('y', 28) - subtitle.setAttribute('dy', 22) - subtitle.setAttribute( - 'text-anchor', - getTextAnchorFromTextAlign( + + const subtitleAttributes = { + x: getXFromTextAlign(subtitleFontStyle[FONT_STYLE_OPTION_TEXT_ALIGN]), + y: titleYPosition, + dy: `${subtitleFontStyle[FONT_STYLE_OPTION_FONT_SIZE] + 10}`, + 'text-anchor': getTextAnchorFromTextAlign( subtitleFontStyle[FONT_STYLE_OPTION_TEXT_ALIGN] - ) - ) - subtitle.setAttribute( - 'font-size', - `${subtitleFontStyle[FONT_STYLE_OPTION_FONT_SIZE]}px` - ) - subtitle.setAttribute( - 'font-weight', - subtitleFontStyle[FONT_STYLE_OPTION_BOLD] + ), + 'font-size': `${subtitleFontStyle[FONT_STYLE_OPTION_FONT_SIZE]}px`, + 'font-weight': subtitleFontStyle[FONT_STYLE_OPTION_BOLD] ? FONT_STYLE_OPTION_BOLD - : 'normal' - ) - subtitle.setAttribute( - 'font-style', - subtitleFontStyle[FONT_STYLE_OPTION_ITALIC] + : 'normal', + 'font-style': subtitleFontStyle[FONT_STYLE_OPTION_ITALIC] ? FONT_STYLE_OPTION_ITALIC - : 'normal' - ) - - if ( - titleColor && - subtitleFontStyle[FONT_STYLE_OPTION_TEXT_COLOR] === - defaultFontStyle[FONT_STYLE_VISUALIZATION_SUBTITLE][ - FONT_STYLE_OPTION_TEXT_COLOR - ] - ) { - subtitle.setAttribute('fill', titleColor) - } else { - subtitle.setAttribute( - 'fill', - subtitleFontStyle[FONT_STYLE_OPTION_TEXT_COLOR] - ) + : 'normal', + fill: + titleColor && + subtitleFontStyle[FONT_STYLE_OPTION_TEXT_COLOR] === + defaultFontStyle[FONT_STYLE_VISUALIZATION_SUBTITLE][ + FONT_STYLE_OPTION_TEXT_COLOR + ] + ? titleColor + : subtitleFontStyle[FONT_STYLE_OPTION_TEXT_COLOR], + 'data-test': 'visualization-subtitle', } - subtitle.setAttribute('data-test', 'visualization-subtitle') + Object.entries(subtitleAttributes).forEach(([key, value]) => + subtitle.setAttribute(key, value) + ) if (config.subtitle) { subtitle.appendChild(document.createTextNode(config.subtitle)) - - svg.appendChild(subtitle) + svgWrapper.appendChild(subtitle) } - svg.appendChild( + svgContainer.appendChild(svgWrapper) + + svgContainer.appendChild( generateValueSVG({ formattedValue: config.formattedValue, subText: config.subText, valueColor, + textColor: titleColor, noData, - y: 20, + icon, + containerWidth: width, + containerHeight: height, + topMargin: + TOP_MARGIN_FIXED + + ((config.title + ? parseInt(title.getAttribute('font-size')) + : 0) + + (config.subtitle + ? parseInt(subtitle.getAttribute('font-size')) + : 0)) * + 2.5, }) ) - return svg + return svgContainer } -const shouldUseContrastColor = (inputColor) => { +const shouldUseContrastColor = (inputColor = '') => { // based on https://stackoverflow.com/questions/3942878/how-to-decide-font-color-in-white-or-black-depending-on-background-color var color = inputColor.charAt(0) === '#' ? inputColor.substring(1, 7) : inputColor @@ -328,7 +465,7 @@ const shouldUseContrastColor = (inputColor) => { export default function ( config, parentEl, - { dashboard, legendSets, fontStyle, noData, legendOptions } + { dashboard, legendSets, fontStyle, noData, legendOptions, icon } ) { const legendSet = legendOptions && legendSets[0] const legendColor = @@ -348,25 +485,47 @@ export default function ( parentEl.style.display = 'flex' parentEl.style.justifyContent = 'center' + const parentElBBox = parentEl.getBoundingClientRect() + const width = parentElBBox.width + const height = parentElBBox.height + + const svgContainer = document.createElementNS(svgNS, 'svg') + svgContainer.setAttribute('xmlns', svgNS) + svgContainer.setAttribute('viewBox', `0 0 ${width} ${height}`) + svgContainer.setAttribute('width', dashboard ? '100%' : width) + svgContainer.setAttribute('height', dashboard ? '100%' : height) + svgContainer.setAttribute('data-test', 'visualization-container') + if (dashboard) { - parentEl.style.borderRadius = spacers.dp8 + parentEl.style.borderRadius = '3px' + return generateDashboardItem(config, { + svgContainer, + width, + height, valueColor, backgroundColor, noData, - ...(shouldUseContrastColor(legendColor) + icon, + ...(legendOptions.style === LEGEND_DISPLAY_STYLE_FILL && + legendColor && + shouldUseContrastColor(legendColor) ? { titleColor: colors.white } : {}), }) } else { parentEl.style.height = `100%` + return generateDVItem(config, { + svgContainer, + width, + height, valueColor, backgroundColor, titleColor, - parentEl, - fontStyle, noData, + icon, + fontStyle, }) } } From 9ab97a04b0f5209bc0434511968d4a182ab3d190 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 25 Apr 2024 11:57:57 +0000 Subject: [PATCH 12/23] chore(release): cut 24.10.8 [skip ci] ## [24.10.8](https://github.com/dhis2/analytics/compare/v24.10.7...v24.10.8) (2024-04-25) ### Bug Fixes * single value size and position issues (DHIS2-15344) (DHIS2-13077) [24.x] ([#1646](https://github.com/dhis2/analytics/issues/1646)) ([f052741](https://github.com/dhis2/analytics/commit/f052741ca0f5eafc93094cf53b9bf89f7c7244c3)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a44d22956..0ca2ce456 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.8](https://github.com/dhis2/analytics/compare/v24.10.7...v24.10.8) (2024-04-25) + + +### Bug Fixes + +* single value size and position issues (DHIS2-15344) (DHIS2-13077) [24.x] ([#1646](https://github.com/dhis2/analytics/issues/1646)) ([f052741](https://github.com/dhis2/analytics/commit/f052741ca0f5eafc93094cf53b9bf89f7c7244c3)) + ## [24.10.7](https://github.com/dhis2/analytics/compare/v24.10.6...v24.10.7) (2024-04-22) diff --git a/package.json b/package.json index f432dc1d1..3bb839017 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.7", + "version": "24.10.8", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From 7fc532122d7bd0f12b2dba1ce005fd7490d47137 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 4 Jun 2024 12:41:50 +0300 Subject: [PATCH 13/23] fix: numbers are misaligned in pivot table (DHIS2-16900) (#1671) --- src/components/PivotTable/styles/PivotTable.style.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/components/PivotTable/styles/PivotTable.style.js b/src/components/PivotTable/styles/PivotTable.style.js index 23cfab64b..6a030f60e 100644 --- a/src/components/PivotTable/styles/PivotTable.style.js +++ b/src/components/PivotTable/styles/PivotTable.style.js @@ -127,11 +127,17 @@ export const cell = css` } .value { background-color: #ffffff; - } - .TEXT { text-align: left; } - .NUMBER { + .NUMBER, + .INTEGER, + .INTEGER_POSITIVE, + .INTEGER_NEGATIVE, + .INTEGER_ZERO_OR_POSITIVE, + .UNIT_INTERVAL, + .PERCENTAGE, + .BOOLEAN, + .TRUE_ONLY { text-align: right; } .clickable { From 9aaef580030e2f00b1f703d1b4a67a24008a7ddd Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 4 Jun 2024 09:45:27 +0000 Subject: [PATCH 14/23] chore(release): cut 24.10.9 [skip ci] ## [24.10.9](https://github.com/dhis2/analytics/compare/v24.10.8...v24.10.9) (2024-06-04) ### Bug Fixes * numbers are misaligned in pivot table (DHIS2-16900) ([#1671](https://github.com/dhis2/analytics/issues/1671)) ([7fc5321](https://github.com/dhis2/analytics/commit/7fc532122d7bd0f12b2dba1ce005fd7490d47137)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ca2ce456..538fa0629 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.9](https://github.com/dhis2/analytics/compare/v24.10.8...v24.10.9) (2024-06-04) + + +### Bug Fixes + +* numbers are misaligned in pivot table (DHIS2-16900) ([#1671](https://github.com/dhis2/analytics/issues/1671)) ([7fc5321](https://github.com/dhis2/analytics/commit/7fc532122d7bd0f12b2dba1ce005fd7490d47137)) + ## [24.10.8](https://github.com/dhis2/analytics/compare/v24.10.7...v24.10.8) (2024-04-25) diff --git a/package.json b/package.json index 3bb839017..1a962a626 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.8", + "version": "24.10.9", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From 9fab20c9bb80edad61b2cf6da8c9d9f5a6fb3afe Mon Sep 17 00:00:00 2001 From: Jen Jones Arnesen Date: Wed, 12 Jun 2024 08:59:37 +0200 Subject: [PATCH 15/23] chore: new github workflow that copies build of all non-prod branches to d2-ci [24.x] (#1678) Part of implementation for https://dhis2.atlassian.net/browse/DHIS2-17300 Every branch that is not listed as one of the prod branches (from node-publish.yml) will now have it's build pushed to d2-ci for every pushed commit. We can then use these builds during development and testing. Changes to README *remove build badges for versions that are no longer supported *add docs about how to use the build New gh workflow file After building the lib, use yarn pack to create the correct structure of the packaged lib. Then unzip the result and push that to d2-ci, which can then be installed by the consuming apps. --- .github/workflows/copy-build-to-d2-ci.yml | 45 +++++++++++++++++++++ README.md | 48 ++++++++++++++--------- 2 files changed, 74 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/copy-build-to-d2-ci.yml diff --git a/.github/workflows/copy-build-to-d2-ci.yml b/.github/workflows/copy-build-to-d2-ci.yml new file mode 100644 index 000000000..a0b1d2366 --- /dev/null +++ b/.github/workflows/copy-build-to-d2-ci.yml @@ -0,0 +1,45 @@ +name: Copy build to d2-ci + +on: + push: + branches-ignore: + - master + - next + - next-major + - alpha + - beta + - '[0-9]+.x' + - '[0-9]+.x.x' + - '[0-9]+.[0-9]+.x' + +env: + GH_TOKEN: ${{secrets.DHIS2_BOT_GITHUB_TOKEN}} + +jobs: + copy-to-d2-ci: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + token: ${{env.GH_TOKEN}} + + - name: Set up Node.js + uses: actions/setup-node@v1 + with: + node-version: 12.x + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Build package + run: yarn build + + - name: Pack and unpack the build to a directory named 'package' + run: yarn pack --filename output.tgz && tar -xzf output.tgz + + - name: Copy package to d2-ci + uses: dhis2/deploy-build@master + with: + build-dir: package + github-token: ${{env.GH_TOKEN}} diff --git a/README.md b/README.md index 765527a1a..e39d92a55 100644 --- a/README.md +++ b/README.md @@ -3,23 +3,8 @@ **master** [![Test](https://github.com/dhis2/analytics/actions/workflows/node-test.yml/badge.svg)](https://github.com/dhis2/analytics/actions/workflows/node-test.yml) [![DHIS2: Release](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml/badge.svg)](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml) -**21.x** -[![Test](https://github.com/dhis2/analytics/actions/workflows/node-test.yml/badge.svg?branch=21.x)](https://github.com/dhis2/analytics/actions/workflows/node-test.yml) [![DHIS2: Release](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml/badge.svg?branch=21.x)](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml) - -**20.x** -[![Test](https://github.com/dhis2/analytics/actions/workflows/node-test.yml/badge.svg?branch=20.x)](https://github.com/dhis2/analytics/actions/workflows/node-test.yml) [![DHIS2: Release](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml/badge.svg?branch=20.x)](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml) - -**16.x** -[![Test](https://github.com/dhis2/analytics/actions/workflows/node-test.yml/badge.svg?branch=16.x)](https://github.com/dhis2/analytics/actions/workflows/node-test.yml) [![DHIS2: Release](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml/badge.svg?branch=16.x)](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml) - -**11.0.x** -[![Test](https://github.com/dhis2/analytics/actions/workflows/node-test.yml/badge.svg?branch=11.0.x)](https://github.com/dhis2/analytics/actions/workflows/node-test.yml) [![DHIS2: Release](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml/badge.svg?branch=11.0.x)](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml) - -**4.x** -[![Test](https://github.com/dhis2/analytics/actions/workflows/node-test.yml/badge.svg?branch=4.x)](https://github.com/dhis2/analytics/actions/workflows/node-test.yml) [![DHIS2: Release](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml/badge.svg?branch=4.x)](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml) - -**2.4.x** -[![Test](https://github.com/dhis2/analytics/actions/workflows/node-test.yml/badge.svg?branch=2.4.x)](https://github.com/dhis2/analytics/actions/workflows/node-test.yml) [![DHIS2: Release](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml/badge.svg?branch=2.4.x)](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml) +**24.x** +[![Test](https://github.com/dhis2/analytics/actions/workflows/node-test.yml/badge.svg?branch=24.x)](https://github.com/dhis2/analytics/actions/workflows/node-test.yml) [![DHIS2: Release](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml/badge.svg?branch=24.x)](https://github.com/dhis2/analytics/actions/workflows/node-publish.yml) ## Overview @@ -28,6 +13,7 @@ The analytics library contains components and modules that are used in DHIS 2 an - [dhis2/dashboards-app](https://github.com/dhis2/dashboards-app) - [dhis2/data-visualizer-app](https://github.com/dhis2/data-visualizer-app) - [dhis2/maps-app](https://github.com/dhis2/maps-app) +- [dhis2/line-listing-app](https://github.com/dhis2/line-listing-app) [Module layout documentation](./docs/module-layout.md) @@ -35,7 +21,7 @@ The analytics library contains components and modules that are used in DHIS 2 an The analytics package is published to npm as @dhis2/analytics. -To publish, simply mark the commit using [semantic release terminology](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines) (see notes below for branch-specific restrictions). Once committed, github actions will take care of publishing the new version to npm. +To publish, mark the commit using [semantic release terminology](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines) (see notes below for branch-specific restrictions). Once committed, github actions will take care of publishing the new version to npm. ### master branch @@ -43,7 +29,31 @@ The master branch follows semantic versioning according to spec. ### .x branches -Commits to .x branches (e.g. 16.x) cannot trigger a major version bump, even if it is technically a breaking change. This is because the next version has already been published. Additionally, branches that use .x for the patch version (e.g. 11.0.x, 2.4.x), cannot trigger a minor version bump. In the unlikely case that you need to commit a change that would trigger a version bump that's not possible, you will have to mark it to only trigger a patch or minor bump respectively, then make sure to update the apps that are locked to the .x version of analytics +Commits to .x branches (e.g. 24.x) cannot trigger a major version bump, even if it is technically a breaking change. This is because the next version has already been published. Additionally, branches that use .x for the patch version (e.g. 11.0.x, 2.4.x), cannot trigger a minor version bump. In the unlikely case that you need to commit a change that would trigger a version bump that's not possible, you will have to mark it to only trigger a patch or minor bump respectively, then make sure to update the apps that are locked to the .x version of analytics + +## Publishing pre-release versions during app development + +Builds for all non-production branches are automatically copied to [d2-ci/analytics](https://github.com/d2-ci/analytics) for use during development and testing, prior to production release. + +To test changes in a development branch, change the analytics dependency of package.json of the app you are testing with. There are a few options: + +1. point to a specific commit: + +``` +"dependencies": { + "@dhis2/analytics": "git+https://github.com/d2-ci/analytics.git#70249ebe8be39051fa10142f850de449e1ec488c", + ... +} +``` + +2. point to a branch: + +``` +"dependencies": { + "@dhis2/analytics": "git+https://github.com/d2-ci/analytics.git#chore/some-chore", + ... +} +``` ## Report an issue From f1f47ac431d4234113ce1910d9f3a5610399734e Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 12 Jun 2024 15:28:39 +0300 Subject: [PATCH 16/23] fix: separator for hundreds, thousands and millions is missing in the Pie charts (DHIS2-16172) 24.x (#1679) --- src/modules/renderValue.js | 11 ++-- .../series/__tests__/pie.spec.js | 66 +++++++++++++++++++ .../adapters/dhis_highcharts/series/pie.js | 27 +++++--- 3 files changed, 89 insertions(+), 15 deletions(-) create mode 100644 src/visualizations/config/adapters/dhis_highcharts/series/__tests__/pie.spec.js diff --git a/src/modules/renderValue.js b/src/modules/renderValue.js index 17e288043..a65d8a6d8 100644 --- a/src/modules/renderValue.js +++ b/src/modules/renderValue.js @@ -6,9 +6,7 @@ import { isNumericValueType } from './valueTypes.js' const trimTrailingZeros = (stringValue) => stringValue.replace(/\.?0+$/, '') -const decimalSeparator = '.' - -const separateDigitGroups = (stringValue, decimalSeparator) => { +export const separateDigitGroups = (stringValue, decimalSeparator = '.') => { const isNegative = stringValue[0] === '-' const [integer, remainder] = stringValue.replace(/^-/, '').split('.') @@ -68,9 +66,8 @@ export const renderValue = (value, valueType, visualization) => { ) return ( - separateDigitGroups(stringValue, decimalSeparator).join( - getSeparator(visualization) - ) + '%' + separateDigitGroups(stringValue).join(getSeparator(visualization)) + + '%' ) } else { const stringValue = toFixedPrecisionString( @@ -78,7 +75,7 @@ export const renderValue = (value, valueType, visualization) => { visualization.skipRounding ) - return separateDigitGroups(stringValue, decimalSeparator).join( + return separateDigitGroups(stringValue).join( getSeparator(visualization) ) } diff --git a/src/visualizations/config/adapters/dhis_highcharts/series/__tests__/pie.spec.js b/src/visualizations/config/adapters/dhis_highcharts/series/__tests__/pie.spec.js new file mode 100644 index 000000000..eb9abac19 --- /dev/null +++ b/src/visualizations/config/adapters/dhis_highcharts/series/__tests__/pie.spec.js @@ -0,0 +1,66 @@ +import { formatDataLabel } from '../pie.js' + +describe('formatDataLabel', () => { + it('should format data label correctly with integers', () => { + const result = formatDataLabel('Test', 1000, 50) + expect(result).toEqual( + 'Test
1 000 (50%)' + ) + }) + + it('should format data label correctly with decimals', () => { + const result = formatDataLabel('Test', 1000.123456789, 50.1234) + expect(result).toEqual( + 'Test
1 000.123456789 (50.1%)' + ) + }) + + it('should handle large numbers correctly', () => { + const result = formatDataLabel('Test', 1000000, 75.5678) + expect(result).toEqual( + 'Test
1 000 000 (75.6%)' + ) + }) + + it('should handle small percentages correctly', () => { + const result = formatDataLabel('Test', 1000.000001, 0.09) + expect(result).toEqual( + 'Test
1 000.000001 (0.1%)' + ) + }) + + it('should handle zero correctly', () => { + const result = formatDataLabel('Test', 0, 0) + expect(result).toEqual( + 'Test
0 (0%)' + ) + }) + + it('should handle negative numbers correctly', () => { + const result = formatDataLabel('Test', -1000, -50) + expect(result).toEqual( + 'Test
-1 000 (-50%)' + ) + }) + + it('should handle empty string as name correctly', () => { + const result = formatDataLabel('', 1000, 50) + expect(result).toEqual( + '
1 000 (50%)' + ) + }) + + it('should handle undefined as name correctly', () => { + const result = formatDataLabel(undefined, 1000, 50) + expect(result).toEqual( + '
1 000 (50%)' + ) + }) + + it('should handle special characters in name correctly', () => { + const result = formatDataLabel('Test&Test', 1000, 50) + expect(result).toEqual( + 'Test&Test
1 000 (50%)' + ) + }) +}) diff --git a/src/visualizations/config/adapters/dhis_highcharts/series/pie.js b/src/visualizations/config/adapters/dhis_highcharts/series/pie.js index 67a4e772d..b5afb2c49 100644 --- a/src/visualizations/config/adapters/dhis_highcharts/series/pie.js +++ b/src/visualizations/config/adapters/dhis_highcharts/series/pie.js @@ -1,3 +1,18 @@ +import { separateDigitGroups } from '../../../../../modules/renderValue.js' + +export const formatDataLabel = (name = '', y, percentage) => { + const value = separateDigitGroups(y.toString()).join(' ') + return ( + '' + + name + + '
' + + value + + ' (' + + parseFloat(percentage.toFixed(1)) + + '%)' + ) +} + export default function (series, colors) { return [ { @@ -9,14 +24,10 @@ export default function (series, colors) { dataLabels: { enabled: true, formatter: function () { - return ( - '' + - this.point.name + - '
' + - this.y + - ' (' + - this.percentage.toFixed(1) + - ' %)' + return formatDataLabel( + this.point.name, + this.y, + this.percentage ) }, }, From 7e895455c31f031488d425afb7945a938c3b1e93 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Wed, 12 Jun 2024 12:32:13 +0000 Subject: [PATCH 17/23] chore(release): cut 24.10.10 [skip ci] ## [24.10.10](https://github.com/dhis2/analytics/compare/v24.10.9...v24.10.10) (2024-06-12) ### Bug Fixes * separator for hundreds, thousands and millions is missing in the Pie charts (DHIS2-16172) 24.x ([#1679](https://github.com/dhis2/analytics/issues/1679)) ([f1f47ac](https://github.com/dhis2/analytics/commit/f1f47ac431d4234113ce1910d9f3a5610399734e)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 538fa0629..a59e39646 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.10](https://github.com/dhis2/analytics/compare/v24.10.9...v24.10.10) (2024-06-12) + + +### Bug Fixes + +* separator for hundreds, thousands and millions is missing in the Pie charts (DHIS2-16172) 24.x ([#1679](https://github.com/dhis2/analytics/issues/1679)) ([f1f47ac](https://github.com/dhis2/analytics/commit/f1f47ac431d4234113ce1910d9f3a5610399734e)) + ## [24.10.9](https://github.com/dhis2/analytics/compare/v24.10.8...v24.10.9) (2024-06-04) diff --git a/package.json b/package.json index 1a962a626..d798e9e93 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.9", + "version": "24.10.10", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From f7c8f1671910743e3644d040ac0bb4358074b78f Mon Sep 17 00:00:00 2001 From: Hendrik de Graaf Date: Thu, 20 Jun 2024 12:50:45 +0200 Subject: [PATCH 18/23] fix(pivot-table): use a scoped base selector and global sub selectors (#1684) --- .../PivotTable/styles/PivotTable.style.js | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/components/PivotTable/styles/PivotTable.style.js b/src/components/PivotTable/styles/PivotTable.style.js index 6a030f60e..1390163e5 100644 --- a/src/components/PivotTable/styles/PivotTable.style.js +++ b/src/components/PivotTable/styles/PivotTable.style.js @@ -10,14 +10,14 @@ import { FONT_SIZE_LARGE, } from '../../../modules/pivotTable/pivotTableConstants.js' -export const table = css.global` +export const table = css` div.pivot-table-container { font-family: 'Roboto', Arial, sans-serif; overflow: auto; color: ${colors.grey900}; } - table { + div.pivot-table-container :global(table) { border-spacing: 0; white-space: nowrap; box-sizing: border-box; @@ -26,35 +26,37 @@ export const table = css.global` border-width: 1px 1px 0 0; } - table.fixed-headers { + div.pivot-table-container :global(table.fixed-headers) { border-width: 0 0 0 1px; } - table.fixed-headers tr th, - table.fixed-headers tr td { + div.pivot-table-container :global(table.fixed-headers tr th), + div.pivot-table-container :global(table.fixed-headers tr td) { border-width: 0 1px 1px 0; } - table.fixed-column-headers { + div.pivot-table-container :global(table.fixed-column-headers) { border-width: 0 1px 0 0; } - table.fixed-column-headers tr th, - table.fixed-column-headers tr td { + div.pivot-table-container :global(table.fixed-column-headers tr th), + div.pivot-table-container :global(table.fixed-column-headers tr td) { border-width: 0 0 1px 1px; } - table.fixed-headers thead tr:first-of-type th, - table.fixed-column-headers thead tr:first-of-type th { + div.pivot-table-container + :global(table.fixed-headers thead tr:first-of-type th), + div.pivot-table-container + :global(table.fixed-column-headers thead tr:first-of-type th) { border-top: 1px solid ${BORDER_COLOR}; } - table.fixed-row-headers { + div.pivot-table-container :global(table.fixed-row-headers) { border-width: 0 0 1px 1px; } - table.fixed-row-headers tr th, - table.fixed-row-headers tr td { + div.pivot-table-container :global(table.fixed-row-headers tr th), + div.pivot-table-container :global(table.fixed-row-headers tr td) { border-width: 1px 1px 0 0; } ` From 185295658f7ec13d95f12d13f4db6f41b360ee8c Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 20 Jun 2024 10:54:26 +0000 Subject: [PATCH 19/23] chore(release): cut 24.10.11 [skip ci] ## [24.10.11](https://github.com/dhis2/analytics/compare/v24.10.10...v24.10.11) (2024-06-20) ### Bug Fixes * **pivot-table:** use a scoped base selector and global sub selectors ([#1684](https://github.com/dhis2/analytics/issues/1684)) ([f7c8f16](https://github.com/dhis2/analytics/commit/f7c8f1671910743e3644d040ac0bb4358074b78f)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a59e39646..cbc1fa781 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.11](https://github.com/dhis2/analytics/compare/v24.10.10...v24.10.11) (2024-06-20) + + +### Bug Fixes + +* **pivot-table:** use a scoped base selector and global sub selectors ([#1684](https://github.com/dhis2/analytics/issues/1684)) ([f7c8f16](https://github.com/dhis2/analytics/commit/f7c8f1671910743e3644d040ac0bb4358074b78f)) + ## [24.10.10](https://github.com/dhis2/analytics/compare/v24.10.9...v24.10.10) (2024-06-12) diff --git a/package.json b/package.json index d798e9e93..b598c0269 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.10", + "version": "24.10.11", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From 65053e2dd099799f5f4d10179784ebfcf0d0bbe3 Mon Sep 17 00:00:00 2001 From: Edoardo Sabadelli Date: Tue, 25 Jun 2024 15:17:39 +0200 Subject: [PATCH 20/23] fix: update multicalendar dep for translations (DHIS2-16904) (#1686) --- package.json | 2 +- .../__snapshots__/fixedPeriods.spec.js.snap | 1602 +++++++++++++++++ yarn.lock | 27 +- 3 files changed, 1620 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index b598c0269..364099137 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ }, "dependencies": { "@dhis2/d2-ui-rich-text": "^7.4.0", - "@dhis2/multi-calendar-dates": "1.0.0", + "@dhis2/multi-calendar-dates": "^1.2.2", "classnames": "^2.3.1", "d2-utilizr": "^0.2.16", "d3-color": "^1.2.3", diff --git a/src/components/PeriodDimension/__tests__/__snapshots__/fixedPeriods.spec.js.snap b/src/components/PeriodDimension/__tests__/__snapshots__/fixedPeriods.spec.js.snap index be670cf0c..69aaa2343 100644 --- a/src/components/PeriodDimension/__tests__/__snapshots__/fixedPeriods.spec.js.snap +++ b/src/components/PeriodDimension/__tests__/__snapshots__/fixedPeriods.spec.js.snap @@ -6,185 +6,237 @@ Object { "name": "Bi-weekly", "options": Array [ Object { + "displayName": "Bi-Week 1 - 2013-12-30 - 2014-01-12", "endDate": "2014-01-12", "id": "2014BiW1", "iso": "2014BiW1", "name": "Bi-Week 1 - 2013-12-30 - 2014-01-12", + "periodType": "BIWEEKLY", "startDate": "2013-12-30", }, Object { + "displayName": "Bi-Week 2 - 2014-01-13 - 2014-01-26", "endDate": "2014-01-26", "id": "2014BiW2", "iso": "2014BiW2", "name": "Bi-Week 2 - 2014-01-13 - 2014-01-26", + "periodType": "BIWEEKLY", "startDate": "2014-01-13", }, Object { + "displayName": "Bi-Week 3 - 2014-01-27 - 2014-02-09", "endDate": "2014-02-09", "id": "2014BiW3", "iso": "2014BiW3", "name": "Bi-Week 3 - 2014-01-27 - 2014-02-09", + "periodType": "BIWEEKLY", "startDate": "2014-01-27", }, Object { + "displayName": "Bi-Week 4 - 2014-02-10 - 2014-02-23", "endDate": "2014-02-23", "id": "2014BiW4", "iso": "2014BiW4", "name": "Bi-Week 4 - 2014-02-10 - 2014-02-23", + "periodType": "BIWEEKLY", "startDate": "2014-02-10", }, Object { + "displayName": "Bi-Week 5 - 2014-02-24 - 2014-03-09", "endDate": "2014-03-09", "id": "2014BiW5", "iso": "2014BiW5", "name": "Bi-Week 5 - 2014-02-24 - 2014-03-09", + "periodType": "BIWEEKLY", "startDate": "2014-02-24", }, Object { + "displayName": "Bi-Week 6 - 2014-03-10 - 2014-03-23", "endDate": "2014-03-23", "id": "2014BiW6", "iso": "2014BiW6", "name": "Bi-Week 6 - 2014-03-10 - 2014-03-23", + "periodType": "BIWEEKLY", "startDate": "2014-03-10", }, Object { + "displayName": "Bi-Week 7 - 2014-03-24 - 2014-04-06", "endDate": "2014-04-06", "id": "2014BiW7", "iso": "2014BiW7", "name": "Bi-Week 7 - 2014-03-24 - 2014-04-06", + "periodType": "BIWEEKLY", "startDate": "2014-03-24", }, Object { + "displayName": "Bi-Week 8 - 2014-04-07 - 2014-04-20", "endDate": "2014-04-20", "id": "2014BiW8", "iso": "2014BiW8", "name": "Bi-Week 8 - 2014-04-07 - 2014-04-20", + "periodType": "BIWEEKLY", "startDate": "2014-04-07", }, Object { + "displayName": "Bi-Week 9 - 2014-04-21 - 2014-05-04", "endDate": "2014-05-04", "id": "2014BiW9", "iso": "2014BiW9", "name": "Bi-Week 9 - 2014-04-21 - 2014-05-04", + "periodType": "BIWEEKLY", "startDate": "2014-04-21", }, Object { + "displayName": "Bi-Week 10 - 2014-05-05 - 2014-05-18", "endDate": "2014-05-18", "id": "2014BiW10", "iso": "2014BiW10", "name": "Bi-Week 10 - 2014-05-05 - 2014-05-18", + "periodType": "BIWEEKLY", "startDate": "2014-05-05", }, Object { + "displayName": "Bi-Week 11 - 2014-05-19 - 2014-06-01", "endDate": "2014-06-01", "id": "2014BiW11", "iso": "2014BiW11", "name": "Bi-Week 11 - 2014-05-19 - 2014-06-01", + "periodType": "BIWEEKLY", "startDate": "2014-05-19", }, Object { + "displayName": "Bi-Week 12 - 2014-06-02 - 2014-06-15", "endDate": "2014-06-15", "id": "2014BiW12", "iso": "2014BiW12", "name": "Bi-Week 12 - 2014-06-02 - 2014-06-15", + "periodType": "BIWEEKLY", "startDate": "2014-06-02", }, Object { + "displayName": "Bi-Week 13 - 2014-06-16 - 2014-06-29", "endDate": "2014-06-29", "id": "2014BiW13", "iso": "2014BiW13", "name": "Bi-Week 13 - 2014-06-16 - 2014-06-29", + "periodType": "BIWEEKLY", "startDate": "2014-06-16", }, Object { + "displayName": "Bi-Week 14 - 2014-06-30 - 2014-07-13", "endDate": "2014-07-13", "id": "2014BiW14", "iso": "2014BiW14", "name": "Bi-Week 14 - 2014-06-30 - 2014-07-13", + "periodType": "BIWEEKLY", "startDate": "2014-06-30", }, Object { + "displayName": "Bi-Week 15 - 2014-07-14 - 2014-07-27", "endDate": "2014-07-27", "id": "2014BiW15", "iso": "2014BiW15", "name": "Bi-Week 15 - 2014-07-14 - 2014-07-27", + "periodType": "BIWEEKLY", "startDate": "2014-07-14", }, Object { + "displayName": "Bi-Week 16 - 2014-07-28 - 2014-08-10", "endDate": "2014-08-10", "id": "2014BiW16", "iso": "2014BiW16", "name": "Bi-Week 16 - 2014-07-28 - 2014-08-10", + "periodType": "BIWEEKLY", "startDate": "2014-07-28", }, Object { + "displayName": "Bi-Week 17 - 2014-08-11 - 2014-08-24", "endDate": "2014-08-24", "id": "2014BiW17", "iso": "2014BiW17", "name": "Bi-Week 17 - 2014-08-11 - 2014-08-24", + "periodType": "BIWEEKLY", "startDate": "2014-08-11", }, Object { + "displayName": "Bi-Week 18 - 2014-08-25 - 2014-09-07", "endDate": "2014-09-07", "id": "2014BiW18", "iso": "2014BiW18", "name": "Bi-Week 18 - 2014-08-25 - 2014-09-07", + "periodType": "BIWEEKLY", "startDate": "2014-08-25", }, Object { + "displayName": "Bi-Week 19 - 2014-09-08 - 2014-09-21", "endDate": "2014-09-21", "id": "2014BiW19", "iso": "2014BiW19", "name": "Bi-Week 19 - 2014-09-08 - 2014-09-21", + "periodType": "BIWEEKLY", "startDate": "2014-09-08", }, Object { + "displayName": "Bi-Week 20 - 2014-09-22 - 2014-10-05", "endDate": "2014-10-05", "id": "2014BiW20", "iso": "2014BiW20", "name": "Bi-Week 20 - 2014-09-22 - 2014-10-05", + "periodType": "BIWEEKLY", "startDate": "2014-09-22", }, Object { + "displayName": "Bi-Week 21 - 2014-10-06 - 2014-10-19", "endDate": "2014-10-19", "id": "2014BiW21", "iso": "2014BiW21", "name": "Bi-Week 21 - 2014-10-06 - 2014-10-19", + "periodType": "BIWEEKLY", "startDate": "2014-10-06", }, Object { + "displayName": "Bi-Week 22 - 2014-10-20 - 2014-11-02", "endDate": "2014-11-02", "id": "2014BiW22", "iso": "2014BiW22", "name": "Bi-Week 22 - 2014-10-20 - 2014-11-02", + "periodType": "BIWEEKLY", "startDate": "2014-10-20", }, Object { + "displayName": "Bi-Week 23 - 2014-11-03 - 2014-11-16", "endDate": "2014-11-16", "id": "2014BiW23", "iso": "2014BiW23", "name": "Bi-Week 23 - 2014-11-03 - 2014-11-16", + "periodType": "BIWEEKLY", "startDate": "2014-11-03", }, Object { + "displayName": "Bi-Week 24 - 2014-11-17 - 2014-11-30", "endDate": "2014-11-30", "id": "2014BiW24", "iso": "2014BiW24", "name": "Bi-Week 24 - 2014-11-17 - 2014-11-30", + "periodType": "BIWEEKLY", "startDate": "2014-11-17", }, Object { + "displayName": "Bi-Week 25 - 2014-12-01 - 2014-12-14", "endDate": "2014-12-14", "id": "2014BiW25", "iso": "2014BiW25", "name": "Bi-Week 25 - 2014-12-01 - 2014-12-14", + "periodType": "BIWEEKLY", "startDate": "2014-12-01", }, Object { + "displayName": "Bi-Week 26 - 2014-12-15 - 2014-12-28", "endDate": "2014-12-28", "id": "2014BiW26", "iso": "2014BiW26", "name": "Bi-Week 26 - 2014-12-15 - 2014-12-28", + "periodType": "BIWEEKLY", "startDate": "2014-12-15", }, ], @@ -198,45 +250,57 @@ Object { "name": "Bi-monthly", "options": Array [ Object { + "displayName": "January - February 2014", "endDate": "2014-02-28", "id": "201401B", "iso": "201401B", "name": "January - February 2014", + "periodType": "BIMONTHLY", "startDate": "2014-01-01", }, Object { + "displayName": "March - April 2014", "endDate": "2014-04-30", "id": "201402B", "iso": "201402B", "name": "March - April 2014", + "periodType": "BIMONTHLY", "startDate": "2014-03-01", }, Object { + "displayName": "May - June 2014", "endDate": "2014-06-30", "id": "201403B", "iso": "201403B", "name": "May - June 2014", + "periodType": "BIMONTHLY", "startDate": "2014-05-01", }, Object { + "displayName": "July - August 2014", "endDate": "2014-08-31", "id": "201404B", "iso": "201404B", "name": "July - August 2014", + "periodType": "BIMONTHLY", "startDate": "2014-07-01", }, Object { + "displayName": "September - October 2014", "endDate": "2014-10-31", "id": "201405B", "iso": "201405B", "name": "September - October 2014", + "periodType": "BIMONTHLY", "startDate": "2014-09-01", }, Object { + "displayName": "November - December 2014", "endDate": "2014-12-31", "id": "201406B", "iso": "201406B", "name": "November - December 2014", + "periodType": "BIMONTHLY", "startDate": "2014-11-01", }, ], @@ -250,2558 +314,3288 @@ Object { "name": "Daily", "options": Array [ Object { + "displayName": "January 1, 2014", "endDate": "2014-01-01", "id": "20140101", "iso": "20140101", "name": "2014-01-01", + "periodType": "DAILY", "startDate": "2014-01-01", }, Object { + "displayName": "January 2, 2014", "endDate": "2014-01-02", "id": "20140102", "iso": "20140102", "name": "2014-01-02", + "periodType": "DAILY", "startDate": "2014-01-02", }, Object { + "displayName": "January 3, 2014", "endDate": "2014-01-03", "id": "20140103", "iso": "20140103", "name": "2014-01-03", + "periodType": "DAILY", "startDate": "2014-01-03", }, Object { + "displayName": "January 4, 2014", "endDate": "2014-01-04", "id": "20140104", "iso": "20140104", "name": "2014-01-04", + "periodType": "DAILY", "startDate": "2014-01-04", }, Object { + "displayName": "January 5, 2014", "endDate": "2014-01-05", "id": "20140105", "iso": "20140105", "name": "2014-01-05", + "periodType": "DAILY", "startDate": "2014-01-05", }, Object { + "displayName": "January 6, 2014", "endDate": "2014-01-06", "id": "20140106", "iso": "20140106", "name": "2014-01-06", + "periodType": "DAILY", "startDate": "2014-01-06", }, Object { + "displayName": "January 7, 2014", "endDate": "2014-01-07", "id": "20140107", "iso": "20140107", "name": "2014-01-07", + "periodType": "DAILY", "startDate": "2014-01-07", }, Object { + "displayName": "January 8, 2014", "endDate": "2014-01-08", "id": "20140108", "iso": "20140108", "name": "2014-01-08", + "periodType": "DAILY", "startDate": "2014-01-08", }, Object { + "displayName": "January 9, 2014", "endDate": "2014-01-09", "id": "20140109", "iso": "20140109", "name": "2014-01-09", + "periodType": "DAILY", "startDate": "2014-01-09", }, Object { + "displayName": "January 10, 2014", "endDate": "2014-01-10", "id": "20140110", "iso": "20140110", "name": "2014-01-10", + "periodType": "DAILY", "startDate": "2014-01-10", }, Object { + "displayName": "January 11, 2014", "endDate": "2014-01-11", "id": "20140111", "iso": "20140111", "name": "2014-01-11", + "periodType": "DAILY", "startDate": "2014-01-11", }, Object { + "displayName": "January 12, 2014", "endDate": "2014-01-12", "id": "20140112", "iso": "20140112", "name": "2014-01-12", + "periodType": "DAILY", "startDate": "2014-01-12", }, Object { + "displayName": "January 13, 2014", "endDate": "2014-01-13", "id": "20140113", "iso": "20140113", "name": "2014-01-13", + "periodType": "DAILY", "startDate": "2014-01-13", }, Object { + "displayName": "January 14, 2014", "endDate": "2014-01-14", "id": "20140114", "iso": "20140114", "name": "2014-01-14", + "periodType": "DAILY", "startDate": "2014-01-14", }, Object { + "displayName": "January 15, 2014", "endDate": "2014-01-15", "id": "20140115", "iso": "20140115", "name": "2014-01-15", + "periodType": "DAILY", "startDate": "2014-01-15", }, Object { + "displayName": "January 16, 2014", "endDate": "2014-01-16", "id": "20140116", "iso": "20140116", "name": "2014-01-16", + "periodType": "DAILY", "startDate": "2014-01-16", }, Object { + "displayName": "January 17, 2014", "endDate": "2014-01-17", "id": "20140117", "iso": "20140117", "name": "2014-01-17", + "periodType": "DAILY", "startDate": "2014-01-17", }, Object { + "displayName": "January 18, 2014", "endDate": "2014-01-18", "id": "20140118", "iso": "20140118", "name": "2014-01-18", + "periodType": "DAILY", "startDate": "2014-01-18", }, Object { + "displayName": "January 19, 2014", "endDate": "2014-01-19", "id": "20140119", "iso": "20140119", "name": "2014-01-19", + "periodType": "DAILY", "startDate": "2014-01-19", }, Object { + "displayName": "January 20, 2014", "endDate": "2014-01-20", "id": "20140120", "iso": "20140120", "name": "2014-01-20", + "periodType": "DAILY", "startDate": "2014-01-20", }, Object { + "displayName": "January 21, 2014", "endDate": "2014-01-21", "id": "20140121", "iso": "20140121", "name": "2014-01-21", + "periodType": "DAILY", "startDate": "2014-01-21", }, Object { + "displayName": "January 22, 2014", "endDate": "2014-01-22", "id": "20140122", "iso": "20140122", "name": "2014-01-22", + "periodType": "DAILY", "startDate": "2014-01-22", }, Object { + "displayName": "January 23, 2014", "endDate": "2014-01-23", "id": "20140123", "iso": "20140123", "name": "2014-01-23", + "periodType": "DAILY", "startDate": "2014-01-23", }, Object { + "displayName": "January 24, 2014", "endDate": "2014-01-24", "id": "20140124", "iso": "20140124", "name": "2014-01-24", + "periodType": "DAILY", "startDate": "2014-01-24", }, Object { + "displayName": "January 25, 2014", "endDate": "2014-01-25", "id": "20140125", "iso": "20140125", "name": "2014-01-25", + "periodType": "DAILY", "startDate": "2014-01-25", }, Object { + "displayName": "January 26, 2014", "endDate": "2014-01-26", "id": "20140126", "iso": "20140126", "name": "2014-01-26", + "periodType": "DAILY", "startDate": "2014-01-26", }, Object { + "displayName": "January 27, 2014", "endDate": "2014-01-27", "id": "20140127", "iso": "20140127", "name": "2014-01-27", + "periodType": "DAILY", "startDate": "2014-01-27", }, Object { + "displayName": "January 28, 2014", "endDate": "2014-01-28", "id": "20140128", "iso": "20140128", "name": "2014-01-28", + "periodType": "DAILY", "startDate": "2014-01-28", }, Object { + "displayName": "January 29, 2014", "endDate": "2014-01-29", "id": "20140129", "iso": "20140129", "name": "2014-01-29", + "periodType": "DAILY", "startDate": "2014-01-29", }, Object { + "displayName": "January 30, 2014", "endDate": "2014-01-30", "id": "20140130", "iso": "20140130", "name": "2014-01-30", + "periodType": "DAILY", "startDate": "2014-01-30", }, Object { + "displayName": "January 31, 2014", "endDate": "2014-01-31", "id": "20140131", "iso": "20140131", "name": "2014-01-31", + "periodType": "DAILY", "startDate": "2014-01-31", }, Object { + "displayName": "February 1, 2014", "endDate": "2014-02-01", "id": "20140201", "iso": "20140201", "name": "2014-02-01", + "periodType": "DAILY", "startDate": "2014-02-01", }, Object { + "displayName": "February 2, 2014", "endDate": "2014-02-02", "id": "20140202", "iso": "20140202", "name": "2014-02-02", + "periodType": "DAILY", "startDate": "2014-02-02", }, Object { + "displayName": "February 3, 2014", "endDate": "2014-02-03", "id": "20140203", "iso": "20140203", "name": "2014-02-03", + "periodType": "DAILY", "startDate": "2014-02-03", }, Object { + "displayName": "February 4, 2014", "endDate": "2014-02-04", "id": "20140204", "iso": "20140204", "name": "2014-02-04", + "periodType": "DAILY", "startDate": "2014-02-04", }, Object { + "displayName": "February 5, 2014", "endDate": "2014-02-05", "id": "20140205", "iso": "20140205", "name": "2014-02-05", + "periodType": "DAILY", "startDate": "2014-02-05", }, Object { + "displayName": "February 6, 2014", "endDate": "2014-02-06", "id": "20140206", "iso": "20140206", "name": "2014-02-06", + "periodType": "DAILY", "startDate": "2014-02-06", }, Object { + "displayName": "February 7, 2014", "endDate": "2014-02-07", "id": "20140207", "iso": "20140207", "name": "2014-02-07", + "periodType": "DAILY", "startDate": "2014-02-07", }, Object { + "displayName": "February 8, 2014", "endDate": "2014-02-08", "id": "20140208", "iso": "20140208", "name": "2014-02-08", + "periodType": "DAILY", "startDate": "2014-02-08", }, Object { + "displayName": "February 9, 2014", "endDate": "2014-02-09", "id": "20140209", "iso": "20140209", "name": "2014-02-09", + "periodType": "DAILY", "startDate": "2014-02-09", }, Object { + "displayName": "February 10, 2014", "endDate": "2014-02-10", "id": "20140210", "iso": "20140210", "name": "2014-02-10", + "periodType": "DAILY", "startDate": "2014-02-10", }, Object { + "displayName": "February 11, 2014", "endDate": "2014-02-11", "id": "20140211", "iso": "20140211", "name": "2014-02-11", + "periodType": "DAILY", "startDate": "2014-02-11", }, Object { + "displayName": "February 12, 2014", "endDate": "2014-02-12", "id": "20140212", "iso": "20140212", "name": "2014-02-12", + "periodType": "DAILY", "startDate": "2014-02-12", }, Object { + "displayName": "February 13, 2014", "endDate": "2014-02-13", "id": "20140213", "iso": "20140213", "name": "2014-02-13", + "periodType": "DAILY", "startDate": "2014-02-13", }, Object { + "displayName": "February 14, 2014", "endDate": "2014-02-14", "id": "20140214", "iso": "20140214", "name": "2014-02-14", + "periodType": "DAILY", "startDate": "2014-02-14", }, Object { + "displayName": "February 15, 2014", "endDate": "2014-02-15", "id": "20140215", "iso": "20140215", "name": "2014-02-15", + "periodType": "DAILY", "startDate": "2014-02-15", }, Object { + "displayName": "February 16, 2014", "endDate": "2014-02-16", "id": "20140216", "iso": "20140216", "name": "2014-02-16", + "periodType": "DAILY", "startDate": "2014-02-16", }, Object { + "displayName": "February 17, 2014", "endDate": "2014-02-17", "id": "20140217", "iso": "20140217", "name": "2014-02-17", + "periodType": "DAILY", "startDate": "2014-02-17", }, Object { + "displayName": "February 18, 2014", "endDate": "2014-02-18", "id": "20140218", "iso": "20140218", "name": "2014-02-18", + "periodType": "DAILY", "startDate": "2014-02-18", }, Object { + "displayName": "February 19, 2014", "endDate": "2014-02-19", "id": "20140219", "iso": "20140219", "name": "2014-02-19", + "periodType": "DAILY", "startDate": "2014-02-19", }, Object { + "displayName": "February 20, 2014", "endDate": "2014-02-20", "id": "20140220", "iso": "20140220", "name": "2014-02-20", + "periodType": "DAILY", "startDate": "2014-02-20", }, Object { + "displayName": "February 21, 2014", "endDate": "2014-02-21", "id": "20140221", "iso": "20140221", "name": "2014-02-21", + "periodType": "DAILY", "startDate": "2014-02-21", }, Object { + "displayName": "February 22, 2014", "endDate": "2014-02-22", "id": "20140222", "iso": "20140222", "name": "2014-02-22", + "periodType": "DAILY", "startDate": "2014-02-22", }, Object { + "displayName": "February 23, 2014", "endDate": "2014-02-23", "id": "20140223", "iso": "20140223", "name": "2014-02-23", + "periodType": "DAILY", "startDate": "2014-02-23", }, Object { + "displayName": "February 24, 2014", "endDate": "2014-02-24", "id": "20140224", "iso": "20140224", "name": "2014-02-24", + "periodType": "DAILY", "startDate": "2014-02-24", }, Object { + "displayName": "February 25, 2014", "endDate": "2014-02-25", "id": "20140225", "iso": "20140225", "name": "2014-02-25", + "periodType": "DAILY", "startDate": "2014-02-25", }, Object { + "displayName": "February 26, 2014", "endDate": "2014-02-26", "id": "20140226", "iso": "20140226", "name": "2014-02-26", + "periodType": "DAILY", "startDate": "2014-02-26", }, Object { + "displayName": "February 27, 2014", "endDate": "2014-02-27", "id": "20140227", "iso": "20140227", "name": "2014-02-27", + "periodType": "DAILY", "startDate": "2014-02-27", }, Object { + "displayName": "February 28, 2014", "endDate": "2014-02-28", "id": "20140228", "iso": "20140228", "name": "2014-02-28", + "periodType": "DAILY", "startDate": "2014-02-28", }, Object { + "displayName": "March 1, 2014", "endDate": "2014-03-01", "id": "20140301", "iso": "20140301", "name": "2014-03-01", + "periodType": "DAILY", "startDate": "2014-03-01", }, Object { + "displayName": "March 2, 2014", "endDate": "2014-03-02", "id": "20140302", "iso": "20140302", "name": "2014-03-02", + "periodType": "DAILY", "startDate": "2014-03-02", }, Object { + "displayName": "March 3, 2014", "endDate": "2014-03-03", "id": "20140303", "iso": "20140303", "name": "2014-03-03", + "periodType": "DAILY", "startDate": "2014-03-03", }, Object { + "displayName": "March 4, 2014", "endDate": "2014-03-04", "id": "20140304", "iso": "20140304", "name": "2014-03-04", + "periodType": "DAILY", "startDate": "2014-03-04", }, Object { + "displayName": "March 5, 2014", "endDate": "2014-03-05", "id": "20140305", "iso": "20140305", "name": "2014-03-05", + "periodType": "DAILY", "startDate": "2014-03-05", }, Object { + "displayName": "March 6, 2014", "endDate": "2014-03-06", "id": "20140306", "iso": "20140306", "name": "2014-03-06", + "periodType": "DAILY", "startDate": "2014-03-06", }, Object { + "displayName": "March 7, 2014", "endDate": "2014-03-07", "id": "20140307", "iso": "20140307", "name": "2014-03-07", + "periodType": "DAILY", "startDate": "2014-03-07", }, Object { + "displayName": "March 8, 2014", "endDate": "2014-03-08", "id": "20140308", "iso": "20140308", "name": "2014-03-08", + "periodType": "DAILY", "startDate": "2014-03-08", }, Object { + "displayName": "March 9, 2014", "endDate": "2014-03-09", "id": "20140309", "iso": "20140309", "name": "2014-03-09", + "periodType": "DAILY", "startDate": "2014-03-09", }, Object { + "displayName": "March 10, 2014", "endDate": "2014-03-10", "id": "20140310", "iso": "20140310", "name": "2014-03-10", + "periodType": "DAILY", "startDate": "2014-03-10", }, Object { + "displayName": "March 11, 2014", "endDate": "2014-03-11", "id": "20140311", "iso": "20140311", "name": "2014-03-11", + "periodType": "DAILY", "startDate": "2014-03-11", }, Object { + "displayName": "March 12, 2014", "endDate": "2014-03-12", "id": "20140312", "iso": "20140312", "name": "2014-03-12", + "periodType": "DAILY", "startDate": "2014-03-12", }, Object { + "displayName": "March 13, 2014", "endDate": "2014-03-13", "id": "20140313", "iso": "20140313", "name": "2014-03-13", + "periodType": "DAILY", "startDate": "2014-03-13", }, Object { + "displayName": "March 14, 2014", "endDate": "2014-03-14", "id": "20140314", "iso": "20140314", "name": "2014-03-14", + "periodType": "DAILY", "startDate": "2014-03-14", }, Object { + "displayName": "March 15, 2014", "endDate": "2014-03-15", "id": "20140315", "iso": "20140315", "name": "2014-03-15", + "periodType": "DAILY", "startDate": "2014-03-15", }, Object { + "displayName": "March 16, 2014", "endDate": "2014-03-16", "id": "20140316", "iso": "20140316", "name": "2014-03-16", + "periodType": "DAILY", "startDate": "2014-03-16", }, Object { + "displayName": "March 17, 2014", "endDate": "2014-03-17", "id": "20140317", "iso": "20140317", "name": "2014-03-17", + "periodType": "DAILY", "startDate": "2014-03-17", }, Object { + "displayName": "March 18, 2014", "endDate": "2014-03-18", "id": "20140318", "iso": "20140318", "name": "2014-03-18", + "periodType": "DAILY", "startDate": "2014-03-18", }, Object { + "displayName": "March 19, 2014", "endDate": "2014-03-19", "id": "20140319", "iso": "20140319", "name": "2014-03-19", + "periodType": "DAILY", "startDate": "2014-03-19", }, Object { + "displayName": "March 20, 2014", "endDate": "2014-03-20", "id": "20140320", "iso": "20140320", "name": "2014-03-20", + "periodType": "DAILY", "startDate": "2014-03-20", }, Object { + "displayName": "March 21, 2014", "endDate": "2014-03-21", "id": "20140321", "iso": "20140321", "name": "2014-03-21", + "periodType": "DAILY", "startDate": "2014-03-21", }, Object { + "displayName": "March 22, 2014", "endDate": "2014-03-22", "id": "20140322", "iso": "20140322", "name": "2014-03-22", + "periodType": "DAILY", "startDate": "2014-03-22", }, Object { + "displayName": "March 23, 2014", "endDate": "2014-03-23", "id": "20140323", "iso": "20140323", "name": "2014-03-23", + "periodType": "DAILY", "startDate": "2014-03-23", }, Object { + "displayName": "March 24, 2014", "endDate": "2014-03-24", "id": "20140324", "iso": "20140324", "name": "2014-03-24", + "periodType": "DAILY", "startDate": "2014-03-24", }, Object { + "displayName": "March 25, 2014", "endDate": "2014-03-25", "id": "20140325", "iso": "20140325", "name": "2014-03-25", + "periodType": "DAILY", "startDate": "2014-03-25", }, Object { + "displayName": "March 26, 2014", "endDate": "2014-03-26", "id": "20140326", "iso": "20140326", "name": "2014-03-26", + "periodType": "DAILY", "startDate": "2014-03-26", }, Object { + "displayName": "March 27, 2014", "endDate": "2014-03-27", "id": "20140327", "iso": "20140327", "name": "2014-03-27", + "periodType": "DAILY", "startDate": "2014-03-27", }, Object { + "displayName": "March 28, 2014", "endDate": "2014-03-28", "id": "20140328", "iso": "20140328", "name": "2014-03-28", + "periodType": "DAILY", "startDate": "2014-03-28", }, Object { + "displayName": "March 29, 2014", "endDate": "2014-03-29", "id": "20140329", "iso": "20140329", "name": "2014-03-29", + "periodType": "DAILY", "startDate": "2014-03-29", }, Object { + "displayName": "March 30, 2014", "endDate": "2014-03-30", "id": "20140330", "iso": "20140330", "name": "2014-03-30", + "periodType": "DAILY", "startDate": "2014-03-30", }, Object { + "displayName": "March 31, 2014", "endDate": "2014-03-31", "id": "20140331", "iso": "20140331", "name": "2014-03-31", + "periodType": "DAILY", "startDate": "2014-03-31", }, Object { + "displayName": "April 1, 2014", "endDate": "2014-04-01", "id": "20140401", "iso": "20140401", "name": "2014-04-01", + "periodType": "DAILY", "startDate": "2014-04-01", }, Object { + "displayName": "April 2, 2014", "endDate": "2014-04-02", "id": "20140402", "iso": "20140402", "name": "2014-04-02", + "periodType": "DAILY", "startDate": "2014-04-02", }, Object { + "displayName": "April 3, 2014", "endDate": "2014-04-03", "id": "20140403", "iso": "20140403", "name": "2014-04-03", + "periodType": "DAILY", "startDate": "2014-04-03", }, Object { + "displayName": "April 4, 2014", "endDate": "2014-04-04", "id": "20140404", "iso": "20140404", "name": "2014-04-04", + "periodType": "DAILY", "startDate": "2014-04-04", }, Object { + "displayName": "April 5, 2014", "endDate": "2014-04-05", "id": "20140405", "iso": "20140405", "name": "2014-04-05", + "periodType": "DAILY", "startDate": "2014-04-05", }, Object { + "displayName": "April 6, 2014", "endDate": "2014-04-06", "id": "20140406", "iso": "20140406", "name": "2014-04-06", + "periodType": "DAILY", "startDate": "2014-04-06", }, Object { + "displayName": "April 7, 2014", "endDate": "2014-04-07", "id": "20140407", "iso": "20140407", "name": "2014-04-07", + "periodType": "DAILY", "startDate": "2014-04-07", }, Object { + "displayName": "April 8, 2014", "endDate": "2014-04-08", "id": "20140408", "iso": "20140408", "name": "2014-04-08", + "periodType": "DAILY", "startDate": "2014-04-08", }, Object { + "displayName": "April 9, 2014", "endDate": "2014-04-09", "id": "20140409", "iso": "20140409", "name": "2014-04-09", + "periodType": "DAILY", "startDate": "2014-04-09", }, Object { + "displayName": "April 10, 2014", "endDate": "2014-04-10", "id": "20140410", "iso": "20140410", "name": "2014-04-10", + "periodType": "DAILY", "startDate": "2014-04-10", }, Object { + "displayName": "April 11, 2014", "endDate": "2014-04-11", "id": "20140411", "iso": "20140411", "name": "2014-04-11", + "periodType": "DAILY", "startDate": "2014-04-11", }, Object { + "displayName": "April 12, 2014", "endDate": "2014-04-12", "id": "20140412", "iso": "20140412", "name": "2014-04-12", + "periodType": "DAILY", "startDate": "2014-04-12", }, Object { + "displayName": "April 13, 2014", "endDate": "2014-04-13", "id": "20140413", "iso": "20140413", "name": "2014-04-13", + "periodType": "DAILY", "startDate": "2014-04-13", }, Object { + "displayName": "April 14, 2014", "endDate": "2014-04-14", "id": "20140414", "iso": "20140414", "name": "2014-04-14", + "periodType": "DAILY", "startDate": "2014-04-14", }, Object { + "displayName": "April 15, 2014", "endDate": "2014-04-15", "id": "20140415", "iso": "20140415", "name": "2014-04-15", + "periodType": "DAILY", "startDate": "2014-04-15", }, Object { + "displayName": "April 16, 2014", "endDate": "2014-04-16", "id": "20140416", "iso": "20140416", "name": "2014-04-16", + "periodType": "DAILY", "startDate": "2014-04-16", }, Object { + "displayName": "April 17, 2014", "endDate": "2014-04-17", "id": "20140417", "iso": "20140417", "name": "2014-04-17", + "periodType": "DAILY", "startDate": "2014-04-17", }, Object { + "displayName": "April 18, 2014", "endDate": "2014-04-18", "id": "20140418", "iso": "20140418", "name": "2014-04-18", + "periodType": "DAILY", "startDate": "2014-04-18", }, Object { + "displayName": "April 19, 2014", "endDate": "2014-04-19", "id": "20140419", "iso": "20140419", "name": "2014-04-19", + "periodType": "DAILY", "startDate": "2014-04-19", }, Object { + "displayName": "April 20, 2014", "endDate": "2014-04-20", "id": "20140420", "iso": "20140420", "name": "2014-04-20", + "periodType": "DAILY", "startDate": "2014-04-20", }, Object { + "displayName": "April 21, 2014", "endDate": "2014-04-21", "id": "20140421", "iso": "20140421", "name": "2014-04-21", + "periodType": "DAILY", "startDate": "2014-04-21", }, Object { + "displayName": "April 22, 2014", "endDate": "2014-04-22", "id": "20140422", "iso": "20140422", "name": "2014-04-22", + "periodType": "DAILY", "startDate": "2014-04-22", }, Object { + "displayName": "April 23, 2014", "endDate": "2014-04-23", "id": "20140423", "iso": "20140423", "name": "2014-04-23", + "periodType": "DAILY", "startDate": "2014-04-23", }, Object { + "displayName": "April 24, 2014", "endDate": "2014-04-24", "id": "20140424", "iso": "20140424", "name": "2014-04-24", + "periodType": "DAILY", "startDate": "2014-04-24", }, Object { + "displayName": "April 25, 2014", "endDate": "2014-04-25", "id": "20140425", "iso": "20140425", "name": "2014-04-25", + "periodType": "DAILY", "startDate": "2014-04-25", }, Object { + "displayName": "April 26, 2014", "endDate": "2014-04-26", "id": "20140426", "iso": "20140426", "name": "2014-04-26", + "periodType": "DAILY", "startDate": "2014-04-26", }, Object { + "displayName": "April 27, 2014", "endDate": "2014-04-27", "id": "20140427", "iso": "20140427", "name": "2014-04-27", + "periodType": "DAILY", "startDate": "2014-04-27", }, Object { + "displayName": "April 28, 2014", "endDate": "2014-04-28", "id": "20140428", "iso": "20140428", "name": "2014-04-28", + "periodType": "DAILY", "startDate": "2014-04-28", }, Object { + "displayName": "April 29, 2014", "endDate": "2014-04-29", "id": "20140429", "iso": "20140429", "name": "2014-04-29", + "periodType": "DAILY", "startDate": "2014-04-29", }, Object { + "displayName": "April 30, 2014", "endDate": "2014-04-30", "id": "20140430", "iso": "20140430", "name": "2014-04-30", + "periodType": "DAILY", "startDate": "2014-04-30", }, Object { + "displayName": "May 1, 2014", "endDate": "2014-05-01", "id": "20140501", "iso": "20140501", "name": "2014-05-01", + "periodType": "DAILY", "startDate": "2014-05-01", }, Object { + "displayName": "May 2, 2014", "endDate": "2014-05-02", "id": "20140502", "iso": "20140502", "name": "2014-05-02", + "periodType": "DAILY", "startDate": "2014-05-02", }, Object { + "displayName": "May 3, 2014", "endDate": "2014-05-03", "id": "20140503", "iso": "20140503", "name": "2014-05-03", + "periodType": "DAILY", "startDate": "2014-05-03", }, Object { + "displayName": "May 4, 2014", "endDate": "2014-05-04", "id": "20140504", "iso": "20140504", "name": "2014-05-04", + "periodType": "DAILY", "startDate": "2014-05-04", }, Object { + "displayName": "May 5, 2014", "endDate": "2014-05-05", "id": "20140505", "iso": "20140505", "name": "2014-05-05", + "periodType": "DAILY", "startDate": "2014-05-05", }, Object { + "displayName": "May 6, 2014", "endDate": "2014-05-06", "id": "20140506", "iso": "20140506", "name": "2014-05-06", + "periodType": "DAILY", "startDate": "2014-05-06", }, Object { + "displayName": "May 7, 2014", "endDate": "2014-05-07", "id": "20140507", "iso": "20140507", "name": "2014-05-07", + "periodType": "DAILY", "startDate": "2014-05-07", }, Object { + "displayName": "May 8, 2014", "endDate": "2014-05-08", "id": "20140508", "iso": "20140508", "name": "2014-05-08", + "periodType": "DAILY", "startDate": "2014-05-08", }, Object { + "displayName": "May 9, 2014", "endDate": "2014-05-09", "id": "20140509", "iso": "20140509", "name": "2014-05-09", + "periodType": "DAILY", "startDate": "2014-05-09", }, Object { + "displayName": "May 10, 2014", "endDate": "2014-05-10", "id": "20140510", "iso": "20140510", "name": "2014-05-10", + "periodType": "DAILY", "startDate": "2014-05-10", }, Object { + "displayName": "May 11, 2014", "endDate": "2014-05-11", "id": "20140511", "iso": "20140511", "name": "2014-05-11", + "periodType": "DAILY", "startDate": "2014-05-11", }, Object { + "displayName": "May 12, 2014", "endDate": "2014-05-12", "id": "20140512", "iso": "20140512", "name": "2014-05-12", + "periodType": "DAILY", "startDate": "2014-05-12", }, Object { + "displayName": "May 13, 2014", "endDate": "2014-05-13", "id": "20140513", "iso": "20140513", "name": "2014-05-13", + "periodType": "DAILY", "startDate": "2014-05-13", }, Object { + "displayName": "May 14, 2014", "endDate": "2014-05-14", "id": "20140514", "iso": "20140514", "name": "2014-05-14", + "periodType": "DAILY", "startDate": "2014-05-14", }, Object { + "displayName": "May 15, 2014", "endDate": "2014-05-15", "id": "20140515", "iso": "20140515", "name": "2014-05-15", + "periodType": "DAILY", "startDate": "2014-05-15", }, Object { + "displayName": "May 16, 2014", "endDate": "2014-05-16", "id": "20140516", "iso": "20140516", "name": "2014-05-16", + "periodType": "DAILY", "startDate": "2014-05-16", }, Object { + "displayName": "May 17, 2014", "endDate": "2014-05-17", "id": "20140517", "iso": "20140517", "name": "2014-05-17", + "periodType": "DAILY", "startDate": "2014-05-17", }, Object { + "displayName": "May 18, 2014", "endDate": "2014-05-18", "id": "20140518", "iso": "20140518", "name": "2014-05-18", + "periodType": "DAILY", "startDate": "2014-05-18", }, Object { + "displayName": "May 19, 2014", "endDate": "2014-05-19", "id": "20140519", "iso": "20140519", "name": "2014-05-19", + "periodType": "DAILY", "startDate": "2014-05-19", }, Object { + "displayName": "May 20, 2014", "endDate": "2014-05-20", "id": "20140520", "iso": "20140520", "name": "2014-05-20", + "periodType": "DAILY", "startDate": "2014-05-20", }, Object { + "displayName": "May 21, 2014", "endDate": "2014-05-21", "id": "20140521", "iso": "20140521", "name": "2014-05-21", + "periodType": "DAILY", "startDate": "2014-05-21", }, Object { + "displayName": "May 22, 2014", "endDate": "2014-05-22", "id": "20140522", "iso": "20140522", "name": "2014-05-22", + "periodType": "DAILY", "startDate": "2014-05-22", }, Object { + "displayName": "May 23, 2014", "endDate": "2014-05-23", "id": "20140523", "iso": "20140523", "name": "2014-05-23", + "periodType": "DAILY", "startDate": "2014-05-23", }, Object { + "displayName": "May 24, 2014", "endDate": "2014-05-24", "id": "20140524", "iso": "20140524", "name": "2014-05-24", + "periodType": "DAILY", "startDate": "2014-05-24", }, Object { + "displayName": "May 25, 2014", "endDate": "2014-05-25", "id": "20140525", "iso": "20140525", "name": "2014-05-25", + "periodType": "DAILY", "startDate": "2014-05-25", }, Object { + "displayName": "May 26, 2014", "endDate": "2014-05-26", "id": "20140526", "iso": "20140526", "name": "2014-05-26", + "periodType": "DAILY", "startDate": "2014-05-26", }, Object { + "displayName": "May 27, 2014", "endDate": "2014-05-27", "id": "20140527", "iso": "20140527", "name": "2014-05-27", + "periodType": "DAILY", "startDate": "2014-05-27", }, Object { + "displayName": "May 28, 2014", "endDate": "2014-05-28", "id": "20140528", "iso": "20140528", "name": "2014-05-28", + "periodType": "DAILY", "startDate": "2014-05-28", }, Object { + "displayName": "May 29, 2014", "endDate": "2014-05-29", "id": "20140529", "iso": "20140529", "name": "2014-05-29", + "periodType": "DAILY", "startDate": "2014-05-29", }, Object { + "displayName": "May 30, 2014", "endDate": "2014-05-30", "id": "20140530", "iso": "20140530", "name": "2014-05-30", + "periodType": "DAILY", "startDate": "2014-05-30", }, Object { + "displayName": "May 31, 2014", "endDate": "2014-05-31", "id": "20140531", "iso": "20140531", "name": "2014-05-31", + "periodType": "DAILY", "startDate": "2014-05-31", }, Object { + "displayName": "June 1, 2014", "endDate": "2014-06-01", "id": "20140601", "iso": "20140601", "name": "2014-06-01", + "periodType": "DAILY", "startDate": "2014-06-01", }, Object { + "displayName": "June 2, 2014", "endDate": "2014-06-02", "id": "20140602", "iso": "20140602", "name": "2014-06-02", + "periodType": "DAILY", "startDate": "2014-06-02", }, Object { + "displayName": "June 3, 2014", "endDate": "2014-06-03", "id": "20140603", "iso": "20140603", "name": "2014-06-03", + "periodType": "DAILY", "startDate": "2014-06-03", }, Object { + "displayName": "June 4, 2014", "endDate": "2014-06-04", "id": "20140604", "iso": "20140604", "name": "2014-06-04", + "periodType": "DAILY", "startDate": "2014-06-04", }, Object { + "displayName": "June 5, 2014", "endDate": "2014-06-05", "id": "20140605", "iso": "20140605", "name": "2014-06-05", + "periodType": "DAILY", "startDate": "2014-06-05", }, Object { + "displayName": "June 6, 2014", "endDate": "2014-06-06", "id": "20140606", "iso": "20140606", "name": "2014-06-06", + "periodType": "DAILY", "startDate": "2014-06-06", }, Object { + "displayName": "June 7, 2014", "endDate": "2014-06-07", "id": "20140607", "iso": "20140607", "name": "2014-06-07", + "periodType": "DAILY", "startDate": "2014-06-07", }, Object { + "displayName": "June 8, 2014", "endDate": "2014-06-08", "id": "20140608", "iso": "20140608", "name": "2014-06-08", + "periodType": "DAILY", "startDate": "2014-06-08", }, Object { + "displayName": "June 9, 2014", "endDate": "2014-06-09", "id": "20140609", "iso": "20140609", "name": "2014-06-09", + "periodType": "DAILY", "startDate": "2014-06-09", }, Object { + "displayName": "June 10, 2014", "endDate": "2014-06-10", "id": "20140610", "iso": "20140610", "name": "2014-06-10", + "periodType": "DAILY", "startDate": "2014-06-10", }, Object { + "displayName": "June 11, 2014", "endDate": "2014-06-11", "id": "20140611", "iso": "20140611", "name": "2014-06-11", + "periodType": "DAILY", "startDate": "2014-06-11", }, Object { + "displayName": "June 12, 2014", "endDate": "2014-06-12", "id": "20140612", "iso": "20140612", "name": "2014-06-12", + "periodType": "DAILY", "startDate": "2014-06-12", }, Object { + "displayName": "June 13, 2014", "endDate": "2014-06-13", "id": "20140613", "iso": "20140613", "name": "2014-06-13", + "periodType": "DAILY", "startDate": "2014-06-13", }, Object { + "displayName": "June 14, 2014", "endDate": "2014-06-14", "id": "20140614", "iso": "20140614", "name": "2014-06-14", + "periodType": "DAILY", "startDate": "2014-06-14", }, Object { + "displayName": "June 15, 2014", "endDate": "2014-06-15", "id": "20140615", "iso": "20140615", "name": "2014-06-15", + "periodType": "DAILY", "startDate": "2014-06-15", }, Object { + "displayName": "June 16, 2014", "endDate": "2014-06-16", "id": "20140616", "iso": "20140616", "name": "2014-06-16", + "periodType": "DAILY", "startDate": "2014-06-16", }, Object { + "displayName": "June 17, 2014", "endDate": "2014-06-17", "id": "20140617", "iso": "20140617", "name": "2014-06-17", + "periodType": "DAILY", "startDate": "2014-06-17", }, Object { + "displayName": "June 18, 2014", "endDate": "2014-06-18", "id": "20140618", "iso": "20140618", "name": "2014-06-18", + "periodType": "DAILY", "startDate": "2014-06-18", }, Object { + "displayName": "June 19, 2014", "endDate": "2014-06-19", "id": "20140619", "iso": "20140619", "name": "2014-06-19", + "periodType": "DAILY", "startDate": "2014-06-19", }, Object { + "displayName": "June 20, 2014", "endDate": "2014-06-20", "id": "20140620", "iso": "20140620", "name": "2014-06-20", + "periodType": "DAILY", "startDate": "2014-06-20", }, Object { + "displayName": "June 21, 2014", "endDate": "2014-06-21", "id": "20140621", "iso": "20140621", "name": "2014-06-21", + "periodType": "DAILY", "startDate": "2014-06-21", }, Object { + "displayName": "June 22, 2014", "endDate": "2014-06-22", "id": "20140622", "iso": "20140622", "name": "2014-06-22", + "periodType": "DAILY", "startDate": "2014-06-22", }, Object { + "displayName": "June 23, 2014", "endDate": "2014-06-23", "id": "20140623", "iso": "20140623", "name": "2014-06-23", + "periodType": "DAILY", "startDate": "2014-06-23", }, Object { + "displayName": "June 24, 2014", "endDate": "2014-06-24", "id": "20140624", "iso": "20140624", "name": "2014-06-24", + "periodType": "DAILY", "startDate": "2014-06-24", }, Object { + "displayName": "June 25, 2014", "endDate": "2014-06-25", "id": "20140625", "iso": "20140625", "name": "2014-06-25", + "periodType": "DAILY", "startDate": "2014-06-25", }, Object { + "displayName": "June 26, 2014", "endDate": "2014-06-26", "id": "20140626", "iso": "20140626", "name": "2014-06-26", + "periodType": "DAILY", "startDate": "2014-06-26", }, Object { + "displayName": "June 27, 2014", "endDate": "2014-06-27", "id": "20140627", "iso": "20140627", "name": "2014-06-27", + "periodType": "DAILY", "startDate": "2014-06-27", }, Object { + "displayName": "June 28, 2014", "endDate": "2014-06-28", "id": "20140628", "iso": "20140628", "name": "2014-06-28", + "periodType": "DAILY", "startDate": "2014-06-28", }, Object { + "displayName": "June 29, 2014", "endDate": "2014-06-29", "id": "20140629", "iso": "20140629", "name": "2014-06-29", + "periodType": "DAILY", "startDate": "2014-06-29", }, Object { + "displayName": "June 30, 2014", "endDate": "2014-06-30", "id": "20140630", "iso": "20140630", "name": "2014-06-30", + "periodType": "DAILY", "startDate": "2014-06-30", }, Object { + "displayName": "July 1, 2014", "endDate": "2014-07-01", "id": "20140701", "iso": "20140701", "name": "2014-07-01", + "periodType": "DAILY", "startDate": "2014-07-01", }, Object { + "displayName": "July 2, 2014", "endDate": "2014-07-02", "id": "20140702", "iso": "20140702", "name": "2014-07-02", + "periodType": "DAILY", "startDate": "2014-07-02", }, Object { + "displayName": "July 3, 2014", "endDate": "2014-07-03", "id": "20140703", "iso": "20140703", "name": "2014-07-03", + "periodType": "DAILY", "startDate": "2014-07-03", }, Object { + "displayName": "July 4, 2014", "endDate": "2014-07-04", "id": "20140704", "iso": "20140704", "name": "2014-07-04", + "periodType": "DAILY", "startDate": "2014-07-04", }, Object { + "displayName": "July 5, 2014", "endDate": "2014-07-05", "id": "20140705", "iso": "20140705", "name": "2014-07-05", + "periodType": "DAILY", "startDate": "2014-07-05", }, Object { + "displayName": "July 6, 2014", "endDate": "2014-07-06", "id": "20140706", "iso": "20140706", "name": "2014-07-06", + "periodType": "DAILY", "startDate": "2014-07-06", }, Object { + "displayName": "July 7, 2014", "endDate": "2014-07-07", "id": "20140707", "iso": "20140707", "name": "2014-07-07", + "periodType": "DAILY", "startDate": "2014-07-07", }, Object { + "displayName": "July 8, 2014", "endDate": "2014-07-08", "id": "20140708", "iso": "20140708", "name": "2014-07-08", + "periodType": "DAILY", "startDate": "2014-07-08", }, Object { + "displayName": "July 9, 2014", "endDate": "2014-07-09", "id": "20140709", "iso": "20140709", "name": "2014-07-09", + "periodType": "DAILY", "startDate": "2014-07-09", }, Object { + "displayName": "July 10, 2014", "endDate": "2014-07-10", "id": "20140710", "iso": "20140710", "name": "2014-07-10", + "periodType": "DAILY", "startDate": "2014-07-10", }, Object { + "displayName": "July 11, 2014", "endDate": "2014-07-11", "id": "20140711", "iso": "20140711", "name": "2014-07-11", + "periodType": "DAILY", "startDate": "2014-07-11", }, Object { + "displayName": "July 12, 2014", "endDate": "2014-07-12", "id": "20140712", "iso": "20140712", "name": "2014-07-12", + "periodType": "DAILY", "startDate": "2014-07-12", }, Object { + "displayName": "July 13, 2014", "endDate": "2014-07-13", "id": "20140713", "iso": "20140713", "name": "2014-07-13", + "periodType": "DAILY", "startDate": "2014-07-13", }, Object { + "displayName": "July 14, 2014", "endDate": "2014-07-14", "id": "20140714", "iso": "20140714", "name": "2014-07-14", + "periodType": "DAILY", "startDate": "2014-07-14", }, Object { + "displayName": "July 15, 2014", "endDate": "2014-07-15", "id": "20140715", "iso": "20140715", "name": "2014-07-15", + "periodType": "DAILY", "startDate": "2014-07-15", }, Object { + "displayName": "July 16, 2014", "endDate": "2014-07-16", "id": "20140716", "iso": "20140716", "name": "2014-07-16", + "periodType": "DAILY", "startDate": "2014-07-16", }, Object { + "displayName": "July 17, 2014", "endDate": "2014-07-17", "id": "20140717", "iso": "20140717", "name": "2014-07-17", + "periodType": "DAILY", "startDate": "2014-07-17", }, Object { + "displayName": "July 18, 2014", "endDate": "2014-07-18", "id": "20140718", "iso": "20140718", "name": "2014-07-18", + "periodType": "DAILY", "startDate": "2014-07-18", }, Object { + "displayName": "July 19, 2014", "endDate": "2014-07-19", "id": "20140719", "iso": "20140719", "name": "2014-07-19", + "periodType": "DAILY", "startDate": "2014-07-19", }, Object { + "displayName": "July 20, 2014", "endDate": "2014-07-20", "id": "20140720", "iso": "20140720", "name": "2014-07-20", + "periodType": "DAILY", "startDate": "2014-07-20", }, Object { + "displayName": "July 21, 2014", "endDate": "2014-07-21", "id": "20140721", "iso": "20140721", "name": "2014-07-21", + "periodType": "DAILY", "startDate": "2014-07-21", }, Object { + "displayName": "July 22, 2014", "endDate": "2014-07-22", "id": "20140722", "iso": "20140722", "name": "2014-07-22", + "periodType": "DAILY", "startDate": "2014-07-22", }, Object { + "displayName": "July 23, 2014", "endDate": "2014-07-23", "id": "20140723", "iso": "20140723", "name": "2014-07-23", + "periodType": "DAILY", "startDate": "2014-07-23", }, Object { + "displayName": "July 24, 2014", "endDate": "2014-07-24", "id": "20140724", "iso": "20140724", "name": "2014-07-24", + "periodType": "DAILY", "startDate": "2014-07-24", }, Object { + "displayName": "July 25, 2014", "endDate": "2014-07-25", "id": "20140725", "iso": "20140725", "name": "2014-07-25", + "periodType": "DAILY", "startDate": "2014-07-25", }, Object { + "displayName": "July 26, 2014", "endDate": "2014-07-26", "id": "20140726", "iso": "20140726", "name": "2014-07-26", + "periodType": "DAILY", "startDate": "2014-07-26", }, Object { + "displayName": "July 27, 2014", "endDate": "2014-07-27", "id": "20140727", "iso": "20140727", "name": "2014-07-27", + "periodType": "DAILY", "startDate": "2014-07-27", }, Object { + "displayName": "July 28, 2014", "endDate": "2014-07-28", "id": "20140728", "iso": "20140728", "name": "2014-07-28", + "periodType": "DAILY", "startDate": "2014-07-28", }, Object { + "displayName": "July 29, 2014", "endDate": "2014-07-29", "id": "20140729", "iso": "20140729", "name": "2014-07-29", + "periodType": "DAILY", "startDate": "2014-07-29", }, Object { + "displayName": "July 30, 2014", "endDate": "2014-07-30", "id": "20140730", "iso": "20140730", "name": "2014-07-30", + "periodType": "DAILY", "startDate": "2014-07-30", }, Object { + "displayName": "July 31, 2014", "endDate": "2014-07-31", "id": "20140731", "iso": "20140731", "name": "2014-07-31", + "periodType": "DAILY", "startDate": "2014-07-31", }, Object { + "displayName": "August 1, 2014", "endDate": "2014-08-01", "id": "20140801", "iso": "20140801", "name": "2014-08-01", + "periodType": "DAILY", "startDate": "2014-08-01", }, Object { + "displayName": "August 2, 2014", "endDate": "2014-08-02", "id": "20140802", "iso": "20140802", "name": "2014-08-02", + "periodType": "DAILY", "startDate": "2014-08-02", }, Object { + "displayName": "August 3, 2014", "endDate": "2014-08-03", "id": "20140803", "iso": "20140803", "name": "2014-08-03", + "periodType": "DAILY", "startDate": "2014-08-03", }, Object { + "displayName": "August 4, 2014", "endDate": "2014-08-04", "id": "20140804", "iso": "20140804", "name": "2014-08-04", + "periodType": "DAILY", "startDate": "2014-08-04", }, Object { + "displayName": "August 5, 2014", "endDate": "2014-08-05", "id": "20140805", "iso": "20140805", "name": "2014-08-05", + "periodType": "DAILY", "startDate": "2014-08-05", }, Object { + "displayName": "August 6, 2014", "endDate": "2014-08-06", "id": "20140806", "iso": "20140806", "name": "2014-08-06", + "periodType": "DAILY", "startDate": "2014-08-06", }, Object { + "displayName": "August 7, 2014", "endDate": "2014-08-07", "id": "20140807", "iso": "20140807", "name": "2014-08-07", + "periodType": "DAILY", "startDate": "2014-08-07", }, Object { + "displayName": "August 8, 2014", "endDate": "2014-08-08", "id": "20140808", "iso": "20140808", "name": "2014-08-08", + "periodType": "DAILY", "startDate": "2014-08-08", }, Object { + "displayName": "August 9, 2014", "endDate": "2014-08-09", "id": "20140809", "iso": "20140809", "name": "2014-08-09", + "periodType": "DAILY", "startDate": "2014-08-09", }, Object { + "displayName": "August 10, 2014", "endDate": "2014-08-10", "id": "20140810", "iso": "20140810", "name": "2014-08-10", + "periodType": "DAILY", "startDate": "2014-08-10", }, Object { + "displayName": "August 11, 2014", "endDate": "2014-08-11", "id": "20140811", "iso": "20140811", "name": "2014-08-11", + "periodType": "DAILY", "startDate": "2014-08-11", }, Object { + "displayName": "August 12, 2014", "endDate": "2014-08-12", "id": "20140812", "iso": "20140812", "name": "2014-08-12", + "periodType": "DAILY", "startDate": "2014-08-12", }, Object { + "displayName": "August 13, 2014", "endDate": "2014-08-13", "id": "20140813", "iso": "20140813", "name": "2014-08-13", + "periodType": "DAILY", "startDate": "2014-08-13", }, Object { + "displayName": "August 14, 2014", "endDate": "2014-08-14", "id": "20140814", "iso": "20140814", "name": "2014-08-14", + "periodType": "DAILY", "startDate": "2014-08-14", }, Object { + "displayName": "August 15, 2014", "endDate": "2014-08-15", "id": "20140815", "iso": "20140815", "name": "2014-08-15", + "periodType": "DAILY", "startDate": "2014-08-15", }, Object { + "displayName": "August 16, 2014", "endDate": "2014-08-16", "id": "20140816", "iso": "20140816", "name": "2014-08-16", + "periodType": "DAILY", "startDate": "2014-08-16", }, Object { + "displayName": "August 17, 2014", "endDate": "2014-08-17", "id": "20140817", "iso": "20140817", "name": "2014-08-17", + "periodType": "DAILY", "startDate": "2014-08-17", }, Object { + "displayName": "August 18, 2014", "endDate": "2014-08-18", "id": "20140818", "iso": "20140818", "name": "2014-08-18", + "periodType": "DAILY", "startDate": "2014-08-18", }, Object { + "displayName": "August 19, 2014", "endDate": "2014-08-19", "id": "20140819", "iso": "20140819", "name": "2014-08-19", + "periodType": "DAILY", "startDate": "2014-08-19", }, Object { + "displayName": "August 20, 2014", "endDate": "2014-08-20", "id": "20140820", "iso": "20140820", "name": "2014-08-20", + "periodType": "DAILY", "startDate": "2014-08-20", }, Object { + "displayName": "August 21, 2014", "endDate": "2014-08-21", "id": "20140821", "iso": "20140821", "name": "2014-08-21", + "periodType": "DAILY", "startDate": "2014-08-21", }, Object { + "displayName": "August 22, 2014", "endDate": "2014-08-22", "id": "20140822", "iso": "20140822", "name": "2014-08-22", + "periodType": "DAILY", "startDate": "2014-08-22", }, Object { + "displayName": "August 23, 2014", "endDate": "2014-08-23", "id": "20140823", "iso": "20140823", "name": "2014-08-23", + "periodType": "DAILY", "startDate": "2014-08-23", }, Object { + "displayName": "August 24, 2014", "endDate": "2014-08-24", "id": "20140824", "iso": "20140824", "name": "2014-08-24", + "periodType": "DAILY", "startDate": "2014-08-24", }, Object { + "displayName": "August 25, 2014", "endDate": "2014-08-25", "id": "20140825", "iso": "20140825", "name": "2014-08-25", + "periodType": "DAILY", "startDate": "2014-08-25", }, Object { + "displayName": "August 26, 2014", "endDate": "2014-08-26", "id": "20140826", "iso": "20140826", "name": "2014-08-26", + "periodType": "DAILY", "startDate": "2014-08-26", }, Object { + "displayName": "August 27, 2014", "endDate": "2014-08-27", "id": "20140827", "iso": "20140827", "name": "2014-08-27", + "periodType": "DAILY", "startDate": "2014-08-27", }, Object { + "displayName": "August 28, 2014", "endDate": "2014-08-28", "id": "20140828", "iso": "20140828", "name": "2014-08-28", + "periodType": "DAILY", "startDate": "2014-08-28", }, Object { + "displayName": "August 29, 2014", "endDate": "2014-08-29", "id": "20140829", "iso": "20140829", "name": "2014-08-29", + "periodType": "DAILY", "startDate": "2014-08-29", }, Object { + "displayName": "August 30, 2014", "endDate": "2014-08-30", "id": "20140830", "iso": "20140830", "name": "2014-08-30", + "periodType": "DAILY", "startDate": "2014-08-30", }, Object { + "displayName": "August 31, 2014", "endDate": "2014-08-31", "id": "20140831", "iso": "20140831", "name": "2014-08-31", + "periodType": "DAILY", "startDate": "2014-08-31", }, Object { + "displayName": "September 1, 2014", "endDate": "2014-09-01", "id": "20140901", "iso": "20140901", "name": "2014-09-01", + "periodType": "DAILY", "startDate": "2014-09-01", }, Object { + "displayName": "September 2, 2014", "endDate": "2014-09-02", "id": "20140902", "iso": "20140902", "name": "2014-09-02", + "periodType": "DAILY", "startDate": "2014-09-02", }, Object { + "displayName": "September 3, 2014", "endDate": "2014-09-03", "id": "20140903", "iso": "20140903", "name": "2014-09-03", + "periodType": "DAILY", "startDate": "2014-09-03", }, Object { + "displayName": "September 4, 2014", "endDate": "2014-09-04", "id": "20140904", "iso": "20140904", "name": "2014-09-04", + "periodType": "DAILY", "startDate": "2014-09-04", }, Object { + "displayName": "September 5, 2014", "endDate": "2014-09-05", "id": "20140905", "iso": "20140905", "name": "2014-09-05", + "periodType": "DAILY", "startDate": "2014-09-05", }, Object { + "displayName": "September 6, 2014", "endDate": "2014-09-06", "id": "20140906", "iso": "20140906", "name": "2014-09-06", + "periodType": "DAILY", "startDate": "2014-09-06", }, Object { + "displayName": "September 7, 2014", "endDate": "2014-09-07", "id": "20140907", "iso": "20140907", "name": "2014-09-07", + "periodType": "DAILY", "startDate": "2014-09-07", }, Object { + "displayName": "September 8, 2014", "endDate": "2014-09-08", "id": "20140908", "iso": "20140908", "name": "2014-09-08", + "periodType": "DAILY", "startDate": "2014-09-08", }, Object { + "displayName": "September 9, 2014", "endDate": "2014-09-09", "id": "20140909", "iso": "20140909", "name": "2014-09-09", + "periodType": "DAILY", "startDate": "2014-09-09", }, Object { + "displayName": "September 10, 2014", "endDate": "2014-09-10", "id": "20140910", "iso": "20140910", "name": "2014-09-10", + "periodType": "DAILY", "startDate": "2014-09-10", }, Object { + "displayName": "September 11, 2014", "endDate": "2014-09-11", "id": "20140911", "iso": "20140911", "name": "2014-09-11", + "periodType": "DAILY", "startDate": "2014-09-11", }, Object { + "displayName": "September 12, 2014", "endDate": "2014-09-12", "id": "20140912", "iso": "20140912", "name": "2014-09-12", + "periodType": "DAILY", "startDate": "2014-09-12", }, Object { + "displayName": "September 13, 2014", "endDate": "2014-09-13", "id": "20140913", "iso": "20140913", "name": "2014-09-13", + "periodType": "DAILY", "startDate": "2014-09-13", }, Object { + "displayName": "September 14, 2014", "endDate": "2014-09-14", "id": "20140914", "iso": "20140914", "name": "2014-09-14", + "periodType": "DAILY", "startDate": "2014-09-14", }, Object { + "displayName": "September 15, 2014", "endDate": "2014-09-15", "id": "20140915", "iso": "20140915", "name": "2014-09-15", + "periodType": "DAILY", "startDate": "2014-09-15", }, Object { + "displayName": "September 16, 2014", "endDate": "2014-09-16", "id": "20140916", "iso": "20140916", "name": "2014-09-16", + "periodType": "DAILY", "startDate": "2014-09-16", }, Object { + "displayName": "September 17, 2014", "endDate": "2014-09-17", "id": "20140917", "iso": "20140917", "name": "2014-09-17", + "periodType": "DAILY", "startDate": "2014-09-17", }, Object { + "displayName": "September 18, 2014", "endDate": "2014-09-18", "id": "20140918", "iso": "20140918", "name": "2014-09-18", + "periodType": "DAILY", "startDate": "2014-09-18", }, Object { + "displayName": "September 19, 2014", "endDate": "2014-09-19", "id": "20140919", "iso": "20140919", "name": "2014-09-19", + "periodType": "DAILY", "startDate": "2014-09-19", }, Object { + "displayName": "September 20, 2014", "endDate": "2014-09-20", "id": "20140920", "iso": "20140920", "name": "2014-09-20", + "periodType": "DAILY", "startDate": "2014-09-20", }, Object { + "displayName": "September 21, 2014", "endDate": "2014-09-21", "id": "20140921", "iso": "20140921", "name": "2014-09-21", + "periodType": "DAILY", "startDate": "2014-09-21", }, Object { + "displayName": "September 22, 2014", "endDate": "2014-09-22", "id": "20140922", "iso": "20140922", "name": "2014-09-22", + "periodType": "DAILY", "startDate": "2014-09-22", }, Object { + "displayName": "September 23, 2014", "endDate": "2014-09-23", "id": "20140923", "iso": "20140923", "name": "2014-09-23", + "periodType": "DAILY", "startDate": "2014-09-23", }, Object { + "displayName": "September 24, 2014", "endDate": "2014-09-24", "id": "20140924", "iso": "20140924", "name": "2014-09-24", + "periodType": "DAILY", "startDate": "2014-09-24", }, Object { + "displayName": "September 25, 2014", "endDate": "2014-09-25", "id": "20140925", "iso": "20140925", "name": "2014-09-25", + "periodType": "DAILY", "startDate": "2014-09-25", }, Object { + "displayName": "September 26, 2014", "endDate": "2014-09-26", "id": "20140926", "iso": "20140926", "name": "2014-09-26", + "periodType": "DAILY", "startDate": "2014-09-26", }, Object { + "displayName": "September 27, 2014", "endDate": "2014-09-27", "id": "20140927", "iso": "20140927", "name": "2014-09-27", + "periodType": "DAILY", "startDate": "2014-09-27", }, Object { + "displayName": "September 28, 2014", "endDate": "2014-09-28", "id": "20140928", "iso": "20140928", "name": "2014-09-28", + "periodType": "DAILY", "startDate": "2014-09-28", }, Object { + "displayName": "September 29, 2014", "endDate": "2014-09-29", "id": "20140929", "iso": "20140929", "name": "2014-09-29", + "periodType": "DAILY", "startDate": "2014-09-29", }, Object { + "displayName": "September 30, 2014", "endDate": "2014-09-30", "id": "20140930", "iso": "20140930", "name": "2014-09-30", + "periodType": "DAILY", "startDate": "2014-09-30", }, Object { + "displayName": "October 1, 2014", "endDate": "2014-10-01", "id": "20141001", "iso": "20141001", "name": "2014-10-01", + "periodType": "DAILY", "startDate": "2014-10-01", }, Object { + "displayName": "October 2, 2014", "endDate": "2014-10-02", "id": "20141002", "iso": "20141002", "name": "2014-10-02", + "periodType": "DAILY", "startDate": "2014-10-02", }, Object { + "displayName": "October 3, 2014", "endDate": "2014-10-03", "id": "20141003", "iso": "20141003", "name": "2014-10-03", + "periodType": "DAILY", "startDate": "2014-10-03", }, Object { + "displayName": "October 4, 2014", "endDate": "2014-10-04", "id": "20141004", "iso": "20141004", "name": "2014-10-04", + "periodType": "DAILY", "startDate": "2014-10-04", }, Object { + "displayName": "October 5, 2014", "endDate": "2014-10-05", "id": "20141005", "iso": "20141005", "name": "2014-10-05", + "periodType": "DAILY", "startDate": "2014-10-05", }, Object { + "displayName": "October 6, 2014", "endDate": "2014-10-06", "id": "20141006", "iso": "20141006", "name": "2014-10-06", + "periodType": "DAILY", "startDate": "2014-10-06", }, Object { + "displayName": "October 7, 2014", "endDate": "2014-10-07", "id": "20141007", "iso": "20141007", "name": "2014-10-07", + "periodType": "DAILY", "startDate": "2014-10-07", }, Object { + "displayName": "October 8, 2014", "endDate": "2014-10-08", "id": "20141008", "iso": "20141008", "name": "2014-10-08", + "periodType": "DAILY", "startDate": "2014-10-08", }, Object { + "displayName": "October 9, 2014", "endDate": "2014-10-09", "id": "20141009", "iso": "20141009", "name": "2014-10-09", + "periodType": "DAILY", "startDate": "2014-10-09", }, Object { + "displayName": "October 10, 2014", "endDate": "2014-10-10", "id": "20141010", "iso": "20141010", "name": "2014-10-10", + "periodType": "DAILY", "startDate": "2014-10-10", }, Object { + "displayName": "October 11, 2014", "endDate": "2014-10-11", "id": "20141011", "iso": "20141011", "name": "2014-10-11", + "periodType": "DAILY", "startDate": "2014-10-11", }, Object { + "displayName": "October 12, 2014", "endDate": "2014-10-12", "id": "20141012", "iso": "20141012", "name": "2014-10-12", + "periodType": "DAILY", "startDate": "2014-10-12", }, Object { + "displayName": "October 13, 2014", "endDate": "2014-10-13", "id": "20141013", "iso": "20141013", "name": "2014-10-13", + "periodType": "DAILY", "startDate": "2014-10-13", }, Object { + "displayName": "October 14, 2014", "endDate": "2014-10-14", "id": "20141014", "iso": "20141014", "name": "2014-10-14", + "periodType": "DAILY", "startDate": "2014-10-14", }, Object { + "displayName": "October 15, 2014", "endDate": "2014-10-15", "id": "20141015", "iso": "20141015", "name": "2014-10-15", + "periodType": "DAILY", "startDate": "2014-10-15", }, Object { + "displayName": "October 16, 2014", "endDate": "2014-10-16", "id": "20141016", "iso": "20141016", "name": "2014-10-16", + "periodType": "DAILY", "startDate": "2014-10-16", }, Object { + "displayName": "October 17, 2014", "endDate": "2014-10-17", "id": "20141017", "iso": "20141017", "name": "2014-10-17", + "periodType": "DAILY", "startDate": "2014-10-17", }, Object { + "displayName": "October 18, 2014", "endDate": "2014-10-18", "id": "20141018", "iso": "20141018", "name": "2014-10-18", + "periodType": "DAILY", "startDate": "2014-10-18", }, Object { + "displayName": "October 19, 2014", "endDate": "2014-10-19", "id": "20141019", "iso": "20141019", "name": "2014-10-19", + "periodType": "DAILY", "startDate": "2014-10-19", }, Object { + "displayName": "October 20, 2014", "endDate": "2014-10-20", "id": "20141020", "iso": "20141020", "name": "2014-10-20", + "periodType": "DAILY", "startDate": "2014-10-20", }, Object { + "displayName": "October 21, 2014", "endDate": "2014-10-21", "id": "20141021", "iso": "20141021", "name": "2014-10-21", + "periodType": "DAILY", "startDate": "2014-10-21", }, Object { + "displayName": "October 22, 2014", "endDate": "2014-10-22", "id": "20141022", "iso": "20141022", "name": "2014-10-22", + "periodType": "DAILY", "startDate": "2014-10-22", }, Object { + "displayName": "October 23, 2014", "endDate": "2014-10-23", "id": "20141023", "iso": "20141023", "name": "2014-10-23", + "periodType": "DAILY", "startDate": "2014-10-23", }, Object { + "displayName": "October 24, 2014", "endDate": "2014-10-24", "id": "20141024", "iso": "20141024", "name": "2014-10-24", + "periodType": "DAILY", "startDate": "2014-10-24", }, Object { + "displayName": "October 25, 2014", "endDate": "2014-10-25", "id": "20141025", "iso": "20141025", "name": "2014-10-25", + "periodType": "DAILY", "startDate": "2014-10-25", }, Object { + "displayName": "October 26, 2014", "endDate": "2014-10-26", "id": "20141026", "iso": "20141026", "name": "2014-10-26", + "periodType": "DAILY", "startDate": "2014-10-26", }, Object { + "displayName": "October 27, 2014", "endDate": "2014-10-27", "id": "20141027", "iso": "20141027", "name": "2014-10-27", + "periodType": "DAILY", "startDate": "2014-10-27", }, Object { + "displayName": "October 28, 2014", "endDate": "2014-10-28", "id": "20141028", "iso": "20141028", "name": "2014-10-28", + "periodType": "DAILY", "startDate": "2014-10-28", }, Object { + "displayName": "October 29, 2014", "endDate": "2014-10-29", "id": "20141029", "iso": "20141029", "name": "2014-10-29", + "periodType": "DAILY", "startDate": "2014-10-29", }, Object { + "displayName": "October 30, 2014", "endDate": "2014-10-30", "id": "20141030", "iso": "20141030", "name": "2014-10-30", + "periodType": "DAILY", "startDate": "2014-10-30", }, Object { + "displayName": "October 31, 2014", "endDate": "2014-10-31", "id": "20141031", "iso": "20141031", "name": "2014-10-31", + "periodType": "DAILY", "startDate": "2014-10-31", }, Object { + "displayName": "November 1, 2014", "endDate": "2014-11-01", "id": "20141101", "iso": "20141101", "name": "2014-11-01", + "periodType": "DAILY", "startDate": "2014-11-01", }, Object { + "displayName": "November 2, 2014", "endDate": "2014-11-02", "id": "20141102", "iso": "20141102", "name": "2014-11-02", + "periodType": "DAILY", "startDate": "2014-11-02", }, Object { + "displayName": "November 3, 2014", "endDate": "2014-11-03", "id": "20141103", "iso": "20141103", "name": "2014-11-03", + "periodType": "DAILY", "startDate": "2014-11-03", }, Object { + "displayName": "November 4, 2014", "endDate": "2014-11-04", "id": "20141104", "iso": "20141104", "name": "2014-11-04", + "periodType": "DAILY", "startDate": "2014-11-04", }, Object { + "displayName": "November 5, 2014", "endDate": "2014-11-05", "id": "20141105", "iso": "20141105", "name": "2014-11-05", + "periodType": "DAILY", "startDate": "2014-11-05", }, Object { + "displayName": "November 6, 2014", "endDate": "2014-11-06", "id": "20141106", "iso": "20141106", "name": "2014-11-06", + "periodType": "DAILY", "startDate": "2014-11-06", }, Object { + "displayName": "November 7, 2014", "endDate": "2014-11-07", "id": "20141107", "iso": "20141107", "name": "2014-11-07", + "periodType": "DAILY", "startDate": "2014-11-07", }, Object { + "displayName": "November 8, 2014", "endDate": "2014-11-08", "id": "20141108", "iso": "20141108", "name": "2014-11-08", + "periodType": "DAILY", "startDate": "2014-11-08", }, Object { + "displayName": "November 9, 2014", "endDate": "2014-11-09", "id": "20141109", "iso": "20141109", "name": "2014-11-09", + "periodType": "DAILY", "startDate": "2014-11-09", }, Object { + "displayName": "November 10, 2014", "endDate": "2014-11-10", "id": "20141110", "iso": "20141110", "name": "2014-11-10", + "periodType": "DAILY", "startDate": "2014-11-10", }, Object { + "displayName": "November 11, 2014", "endDate": "2014-11-11", "id": "20141111", "iso": "20141111", "name": "2014-11-11", + "periodType": "DAILY", "startDate": "2014-11-11", }, Object { + "displayName": "November 12, 2014", "endDate": "2014-11-12", "id": "20141112", "iso": "20141112", "name": "2014-11-12", + "periodType": "DAILY", "startDate": "2014-11-12", }, Object { + "displayName": "November 13, 2014", "endDate": "2014-11-13", "id": "20141113", "iso": "20141113", "name": "2014-11-13", + "periodType": "DAILY", "startDate": "2014-11-13", }, Object { + "displayName": "November 14, 2014", "endDate": "2014-11-14", "id": "20141114", "iso": "20141114", "name": "2014-11-14", + "periodType": "DAILY", "startDate": "2014-11-14", }, Object { + "displayName": "November 15, 2014", "endDate": "2014-11-15", "id": "20141115", "iso": "20141115", "name": "2014-11-15", + "periodType": "DAILY", "startDate": "2014-11-15", }, Object { + "displayName": "November 16, 2014", "endDate": "2014-11-16", "id": "20141116", "iso": "20141116", "name": "2014-11-16", + "periodType": "DAILY", "startDate": "2014-11-16", }, Object { + "displayName": "November 17, 2014", "endDate": "2014-11-17", "id": "20141117", "iso": "20141117", "name": "2014-11-17", + "periodType": "DAILY", "startDate": "2014-11-17", }, Object { + "displayName": "November 18, 2014", "endDate": "2014-11-18", "id": "20141118", "iso": "20141118", "name": "2014-11-18", + "periodType": "DAILY", "startDate": "2014-11-18", }, Object { + "displayName": "November 19, 2014", "endDate": "2014-11-19", "id": "20141119", "iso": "20141119", "name": "2014-11-19", + "periodType": "DAILY", "startDate": "2014-11-19", }, Object { + "displayName": "November 20, 2014", "endDate": "2014-11-20", "id": "20141120", "iso": "20141120", "name": "2014-11-20", + "periodType": "DAILY", "startDate": "2014-11-20", }, Object { + "displayName": "November 21, 2014", "endDate": "2014-11-21", "id": "20141121", "iso": "20141121", "name": "2014-11-21", + "periodType": "DAILY", "startDate": "2014-11-21", }, Object { + "displayName": "November 22, 2014", "endDate": "2014-11-22", "id": "20141122", "iso": "20141122", "name": "2014-11-22", + "periodType": "DAILY", "startDate": "2014-11-22", }, Object { + "displayName": "November 23, 2014", "endDate": "2014-11-23", "id": "20141123", "iso": "20141123", "name": "2014-11-23", + "periodType": "DAILY", "startDate": "2014-11-23", }, Object { + "displayName": "November 24, 2014", "endDate": "2014-11-24", "id": "20141124", "iso": "20141124", "name": "2014-11-24", + "periodType": "DAILY", "startDate": "2014-11-24", }, Object { + "displayName": "November 25, 2014", "endDate": "2014-11-25", "id": "20141125", "iso": "20141125", "name": "2014-11-25", + "periodType": "DAILY", "startDate": "2014-11-25", }, Object { + "displayName": "November 26, 2014", "endDate": "2014-11-26", "id": "20141126", "iso": "20141126", "name": "2014-11-26", + "periodType": "DAILY", "startDate": "2014-11-26", }, Object { + "displayName": "November 27, 2014", "endDate": "2014-11-27", "id": "20141127", "iso": "20141127", "name": "2014-11-27", + "periodType": "DAILY", "startDate": "2014-11-27", }, Object { + "displayName": "November 28, 2014", "endDate": "2014-11-28", "id": "20141128", "iso": "20141128", "name": "2014-11-28", + "periodType": "DAILY", "startDate": "2014-11-28", }, Object { + "displayName": "November 29, 2014", "endDate": "2014-11-29", "id": "20141129", "iso": "20141129", "name": "2014-11-29", + "periodType": "DAILY", "startDate": "2014-11-29", }, Object { + "displayName": "November 30, 2014", "endDate": "2014-11-30", "id": "20141130", "iso": "20141130", "name": "2014-11-30", + "periodType": "DAILY", "startDate": "2014-11-30", }, Object { + "displayName": "December 1, 2014", "endDate": "2014-12-01", "id": "20141201", "iso": "20141201", "name": "2014-12-01", + "periodType": "DAILY", "startDate": "2014-12-01", }, Object { + "displayName": "December 2, 2014", "endDate": "2014-12-02", "id": "20141202", "iso": "20141202", "name": "2014-12-02", + "periodType": "DAILY", "startDate": "2014-12-02", }, Object { + "displayName": "December 3, 2014", "endDate": "2014-12-03", "id": "20141203", "iso": "20141203", "name": "2014-12-03", + "periodType": "DAILY", "startDate": "2014-12-03", }, Object { + "displayName": "December 4, 2014", "endDate": "2014-12-04", "id": "20141204", "iso": "20141204", "name": "2014-12-04", + "periodType": "DAILY", "startDate": "2014-12-04", }, Object { + "displayName": "December 5, 2014", "endDate": "2014-12-05", "id": "20141205", "iso": "20141205", "name": "2014-12-05", + "periodType": "DAILY", "startDate": "2014-12-05", }, Object { + "displayName": "December 6, 2014", "endDate": "2014-12-06", "id": "20141206", "iso": "20141206", "name": "2014-12-06", + "periodType": "DAILY", "startDate": "2014-12-06", }, Object { + "displayName": "December 7, 2014", "endDate": "2014-12-07", "id": "20141207", "iso": "20141207", "name": "2014-12-07", + "periodType": "DAILY", "startDate": "2014-12-07", }, Object { + "displayName": "December 8, 2014", "endDate": "2014-12-08", "id": "20141208", "iso": "20141208", "name": "2014-12-08", + "periodType": "DAILY", "startDate": "2014-12-08", }, Object { + "displayName": "December 9, 2014", "endDate": "2014-12-09", "id": "20141209", "iso": "20141209", "name": "2014-12-09", + "periodType": "DAILY", "startDate": "2014-12-09", }, Object { + "displayName": "December 10, 2014", "endDate": "2014-12-10", "id": "20141210", "iso": "20141210", "name": "2014-12-10", + "periodType": "DAILY", "startDate": "2014-12-10", }, Object { + "displayName": "December 11, 2014", "endDate": "2014-12-11", "id": "20141211", "iso": "20141211", "name": "2014-12-11", + "periodType": "DAILY", "startDate": "2014-12-11", }, Object { + "displayName": "December 12, 2014", "endDate": "2014-12-12", "id": "20141212", "iso": "20141212", "name": "2014-12-12", + "periodType": "DAILY", "startDate": "2014-12-12", }, Object { + "displayName": "December 13, 2014", "endDate": "2014-12-13", "id": "20141213", "iso": "20141213", "name": "2014-12-13", + "periodType": "DAILY", "startDate": "2014-12-13", }, Object { + "displayName": "December 14, 2014", "endDate": "2014-12-14", "id": "20141214", "iso": "20141214", "name": "2014-12-14", + "periodType": "DAILY", "startDate": "2014-12-14", }, Object { + "displayName": "December 15, 2014", "endDate": "2014-12-15", "id": "20141215", "iso": "20141215", "name": "2014-12-15", + "periodType": "DAILY", "startDate": "2014-12-15", }, Object { + "displayName": "December 16, 2014", "endDate": "2014-12-16", "id": "20141216", "iso": "20141216", "name": "2014-12-16", + "periodType": "DAILY", "startDate": "2014-12-16", }, Object { + "displayName": "December 17, 2014", "endDate": "2014-12-17", "id": "20141217", "iso": "20141217", "name": "2014-12-17", + "periodType": "DAILY", "startDate": "2014-12-17", }, Object { + "displayName": "December 18, 2014", "endDate": "2014-12-18", "id": "20141218", "iso": "20141218", "name": "2014-12-18", + "periodType": "DAILY", "startDate": "2014-12-18", }, Object { + "displayName": "December 19, 2014", "endDate": "2014-12-19", "id": "20141219", "iso": "20141219", "name": "2014-12-19", + "periodType": "DAILY", "startDate": "2014-12-19", }, Object { + "displayName": "December 20, 2014", "endDate": "2014-12-20", "id": "20141220", "iso": "20141220", "name": "2014-12-20", + "periodType": "DAILY", "startDate": "2014-12-20", }, Object { + "displayName": "December 21, 2014", "endDate": "2014-12-21", "id": "20141221", "iso": "20141221", "name": "2014-12-21", + "periodType": "DAILY", "startDate": "2014-12-21", }, Object { + "displayName": "December 22, 2014", "endDate": "2014-12-22", "id": "20141222", "iso": "20141222", "name": "2014-12-22", + "periodType": "DAILY", "startDate": "2014-12-22", }, Object { + "displayName": "December 23, 2014", "endDate": "2014-12-23", "id": "20141223", "iso": "20141223", "name": "2014-12-23", + "periodType": "DAILY", "startDate": "2014-12-23", }, Object { + "displayName": "December 24, 2014", "endDate": "2014-12-24", "id": "20141224", "iso": "20141224", "name": "2014-12-24", + "periodType": "DAILY", "startDate": "2014-12-24", }, Object { + "displayName": "December 25, 2014", "endDate": "2014-12-25", "id": "20141225", "iso": "20141225", "name": "2014-12-25", + "periodType": "DAILY", "startDate": "2014-12-25", }, Object { + "displayName": "December 26, 2014", "endDate": "2014-12-26", "id": "20141226", "iso": "20141226", "name": "2014-12-26", + "periodType": "DAILY", "startDate": "2014-12-26", }, Object { + "displayName": "December 27, 2014", "endDate": "2014-12-27", "id": "20141227", "iso": "20141227", "name": "2014-12-27", + "periodType": "DAILY", "startDate": "2014-12-27", }, Object { + "displayName": "December 28, 2014", "endDate": "2014-12-28", "id": "20141228", "iso": "20141228", "name": "2014-12-28", + "periodType": "DAILY", "startDate": "2014-12-28", }, Object { + "displayName": "December 29, 2014", "endDate": "2014-12-29", "id": "20141229", "iso": "20141229", "name": "2014-12-29", + "periodType": "DAILY", "startDate": "2014-12-29", }, Object { + "displayName": "December 30, 2014", "endDate": "2014-12-30", "id": "20141230", "iso": "20141230", "name": "2014-12-30", + "periodType": "DAILY", "startDate": "2014-12-30", }, Object { + "displayName": "December 31, 2014", "endDate": "2014-12-31", "id": "20141231", "iso": "20141231", "name": "2014-12-31", + "periodType": "DAILY", "startDate": "2014-12-31", }, ], @@ -2815,63 +3609,93 @@ Object { "name": "Financial year (Start April)", "options": Array [ Object { + "displayName": "April 2005 - March 2006", "endDate": "2006-03-31", "id": "2005April", + "iso": "2005April", "name": "April 2005 - March 2006", + "periodType": "FYAPR", "startDate": "2005-04-01", }, Object { + "displayName": "April 2006 - March 2007", "endDate": "2007-03-31", "id": "2006April", + "iso": "2006April", "name": "April 2006 - March 2007", + "periodType": "FYAPR", "startDate": "2006-04-01", }, Object { + "displayName": "April 2007 - March 2008", "endDate": "2008-03-31", "id": "2007April", + "iso": "2007April", "name": "April 2007 - March 2008", + "periodType": "FYAPR", "startDate": "2007-04-01", }, Object { + "displayName": "April 2008 - March 2009", "endDate": "2009-03-31", "id": "2008April", + "iso": "2008April", "name": "April 2008 - March 2009", + "periodType": "FYAPR", "startDate": "2008-04-01", }, Object { + "displayName": "April 2009 - March 2010", "endDate": "2010-03-31", "id": "2009April", + "iso": "2009April", "name": "April 2009 - March 2010", + "periodType": "FYAPR", "startDate": "2009-04-01", }, Object { + "displayName": "April 2010 - March 2011", "endDate": "2011-03-31", "id": "2010April", + "iso": "2010April", "name": "April 2010 - March 2011", + "periodType": "FYAPR", "startDate": "2010-04-01", }, Object { + "displayName": "April 2011 - March 2012", "endDate": "2012-03-31", "id": "2011April", + "iso": "2011April", "name": "April 2011 - March 2012", + "periodType": "FYAPR", "startDate": "2011-04-01", }, Object { + "displayName": "April 2012 - March 2013", "endDate": "2013-03-31", "id": "2012April", + "iso": "2012April", "name": "April 2012 - March 2013", + "periodType": "FYAPR", "startDate": "2012-04-01", }, Object { + "displayName": "April 2013 - March 2014", "endDate": "2014-03-31", "id": "2013April", + "iso": "2013April", "name": "April 2013 - March 2014", + "periodType": "FYAPR", "startDate": "2013-04-01", }, Object { + "displayName": "April 2014 - March 2015", "endDate": "2015-03-31", "id": "2014April", + "iso": "2014April", "name": "April 2014 - March 2015", + "periodType": "FYAPR", "startDate": "2014-04-01", }, ], @@ -2885,63 +3709,93 @@ Object { "name": "Financial year (Start July)", "options": Array [ Object { + "displayName": "July 2005 - June 2006", "endDate": "2006-06-30", "id": "2005July", + "iso": "2005July", "name": "July 2005 - June 2006", + "periodType": "FYJUL", "startDate": "2005-07-01", }, Object { + "displayName": "July 2006 - June 2007", "endDate": "2007-06-30", "id": "2006July", + "iso": "2006July", "name": "July 2006 - June 2007", + "periodType": "FYJUL", "startDate": "2006-07-01", }, Object { + "displayName": "July 2007 - June 2008", "endDate": "2008-06-30", "id": "2007July", + "iso": "2007July", "name": "July 2007 - June 2008", + "periodType": "FYJUL", "startDate": "2007-07-01", }, Object { + "displayName": "July 2008 - June 2009", "endDate": "2009-06-30", "id": "2008July", + "iso": "2008July", "name": "July 2008 - June 2009", + "periodType": "FYJUL", "startDate": "2008-07-01", }, Object { + "displayName": "July 2009 - June 2010", "endDate": "2010-06-30", "id": "2009July", + "iso": "2009July", "name": "July 2009 - June 2010", + "periodType": "FYJUL", "startDate": "2009-07-01", }, Object { + "displayName": "July 2010 - June 2011", "endDate": "2011-06-30", "id": "2010July", + "iso": "2010July", "name": "July 2010 - June 2011", + "periodType": "FYJUL", "startDate": "2010-07-01", }, Object { + "displayName": "July 2011 - June 2012", "endDate": "2012-06-30", "id": "2011July", + "iso": "2011July", "name": "July 2011 - June 2012", + "periodType": "FYJUL", "startDate": "2011-07-01", }, Object { + "displayName": "July 2012 - June 2013", "endDate": "2013-06-30", "id": "2012July", + "iso": "2012July", "name": "July 2012 - June 2013", + "periodType": "FYJUL", "startDate": "2012-07-01", }, Object { + "displayName": "July 2013 - June 2014", "endDate": "2014-06-30", "id": "2013July", + "iso": "2013July", "name": "July 2013 - June 2014", + "periodType": "FYJUL", "startDate": "2013-07-01", }, Object { + "displayName": "July 2014 - June 2015", "endDate": "2015-06-30", "id": "2014July", + "iso": "2014July", "name": "July 2014 - June 2015", + "periodType": "FYJUL", "startDate": "2014-07-01", }, ], @@ -2955,63 +3809,93 @@ Object { "name": "Financial year (Start November)", "options": Array [ Object { + "displayName": "November 2005 - October 2006", "endDate": "2006-10-31", "id": "2005Nov", + "iso": "2005Nov", "name": "November 2005 - October 2006", + "periodType": "FYNOV", "startDate": "2005-11-01", }, Object { + "displayName": "November 2006 - October 2007", "endDate": "2007-10-31", "id": "2006Nov", + "iso": "2006Nov", "name": "November 2006 - October 2007", + "periodType": "FYNOV", "startDate": "2006-11-01", }, Object { + "displayName": "November 2007 - October 2008", "endDate": "2008-10-31", "id": "2007Nov", + "iso": "2007Nov", "name": "November 2007 - October 2008", + "periodType": "FYNOV", "startDate": "2007-11-01", }, Object { + "displayName": "November 2008 - October 2009", "endDate": "2009-10-31", "id": "2008Nov", + "iso": "2008Nov", "name": "November 2008 - October 2009", + "periodType": "FYNOV", "startDate": "2008-11-01", }, Object { + "displayName": "November 2009 - October 2010", "endDate": "2010-10-31", "id": "2009Nov", + "iso": "2009Nov", "name": "November 2009 - October 2010", + "periodType": "FYNOV", "startDate": "2009-11-01", }, Object { + "displayName": "November 2010 - October 2011", "endDate": "2011-10-31", "id": "2010Nov", + "iso": "2010Nov", "name": "November 2010 - October 2011", + "periodType": "FYNOV", "startDate": "2010-11-01", }, Object { + "displayName": "November 2011 - October 2012", "endDate": "2012-10-31", "id": "2011Nov", + "iso": "2011Nov", "name": "November 2011 - October 2012", + "periodType": "FYNOV", "startDate": "2011-11-01", }, Object { + "displayName": "November 2012 - October 2013", "endDate": "2013-10-31", "id": "2012Nov", + "iso": "2012Nov", "name": "November 2012 - October 2013", + "periodType": "FYNOV", "startDate": "2012-11-01", }, Object { + "displayName": "November 2013 - October 2014", "endDate": "2014-10-31", "id": "2013Nov", + "iso": "2013Nov", "name": "November 2013 - October 2014", + "periodType": "FYNOV", "startDate": "2013-11-01", }, Object { + "displayName": "November 2014 - October 2015", "endDate": "2015-10-31", "id": "2014Nov", + "iso": "2014Nov", "name": "November 2014 - October 2015", + "periodType": "FYNOV", "startDate": "2014-11-01", }, ], @@ -3025,63 +3909,93 @@ Object { "name": "Financial year (Start October)", "options": Array [ Object { + "displayName": "October 2005 - September 2006", "endDate": "2006-09-30", "id": "2005Oct", + "iso": "2005Oct", "name": "October 2005 - September 2006", + "periodType": "FYOCT", "startDate": "2005-10-01", }, Object { + "displayName": "October 2006 - September 2007", "endDate": "2007-09-30", "id": "2006Oct", + "iso": "2006Oct", "name": "October 2006 - September 2007", + "periodType": "FYOCT", "startDate": "2006-10-01", }, Object { + "displayName": "October 2007 - September 2008", "endDate": "2008-09-30", "id": "2007Oct", + "iso": "2007Oct", "name": "October 2007 - September 2008", + "periodType": "FYOCT", "startDate": "2007-10-01", }, Object { + "displayName": "October 2008 - September 2009", "endDate": "2009-09-30", "id": "2008Oct", + "iso": "2008Oct", "name": "October 2008 - September 2009", + "periodType": "FYOCT", "startDate": "2008-10-01", }, Object { + "displayName": "October 2009 - September 2010", "endDate": "2010-09-30", "id": "2009Oct", + "iso": "2009Oct", "name": "October 2009 - September 2010", + "periodType": "FYOCT", "startDate": "2009-10-01", }, Object { + "displayName": "October 2010 - September 2011", "endDate": "2011-09-30", "id": "2010Oct", + "iso": "2010Oct", "name": "October 2010 - September 2011", + "periodType": "FYOCT", "startDate": "2010-10-01", }, Object { + "displayName": "October 2011 - September 2012", "endDate": "2012-09-30", "id": "2011Oct", + "iso": "2011Oct", "name": "October 2011 - September 2012", + "periodType": "FYOCT", "startDate": "2011-10-01", }, Object { + "displayName": "October 2012 - September 2013", "endDate": "2013-09-30", "id": "2012Oct", + "iso": "2012Oct", "name": "October 2012 - September 2013", + "periodType": "FYOCT", "startDate": "2012-10-01", }, Object { + "displayName": "October 2013 - September 2014", "endDate": "2014-09-30", "id": "2013Oct", + "iso": "2013Oct", "name": "October 2013 - September 2014", + "periodType": "FYOCT", "startDate": "2013-10-01", }, Object { + "displayName": "October 2014 - September 2015", "endDate": "2015-09-30", "id": "2014Oct", + "iso": "2014Oct", "name": "October 2014 - September 2015", + "periodType": "FYOCT", "startDate": "2014-10-01", }, ], @@ -3095,87 +4009,111 @@ Object { "name": "Monthly", "options": Array [ Object { + "displayName": "January 2014", "endDate": "2014-01-31", "id": "201401", "iso": "201401", "name": "January 2014", + "periodType": "MONTHLY", "startDate": "2014-01-01", }, Object { + "displayName": "February 2014", "endDate": "2014-02-28", "id": "201402", "iso": "201402", "name": "February 2014", + "periodType": "MONTHLY", "startDate": "2014-02-01", }, Object { + "displayName": "March 2014", "endDate": "2014-03-31", "id": "201403", "iso": "201403", "name": "March 2014", + "periodType": "MONTHLY", "startDate": "2014-03-01", }, Object { + "displayName": "April 2014", "endDate": "2014-04-30", "id": "201404", "iso": "201404", "name": "April 2014", + "periodType": "MONTHLY", "startDate": "2014-04-01", }, Object { + "displayName": "May 2014", "endDate": "2014-05-31", "id": "201405", "iso": "201405", "name": "May 2014", + "periodType": "MONTHLY", "startDate": "2014-05-01", }, Object { + "displayName": "June 2014", "endDate": "2014-06-30", "id": "201406", "iso": "201406", "name": "June 2014", + "periodType": "MONTHLY", "startDate": "2014-06-01", }, Object { + "displayName": "July 2014", "endDate": "2014-07-31", "id": "201407", "iso": "201407", "name": "July 2014", + "periodType": "MONTHLY", "startDate": "2014-07-01", }, Object { + "displayName": "August 2014", "endDate": "2014-08-31", "id": "201408", "iso": "201408", "name": "August 2014", + "periodType": "MONTHLY", "startDate": "2014-08-01", }, Object { + "displayName": "September 2014", "endDate": "2014-09-30", "id": "201409", "iso": "201409", "name": "September 2014", + "periodType": "MONTHLY", "startDate": "2014-09-01", }, Object { + "displayName": "October 2014", "endDate": "2014-10-31", "id": "201410", "iso": "201410", "name": "October 2014", + "periodType": "MONTHLY", "startDate": "2014-10-01", }, Object { + "displayName": "November 2014", "endDate": "2014-11-30", "id": "201411", "iso": "201411", "name": "November 2014", + "periodType": "MONTHLY", "startDate": "2014-11-01", }, Object { + "displayName": "December 2014", "endDate": "2014-12-31", "id": "201412", "iso": "201412", "name": "December 2014", + "periodType": "MONTHLY", "startDate": "2014-12-01", }, ], @@ -3189,31 +4127,39 @@ Object { "name": "Quarterly", "options": Array [ Object { + "displayName": "January - March 2014", "endDate": "2014-03-31", "id": "2014Q1", "iso": "2014Q1", "name": "January - March 2014", + "periodType": "QUARTERLY", "startDate": "2014-01-01", }, Object { + "displayName": "April - June 2014", "endDate": "2014-06-30", "id": "2014Q2", "iso": "2014Q2", "name": "April - June 2014", + "periodType": "QUARTERLY", "startDate": "2014-04-01", }, Object { + "displayName": "July - September 2014", "endDate": "2014-09-30", "id": "2014Q3", "iso": "2014Q3", "name": "July - September 2014", + "periodType": "QUARTERLY", "startDate": "2014-07-01", }, Object { + "displayName": "October - December 2014", "endDate": "2014-12-31", "id": "2014Q4", "iso": "2014Q4", "name": "October - December 2014", + "periodType": "QUARTERLY", "startDate": "2014-10-01", }, ], @@ -3227,17 +4173,21 @@ Object { "name": "Six-monthly", "options": Array [ Object { + "displayName": "January - June 2014", "endDate": "2014-06-30", "id": "2014S1", "iso": "2014S1", "name": "January - June 2014", + "periodType": "SIXMONTHLY", "startDate": "2014-01-01", }, Object { + "displayName": "July - December 2014", "endDate": "2014-12-31", "id": "2014S2", "iso": "2014S2", "name": "July - December 2014", + "periodType": "SIXMONTHLY", "startDate": "2014-07-01", }, ], @@ -3251,17 +4201,21 @@ Object { "name": "Six-monthly April", "options": Array [ Object { + "displayName": "April - September 2014", "endDate": "2014-09-30", "id": "2014AprilS1", "iso": "2014AprilS1", "name": "April - September 2014", + "periodType": "SIXMONTHLYAPR", "startDate": "2014-04-01", }, Object { + "displayName": "October 2014 - March 2015", "endDate": "2015-03-31", "id": "2014AprilS2", "iso": "2014AprilS2", "name": "October 2014 - March 2015", + "periodType": "SIXMONTHLYAPR", "startDate": "2014-10-01", }, ], @@ -3275,367 +4229,471 @@ Object { "name": "Weekly", "options": Array [ Object { + "displayName": "Week 1 - 2013-12-30 - 2014-01-05", "endDate": "2014-01-05", "id": "2014W1", "iso": "2014W1", "name": "Week 1 - 2013-12-30 - 2014-01-05", + "periodType": "WEEKLY", "startDate": "2013-12-30", }, Object { + "displayName": "Week 2 - 2014-01-06 - 2014-01-12", "endDate": "2014-01-12", "id": "2014W2", "iso": "2014W2", "name": "Week 2 - 2014-01-06 - 2014-01-12", + "periodType": "WEEKLY", "startDate": "2014-01-06", }, Object { + "displayName": "Week 3 - 2014-01-13 - 2014-01-19", "endDate": "2014-01-19", "id": "2014W3", "iso": "2014W3", "name": "Week 3 - 2014-01-13 - 2014-01-19", + "periodType": "WEEKLY", "startDate": "2014-01-13", }, Object { + "displayName": "Week 4 - 2014-01-20 - 2014-01-26", "endDate": "2014-01-26", "id": "2014W4", "iso": "2014W4", "name": "Week 4 - 2014-01-20 - 2014-01-26", + "periodType": "WEEKLY", "startDate": "2014-01-20", }, Object { + "displayName": "Week 5 - 2014-01-27 - 2014-02-02", "endDate": "2014-02-02", "id": "2014W5", "iso": "2014W5", "name": "Week 5 - 2014-01-27 - 2014-02-02", + "periodType": "WEEKLY", "startDate": "2014-01-27", }, Object { + "displayName": "Week 6 - 2014-02-03 - 2014-02-09", "endDate": "2014-02-09", "id": "2014W6", "iso": "2014W6", "name": "Week 6 - 2014-02-03 - 2014-02-09", + "periodType": "WEEKLY", "startDate": "2014-02-03", }, Object { + "displayName": "Week 7 - 2014-02-10 - 2014-02-16", "endDate": "2014-02-16", "id": "2014W7", "iso": "2014W7", "name": "Week 7 - 2014-02-10 - 2014-02-16", + "periodType": "WEEKLY", "startDate": "2014-02-10", }, Object { + "displayName": "Week 8 - 2014-02-17 - 2014-02-23", "endDate": "2014-02-23", "id": "2014W8", "iso": "2014W8", "name": "Week 8 - 2014-02-17 - 2014-02-23", + "periodType": "WEEKLY", "startDate": "2014-02-17", }, Object { + "displayName": "Week 9 - 2014-02-24 - 2014-03-02", "endDate": "2014-03-02", "id": "2014W9", "iso": "2014W9", "name": "Week 9 - 2014-02-24 - 2014-03-02", + "periodType": "WEEKLY", "startDate": "2014-02-24", }, Object { + "displayName": "Week 10 - 2014-03-03 - 2014-03-09", "endDate": "2014-03-09", "id": "2014W10", "iso": "2014W10", "name": "Week 10 - 2014-03-03 - 2014-03-09", + "periodType": "WEEKLY", "startDate": "2014-03-03", }, Object { + "displayName": "Week 11 - 2014-03-10 - 2014-03-16", "endDate": "2014-03-16", "id": "2014W11", "iso": "2014W11", "name": "Week 11 - 2014-03-10 - 2014-03-16", + "periodType": "WEEKLY", "startDate": "2014-03-10", }, Object { + "displayName": "Week 12 - 2014-03-17 - 2014-03-23", "endDate": "2014-03-23", "id": "2014W12", "iso": "2014W12", "name": "Week 12 - 2014-03-17 - 2014-03-23", + "periodType": "WEEKLY", "startDate": "2014-03-17", }, Object { + "displayName": "Week 13 - 2014-03-24 - 2014-03-30", "endDate": "2014-03-30", "id": "2014W13", "iso": "2014W13", "name": "Week 13 - 2014-03-24 - 2014-03-30", + "periodType": "WEEKLY", "startDate": "2014-03-24", }, Object { + "displayName": "Week 14 - 2014-03-31 - 2014-04-06", "endDate": "2014-04-06", "id": "2014W14", "iso": "2014W14", "name": "Week 14 - 2014-03-31 - 2014-04-06", + "periodType": "WEEKLY", "startDate": "2014-03-31", }, Object { + "displayName": "Week 15 - 2014-04-07 - 2014-04-13", "endDate": "2014-04-13", "id": "2014W15", "iso": "2014W15", "name": "Week 15 - 2014-04-07 - 2014-04-13", + "periodType": "WEEKLY", "startDate": "2014-04-07", }, Object { + "displayName": "Week 16 - 2014-04-14 - 2014-04-20", "endDate": "2014-04-20", "id": "2014W16", "iso": "2014W16", "name": "Week 16 - 2014-04-14 - 2014-04-20", + "periodType": "WEEKLY", "startDate": "2014-04-14", }, Object { + "displayName": "Week 17 - 2014-04-21 - 2014-04-27", "endDate": "2014-04-27", "id": "2014W17", "iso": "2014W17", "name": "Week 17 - 2014-04-21 - 2014-04-27", + "periodType": "WEEKLY", "startDate": "2014-04-21", }, Object { + "displayName": "Week 18 - 2014-04-28 - 2014-05-04", "endDate": "2014-05-04", "id": "2014W18", "iso": "2014W18", "name": "Week 18 - 2014-04-28 - 2014-05-04", + "periodType": "WEEKLY", "startDate": "2014-04-28", }, Object { + "displayName": "Week 19 - 2014-05-05 - 2014-05-11", "endDate": "2014-05-11", "id": "2014W19", "iso": "2014W19", "name": "Week 19 - 2014-05-05 - 2014-05-11", + "periodType": "WEEKLY", "startDate": "2014-05-05", }, Object { + "displayName": "Week 20 - 2014-05-12 - 2014-05-18", "endDate": "2014-05-18", "id": "2014W20", "iso": "2014W20", "name": "Week 20 - 2014-05-12 - 2014-05-18", + "periodType": "WEEKLY", "startDate": "2014-05-12", }, Object { + "displayName": "Week 21 - 2014-05-19 - 2014-05-25", "endDate": "2014-05-25", "id": "2014W21", "iso": "2014W21", "name": "Week 21 - 2014-05-19 - 2014-05-25", + "periodType": "WEEKLY", "startDate": "2014-05-19", }, Object { + "displayName": "Week 22 - 2014-05-26 - 2014-06-01", "endDate": "2014-06-01", "id": "2014W22", "iso": "2014W22", "name": "Week 22 - 2014-05-26 - 2014-06-01", + "periodType": "WEEKLY", "startDate": "2014-05-26", }, Object { + "displayName": "Week 23 - 2014-06-02 - 2014-06-08", "endDate": "2014-06-08", "id": "2014W23", "iso": "2014W23", "name": "Week 23 - 2014-06-02 - 2014-06-08", + "periodType": "WEEKLY", "startDate": "2014-06-02", }, Object { + "displayName": "Week 24 - 2014-06-09 - 2014-06-15", "endDate": "2014-06-15", "id": "2014W24", "iso": "2014W24", "name": "Week 24 - 2014-06-09 - 2014-06-15", + "periodType": "WEEKLY", "startDate": "2014-06-09", }, Object { + "displayName": "Week 25 - 2014-06-16 - 2014-06-22", "endDate": "2014-06-22", "id": "2014W25", "iso": "2014W25", "name": "Week 25 - 2014-06-16 - 2014-06-22", + "periodType": "WEEKLY", "startDate": "2014-06-16", }, Object { + "displayName": "Week 26 - 2014-06-23 - 2014-06-29", "endDate": "2014-06-29", "id": "2014W26", "iso": "2014W26", "name": "Week 26 - 2014-06-23 - 2014-06-29", + "periodType": "WEEKLY", "startDate": "2014-06-23", }, Object { + "displayName": "Week 27 - 2014-06-30 - 2014-07-06", "endDate": "2014-07-06", "id": "2014W27", "iso": "2014W27", "name": "Week 27 - 2014-06-30 - 2014-07-06", + "periodType": "WEEKLY", "startDate": "2014-06-30", }, Object { + "displayName": "Week 28 - 2014-07-07 - 2014-07-13", "endDate": "2014-07-13", "id": "2014W28", "iso": "2014W28", "name": "Week 28 - 2014-07-07 - 2014-07-13", + "periodType": "WEEKLY", "startDate": "2014-07-07", }, Object { + "displayName": "Week 29 - 2014-07-14 - 2014-07-20", "endDate": "2014-07-20", "id": "2014W29", "iso": "2014W29", "name": "Week 29 - 2014-07-14 - 2014-07-20", + "periodType": "WEEKLY", "startDate": "2014-07-14", }, Object { + "displayName": "Week 30 - 2014-07-21 - 2014-07-27", "endDate": "2014-07-27", "id": "2014W30", "iso": "2014W30", "name": "Week 30 - 2014-07-21 - 2014-07-27", + "periodType": "WEEKLY", "startDate": "2014-07-21", }, Object { + "displayName": "Week 31 - 2014-07-28 - 2014-08-03", "endDate": "2014-08-03", "id": "2014W31", "iso": "2014W31", "name": "Week 31 - 2014-07-28 - 2014-08-03", + "periodType": "WEEKLY", "startDate": "2014-07-28", }, Object { + "displayName": "Week 32 - 2014-08-04 - 2014-08-10", "endDate": "2014-08-10", "id": "2014W32", "iso": "2014W32", "name": "Week 32 - 2014-08-04 - 2014-08-10", + "periodType": "WEEKLY", "startDate": "2014-08-04", }, Object { + "displayName": "Week 33 - 2014-08-11 - 2014-08-17", "endDate": "2014-08-17", "id": "2014W33", "iso": "2014W33", "name": "Week 33 - 2014-08-11 - 2014-08-17", + "periodType": "WEEKLY", "startDate": "2014-08-11", }, Object { + "displayName": "Week 34 - 2014-08-18 - 2014-08-24", "endDate": "2014-08-24", "id": "2014W34", "iso": "2014W34", "name": "Week 34 - 2014-08-18 - 2014-08-24", + "periodType": "WEEKLY", "startDate": "2014-08-18", }, Object { + "displayName": "Week 35 - 2014-08-25 - 2014-08-31", "endDate": "2014-08-31", "id": "2014W35", "iso": "2014W35", "name": "Week 35 - 2014-08-25 - 2014-08-31", + "periodType": "WEEKLY", "startDate": "2014-08-25", }, Object { + "displayName": "Week 36 - 2014-09-01 - 2014-09-07", "endDate": "2014-09-07", "id": "2014W36", "iso": "2014W36", "name": "Week 36 - 2014-09-01 - 2014-09-07", + "periodType": "WEEKLY", "startDate": "2014-09-01", }, Object { + "displayName": "Week 37 - 2014-09-08 - 2014-09-14", "endDate": "2014-09-14", "id": "2014W37", "iso": "2014W37", "name": "Week 37 - 2014-09-08 - 2014-09-14", + "periodType": "WEEKLY", "startDate": "2014-09-08", }, Object { + "displayName": "Week 38 - 2014-09-15 - 2014-09-21", "endDate": "2014-09-21", "id": "2014W38", "iso": "2014W38", "name": "Week 38 - 2014-09-15 - 2014-09-21", + "periodType": "WEEKLY", "startDate": "2014-09-15", }, Object { + "displayName": "Week 39 - 2014-09-22 - 2014-09-28", "endDate": "2014-09-28", "id": "2014W39", "iso": "2014W39", "name": "Week 39 - 2014-09-22 - 2014-09-28", + "periodType": "WEEKLY", "startDate": "2014-09-22", }, Object { + "displayName": "Week 40 - 2014-09-29 - 2014-10-05", "endDate": "2014-10-05", "id": "2014W40", "iso": "2014W40", "name": "Week 40 - 2014-09-29 - 2014-10-05", + "periodType": "WEEKLY", "startDate": "2014-09-29", }, Object { + "displayName": "Week 41 - 2014-10-06 - 2014-10-12", "endDate": "2014-10-12", "id": "2014W41", "iso": "2014W41", "name": "Week 41 - 2014-10-06 - 2014-10-12", + "periodType": "WEEKLY", "startDate": "2014-10-06", }, Object { + "displayName": "Week 42 - 2014-10-13 - 2014-10-19", "endDate": "2014-10-19", "id": "2014W42", "iso": "2014W42", "name": "Week 42 - 2014-10-13 - 2014-10-19", + "periodType": "WEEKLY", "startDate": "2014-10-13", }, Object { + "displayName": "Week 43 - 2014-10-20 - 2014-10-26", "endDate": "2014-10-26", "id": "2014W43", "iso": "2014W43", "name": "Week 43 - 2014-10-20 - 2014-10-26", + "periodType": "WEEKLY", "startDate": "2014-10-20", }, Object { + "displayName": "Week 44 - 2014-10-27 - 2014-11-02", "endDate": "2014-11-02", "id": "2014W44", "iso": "2014W44", "name": "Week 44 - 2014-10-27 - 2014-11-02", + "periodType": "WEEKLY", "startDate": "2014-10-27", }, Object { + "displayName": "Week 45 - 2014-11-03 - 2014-11-09", "endDate": "2014-11-09", "id": "2014W45", "iso": "2014W45", "name": "Week 45 - 2014-11-03 - 2014-11-09", + "periodType": "WEEKLY", "startDate": "2014-11-03", }, Object { + "displayName": "Week 46 - 2014-11-10 - 2014-11-16", "endDate": "2014-11-16", "id": "2014W46", "iso": "2014W46", "name": "Week 46 - 2014-11-10 - 2014-11-16", + "periodType": "WEEKLY", "startDate": "2014-11-10", }, Object { + "displayName": "Week 47 - 2014-11-17 - 2014-11-23", "endDate": "2014-11-23", "id": "2014W47", "iso": "2014W47", "name": "Week 47 - 2014-11-17 - 2014-11-23", + "periodType": "WEEKLY", "startDate": "2014-11-17", }, Object { + "displayName": "Week 48 - 2014-11-24 - 2014-11-30", "endDate": "2014-11-30", "id": "2014W48", "iso": "2014W48", "name": "Week 48 - 2014-11-24 - 2014-11-30", + "periodType": "WEEKLY", "startDate": "2014-11-24", }, Object { + "displayName": "Week 49 - 2014-12-01 - 2014-12-07", "endDate": "2014-12-07", "id": "2014W49", "iso": "2014W49", "name": "Week 49 - 2014-12-01 - 2014-12-07", + "periodType": "WEEKLY", "startDate": "2014-12-01", }, Object { + "displayName": "Week 50 - 2014-12-08 - 2014-12-14", "endDate": "2014-12-14", "id": "2014W50", "iso": "2014W50", "name": "Week 50 - 2014-12-08 - 2014-12-14", + "periodType": "WEEKLY", "startDate": "2014-12-08", }, Object { + "displayName": "Week 51 - 2014-12-15 - 2014-12-21", "endDate": "2014-12-21", "id": "2014W51", "iso": "2014W51", "name": "Week 51 - 2014-12-15 - 2014-12-21", + "periodType": "WEEKLY", "startDate": "2014-12-15", }, Object { + "displayName": "Week 52 - 2014-12-22 - 2014-12-28", "endDate": "2014-12-28", "id": "2014W52", "iso": "2014W52", "name": "Week 52 - 2014-12-22 - 2014-12-28", + "periodType": "WEEKLY", "startDate": "2014-12-22", }, ], @@ -3649,367 +4707,471 @@ Object { "name": "Weekly (Start Saturday)", "options": Array [ Object { + "displayName": "Week 1 - 2014-01-04 - 2014-01-10", "endDate": "2014-01-10", "id": "2014SatW1", "iso": "2014SatW1", "name": "Week 1 - 2014-01-04 - 2014-01-10", + "periodType": "WEEKLY", "startDate": "2014-01-04", }, Object { + "displayName": "Week 2 - 2014-01-11 - 2014-01-17", "endDate": "2014-01-17", "id": "2014SatW2", "iso": "2014SatW2", "name": "Week 2 - 2014-01-11 - 2014-01-17", + "periodType": "WEEKLY", "startDate": "2014-01-11", }, Object { + "displayName": "Week 3 - 2014-01-18 - 2014-01-24", "endDate": "2014-01-24", "id": "2014SatW3", "iso": "2014SatW3", "name": "Week 3 - 2014-01-18 - 2014-01-24", + "periodType": "WEEKLY", "startDate": "2014-01-18", }, Object { + "displayName": "Week 4 - 2014-01-25 - 2014-01-31", "endDate": "2014-01-31", "id": "2014SatW4", "iso": "2014SatW4", "name": "Week 4 - 2014-01-25 - 2014-01-31", + "periodType": "WEEKLY", "startDate": "2014-01-25", }, Object { + "displayName": "Week 5 - 2014-02-01 - 2014-02-07", "endDate": "2014-02-07", "id": "2014SatW5", "iso": "2014SatW5", "name": "Week 5 - 2014-02-01 - 2014-02-07", + "periodType": "WEEKLY", "startDate": "2014-02-01", }, Object { + "displayName": "Week 6 - 2014-02-08 - 2014-02-14", "endDate": "2014-02-14", "id": "2014SatW6", "iso": "2014SatW6", "name": "Week 6 - 2014-02-08 - 2014-02-14", + "periodType": "WEEKLY", "startDate": "2014-02-08", }, Object { + "displayName": "Week 7 - 2014-02-15 - 2014-02-21", "endDate": "2014-02-21", "id": "2014SatW7", "iso": "2014SatW7", "name": "Week 7 - 2014-02-15 - 2014-02-21", + "periodType": "WEEKLY", "startDate": "2014-02-15", }, Object { + "displayName": "Week 8 - 2014-02-22 - 2014-02-28", "endDate": "2014-02-28", "id": "2014SatW8", "iso": "2014SatW8", "name": "Week 8 - 2014-02-22 - 2014-02-28", + "periodType": "WEEKLY", "startDate": "2014-02-22", }, Object { + "displayName": "Week 9 - 2014-03-01 - 2014-03-07", "endDate": "2014-03-07", "id": "2014SatW9", "iso": "2014SatW9", "name": "Week 9 - 2014-03-01 - 2014-03-07", + "periodType": "WEEKLY", "startDate": "2014-03-01", }, Object { + "displayName": "Week 10 - 2014-03-08 - 2014-03-14", "endDate": "2014-03-14", "id": "2014SatW10", "iso": "2014SatW10", "name": "Week 10 - 2014-03-08 - 2014-03-14", + "periodType": "WEEKLY", "startDate": "2014-03-08", }, Object { + "displayName": "Week 11 - 2014-03-15 - 2014-03-21", "endDate": "2014-03-21", "id": "2014SatW11", "iso": "2014SatW11", "name": "Week 11 - 2014-03-15 - 2014-03-21", + "periodType": "WEEKLY", "startDate": "2014-03-15", }, Object { + "displayName": "Week 12 - 2014-03-22 - 2014-03-28", "endDate": "2014-03-28", "id": "2014SatW12", "iso": "2014SatW12", "name": "Week 12 - 2014-03-22 - 2014-03-28", + "periodType": "WEEKLY", "startDate": "2014-03-22", }, Object { + "displayName": "Week 13 - 2014-03-29 - 2014-04-04", "endDate": "2014-04-04", "id": "2014SatW13", "iso": "2014SatW13", "name": "Week 13 - 2014-03-29 - 2014-04-04", + "periodType": "WEEKLY", "startDate": "2014-03-29", }, Object { + "displayName": "Week 14 - 2014-04-05 - 2014-04-11", "endDate": "2014-04-11", "id": "2014SatW14", "iso": "2014SatW14", "name": "Week 14 - 2014-04-05 - 2014-04-11", + "periodType": "WEEKLY", "startDate": "2014-04-05", }, Object { + "displayName": "Week 15 - 2014-04-12 - 2014-04-18", "endDate": "2014-04-18", "id": "2014SatW15", "iso": "2014SatW15", "name": "Week 15 - 2014-04-12 - 2014-04-18", + "periodType": "WEEKLY", "startDate": "2014-04-12", }, Object { + "displayName": "Week 16 - 2014-04-19 - 2014-04-25", "endDate": "2014-04-25", "id": "2014SatW16", "iso": "2014SatW16", "name": "Week 16 - 2014-04-19 - 2014-04-25", + "periodType": "WEEKLY", "startDate": "2014-04-19", }, Object { + "displayName": "Week 17 - 2014-04-26 - 2014-05-02", "endDate": "2014-05-02", "id": "2014SatW17", "iso": "2014SatW17", "name": "Week 17 - 2014-04-26 - 2014-05-02", + "periodType": "WEEKLY", "startDate": "2014-04-26", }, Object { + "displayName": "Week 18 - 2014-05-03 - 2014-05-09", "endDate": "2014-05-09", "id": "2014SatW18", "iso": "2014SatW18", "name": "Week 18 - 2014-05-03 - 2014-05-09", + "periodType": "WEEKLY", "startDate": "2014-05-03", }, Object { + "displayName": "Week 19 - 2014-05-10 - 2014-05-16", "endDate": "2014-05-16", "id": "2014SatW19", "iso": "2014SatW19", "name": "Week 19 - 2014-05-10 - 2014-05-16", + "periodType": "WEEKLY", "startDate": "2014-05-10", }, Object { + "displayName": "Week 20 - 2014-05-17 - 2014-05-23", "endDate": "2014-05-23", "id": "2014SatW20", "iso": "2014SatW20", "name": "Week 20 - 2014-05-17 - 2014-05-23", + "periodType": "WEEKLY", "startDate": "2014-05-17", }, Object { + "displayName": "Week 21 - 2014-05-24 - 2014-05-30", "endDate": "2014-05-30", "id": "2014SatW21", "iso": "2014SatW21", "name": "Week 21 - 2014-05-24 - 2014-05-30", + "periodType": "WEEKLY", "startDate": "2014-05-24", }, Object { + "displayName": "Week 22 - 2014-05-31 - 2014-06-06", "endDate": "2014-06-06", "id": "2014SatW22", "iso": "2014SatW22", "name": "Week 22 - 2014-05-31 - 2014-06-06", + "periodType": "WEEKLY", "startDate": "2014-05-31", }, Object { + "displayName": "Week 23 - 2014-06-07 - 2014-06-13", "endDate": "2014-06-13", "id": "2014SatW23", "iso": "2014SatW23", "name": "Week 23 - 2014-06-07 - 2014-06-13", + "periodType": "WEEKLY", "startDate": "2014-06-07", }, Object { + "displayName": "Week 24 - 2014-06-14 - 2014-06-20", "endDate": "2014-06-20", "id": "2014SatW24", "iso": "2014SatW24", "name": "Week 24 - 2014-06-14 - 2014-06-20", + "periodType": "WEEKLY", "startDate": "2014-06-14", }, Object { + "displayName": "Week 25 - 2014-06-21 - 2014-06-27", "endDate": "2014-06-27", "id": "2014SatW25", "iso": "2014SatW25", "name": "Week 25 - 2014-06-21 - 2014-06-27", + "periodType": "WEEKLY", "startDate": "2014-06-21", }, Object { + "displayName": "Week 26 - 2014-06-28 - 2014-07-04", "endDate": "2014-07-04", "id": "2014SatW26", "iso": "2014SatW26", "name": "Week 26 - 2014-06-28 - 2014-07-04", + "periodType": "WEEKLY", "startDate": "2014-06-28", }, Object { + "displayName": "Week 27 - 2014-07-05 - 2014-07-11", "endDate": "2014-07-11", "id": "2014SatW27", "iso": "2014SatW27", "name": "Week 27 - 2014-07-05 - 2014-07-11", + "periodType": "WEEKLY", "startDate": "2014-07-05", }, Object { + "displayName": "Week 28 - 2014-07-12 - 2014-07-18", "endDate": "2014-07-18", "id": "2014SatW28", "iso": "2014SatW28", "name": "Week 28 - 2014-07-12 - 2014-07-18", + "periodType": "WEEKLY", "startDate": "2014-07-12", }, Object { + "displayName": "Week 29 - 2014-07-19 - 2014-07-25", "endDate": "2014-07-25", "id": "2014SatW29", "iso": "2014SatW29", "name": "Week 29 - 2014-07-19 - 2014-07-25", + "periodType": "WEEKLY", "startDate": "2014-07-19", }, Object { + "displayName": "Week 30 - 2014-07-26 - 2014-08-01", "endDate": "2014-08-01", "id": "2014SatW30", "iso": "2014SatW30", "name": "Week 30 - 2014-07-26 - 2014-08-01", + "periodType": "WEEKLY", "startDate": "2014-07-26", }, Object { + "displayName": "Week 31 - 2014-08-02 - 2014-08-08", "endDate": "2014-08-08", "id": "2014SatW31", "iso": "2014SatW31", "name": "Week 31 - 2014-08-02 - 2014-08-08", + "periodType": "WEEKLY", "startDate": "2014-08-02", }, Object { + "displayName": "Week 32 - 2014-08-09 - 2014-08-15", "endDate": "2014-08-15", "id": "2014SatW32", "iso": "2014SatW32", "name": "Week 32 - 2014-08-09 - 2014-08-15", + "periodType": "WEEKLY", "startDate": "2014-08-09", }, Object { + "displayName": "Week 33 - 2014-08-16 - 2014-08-22", "endDate": "2014-08-22", "id": "2014SatW33", "iso": "2014SatW33", "name": "Week 33 - 2014-08-16 - 2014-08-22", + "periodType": "WEEKLY", "startDate": "2014-08-16", }, Object { + "displayName": "Week 34 - 2014-08-23 - 2014-08-29", "endDate": "2014-08-29", "id": "2014SatW34", "iso": "2014SatW34", "name": "Week 34 - 2014-08-23 - 2014-08-29", + "periodType": "WEEKLY", "startDate": "2014-08-23", }, Object { + "displayName": "Week 35 - 2014-08-30 - 2014-09-05", "endDate": "2014-09-05", "id": "2014SatW35", "iso": "2014SatW35", "name": "Week 35 - 2014-08-30 - 2014-09-05", + "periodType": "WEEKLY", "startDate": "2014-08-30", }, Object { + "displayName": "Week 36 - 2014-09-06 - 2014-09-12", "endDate": "2014-09-12", "id": "2014SatW36", "iso": "2014SatW36", "name": "Week 36 - 2014-09-06 - 2014-09-12", + "periodType": "WEEKLY", "startDate": "2014-09-06", }, Object { + "displayName": "Week 37 - 2014-09-13 - 2014-09-19", "endDate": "2014-09-19", "id": "2014SatW37", "iso": "2014SatW37", "name": "Week 37 - 2014-09-13 - 2014-09-19", + "periodType": "WEEKLY", "startDate": "2014-09-13", }, Object { + "displayName": "Week 38 - 2014-09-20 - 2014-09-26", "endDate": "2014-09-26", "id": "2014SatW38", "iso": "2014SatW38", "name": "Week 38 - 2014-09-20 - 2014-09-26", + "periodType": "WEEKLY", "startDate": "2014-09-20", }, Object { + "displayName": "Week 39 - 2014-09-27 - 2014-10-03", "endDate": "2014-10-03", "id": "2014SatW39", "iso": "2014SatW39", "name": "Week 39 - 2014-09-27 - 2014-10-03", + "periodType": "WEEKLY", "startDate": "2014-09-27", }, Object { + "displayName": "Week 40 - 2014-10-04 - 2014-10-10", "endDate": "2014-10-10", "id": "2014SatW40", "iso": "2014SatW40", "name": "Week 40 - 2014-10-04 - 2014-10-10", + "periodType": "WEEKLY", "startDate": "2014-10-04", }, Object { + "displayName": "Week 41 - 2014-10-11 - 2014-10-17", "endDate": "2014-10-17", "id": "2014SatW41", "iso": "2014SatW41", "name": "Week 41 - 2014-10-11 - 2014-10-17", + "periodType": "WEEKLY", "startDate": "2014-10-11", }, Object { + "displayName": "Week 42 - 2014-10-18 - 2014-10-24", "endDate": "2014-10-24", "id": "2014SatW42", "iso": "2014SatW42", "name": "Week 42 - 2014-10-18 - 2014-10-24", + "periodType": "WEEKLY", "startDate": "2014-10-18", }, Object { + "displayName": "Week 43 - 2014-10-25 - 2014-10-31", "endDate": "2014-10-31", "id": "2014SatW43", "iso": "2014SatW43", "name": "Week 43 - 2014-10-25 - 2014-10-31", + "periodType": "WEEKLY", "startDate": "2014-10-25", }, Object { + "displayName": "Week 44 - 2014-11-01 - 2014-11-07", "endDate": "2014-11-07", "id": "2014SatW44", "iso": "2014SatW44", "name": "Week 44 - 2014-11-01 - 2014-11-07", + "periodType": "WEEKLY", "startDate": "2014-11-01", }, Object { + "displayName": "Week 45 - 2014-11-08 - 2014-11-14", "endDate": "2014-11-14", "id": "2014SatW45", "iso": "2014SatW45", "name": "Week 45 - 2014-11-08 - 2014-11-14", + "periodType": "WEEKLY", "startDate": "2014-11-08", }, Object { + "displayName": "Week 46 - 2014-11-15 - 2014-11-21", "endDate": "2014-11-21", "id": "2014SatW46", "iso": "2014SatW46", "name": "Week 46 - 2014-11-15 - 2014-11-21", + "periodType": "WEEKLY", "startDate": "2014-11-15", }, Object { + "displayName": "Week 47 - 2014-11-22 - 2014-11-28", "endDate": "2014-11-28", "id": "2014SatW47", "iso": "2014SatW47", "name": "Week 47 - 2014-11-22 - 2014-11-28", + "periodType": "WEEKLY", "startDate": "2014-11-22", }, Object { + "displayName": "Week 48 - 2014-11-29 - 2014-12-05", "endDate": "2014-12-05", "id": "2014SatW48", "iso": "2014SatW48", "name": "Week 48 - 2014-11-29 - 2014-12-05", + "periodType": "WEEKLY", "startDate": "2014-11-29", }, Object { + "displayName": "Week 49 - 2014-12-06 - 2014-12-12", "endDate": "2014-12-12", "id": "2014SatW49", "iso": "2014SatW49", "name": "Week 49 - 2014-12-06 - 2014-12-12", + "periodType": "WEEKLY", "startDate": "2014-12-06", }, Object { + "displayName": "Week 50 - 2014-12-13 - 2014-12-19", "endDate": "2014-12-19", "id": "2014SatW50", "iso": "2014SatW50", "name": "Week 50 - 2014-12-13 - 2014-12-19", + "periodType": "WEEKLY", "startDate": "2014-12-13", }, Object { + "displayName": "Week 51 - 2014-12-20 - 2014-12-26", "endDate": "2014-12-26", "id": "2014SatW51", "iso": "2014SatW51", "name": "Week 51 - 2014-12-20 - 2014-12-26", + "periodType": "WEEKLY", "startDate": "2014-12-20", }, Object { + "displayName": "Week 52 - 2014-12-27 - 2015-01-02", "endDate": "2015-01-02", "id": "2014SatW52", "iso": "2014SatW52", "name": "Week 52 - 2014-12-27 - 2015-01-02", + "periodType": "WEEKLY", "startDate": "2014-12-27", }, ], @@ -4023,374 +5185,480 @@ Object { "name": "Weekly (Start Sunday)", "options": Array [ Object { + "displayName": "Week 1 - 2013-12-29 - 2014-01-04", "endDate": "2014-01-04", "id": "2014SunW1", "iso": "2014SunW1", "name": "Week 1 - 2013-12-29 - 2014-01-04", + "periodType": "WEEKLY", "startDate": "2013-12-29", }, Object { + "displayName": "Week 2 - 2014-01-05 - 2014-01-11", "endDate": "2014-01-11", "id": "2014SunW2", "iso": "2014SunW2", "name": "Week 2 - 2014-01-05 - 2014-01-11", + "periodType": "WEEKLY", "startDate": "2014-01-05", }, Object { + "displayName": "Week 3 - 2014-01-12 - 2014-01-18", "endDate": "2014-01-18", "id": "2014SunW3", "iso": "2014SunW3", "name": "Week 3 - 2014-01-12 - 2014-01-18", + "periodType": "WEEKLY", "startDate": "2014-01-12", }, Object { + "displayName": "Week 4 - 2014-01-19 - 2014-01-25", "endDate": "2014-01-25", "id": "2014SunW4", "iso": "2014SunW4", "name": "Week 4 - 2014-01-19 - 2014-01-25", + "periodType": "WEEKLY", "startDate": "2014-01-19", }, Object { + "displayName": "Week 5 - 2014-01-26 - 2014-02-01", "endDate": "2014-02-01", "id": "2014SunW5", "iso": "2014SunW5", "name": "Week 5 - 2014-01-26 - 2014-02-01", + "periodType": "WEEKLY", "startDate": "2014-01-26", }, Object { + "displayName": "Week 6 - 2014-02-02 - 2014-02-08", "endDate": "2014-02-08", "id": "2014SunW6", "iso": "2014SunW6", "name": "Week 6 - 2014-02-02 - 2014-02-08", + "periodType": "WEEKLY", "startDate": "2014-02-02", }, Object { + "displayName": "Week 7 - 2014-02-09 - 2014-02-15", "endDate": "2014-02-15", "id": "2014SunW7", "iso": "2014SunW7", "name": "Week 7 - 2014-02-09 - 2014-02-15", + "periodType": "WEEKLY", "startDate": "2014-02-09", }, Object { + "displayName": "Week 8 - 2014-02-16 - 2014-02-22", "endDate": "2014-02-22", "id": "2014SunW8", "iso": "2014SunW8", "name": "Week 8 - 2014-02-16 - 2014-02-22", + "periodType": "WEEKLY", "startDate": "2014-02-16", }, Object { + "displayName": "Week 9 - 2014-02-23 - 2014-03-01", "endDate": "2014-03-01", "id": "2014SunW9", "iso": "2014SunW9", "name": "Week 9 - 2014-02-23 - 2014-03-01", + "periodType": "WEEKLY", "startDate": "2014-02-23", }, Object { + "displayName": "Week 10 - 2014-03-02 - 2014-03-08", "endDate": "2014-03-08", "id": "2014SunW10", "iso": "2014SunW10", "name": "Week 10 - 2014-03-02 - 2014-03-08", + "periodType": "WEEKLY", "startDate": "2014-03-02", }, Object { + "displayName": "Week 11 - 2014-03-09 - 2014-03-15", "endDate": "2014-03-15", "id": "2014SunW11", "iso": "2014SunW11", "name": "Week 11 - 2014-03-09 - 2014-03-15", + "periodType": "WEEKLY", "startDate": "2014-03-09", }, Object { + "displayName": "Week 12 - 2014-03-16 - 2014-03-22", "endDate": "2014-03-22", "id": "2014SunW12", "iso": "2014SunW12", "name": "Week 12 - 2014-03-16 - 2014-03-22", + "periodType": "WEEKLY", "startDate": "2014-03-16", }, Object { + "displayName": "Week 13 - 2014-03-23 - 2014-03-29", "endDate": "2014-03-29", "id": "2014SunW13", "iso": "2014SunW13", "name": "Week 13 - 2014-03-23 - 2014-03-29", + "periodType": "WEEKLY", "startDate": "2014-03-23", }, Object { + "displayName": "Week 14 - 2014-03-30 - 2014-04-05", "endDate": "2014-04-05", "id": "2014SunW14", "iso": "2014SunW14", "name": "Week 14 - 2014-03-30 - 2014-04-05", + "periodType": "WEEKLY", "startDate": "2014-03-30", }, Object { + "displayName": "Week 15 - 2014-04-06 - 2014-04-12", "endDate": "2014-04-12", "id": "2014SunW15", "iso": "2014SunW15", "name": "Week 15 - 2014-04-06 - 2014-04-12", + "periodType": "WEEKLY", "startDate": "2014-04-06", }, Object { + "displayName": "Week 16 - 2014-04-13 - 2014-04-19", "endDate": "2014-04-19", "id": "2014SunW16", "iso": "2014SunW16", "name": "Week 16 - 2014-04-13 - 2014-04-19", + "periodType": "WEEKLY", "startDate": "2014-04-13", }, Object { + "displayName": "Week 17 - 2014-04-20 - 2014-04-26", "endDate": "2014-04-26", "id": "2014SunW17", "iso": "2014SunW17", "name": "Week 17 - 2014-04-20 - 2014-04-26", + "periodType": "WEEKLY", "startDate": "2014-04-20", }, Object { + "displayName": "Week 18 - 2014-04-27 - 2014-05-03", "endDate": "2014-05-03", "id": "2014SunW18", "iso": "2014SunW18", "name": "Week 18 - 2014-04-27 - 2014-05-03", + "periodType": "WEEKLY", "startDate": "2014-04-27", }, Object { + "displayName": "Week 19 - 2014-05-04 - 2014-05-10", "endDate": "2014-05-10", "id": "2014SunW19", "iso": "2014SunW19", "name": "Week 19 - 2014-05-04 - 2014-05-10", + "periodType": "WEEKLY", "startDate": "2014-05-04", }, Object { + "displayName": "Week 20 - 2014-05-11 - 2014-05-17", "endDate": "2014-05-17", "id": "2014SunW20", "iso": "2014SunW20", "name": "Week 20 - 2014-05-11 - 2014-05-17", + "periodType": "WEEKLY", "startDate": "2014-05-11", }, Object { + "displayName": "Week 21 - 2014-05-18 - 2014-05-24", "endDate": "2014-05-24", "id": "2014SunW21", "iso": "2014SunW21", "name": "Week 21 - 2014-05-18 - 2014-05-24", + "periodType": "WEEKLY", "startDate": "2014-05-18", }, Object { + "displayName": "Week 22 - 2014-05-25 - 2014-05-31", "endDate": "2014-05-31", "id": "2014SunW22", "iso": "2014SunW22", "name": "Week 22 - 2014-05-25 - 2014-05-31", + "periodType": "WEEKLY", "startDate": "2014-05-25", }, Object { + "displayName": "Week 23 - 2014-06-01 - 2014-06-07", "endDate": "2014-06-07", "id": "2014SunW23", "iso": "2014SunW23", "name": "Week 23 - 2014-06-01 - 2014-06-07", + "periodType": "WEEKLY", "startDate": "2014-06-01", }, Object { + "displayName": "Week 24 - 2014-06-08 - 2014-06-14", "endDate": "2014-06-14", "id": "2014SunW24", "iso": "2014SunW24", "name": "Week 24 - 2014-06-08 - 2014-06-14", + "periodType": "WEEKLY", "startDate": "2014-06-08", }, Object { + "displayName": "Week 25 - 2014-06-15 - 2014-06-21", "endDate": "2014-06-21", "id": "2014SunW25", "iso": "2014SunW25", "name": "Week 25 - 2014-06-15 - 2014-06-21", + "periodType": "WEEKLY", "startDate": "2014-06-15", }, Object { + "displayName": "Week 26 - 2014-06-22 - 2014-06-28", "endDate": "2014-06-28", "id": "2014SunW26", "iso": "2014SunW26", "name": "Week 26 - 2014-06-22 - 2014-06-28", + "periodType": "WEEKLY", "startDate": "2014-06-22", }, Object { + "displayName": "Week 27 - 2014-06-29 - 2014-07-05", "endDate": "2014-07-05", "id": "2014SunW27", "iso": "2014SunW27", "name": "Week 27 - 2014-06-29 - 2014-07-05", + "periodType": "WEEKLY", "startDate": "2014-06-29", }, Object { + "displayName": "Week 28 - 2014-07-06 - 2014-07-12", "endDate": "2014-07-12", "id": "2014SunW28", "iso": "2014SunW28", "name": "Week 28 - 2014-07-06 - 2014-07-12", + "periodType": "WEEKLY", "startDate": "2014-07-06", }, Object { + "displayName": "Week 29 - 2014-07-13 - 2014-07-19", "endDate": "2014-07-19", "id": "2014SunW29", "iso": "2014SunW29", "name": "Week 29 - 2014-07-13 - 2014-07-19", + "periodType": "WEEKLY", "startDate": "2014-07-13", }, Object { + "displayName": "Week 30 - 2014-07-20 - 2014-07-26", "endDate": "2014-07-26", "id": "2014SunW30", "iso": "2014SunW30", "name": "Week 30 - 2014-07-20 - 2014-07-26", + "periodType": "WEEKLY", "startDate": "2014-07-20", }, Object { + "displayName": "Week 31 - 2014-07-27 - 2014-08-02", "endDate": "2014-08-02", "id": "2014SunW31", "iso": "2014SunW31", "name": "Week 31 - 2014-07-27 - 2014-08-02", + "periodType": "WEEKLY", "startDate": "2014-07-27", }, Object { + "displayName": "Week 32 - 2014-08-03 - 2014-08-09", "endDate": "2014-08-09", "id": "2014SunW32", "iso": "2014SunW32", "name": "Week 32 - 2014-08-03 - 2014-08-09", + "periodType": "WEEKLY", "startDate": "2014-08-03", }, Object { + "displayName": "Week 33 - 2014-08-10 - 2014-08-16", "endDate": "2014-08-16", "id": "2014SunW33", "iso": "2014SunW33", "name": "Week 33 - 2014-08-10 - 2014-08-16", + "periodType": "WEEKLY", "startDate": "2014-08-10", }, Object { + "displayName": "Week 34 - 2014-08-17 - 2014-08-23", "endDate": "2014-08-23", "id": "2014SunW34", "iso": "2014SunW34", "name": "Week 34 - 2014-08-17 - 2014-08-23", + "periodType": "WEEKLY", "startDate": "2014-08-17", }, Object { + "displayName": "Week 35 - 2014-08-24 - 2014-08-30", "endDate": "2014-08-30", "id": "2014SunW35", "iso": "2014SunW35", "name": "Week 35 - 2014-08-24 - 2014-08-30", + "periodType": "WEEKLY", "startDate": "2014-08-24", }, Object { + "displayName": "Week 36 - 2014-08-31 - 2014-09-06", "endDate": "2014-09-06", "id": "2014SunW36", "iso": "2014SunW36", "name": "Week 36 - 2014-08-31 - 2014-09-06", + "periodType": "WEEKLY", "startDate": "2014-08-31", }, Object { + "displayName": "Week 37 - 2014-09-07 - 2014-09-13", "endDate": "2014-09-13", "id": "2014SunW37", "iso": "2014SunW37", "name": "Week 37 - 2014-09-07 - 2014-09-13", + "periodType": "WEEKLY", "startDate": "2014-09-07", }, Object { + "displayName": "Week 38 - 2014-09-14 - 2014-09-20", "endDate": "2014-09-20", "id": "2014SunW38", "iso": "2014SunW38", "name": "Week 38 - 2014-09-14 - 2014-09-20", + "periodType": "WEEKLY", "startDate": "2014-09-14", }, Object { + "displayName": "Week 39 - 2014-09-21 - 2014-09-27", "endDate": "2014-09-27", "id": "2014SunW39", "iso": "2014SunW39", "name": "Week 39 - 2014-09-21 - 2014-09-27", + "periodType": "WEEKLY", "startDate": "2014-09-21", }, Object { + "displayName": "Week 40 - 2014-09-28 - 2014-10-04", "endDate": "2014-10-04", "id": "2014SunW40", "iso": "2014SunW40", "name": "Week 40 - 2014-09-28 - 2014-10-04", + "periodType": "WEEKLY", "startDate": "2014-09-28", }, Object { + "displayName": "Week 41 - 2014-10-05 - 2014-10-11", "endDate": "2014-10-11", "id": "2014SunW41", "iso": "2014SunW41", "name": "Week 41 - 2014-10-05 - 2014-10-11", + "periodType": "WEEKLY", "startDate": "2014-10-05", }, Object { + "displayName": "Week 42 - 2014-10-12 - 2014-10-18", "endDate": "2014-10-18", "id": "2014SunW42", "iso": "2014SunW42", "name": "Week 42 - 2014-10-12 - 2014-10-18", + "periodType": "WEEKLY", "startDate": "2014-10-12", }, Object { + "displayName": "Week 43 - 2014-10-19 - 2014-10-25", "endDate": "2014-10-25", "id": "2014SunW43", "iso": "2014SunW43", "name": "Week 43 - 2014-10-19 - 2014-10-25", + "periodType": "WEEKLY", "startDate": "2014-10-19", }, Object { + "displayName": "Week 44 - 2014-10-26 - 2014-11-01", "endDate": "2014-11-01", "id": "2014SunW44", "iso": "2014SunW44", "name": "Week 44 - 2014-10-26 - 2014-11-01", + "periodType": "WEEKLY", "startDate": "2014-10-26", }, Object { + "displayName": "Week 45 - 2014-11-02 - 2014-11-08", "endDate": "2014-11-08", "id": "2014SunW45", "iso": "2014SunW45", "name": "Week 45 - 2014-11-02 - 2014-11-08", + "periodType": "WEEKLY", "startDate": "2014-11-02", }, Object { + "displayName": "Week 46 - 2014-11-09 - 2014-11-15", "endDate": "2014-11-15", "id": "2014SunW46", "iso": "2014SunW46", "name": "Week 46 - 2014-11-09 - 2014-11-15", + "periodType": "WEEKLY", "startDate": "2014-11-09", }, Object { + "displayName": "Week 47 - 2014-11-16 - 2014-11-22", "endDate": "2014-11-22", "id": "2014SunW47", "iso": "2014SunW47", "name": "Week 47 - 2014-11-16 - 2014-11-22", + "periodType": "WEEKLY", "startDate": "2014-11-16", }, Object { + "displayName": "Week 48 - 2014-11-23 - 2014-11-29", "endDate": "2014-11-29", "id": "2014SunW48", "iso": "2014SunW48", "name": "Week 48 - 2014-11-23 - 2014-11-29", + "periodType": "WEEKLY", "startDate": "2014-11-23", }, Object { + "displayName": "Week 49 - 2014-11-30 - 2014-12-06", "endDate": "2014-12-06", "id": "2014SunW49", "iso": "2014SunW49", "name": "Week 49 - 2014-11-30 - 2014-12-06", + "periodType": "WEEKLY", "startDate": "2014-11-30", }, Object { + "displayName": "Week 50 - 2014-12-07 - 2014-12-13", "endDate": "2014-12-13", "id": "2014SunW50", "iso": "2014SunW50", "name": "Week 50 - 2014-12-07 - 2014-12-13", + "periodType": "WEEKLY", "startDate": "2014-12-07", }, Object { + "displayName": "Week 51 - 2014-12-14 - 2014-12-20", "endDate": "2014-12-20", "id": "2014SunW51", "iso": "2014SunW51", "name": "Week 51 - 2014-12-14 - 2014-12-20", + "periodType": "WEEKLY", "startDate": "2014-12-14", }, Object { + "displayName": "Week 52 - 2014-12-21 - 2014-12-27", "endDate": "2014-12-27", "id": "2014SunW52", "iso": "2014SunW52", "name": "Week 52 - 2014-12-21 - 2014-12-27", + "periodType": "WEEKLY", "startDate": "2014-12-21", }, Object { + "displayName": "Week 53 - 2014-12-28 - 2015-01-03", "endDate": "2015-01-03", "id": "2014SunW53", "iso": "2014SunW53", "name": "Week 53 - 2014-12-28 - 2015-01-03", + "periodType": "WEEKLY", "startDate": "2014-12-28", }, ], @@ -4404,374 +5672,480 @@ Object { "name": "Weekly (Start Sunday)", "options": Array [ Object { + "displayName": "Week 1 - 2013-12-29 - 2014-01-04", "endDate": "2014-01-04", "id": "2014SunW1", "iso": "2014SunW1", "name": "Week 1 - 2013-12-29 - 2014-01-04", + "periodType": "WEEKLY", "startDate": "2013-12-29", }, Object { + "displayName": "Week 2 - 2014-01-05 - 2014-01-11", "endDate": "2014-01-11", "id": "2014SunW2", "iso": "2014SunW2", "name": "Week 2 - 2014-01-05 - 2014-01-11", + "periodType": "WEEKLY", "startDate": "2014-01-05", }, Object { + "displayName": "Week 3 - 2014-01-12 - 2014-01-18", "endDate": "2014-01-18", "id": "2014SunW3", "iso": "2014SunW3", "name": "Week 3 - 2014-01-12 - 2014-01-18", + "periodType": "WEEKLY", "startDate": "2014-01-12", }, Object { + "displayName": "Week 4 - 2014-01-19 - 2014-01-25", "endDate": "2014-01-25", "id": "2014SunW4", "iso": "2014SunW4", "name": "Week 4 - 2014-01-19 - 2014-01-25", + "periodType": "WEEKLY", "startDate": "2014-01-19", }, Object { + "displayName": "Week 5 - 2014-01-26 - 2014-02-01", "endDate": "2014-02-01", "id": "2014SunW5", "iso": "2014SunW5", "name": "Week 5 - 2014-01-26 - 2014-02-01", + "periodType": "WEEKLY", "startDate": "2014-01-26", }, Object { + "displayName": "Week 6 - 2014-02-02 - 2014-02-08", "endDate": "2014-02-08", "id": "2014SunW6", "iso": "2014SunW6", "name": "Week 6 - 2014-02-02 - 2014-02-08", + "periodType": "WEEKLY", "startDate": "2014-02-02", }, Object { + "displayName": "Week 7 - 2014-02-09 - 2014-02-15", "endDate": "2014-02-15", "id": "2014SunW7", "iso": "2014SunW7", "name": "Week 7 - 2014-02-09 - 2014-02-15", + "periodType": "WEEKLY", "startDate": "2014-02-09", }, Object { + "displayName": "Week 8 - 2014-02-16 - 2014-02-22", "endDate": "2014-02-22", "id": "2014SunW8", "iso": "2014SunW8", "name": "Week 8 - 2014-02-16 - 2014-02-22", + "periodType": "WEEKLY", "startDate": "2014-02-16", }, Object { + "displayName": "Week 9 - 2014-02-23 - 2014-03-01", "endDate": "2014-03-01", "id": "2014SunW9", "iso": "2014SunW9", "name": "Week 9 - 2014-02-23 - 2014-03-01", + "periodType": "WEEKLY", "startDate": "2014-02-23", }, Object { + "displayName": "Week 10 - 2014-03-02 - 2014-03-08", "endDate": "2014-03-08", "id": "2014SunW10", "iso": "2014SunW10", "name": "Week 10 - 2014-03-02 - 2014-03-08", + "periodType": "WEEKLY", "startDate": "2014-03-02", }, Object { + "displayName": "Week 11 - 2014-03-09 - 2014-03-15", "endDate": "2014-03-15", "id": "2014SunW11", "iso": "2014SunW11", "name": "Week 11 - 2014-03-09 - 2014-03-15", + "periodType": "WEEKLY", "startDate": "2014-03-09", }, Object { + "displayName": "Week 12 - 2014-03-16 - 2014-03-22", "endDate": "2014-03-22", "id": "2014SunW12", "iso": "2014SunW12", "name": "Week 12 - 2014-03-16 - 2014-03-22", + "periodType": "WEEKLY", "startDate": "2014-03-16", }, Object { + "displayName": "Week 13 - 2014-03-23 - 2014-03-29", "endDate": "2014-03-29", "id": "2014SunW13", "iso": "2014SunW13", "name": "Week 13 - 2014-03-23 - 2014-03-29", + "periodType": "WEEKLY", "startDate": "2014-03-23", }, Object { + "displayName": "Week 14 - 2014-03-30 - 2014-04-05", "endDate": "2014-04-05", "id": "2014SunW14", "iso": "2014SunW14", "name": "Week 14 - 2014-03-30 - 2014-04-05", + "periodType": "WEEKLY", "startDate": "2014-03-30", }, Object { + "displayName": "Week 15 - 2014-04-06 - 2014-04-12", "endDate": "2014-04-12", "id": "2014SunW15", "iso": "2014SunW15", "name": "Week 15 - 2014-04-06 - 2014-04-12", + "periodType": "WEEKLY", "startDate": "2014-04-06", }, Object { + "displayName": "Week 16 - 2014-04-13 - 2014-04-19", "endDate": "2014-04-19", "id": "2014SunW16", "iso": "2014SunW16", "name": "Week 16 - 2014-04-13 - 2014-04-19", + "periodType": "WEEKLY", "startDate": "2014-04-13", }, Object { + "displayName": "Week 17 - 2014-04-20 - 2014-04-26", "endDate": "2014-04-26", "id": "2014SunW17", "iso": "2014SunW17", "name": "Week 17 - 2014-04-20 - 2014-04-26", + "periodType": "WEEKLY", "startDate": "2014-04-20", }, Object { + "displayName": "Week 18 - 2014-04-27 - 2014-05-03", "endDate": "2014-05-03", "id": "2014SunW18", "iso": "2014SunW18", "name": "Week 18 - 2014-04-27 - 2014-05-03", + "periodType": "WEEKLY", "startDate": "2014-04-27", }, Object { + "displayName": "Week 19 - 2014-05-04 - 2014-05-10", "endDate": "2014-05-10", "id": "2014SunW19", "iso": "2014SunW19", "name": "Week 19 - 2014-05-04 - 2014-05-10", + "periodType": "WEEKLY", "startDate": "2014-05-04", }, Object { + "displayName": "Week 20 - 2014-05-11 - 2014-05-17", "endDate": "2014-05-17", "id": "2014SunW20", "iso": "2014SunW20", "name": "Week 20 - 2014-05-11 - 2014-05-17", + "periodType": "WEEKLY", "startDate": "2014-05-11", }, Object { + "displayName": "Week 21 - 2014-05-18 - 2014-05-24", "endDate": "2014-05-24", "id": "2014SunW21", "iso": "2014SunW21", "name": "Week 21 - 2014-05-18 - 2014-05-24", + "periodType": "WEEKLY", "startDate": "2014-05-18", }, Object { + "displayName": "Week 22 - 2014-05-25 - 2014-05-31", "endDate": "2014-05-31", "id": "2014SunW22", "iso": "2014SunW22", "name": "Week 22 - 2014-05-25 - 2014-05-31", + "periodType": "WEEKLY", "startDate": "2014-05-25", }, Object { + "displayName": "Week 23 - 2014-06-01 - 2014-06-07", "endDate": "2014-06-07", "id": "2014SunW23", "iso": "2014SunW23", "name": "Week 23 - 2014-06-01 - 2014-06-07", + "periodType": "WEEKLY", "startDate": "2014-06-01", }, Object { + "displayName": "Week 24 - 2014-06-08 - 2014-06-14", "endDate": "2014-06-14", "id": "2014SunW24", "iso": "2014SunW24", "name": "Week 24 - 2014-06-08 - 2014-06-14", + "periodType": "WEEKLY", "startDate": "2014-06-08", }, Object { + "displayName": "Week 25 - 2014-06-15 - 2014-06-21", "endDate": "2014-06-21", "id": "2014SunW25", "iso": "2014SunW25", "name": "Week 25 - 2014-06-15 - 2014-06-21", + "periodType": "WEEKLY", "startDate": "2014-06-15", }, Object { + "displayName": "Week 26 - 2014-06-22 - 2014-06-28", "endDate": "2014-06-28", "id": "2014SunW26", "iso": "2014SunW26", "name": "Week 26 - 2014-06-22 - 2014-06-28", + "periodType": "WEEKLY", "startDate": "2014-06-22", }, Object { + "displayName": "Week 27 - 2014-06-29 - 2014-07-05", "endDate": "2014-07-05", "id": "2014SunW27", "iso": "2014SunW27", "name": "Week 27 - 2014-06-29 - 2014-07-05", + "periodType": "WEEKLY", "startDate": "2014-06-29", }, Object { + "displayName": "Week 28 - 2014-07-06 - 2014-07-12", "endDate": "2014-07-12", "id": "2014SunW28", "iso": "2014SunW28", "name": "Week 28 - 2014-07-06 - 2014-07-12", + "periodType": "WEEKLY", "startDate": "2014-07-06", }, Object { + "displayName": "Week 29 - 2014-07-13 - 2014-07-19", "endDate": "2014-07-19", "id": "2014SunW29", "iso": "2014SunW29", "name": "Week 29 - 2014-07-13 - 2014-07-19", + "periodType": "WEEKLY", "startDate": "2014-07-13", }, Object { + "displayName": "Week 30 - 2014-07-20 - 2014-07-26", "endDate": "2014-07-26", "id": "2014SunW30", "iso": "2014SunW30", "name": "Week 30 - 2014-07-20 - 2014-07-26", + "periodType": "WEEKLY", "startDate": "2014-07-20", }, Object { + "displayName": "Week 31 - 2014-07-27 - 2014-08-02", "endDate": "2014-08-02", "id": "2014SunW31", "iso": "2014SunW31", "name": "Week 31 - 2014-07-27 - 2014-08-02", + "periodType": "WEEKLY", "startDate": "2014-07-27", }, Object { + "displayName": "Week 32 - 2014-08-03 - 2014-08-09", "endDate": "2014-08-09", "id": "2014SunW32", "iso": "2014SunW32", "name": "Week 32 - 2014-08-03 - 2014-08-09", + "periodType": "WEEKLY", "startDate": "2014-08-03", }, Object { + "displayName": "Week 33 - 2014-08-10 - 2014-08-16", "endDate": "2014-08-16", "id": "2014SunW33", "iso": "2014SunW33", "name": "Week 33 - 2014-08-10 - 2014-08-16", + "periodType": "WEEKLY", "startDate": "2014-08-10", }, Object { + "displayName": "Week 34 - 2014-08-17 - 2014-08-23", "endDate": "2014-08-23", "id": "2014SunW34", "iso": "2014SunW34", "name": "Week 34 - 2014-08-17 - 2014-08-23", + "periodType": "WEEKLY", "startDate": "2014-08-17", }, Object { + "displayName": "Week 35 - 2014-08-24 - 2014-08-30", "endDate": "2014-08-30", "id": "2014SunW35", "iso": "2014SunW35", "name": "Week 35 - 2014-08-24 - 2014-08-30", + "periodType": "WEEKLY", "startDate": "2014-08-24", }, Object { + "displayName": "Week 36 - 2014-08-31 - 2014-09-06", "endDate": "2014-09-06", "id": "2014SunW36", "iso": "2014SunW36", "name": "Week 36 - 2014-08-31 - 2014-09-06", + "periodType": "WEEKLY", "startDate": "2014-08-31", }, Object { + "displayName": "Week 37 - 2014-09-07 - 2014-09-13", "endDate": "2014-09-13", "id": "2014SunW37", "iso": "2014SunW37", "name": "Week 37 - 2014-09-07 - 2014-09-13", + "periodType": "WEEKLY", "startDate": "2014-09-07", }, Object { + "displayName": "Week 38 - 2014-09-14 - 2014-09-20", "endDate": "2014-09-20", "id": "2014SunW38", "iso": "2014SunW38", "name": "Week 38 - 2014-09-14 - 2014-09-20", + "periodType": "WEEKLY", "startDate": "2014-09-14", }, Object { + "displayName": "Week 39 - 2014-09-21 - 2014-09-27", "endDate": "2014-09-27", "id": "2014SunW39", "iso": "2014SunW39", "name": "Week 39 - 2014-09-21 - 2014-09-27", + "periodType": "WEEKLY", "startDate": "2014-09-21", }, Object { + "displayName": "Week 40 - 2014-09-28 - 2014-10-04", "endDate": "2014-10-04", "id": "2014SunW40", "iso": "2014SunW40", "name": "Week 40 - 2014-09-28 - 2014-10-04", + "periodType": "WEEKLY", "startDate": "2014-09-28", }, Object { + "displayName": "Week 41 - 2014-10-05 - 2014-10-11", "endDate": "2014-10-11", "id": "2014SunW41", "iso": "2014SunW41", "name": "Week 41 - 2014-10-05 - 2014-10-11", + "periodType": "WEEKLY", "startDate": "2014-10-05", }, Object { + "displayName": "Week 42 - 2014-10-12 - 2014-10-18", "endDate": "2014-10-18", "id": "2014SunW42", "iso": "2014SunW42", "name": "Week 42 - 2014-10-12 - 2014-10-18", + "periodType": "WEEKLY", "startDate": "2014-10-12", }, Object { + "displayName": "Week 43 - 2014-10-19 - 2014-10-25", "endDate": "2014-10-25", "id": "2014SunW43", "iso": "2014SunW43", "name": "Week 43 - 2014-10-19 - 2014-10-25", + "periodType": "WEEKLY", "startDate": "2014-10-19", }, Object { + "displayName": "Week 44 - 2014-10-26 - 2014-11-01", "endDate": "2014-11-01", "id": "2014SunW44", "iso": "2014SunW44", "name": "Week 44 - 2014-10-26 - 2014-11-01", + "periodType": "WEEKLY", "startDate": "2014-10-26", }, Object { + "displayName": "Week 45 - 2014-11-02 - 2014-11-08", "endDate": "2014-11-08", "id": "2014SunW45", "iso": "2014SunW45", "name": "Week 45 - 2014-11-02 - 2014-11-08", + "periodType": "WEEKLY", "startDate": "2014-11-02", }, Object { + "displayName": "Week 46 - 2014-11-09 - 2014-11-15", "endDate": "2014-11-15", "id": "2014SunW46", "iso": "2014SunW46", "name": "Week 46 - 2014-11-09 - 2014-11-15", + "periodType": "WEEKLY", "startDate": "2014-11-09", }, Object { + "displayName": "Week 47 - 2014-11-16 - 2014-11-22", "endDate": "2014-11-22", "id": "2014SunW47", "iso": "2014SunW47", "name": "Week 47 - 2014-11-16 - 2014-11-22", + "periodType": "WEEKLY", "startDate": "2014-11-16", }, Object { + "displayName": "Week 48 - 2014-11-23 - 2014-11-29", "endDate": "2014-11-29", "id": "2014SunW48", "iso": "2014SunW48", "name": "Week 48 - 2014-11-23 - 2014-11-29", + "periodType": "WEEKLY", "startDate": "2014-11-23", }, Object { + "displayName": "Week 49 - 2014-11-30 - 2014-12-06", "endDate": "2014-12-06", "id": "2014SunW49", "iso": "2014SunW49", "name": "Week 49 - 2014-11-30 - 2014-12-06", + "periodType": "WEEKLY", "startDate": "2014-11-30", }, Object { + "displayName": "Week 50 - 2014-12-07 - 2014-12-13", "endDate": "2014-12-13", "id": "2014SunW50", "iso": "2014SunW50", "name": "Week 50 - 2014-12-07 - 2014-12-13", + "periodType": "WEEKLY", "startDate": "2014-12-07", }, Object { + "displayName": "Week 51 - 2014-12-14 - 2014-12-20", "endDate": "2014-12-20", "id": "2014SunW51", "iso": "2014SunW51", "name": "Week 51 - 2014-12-14 - 2014-12-20", + "periodType": "WEEKLY", "startDate": "2014-12-14", }, Object { + "displayName": "Week 52 - 2014-12-21 - 2014-12-27", "endDate": "2014-12-27", "id": "2014SunW52", "iso": "2014SunW52", "name": "Week 52 - 2014-12-21 - 2014-12-27", + "periodType": "WEEKLY", "startDate": "2014-12-21", }, Object { + "displayName": "Week 53 - 2014-12-28 - 2015-01-03", "endDate": "2015-01-03", "id": "2014SunW53", "iso": "2014SunW53", "name": "Week 53 - 2014-12-28 - 2015-01-03", + "periodType": "WEEKLY", "startDate": "2014-12-28", }, ], @@ -4785,367 +6159,471 @@ Object { "name": "Weekly (Start Thursday)", "options": Array [ Object { + "displayName": "Week 1 - 2014-01-02 - 2014-01-08", "endDate": "2014-01-08", "id": "2014ThuW1", "iso": "2014ThuW1", "name": "Week 1 - 2014-01-02 - 2014-01-08", + "periodType": "WEEKLY", "startDate": "2014-01-02", }, Object { + "displayName": "Week 2 - 2014-01-09 - 2014-01-15", "endDate": "2014-01-15", "id": "2014ThuW2", "iso": "2014ThuW2", "name": "Week 2 - 2014-01-09 - 2014-01-15", + "periodType": "WEEKLY", "startDate": "2014-01-09", }, Object { + "displayName": "Week 3 - 2014-01-16 - 2014-01-22", "endDate": "2014-01-22", "id": "2014ThuW3", "iso": "2014ThuW3", "name": "Week 3 - 2014-01-16 - 2014-01-22", + "periodType": "WEEKLY", "startDate": "2014-01-16", }, Object { + "displayName": "Week 4 - 2014-01-23 - 2014-01-29", "endDate": "2014-01-29", "id": "2014ThuW4", "iso": "2014ThuW4", "name": "Week 4 - 2014-01-23 - 2014-01-29", + "periodType": "WEEKLY", "startDate": "2014-01-23", }, Object { + "displayName": "Week 5 - 2014-01-30 - 2014-02-05", "endDate": "2014-02-05", "id": "2014ThuW5", "iso": "2014ThuW5", "name": "Week 5 - 2014-01-30 - 2014-02-05", + "periodType": "WEEKLY", "startDate": "2014-01-30", }, Object { + "displayName": "Week 6 - 2014-02-06 - 2014-02-12", "endDate": "2014-02-12", "id": "2014ThuW6", "iso": "2014ThuW6", "name": "Week 6 - 2014-02-06 - 2014-02-12", + "periodType": "WEEKLY", "startDate": "2014-02-06", }, Object { + "displayName": "Week 7 - 2014-02-13 - 2014-02-19", "endDate": "2014-02-19", "id": "2014ThuW7", "iso": "2014ThuW7", "name": "Week 7 - 2014-02-13 - 2014-02-19", + "periodType": "WEEKLY", "startDate": "2014-02-13", }, Object { + "displayName": "Week 8 - 2014-02-20 - 2014-02-26", "endDate": "2014-02-26", "id": "2014ThuW8", "iso": "2014ThuW8", "name": "Week 8 - 2014-02-20 - 2014-02-26", + "periodType": "WEEKLY", "startDate": "2014-02-20", }, Object { + "displayName": "Week 9 - 2014-02-27 - 2014-03-05", "endDate": "2014-03-05", "id": "2014ThuW9", "iso": "2014ThuW9", "name": "Week 9 - 2014-02-27 - 2014-03-05", + "periodType": "WEEKLY", "startDate": "2014-02-27", }, Object { + "displayName": "Week 10 - 2014-03-06 - 2014-03-12", "endDate": "2014-03-12", "id": "2014ThuW10", "iso": "2014ThuW10", "name": "Week 10 - 2014-03-06 - 2014-03-12", + "periodType": "WEEKLY", "startDate": "2014-03-06", }, Object { + "displayName": "Week 11 - 2014-03-13 - 2014-03-19", "endDate": "2014-03-19", "id": "2014ThuW11", "iso": "2014ThuW11", "name": "Week 11 - 2014-03-13 - 2014-03-19", + "periodType": "WEEKLY", "startDate": "2014-03-13", }, Object { + "displayName": "Week 12 - 2014-03-20 - 2014-03-26", "endDate": "2014-03-26", "id": "2014ThuW12", "iso": "2014ThuW12", "name": "Week 12 - 2014-03-20 - 2014-03-26", + "periodType": "WEEKLY", "startDate": "2014-03-20", }, Object { + "displayName": "Week 13 - 2014-03-27 - 2014-04-02", "endDate": "2014-04-02", "id": "2014ThuW13", "iso": "2014ThuW13", "name": "Week 13 - 2014-03-27 - 2014-04-02", + "periodType": "WEEKLY", "startDate": "2014-03-27", }, Object { + "displayName": "Week 14 - 2014-04-03 - 2014-04-09", "endDate": "2014-04-09", "id": "2014ThuW14", "iso": "2014ThuW14", "name": "Week 14 - 2014-04-03 - 2014-04-09", + "periodType": "WEEKLY", "startDate": "2014-04-03", }, Object { + "displayName": "Week 15 - 2014-04-10 - 2014-04-16", "endDate": "2014-04-16", "id": "2014ThuW15", "iso": "2014ThuW15", "name": "Week 15 - 2014-04-10 - 2014-04-16", + "periodType": "WEEKLY", "startDate": "2014-04-10", }, Object { + "displayName": "Week 16 - 2014-04-17 - 2014-04-23", "endDate": "2014-04-23", "id": "2014ThuW16", "iso": "2014ThuW16", "name": "Week 16 - 2014-04-17 - 2014-04-23", + "periodType": "WEEKLY", "startDate": "2014-04-17", }, Object { + "displayName": "Week 17 - 2014-04-24 - 2014-04-30", "endDate": "2014-04-30", "id": "2014ThuW17", "iso": "2014ThuW17", "name": "Week 17 - 2014-04-24 - 2014-04-30", + "periodType": "WEEKLY", "startDate": "2014-04-24", }, Object { + "displayName": "Week 18 - 2014-05-01 - 2014-05-07", "endDate": "2014-05-07", "id": "2014ThuW18", "iso": "2014ThuW18", "name": "Week 18 - 2014-05-01 - 2014-05-07", + "periodType": "WEEKLY", "startDate": "2014-05-01", }, Object { + "displayName": "Week 19 - 2014-05-08 - 2014-05-14", "endDate": "2014-05-14", "id": "2014ThuW19", "iso": "2014ThuW19", "name": "Week 19 - 2014-05-08 - 2014-05-14", + "periodType": "WEEKLY", "startDate": "2014-05-08", }, Object { + "displayName": "Week 20 - 2014-05-15 - 2014-05-21", "endDate": "2014-05-21", "id": "2014ThuW20", "iso": "2014ThuW20", "name": "Week 20 - 2014-05-15 - 2014-05-21", + "periodType": "WEEKLY", "startDate": "2014-05-15", }, Object { + "displayName": "Week 21 - 2014-05-22 - 2014-05-28", "endDate": "2014-05-28", "id": "2014ThuW21", "iso": "2014ThuW21", "name": "Week 21 - 2014-05-22 - 2014-05-28", + "periodType": "WEEKLY", "startDate": "2014-05-22", }, Object { + "displayName": "Week 22 - 2014-05-29 - 2014-06-04", "endDate": "2014-06-04", "id": "2014ThuW22", "iso": "2014ThuW22", "name": "Week 22 - 2014-05-29 - 2014-06-04", + "periodType": "WEEKLY", "startDate": "2014-05-29", }, Object { + "displayName": "Week 23 - 2014-06-05 - 2014-06-11", "endDate": "2014-06-11", "id": "2014ThuW23", "iso": "2014ThuW23", "name": "Week 23 - 2014-06-05 - 2014-06-11", + "periodType": "WEEKLY", "startDate": "2014-06-05", }, Object { + "displayName": "Week 24 - 2014-06-12 - 2014-06-18", "endDate": "2014-06-18", "id": "2014ThuW24", "iso": "2014ThuW24", "name": "Week 24 - 2014-06-12 - 2014-06-18", + "periodType": "WEEKLY", "startDate": "2014-06-12", }, Object { + "displayName": "Week 25 - 2014-06-19 - 2014-06-25", "endDate": "2014-06-25", "id": "2014ThuW25", "iso": "2014ThuW25", "name": "Week 25 - 2014-06-19 - 2014-06-25", + "periodType": "WEEKLY", "startDate": "2014-06-19", }, Object { + "displayName": "Week 26 - 2014-06-26 - 2014-07-02", "endDate": "2014-07-02", "id": "2014ThuW26", "iso": "2014ThuW26", "name": "Week 26 - 2014-06-26 - 2014-07-02", + "periodType": "WEEKLY", "startDate": "2014-06-26", }, Object { + "displayName": "Week 27 - 2014-07-03 - 2014-07-09", "endDate": "2014-07-09", "id": "2014ThuW27", "iso": "2014ThuW27", "name": "Week 27 - 2014-07-03 - 2014-07-09", + "periodType": "WEEKLY", "startDate": "2014-07-03", }, Object { + "displayName": "Week 28 - 2014-07-10 - 2014-07-16", "endDate": "2014-07-16", "id": "2014ThuW28", "iso": "2014ThuW28", "name": "Week 28 - 2014-07-10 - 2014-07-16", + "periodType": "WEEKLY", "startDate": "2014-07-10", }, Object { + "displayName": "Week 29 - 2014-07-17 - 2014-07-23", "endDate": "2014-07-23", "id": "2014ThuW29", "iso": "2014ThuW29", "name": "Week 29 - 2014-07-17 - 2014-07-23", + "periodType": "WEEKLY", "startDate": "2014-07-17", }, Object { + "displayName": "Week 30 - 2014-07-24 - 2014-07-30", "endDate": "2014-07-30", "id": "2014ThuW30", "iso": "2014ThuW30", "name": "Week 30 - 2014-07-24 - 2014-07-30", + "periodType": "WEEKLY", "startDate": "2014-07-24", }, Object { + "displayName": "Week 31 - 2014-07-31 - 2014-08-06", "endDate": "2014-08-06", "id": "2014ThuW31", "iso": "2014ThuW31", "name": "Week 31 - 2014-07-31 - 2014-08-06", + "periodType": "WEEKLY", "startDate": "2014-07-31", }, Object { + "displayName": "Week 32 - 2014-08-07 - 2014-08-13", "endDate": "2014-08-13", "id": "2014ThuW32", "iso": "2014ThuW32", "name": "Week 32 - 2014-08-07 - 2014-08-13", + "periodType": "WEEKLY", "startDate": "2014-08-07", }, Object { + "displayName": "Week 33 - 2014-08-14 - 2014-08-20", "endDate": "2014-08-20", "id": "2014ThuW33", "iso": "2014ThuW33", "name": "Week 33 - 2014-08-14 - 2014-08-20", + "periodType": "WEEKLY", "startDate": "2014-08-14", }, Object { + "displayName": "Week 34 - 2014-08-21 - 2014-08-27", "endDate": "2014-08-27", "id": "2014ThuW34", "iso": "2014ThuW34", "name": "Week 34 - 2014-08-21 - 2014-08-27", + "periodType": "WEEKLY", "startDate": "2014-08-21", }, Object { + "displayName": "Week 35 - 2014-08-28 - 2014-09-03", "endDate": "2014-09-03", "id": "2014ThuW35", "iso": "2014ThuW35", "name": "Week 35 - 2014-08-28 - 2014-09-03", + "periodType": "WEEKLY", "startDate": "2014-08-28", }, Object { + "displayName": "Week 36 - 2014-09-04 - 2014-09-10", "endDate": "2014-09-10", "id": "2014ThuW36", "iso": "2014ThuW36", "name": "Week 36 - 2014-09-04 - 2014-09-10", + "periodType": "WEEKLY", "startDate": "2014-09-04", }, Object { + "displayName": "Week 37 - 2014-09-11 - 2014-09-17", "endDate": "2014-09-17", "id": "2014ThuW37", "iso": "2014ThuW37", "name": "Week 37 - 2014-09-11 - 2014-09-17", + "periodType": "WEEKLY", "startDate": "2014-09-11", }, Object { + "displayName": "Week 38 - 2014-09-18 - 2014-09-24", "endDate": "2014-09-24", "id": "2014ThuW38", "iso": "2014ThuW38", "name": "Week 38 - 2014-09-18 - 2014-09-24", + "periodType": "WEEKLY", "startDate": "2014-09-18", }, Object { + "displayName": "Week 39 - 2014-09-25 - 2014-10-01", "endDate": "2014-10-01", "id": "2014ThuW39", "iso": "2014ThuW39", "name": "Week 39 - 2014-09-25 - 2014-10-01", + "periodType": "WEEKLY", "startDate": "2014-09-25", }, Object { + "displayName": "Week 40 - 2014-10-02 - 2014-10-08", "endDate": "2014-10-08", "id": "2014ThuW40", "iso": "2014ThuW40", "name": "Week 40 - 2014-10-02 - 2014-10-08", + "periodType": "WEEKLY", "startDate": "2014-10-02", }, Object { + "displayName": "Week 41 - 2014-10-09 - 2014-10-15", "endDate": "2014-10-15", "id": "2014ThuW41", "iso": "2014ThuW41", "name": "Week 41 - 2014-10-09 - 2014-10-15", + "periodType": "WEEKLY", "startDate": "2014-10-09", }, Object { + "displayName": "Week 42 - 2014-10-16 - 2014-10-22", "endDate": "2014-10-22", "id": "2014ThuW42", "iso": "2014ThuW42", "name": "Week 42 - 2014-10-16 - 2014-10-22", + "periodType": "WEEKLY", "startDate": "2014-10-16", }, Object { + "displayName": "Week 43 - 2014-10-23 - 2014-10-29", "endDate": "2014-10-29", "id": "2014ThuW43", "iso": "2014ThuW43", "name": "Week 43 - 2014-10-23 - 2014-10-29", + "periodType": "WEEKLY", "startDate": "2014-10-23", }, Object { + "displayName": "Week 44 - 2014-10-30 - 2014-11-05", "endDate": "2014-11-05", "id": "2014ThuW44", "iso": "2014ThuW44", "name": "Week 44 - 2014-10-30 - 2014-11-05", + "periodType": "WEEKLY", "startDate": "2014-10-30", }, Object { + "displayName": "Week 45 - 2014-11-06 - 2014-11-12", "endDate": "2014-11-12", "id": "2014ThuW45", "iso": "2014ThuW45", "name": "Week 45 - 2014-11-06 - 2014-11-12", + "periodType": "WEEKLY", "startDate": "2014-11-06", }, Object { + "displayName": "Week 46 - 2014-11-13 - 2014-11-19", "endDate": "2014-11-19", "id": "2014ThuW46", "iso": "2014ThuW46", "name": "Week 46 - 2014-11-13 - 2014-11-19", + "periodType": "WEEKLY", "startDate": "2014-11-13", }, Object { + "displayName": "Week 47 - 2014-11-20 - 2014-11-26", "endDate": "2014-11-26", "id": "2014ThuW47", "iso": "2014ThuW47", "name": "Week 47 - 2014-11-20 - 2014-11-26", + "periodType": "WEEKLY", "startDate": "2014-11-20", }, Object { + "displayName": "Week 48 - 2014-11-27 - 2014-12-03", "endDate": "2014-12-03", "id": "2014ThuW48", "iso": "2014ThuW48", "name": "Week 48 - 2014-11-27 - 2014-12-03", + "periodType": "WEEKLY", "startDate": "2014-11-27", }, Object { + "displayName": "Week 49 - 2014-12-04 - 2014-12-10", "endDate": "2014-12-10", "id": "2014ThuW49", "iso": "2014ThuW49", "name": "Week 49 - 2014-12-04 - 2014-12-10", + "periodType": "WEEKLY", "startDate": "2014-12-04", }, Object { + "displayName": "Week 50 - 2014-12-11 - 2014-12-17", "endDate": "2014-12-17", "id": "2014ThuW50", "iso": "2014ThuW50", "name": "Week 50 - 2014-12-11 - 2014-12-17", + "periodType": "WEEKLY", "startDate": "2014-12-11", }, Object { + "displayName": "Week 51 - 2014-12-18 - 2014-12-24", "endDate": "2014-12-24", "id": "2014ThuW51", "iso": "2014ThuW51", "name": "Week 51 - 2014-12-18 - 2014-12-24", + "periodType": "WEEKLY", "startDate": "2014-12-18", }, Object { + "displayName": "Week 52 - 2014-12-25 - 2014-12-31", "endDate": "2014-12-31", "id": "2014ThuW52", "iso": "2014ThuW52", "name": "Week 52 - 2014-12-25 - 2014-12-31", + "periodType": "WEEKLY", "startDate": "2014-12-25", }, ], @@ -5159,367 +6637,471 @@ Object { "name": "Weekly (Start Wednesday)", "options": Array [ Object { + "displayName": "Week 1 - 2014-01-01 - 2014-01-07", "endDate": "2014-01-07", "id": "2014WedW1", "iso": "2014WedW1", "name": "Week 1 - 2014-01-01 - 2014-01-07", + "periodType": "WEEKLY", "startDate": "2014-01-01", }, Object { + "displayName": "Week 2 - 2014-01-08 - 2014-01-14", "endDate": "2014-01-14", "id": "2014WedW2", "iso": "2014WedW2", "name": "Week 2 - 2014-01-08 - 2014-01-14", + "periodType": "WEEKLY", "startDate": "2014-01-08", }, Object { + "displayName": "Week 3 - 2014-01-15 - 2014-01-21", "endDate": "2014-01-21", "id": "2014WedW3", "iso": "2014WedW3", "name": "Week 3 - 2014-01-15 - 2014-01-21", + "periodType": "WEEKLY", "startDate": "2014-01-15", }, Object { + "displayName": "Week 4 - 2014-01-22 - 2014-01-28", "endDate": "2014-01-28", "id": "2014WedW4", "iso": "2014WedW4", "name": "Week 4 - 2014-01-22 - 2014-01-28", + "periodType": "WEEKLY", "startDate": "2014-01-22", }, Object { + "displayName": "Week 5 - 2014-01-29 - 2014-02-04", "endDate": "2014-02-04", "id": "2014WedW5", "iso": "2014WedW5", "name": "Week 5 - 2014-01-29 - 2014-02-04", + "periodType": "WEEKLY", "startDate": "2014-01-29", }, Object { + "displayName": "Week 6 - 2014-02-05 - 2014-02-11", "endDate": "2014-02-11", "id": "2014WedW6", "iso": "2014WedW6", "name": "Week 6 - 2014-02-05 - 2014-02-11", + "periodType": "WEEKLY", "startDate": "2014-02-05", }, Object { + "displayName": "Week 7 - 2014-02-12 - 2014-02-18", "endDate": "2014-02-18", "id": "2014WedW7", "iso": "2014WedW7", "name": "Week 7 - 2014-02-12 - 2014-02-18", + "periodType": "WEEKLY", "startDate": "2014-02-12", }, Object { + "displayName": "Week 8 - 2014-02-19 - 2014-02-25", "endDate": "2014-02-25", "id": "2014WedW8", "iso": "2014WedW8", "name": "Week 8 - 2014-02-19 - 2014-02-25", + "periodType": "WEEKLY", "startDate": "2014-02-19", }, Object { + "displayName": "Week 9 - 2014-02-26 - 2014-03-04", "endDate": "2014-03-04", "id": "2014WedW9", "iso": "2014WedW9", "name": "Week 9 - 2014-02-26 - 2014-03-04", + "periodType": "WEEKLY", "startDate": "2014-02-26", }, Object { + "displayName": "Week 10 - 2014-03-05 - 2014-03-11", "endDate": "2014-03-11", "id": "2014WedW10", "iso": "2014WedW10", "name": "Week 10 - 2014-03-05 - 2014-03-11", + "periodType": "WEEKLY", "startDate": "2014-03-05", }, Object { + "displayName": "Week 11 - 2014-03-12 - 2014-03-18", "endDate": "2014-03-18", "id": "2014WedW11", "iso": "2014WedW11", "name": "Week 11 - 2014-03-12 - 2014-03-18", + "periodType": "WEEKLY", "startDate": "2014-03-12", }, Object { + "displayName": "Week 12 - 2014-03-19 - 2014-03-25", "endDate": "2014-03-25", "id": "2014WedW12", "iso": "2014WedW12", "name": "Week 12 - 2014-03-19 - 2014-03-25", + "periodType": "WEEKLY", "startDate": "2014-03-19", }, Object { + "displayName": "Week 13 - 2014-03-26 - 2014-04-01", "endDate": "2014-04-01", "id": "2014WedW13", "iso": "2014WedW13", "name": "Week 13 - 2014-03-26 - 2014-04-01", + "periodType": "WEEKLY", "startDate": "2014-03-26", }, Object { + "displayName": "Week 14 - 2014-04-02 - 2014-04-08", "endDate": "2014-04-08", "id": "2014WedW14", "iso": "2014WedW14", "name": "Week 14 - 2014-04-02 - 2014-04-08", + "periodType": "WEEKLY", "startDate": "2014-04-02", }, Object { + "displayName": "Week 15 - 2014-04-09 - 2014-04-15", "endDate": "2014-04-15", "id": "2014WedW15", "iso": "2014WedW15", "name": "Week 15 - 2014-04-09 - 2014-04-15", + "periodType": "WEEKLY", "startDate": "2014-04-09", }, Object { + "displayName": "Week 16 - 2014-04-16 - 2014-04-22", "endDate": "2014-04-22", "id": "2014WedW16", "iso": "2014WedW16", "name": "Week 16 - 2014-04-16 - 2014-04-22", + "periodType": "WEEKLY", "startDate": "2014-04-16", }, Object { + "displayName": "Week 17 - 2014-04-23 - 2014-04-29", "endDate": "2014-04-29", "id": "2014WedW17", "iso": "2014WedW17", "name": "Week 17 - 2014-04-23 - 2014-04-29", + "periodType": "WEEKLY", "startDate": "2014-04-23", }, Object { + "displayName": "Week 18 - 2014-04-30 - 2014-05-06", "endDate": "2014-05-06", "id": "2014WedW18", "iso": "2014WedW18", "name": "Week 18 - 2014-04-30 - 2014-05-06", + "periodType": "WEEKLY", "startDate": "2014-04-30", }, Object { + "displayName": "Week 19 - 2014-05-07 - 2014-05-13", "endDate": "2014-05-13", "id": "2014WedW19", "iso": "2014WedW19", "name": "Week 19 - 2014-05-07 - 2014-05-13", + "periodType": "WEEKLY", "startDate": "2014-05-07", }, Object { + "displayName": "Week 20 - 2014-05-14 - 2014-05-20", "endDate": "2014-05-20", "id": "2014WedW20", "iso": "2014WedW20", "name": "Week 20 - 2014-05-14 - 2014-05-20", + "periodType": "WEEKLY", "startDate": "2014-05-14", }, Object { + "displayName": "Week 21 - 2014-05-21 - 2014-05-27", "endDate": "2014-05-27", "id": "2014WedW21", "iso": "2014WedW21", "name": "Week 21 - 2014-05-21 - 2014-05-27", + "periodType": "WEEKLY", "startDate": "2014-05-21", }, Object { + "displayName": "Week 22 - 2014-05-28 - 2014-06-03", "endDate": "2014-06-03", "id": "2014WedW22", "iso": "2014WedW22", "name": "Week 22 - 2014-05-28 - 2014-06-03", + "periodType": "WEEKLY", "startDate": "2014-05-28", }, Object { + "displayName": "Week 23 - 2014-06-04 - 2014-06-10", "endDate": "2014-06-10", "id": "2014WedW23", "iso": "2014WedW23", "name": "Week 23 - 2014-06-04 - 2014-06-10", + "periodType": "WEEKLY", "startDate": "2014-06-04", }, Object { + "displayName": "Week 24 - 2014-06-11 - 2014-06-17", "endDate": "2014-06-17", "id": "2014WedW24", "iso": "2014WedW24", "name": "Week 24 - 2014-06-11 - 2014-06-17", + "periodType": "WEEKLY", "startDate": "2014-06-11", }, Object { + "displayName": "Week 25 - 2014-06-18 - 2014-06-24", "endDate": "2014-06-24", "id": "2014WedW25", "iso": "2014WedW25", "name": "Week 25 - 2014-06-18 - 2014-06-24", + "periodType": "WEEKLY", "startDate": "2014-06-18", }, Object { + "displayName": "Week 26 - 2014-06-25 - 2014-07-01", "endDate": "2014-07-01", "id": "2014WedW26", "iso": "2014WedW26", "name": "Week 26 - 2014-06-25 - 2014-07-01", + "periodType": "WEEKLY", "startDate": "2014-06-25", }, Object { + "displayName": "Week 27 - 2014-07-02 - 2014-07-08", "endDate": "2014-07-08", "id": "2014WedW27", "iso": "2014WedW27", "name": "Week 27 - 2014-07-02 - 2014-07-08", + "periodType": "WEEKLY", "startDate": "2014-07-02", }, Object { + "displayName": "Week 28 - 2014-07-09 - 2014-07-15", "endDate": "2014-07-15", "id": "2014WedW28", "iso": "2014WedW28", "name": "Week 28 - 2014-07-09 - 2014-07-15", + "periodType": "WEEKLY", "startDate": "2014-07-09", }, Object { + "displayName": "Week 29 - 2014-07-16 - 2014-07-22", "endDate": "2014-07-22", "id": "2014WedW29", "iso": "2014WedW29", "name": "Week 29 - 2014-07-16 - 2014-07-22", + "periodType": "WEEKLY", "startDate": "2014-07-16", }, Object { + "displayName": "Week 30 - 2014-07-23 - 2014-07-29", "endDate": "2014-07-29", "id": "2014WedW30", "iso": "2014WedW30", "name": "Week 30 - 2014-07-23 - 2014-07-29", + "periodType": "WEEKLY", "startDate": "2014-07-23", }, Object { + "displayName": "Week 31 - 2014-07-30 - 2014-08-05", "endDate": "2014-08-05", "id": "2014WedW31", "iso": "2014WedW31", "name": "Week 31 - 2014-07-30 - 2014-08-05", + "periodType": "WEEKLY", "startDate": "2014-07-30", }, Object { + "displayName": "Week 32 - 2014-08-06 - 2014-08-12", "endDate": "2014-08-12", "id": "2014WedW32", "iso": "2014WedW32", "name": "Week 32 - 2014-08-06 - 2014-08-12", + "periodType": "WEEKLY", "startDate": "2014-08-06", }, Object { + "displayName": "Week 33 - 2014-08-13 - 2014-08-19", "endDate": "2014-08-19", "id": "2014WedW33", "iso": "2014WedW33", "name": "Week 33 - 2014-08-13 - 2014-08-19", + "periodType": "WEEKLY", "startDate": "2014-08-13", }, Object { + "displayName": "Week 34 - 2014-08-20 - 2014-08-26", "endDate": "2014-08-26", "id": "2014WedW34", "iso": "2014WedW34", "name": "Week 34 - 2014-08-20 - 2014-08-26", + "periodType": "WEEKLY", "startDate": "2014-08-20", }, Object { + "displayName": "Week 35 - 2014-08-27 - 2014-09-02", "endDate": "2014-09-02", "id": "2014WedW35", "iso": "2014WedW35", "name": "Week 35 - 2014-08-27 - 2014-09-02", + "periodType": "WEEKLY", "startDate": "2014-08-27", }, Object { + "displayName": "Week 36 - 2014-09-03 - 2014-09-09", "endDate": "2014-09-09", "id": "2014WedW36", "iso": "2014WedW36", "name": "Week 36 - 2014-09-03 - 2014-09-09", + "periodType": "WEEKLY", "startDate": "2014-09-03", }, Object { + "displayName": "Week 37 - 2014-09-10 - 2014-09-16", "endDate": "2014-09-16", "id": "2014WedW37", "iso": "2014WedW37", "name": "Week 37 - 2014-09-10 - 2014-09-16", + "periodType": "WEEKLY", "startDate": "2014-09-10", }, Object { + "displayName": "Week 38 - 2014-09-17 - 2014-09-23", "endDate": "2014-09-23", "id": "2014WedW38", "iso": "2014WedW38", "name": "Week 38 - 2014-09-17 - 2014-09-23", + "periodType": "WEEKLY", "startDate": "2014-09-17", }, Object { + "displayName": "Week 39 - 2014-09-24 - 2014-09-30", "endDate": "2014-09-30", "id": "2014WedW39", "iso": "2014WedW39", "name": "Week 39 - 2014-09-24 - 2014-09-30", + "periodType": "WEEKLY", "startDate": "2014-09-24", }, Object { + "displayName": "Week 40 - 2014-10-01 - 2014-10-07", "endDate": "2014-10-07", "id": "2014WedW40", "iso": "2014WedW40", "name": "Week 40 - 2014-10-01 - 2014-10-07", + "periodType": "WEEKLY", "startDate": "2014-10-01", }, Object { + "displayName": "Week 41 - 2014-10-08 - 2014-10-14", "endDate": "2014-10-14", "id": "2014WedW41", "iso": "2014WedW41", "name": "Week 41 - 2014-10-08 - 2014-10-14", + "periodType": "WEEKLY", "startDate": "2014-10-08", }, Object { + "displayName": "Week 42 - 2014-10-15 - 2014-10-21", "endDate": "2014-10-21", "id": "2014WedW42", "iso": "2014WedW42", "name": "Week 42 - 2014-10-15 - 2014-10-21", + "periodType": "WEEKLY", "startDate": "2014-10-15", }, Object { + "displayName": "Week 43 - 2014-10-22 - 2014-10-28", "endDate": "2014-10-28", "id": "2014WedW43", "iso": "2014WedW43", "name": "Week 43 - 2014-10-22 - 2014-10-28", + "periodType": "WEEKLY", "startDate": "2014-10-22", }, Object { + "displayName": "Week 44 - 2014-10-29 - 2014-11-04", "endDate": "2014-11-04", "id": "2014WedW44", "iso": "2014WedW44", "name": "Week 44 - 2014-10-29 - 2014-11-04", + "periodType": "WEEKLY", "startDate": "2014-10-29", }, Object { + "displayName": "Week 45 - 2014-11-05 - 2014-11-11", "endDate": "2014-11-11", "id": "2014WedW45", "iso": "2014WedW45", "name": "Week 45 - 2014-11-05 - 2014-11-11", + "periodType": "WEEKLY", "startDate": "2014-11-05", }, Object { + "displayName": "Week 46 - 2014-11-12 - 2014-11-18", "endDate": "2014-11-18", "id": "2014WedW46", "iso": "2014WedW46", "name": "Week 46 - 2014-11-12 - 2014-11-18", + "periodType": "WEEKLY", "startDate": "2014-11-12", }, Object { + "displayName": "Week 47 - 2014-11-19 - 2014-11-25", "endDate": "2014-11-25", "id": "2014WedW47", "iso": "2014WedW47", "name": "Week 47 - 2014-11-19 - 2014-11-25", + "periodType": "WEEKLY", "startDate": "2014-11-19", }, Object { + "displayName": "Week 48 - 2014-11-26 - 2014-12-02", "endDate": "2014-12-02", "id": "2014WedW48", "iso": "2014WedW48", "name": "Week 48 - 2014-11-26 - 2014-12-02", + "periodType": "WEEKLY", "startDate": "2014-11-26", }, Object { + "displayName": "Week 49 - 2014-12-03 - 2014-12-09", "endDate": "2014-12-09", "id": "2014WedW49", "iso": "2014WedW49", "name": "Week 49 - 2014-12-03 - 2014-12-09", + "periodType": "WEEKLY", "startDate": "2014-12-03", }, Object { + "displayName": "Week 50 - 2014-12-10 - 2014-12-16", "endDate": "2014-12-16", "id": "2014WedW50", "iso": "2014WedW50", "name": "Week 50 - 2014-12-10 - 2014-12-16", + "periodType": "WEEKLY", "startDate": "2014-12-10", }, Object { + "displayName": "Week 51 - 2014-12-17 - 2014-12-23", "endDate": "2014-12-23", "id": "2014WedW51", "iso": "2014WedW51", "name": "Week 51 - 2014-12-17 - 2014-12-23", + "periodType": "WEEKLY", "startDate": "2014-12-17", }, Object { + "displayName": "Week 52 - 2014-12-24 - 2014-12-30", "endDate": "2014-12-30", "id": "2014WedW52", "iso": "2014WedW52", "name": "Week 52 - 2014-12-24 - 2014-12-30", + "periodType": "WEEKLY", "startDate": "2014-12-24", }, ], @@ -5533,73 +7115,93 @@ Object { "name": "Yearly", "options": Array [ Object { + "displayName": "2005", "endDate": "2005-12-31", "id": "2005", "iso": "2005", "name": "2005", + "periodType": "YEARLY", "startDate": "2005-01-01", }, Object { + "displayName": "2006", "endDate": "2006-12-31", "id": "2006", "iso": "2006", "name": "2006", + "periodType": "YEARLY", "startDate": "2006-01-01", }, Object { + "displayName": "2007", "endDate": "2007-12-31", "id": "2007", "iso": "2007", "name": "2007", + "periodType": "YEARLY", "startDate": "2007-01-01", }, Object { + "displayName": "2008", "endDate": "2008-12-31", "id": "2008", "iso": "2008", "name": "2008", + "periodType": "YEARLY", "startDate": "2008-01-01", }, Object { + "displayName": "2009", "endDate": "2009-12-31", "id": "2009", "iso": "2009", "name": "2009", + "periodType": "YEARLY", "startDate": "2009-01-01", }, Object { + "displayName": "2010", "endDate": "2010-12-31", "id": "2010", "iso": "2010", "name": "2010", + "periodType": "YEARLY", "startDate": "2010-01-01", }, Object { + "displayName": "2011", "endDate": "2011-12-31", "id": "2011", "iso": "2011", "name": "2011", + "periodType": "YEARLY", "startDate": "2011-01-01", }, Object { + "displayName": "2012", "endDate": "2012-12-31", "id": "2012", "iso": "2012", "name": "2012", + "periodType": "YEARLY", "startDate": "2012-01-01", }, Object { + "displayName": "2013", "endDate": "2013-12-31", "id": "2013", "iso": "2013", "name": "2013", + "periodType": "YEARLY", "startDate": "2013-01-01", }, Object { + "displayName": "2014", "endDate": "2014-12-31", "id": "2014", "iso": "2014", "name": "2014", + "periodType": "YEARLY", "startDate": "2014-01-01", }, ], diff --git a/yarn.lock b/yarn.lock index 5da995a54..8492261a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2185,11 +2185,12 @@ semver "^7.3.5" yargs "^16.2.0" -"@dhis2/d2-i18n@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@dhis2/d2-i18n/-/d2-i18n-1.1.0.tgz#ec777c5091f747e4c5aa4f9801c62ba4d1ef3d16" - integrity sha512-x3u58goDQsMfBzy50koxNrJjofJTtjRZOfz6f6Py/wMMJfp/T6vZjWMQgcfWH0JrV6d04K1RTt6bI05wqsVQvg== +"@dhis2/d2-i18n@^1.1.0", "@dhis2/d2-i18n@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@dhis2/d2-i18n/-/d2-i18n-1.1.3.tgz#ad73030f7cfceeed1b5bcaad86a9b336130bdfb1" + integrity sha512-vOu6RDNumOJM396mHt35bETk9ai9b6XJyAwlUy1HstUZNvfET61F8rjCmMuXZU6zJ8ELux8kMFqlH8IG0vDJmA== dependencies: + "@types/i18next" "^11.9.0" i18next "^10.3" moment "^2.24.0" @@ -2202,12 +2203,13 @@ markdown-it "^8.4.2" prop-types "^15.6.2" -"@dhis2/multi-calendar-dates@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-1.0.0.tgz#bf7f49aecdffa9781837a5d60d56a094b74ab4df" - integrity sha512-IB9a+feuS6yE4lpZj/eZ9uBmpYI7Hxitl2Op0JjoRL4tP+p6uw4ns9cjoSdUeIU9sOAxVZV7oQqSyIw+9P6YjQ== +"@dhis2/multi-calendar-dates@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@dhis2/multi-calendar-dates/-/multi-calendar-dates-1.2.2.tgz#c34e5172474ddc73ad829515ed4c489fb8023669" + integrity sha512-Bl4y2+oDMJLZwtQ1Djfd+wJxOkGixBl6SCuLNH08B3RJSTwF/HcwgtY0vv7tcKUs63SwS7fK6ittXphyB4HJjQ== dependencies: - "@js-temporal/polyfill" "^0.4.2" + "@dhis2/d2-i18n" "^1.1.3" + "@js-temporal/polyfill" "0.4.3" classnames "^2.3.2" "@dhis2/prop-types@^3.1.2": @@ -2944,7 +2946,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@js-temporal/polyfill@^0.4.2": +"@js-temporal/polyfill@0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@js-temporal/polyfill/-/polyfill-0.4.3.tgz#e8f8cf86745eb5050679c46a5ebedb9a9cc1f09b" integrity sha512-6Fmjo/HlkyVCmJzAPnvtEWlcbQUSRhi8qlN9EtJA/wP7FqXsevLLrlojR44kzNzrRkpf7eDJ+z7b4xQD/Ycypw== @@ -4390,6 +4392,11 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== +"@types/i18next@^11.9.0": + version "11.9.3" + resolved "https://registry.yarnpkg.com/@types/i18next/-/i18next-11.9.3.tgz#04d84c6539908ad69665d26d8967f942d1638550" + integrity sha512-snM7bMKy6gt7UYdpjsxycqSCAy0fr2JVPY0B8tJ2vp9bN58cE7C880k20PWFM4KXxQ3KsstKM8DLCawGCIH0tg== + "@types/is-function@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/is-function/-/is-function-1.0.0.tgz#1b0b819b1636c7baf0d6785d030d12edf70c3e83" From e0176839372d10594cd4c043e64dab01bc15976b Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 25 Jun 2024 13:21:31 +0000 Subject: [PATCH 21/23] chore(release): cut 24.10.12 [skip ci] ## [24.10.12](https://github.com/dhis2/analytics/compare/v24.10.11...v24.10.12) (2024-06-25) ### Bug Fixes * update multicalendar dep for translations (DHIS2-16904) ([#1686](https://github.com/dhis2/analytics/issues/1686)) ([65053e2](https://github.com/dhis2/analytics/commit/65053e2dd099799f5f4d10179784ebfcf0d0bbe3)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbc1fa781..259eaed0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.12](https://github.com/dhis2/analytics/compare/v24.10.11...v24.10.12) (2024-06-25) + + +### Bug Fixes + +* update multicalendar dep for translations (DHIS2-16904) ([#1686](https://github.com/dhis2/analytics/issues/1686)) ([65053e2](https://github.com/dhis2/analytics/commit/65053e2dd099799f5f4d10179784ebfcf0d0bbe3)) + ## [24.10.11](https://github.com/dhis2/analytics/compare/v24.10.10...v24.10.11) (2024-06-20) diff --git a/package.json b/package.json index 364099137..c2c9a9c2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.11", + "version": "24.10.12", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { From 9e3f1668aaef693393e5a7a46dc839f9aad5bce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Henrik=20=C3=98verland?= Date: Thu, 27 Jun 2024 17:02:07 +0200 Subject: [PATCH 22/23] fix: apply legend to all numeric and boolean types (DHIS2-17611) [24.x] (#1687) * fix: apply legend to all numeric and boolean types * chore: add newline --- src/components/PivotTable/PivotTableValueCell.js | 9 ++++++--- src/modules/renderValue.js | 7 +++++-- src/modules/valueTypes.js | 3 +++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/components/PivotTable/PivotTableValueCell.js b/src/components/PivotTable/PivotTableValueCell.js index 9013a0a83..78d204f2c 100644 --- a/src/components/PivotTable/PivotTableValueCell.js +++ b/src/components/PivotTable/PivotTableValueCell.js @@ -2,7 +2,10 @@ import PropTypes from 'prop-types' import React, { useRef } from 'react' import { applyLegendSet } from '../../modules/pivotTable/applyLegendSet.js' import { CELL_TYPE_VALUE } from '../../modules/pivotTable/pivotTableConstants.js' -import { VALUE_TYPE_NUMBER } from '../../modules/valueTypes.js' +import { + isNumericValueType, + isBooleanValueType, +} from '../../modules/valueTypes.js' import { PivotTableCell } from './PivotTableCell.js' import { PivotTableEmptyCell } from './PivotTableEmptyCell.js' import { usePivotTableEngine } from './PivotTableEngineContext.js' @@ -43,10 +46,10 @@ export const PivotTableValueCell = ({ ) } - // TODO: Add support for 'INTEGER' type (requires server changes) const legendStyle = cellContent.cellType === CELL_TYPE_VALUE && - cellContent.valueType === VALUE_TYPE_NUMBER + (isNumericValueType(cellContent.valueType) || + isBooleanValueType(cellContent.valueType)) ? applyLegendSet( cellContent.rawValue, cellContent.dxDimension, diff --git a/src/modules/renderValue.js b/src/modules/renderValue.js index a65d8a6d8..5e87629f1 100644 --- a/src/modules/renderValue.js +++ b/src/modules/renderValue.js @@ -2,7 +2,7 @@ import { NUMBER_TYPE_ROW_PERCENTAGE, NUMBER_TYPE_COLUMN_PERCENTAGE, } from './pivotTable/pivotTableConstants.js' -import { isNumericValueType } from './valueTypes.js' +import { isNumericValueType, isBooleanValueType } from './valueTypes.js' const trimTrailingZeros = (stringValue) => stringValue.replace(/\.?0+$/, '') @@ -53,7 +53,10 @@ const toFixedPrecisionString = (value, skipRounding) => { } export const renderValue = (value, valueType, visualization) => { - if (!isNumericValueType(valueType) || value === undefined) { + if ( + !(isNumericValueType(valueType) || isBooleanValueType(valueType)) || + value === undefined + ) { return String(value).replace(/[^\S\n]+/, ' ') } diff --git a/src/modules/valueTypes.js b/src/modules/valueTypes.js index cf5dc01f0..89462b5c6 100644 --- a/src/modules/valueTypes.js +++ b/src/modules/valueTypes.js @@ -34,4 +34,7 @@ const NUMERIC_VALUE_TYPES = [ VALUE_TYPE_INTEGER_ZERO_OR_POSITIVE, ] +const BOOLEAN_VALUE_TYPES = [VALUE_TYPE_BOOLEAN, VALUE_TYPE_TRUE_ONLY] + export const isNumericValueType = (type) => NUMERIC_VALUE_TYPES.includes(type) +export const isBooleanValueType = (type) => BOOLEAN_VALUE_TYPES.includes(type) From 74444aaeee16c503e305b3a1ae7c2b539914da52 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Thu, 27 Jun 2024 15:06:05 +0000 Subject: [PATCH 23/23] chore(release): cut 24.10.13 [skip ci] ## [24.10.13](https://github.com/dhis2/analytics/compare/v24.10.12...v24.10.13) (2024-06-27) ### Bug Fixes * apply legend to all numeric and boolean types (DHIS2-17611) [24.x] ([#1687](https://github.com/dhis2/analytics/issues/1687)) ([9e3f166](https://github.com/dhis2/analytics/commit/9e3f1668aaef693393e5a7a46dc839f9aad5bce5)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 259eaed0d..18856bcb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [24.10.13](https://github.com/dhis2/analytics/compare/v24.10.12...v24.10.13) (2024-06-27) + + +### Bug Fixes + +* apply legend to all numeric and boolean types (DHIS2-17611) [24.x] ([#1687](https://github.com/dhis2/analytics/issues/1687)) ([9e3f166](https://github.com/dhis2/analytics/commit/9e3f1668aaef693393e5a7a46dc839f9aad5bce5)) + ## [24.10.12](https://github.com/dhis2/analytics/compare/v24.10.11...v24.10.12) (2024-06-25) diff --git a/package.json b/package.json index c2c9a9c2a..72bd6122d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.12", + "version": "24.10.13", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": {