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

atinc / ngx-tethys / 68ef226c-f83e-44c1-b8ed-e420a83c5d84

28 May 2025 10:31AM UTC coverage: 10.352% (-80.0%) from 90.316%
68ef226c-f83e-44c1-b8ed-e420a83c5d84

Pull #3460

circleci

pubuzhixing8
chore: xxx
Pull Request #3460: refactor(icon): migrate signal input #TINFR-1476

132 of 6823 branches covered (1.93%)

Branch coverage included in aggregate %.

10 of 14 new or added lines in 1 file covered. (71.43%)

11648 existing lines in 344 files now uncovered.

2078 of 14525 relevant lines covered (14.31%)

6.69 hits per line

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

42.42
/src/core/behaviors/decorators.ts
1
import { SafeAny } from 'ngx-tethys/types';
2
import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberValue } from 'ngx-tethys/util';
3

4
/**
5
 * @deprecated Please use {transform: coerceBooleanProperty} in Input instead
6
 */
×
7
export function InputBoolean(): PropertyDecorator {
8
    return makePropDecorator('InputBoolean', coerceBooleanProperty);
9
}
5✔
10

11
export function InputCssPixel(): PropertyDecorator {
12
    return makePropDecorator('InputCssPixel', coerceCssPixelValue);
13
}
14

15
/**
1✔
UNCOV
16
 * @deprecated Please use {transform: numberAttribute} in Input instead
×
17
 */
18
export function InputNumber(): PropertyDecorator {
19
    return makePropDecorator('InputNumber', (value: number) => {
20
        return coerceNumberValue(value, null);
21
    });
6!
22
}
6✔
23

6!
24
function makePropDecorator<T, D>(
6!
25
    name: string,
×
26
    transform: (v: T, target?: SafeAny) => D,
27
    initialize?: PropertyDecorator
28
): PropertyDecorator {
6✔
29
    function propDecorator(target: SafeAny, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {
30
        initialize && initialize(target, propName);
31
        const privatePropName = `$$__${propName}`;
32

6✔
33
        if (typeof ngDevMode === 'undefined' || ngDevMode) {
UNCOV
34
            if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {
×
35
                console.warn(`The property "${privatePropName}" is already exist, it will be overrided by ${name} decorator.`);
36
            }
UNCOV
37
        }
×
UNCOV
38

×
39
        Object.defineProperty(target, privatePropName, {
×
40
            configurable: true,
UNCOV
41
            writable: true
×
42
        });
43

44
        return {
45
            get(): string {
6✔
46
                return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];
47
            },
48
            set(value: T): void {
49
                const finalValue = transform(value, target);
50
                if (originalDescriptor && originalDescriptor.set) {
51
                    originalDescriptor.set.bind(this)(finalValue);
52
                }
53
                this[privatePropName] = finalValue;
54
            }
55
        };
56
    }
57

58
    return propDecorator;
59
}
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