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

atinc / ngx-tethys / d9ae709b-3c27-4b69-b125-b8b80b54f90b

pending completion
d9ae709b-3c27-4b69-b125-b8b80b54f90b

Pull #2757

circleci

mengshuicmq
fix: fix code review
Pull Request #2757: feat(color-picker): color-picker support disabled (#INFR-8645)

98 of 6315 branches covered (1.55%)

Branch coverage included in aggregate %.

1 of 1 new or added line in 1 file covered. (100.0%)

2392 of 13661 relevant lines covered (17.51%)

83.12 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';
3

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

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

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

×
19
    return true;
20
}
×
21

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

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

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

35
    return true;
×
36
}
×
37

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

×
49
    return true;
50
}
×
51

52
export function canChangeSeconds(event: TimeChangeEvent, controls: TimePickerControls): boolean {
53
    if (!event.step) {
×
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,
71
        readonlyInput,
×
72
        disabled,
×
73
        mousewheel,
×
74
        arrowKeys,
75
        showSpinners,
76
        showMeridian,
77
        showSeconds,
78
        meridians,
79
        min,
80
        max
81
    } = state;
82

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

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

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

112
        canToggleMeridian: true
×
113
    };
×
114

115
    if (!value) {
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