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/CHANGELOG.md b/CHANGELOG.md index a65067a83..18856bcb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,80 @@ +## [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) + + +### 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) + + +### 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) + + +### 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) + + +### 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) + + +### 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) + + +### 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) + + +### 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) + + +### 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) + + +### 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) + + +### 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/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 diff --git a/package.json b/package.json index 28744b86f..72bd6122d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/analytics", - "version": "24.10.2", + "version": "24.10.13", "main": "./build/cjs/index.js", "module": "./build/es/index.js", "exports": { @@ -59,11 +59,11 @@ }, "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", - "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/components/AboutAOUnit/AboutAOUnit.js b/src/components/AboutAOUnit/AboutAOUnit.js index 0fb7fb78e..0d734efc1 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]) @@ -188,6 +193,7 @@ const AboutAOUnit = forwardRef(({ type, id, renderId }, ref) => {

@@ -208,7 +214,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 +225,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 +235,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/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}; } diff --git a/src/components/Interpretations/InterpretationModal/InterpretationModal.js b/src/components/Interpretations/InterpretationModal/InterpretationModal.js index f2d693838..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' @@ -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() @@ -108,9 +115,15 @@ const InterpretationModal = ({ } }, [interpretationId, refetch]) + const filters = useMemo(() => { + return { + relativePeriodDate: interpretation?.created, + } + }, [interpretation?.created]) + return ( <> - {shouldCssHideModal && ( + {loadingInProgress && ( @@ -121,7 +134,7 @@ const InterpretationModal = ({ fluid onClose={handleClose} className={cx(modalCSS.className, { - hidden: shouldCssHideModal, + hidden: loadingInProgress, })} dataTest="interpretation-modal" > @@ -155,10 +168,7 @@ const InterpretationModal = ({
@@ -182,6 +193,7 @@ const InterpretationModal = ({ downloadMenuComponent={ downloadMenuComponent } + onLikeToggled={onLikeToggled} />
diff --git a/src/components/Interpretations/InterpretationModal/InterpretationThread.js b/src/components/Interpretations/InterpretationModal/InterpretationThread.js index cf352317b..5cd061c55 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' @@ -12,10 +13,12 @@ const InterpretationThread = ({ fetching, interpretation, onInterpretationDeleted, + onLikeToggled, initialFocus, onThreadUpdated, downloadMenuComponent: DownloadMenu, }) => { + const { fromServerDate } = useTimeZoneConversion() const focusRef = useRef() useEffect(() => { @@ -31,7 +34,9 @@ const InterpretationThread = ({
- {moment(interpretation.created).format('LLL')} + {moment(fromServerDate(interpretation.created)).format( + 'LLL' + )}
{DownloadMenu && ( @@ -43,6 +48,7 @@ const InterpretationThread = ({ onReplyIconClick={() => focusRef.current?.focus()} onUpdated={() => onThreadUpdated(true)} onDeleted={onInterpretationDeleted} + onLikeToggled={onLikeToggled} />
{interpretation.comments.map((comment) => ( @@ -141,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 22de9c3a0..3782bb2d1 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' @@ -21,10 +22,12 @@ export const InterpretationList = ({ currentUser, interpretations, onInterpretationClick, + onLikeToggled, onReplyIconClick, refresh, disabled, }) => { + const { fromServerDate } = useTimeZoneConversion() const interpretationsByDate = interpretations.reduce( (groupedInterpretations, interpretation) => { const date = interpretation.created.split('T')[0] @@ -50,7 +53,7 @@ export const InterpretationList = ({
    @@ -62,6 +65,7 @@ export const InterpretationList = ({ interpretation={interpretation} currentUser={currentUser} onClick={onInterpretationClick} + onLikeToggled={onLikeToggled} onReplyIconClick={onReplyIconClick} onDeleted={refresh} onUpdated={refresh} @@ -114,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 = () => { 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, 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/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/components/PivotTable/styles/PivotTable.style.js b/src/components/PivotTable/styles/PivotTable.style.js index 00bf7c6a6..60466810a 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; } ` @@ -143,11 +145,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 { diff --git a/src/modules/renderValue.js b/src/modules/renderValue.js index 17e288043..5e87629f1 100644 --- a/src/modules/renderValue.js +++ b/src/modules/renderValue.js @@ -2,13 +2,11 @@ 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+$/, '') -const decimalSeparator = '.' - -const separateDigitGroups = (stringValue, decimalSeparator) => { +export const separateDigitGroups = (stringValue, decimalSeparator = '.') => { const isNegative = stringValue[0] === '-' const [integer, remainder] = stringValue.replace(/^-/, '').split('.') @@ -55,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]+/, ' ') } @@ -68,9 +69,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 +78,7 @@ export const renderValue = (value, valueType, visualization) => { visualization.skipRounding ) - return separateDigitGroups(stringValue, decimalSeparator).join( + return separateDigitGroups(stringValue).join( getSeparator(visualization) ) } 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) 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/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 ) }, }, 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, }) } } 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..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" @@ -10517,10 +10524,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"