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

IgniteUI / igniteui-webcomponents / 25173160399
98%

Build:
DEFAULT BRANCH: master
Ran 30 Apr 2026 03:11PM UTC
Jobs 1
Files 206
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

30 Apr 2026 03:08PM UTC coverage: 98.373% (+0.03%) from 98.342%
25173160399

push

github

web-flow
refactor(input): decouple date-time-input base and extract shared mask behavior (#2212)

* refactor(input): decouple date-time-input base and extract shared mask behavior

Break the inheritance chain that forced IgcDateTimeInputBaseComponent and
IgcDateRangeInputComponent through IgcMaskInputBaseComponent / IgcInputBaseComponent,
which leaked a `string` value type into components whose value is `Date | null`
or `DateRangeValue | null`.

- Add `MaskBehaviorMixin` (common/mixins/mask-behavior.ts) encapsulating
  parser-driven editing, selection tracking, composition handling, range text
  replacement, and `mask` / `prompt` / `readOnly` properties. Hosts provide
  `_input`, `_parser`, and `_syncValueFromMask()`.
- Add `renderInputShell()` helper (common/templates/input-shell.ts) for the
  shared label / prefix / suffix / validator container layout, used by both
  input and date-time bases without coupling their value types.
- `IgcInputBaseComponent` is now a standalone abstract base with
  `abstract value: string`.
- `IgcDateTimeInputBaseComponent` extends
  `MaskBehaviorMixin(FormAssociatedRequiredMixin(EventEmitterMixin(LitElement)))`
  directly, owns its own i18n / spin / keybinding logic, and keeps `value`
  abstract for concrete leaves.
- `IgcMaskInputComponent` now extends `MaskBehaviorMixin(IgcInputBaseComponent)`
  and owns its own `MaskParser` instance; the empty `IgcMaskInputBaseComponent`
  stub is removed.
- Use a single `AbstractConstructor` signature for `MaskBehaviorMixin` to fix
  a CEM analyzer crash caused by overload signatures being registered as a
  plain function before the mixin implementation was visited.

5721 of 6016 branches covered (95.1%)

Branch coverage included in aggregate %.

875 of 878 new or added lines in 8 files covered. (99.66%)

40417 of 40885 relevant lines covered (98.86%)

1563.03 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
99.31
src/components/common/mixins/mask-behavior.ts
Jobs
ID Job ID Ran Files Coverage
1 25173160399.1 30 Apr 2026 03:11PM UTC 206
98.37
GitHub Action Run
Source Files on build 25173160399
  • Tree
  • List 206
  • Changed 7
  • Source Changed 5
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25173160399
  • 4933be93 on github
  • Prev Build on master (#25047761235)
  • Next Build on master (#25307058394)
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