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

uNmAnNeR / imaskjs / 7192548854

13 Dec 2023 08:24AM UTC coverage: 89.879% (+59.2%) from 30.682%
7192548854

push

github

uNmAnNeR
downgrade tsx to use loader for correct coverage

843 of 951 branches covered (0.0%)

Branch coverage included in aggregate %.

3926 of 4355 relevant lines covered (90.15%)

352.04 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

78.67
/packages/imask/src/controls/html-mask-element.ts
1
import MaskElement, { type ElementEvent } from './mask-element';
1✔
2
import IMask from '../core/holder';
1✔
3

1✔
4

1✔
5
/** Bridge between HTMLElement and {@link Masked} */
1✔
6
export default
1✔
7
abstract class HTMLMaskElement extends MaskElement {
1✔
8
  /** Mapping between HTMLElement events and mask internal events */
4✔
9
  static EVENTS_MAP = {
4✔
10
    selectionChange: 'keydown',
4✔
11
    input: 'input',
4✔
12
    drop: 'drop',
4✔
13
    click: 'click',
4✔
14
    focus: 'focus',
4✔
15
    commit: 'blur',
4✔
16
  } as const;
4✔
17
  /** HTMLElement to use mask on */
4✔
18
  declare input: HTMLElement;
4✔
19
  declare _handlers: {[k: string]: EventListener};
4✔
20
  abstract value: string;
4✔
21

4✔
22
  constructor (input: HTMLElement) {
4✔
23
    super();
2✔
24
    this.input = input;
2✔
25
    this._handlers = {};
2✔
26
  }
2✔
27

4✔
28
  get rootElement (): HTMLDocument {
4✔
29
    return (this.input.getRootNode?.() ?? document) as HTMLDocument;
2✔
30
  }
2✔
31

4✔
32
  /**
4✔
33
    Is element in focus
4✔
34
  */
4✔
35
  get isActive (): boolean {
4✔
36
    return this.input === this.rootElement.activeElement;
2✔
37
  }
2✔
38

4✔
39
  /**
4✔
40
    Binds HTMLElement events to mask internal events
4✔
41
  */
4✔
42
  override bindEvents (handlers: {[key in ElementEvent]: EventListener}) {
4✔
43
    (Object.keys(handlers) as Array<ElementEvent>)
×
44
      .forEach(event => this._toggleEventHandler(HTMLMaskElement.EVENTS_MAP[event], handlers[event]));
×
45
  }
×
46

4✔
47
  /**
4✔
48
    Unbinds HTMLElement events to mask internal events
4✔
49
  */
4✔
50
  override unbindEvents () {
4✔
51
    Object.keys(this._handlers)
×
52
      .forEach(event => this._toggleEventHandler(event));
×
53
  }
×
54

4✔
55
  _toggleEventHandler (event: string, handler?: EventListener): void {
4✔
56
    if (this._handlers[event]) {
×
57
      this.input.removeEventListener(event, this._handlers[event]);
×
58
      delete this._handlers[event];
×
59
    }
×
60

×
61
    if (handler) {
×
62
      this.input.addEventListener(event, handler);
×
63
      this._handlers[event] = handler;
×
64
    }
×
65
  }
×
66
}
4✔
67

1✔
68

1✔
69
IMask.HTMLMaskElement = HTMLMaskElement;
1✔
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

© 2025 Coveralls, Inc