From 2b80762bdc5c8b2facde569d8a3706e89e6c57fa Mon Sep 17 00:00:00 2001 From: Miquel Adell Date: Tue, 5 May 2026 12:46:32 +0200 Subject: [PATCH 1/2] fix(toggleMultiple): avoid vacuous-truth disable when no orgUnit toggles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit isToggleMultipleDeDisabled filters toggleDataElements down to orgUnit entries matching the data element, then evaluates with .every() under AND. When no orgUnit toggles match, [].every(...) is vacuously true and disables every cell in the section — even though no orgUnit-disable rule applies. Sections configured with logicalOperator: "AND" plus only dataElement-type toggles (e.g. MAL_WMR_LAB_DBL_COUNT_GRID) had all inputs locked despite the toggle conditions being met. Short-circuit to false when there are no matching orgUnit toggles, so the function only ever returns true via an actual orgUnit-disable rule. Regression introduced in #148. --- src/domain/common/entities/ToggleMultiple.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/domain/common/entities/ToggleMultiple.ts b/src/domain/common/entities/ToggleMultiple.ts index 110dc63..acc6b1a 100644 --- a/src/domain/common/entities/ToggleMultiple.ts +++ b/src/domain/common/entities/ToggleMultiple.ts @@ -122,6 +122,8 @@ export function isToggleMultipleDeDisabled( (toggle): toggle is OrgUnitToggle => toggle.type === "orgUnit" && toggle.dataElement.code === dataElement.code ); + if (orgUnitToggles.length === 0) return false; + const isToggleDisabledForOrgUnit = (toggle: OrgUnitToggle) => { const { orgUnitCodes, dataElement: toggleDe } = toggle; if (!toggleDe.disabled) return false; From 46c7325c23b9fdc8b30f0f007e23610f17b351d5 Mon Sep 17 00:00:00 2001 From: Miquel Adell Date: Tue, 5 May 2026 12:47:58 +0200 Subject: [PATCH 2/2] chore: bump version to 1.5.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1713103..af11251 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "d2-autogen-forms", "description": "D2 Autogenerated Forms", - "version": "1.5.1", + "version": "1.5.3", "license": "GPL-3.0", "author": "EyeSeeTea team", "homepage": ".",