• 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

0.0
/src/time-picker/time-picker-controls.util.ts
1
import { changeTime } from './time-picker.utils';
2
import { TimeChangeEvent, TimePickerComponentState, TimePickerControls } from './inner/inner-time-picker.class';
UNCOV
3

×
4
export function canChangeValue(state: TimePickerComponentState, event?: TimeChangeEvent): boolean {
×
5
    if (state.readonlyInput || state.disabled) {
UNCOV
6
        return false;
×
UNCOV
7
    }
×
8

×
9
    if (event) {
UNCOV
10
        if (event.source === 'wheel' && !state.mousewheel) {
×
11
            return false;
×
12
        }
13

UNCOV
14
        if (event.source === 'key' && !state.arrowKeys) {
×
15
            return false;
16
        }
UNCOV
17
    }
×
18

×
19
    return true;
UNCOV
20
}
×
21

×
22
export function canChangeHours(event: TimeChangeEvent, controls: TimePickerControls): boolean {
UNCOV
23
    if (!event.step) {
×
24
        return false;
×
25
    }
UNCOV
26

×
27
    if (event.step > 0 && !controls.canIncrementHours) {
28
        return false;
UNCOV
29
    }
×
30

×
31
    if (event.step < 0 && !controls.canDecrementHours) {
UNCOV
32
        return false;
×
33
    }
×
34

UNCOV
35
    return true;
×
36
}
×
37

UNCOV
38
export function canChangeMinutes(event: TimeChangeEvent, controls: TimePickerControls): boolean {
×
39
    if (!event.step) {
40
        return false;
UNCOV
41
    }
×
42
    if (event.step > 0 && !controls.canIncrementMinutes) {
×
43
        return false;
UNCOV
44
    }
×
45
    if (event.step < 0 && !controls.canDecrementMinutes) {
×
46
        return false;
UNCOV
47
    }
×
48

×
49
    return true;
UNCOV
50
}
×
51

52
export function canChangeSeconds(event: TimeChangeEvent, controls: TimePickerControls): boolean {
UNCOV
53
    if (!event.step) {
×
UNCOV
54
        return false;
×
55
    }
56
    if (event.step > 0 && !controls.canIncrementSeconds) {
57
        return false;
58
    }
59
    if (event.step < 0 && !controls.canDecrementSeconds) {
60
        return false;
61
    }
62

63
    return true;
64
}
65

66
export function getControlsValue(state: TimePickerComponentState): TimePickerComponentState {
67
    const {
68
        hourStep,
69
        minuteStep,
70
        secondsStep,
UNCOV
71
        readonlyInput,
×
UNCOV
72
        disabled,
×
UNCOV
73
        mousewheel,
×
74
        arrowKeys,
75
        showSpinners,
76
        showMeridian,
77
        showSeconds,
78
        meridians,
79
        min,
80
        max
81
    } = state;
UNCOV
82

×
UNCOV
83
    return {
×
84
        hourStep,
85
        minuteStep,
UNCOV
86
        secondsStep,
×
UNCOV
87
        readonlyInput,
×
UNCOV
88
        disabled,
×
UNCOV
89
        mousewheel,
×
UNCOV
90
        arrowKeys,
×
UNCOV
91
        showSpinners,
×
92
        showMeridian,
UNCOV
93
        showSeconds,
×
UNCOV
94
        meridians,
×
UNCOV
95
        min,
×
96
        max
UNCOV
97
    };
×
UNCOV
98
}
×
99

100
export function timePickerControls(value: Date, state: TimePickerComponentState): TimePickerControls {
UNCOV
101
    const hoursPerDayHalf = 12;
×
UNCOV
102
    const { min, max, hourStep, minuteStep, secondsStep, showSeconds } = state;
×
UNCOV
103
    const res: TimePickerControls = {
×
UNCOV
104
        canIncrementHours: true,
×
UNCOV
105
        canIncrementMinutes: true,
×
UNCOV
106
        canIncrementSeconds: true,
×
107

UNCOV
108
        canDecrementHours: true,
×
UNCOV
109
        canDecrementMinutes: true,
×
UNCOV
110
        canDecrementSeconds: true,
×
111

UNCOV
112
        canToggleMeridian: true
×
113
    };
×
114

115
    if (!value) {
UNCOV
116
        return res;
×
117
    }
118

119
    // compare dates
120
    if (max) {
121
        const _newHour = changeTime(value, { hour: hourStep });
122
        res.canIncrementHours = max > _newHour;
123

124
        if (!res.canIncrementHours) {
125
            const _newMinutes = changeTime(value, { minute: minuteStep });
126
            res.canIncrementMinutes = showSeconds ? max > _newMinutes : max >= _newMinutes;
127
        }
128

129
        if (!res.canIncrementMinutes) {
130
            const _newSeconds = changeTime(value, { seconds: secondsStep });
131
            res.canIncrementSeconds = max >= _newSeconds;
132
        }
133

134
        if (value.getHours() < hoursPerDayHalf) {
135
            res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;
136
        }
137
    }
138

139
    if (min) {
140
        const _newHour = changeTime(value, { hour: -hourStep });
141
        res.canDecrementHours = min < _newHour;
142

143
        if (!res.canDecrementHours) {
144
            const _newMinutes = changeTime(value, { minute: -minuteStep });
145
            res.canDecrementMinutes = showSeconds ? min < _newMinutes : min <= _newMinutes;
146
        }
147

148
        if (!res.canDecrementMinutes) {
149
            const _newSeconds = changeTime(value, { seconds: -secondsStep });
150
            res.canDecrementSeconds = min <= _newSeconds;
151
        }
152

153
        if (value.getHours() >= hoursPerDayHalf) {
154
            res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;
155
        }
156
    }
157

158
    return res;
159
}
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