• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dineeek / ngx-libs-workspace / 24940459551
97%

Build:
DEFAULT BRANCH: main
Ran 25 Apr 2026 08:55PM UTC
Jobs 1
Files 33
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

25 Apr 2026 08:54PM UTC coverage: 96.875% (+0.8%) from 96.056%
24940459551

push

github

web-flow
feat: add ngx-time-range-form-field (#50)

* feat(ngx-time-range-form-field): scaffold lib (config, model, error kinds)

Add Nx project scaffold for a new niche form-field lib:
- package.json with @angular/* >=21 <22 peer deps and tslib runtime dep
- project.json, ng-package.json, tsconfig set, jest + eslint configs
- ITimeRange composite model (start/end as HH:mm or HH:mm:ss strings)
- TimeRangeErrorKind const-object aligned with sibling
  ngx-numeric-range-form-field kinds

Component, validators, release-please wiring and playground demo land
in follow-up commits.

* feat(ngx-time-range-form-field): component with signal-forms FormValueControl

Implement TimeRangeFormFieldComponent — paired <input type="time"> sides
producing one composite ITimeRange value. Mirrors the sibling numeric-range
component's shape:

- FormValueControl<ITimeRange | null> with model-based value/touched
- effect() + lastEmitted bookkeeping so external patchValue cannot clobber
  a mid-edit value the user is still typing
- a11y: stable per-instance label id, group-level aria-labelledby, composed
  per-side aria-labels ("<group> <side>"), hidden separator
- Reset button surfaced when resettable, value present, and neither side
  is disabled or readonly
- HTML5 time-input attrs forwarded per side: step, autocomplete, name,
  min, max
- Custom-styled, theme-friendly via CSS custom properties (--ngx-trff-*),
  no @angular/material peer dependency

* feat(ngx-time-range-form-field): validators (order, both-filled, bounds, width)

Add the four Signal Forms validators that mirror the sibling
ngx-numeric-range-form-field surface, adapted for time-of-day strings:

- timeRangeOrderValid — emits `invalidRange` when end < start. Lex
  comparison is exact for zero-padded HH:mm / HH:mm:ss values.
- timeRangeBothFilled — emits `incomplete` when either side is null.
- timeRangeBounds — clamps each side to a `min`/`max` time-of-day,
  emits `min` / `max` per offending side.
- timeRangeWidth —... (continued)

592 of 629 branches covered (94.12%)

Branch coverage included in aggregate %.

157 of 157 new or added lines in 8 files covered. (100.0%)

741 of 747 relevant lines covered (99.2%)

101.01 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24940459551.1 25 Apr 2026 08:55PM UTC 66
97.52
GitHub Action Run
Source Files on build 24940459551
  • Tree
  • List 33
  • Changed 19
  • Source Changed 0
  • Coverage Changed 19
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #24940459551
  • 382a1299 on github
  • Prev Build on main (#24938702427)
  • Next Build on main (#24940704470)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc