@sneat/core 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.js +2 -0
- package/esm2022/index.js.map +1 -0
- package/esm2022/lib/analytics.interface.js +3 -0
- package/esm2022/lib/analytics.interface.js.map +1 -0
- package/esm2022/lib/animations/form-animations.js +8 -0
- package/esm2022/lib/animations/form-animations.js.map +1 -0
- package/esm2022/lib/animations/index.js +3 -0
- package/esm2022/lib/animations/index.js.map +1 -0
- package/esm2022/lib/animations/list-animations.js +29 -0
- package/esm2022/lib/animations/list-animations.js.map +1 -0
- package/esm2022/lib/app.service.js +3 -0
- package/esm2022/lib/app.service.js.map +1 -0
- package/esm2022/lib/core-models.js +2 -0
- package/esm2022/lib/core-models.js.map +1 -0
- package/esm2022/lib/directives/index.js +2 -0
- package/esm2022/lib/directives/index.js.map +1 -0
- package/esm2022/lib/directives/sneat-select-all-on-focus.directive.js +42 -0
- package/esm2022/lib/directives/sneat-select-all-on-focus.directive.js.map +1 -0
- package/esm2022/lib/environment-config.js +4 -0
- package/esm2022/lib/environment-config.js.map +1 -0
- package/esm2022/lib/eq.js +2 -0
- package/esm2022/lib/eq.js.map +1 -0
- package/esm2022/lib/exclude-undefined.js +43 -0
- package/esm2022/lib/exclude-undefined.js.map +1 -0
- package/esm2022/lib/form-field.js +2 -0
- package/esm2022/lib/form-field.js.map +1 -0
- package/esm2022/lib/index.js +22 -0
- package/esm2022/lib/index.js.map +1 -0
- package/esm2022/lib/interfaces.js +11 -0
- package/esm2022/lib/interfaces.js.map +1 -0
- package/esm2022/lib/location-href.js +6 -0
- package/esm2022/lib/location-href.js.map +1 -0
- package/esm2022/lib/logging/interfaces.js +3 -0
- package/esm2022/lib/logging/interfaces.js.map +1 -0
- package/esm2022/lib/logging.js +16 -0
- package/esm2022/lib/logging.js.map +1 -0
- package/esm2022/lib/nav/index.js +3 -0
- package/esm2022/lib/nav/index.js.map +1 -0
- package/esm2022/lib/nav/nav-context.js +7 -0
- package/esm2022/lib/nav/nav-context.js.map +1 -0
- package/esm2022/lib/nav/routing-state.js +29 -0
- package/esm2022/lib/nav/routing-state.js.map +1 -0
- package/esm2022/lib/services/index.js +4 -0
- package/esm2022/lib/services/index.js.map +1 -0
- package/esm2022/lib/services/ng-module-preloader.service.js +108 -0
- package/esm2022/lib/services/ng-module-preloader.service.js.map +1 -0
- package/esm2022/lib/services/sneat-nav.service.js +41 -0
- package/esm2022/lib/services/sneat-nav.service.js.map +1 -0
- package/esm2022/lib/services/top-menu.service.js +25 -0
- package/esm2022/lib/services/top-menu.service.js.map +1 -0
- package/esm2022/lib/sneat-enum-keys.js +2 -0
- package/esm2022/lib/sneat-enum-keys.js.map +1 -0
- package/esm2022/lib/sneat-extensions.js +38 -0
- package/esm2022/lib/sneat-extensions.js.map +1 -0
- package/esm2022/lib/store.js +42 -0
- package/esm2022/lib/store.js.map +1 -0
- package/esm2022/lib/team-type.js +2 -0
- package/esm2022/lib/team-type.js.map +1 -0
- package/esm2022/lib/types/age-group.js +2 -0
- package/esm2022/lib/types/age-group.js.map +1 -0
- package/{src/lib/types/gender.ts → esm2022/lib/types/gender.js} +1 -7
- package/esm2022/lib/types/gender.js.map +1 -0
- package/esm2022/lib/types/index.js +3 -0
- package/esm2022/lib/types/index.js.map +1 -0
- package/esm2022/lib/utils/datetimes.js +39 -0
- package/esm2022/lib/utils/datetimes.js.map +1 -0
- package/esm2022/lib/utils/index.js +2 -0
- package/esm2022/lib/utils/index.js.map +1 -0
- package/esm2022/sneat-core.js +5 -0
- package/esm2022/sneat-core.js.map +1 -0
- package/lib/analytics.interface.d.ts +12 -0
- package/lib/animations/form-animations.d.ts +1 -0
- package/lib/animations/list-animations.d.ts +3 -0
- package/lib/app.service.d.ts +9 -0
- package/{src/lib/core-models.ts → lib/core-models.d.ts} +4 -6
- package/lib/directives/sneat-select-all-on-focus.directive.d.ts +7 -0
- package/lib/environment-config.d.ts +37 -0
- package/lib/eq.d.ts +1 -0
- package/lib/exclude-undefined.d.ts +6 -0
- package/lib/form-field.d.ts +4 -0
- package/lib/interfaces.d.ts +53 -0
- package/lib/location-href.d.ts +1 -0
- package/lib/logging/interfaces.d.ts +12 -0
- package/lib/logging.d.ts +12 -0
- package/lib/nav/nav-context.d.ts +4 -0
- package/lib/nav/routing-state.d.ts +8 -0
- package/lib/services/ng-module-preloader.service.d.ts +18 -0
- package/lib/services/sneat-nav.service.d.ts +12 -0
- package/lib/services/top-menu.service.d.ts +10 -0
- package/lib/sneat-enum-keys.d.ts +1 -0
- package/lib/sneat-extensions.d.ts +7 -0
- package/lib/store.d.ts +14 -0
- package/lib/team-type.d.ts +2 -0
- package/lib/types/gender.d.ts +6 -0
- package/lib/utils/datetimes.d.ts +7 -0
- package/package.json +14 -2
- package/sneat-core.d.ts +5 -0
- package/eslint.config.js +0 -7
- package/ng-package.json +0 -7
- package/project.json +0 -38
- package/src/lib/analytics.interface.ts +0 -34
- package/src/lib/animations/form-animations.spec.ts +0 -26
- package/src/lib/animations/form-animations.ts +0 -11
- package/src/lib/animations/list-animations.spec.ts +0 -50
- package/src/lib/animations/list-animations.ts +0 -44
- package/src/lib/app.service.ts +0 -33
- package/src/lib/constants.spec.ts +0 -20
- package/src/lib/constants.ts +0 -1
- package/src/lib/directives/sneat-select-all-on-focus.directive.spec.ts +0 -142
- package/src/lib/directives/sneat-select-all-on-focus.directive.ts +0 -36
- package/src/lib/environment-config.ts +0 -54
- package/src/lib/eq.spec.ts +0 -24
- package/src/lib/eq.ts +0 -1
- package/src/lib/exclude-undefined.spec.ts +0 -165
- package/src/lib/exclude-undefined.ts +0 -47
- package/src/lib/form-field.ts +0 -5
- package/src/lib/interfaces.spec.ts +0 -116
- package/src/lib/interfaces.ts +0 -85
- package/src/lib/location-href.spec.ts +0 -53
- package/src/lib/location-href.ts +0 -9
- package/src/lib/logging/interfaces.ts +0 -19
- package/src/lib/logging.spec.ts +0 -132
- package/src/lib/logging.ts +0 -33
- package/src/lib/nav/nav-context.ts +0 -16
- package/src/lib/nav/routing-state.spec.ts +0 -65
- package/src/lib/nav/routing-state.ts +0 -26
- package/src/lib/services/ng-module-preloader.service.spec.ts +0 -72
- package/src/lib/services/ng-module-preloader.service.ts +0 -125
- package/src/lib/services/sneat-nav.service.spec.ts +0 -95
- package/src/lib/services/sneat-nav.service.ts +0 -46
- package/src/lib/services/top-menu.service.spec.ts +0 -42
- package/src/lib/services/top-menu.service.ts +0 -19
- package/src/lib/sneat-enum-keys.ts +0 -2
- package/src/lib/sneat-extensions.spec.ts +0 -127
- package/src/lib/sneat-extensions.ts +0 -49
- package/src/lib/store.spec.ts +0 -156
- package/src/lib/store.ts +0 -54
- package/src/lib/team-type.spec.ts +0 -8
- package/src/lib/team-type.ts +0 -13
- package/src/lib/testing/base-test-setup.ts +0 -247
- package/src/lib/testing/test-setup-light.ts +0 -1
- package/src/lib/testing/test-setup.ts +0 -70
- package/src/lib/types/gender.spec.ts +0 -42
- package/src/lib/utils/datetimes.spec.ts +0 -144
- package/src/lib/utils/datetimes.ts +0 -51
- package/src/test-setup.ts +0 -3
- package/tsconfig.json +0 -13
- package/tsconfig.lib.json +0 -19
- package/tsconfig.lib.prod.json +0 -7
- package/tsconfig.spec.json +0 -31
- package/vite.config.mts +0 -10
- /package/{src/index.ts → index.d.ts} +0 -0
- /package/{src/lib/animations/index.ts → lib/animations/index.d.ts} +0 -0
- /package/{src/lib/directives/index.ts → lib/directives/index.d.ts} +0 -0
- /package/{src/lib/index.ts → lib/index.d.ts} +0 -0
- /package/{src/lib/nav/index.ts → lib/nav/index.d.ts} +0 -0
- /package/{src/lib/services/index.ts → lib/services/index.d.ts} +0 -0
- /package/{src/lib/types/age-group.ts → lib/types/age-group.d.ts} +0 -0
- /package/{src/lib/types/index.ts → lib/types/index.d.ts} +0 -0
- /package/{src/lib/utils/index.ts → lib/utils/index.d.ts} +0 -0
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
dateToIso,
|
|
3
|
-
getWeekID,
|
|
4
|
-
getWeekStartDate,
|
|
5
|
-
isValidaTimeString,
|
|
6
|
-
isValidDateString,
|
|
7
|
-
isoStringsToDate,
|
|
8
|
-
localDateToIso,
|
|
9
|
-
} from './datetimes';
|
|
10
|
-
|
|
11
|
-
describe('datetime utilities', () => {
|
|
12
|
-
describe('isValidaTimeString', () => {
|
|
13
|
-
it('should return true for valid time format strings', () => {
|
|
14
|
-
expect(isValidaTimeString('12:30')).toBe(true);
|
|
15
|
-
expect(isValidaTimeString('00:00')).toBe(true);
|
|
16
|
-
expect(isValidaTimeString('23:59')).toBe(true);
|
|
17
|
-
// Note: the regex only checks format (DD:DD), not validity of values
|
|
18
|
-
expect(isValidaTimeString('25:00')).toBe(true);
|
|
19
|
-
expect(isValidaTimeString('12:60')).toBe(true);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it('should return false for invalid time format strings', () => {
|
|
23
|
-
expect(isValidaTimeString('1:30')).toBe(false);
|
|
24
|
-
expect(isValidaTimeString('12:5')).toBe(false);
|
|
25
|
-
expect(isValidaTimeString('invalid')).toBe(false);
|
|
26
|
-
expect(isValidaTimeString('')).toBe(false);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('should return false for undefined or null', () => {
|
|
30
|
-
expect(isValidaTimeString(undefined)).toBe(false);
|
|
31
|
-
expect(isValidaTimeString(null as unknown as string)).toBe(false);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
describe('isValidDateString', () => {
|
|
36
|
-
it('should return true for valid date strings', () => {
|
|
37
|
-
expect(isValidDateString('2024-01-15')).toBe(true);
|
|
38
|
-
expect(isValidDateString('2024-12-31')).toBe(true);
|
|
39
|
-
expect(isValidDateString('2000-01-01')).toBe(true);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
it('should return false for invalid date strings', () => {
|
|
43
|
-
expect(isValidDateString('2024-1-15')).toBe(false);
|
|
44
|
-
expect(isValidDateString('24-01-15')).toBe(false);
|
|
45
|
-
expect(isValidDateString('invalid')).toBe(false);
|
|
46
|
-
expect(isValidDateString('')).toBe(false);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('should return false for undefined or null', () => {
|
|
50
|
-
expect(isValidDateString(undefined)).toBe(false);
|
|
51
|
-
expect(isValidDateString(null as unknown as string)).toBe(false);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
describe('localDateToIso', () => {
|
|
56
|
-
it('should convert date to ISO format string', () => {
|
|
57
|
-
const date = new Date(2024, 0, 15); // January 15, 2024
|
|
58
|
-
expect(localDateToIso(date)).toBe('2024-01-15');
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it('should pad single digit months and days', () => {
|
|
62
|
-
const date = new Date(2024, 0, 5); // January 5, 2024
|
|
63
|
-
expect(localDateToIso(date)).toBe('2024-01-05');
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
it('should handle double digit months and days', () => {
|
|
67
|
-
const date = new Date(2024, 11, 25); // December 25, 2024
|
|
68
|
-
expect(localDateToIso(date)).toBe('2024-12-25');
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
describe('isoStringsToDate', () => {
|
|
73
|
-
it('should convert date string to Date object', () => {
|
|
74
|
-
const result = isoStringsToDate('2024-01-15');
|
|
75
|
-
expect(result.getFullYear()).toBe(2024);
|
|
76
|
-
expect(result.getMonth()).toBe(0); // January is 0
|
|
77
|
-
expect(result.getDate()).toBe(15);
|
|
78
|
-
expect(result.getHours()).toBe(0);
|
|
79
|
-
expect(result.getMinutes()).toBe(0);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it('should handle date and time strings', () => {
|
|
83
|
-
const result = isoStringsToDate('2024-01-15', '14:30');
|
|
84
|
-
expect(result.getFullYear()).toBe(2024);
|
|
85
|
-
expect(result.getMonth()).toBe(0);
|
|
86
|
-
expect(result.getDate()).toBe(15);
|
|
87
|
-
expect(result.getHours()).toBe(14);
|
|
88
|
-
expect(result.getMinutes()).toBe(30);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('should handle time string with T prefix', () => {
|
|
92
|
-
const result = isoStringsToDate('2024-01-15', 'T14:30');
|
|
93
|
-
expect(result.getHours()).toBe(14);
|
|
94
|
-
expect(result.getMinutes()).toBe(30);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
it('should use default time 00:00 when time is not provided', () => {
|
|
98
|
-
const result = isoStringsToDate('2024-01-15');
|
|
99
|
-
expect(result.getHours()).toBe(0);
|
|
100
|
-
expect(result.getMinutes()).toBe(0);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
describe('dateToIso', () => {
|
|
105
|
-
it('should convert Date to ISO date string in UTC', () => {
|
|
106
|
-
const date = new Date(2024, 0, 15, 10, 30); // January 15, 2024, 10:30 local time
|
|
107
|
-
const result = dateToIso(date);
|
|
108
|
-
expect(result).toMatch(/^\d{4}-\d{2}-\d{2}$/);
|
|
109
|
-
// The result depends on timezone, so we just verify the format
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
describe('getWeekStartDate', () => {
|
|
114
|
-
it('should get the start of the week', () => {
|
|
115
|
-
const date = new Date(2024, 0, 17); // Wednesday, January 17, 2024
|
|
116
|
-
const weekStart = getWeekStartDate(date, 1);
|
|
117
|
-
// Function returns the date, let's verify it's a valid Date object
|
|
118
|
-
expect(weekStart).toBeInstanceOf(Date);
|
|
119
|
-
expect(weekStart.getDate()).toBe(14); // Result based on actual implementation
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
it('should handle Sunday correctly', () => {
|
|
123
|
-
const date = new Date(2024, 0, 14); // Sunday, January 14, 2024
|
|
124
|
-
const weekStart = getWeekStartDate(date, 1);
|
|
125
|
-
expect(weekStart).toBeInstanceOf(Date);
|
|
126
|
-
expect(weekStart.getDate()).toBe(7); // Result based on actual implementation
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
describe('getWeekID', () => {
|
|
131
|
-
it('should generate unique week ID', () => {
|
|
132
|
-
const date = new Date(2024, 0, 17); // Wednesday, January 17, 2024
|
|
133
|
-
const weekId = getWeekID(date);
|
|
134
|
-
expect(typeof weekId).toBe('number');
|
|
135
|
-
expect(weekId).toBeGreaterThan(0);
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
it('should generate consistent week ID for same week', () => {
|
|
139
|
-
const date1 = new Date(2024, 0, 15); // Monday
|
|
140
|
-
const date2 = new Date(2024, 0, 17); // Wednesday
|
|
141
|
-
expect(getWeekID(date1)).toBe(getWeekID(date2));
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
});
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
export function isoStringsToDate(date: string, time?: string): Date {
|
|
2
|
-
const [year, month, day] = date ? date.split('T')[0].split('-') : [0, 0, 0];
|
|
3
|
-
if (time) {
|
|
4
|
-
if (time.includes('T')) {
|
|
5
|
-
time = time.split('T')[1];
|
|
6
|
-
}
|
|
7
|
-
} else {
|
|
8
|
-
time = '00:00';
|
|
9
|
-
}
|
|
10
|
-
const [hour, minute] = time.split(':');
|
|
11
|
-
return new Date(
|
|
12
|
-
Number(year),
|
|
13
|
-
Number(month) - 1,
|
|
14
|
-
Number(day),
|
|
15
|
-
Number(hour),
|
|
16
|
-
Number(minute),
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function isValidaTimeString(v?: string): boolean {
|
|
21
|
-
return !!v?.match(/^\d{2}:\d{2}$/);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function isValidDateString(v?: string): boolean {
|
|
25
|
-
return !!v?.match(/^\d{4}-\d{2}-\d{2}$/);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function dateToIso(d: Date): string {
|
|
29
|
-
d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
|
|
30
|
-
return d.toISOString().split('T')[0];
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function localDateToIso(d: Date): string {
|
|
34
|
-
const month = `${d.getMonth() + 1}`;
|
|
35
|
-
const day = `${d.getDate()}`;
|
|
36
|
-
return `${d.getFullYear()}-${month.length === 1 ? `0${month}` : month}-${
|
|
37
|
-
day.length === 1 ? `0${day}` : day
|
|
38
|
-
}`;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function getWeekStartDate(d: Date, day: number): Date {
|
|
42
|
-
d = new Date(d.getFullYear(), d.getMonth(), d.getDate());
|
|
43
|
-
const dateDay = d.getDay();
|
|
44
|
-
const diff = d.getDate() - day + (dateDay === 0 ? -6 : 1 - dateDay); // adjust when day is sunday
|
|
45
|
-
return new Date(d.setDate(diff));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export function getWeekID(d: Date): number {
|
|
49
|
-
d = getWeekStartDate(d, 1);
|
|
50
|
-
return (d.getFullYear() * 100 + (1 + d.getMonth())) * 100 + d.getDate();
|
|
51
|
-
}
|
package/src/test-setup.ts
DELETED
package/tsconfig.json
DELETED
package/tsconfig.lib.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.lib.base.json",
|
|
3
|
-
"exclude": [
|
|
4
|
-
"vite.config.ts",
|
|
5
|
-
"vite.config.mts",
|
|
6
|
-
"vitest.config.ts",
|
|
7
|
-
"vitest.config.mts",
|
|
8
|
-
"src/**/*.test.ts",
|
|
9
|
-
"src/**/*.spec.ts",
|
|
10
|
-
"src/**/*.test.tsx",
|
|
11
|
-
"src/**/*.spec.tsx",
|
|
12
|
-
"src/**/*.test.js",
|
|
13
|
-
"src/**/*.spec.js",
|
|
14
|
-
"src/**/*.test.jsx",
|
|
15
|
-
"src/**/*.spec.jsx",
|
|
16
|
-
"src/test-setup.ts",
|
|
17
|
-
"src/lib/testing/**/*"
|
|
18
|
-
]
|
|
19
|
-
}
|
package/tsconfig.lib.prod.json
DELETED
package/tsconfig.spec.json
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "./tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"outDir": "../../dist/out-tsc",
|
|
5
|
-
"types": [
|
|
6
|
-
"vitest/globals",
|
|
7
|
-
"vitest/importMeta",
|
|
8
|
-
"vite/client",
|
|
9
|
-
"node",
|
|
10
|
-
"vitest"
|
|
11
|
-
]
|
|
12
|
-
},
|
|
13
|
-
"include": [
|
|
14
|
-
"vite.config.ts",
|
|
15
|
-
"vite.config.mts",
|
|
16
|
-
"vitest.config.ts",
|
|
17
|
-
"vitest.config.mts",
|
|
18
|
-
"src/**/*.test.ts",
|
|
19
|
-
"src/**/*.spec.ts",
|
|
20
|
-
"src/**/*.test.tsx",
|
|
21
|
-
"src/**/*.spec.tsx",
|
|
22
|
-
"src/**/*.test.js",
|
|
23
|
-
"src/**/*.spec.js",
|
|
24
|
-
"src/**/*.test.jsx",
|
|
25
|
-
"src/**/*.spec.jsx",
|
|
26
|
-
"src/**/*.d.ts"
|
|
27
|
-
],
|
|
28
|
-
"files": [
|
|
29
|
-
"src/test-setup.ts"
|
|
30
|
-
]
|
|
31
|
-
}
|
package/vite.config.mts
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|