Severity: high | Confidence: confirmed | Area: dead-code | Source: codebase review 2026-06-30, finding RED-02
Problem
display-datetime.component.ts is 1,764 lines and the single largest source file in the repository. Approximately 95% of those lines — roughly 1,670 lines spanning the else branch from line 60 to 1,729 — consist of a hardcoded static array of ~420 {offset, label} timezone entries. This branch is only reached when typeof Intl.supportedValuesOf === 'undefined' (line 55). Since Intl.supportedValuesOf has been available in all evergreen browsers since 2022, and the project targets Angular 21 with a modern browser baseline, the else branch is effectively unreachable in practice. The happy path already calls getDynamicTimeZones(), which derives the timezone list from Intl.supportedValuesOf('timeZone').
Impact
The dead fallback inflates the component to nearly 20× its functional size, making the file difficult to navigate, review, and maintain. The inline embedding of a large static data table inside a component file also violates the single-responsibility principle. Because this is upstream cruft rather than SKip-specific logic, there is a clean opportunity to contribute a deletion PR upstream; no fork-specific divergence is needed to address it.
Affected code
src/app/widget-config/display-datetime/display-datetime.component.ts:55-1735
Suggested direction
Delete the static fallback else branch entirely, relying on Intl.supportedValuesOf which the target browser baseline already guarantees. If a fallback is judged necessary for any reason, extract the data table to a separately-imported JSON or constant file rather than embedding it inline. Either path reduces the component to roughly 90 lines of functional code. This is a suitable upstream contribution with low risk and clear benefit.
Verification
Verified against the codebase (confidence: confirmed): display-datetime.component.ts is 1,764 lines; the branch condition at line 55 is typeof Intl.supportedValuesOf !== "undefined", with the static array of ~420 entries occupying lines 60–1,729 (~1,670 lines, ~95% of the file).
Severity: high | Confidence: confirmed | Area: dead-code | Source: codebase review 2026-06-30, finding
RED-02Problem
display-datetime.component.tsis 1,764 lines and the single largest source file in the repository. Approximately 95% of those lines — roughly 1,670 lines spanning theelsebranch from line 60 to 1,729 — consist of a hardcoded static array of ~420{offset, label}timezone entries. This branch is only reached whentypeof Intl.supportedValuesOf === 'undefined'(line 55). SinceIntl.supportedValuesOfhas been available in all evergreen browsers since 2022, and the project targets Angular 21 with a modern browser baseline, theelsebranch is effectively unreachable in practice. The happy path already callsgetDynamicTimeZones(), which derives the timezone list fromIntl.supportedValuesOf('timeZone').Impact
The dead fallback inflates the component to nearly 20× its functional size, making the file difficult to navigate, review, and maintain. The inline embedding of a large static data table inside a component file also violates the single-responsibility principle. Because this is upstream cruft rather than SKip-specific logic, there is a clean opportunity to contribute a deletion PR upstream; no fork-specific divergence is needed to address it.
Affected code
src/app/widget-config/display-datetime/display-datetime.component.ts:55-1735Suggested direction
Delete the static fallback
elsebranch entirely, relying onIntl.supportedValuesOfwhich the target browser baseline already guarantees. If a fallback is judged necessary for any reason, extract the data table to a separately-imported JSON or constant file rather than embedding it inline. Either path reduces the component to roughly 90 lines of functional code. This is a suitable upstream contribution with low risk and clear benefit.Verification
Verified against the codebase (confidence: confirmed):
display-datetime.component.tsis 1,764 lines; the branch condition at line 55 istypeof Intl.supportedValuesOf !== "undefined", with the static array of ~420 entries occupying lines 60–1,729 (~1,670 lines, ~95% of the file).