Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6a96c10
fix: event and program status wip
janhenrikoverland Feb 13, 2026
66b84a5
fix: transform eventstatus programstatus
janhenrikoverland Feb 26, 2026
65c35aa
fix: map vis id to header
janhenrikoverland Feb 27, 2026
1550e4c
feat: use enabled period types (DHIS2-21001) (#1801)
janhenrikoverland Mar 3, 2026
f04103b
chore(release): cut 29.3.0 [skip ci]
dhis2-bot Mar 3, 2026
51b7042
fix: yearly and fy period type mapping (DHIS2-21028) (#1817)
janhenrikoverland Mar 6, 2026
d65967d
chore(release): cut 29.3.1 [skip ci]
dhis2-bot Mar 6, 2026
2c78208
fix: version specific period types (#1820)
janhenrikoverland Mar 11, 2026
29a9c7c
chore(release): cut 29.3.2 [skip ci]
dhis2-bot Mar 11, 2026
cb1ee75
fix: check against invalid year in fixed periods (#1821)
janhenrikoverland Mar 14, 2026
c8d7e3f
chore(release): cut 29.3.3 [skip ci]
dhis2-bot Mar 14, 2026
328bc5d
feat: add flexibility to DataDimension (#1819)
BRaimbault Mar 16, 2026
4d646f7
chore(release): cut 29.4.0 [skip ci]
dhis2-bot Mar 16, 2026
ed6023f
fix: upgrade deps to support custom translations (#1825)
KaiVandivier Mar 17, 2026
c8cc6da
chore(release): cut 29.4.1 [skip ci]
dhis2-bot Mar 17, 2026
76f86d7
fix: config to satisfy node 24 + yarn upgrades (#1826)
janhenrikoverland Mar 25, 2026
9976b8f
chore(release): cut 29.4.2 [skip ci]
dhis2-bot Mar 25, 2026
69cb54e
chore: upgrade to storybook 10
janhenrikoverland Apr 6, 2026
a52afe1
chore: gitignore debug-storybook.log
janhenrikoverland Apr 6, 2026
e7130b6
chore: format package.json
janhenrikoverland Apr 6, 2026
342659c
fix: event and program status wip
janhenrikoverland Feb 13, 2026
edd0799
fix: transform eventstatus programstatus
janhenrikoverland Feb 26, 2026
7c308d9
fix: map vis id to header
janhenrikoverland Feb 27, 2026
e2948fe
chore: linting
janhenrikoverland Mar 2, 2026
f427f16
chore: formatting
janhenrikoverland Apr 6, 2026
e21337f
chore: comments
janhenrikoverland Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/copy-build-to-d2-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
node-version: 'lts/*'

- name: Install dependencies
run: yarn install --frozen-lockfile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dhis2-verify-commits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.x
node-version: 'lts/*'

- name: Install dependencies
run: yarn install --frozen-lockfile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/node-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
token: ${{env.GH_TOKEN}}
- uses: actions/setup-node@v4
with:
node-version: 20.x
node-version: 'lts/*'

- name: Install
run: yarn install --frozen-lockfile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/node-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.x
node-version: 'lts/*'

- name: Install
run: yarn install --frozen-lockfile
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ yarn-debug.log*
yarn-error.log*
package-lock.json
bundle.stats.json
debug-storybook.log

# DHIS2 Platform
.d2
src/locales
CLAUDE.md
7 changes: 5 additions & 2 deletions .storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
const makeBabelConfig = require('@dhis2/cli-app-scripts/config/makeBabelConfig.js')
// Direct path required because the package exports field doesn't expose this subpath
import { createRequire } from 'node:module'
const require = createRequire(import.meta.url)
const makeBabelConfig = require('../node_modules/@dhis2/cli-app-scripts/config/makeBabelConfig.js')

module.exports = {
export default {
addons: ['@storybook/preset-create-react-app'],
stories: ['../src/__demo__/**/*.stories.@(js)'],

Expand Down
2 changes: 0 additions & 2 deletions .storybook/preview.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import { CssReset } from '@dhis2/ui'
import React from 'react'
const { withJsx } = require('@mihkeleidast/storybook-addon-source')

export const decorators = [
withJsx,
(Story) => (
<div>
<CssReset />
Expand Down
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,52 @@
## [29.4.2](https://github.com/dhis2/analytics/compare/v29.4.1...v29.4.2) (2026-03-25)


### Bug Fixes

* config to satisfy node 24 + yarn upgrades ([#1826](https://github.com/dhis2/analytics/issues/1826)) ([76f86d7](https://github.com/dhis2/analytics/commit/76f86d715aa15046333095e12b9feb52b1d93adc))

## [29.4.1](https://github.com/dhis2/analytics/compare/v29.4.0...v29.4.1) (2026-03-17)


### Bug Fixes

* upgrade deps to support custom translations ([#1825](https://github.com/dhis2/analytics/issues/1825)) ([ed6023f](https://github.com/dhis2/analytics/commit/ed6023fa6a1c74b1625abbcd346965f593a95d8b))

# [29.4.0](https://github.com/dhis2/analytics/compare/v29.3.3...v29.4.0) (2026-03-16)


### Features

* add flexibility to DataDimension ([#1819](https://github.com/dhis2/analytics/issues/1819)) ([328bc5d](https://github.com/dhis2/analytics/commit/328bc5db79c4b653f8fe73b38df57c33610fe61a))

## [29.3.3](https://github.com/dhis2/analytics/compare/v29.3.2...v29.3.3) (2026-03-14)


### Bug Fixes

* check against invalid year in fixed periods ([#1821](https://github.com/dhis2/analytics/issues/1821)) ([cb1ee75](https://github.com/dhis2/analytics/commit/cb1ee75801f9d4157e8117b60f4e6174ca71096d))

## [29.3.2](https://github.com/dhis2/analytics/compare/v29.3.1...v29.3.2) (2026-03-11)


### Bug Fixes

* version specific period types ([#1820](https://github.com/dhis2/analytics/issues/1820)) ([2c78208](https://github.com/dhis2/analytics/commit/2c78208dfecae4617cb5ae78cad99ee8501b696b))

## [29.3.1](https://github.com/dhis2/analytics/compare/v29.3.0...v29.3.1) (2026-03-06)


### Bug Fixes

* yearly and fy period type mapping (DHIS2-21028) ([#1817](https://github.com/dhis2/analytics/issues/1817)) ([51b7042](https://github.com/dhis2/analytics/commit/51b70427cc5bb50939a2110bce6b3b705a880b9e))

# [29.3.0](https://github.com/dhis2/analytics/compare/v29.2.1...v29.3.0) (2026-03-03)


### Features

* use enabled period types (DHIS2-21001) ([#1801](https://github.com/dhis2/analytics/issues/1801)) ([1550e4c](https://github.com/dhis2/analytics/commit/1550e4c757234886303cdc98122501a54407e9f5))

## [29.2.1](https://github.com/dhis2/analytics/compare/v29.2.0...v29.2.1) (2026-03-01)


Expand Down
6 changes: 6 additions & 0 deletions config/setupJest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/* eslint-disable no-undef */
if (globalThis.CSS === undefined) {
globalThis.CSS = { supports: () => true }
} else if (typeof globalThis.CSS.supports !== 'function') {
globalThis.CSS.supports = () => true
}
38 changes: 30 additions & 8 deletions i18n/en.pot
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"POT-Creation-Date: 2025-09-09T09:32:04.677Z\n"
"PO-Revision-Date: 2025-09-09T09:32:04.678Z\n"
"POT-Creation-Date: 2026-03-23T09:34:56.311Z\n"
"PO-Revision-Date: 2026-03-23T09:34:56.312Z\n"

msgid "view only"
msgstr "view only"
Expand Down Expand Up @@ -822,6 +822,16 @@ msgstr "Period"
msgid "Selected Periods"
msgstr "Selected Periods"

msgid "No period types available"
msgstr "No period types available"

msgid ""
"No period types are enabled in the system. Please contact your system "
"administrator."
msgstr ""
"No period types are enabled in the system. Please contact your system "
"administrator."

msgid "Relative periods"
msgstr "Relative periods"

Expand All @@ -843,6 +853,9 @@ msgstr "Weekly (Start Wednesday)"
msgid "Weekly (Start Thursday)"
msgstr "Weekly (Start Thursday)"

msgid "Weekly (Start Friday)"
msgstr "Weekly (Start Friday)"

msgid "Weekly (Start Saturday)"
msgstr "Weekly (Start Saturday)"

Expand Down Expand Up @@ -870,17 +883,26 @@ msgstr "Six-monthly April"
msgid "Yearly"
msgstr "Yearly"

msgid "Financial year (Start November)"
msgstr "Financial year (Start November)"
msgid "Financial year (Start February)"
msgstr "Financial year (Start February)"

msgid "Financial year (Start October)"
msgstr "Financial year (Start October)"
msgid "Financial year (Start April)"
msgstr "Financial year (Start April)"

msgid "Financial year (Start July)"
msgstr "Financial year (Start July)"

msgid "Financial year (Start April)"
msgstr "Financial year (Start April)"
msgid "Financial year (Start August)"
msgstr "Financial year (Start August)"

msgid "Financial year (Start September)"
msgstr "Financial year (Start September)"

msgid "Financial year (Start October)"
msgstr "Financial year (Start October)"

msgid "Financial year (Start November)"
msgstr "Financial year (Start November)"

msgid "Today"
msgstr "Today"
Expand Down
1 change: 1 addition & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module.exports = {
testPathIgnorePatterns: ['/node_modules/', '/build/'],
setupFiles: ['<rootDir>/config/setupJest.js'],
setupFilesAfterEnv: ['<rootDir>/config/setupTestingLibrary.js'],
}
15 changes: 7 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dhis2/analytics",
"version": "29.2.1",
"version": "29.4.2",
"main": "./build/cjs/index.js",
"module": "./build/es/index.js",
"exports": {
Expand Down Expand Up @@ -31,14 +31,12 @@
},
"devDependencies": {
"@dhis2/app-runtime": "^3.14.1",
"@dhis2/cli-app-scripts": "^12.6.4",
"@dhis2/cli-app-scripts": "^12.11.0",
"@dhis2/cli-style": "^10.7.9",
"@dhis2/d2-i18n": "^1.1.0",
"@dhis2/ui": "^10.12.7",
"@mihkeleidast/storybook-addon-source": "^1.0.1",
"@storybook/preset-create-react-app": "^8.3.6",
"@storybook/react": "^8.3.6",
"@storybook/react-webpack5": "^8.3.6",
"@storybook/preset-create-react-app": "^10.3.4",
"@storybook/react-webpack5": "^10.3.4",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
Expand All @@ -48,8 +46,9 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-scripts": "^5.0.1",
"storybook": "^8.3.6",
"styled-jsx": "^4.0.1"
"storybook": "^10.3.4",
"styled-jsx": "^4.0.1",
"eslint-plugin-storybook": "10.3.4"
},
"peerDependencies": {
"@dhis2/app-runtime": "^3",
Expand Down
38 changes: 38 additions & 0 deletions src/__demo__/PivotTable.event.stories.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ import datetimeVisualization from './data/event/datetime.visualization.json'
import emailDataHideNa from './data/event/email.data.hidena.json'
import emailData from './data/event/email.data.json'
import emailVisualization from './data/event/email.visualization.json'
import eventstatusDataHideNa from './data/event/eventstatus.data.hidena.json'
import eventstatusData from './data/event/eventstatus.data.json'
import eventstatusVisualization from './data/event/eventstatus.visualization.json'
import integerDataHideNa from './data/event/integer.data.hidena.json'
import integerData from './data/event/integer.data.json'
import integerVisualization from './data/event/integer.visualization.json'
Expand Down Expand Up @@ -385,3 +388,38 @@ export const Yesonly = (_, { pivotTableOptions }) => {
}

Yesonly.storyName = 'Yesonly'

export const EventstatusNA = (_, { pivotTableOptions }) => {
const visualization = {
...eventstatusVisualization,
...visualizationReset,
...pivotTableOptions,
}

return (
<div style={{ width: 800, height: 600 }}>
<PivotTable data={eventstatusData} visualization={visualization} />
</div>
)
}

EventstatusNA.storyName = 'Eventstatus N/A'

export const Eventstatus = (_, { pivotTableOptions }) => {
const visualization = {
...eventstatusVisualization,
...visualizationReset,
...pivotTableOptions,
}

return (
<div style={{ width: 800, height: 600 }}>
<PivotTable
data={eventstatusDataHideNa}
visualization={visualization}
/>
</div>
)
}

Eventstatus.storyName = 'Eventstatus'
Loading
Loading