@mezzanine-ui/core 0.13.3 → 0.13.5
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/alert/alert.js +2 -2
- package/calendarMethodsLuxon/index.d.ts +3 -0
- package/calendarMethodsLuxon/index.js +107 -0
- package/modal/modal.js +2 -2
- package/notification/notification.js +2 -2
- package/package.json +10 -3
package/alert/alert.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { CheckCircleFilledIcon, ExclamationCircleFilledIcon,
|
|
1
|
+
import { CheckCircleFilledIcon, ExclamationCircleFilledIcon, TimesCircleFilledIcon } from '@mezzanine-ui/icons';
|
|
2
2
|
|
|
3
3
|
const alertPrefix = 'mzn-alert';
|
|
4
4
|
const alertIcons = {
|
|
5
5
|
success: CheckCircleFilledIcon,
|
|
6
6
|
warning: ExclamationCircleFilledIcon,
|
|
7
|
-
error:
|
|
7
|
+
error: TimesCircleFilledIcon,
|
|
8
8
|
};
|
|
9
9
|
const alertClasses = {
|
|
10
10
|
host: alertPrefix,
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { DateTime, Info, Interval } from 'luxon';
|
|
2
|
+
import range from 'lodash/range';
|
|
3
|
+
import chunk from 'lodash/chunk';
|
|
4
|
+
|
|
5
|
+
const CalendarMethodsLuxon = {
|
|
6
|
+
/** Get date infos */
|
|
7
|
+
getNow: () => DateTime.now().toISO(),
|
|
8
|
+
getSecond: (date) => DateTime.fromISO(date).second,
|
|
9
|
+
getMinute: (date) => DateTime.fromISO(date).minute,
|
|
10
|
+
getHour: (date) => DateTime.fromISO(date).hour,
|
|
11
|
+
getDate: (date) => DateTime.fromISO(date).day,
|
|
12
|
+
getWeekDay: (date) => DateTime.fromISO(date).weekday,
|
|
13
|
+
getMonth: (date) => DateTime.fromISO(date).month,
|
|
14
|
+
getYear: (date) => DateTime.fromISO(date).year,
|
|
15
|
+
getWeekDayNames: (locale) => Info.weekdays('narrow', { locale }),
|
|
16
|
+
getMonthShortName: (month, locale) => DateTime.now().set({ month }).toFormat('MMM', { locale }),
|
|
17
|
+
getMonthShortNames: (locale) => Info.months('short', { locale }),
|
|
18
|
+
/** Manipulate */
|
|
19
|
+
addDay: (date, diff) => DateTime.fromISO(date).plus({ day: diff }).toISO(),
|
|
20
|
+
addYear: (date, diff) => DateTime.fromISO(date).plus({ year: diff }).toISO(),
|
|
21
|
+
addMonth: (date, diff) => DateTime.fromISO(date).plus({ month: diff }).toISO(),
|
|
22
|
+
setSecond: (date, second) => DateTime.fromISO(date).set({ second }).toISO(),
|
|
23
|
+
setMinute: (date, minute) => DateTime.fromISO(date).set({ minute }).toISO(),
|
|
24
|
+
setHour: (date, hour) => DateTime.fromISO(date).set({ hour }).toISO(),
|
|
25
|
+
setMonth: (date, month) => DateTime.fromISO(date).set({ month }).toISO(),
|
|
26
|
+
setYear: (date, year) => DateTime.fromISO(date).set({ year }).toISO(),
|
|
27
|
+
setDate: (date, target) => DateTime.fromISO(date).set({ day: target }).toISO(),
|
|
28
|
+
startOf: (target, granularity) => DateTime.fromISO(target).startOf(granularity).toISO(),
|
|
29
|
+
/** Generate day calendar */
|
|
30
|
+
getCalendarGrid: (target) => {
|
|
31
|
+
const lastDateOfPrevMonth = DateTime.fromISO(target).minus({ month: 1 }).endOf('month').day;
|
|
32
|
+
const firstDayOfCurrentMonth = DateTime.fromISO(target).set({ day: 1 }).weekday;
|
|
33
|
+
const lastDateOfCurrentMonth = DateTime.fromISO(target).endOf('month').day;
|
|
34
|
+
return chunk([
|
|
35
|
+
...range(lastDateOfPrevMonth - firstDayOfCurrentMonth + 2, lastDateOfPrevMonth + 1),
|
|
36
|
+
...range(1, lastDateOfCurrentMonth + 1),
|
|
37
|
+
...range(1, 42 - lastDateOfCurrentMonth - firstDayOfCurrentMonth + 2),
|
|
38
|
+
], 7);
|
|
39
|
+
},
|
|
40
|
+
/** Compares */
|
|
41
|
+
isBefore: (target, comparison) => DateTime.fromISO(target) < DateTime.fromISO(comparison),
|
|
42
|
+
isBetween: (value, target1, target2) => Interval.fromDateTimes(DateTime.fromISO(target1), DateTime.fromISO(target2)).contains(DateTime.fromISO(value)),
|
|
43
|
+
isSameDate: (dateOne, dateTwo) => DateTime.fromISO(dateOne).hasSame(DateTime.fromISO(dateTwo), 'day'),
|
|
44
|
+
isSameWeek: (dateOne, dateTwo) => DateTime.fromISO(dateOne).hasSame(DateTime.fromISO(dateTwo), 'week'),
|
|
45
|
+
isInMonth: (target, month) => DateTime.fromISO(target).month === month,
|
|
46
|
+
isDateIncluded: (date, targets) => targets
|
|
47
|
+
.some((target) => DateTime.fromISO(date).hasSame(DateTime.fromISO(target), 'day')),
|
|
48
|
+
isWeekIncluded: (firstDateOfWeek, targets) => targets.some((target) => DateTime.fromISO(firstDateOfWeek).hasSame(DateTime.fromISO(target), 'week')),
|
|
49
|
+
isMonthIncluded: (date, targets) => targets
|
|
50
|
+
.some((target) => DateTime.fromISO(date).hasSame(DateTime.fromISO(target), 'month')),
|
|
51
|
+
isYearIncluded: (date, targets) => targets
|
|
52
|
+
.some((target) => DateTime.fromISO(date).hasSame(DateTime.fromISO(target), 'year')),
|
|
53
|
+
/** Format */
|
|
54
|
+
formatToString: (locale, date, format) => {
|
|
55
|
+
const luxonFormat = format
|
|
56
|
+
.replace(/YYYY/g, 'yyyy')
|
|
57
|
+
.replace(/YY/g, 'yy')
|
|
58
|
+
.replace(/Y/g, 'y')
|
|
59
|
+
.replace(/dddd/g, 'EEEE')
|
|
60
|
+
.replace(/ddd/g, 'EEE')
|
|
61
|
+
.replace(/dd/g, 'EEE')
|
|
62
|
+
.replace(/d/g, 'E')
|
|
63
|
+
.replace(/DDDD/g, 'ooo')
|
|
64
|
+
.replace(/DDD/g, 'o')
|
|
65
|
+
.replace(/DD/g, 'dd')
|
|
66
|
+
.replace(/D/g, 'd')
|
|
67
|
+
.replace(/e/g, 'E')
|
|
68
|
+
.replace(/ww/g, 'WW')
|
|
69
|
+
.replace(/w/g, 'W')
|
|
70
|
+
.replace(/kk/g, 'HH')
|
|
71
|
+
.replace(/k/g, 'H')
|
|
72
|
+
.replace(/gggg/g, 'kkkk')
|
|
73
|
+
.replace(/gg/g, 'kk')
|
|
74
|
+
.replace(/GGGG/g, 'kkkk')
|
|
75
|
+
.replace(/GG/g, 'kk')
|
|
76
|
+
.replace(/SSS/g, 'uuu')
|
|
77
|
+
.replace(/SS/g, 'uu')
|
|
78
|
+
.replace(/S/g, 'u')
|
|
79
|
+
.replace(/zz/g, 'ZZZZ')
|
|
80
|
+
.replace(/z/g, 'ZZZZ');
|
|
81
|
+
return (date instanceof Date ? DateTime.fromJSDate(date) : DateTime.fromISO(date))
|
|
82
|
+
.toFormat(luxonFormat, { locale });
|
|
83
|
+
},
|
|
84
|
+
/** Parse */
|
|
85
|
+
parse: (locale, text, formats) => {
|
|
86
|
+
for (let i = 0; i < formats.length; i += 1) {
|
|
87
|
+
let format = formats[i];
|
|
88
|
+
let formatText = text;
|
|
89
|
+
if (format.includes('wo') || format.includes('Wo')) {
|
|
90
|
+
format = format.replace(/wo/g, 'w').replace(/Wo/g, 'W');
|
|
91
|
+
const matchFormat = format.match(/[-YyMmDdHhSsWwGg]+/g);
|
|
92
|
+
const matchText = formatText.match(/[-\d]+/g);
|
|
93
|
+
if (matchFormat && matchText) {
|
|
94
|
+
format = matchFormat.join('');
|
|
95
|
+
formatText = matchText.join('');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const date = DateTime.fromFormat(formatText, format, { locale });
|
|
99
|
+
if (date.isValid) {
|
|
100
|
+
return date.toISO();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export { CalendarMethodsLuxon as default };
|
package/modal/modal.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { CheckCircleFilledIcon, ExclamationCircleFilledIcon,
|
|
1
|
+
import { CheckCircleFilledIcon, ExclamationCircleFilledIcon, TimesCircleFilledIcon, InfoCircleFilledIcon } from '@mezzanine-ui/icons';
|
|
2
2
|
|
|
3
3
|
const modalPrefix = 'mzn-modal';
|
|
4
4
|
const modalSeverityIcons = {
|
|
5
5
|
success: CheckCircleFilledIcon,
|
|
6
6
|
warning: ExclamationCircleFilledIcon,
|
|
7
|
-
error:
|
|
7
|
+
error: TimesCircleFilledIcon,
|
|
8
8
|
info: InfoCircleFilledIcon,
|
|
9
9
|
};
|
|
10
10
|
const modalClasses = {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { CheckCircleFilledIcon, ExclamationCircleFilledIcon,
|
|
1
|
+
import { CheckCircleFilledIcon, ExclamationCircleFilledIcon, TimesCircleFilledIcon, InfoCircleFilledIcon } from '@mezzanine-ui/icons';
|
|
2
2
|
|
|
3
3
|
const notificationPrefix = 'mzn-notif';
|
|
4
4
|
const notificationRootPrefix = `${notificationPrefix}-root`;
|
|
5
5
|
const notificationIcons = {
|
|
6
6
|
success: CheckCircleFilledIcon,
|
|
7
7
|
warning: ExclamationCircleFilledIcon,
|
|
8
|
-
error:
|
|
8
|
+
error: TimesCircleFilledIcon,
|
|
9
9
|
info: InfoCircleFilledIcon,
|
|
10
10
|
};
|
|
11
11
|
const notificationClasses = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mezzanine-ui/core",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.5",
|
|
4
4
|
"description": "Core for mezzanine-ui",
|
|
5
5
|
"author": "Mezzanine",
|
|
6
6
|
"repository": {
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"dayjs": "^1.10.7",
|
|
27
27
|
"lodash": "^4.17.21",
|
|
28
|
+
"luxon": "^3.4.3",
|
|
28
29
|
"moment": "^2.29.1"
|
|
29
30
|
},
|
|
30
31
|
"peerDependenciesMeta": {
|
|
@@ -33,12 +34,18 @@
|
|
|
33
34
|
},
|
|
34
35
|
"moment": {
|
|
35
36
|
"optional": true
|
|
37
|
+
},
|
|
38
|
+
"luxon": {
|
|
39
|
+
"optional": true
|
|
36
40
|
}
|
|
37
41
|
},
|
|
38
42
|
"dependencies": {
|
|
39
|
-
"@mezzanine-ui/icons": "^0.13.
|
|
40
|
-
"@mezzanine-ui/system": "^0.13.
|
|
43
|
+
"@mezzanine-ui/icons": "^0.13.5",
|
|
44
|
+
"@mezzanine-ui/system": "^0.13.5",
|
|
41
45
|
"lodash": "^4.17.21",
|
|
42
46
|
"tslib": "^2.4.1"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/luxon": "^3.3.2"
|
|
43
50
|
}
|
|
44
51
|
}
|