@rolster/react-components 18.12.9 → 18.13.0
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/dist/cjs/assets/{index-7UzJ6VgT.css → index-fykwrWLx.css} +747 -648
- package/dist/cjs/index.js +760 -776
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/assets/{index-7UzJ6VgT.css → index-fykwrWLx.css} +747 -648
- package/dist/es/index.js +760 -778
- package/dist/es/index.js.map +1 -1
- package/dist/esm/components/atoms/Amount/Amount.css +3 -3
- package/dist/esm/components/atoms/Avatar/Avatar.css +7 -7
- package/dist/esm/components/atoms/Badge/Badge.css +7 -7
- package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.css +12 -12
- package/dist/esm/components/atoms/Button/Button.css +74 -53
- package/dist/esm/components/atoms/Button/Button.d.ts +1 -1
- package/dist/esm/components/atoms/Button/Button.js +1 -1
- package/dist/esm/components/atoms/Button/Button.js.map +1 -1
- package/dist/esm/components/atoms/ButtonAction/ButtonAction.css +22 -22
- package/dist/esm/components/atoms/ButtonAction/ButtonAction.d.ts +1 -1
- package/dist/esm/components/atoms/CheckBox/CheckBox.css +8 -8
- package/dist/esm/components/atoms/Icon/Icon.css +7 -8
- package/dist/esm/components/atoms/Input/Input.css +13 -15
- package/dist/esm/components/atoms/InputMoney/InputMoney.css +1 -1
- package/dist/esm/components/atoms/InputNumber/InputNumber.css +1 -1
- package/dist/esm/components/atoms/InputPassword/InputPassword.css +8 -8
- package/dist/esm/components/atoms/InputText/InputText.css +1 -1
- package/dist/esm/components/atoms/Label/Label.css +1 -1
- package/dist/esm/components/atoms/MessageIcon/MessageIcon.css +6 -6
- package/dist/esm/components/atoms/Poster/Poster.css +6 -6
- package/dist/esm/components/atoms/ProgressBar/ProgressBar.css +7 -7
- package/dist/esm/components/atoms/ProgressCircular/ProgressCircular.css +44 -0
- package/dist/esm/components/atoms/ProgressCircular/ProgressCircular.d.ts +7 -0
- package/dist/esm/components/atoms/ProgressCircular/ProgressCircular.js +6 -0
- package/dist/esm/components/atoms/ProgressCircular/ProgressCircular.js.map +1 -0
- package/dist/esm/components/atoms/RadioButton/RadioButton.css +6 -6
- package/dist/esm/components/atoms/SearchInput/SearchInput.css +4 -4
- package/dist/esm/components/atoms/Skeleton/Skeleton.css +6 -6
- package/dist/esm/components/atoms/SkeletonText/SkeletonText.css +6 -8
- package/dist/esm/components/atoms/Switch/Switch.css +16 -16
- package/dist/esm/components/atoms/TabularText/TabularText.css +2 -2
- package/dist/esm/components/atoms/index.d.ts +1 -0
- package/dist/esm/components/atoms/index.js +1 -0
- package/dist/esm/components/atoms/index.js.map +1 -1
- package/dist/esm/components/definitions.d.ts +1 -1
- package/dist/esm/components/molecules/Ballot/Ballot.css +27 -34
- package/dist/esm/components/molecules/ButtonProgress/ButtonProgress.css +7 -0
- package/dist/esm/components/molecules/ButtonProgress/ButtonProgress.d.ts +12 -0
- package/dist/esm/components/molecules/ButtonProgress/ButtonProgress.js +8 -0
- package/dist/esm/components/molecules/ButtonProgress/ButtonProgress.js.map +1 -0
- package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.css +32 -30
- package/dist/esm/components/molecules/CheckBoxLabel/CheckBoxLabel.css +8 -8
- package/dist/esm/components/molecules/DayPicker/DayPicker.css +39 -27
- package/dist/esm/components/molecules/DayPicker/DayPicker.d.ts +3 -1
- package/dist/esm/components/molecules/DayPicker/DayPicker.js +32 -24
- package/dist/esm/components/molecules/DayPicker/DayPicker.js.map +1 -1
- package/dist/esm/components/molecules/DayRangePicker/DayRangePicker.css +28 -28
- package/dist/esm/components/molecules/DayRangePicker/DayRangePicker.js +18 -21
- package/dist/esm/components/molecules/DayRangePicker/DayRangePicker.js.map +1 -1
- package/dist/esm/components/molecules/MoneyField/MoneyField.css +1 -2
- package/dist/esm/components/molecules/MonthPicker/MonthPicker.css +34 -19
- package/dist/esm/components/molecules/MonthPicker/MonthPicker.d.ts +2 -1
- package/dist/esm/components/molecules/MonthPicker/MonthPicker.js +30 -19
- package/dist/esm/components/molecules/MonthPicker/MonthPicker.js.map +1 -1
- package/dist/esm/components/molecules/MonthTitlePicker/MonthTitlePicker.css +6 -6
- package/dist/esm/components/molecules/MonthTitlePicker/MonthTitlePicker.d.ts +1 -1
- package/dist/esm/components/molecules/MonthTitlePicker/MonthTitlePicker.js +26 -21
- package/dist/esm/components/molecules/MonthTitlePicker/MonthTitlePicker.js.map +1 -1
- package/dist/esm/components/molecules/NumberField/NumberField.css +1 -2
- package/dist/esm/components/molecules/Pagination/Pagination.css +29 -30
- package/dist/esm/components/molecules/PasswordField/PasswordField.css +4 -5
- package/dist/esm/components/molecules/RadioButtonLabel/RadioButtonLabel.css +8 -10
- package/dist/esm/components/molecules/SwitchLabel/SwitchLabel.css +8 -9
- package/dist/esm/components/molecules/TextField/TextField.css +1 -2
- package/dist/esm/components/molecules/Toolbar/Toolbar.css +10 -10
- package/dist/esm/components/molecules/YearPicker/YearPicker.css +42 -28
- package/dist/esm/components/molecules/YearPicker/YearPicker.d.ts +1 -1
- package/dist/esm/components/molecules/YearPicker/YearPicker.js +33 -26
- package/dist/esm/components/molecules/YearPicker/YearPicker.js.map +1 -1
- package/dist/esm/components/molecules/index.d.ts +1 -0
- package/dist/esm/components/molecules/index.js +1 -0
- package/dist/esm/components/molecules/index.js.map +1 -1
- package/dist/esm/components/organisms/AutocompleteField/AutocompleteField.css +22 -22
- package/dist/esm/components/organisms/AutocompleteField/AutocompleteField.d.ts +1 -1
- package/dist/esm/components/organisms/AutocompleteField/AutocompleteField.js +1 -1
- package/dist/esm/components/organisms/AutocompleteField/AutocompleteField.js.map +1 -1
- package/dist/esm/components/organisms/AutocompleteField/AutocompleteFieldHook.d.ts +1 -1
- package/dist/esm/components/organisms/AutocompleteField/AutocompleteFieldHook.js +27 -81
- package/dist/esm/components/organisms/AutocompleteField/AutocompleteFieldHook.js.map +1 -1
- package/dist/esm/components/organisms/Card/Card.css +5 -5
- package/dist/esm/components/organisms/Confirmation/Confirmation.css +38 -38
- package/dist/esm/components/organisms/DateField/DateField.css +15 -15
- package/dist/esm/components/organisms/DateField/DateField.d.ts +2 -2
- package/dist/esm/components/organisms/DateField/DateField.js +28 -16
- package/dist/esm/components/organisms/DateField/DateField.js.map +1 -1
- package/dist/esm/components/organisms/DatePicker/DatePicker.css +27 -24
- package/dist/esm/components/organisms/DatePicker/DatePicker.d.ts +2 -2
- package/dist/esm/components/organisms/DatePicker/DatePicker.js +38 -56
- package/dist/esm/components/organisms/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/organisms/DateRangeField/DateRangeField.css +13 -15
- package/dist/esm/components/organisms/DateRangeField/DateRangeField.js +5 -5
- package/dist/esm/components/organisms/DateRangeField/DateRangeField.js.map +1 -1
- package/dist/esm/components/organisms/DateRangePicker/DateRangePicker.css +20 -20
- package/dist/esm/components/organisms/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/dist/esm/components/organisms/DateRangePicker/DateRangePicker.js +16 -36
- package/dist/esm/components/organisms/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/esm/components/organisms/FormNavigation/FormNavigation.css +15 -14
- package/dist/esm/components/organisms/Modal/Modal.css +11 -11
- package/dist/esm/components/organisms/SelectField/SelectField.css +1 -1
- package/dist/esm/components/organisms/SelectField/SelectField.d.ts +1 -1
- package/dist/esm/components/organisms/SelectField/SelectField.js +1 -1
- package/dist/esm/components/organisms/SelectField/SelectField.js.map +1 -1
- package/dist/esm/components/organisms/SelectField/SelectFieldHook.d.ts +1 -1
- package/dist/esm/components/organisms/SelectField/SelectFieldHook.js +18 -35
- package/dist/esm/components/organisms/SelectField/SelectFieldHook.js.map +1 -1
- package/dist/esm/components/organisms/Snackbar/Snackbar.css +26 -26
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.js +2 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/constants/picker.constant.d.ts +1 -0
- package/dist/esm/constants/picker.constant.js +2 -0
- package/dist/esm/constants/picker.constant.js.map +1 -0
- package/dist/esm/helpers/date-range-picker.d.ts +1 -12
- package/dist/esm/helpers/date-range-picker.js +5 -105
- package/dist/esm/helpers/date-range-picker.js.map +1 -1
- package/dist/esm/helpers/index.d.ts +2 -0
- package/dist/esm/helpers/index.js +3 -0
- package/dist/esm/helpers/index.js.map +1 -0
- package/dist/esm/hooks/ListControlHook.d.ts +2 -3
- package/dist/esm/hooks/ListControlHook.js +22 -92
- package/dist/esm/hooks/ListControlHook.js.map +1 -1
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.js.map +1 -1
- package/package.json +7 -6
- package/dist/esm/helpers/date-picker.d.ts +0 -1
- package/dist/esm/helpers/date-picker.js +0 -5
- package/dist/esm/helpers/date-picker.js.map +0 -1
- package/dist/esm/helpers/day-picker.d.ts +0 -9
- package/dist/esm/helpers/day-picker.js +0 -84
- package/dist/esm/helpers/day-picker.js.map +0 -1
- package/dist/esm/helpers/month-picker.d.ts +0 -14
- package/dist/esm/helpers/month-picker.js +0 -78
- package/dist/esm/helpers/month-picker.js.map +0 -1
- package/dist/esm/helpers/year-picker.d.ts +0 -17
- package/dist/esm/helpers/year-picker.js +0 -83
- package/dist/esm/helpers/year-picker.js.map +0 -1
- package/dist/esm/models.d.ts +0 -58
- package/dist/esm/models.js +0 -9
- package/dist/esm/models.js.map +0 -1
- package/dist/esm/types.d.ts +0 -12
- package/dist/esm/types.js +0 -7
- package/dist/esm/types.js.map +0 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
.rls-day-picker {
|
|
2
|
-
--pvt-span-nothover-background: transparent;
|
|
3
|
-
--pvt-span-nothover-font-color: inherit;
|
|
4
2
|
--pvt-span-background: transparent;
|
|
3
|
+
--pvt-span-font-color: var(--rls-app-color-500);
|
|
4
|
+
--pvt-span-border: var(--rls-border-1) solid transparent;
|
|
5
5
|
position: relative;
|
|
6
|
-
float: left;
|
|
7
6
|
width: 100%;
|
|
8
7
|
max-width: 140rem;
|
|
9
8
|
box-sizing: border-box;
|
|
@@ -11,56 +10,69 @@
|
|
|
11
10
|
}
|
|
12
11
|
.rls-day-picker__header {
|
|
13
12
|
display: flex;
|
|
14
|
-
margin-bottom: var(--sizing-x4);
|
|
15
|
-
background: var(--background-
|
|
16
|
-
color: var(--color-
|
|
17
|
-
border-radius: var(--sizing-x2);
|
|
13
|
+
margin-bottom: var(--rls-sizing-x4);
|
|
14
|
+
background: var(--rls-app-background-100);
|
|
15
|
+
color: var(--rls-app-color-500);
|
|
16
|
+
border-radius: var(--rls-sizing-x2);
|
|
18
17
|
}
|
|
19
18
|
.rls-day-picker__label {
|
|
20
|
-
padding: var(--sizing-x6) 0rem;
|
|
19
|
+
padding: var(--rls-sizing-x6) 0rem;
|
|
21
20
|
text-align: center;
|
|
22
21
|
width: 100%;
|
|
23
|
-
font-size: var(--sizing-x6);
|
|
24
|
-
font-weight: var(--font-weight-bold);
|
|
22
|
+
font-size: var(--rls-sizing-x6);
|
|
23
|
+
font-weight: var(--rls-font-weight-bold);
|
|
25
24
|
}
|
|
26
25
|
.rls-day-picker__week {
|
|
27
26
|
display: flex;
|
|
28
27
|
}
|
|
29
28
|
.rls-day-picker__day {
|
|
30
29
|
text-align: center;
|
|
31
|
-
padding: var(--sizing-x1);
|
|
30
|
+
padding: var(--rls-sizing-x1);
|
|
32
31
|
box-sizing: border-box;
|
|
33
32
|
}
|
|
34
33
|
.rls-day-picker__day__span {
|
|
35
34
|
position: relative;
|
|
36
35
|
display: block;
|
|
37
|
-
color: var(--color-theme-500);
|
|
38
|
-
border-radius: var(--sizing-x4);
|
|
39
|
-
height: var(--sizing-x18);
|
|
40
|
-
line-height: var(--sizing-x18);
|
|
41
|
-
margin: var(--sizing-x1) 0rem;
|
|
42
36
|
font-size: 7rem;
|
|
43
|
-
font-weight: var(--font-weight-semibold);
|
|
44
|
-
|
|
37
|
+
font-weight: var(--rls-font-weight-semibold);
|
|
38
|
+
margin: var(--rls-sizing-x1) 0rem;
|
|
39
|
+
border-radius: var(--rls-sizing-x4);
|
|
40
|
+
height: var(--rls-sizing-x18);
|
|
41
|
+
line-height: var(--rls-sizing-x18);
|
|
42
|
+
box-sizing: border-box;
|
|
45
43
|
}
|
|
46
44
|
.rls-day-picker__day__span:not(:hover) {
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
color: var(--pvt-span-font-color);
|
|
46
|
+
border: var(--pvt-span-border);
|
|
47
|
+
background: var(--pvt-span-background);
|
|
49
48
|
}
|
|
50
49
|
.rls-day-picker__day__span:hover {
|
|
51
|
-
background: var(--color-
|
|
52
|
-
color: var(--
|
|
50
|
+
background: var(--rls-theme-color-900);
|
|
51
|
+
color: var(--rls-theme-font-900);
|
|
52
|
+
border: var(--rls-theme-border-1-900);
|
|
53
|
+
}
|
|
54
|
+
.rls-day-picker__day--today {
|
|
55
|
+
--pvt-span-background: transparent;
|
|
56
|
+
--pvt-span-font-color: var(--rls-theme-color-500);
|
|
57
|
+
--pvt-span-border: var(--rls-theme-border-1-500);
|
|
53
58
|
}
|
|
54
59
|
.rls-day-picker__day--selected {
|
|
55
|
-
--pvt-span-
|
|
56
|
-
|
|
60
|
+
--pvt-span-border: var(--rls-app-border-1-300);
|
|
61
|
+
}
|
|
62
|
+
.rls-day-picker__day--focused {
|
|
63
|
+
--pvt-span-background: var(--rls-theme-color-500);
|
|
64
|
+
--pvt-span-font-color: var(--rls-theme-font-500);
|
|
65
|
+
--pvt-span-border: var(--rls-theme-border-1-500);
|
|
57
66
|
}
|
|
58
67
|
.rls-day-picker__day--forbidden {
|
|
59
|
-
--pvt-span-background: var(--background-
|
|
68
|
+
--pvt-span-background: var(--rls-app-background-300);
|
|
69
|
+
--pvt-span-font-color: var(--rls-app-color-100);
|
|
70
|
+
--pvt-span-border: var(--rls-border-1) solid var(--rls-app-background-300);
|
|
60
71
|
pointer-events: none;
|
|
61
|
-
opacity: 0.5;
|
|
62
72
|
}
|
|
63
73
|
.rls-day-picker__day--disabled {
|
|
74
|
+
--pvt-span-background: transparent;
|
|
75
|
+
--pvt-span-font-color: var(--rls-app-color-100);
|
|
76
|
+
--pvt-span-border: var(--rls-border-1) solid transparent;
|
|
64
77
|
pointer-events: none;
|
|
65
|
-
opacity: 0.5;
|
|
66
78
|
}
|
|
@@ -6,8 +6,10 @@ interface DayPickerProps extends RlsComponent {
|
|
|
6
6
|
disabled?: boolean;
|
|
7
7
|
formControl?: ReactControl<HTMLElement, number>;
|
|
8
8
|
maxDate?: Date;
|
|
9
|
+
month?: Nulleable<number>;
|
|
9
10
|
minDate?: Date;
|
|
10
11
|
onValue?: (value: number) => void;
|
|
12
|
+
year?: Nulleable<number>;
|
|
11
13
|
}
|
|
12
|
-
export declare function RlsDayPicker({ date, disabled: disabledPicker, formControl, maxDate, minDate, rlsTheme,
|
|
14
|
+
export declare function RlsDayPicker({ date, disabled: disabledPicker, formControl, maxDate, month, minDate, onValue, rlsTheme, year }: DayPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
13
15
|
export {};
|
|
@@ -1,42 +1,50 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { itIsDefined } from '@rolster/helpers-advanced';
|
|
3
|
+
import { checkDayPicker, createDayPicker } from '@rolster/helpers-components';
|
|
2
4
|
import { DAY_LABELS } from '@rolster/helpers-date';
|
|
3
5
|
import { useEffect, useState } from 'react';
|
|
4
6
|
import { renderClassStatus } from '../../../helpers/css';
|
|
5
|
-
import { createDayPicker } from '../../../helpers/day-picker';
|
|
6
7
|
import './DayPicker.css';
|
|
7
|
-
export function RlsDayPicker({ date, disabled: disabledPicker, formControl, maxDate, minDate, rlsTheme,
|
|
8
|
-
const
|
|
9
|
-
const initialDay = formControl?.state || initialDate.getDate();
|
|
8
|
+
export function RlsDayPicker({ date, disabled: disabledPicker, formControl, maxDate, month, minDate, onValue, rlsTheme, year }) {
|
|
9
|
+
const currentDate = date || new Date(); // Initial date
|
|
10
10
|
const [weeks, setWeeks] = useState([]);
|
|
11
|
-
const [value, setValue] = useState(
|
|
11
|
+
const [value, setValue] = useState(formControl?.state || currentDate.getDate());
|
|
12
12
|
useEffect(() => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const props = createPickerProps();
|
|
14
|
+
const day = checkDayPicker(props);
|
|
15
|
+
day ? setDayValue(day) : setWeeks(createDayPicker(props));
|
|
16
|
+
}, [date, month, year, value, minDate, maxDate]);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const day = checkDayPicker(createPickerProps());
|
|
19
|
+
day
|
|
20
|
+
? formControl?.setState(day)
|
|
21
|
+
: setValue(formControl?.state || currentDate.getDate());
|
|
22
|
+
}, [formControl?.state]);
|
|
23
|
+
function createPickerProps() {
|
|
24
|
+
return {
|
|
25
|
+
date: currentDate,
|
|
26
|
+
day: formControl?.state || value,
|
|
27
|
+
month: itIsDefined(month) ? month : currentDate.getMonth(),
|
|
28
|
+
year: year || currentDate.getFullYear(),
|
|
16
29
|
minDate,
|
|
17
30
|
maxDate
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
}, [date]);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function setDayValue(value) {
|
|
34
|
+
formControl ? formControl.setState(value) : setValue(value);
|
|
35
|
+
}
|
|
25
36
|
function onChange(value) {
|
|
26
|
-
|
|
27
|
-
formControl?.setState(value);
|
|
37
|
+
setDayValue(value);
|
|
28
38
|
if (onValue) {
|
|
29
39
|
onValue(value);
|
|
30
40
|
}
|
|
31
41
|
}
|
|
32
|
-
return (_jsxs("div", { className: "rls-day-picker", "rls-theme": rlsTheme, children: [_jsx("div", { className: "rls-day-picker__header", children: DAY_LABELS().map((title, index) => (_jsx("label", { className: "rls-day-picker__label", children: title }, index))) }), _jsx("div", { className: "rls-day-picker__component", children: weeks.map(({ days }, index) => (_jsx("div", { className: "rls-day-picker__week", children: days.map(({ value, disabled, forbidden, selected }, index) => (_jsx("div", { className: renderClassStatus('rls-day-picker__day', {
|
|
42
|
+
return (_jsxs("div", { className: "rls-day-picker", "rls-theme": rlsTheme, children: [_jsx("div", { className: "rls-day-picker__header", children: DAY_LABELS().map((title, index) => (_jsx("label", { className: "rls-day-picker__label", children: title }, index))) }), _jsx("div", { className: "rls-day-picker__component", children: weeks.map(({ days }, index) => (_jsx("div", { className: "rls-day-picker__week", children: days.map(({ value, disabled, focused, forbidden, selected, today }, index) => (_jsx("div", { className: renderClassStatus('rls-day-picker__day', {
|
|
33
43
|
disabled: disabled || disabledPicker,
|
|
44
|
+
focused,
|
|
34
45
|
forbidden,
|
|
35
|
-
selected
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
onChange(value);
|
|
39
|
-
}
|
|
40
|
-
}, children: _jsx("span", { className: "rls-day-picker__day__span", children: value || '??' }) }, index))) }, index))) })] }));
|
|
46
|
+
selected,
|
|
47
|
+
today
|
|
48
|
+
}), onClick: value && !disabledPicker ? () => onChange(value) : undefined, children: _jsx("span", { className: "rls-day-picker__day__span", children: value || '??' }) }, index))) }, index))) })] }));
|
|
41
49
|
}
|
|
42
50
|
//# sourceMappingURL=DayPicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DayPicker.js","sourceRoot":"","sources":["../../../../../src/components/molecules/DayPicker/DayPicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DayPicker.js","sourceRoot":"","sources":["../../../../../src/components/molecules/DayPicker/DayPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,72 +7,72 @@
|
|
|
7
7
|
width: 100%;
|
|
8
8
|
max-width: 140rem;
|
|
9
9
|
flex-direction: column;
|
|
10
|
-
row-gap: var(--sizing-x4);
|
|
10
|
+
row-gap: var(--rls-sizing-x4);
|
|
11
11
|
box-sizing: border-box;
|
|
12
12
|
user-select: none;
|
|
13
13
|
}
|
|
14
14
|
.rls-day-range-picker__title {
|
|
15
|
-
color: var(--color-
|
|
15
|
+
color: var(--rls-theme-color-500);
|
|
16
16
|
text-align: center;
|
|
17
|
-
padding: var(--sizing-x4) 0rem;
|
|
18
|
-
font-size: var(--subtitle-font-size);
|
|
19
|
-
letter-spacing: var(--subtitle-letter-spacing);
|
|
20
|
-
line-height: var(--subtitle-line-height);
|
|
21
|
-
font-weight: var(--font-weight-bold);
|
|
17
|
+
padding: var(--rls-sizing-x4) 0rem;
|
|
18
|
+
font-size: var(--rls-subtitle-font-size);
|
|
19
|
+
letter-spacing: var(--rls-subtitle-letter-spacing);
|
|
20
|
+
line-height: var(--rls-subtitle-line-height);
|
|
21
|
+
font-weight: var(--rls-font-weight-bold);
|
|
22
22
|
}
|
|
23
23
|
.rls-day-range-picker__header {
|
|
24
24
|
display: flex;
|
|
25
|
-
background: var(--background-
|
|
26
|
-
color: var(--color-
|
|
27
|
-
border-radius: var(--sizing-x2);
|
|
25
|
+
background: var(--rls-app-background-100);
|
|
26
|
+
color: var(--rls-app-color-500);
|
|
27
|
+
border-radius: var(--rls-sizing-x2);
|
|
28
28
|
}
|
|
29
29
|
.rls-day-range-picker__label {
|
|
30
|
-
padding: var(--sizing-x6) 0rem;
|
|
30
|
+
padding: var(--rls-sizing-x6) 0rem;
|
|
31
31
|
text-align: center;
|
|
32
32
|
width: 100%;
|
|
33
|
-
font-size: var(--sizing-x6);
|
|
34
|
-
font-weight: var(--font-weight-bold);
|
|
33
|
+
font-size: var(--rls-sizing-x6);
|
|
34
|
+
font-weight: var(--rls-font-weight-bold);
|
|
35
35
|
}
|
|
36
36
|
.rls-day-range-picker__week {
|
|
37
37
|
display: flex;
|
|
38
38
|
}
|
|
39
39
|
.rls-day-range-picker__day {
|
|
40
40
|
text-align: center;
|
|
41
|
-
padding: var(--sizing-x1);
|
|
41
|
+
padding: var(--rls-sizing-x1);
|
|
42
42
|
box-sizing: border-box;
|
|
43
43
|
}
|
|
44
44
|
.rls-day-range-picker__day__span {
|
|
45
45
|
position: relative;
|
|
46
46
|
display: block;
|
|
47
|
-
color: var(--color-
|
|
48
|
-
border-radius: var(--sizing-x4);
|
|
49
|
-
height: var(--sizing-x18);
|
|
50
|
-
line-height: var(--sizing-x18);
|
|
51
|
-
margin: var(--sizing-x1) 0rem;
|
|
47
|
+
color: var(--rls-app-color-500);
|
|
48
|
+
border-radius: var(--rls-sizing-x4);
|
|
49
|
+
height: var(--rls-sizing-x18);
|
|
50
|
+
line-height: var(--rls-sizing-x18);
|
|
51
|
+
margin: var(--rls-sizing-x1) 0rem;
|
|
52
52
|
font-size: 7rem;
|
|
53
|
-
font-weight: var(--font-weight-semibold);
|
|
53
|
+
font-weight: var(--rls-font-weight-semibold);
|
|
54
54
|
}
|
|
55
55
|
.rls-day-range-picker__day__span:not(:hover) {
|
|
56
56
|
background: var(--pvt-span-nothover-background);
|
|
57
57
|
color: var(--pvt-span-nothover-font-color);
|
|
58
58
|
}
|
|
59
59
|
.rls-day-range-picker__day__span:hover {
|
|
60
|
-
color: var(--
|
|
61
|
-
background: var(--color-
|
|
60
|
+
color: var(--rls-light-color-500);
|
|
61
|
+
background: var(--rls-theme-color-900);
|
|
62
62
|
}
|
|
63
63
|
.rls-day-range-picker__day--end {
|
|
64
|
-
--pvt-span-nothover-background: var(--color-
|
|
65
|
-
--pvt-span-nothover-font-color: var(--background-
|
|
64
|
+
--pvt-span-nothover-background: var(--rls-app-color-500);
|
|
65
|
+
--pvt-span-nothover-font-color: var(--rls-app-background-500);
|
|
66
66
|
}
|
|
67
67
|
.rls-day-range-picker__day--source {
|
|
68
|
-
--pvt-span-nothover-background: var(--color-
|
|
69
|
-
--pvt-span-nothover-font-color: var(--
|
|
68
|
+
--pvt-span-nothover-background: var(--rls-theme-color-500);
|
|
69
|
+
--pvt-span-nothover-font-color: var(--rls-light-color-500);
|
|
70
70
|
}
|
|
71
71
|
.rls-day-range-picker__day--ranged {
|
|
72
|
-
--pvt-span-nothover-background: var(--color-
|
|
72
|
+
--pvt-span-nothover-background: var(--rls-theme-color-100);
|
|
73
73
|
}
|
|
74
74
|
.rls-day-range-picker__day--forbidden {
|
|
75
|
-
--pvt-span-background: var(--background-
|
|
75
|
+
--pvt-span-background: var(--rls-app-background-100);
|
|
76
76
|
pointer-events: none;
|
|
77
77
|
opacity: 0.5;
|
|
78
78
|
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { createDayRangePicker } from '@rolster/helpers-components';
|
|
3
|
+
import { DAY_LABELS, DateRange, assignDayInDate, dateFormatTemplate, dateIsBefore, normalizeMinTime } from '@rolster/helpers-date';
|
|
3
4
|
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
import { DATE_RANGE_FORMAT } from '../../../constants';
|
|
4
6
|
import { renderClassStatus } from '../../../helpers/css';
|
|
5
|
-
import { DATE_RANGE_FORMAT, createRangePicker } from '../../../helpers/date-range-picker';
|
|
6
7
|
import './DayRangePicker.css';
|
|
7
8
|
export function RlsDayRangePicker({ date, disabled: disabledPicker, formControl, maxDate, minDate, rlsTheme }) {
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const sourceDate = useRef(
|
|
9
|
+
const currentRange = formControl?.state || DateRange.now();
|
|
10
|
+
const currentDate = normalizeMinTime(date || currentRange.minDate);
|
|
11
|
+
const sourceDate = useRef(currentRange.minDate);
|
|
11
12
|
const [weeks, setWeeks] = useState([]);
|
|
12
|
-
const [range, setRange] = useState(
|
|
13
|
+
const [range, setRange] = useState(currentRange);
|
|
13
14
|
useEffect(() => {
|
|
14
|
-
setWeeks(
|
|
15
|
-
date:
|
|
15
|
+
setWeeks(createDayRangePicker({
|
|
16
|
+
date: currentDate,
|
|
16
17
|
range,
|
|
17
18
|
sourceDate: sourceDate.current,
|
|
18
19
|
minDate,
|
|
@@ -20,24 +21,20 @@ export function RlsDayRangePicker({ date, disabled: disabledPicker, formControl,
|
|
|
20
21
|
}));
|
|
21
22
|
}, [range, date, minDate, maxDate]);
|
|
22
23
|
function onChange(value) {
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
? new DateRange(sourceDate.current,
|
|
26
|
-
: new DateRange(
|
|
27
|
-
sourceDate.current =
|
|
28
|
-
setRange(
|
|
29
|
-
formControl?.setState(
|
|
24
|
+
const date = assignDayInDate(currentDate, value);
|
|
25
|
+
const range = dateIsBefore(date, sourceDate.current)
|
|
26
|
+
? new DateRange(sourceDate.current, date)
|
|
27
|
+
: new DateRange(date, sourceDate.current);
|
|
28
|
+
sourceDate.current = date;
|
|
29
|
+
setRange(range);
|
|
30
|
+
formControl?.setState(range);
|
|
30
31
|
}
|
|
31
|
-
return (_jsxs("div", { className: "rls-day-range-picker", "rls-theme": rlsTheme, children: [_jsx("div", { className: "rls-day-range-picker__title", children:
|
|
32
|
+
return (_jsxs("div", { className: "rls-day-range-picker", "rls-theme": rlsTheme, children: [_jsx("div", { className: "rls-day-range-picker__title", children: dateFormatTemplate(sourceDate.current, DATE_RANGE_FORMAT) }), _jsx("div", { className: "rls-day-range-picker__header", children: DAY_LABELS().map((title, index) => (_jsx("label", { className: "rls-day-range-picker__label", children: title }, index))) }), _jsx("div", { className: "rls-day-range-picker__component", children: weeks.map(({ days }, index) => (_jsx("div", { className: "rls-day-range-picker__week", children: days.map(({ disabled, end, forbidden, source, ranged, value }, index) => (_jsx("div", { className: renderClassStatus('rls-day-range-picker__day', {
|
|
32
33
|
disabled: disabled || disabledPicker,
|
|
33
34
|
end,
|
|
34
35
|
forbidden,
|
|
35
36
|
ranged,
|
|
36
37
|
source
|
|
37
|
-
}), onClick: () => {
|
|
38
|
-
if (value && !disabled) {
|
|
39
|
-
onChange(value);
|
|
40
|
-
}
|
|
41
|
-
}, children: _jsx("span", { className: "rls-day-range-picker__day__span", children: value || '??' }) }, index))) }, index))) })] }));
|
|
38
|
+
}), onClick: value && !disabledPicker ? () => onChange(value) : undefined, children: _jsx("span", { className: "rls-day-range-picker__day__span", children: value || '??' }) }, index))) }, index))) })] }));
|
|
42
39
|
}
|
|
43
40
|
//# sourceMappingURL=DayRangePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DayRangePicker.js","sourceRoot":"","sources":["../../../../../src/components/molecules/DayRangePicker/DayRangePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"DayRangePicker.js","sourceRoot":"","sources":["../../../../../src/components/molecules/DayRangePicker/DayRangePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,55 @@
|
|
|
1
1
|
.rls-month-picker {
|
|
2
|
+
--pvt-component-background: transparent;
|
|
3
|
+
--pvt-component-font-color: var(--rls-app-color-500);
|
|
4
|
+
--pvt-component-border: var(--rls-border-1) solid transparent;
|
|
2
5
|
position: relative;
|
|
3
|
-
float: left;
|
|
4
|
-
width: 100%;
|
|
5
|
-
max-width: 140rem;
|
|
6
6
|
display: grid;
|
|
7
7
|
grid-template-columns: repeat(3, 1fr);
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
width: 100%;
|
|
9
|
+
max-width: 140rem;
|
|
10
|
+
column-gap: var(--rls-sizing-x2);
|
|
11
|
+
row-gap: var(--rls-sizing-x4);
|
|
12
|
+
padding: var(--rls-sizing-x1);
|
|
10
13
|
box-sizing: border-box;
|
|
11
14
|
}
|
|
12
15
|
.rls-month-picker__component {
|
|
13
16
|
position: relative;
|
|
14
|
-
float: left;
|
|
15
17
|
display: flex;
|
|
16
18
|
box-sizing: border-box;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
justify-content: center;
|
|
20
|
+
align-items: center;
|
|
21
|
+
height: var(--rls-sizing-x20);
|
|
22
|
+
border-radius: var(--rls-sizing-x4);
|
|
23
|
+
box-sizing: border-box;
|
|
24
|
+
}
|
|
25
|
+
.rls-month-picker__component:not(:hover) {
|
|
26
|
+
color: var(--pvt-component-font-color);
|
|
27
|
+
border: var(--pvt-component-border);
|
|
28
|
+
background: var(--pvt-component-background);
|
|
21
29
|
}
|
|
22
30
|
.rls-month-picker__component:hover {
|
|
23
|
-
background: var(--color-
|
|
24
|
-
color: var(--
|
|
31
|
+
background: var(--rls-theme-color-900);
|
|
32
|
+
color: var(--rls-theme-font-900);
|
|
33
|
+
border: var(--rls-theme-border-1-900);
|
|
34
|
+
}
|
|
35
|
+
.rls-month-picker__component--selected {
|
|
36
|
+
--pvt-component-border: var(--rls-app-border-1-300);
|
|
25
37
|
}
|
|
26
|
-
.rls-month-picker__component--
|
|
27
|
-
background: var(--color-
|
|
28
|
-
color: var(--
|
|
38
|
+
.rls-month-picker__component--focused {
|
|
39
|
+
--pvt-component-background: var(--rls-theme-color-500);
|
|
40
|
+
--pvt-component-font-color: var(--rls-theme-font-500);
|
|
41
|
+
--pvt-component-border: var(--rls-theme-border-1-500);
|
|
29
42
|
}
|
|
30
43
|
.rls-month-picker__component--disabled {
|
|
44
|
+
--pvt-component-background: transparent;
|
|
45
|
+
--pvt-component-font-color: var(--rls-app-color-100);
|
|
46
|
+
--pvt-component-border: var(--rls-border-1) solid transparent;
|
|
31
47
|
pointer-events: none;
|
|
32
|
-
opacity: 0.5;
|
|
33
48
|
}
|
|
34
49
|
.rls-month-picker__span {
|
|
35
|
-
font-
|
|
36
|
-
|
|
50
|
+
font-weight: var(--rls-font-weight-semibold);
|
|
51
|
+
font-size: 6rem;
|
|
37
52
|
cursor: default;
|
|
38
53
|
pointer-events: none;
|
|
39
|
-
|
|
54
|
+
letter-spacing: 0.25rem;
|
|
40
55
|
}
|
|
@@ -8,6 +8,7 @@ interface MonthPickerProps extends RlsComponent {
|
|
|
8
8
|
maxDate?: Date;
|
|
9
9
|
minDate?: Date;
|
|
10
10
|
onValue?: (value: number) => void;
|
|
11
|
+
year?: Nulleable<number>;
|
|
11
12
|
}
|
|
12
|
-
export declare function RlsMonthPicker({
|
|
13
|
+
export declare function RlsMonthPicker({ date, disabled: disabledPicker, formControl, maxDate, minDate, onValue, rlsTheme, year }: MonthPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
13
14
|
export {};
|
|
@@ -1,35 +1,46 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { itIsDefined } from '@rolster/helpers-advanced';
|
|
3
|
+
import { checkMonthPicker, createMonthPicker } from '@rolster/helpers-components';
|
|
2
4
|
import { useEffect, useState } from 'react';
|
|
3
|
-
import { createMonthPicker } from '../../../helpers/month-picker';
|
|
4
5
|
import { renderClassStatus } from '../../../helpers/css';
|
|
5
6
|
import './MonthPicker.css';
|
|
6
|
-
export function RlsMonthPicker({
|
|
7
|
-
const
|
|
8
|
-
const initialMonth = formControl?.state || initialDate.getMonth();
|
|
7
|
+
export function RlsMonthPicker({ date, disabled: disabledPicker, formControl, maxDate, minDate, onValue, rlsTheme, year }) {
|
|
8
|
+
const currentDate = date || new Date();
|
|
9
9
|
const [months, setMonths] = useState([]);
|
|
10
|
-
const [value, setValue] = useState(
|
|
10
|
+
const [value, setValue] = useState(formControl?.state || currentDate.getMonth());
|
|
11
11
|
useEffect(() => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const props = createPickerProps(); // MonthPickerProps
|
|
13
|
+
const month = checkMonthPicker(props);
|
|
14
|
+
month ? setMonthValue(month) : setMonths(createMonthPicker(props));
|
|
15
|
+
}, [date, year, value, minDate, maxDate]);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const month = checkMonthPicker(createPickerProps());
|
|
18
|
+
itIsDefined(month)
|
|
19
|
+
? formControl?.setState(month)
|
|
20
|
+
: setValue(formControl?.state || currentDate.getMonth());
|
|
21
|
+
}, [formControl?.state]);
|
|
22
|
+
function createPickerProps() {
|
|
23
|
+
return {
|
|
24
|
+
date: currentDate,
|
|
25
|
+
month: itIsDefined(formControl?.state) ? formControl?.state : value,
|
|
26
|
+
year: year || currentDate.getFullYear(),
|
|
15
27
|
minDate,
|
|
16
28
|
maxDate
|
|
17
|
-
}
|
|
18
|
-
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function setMonthValue(value) {
|
|
32
|
+
formControl ? formControl.setState(value) : setValue(value);
|
|
33
|
+
}
|
|
19
34
|
function onChange(value) {
|
|
20
|
-
|
|
21
|
-
setValue(value);
|
|
35
|
+
setMonthValue(value);
|
|
22
36
|
if (onValue) {
|
|
23
37
|
onValue(value);
|
|
24
38
|
}
|
|
25
39
|
}
|
|
26
|
-
return (_jsx("div", { className: "rls-month-picker", "rls-theme": rlsTheme, children: months.map(({ label, value, disabled, selected }, index) => (_jsx("div", { className: renderClassStatus('rls-month-picker__component', {
|
|
27
|
-
disabled: disabled || disabledPicker
|
|
40
|
+
return (_jsx("div", { className: "rls-month-picker", "rls-theme": rlsTheme, children: months.map(({ label, value, disabled, focused, selected }, index) => (_jsx("div", { className: renderClassStatus('rls-month-picker__component', {
|
|
41
|
+
disabled: disabled || disabledPicker,
|
|
42
|
+
focused,
|
|
28
43
|
selected
|
|
29
|
-
}), onClick: () => {
|
|
30
|
-
if (!disabled) {
|
|
31
|
-
onChange(value);
|
|
32
|
-
}
|
|
33
|
-
}, children: _jsx("span", { className: "rls-month-picker__span", children: label }) }, index))) }));
|
|
44
|
+
}), onClick: !(disabled || disabledPicker) ? () => onChange(value) : undefined, children: _jsx("span", { className: "rls-month-picker__span", children: label }) }, index))) }));
|
|
34
45
|
}
|
|
35
46
|
//# sourceMappingURL=MonthPicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthPicker.js","sourceRoot":"","sources":["../../../../../src/components/molecules/MonthPicker/MonthPicker.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"MonthPicker.js","sourceRoot":"","sources":["../../../../../src/components/molecules/MonthPicker/MonthPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
justify-content: space-between;
|
|
4
4
|
}
|
|
5
5
|
.rls-month-title-picker span {
|
|
6
|
-
color: var(--color-
|
|
6
|
+
color: var(--rls-app-color-300);
|
|
7
7
|
cursor: default;
|
|
8
8
|
margin: auto 0rem;
|
|
9
|
-
height: var(--sizing-x14);
|
|
10
|
-
line-height: var(--sizing-x14);
|
|
11
|
-
font-size: var(--sizing-x10);
|
|
12
|
-
font-weight: var(--font-weight-bold);
|
|
9
|
+
height: var(--rls-sizing-x14);
|
|
10
|
+
line-height: var(--rls-sizing-x14);
|
|
11
|
+
font-size: var(--rls-sizing-x10);
|
|
12
|
+
font-weight: var(--rls-font-weight-bold);
|
|
13
13
|
}
|
|
14
14
|
.rls-month-title-picker span:hover {
|
|
15
|
-
color: var(--color-
|
|
15
|
+
color: var(--rls-theme-color-500);
|
|
16
16
|
}
|
|
@@ -11,5 +11,5 @@ interface MonthTitlePickerProps {
|
|
|
11
11
|
minDate?: Date;
|
|
12
12
|
onClick?: () => void;
|
|
13
13
|
}
|
|
14
|
-
export declare function RlsMonthTitlePicker({
|
|
14
|
+
export declare function RlsMonthTitlePicker({ monthControl, type, yearControl, date, disabled, maxDate, minDate, onClick }: MonthTitlePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
export {};
|