• 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

33.33
/src/date-picker/date-picker.config.ts
1
import { InjectionToken, Signal } from '@angular/core';
2
import { injectLocale, ThyDatePickerLocale, ThyI18nService } from 'ngx-tethys/i18n';
3
import { addDays, addWeeks, startOfDay, startOfWeek, subDays, TinyDate, WeekDayIndex } from 'ngx-tethys/util';
4
import { CompatiblePresets, ThyShortcutPosition } from './standard-types';
5

6
export interface ThyDatePickerConfig {
7
    shortcutPosition: ThyShortcutPosition;
1✔
8
    shortcutDatePresets: CompatiblePresets;
9
    shortcutRangesPresets: CompatiblePresets;
10
    showShortcut: boolean;
11
    weekStartsOn: WeekDayIndex;
12
    separator: string;
13
    timestampPrecision: 'seconds' | 'milliseconds';
14
}
×
15

16
/**
17
 * @deprecated
18
 */
19
export const DEFAULT_DATE_PICKER_CONFIG: ThyDatePickerConfig = {
20
    shortcutPosition: 'left',
21
    showShortcut: false,
22
    weekStartsOn: 1,
23
    separator: '~',
24
    timestampPrecision: 'seconds',
25
    shortcutDatePresets: () => {
26
        return [
27
            {
28
                title: '今天',
29
                value: startOfDay(new TinyDate().getTime()).getTime()
30
            },
×
31
            {
32
                title: '明天',
33
                value: startOfDay(addDays(new TinyDate().getTime(), 1)).getTime()
34
            },
35
            {
36
                title: '下周',
37
                value: startOfWeek(addWeeks(new TinyDate().getTime(), 1), { weekStartsOn: 1 }).getTime()
38
            }
39
        ];
40
    },
41
    shortcutRangesPresets: () => {
42
        return [
43
            {
44
                title: '最近 7 天',
45
                value: [new TinyDate(subDays(new TinyDate().getTime(), 6)).getTime(), new TinyDate().endOfDay().getTime()]
46
            },
47
            {
48
                title: '最近 30 天',
49
                value: [new TinyDate(subDays(new TinyDate().getTime(), 29)).getTime(), new TinyDate().endOfDay().getTime()]
50
            },
1✔
51
            {
UNCOV
52
                title: '本周',
×
UNCOV
53
                value: [new TinyDate().startOfWeek({ weekStartsOn: 1 }).getTime(), new TinyDate().endOfWeek({ weekStartsOn: 1 }).getTime()]
×
54
            },
55
            {
56
                title: '本月',
57
                value: [new TinyDate().startOfMonth().getTime(), new TinyDate().endOfMonth().getTime()]
58
            }
59
        ];
UNCOV
60
    }
×
61
};
62

63
export const THY_DATE_PICKER_CONFIG = new InjectionToken<ThyDatePickerConfig>('thy-date-picker-config');
64

65
export function useDatePickerDefaultConfig(): ThyDatePickerConfig {
66
    const locale: Signal<ThyDatePickerLocale> = injectLocale('datePicker');
67

68
    return {
69
        shortcutPosition: 'left',
70
        showShortcut: false,
71
        weekStartsOn: 1,
72
        separator: '~',
73
        timestampPrecision: 'seconds',
74
        shortcutDatePresets: () => {
75
            return [
UNCOV
76
                {
×
77
                    title: locale().today,
78
                    value: startOfDay(new TinyDate().nativeDate).getTime()
79
                },
80
                {
81
                    title: locale().tomorrow,
82
                    value: startOfDay(addDays(new TinyDate().nativeDate, 1)).getTime()
83
                },
84
                {
85
                    title: locale().nextWeek,
86
                    value: startOfWeek(addWeeks(new TinyDate().nativeDate, 1), { weekStartsOn: 1 }).getTime()
87
                }
88
            ];
89
        },
90
        shortcutRangesPresets: () => {
91
            return [
92
                {
93
                    title: locale().lastSevenDays,
94
                    value: [new TinyDate().subDays(6).getTime(), new TinyDate().endOfDay().getTime()]
95
                },
96
                {
97
                    title: locale().lastThirtyDays,
98
                    value: [new TinyDate().subDays(29).getTime(), new TinyDate().endOfDay().getTime()]
99
                },
100
                {
1✔
101
                    title: locale().currentWeek,
102
                    value: [
103
                        new TinyDate().startOfWeek({ weekStartsOn: 1 }).getTime(),
104
                        new TinyDate().endOfWeek({ weekStartsOn: 1 }).getTime()
105
                    ]
106
                },
107
                {
108
                    title: locale().currentMonth,
109
                    value: [new TinyDate().startOfMonth().getTime(), new TinyDate().endOfMonth().getTime()]
110
                }
111
            ];
112
        }
113
    };
114
}
115

116
export const THY_DATE_PICKER_CONFIG_PROVIDER = {
117
    provide: THY_DATE_PICKER_CONFIG,
118
    useFactory: useDatePickerDefaultConfig,
119
    deps: [ThyI18nService]
120
};
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