@via-profit/ui-kit 0.2.1-alpha.1 → 0.2.2
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/Autocomplete/AutocompleteContainer.d.ts +33 -6
- package/Autocomplete/AutocompleteContainer.js +48 -36
- package/Autocomplete/AutocompleteItem.d.ts +1 -1
- package/Autocomplete/AutocompleteTextField.d.ts +3 -0
- package/Autocomplete/AutocompleteTextField.js +63 -1
- package/Autocomplete/OverrideMenuList.d.ts +4 -0
- package/Autocomplete/OverrideMenuList.js +39 -0
- package/Autocomplete/context.d.ts +9 -1
- package/Autocomplete/context.js +15 -1
- package/Autocomplete/index.js +9 -10
- package/Autocomplete2/Autocomplete2.d.ts +12 -0
- package/Autocomplete2/Autocomplete2.js +83 -0
- package/Autocomplete2/Autocomplete2TextField.d.ts +7 -0
- package/Autocomplete2/Autocomplete2TextField.js +39 -0
- package/Autocomplete2/index.d.ts +2 -0
- package/Autocomplete2/index.js +7 -0
- package/Avatar/index.js +1 -1
- package/Badge/BadgeDeleteButton.js +6 -6
- package/Badge/BadgeOutlined.js +2 -2
- package/Badge/BadgeStandard.js +1 -1
- package/Button/ButtonOutlined.js +1 -1
- package/Button/ButtonPlain.js +1 -1
- package/Button/ButtonStandard.js +4 -11
- package/Calendar/CalendarCell.js +6 -2
- package/Calendar/CalendarComponent.d.ts +226 -0
- package/Calendar/CalendarComponent.js +572 -0
- package/Calendar/CalendarControlButton.js +16 -9
- package/Calendar/CalendarDayBadge.js +1 -1
- package/Calendar/CalendarEmptyCell.d.ts +2 -2
- package/Calendar/CalendarEmptyCell.js +8 -3
- package/Calendar/CalendarHeading.js +2 -1
- package/Calendar/CalendarSubheading.js +3 -2
- package/Calendar/CalendarWeekDayCell.d.ts +10 -0
- package/Calendar/CalendarWeekDayCell.js +32 -0
- package/Calendar/CalendarWeekDayWeekNumber.d.ts +7 -0
- package/Calendar/CalendarWeekDayWeekNumber.js +38 -0
- package/Calendar/CalendarWeekRow.d.ts +2 -2
- package/Calendar/CalendarWeekRow.js +2 -1
- package/Calendar/CalendarWeekRowButton.d.ts +13 -0
- package/Calendar/CalendarWeekRowButton.js +31 -0
- package/Calendar/CalendarYearsSelector.d.ts +39 -1
- package/Calendar/CalendarYearsSelector.js +52 -16
- package/Calendar/IconChevronDown.d.ts +3 -0
- package/Calendar/IconChevronDown.js +31 -0
- package/Calendar/index.d.ts +7 -224
- package/Calendar/index.js +19 -281
- package/Calendar/use-calendar.d.ts +1 -1
- package/Color/Color.d.ts +138 -0
- package/Color/Color.js +324 -0
- package/Color/ColorGenerator.d.ts +29 -0
- package/Color/ColorGenerator.js +141 -0
- package/Color/ColorParser.d.ts +20 -0
- package/Color/ColorParser.js +284 -0
- package/Color/index.d.ts +4 -122
- package/Color/index.js +18 -473
- package/CountryFlags/SwiperOverview.d.ts +257 -0
- package/CountryFlags/SwiperOverview.js +524 -0
- package/DatePicker/index.d.ts +2 -17
- package/DatePicker/index.js +47 -61
- package/DatePicker/useDatePickerFormat.js +5 -5
- package/ErrorBoundary/Fallback.d.ts +3 -0
- package/ErrorBoundary/Fallback.js +51 -0
- package/ErrorBoundary/RenderError.d.ts +6 -0
- package/ErrorBoundary/RenderError.js +80 -0
- package/ErrorBoundary/index.d.ts +7 -11
- package/ErrorBoundary/index.js +4 -51
- package/LoadingIndicator/Spinner.d.ts +5 -3
- package/LoadingIndicator/Spinner.js +61 -32
- package/LoadingIndicator/index.d.ts +3 -3
- package/LoadingIndicator/index.js +15 -2
- package/MaskedField/index.d.ts +2 -1
- package/MaskedField/index.js +52 -43
- package/MaskedField/useMasked.js +7 -5
- package/Menu/AutoHeightWrapper.d.ts +6 -0
- package/Menu/AutoHeightWrapper.js +43 -0
- package/Menu/MeasuredItem.d.ts +10 -0
- package/Menu/MeasuredItem.js +51 -0
- package/Menu/MenuContainer.d.ts +51 -18
- package/Menu/MenuContainer.js +19 -12
- package/Menu/MenuItem.d.ts +24 -7
- package/Menu/MenuItem.js +13 -6
- package/Menu/MenuList.d.ts +4 -2
- package/Menu/MenuList.js +26 -6
- package/Menu/VirtualizedItem.d.ts +22 -0
- package/Menu/VirtualizedItem.js +69 -0
- package/Menu/VirtualizedList.d.ts +18 -0
- package/Menu/VirtualizedList.js +28 -0
- package/Menu/VirtualizedListComponent.d.ts +20 -0
- package/Menu/VirtualizedListComponent.js +305 -0
- package/Menu/index.d.ts +3 -1
- package/Menu/index.js +2 -0
- package/Popper/Popper.d.ts +7 -80
- package/Popper/Popper.js +26 -12
- package/Popper/PopperContainer.js +1 -1
- package/Popper/usePopprer.d.ts +88 -3
- package/Popper/usePopprer.js +240 -65
- package/Selectbox/SelectboxButton.d.ts +5 -0
- package/Selectbox/SelectboxButton.js +48 -8
- package/Selectbox/SelectboxButtonWrapper.d.ts +2 -0
- package/Selectbox/SelectboxButtonWrapper.js +1 -17
- package/Selectbox/SelectboxMenu.d.ts +12 -0
- package/Selectbox/SelectboxMenu.js +50 -0
- package/Selectbox/index.d.ts +5 -5
- package/Selectbox/index.js +115 -97
- package/Surface/index.js +1 -1
- package/Swiper/Swiper.d.ts +57 -0
- package/Swiper/Swiper.js +412 -0
- package/Swiper/SwiperContainer.d.ts +7 -0
- package/Swiper/SwiperContainer.js +15 -0
- package/Swiper/SwiperSlide.d.ts +12 -0
- package/Swiper/SwiperSlide.js +58 -0
- package/Swiper/SwiperSlidesRenderer.d.ts +11 -0
- package/Swiper/SwiperSlidesRenderer.js +74 -0
- package/Swiper/SwiperTrack.d.ts +18 -0
- package/Swiper/SwiperTrack.js +55 -0
- package/Swiper/SwiperWrapper.d.ts +16 -0
- package/Swiper/SwiperWrapper.js +60 -0
- package/Swiper/index.d.ts +7 -0
- package/Swiper/index.js +26 -0
- package/Switch/SwitchDot.js +1 -1
- package/Switch/SwitchTrack.js +1 -1
- package/TextField/TextFieldContainer.d.ts +2 -2
- package/TextField/TextFieldContainer.js +5 -3
- package/TextField/TextFieldErrorText.d.ts +2 -2
- package/TextField/TextFieldErrorText.js +5 -4
- package/TextField/TextFieldIconWrapper.d.ts +3 -3
- package/TextField/TextFieldIconWrapper.js +5 -3
- package/TextField/TextFieldInput.d.ts +2 -2
- package/TextField/TextFieldInput.js +6 -4
- package/TextField/TextFieldInputWrapper.d.ts +2 -2
- package/TextField/TextFieldInputWrapper.js +5 -3
- package/TextField/TextFieldLabel.d.ts +2 -2
- package/TextField/TextFieldLabel.js +5 -3
- package/TextField/TextFieldLabelAsterisk.d.ts +2 -2
- package/TextField/TextFieldLabelAsterisk.js +5 -3
- package/TextField/index.d.ts +8 -1
- package/TextField/index.js +49 -22
- package/ThemeProvider/createTheme.js +2 -2
- package/package.json +1 -1
- package/Calendar/reducer.d.ts +0 -17
- package/Calendar/reducer.js +0 -50
- /package/Calendar/{IconChevronRight.d.ts → CalendarIconNext.d.ts} +0 -0
- /package/Calendar/{IconChevronRight.js → CalendarIconNext.js} +0 -0
package/Calendar/index.js
CHANGED
|
@@ -10,6 +10,18 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
13
25
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
26
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
27
|
};
|
|
@@ -17,285 +29,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
29
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
30
|
};
|
|
19
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const CalendarDateContainer_1 = __importDefault(require("./CalendarDateContainer"));
|
|
28
|
-
const CalendarToolbar_1 = __importDefault(require("./CalendarToolbar"));
|
|
29
|
-
const CalendarYearsSelector_1 = __importDefault(require("./CalendarYearsSelector"));
|
|
30
|
-
const CalendarMonthsSelector_1 = __importDefault(require("./CalendarMonthsSelector"));
|
|
31
|
-
const CalendarMonthCell_1 = __importDefault(require("./CalendarMonthCell"));
|
|
32
|
-
const CalendarYearCell_1 = __importDefault(require("./CalendarYearCell"));
|
|
33
|
-
const CalendarDayBadge_1 = __importDefault(require("./CalendarDayBadge"));
|
|
34
|
-
const CalendarFooter_1 = __importDefault(require("./CalendarFooter"));
|
|
35
|
-
const CalendarControlButton_1 = __importDefault(require("./CalendarControlButton"));
|
|
36
|
-
const CalendarHeading_1 = __importDefault(require("./CalendarHeading"));
|
|
37
|
-
const CalendarSubheading_1 = __importDefault(require("./CalendarSubheading"));
|
|
38
|
-
const CalendarIconPrev_1 = __importDefault(require("./CalendarIconPrev"));
|
|
39
|
-
const IconChevronRight_1 = __importDefault(require("./IconChevronRight"));
|
|
40
|
-
const CalendarWeekDaysBar_1 = __importDefault(require("./CalendarWeekDaysBar"));
|
|
41
|
-
const use_calendar_1 = require("./use-calendar");
|
|
42
|
-
const reducer_1 = require("./reducer");
|
|
43
|
-
__exportStar(require("./use-calendar"), exports);
|
|
44
|
-
__exportStar(require("./CalendarWeekDaysBar"), exports);
|
|
45
|
-
const Calendar = (props) => {
|
|
46
|
-
const { minDate = new Date(new Date().getFullYear() - 100, 0, 1, 0, 0, 0), maxDate = new Date(new Date().getFullYear() + 100, 0, 1, 0, 0, 0), weekStartDay = 'monday', locale = 'ru-RU', displayLeadingZero = false, onChange, badges = [], value, defaultValue, markToday, weekDayLabelFormat = 'short', accentColor = 'primary', prevMonthButtonTooltip, nextMonthButtonTooltip, changeMonthButtonTooltip, changeYearButtonTooltip, initialView, views, resetButtonLabel, todayButtonLabel, heading, subheading, footer, overrides, range = false, } = props;
|
|
47
|
-
if (typeof value !== 'undefined' && typeof onChange === 'undefined') {
|
|
48
|
-
throw new Error('You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange`.');
|
|
49
|
-
}
|
|
50
|
-
const overridesMap = react_1.default.useMemo(() => ({
|
|
51
|
-
Body: (overrides === null || overrides === void 0 ? void 0 : overrides.Body) || CalendarBody_1.default,
|
|
52
|
-
Cell: (overrides === null || overrides === void 0 ? void 0 : overrides.Cell) || CalendarCell_1.default,
|
|
53
|
-
EmptyCell: (overrides === null || overrides === void 0 ? void 0 : overrides.EmptyCell) || CalendarEmptyCell_1.default,
|
|
54
|
-
Paper: (overrides === null || overrides === void 0 ? void 0 : overrides.Paper) || CalendarPaper_1.default,
|
|
55
|
-
Header: (overrides === null || overrides === void 0 ? void 0 : overrides.Header) || CalendarHeader_1.default,
|
|
56
|
-
WeekRow: (overrides === null || overrides === void 0 ? void 0 : overrides.WeekRow) || CalendarWeekRow_1.default,
|
|
57
|
-
DateContainer: (overrides === null || overrides === void 0 ? void 0 : overrides.DateContainer) || CalendarDateContainer_1.default,
|
|
58
|
-
Toolbar: (overrides === null || overrides === void 0 ? void 0 : overrides.Toolbar) || CalendarToolbar_1.default,
|
|
59
|
-
YearsSelector: (overrides === null || overrides === void 0 ? void 0 : overrides.YearsSelector) || CalendarYearsSelector_1.default,
|
|
60
|
-
MonthsSelector: (overrides === null || overrides === void 0 ? void 0 : overrides.MonthsSelector) || CalendarMonthsSelector_1.default,
|
|
61
|
-
MonthCell: (overrides === null || overrides === void 0 ? void 0 : overrides.MonthCell) || CalendarMonthCell_1.default,
|
|
62
|
-
YearCell: (overrides === null || overrides === void 0 ? void 0 : overrides.YearCell) || CalendarYearCell_1.default,
|
|
63
|
-
DayBadge: (overrides === null || overrides === void 0 ? void 0 : overrides.DayBadge) || CalendarDayBadge_1.default,
|
|
64
|
-
Footer: (overrides === null || overrides === void 0 ? void 0 : overrides.Footer) || CalendarFooter_1.default,
|
|
65
|
-
ControlButton: (overrides === null || overrides === void 0 ? void 0 : overrides.ControlButton) || CalendarControlButton_1.default,
|
|
66
|
-
Heading: (overrides === null || overrides === void 0 ? void 0 : overrides.Heading) || CalendarHeading_1.default,
|
|
67
|
-
Subheading: (overrides === null || overrides === void 0 ? void 0 : overrides.Subheading) || CalendarSubheading_1.default,
|
|
68
|
-
IconPrev: (overrides === null || overrides === void 0 ? void 0 : overrides.IconPrev) || CalendarIconPrev_1.default,
|
|
69
|
-
IconNext: (overrides === null || overrides === void 0 ? void 0 : overrides.IconNext) || IconChevronRight_1.default,
|
|
70
|
-
WeekDaysBar: (overrides === null || overrides === void 0 ? void 0 : overrides.WeekDaysBar) || CalendarWeekDaysBar_1.default,
|
|
71
|
-
}), [overrides]);
|
|
72
|
-
const realValue = react_1.default.useMemo(() => typeof value !== 'undefined'
|
|
73
|
-
? value
|
|
74
|
-
: typeof defaultValue !== 'undefined'
|
|
75
|
-
? defaultValue
|
|
76
|
-
: new Date(), [value, defaultValue]);
|
|
77
|
-
const initialProps = react_1.default.useRef({
|
|
78
|
-
value: realValue,
|
|
79
|
-
badges,
|
|
80
|
-
initialView,
|
|
81
|
-
views,
|
|
82
|
-
});
|
|
83
|
-
const initialState = Object.assign(Object.assign({}, (0, reducer_1.createDefaultState)(range, {
|
|
84
|
-
initialView,
|
|
85
|
-
views,
|
|
86
|
-
})), { calendarValue: realValue, calendarDate: Array.isArray(realValue) ? realValue[0] : realValue });
|
|
87
|
-
const [state, dispatch] = react_1.default.useReducer(reducer_1.reducer, initialState);
|
|
88
|
-
const { isSameDay, getWeeks, getDayLabel, getMonthLabel, getYearLabel, getYearsRange, getMonthsRange, } = (0, use_calendar_1.useCalendar)({
|
|
89
|
-
minDate,
|
|
90
|
-
maxDate,
|
|
91
|
-
weekStartDay,
|
|
92
|
-
locale,
|
|
93
|
-
displayLeadingZero,
|
|
94
|
-
});
|
|
95
|
-
const { calendarCurrentView, calendarViewVariants, calendarValue, calendarDate } = state;
|
|
96
|
-
/**
|
|
97
|
-
* Prev and next month buttons
|
|
98
|
-
*/
|
|
99
|
-
const handleChangeMonthClick = react_1.default.useCallback((type) => () => {
|
|
100
|
-
const newDate = type === 'prev'
|
|
101
|
-
? new Date(calendarDate.getFullYear(), calendarDate.getMonth() - 1, 1)
|
|
102
|
-
: new Date(calendarDate.getFullYear(), calendarDate.getMonth() + 1, 1);
|
|
103
|
-
dispatch({ type: 'setPartial', payload: { calendarDate: newDate } });
|
|
104
|
-
}, [calendarDate]);
|
|
105
|
-
/**
|
|
106
|
-
* Date props was changed
|
|
107
|
-
*/
|
|
108
|
-
react_1.default.useEffect(() => {
|
|
109
|
-
if (typeof value !== 'undefined') {
|
|
110
|
-
dispatch({
|
|
111
|
-
type: 'setPartial',
|
|
112
|
-
payload: {
|
|
113
|
-
calendarValue: value,
|
|
114
|
-
// calendarDate: Array.isArray(value) ? value[0] : value,
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}, [value, calendarValue, isSameDay, dispatch]);
|
|
119
|
-
/**
|
|
120
|
-
* Handles click on a day cell.
|
|
121
|
-
* Range selection follows a simple two‑click model:
|
|
122
|
-
* 1) First click sets the start date.
|
|
123
|
-
* 2) Second click sets the end date.
|
|
124
|
-
* If a full range is already selected, a new click starts a new range.
|
|
125
|
-
*/
|
|
126
|
-
const handleCellDateClick = react_1.default.useCallback((selectedDate) => () => {
|
|
127
|
-
if (!onChange) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
// Single-date mode
|
|
131
|
-
if (!range) {
|
|
132
|
-
onChange(selectedDate);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
const [from, to] = calendarValue;
|
|
136
|
-
// No range selected yet → first click
|
|
137
|
-
if (!from && !to) {
|
|
138
|
-
onChange([selectedDate, selectedDate]);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
// Only start date selected → second click
|
|
142
|
-
if (from && (!to || from.getTime() === to.getTime())) {
|
|
143
|
-
if (selectedDate < from) {
|
|
144
|
-
// User clicked before the start → swap
|
|
145
|
-
onChange([selectedDate, from]);
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
// Normal forward range
|
|
149
|
-
onChange([from, selectedDate]);
|
|
150
|
-
}
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
// Full range already selected → start a new range
|
|
154
|
-
onChange([selectedDate, selectedDate]);
|
|
155
|
-
}, [onChange, calendarValue, range]);
|
|
156
|
-
/**
|
|
157
|
-
* Handle of click on year item
|
|
158
|
-
*/
|
|
159
|
-
const handleYearSelected = react_1.default.useCallback((selectedYear) => () => {
|
|
160
|
-
const newDate = new Date(calendarDate);
|
|
161
|
-
newDate.setFullYear(selectedYear);
|
|
162
|
-
newDate.setMonth(calendarDate.getMonth());
|
|
163
|
-
newDate.setDate(1);
|
|
164
|
-
newDate.setHours(0);
|
|
165
|
-
newDate.setMinutes(0);
|
|
166
|
-
newDate.setMilliseconds(0);
|
|
167
|
-
const nextView = calendarViewVariants.includes('days') ? 'days' : undefined;
|
|
168
|
-
dispatch({
|
|
169
|
-
type: 'setPartial',
|
|
170
|
-
payload: {
|
|
171
|
-
calendarDate: newDate,
|
|
172
|
-
calendarCurrentView: nextView !== null && nextView !== void 0 ? nextView : calendarCurrentView,
|
|
173
|
-
},
|
|
174
|
-
});
|
|
175
|
-
if (!nextView && typeof onChange === 'function') {
|
|
176
|
-
handleCellDateClick(newDate)();
|
|
177
|
-
}
|
|
178
|
-
}, [calendarCurrentView, calendarDate, calendarViewVariants, handleCellDateClick, onChange]);
|
|
179
|
-
/**
|
|
180
|
-
* Handle of click on month item
|
|
181
|
-
*/
|
|
182
|
-
const handleMonthSelected = react_1.default.useCallback((monthIndex) => () => {
|
|
183
|
-
const newDate = new Date(calendarDate);
|
|
184
|
-
newDate.setMonth(monthIndex);
|
|
185
|
-
newDate.setDate(1);
|
|
186
|
-
newDate.setHours(0);
|
|
187
|
-
newDate.setMinutes(0);
|
|
188
|
-
newDate.setMilliseconds(0);
|
|
189
|
-
const nextView = calendarViewVariants.includes('days') ? 'days' : undefined;
|
|
190
|
-
dispatch({
|
|
191
|
-
type: 'setPartial',
|
|
192
|
-
payload: {
|
|
193
|
-
calendarDate: newDate,
|
|
194
|
-
calendarCurrentView: nextView !== null && nextView !== void 0 ? nextView : calendarCurrentView,
|
|
195
|
-
},
|
|
196
|
-
});
|
|
197
|
-
if (!nextView && typeof onChange === 'function') {
|
|
198
|
-
handleCellDateClick(newDate)();
|
|
199
|
-
}
|
|
200
|
-
}, [calendarDate, calendarViewVariants, handleCellDateClick, onChange, calendarCurrentView]);
|
|
201
|
-
/**
|
|
202
|
-
* Manual view changing
|
|
203
|
-
*/
|
|
204
|
-
const handleChangeView = react_1.default.useCallback((selectedView) => () => {
|
|
205
|
-
if (!calendarViewVariants.includes(selectedView)) {
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
dispatch({
|
|
209
|
-
type: 'setPartial',
|
|
210
|
-
payload: {
|
|
211
|
-
calendarCurrentView: selectedView,
|
|
212
|
-
},
|
|
213
|
-
});
|
|
214
|
-
}, [calendarViewVariants]);
|
|
215
|
-
/**
|
|
216
|
-
* Handle click on «Reset» button
|
|
217
|
-
*/
|
|
218
|
-
const handleReset = react_1.default.useCallback(() => {
|
|
219
|
-
dispatch({
|
|
220
|
-
type: 'setPartial',
|
|
221
|
-
payload: {
|
|
222
|
-
calendarCurrentView: initialProps.current.initialView,
|
|
223
|
-
calendarDate: initialProps.current.value,
|
|
224
|
-
calendarValue: initialProps.current.value,
|
|
225
|
-
},
|
|
226
|
-
});
|
|
227
|
-
if (typeof onChange === 'function') {
|
|
228
|
-
onChange(initialProps.current.value);
|
|
229
|
-
}
|
|
230
|
-
}, [onChange]);
|
|
231
|
-
/**
|
|
232
|
-
* Handle click on «Today» button
|
|
233
|
-
*/
|
|
234
|
-
const handleToday = react_1.default.useCallback(() => {
|
|
235
|
-
const today = new Date();
|
|
236
|
-
today.setHours(0);
|
|
237
|
-
today.setMinutes(0);
|
|
238
|
-
today.setSeconds(0);
|
|
239
|
-
today.setMilliseconds(0);
|
|
240
|
-
dispatch({
|
|
241
|
-
type: 'setPartial',
|
|
242
|
-
payload: {
|
|
243
|
-
calendarDate: today,
|
|
244
|
-
},
|
|
245
|
-
});
|
|
246
|
-
}, []);
|
|
247
|
-
const weeks = react_1.default.useMemo(() => (calendarCurrentView === 'days' ? getWeeks(calendarDate) : []), [calendarCurrentView, calendarDate, getWeeks]);
|
|
248
|
-
const yearsRange = react_1.default.useMemo(() => (calendarCurrentView === 'years' ? getYearsRange(minDate, maxDate) : []), [calendarCurrentView, minDate, maxDate, getYearsRange]);
|
|
249
|
-
const monthsRange = react_1.default.useMemo(() => (calendarCurrentView === 'months' ? getMonthsRange(minDate, maxDate) : []), [calendarCurrentView, minDate, maxDate, getMonthsRange]);
|
|
250
|
-
const normalizedRange = react_1.default.useMemo(() => {
|
|
251
|
-
const [from, to] = Array.isArray(calendarValue)
|
|
252
|
-
? calendarValue[0].getTime() <= calendarValue[1].getTime()
|
|
253
|
-
? calendarValue
|
|
254
|
-
: [calendarValue[1], calendarValue[0]]
|
|
255
|
-
: [calendarValue, calendarValue];
|
|
256
|
-
return [from, to];
|
|
257
|
-
}, [calendarValue]);
|
|
258
|
-
return (react_1.default.createElement(overridesMap.Paper, null,
|
|
259
|
-
react_1.default.createElement(overridesMap.Header, null,
|
|
260
|
-
typeof heading !== 'undefined' && react_1.default.createElement(overridesMap.Heading, null, heading),
|
|
261
|
-
typeof subheading !== 'undefined' && (react_1.default.createElement(overridesMap.Subheading, null, subheading)),
|
|
262
|
-
react_1.default.createElement(overridesMap.Toolbar, null,
|
|
263
|
-
react_1.default.createElement(overridesMap.ControlButton, { iconOnly: true, onClick: handleChangeMonthClick('prev'), title: prevMonthButtonTooltip, disabled: calendarCurrentView !== 'days' },
|
|
264
|
-
react_1.default.createElement(overridesMap.IconPrev, null)),
|
|
265
|
-
react_1.default.createElement(overridesMap.ControlButton, { title: changeMonthButtonTooltip, isActive: calendarCurrentView === 'months', disabled: !calendarViewVariants.includes('months'), onClick: handleChangeView(calendarCurrentView === 'months' ? 'days' : 'months') }, getMonthLabel(calendarDate)),
|
|
266
|
-
react_1.default.createElement(overridesMap.ControlButton, { isActive: calendarCurrentView === 'years', disabled: !calendarViewVariants.includes('years'), title: changeYearButtonTooltip, onClick: handleChangeView(calendarCurrentView === 'years' ? 'days' : 'years') }, getYearLabel(calendarDate)),
|
|
267
|
-
react_1.default.createElement(overridesMap.ControlButton, { iconOnly: true, onClick: handleChangeMonthClick('next'), title: nextMonthButtonTooltip, disabled: calendarCurrentView !== 'days' },
|
|
268
|
-
react_1.default.createElement(overridesMap.IconNext, null)))),
|
|
269
|
-
calendarCurrentView === 'days' && (react_1.default.createElement(overridesMap.WeekDaysBar, { locale: locale, week: weeks[0], format: weekDayLabelFormat || 'short' })),
|
|
270
|
-
react_1.default.createElement(overridesMap.Body, null,
|
|
271
|
-
calendarCurrentView === 'years' && (react_1.default.createElement(overridesMap.YearsSelector, null, yearsRange.map(year => {
|
|
272
|
-
const isSelected = calendarDate.getFullYear() === year;
|
|
273
|
-
return (react_1.default.createElement(overridesMap.YearCell, { key: year, accentColor: accentColor, isSelected: isSelected, onClick: handleYearSelected(year) }, getYearLabel(new Date(year, calendarDate.getMonth(), calendarDate.getDate(), 0, 0, 0, 0))));
|
|
274
|
-
}))),
|
|
275
|
-
calendarCurrentView === 'months' && (react_1.default.createElement(overridesMap.MonthsSelector, null, monthsRange.map(monthIndex => {
|
|
276
|
-
const isSelected = calendarDate.getMonth() === monthIndex;
|
|
277
|
-
return (react_1.default.createElement(overridesMap.MonthCell, { key: monthIndex + monthsRange[monthIndex], accentColor: accentColor, isSelected: isSelected, onClick: handleMonthSelected(monthIndex) }, getMonthLabel(new Date(calendarDate.getFullYear(), monthIndex, 1, 0, 0, 0, 0))));
|
|
278
|
-
}))),
|
|
279
|
-
calendarCurrentView === 'days' && (react_1.default.createElement(overridesMap.DateContainer, null, getWeeks(calendarDate).map(week => (react_1.default.createElement(overridesMap.WeekRow, { key: week.weekNumber }, week.days.map(day => {
|
|
280
|
-
if (day.date.getMonth() === calendarDate.getMonth()) {
|
|
281
|
-
const badge = badges.find(b => isSameDay(b.date, day.date));
|
|
282
|
-
// Normalize range order
|
|
283
|
-
const [from, to] = normalizedRange;
|
|
284
|
-
const fill = Array.isArray(calendarValue) &&
|
|
285
|
-
day.date.getTime() >= from.getTime() &&
|
|
286
|
-
day.date.getTime() <= to.getTime();
|
|
287
|
-
const isSelected = isSameDay(from, day.date) || isSameDay(to, day.date);
|
|
288
|
-
return (react_1.default.createElement(overridesMap.Cell, { key: day.date.getTime(), isToday: markToday && day.isToday, isDisabled: day.isDisabled, accentColor: accentColor, isSelected: isSelected, fill: fill, onClick: handleCellDateClick(day.date) },
|
|
289
|
-
getDayLabel(day.date),
|
|
290
|
-
badge && (react_1.default.createElement(overridesMap.DayBadge, { badgeContent: badge.badgeContent, isToday: day.isToday, accentColor: badge.accentColor }))));
|
|
291
|
-
}
|
|
292
|
-
return react_1.default.createElement(overridesMap.EmptyCell, { key: day.date.getTime() });
|
|
293
|
-
}))))))),
|
|
294
|
-
(typeof resetButtonLabel !== 'undefined' ||
|
|
295
|
-
typeof todayButtonLabel !== 'undefined' ||
|
|
296
|
-
typeof footer !== 'undefined') && (react_1.default.createElement(overridesMap.Footer, null,
|
|
297
|
-
typeof footer !== 'undefined' && react_1.default.createElement(react_1.default.Fragment, null, footer),
|
|
298
|
-
typeof todayButtonLabel !== 'undefined' && (react_1.default.createElement(overridesMap.ControlButton, { onClick: handleToday }, todayButtonLabel)),
|
|
299
|
-
typeof resetButtonLabel !== 'undefined' && (react_1.default.createElement(overridesMap.ControlButton, { onClick: handleReset }, resetButtonLabel))))));
|
|
300
|
-
};
|
|
32
|
+
const React = __importStar(require("react"));
|
|
33
|
+
const CalendarComponent_1 = require("./CalendarComponent");
|
|
34
|
+
const ErrorBoundary_1 = __importDefault(require("../ErrorBoundary"));
|
|
35
|
+
__exportStar(require("./CalendarComponent"), exports);
|
|
36
|
+
const Calendar = React.forwardRef((props, ref) => (React.createElement(ErrorBoundary_1.default, null,
|
|
37
|
+
React.createElement(CalendarComponent_1.CalendarComponent, Object.assign({}, props, { ref: ref })))));
|
|
38
|
+
Calendar.displayName = 'Calendar';
|
|
301
39
|
exports.default = Calendar;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type CalendarValue<
|
|
1
|
+
export type CalendarValue<Range> = Range extends undefined ? Date | null : [Date, Date] | [Date | null] | null;
|
|
2
2
|
export type WeekDayName = 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday';
|
|
3
3
|
export type Day = {
|
|
4
4
|
readonly date: Date;
|
package/Color/Color.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { ParsedColor } from './ColorParser';
|
|
2
|
+
import { ColorGenerator } from './ColorGenerator';
|
|
3
|
+
export type ColorFormat = 'rgb' | 'rgba' | 'hex' | 'hsl' | 'hsla';
|
|
4
|
+
export declare class Color {
|
|
5
|
+
private readonly _r;
|
|
6
|
+
private readonly _g;
|
|
7
|
+
private readonly _b;
|
|
8
|
+
private readonly _a;
|
|
9
|
+
get r(): number;
|
|
10
|
+
get g(): number;
|
|
11
|
+
get b(): number;
|
|
12
|
+
get a(): number;
|
|
13
|
+
private constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Создает цвет из строкового представления
|
|
16
|
+
*/
|
|
17
|
+
static fromString(value: string): Color;
|
|
18
|
+
/**
|
|
19
|
+
* Создает цвет из RGB компонентов
|
|
20
|
+
*/
|
|
21
|
+
static fromRgb(r: number, g: number, b: number, a?: number): Color;
|
|
22
|
+
/**
|
|
23
|
+
* Создает цвет из HEX строки
|
|
24
|
+
*/
|
|
25
|
+
static fromHex(hex: string): Color;
|
|
26
|
+
/**
|
|
27
|
+
* Создает цвет из HSL строки
|
|
28
|
+
*/
|
|
29
|
+
static fromHsl(hsl: string): Color;
|
|
30
|
+
/**
|
|
31
|
+
* Создает цвет из UUID (использует генератор)
|
|
32
|
+
*/
|
|
33
|
+
static fromUuid(uuid: string, palette?: keyof typeof ColorGenerator.getPalettes): Color;
|
|
34
|
+
/**
|
|
35
|
+
* Создает цвет из строки с хешированием
|
|
36
|
+
*/
|
|
37
|
+
static fromHashString(str: string): Color;
|
|
38
|
+
/**
|
|
39
|
+
* Возвращает новый цвет, осветленный на указанное количество единиц
|
|
40
|
+
*/
|
|
41
|
+
lighten(units: number): Color;
|
|
42
|
+
/**
|
|
43
|
+
* Возвращает новый цвет, затемненный на указанное количество единиц
|
|
44
|
+
*/
|
|
45
|
+
darken(units: number): Color;
|
|
46
|
+
/**
|
|
47
|
+
* Изменяет яркость цвета путем умножения каждого канала на коэффициент
|
|
48
|
+
* @param lum - Коэффициент изменения яркости (от -1 до 1, где отрицательные значения затемняют, положительные - осветляют)
|
|
49
|
+
* @returns Новый объект Color с измененной яркостью
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const color = Color.fromString('#ff0000');
|
|
54
|
+
* const lighter = color.luminance(0.2); // на 20% светлее
|
|
55
|
+
* const darker = color.luminance(-0.2); // на 20% темнее
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
luminance(lum: number): Color;
|
|
59
|
+
/**
|
|
60
|
+
* Возвращает новый цвет с измененной яркостью (процентное изменение)
|
|
61
|
+
*/
|
|
62
|
+
adjustBrightness(percent: number): Color;
|
|
63
|
+
/**
|
|
64
|
+
* Возвращает новый цвет с измененным альфа-каналом
|
|
65
|
+
*/
|
|
66
|
+
alpha(value: number): Color;
|
|
67
|
+
/**
|
|
68
|
+
* Возвращает относительную яркость цвета (luminance)
|
|
69
|
+
*/
|
|
70
|
+
getLuminance(): number;
|
|
71
|
+
/**
|
|
72
|
+
* Возвращает контраст между текущим цветом и переданным
|
|
73
|
+
*/
|
|
74
|
+
getContrast(other: Color | string): number;
|
|
75
|
+
/**
|
|
76
|
+
* Проверяет, достаточно ли контрастен цвет для белого текста
|
|
77
|
+
*/
|
|
78
|
+
isLight(): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Возвращает наиболее контрастный цвет (черный или белый)
|
|
81
|
+
*/
|
|
82
|
+
getContrastColor(): Color;
|
|
83
|
+
/**
|
|
84
|
+
* Возвращает новый цвет, смешанный с другим цветом
|
|
85
|
+
*/
|
|
86
|
+
mix(other: Color | string, weight?: number): Color;
|
|
87
|
+
/**
|
|
88
|
+
* Возвращает цвет в разных форматах
|
|
89
|
+
*/
|
|
90
|
+
toString(format?: ColorFormat): string;
|
|
91
|
+
toRgbString(includeAlpha?: boolean): string;
|
|
92
|
+
toHexString(includeAlpha?: boolean): string;
|
|
93
|
+
toHslString(includeAlpha?: boolean): string;
|
|
94
|
+
/**
|
|
95
|
+
* Возвращает HSL представление цвета
|
|
96
|
+
*/
|
|
97
|
+
toHsl(): [number, number, number];
|
|
98
|
+
private clamp;
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated Use {@link Color.toRgbString} instead
|
|
101
|
+
*/
|
|
102
|
+
rgbString(): string;
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated Use {@link Color.toHslString} instead
|
|
105
|
+
*/
|
|
106
|
+
hslString(): string;
|
|
107
|
+
/**
|
|
108
|
+
* @deprecated Use {@link Color.toHexString} instead
|
|
109
|
+
*/
|
|
110
|
+
hexString(): string;
|
|
111
|
+
/**
|
|
112
|
+
* @deprecated Use getters `color.r`, `color.g`, `color.b`, `color.a` instead.
|
|
113
|
+
* This method will be removed in future versions.
|
|
114
|
+
*
|
|
115
|
+
* @returns {ParsedColor} Object with r, g, b, a properties
|
|
116
|
+
*/
|
|
117
|
+
rgb(): ParsedColor;
|
|
118
|
+
/**
|
|
119
|
+
* @deprecated Use {@Link Color.fromString} or {@Link ColorParser.parse} instead.
|
|
120
|
+
*/
|
|
121
|
+
static parseColor(value: string): ParsedColor;
|
|
122
|
+
/**
|
|
123
|
+
* @deprecated Use {@Link Color.fromHsl} or ColorParser.parse() instead.
|
|
124
|
+
*/
|
|
125
|
+
static hslToRgb(value: string): ParsedColor;
|
|
126
|
+
/**
|
|
127
|
+
* @deprecated Use {@Link Color.fromString} with named colors instead.
|
|
128
|
+
*/
|
|
129
|
+
static getHextByWebColor(value: string): string | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* @deprecated Do not use.
|
|
132
|
+
*/
|
|
133
|
+
static intToRGB(i: number): string;
|
|
134
|
+
/**
|
|
135
|
+
* @deprecated Use {@Link Color.fromUuid}
|
|
136
|
+
*/
|
|
137
|
+
static uuidToColor(uuid: string): Color;
|
|
138
|
+
}
|