colibri-ui 0.7.110 → 0.7.112
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/Avatar/Avatar.module.css +1 -1
- package/Calendar/components/Month/Month.d.ts +2 -0
- package/Calendar/components/Month/Month.js +1 -1
- package/Calendar/components/Month/index.module.css +1 -1
- package/Calendar/index.d.ts +2 -18
- package/Calendar/index.js +28 -18
- package/Calendar/index.module.css +2 -7
- package/Calendar/index.props.d.ts +21 -0
- package/Checkbox/Checkbox.module.css +2 -2
- package/Datepicker/Datepicker.module.css +5 -0
- package/Datepicker/components/DatePicker/index.d.ts +7 -0
- package/Datepicker/components/DatePicker/index.js +52 -0
- package/Datepicker/components/DatePicker/index.module.css +33 -0
- package/Datepicker/components/TimePicker/Label/index.d.ts +8 -0
- package/Datepicker/components/TimePicker/Label/index.js +23 -0
- package/Datepicker/components/TimePicker/helpers.d.ts +12 -0
- package/Datepicker/components/TimePicker/helpers.js +41 -0
- package/Datepicker/components/TimePicker/index.d.ts +9 -0
- package/Datepicker/components/TimePicker/index.js +80 -0
- package/Datepicker/components/TimePicker/index.module.css +67 -0
- package/Datepicker/index.d.ts +8 -0
- package/Datepicker/index.js +31 -0
- package/Datepicker/package.json +6 -0
- package/Dropdown/index.js +25 -18
- package/Dropdown/index.props.d.ts +2 -0
- package/Menu/components/MenuItem/MenuItem.module.css +5 -5
- package/Menu/components/MenuItem/index.js +1 -1
- package/Select/index.d.ts +1 -1
- package/Select/index.js +5 -2
- package/Select/index.module.css +1 -1
- package/Select/index.props.d.ts +2 -0
- package/TimeSelect/index.d.ts +1 -1
- package/esm/Avatar/Avatar.module.css +1 -1
- package/esm/Calendar/components/Month/Month.d.ts +2 -0
- package/esm/Calendar/components/Month/Month.js +1 -1
- package/esm/Calendar/components/Month/index.module.css +1 -1
- package/esm/Calendar/index.d.ts +2 -18
- package/esm/Calendar/index.js +28 -18
- package/esm/Calendar/index.module.css +2 -7
- package/esm/Calendar/index.props.d.ts +21 -0
- package/esm/Checkbox/Checkbox.module.css +2 -2
- package/esm/Datepicker/Datepicker.module.css +5 -0
- package/esm/Datepicker/components/DatePicker/index.d.ts +7 -0
- package/esm/Datepicker/components/DatePicker/index.js +42 -0
- package/esm/Datepicker/components/DatePicker/index.module.css +33 -0
- package/esm/Datepicker/components/TimePicker/Label/index.d.ts +8 -0
- package/esm/Datepicker/components/TimePicker/Label/index.js +15 -0
- package/esm/Datepicker/components/TimePicker/helpers.d.ts +12 -0
- package/esm/Datepicker/components/TimePicker/helpers.js +35 -0
- package/esm/Datepicker/components/TimePicker/index.d.ts +9 -0
- package/esm/Datepicker/components/TimePicker/index.js +70 -0
- package/esm/Datepicker/components/TimePicker/index.module.css +67 -0
- package/esm/Datepicker/index.d.ts +8 -0
- package/esm/Datepicker/index.js +21 -0
- package/esm/Dropdown/index.js +25 -18
- package/esm/Dropdown/index.props.d.ts +2 -0
- package/esm/Menu/components/MenuItem/MenuItem.module.css +5 -5
- package/esm/Menu/components/MenuItem/index.js +1 -1
- package/esm/Select/index.d.ts +1 -1
- package/esm/Select/index.js +5 -2
- package/esm/Select/index.module.css +1 -1
- package/esm/Select/index.props.d.ts +2 -0
- package/esm/TimeSelect/index.d.ts +1 -1
- package/esm/helpers/date/index.d.ts +1 -0
- package/esm/helpers/date/index.js +5 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +1 -0
- package/helpers/date/index.d.ts +1 -0
- package/helpers/date/index.js +5 -0
- package/index.d.ts +1 -0
- package/index.js +55 -53
- package/package.json +1 -1
package/Dropdown/index.js
CHANGED
|
@@ -21,6 +21,7 @@ var clx = classNames__default.default.bind(styles__default.default);
|
|
|
21
21
|
var Dropdown = function Dropdown(_a) {
|
|
22
22
|
var children = _a.children,
|
|
23
23
|
zIndex = _a.zIndex,
|
|
24
|
+
fontSize = _a.fontSize,
|
|
24
25
|
disabled = _a.disabled,
|
|
25
26
|
onVisibleChange = _a.onVisibleChange,
|
|
26
27
|
overlay = _a.overlay,
|
|
@@ -34,19 +35,21 @@ var Dropdown = function Dropdown(_a) {
|
|
|
34
35
|
visibleProp = _e === void 0 ? true : _e,
|
|
35
36
|
_f = _a.preventOverflow,
|
|
36
37
|
preventOverflow = _f === void 0 ? false : _f,
|
|
37
|
-
_g = _a.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
setControlElement = _h[1];
|
|
38
|
+
_g = _a.preventAutoClose,
|
|
39
|
+
preventAutoClose = _g === void 0 ? false : _g,
|
|
40
|
+
_h = _a.samewidth,
|
|
41
|
+
samewidth = _h === void 0 ? false : _h;
|
|
42
42
|
var _j = React.useState(null),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
var _k = React.useState(
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
controlElement = _j[0],
|
|
44
|
+
setControlElement = _j[1];
|
|
45
|
+
var _k = React.useState(null),
|
|
46
|
+
popperElement = _k[0],
|
|
47
|
+
setPopperElement = _k[1];
|
|
48
|
+
var _l = React.useState(false),
|
|
49
|
+
visible = _l[0],
|
|
50
|
+
setVisible = _l[1];
|
|
48
51
|
var isVisible = visibleProp && visible && !disabled;
|
|
49
|
-
var
|
|
52
|
+
var _m = reactPopper.usePopper(controlElement, popperElement, {
|
|
50
53
|
placement: placement,
|
|
51
54
|
strategy: strategy,
|
|
52
55
|
modifiers: [{
|
|
@@ -57,9 +60,9 @@ var Dropdown = function Dropdown(_a) {
|
|
|
57
60
|
enabled: preventOverflow
|
|
58
61
|
}]
|
|
59
62
|
}),
|
|
60
|
-
styles =
|
|
61
|
-
attributes =
|
|
62
|
-
update =
|
|
63
|
+
styles = _m.styles,
|
|
64
|
+
attributes = _m.attributes,
|
|
65
|
+
update = _m.update;
|
|
63
66
|
var isNotComponent = typeof children === "string";
|
|
64
67
|
var reference = React.useMemo(function () {
|
|
65
68
|
return React.Children.only(isNotComponent ? /*#__PURE__*/React__default.default.createElement("button", null, children) : children);
|
|
@@ -80,9 +83,11 @@ var Dropdown = function Dropdown(_a) {
|
|
|
80
83
|
if (controlElement === null || controlElement === void 0 ? void 0 : controlElement.contains(e.target)) return;
|
|
81
84
|
onHide();
|
|
82
85
|
}, [onHide, controlElement]);
|
|
83
|
-
var onClickOverlay = React.useCallback(function (
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
var onClickOverlay = React.useCallback(function (event) {
|
|
87
|
+
event.stopPropagation();
|
|
88
|
+
if (!preventAutoClose) {
|
|
89
|
+
onHide();
|
|
90
|
+
}
|
|
86
91
|
}, [onHide]);
|
|
87
92
|
React.useEffect(function () {
|
|
88
93
|
var unsubscribes = [];
|
|
@@ -129,11 +134,13 @@ var Dropdown = function Dropdown(_a) {
|
|
|
129
134
|
ref: setPopperElement,
|
|
130
135
|
"data-testid": "popper-container",
|
|
131
136
|
className: clx("popper-container"),
|
|
132
|
-
style: tslib.__assign(tslib.__assign(tslib.__assign({}, styles.popper), {
|
|
137
|
+
style: tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, styles.popper), {
|
|
133
138
|
zIndex: zIndex,
|
|
134
139
|
minWidth: controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth
|
|
135
140
|
}), samewidth && {
|
|
136
141
|
maxWidth: controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth
|
|
142
|
+
}), {
|
|
143
|
+
fontSize: "".concat(fontSize, "px")
|
|
137
144
|
}),
|
|
138
145
|
tabIndex: 0
|
|
139
146
|
}, attributes.popper), /*#__PURE__*/React__default.default.createElement("div", {
|
|
@@ -5,6 +5,7 @@ export type Placement = Extract<PopperPlacement, "bottom-start" | "bottom" | "bo
|
|
|
5
5
|
export type Trigger = "click" | "hover" | "focus";
|
|
6
6
|
export type DropdownProps = {
|
|
7
7
|
zIndex?: number;
|
|
8
|
+
fontSize?: number;
|
|
8
9
|
disabled?: boolean;
|
|
9
10
|
onVisibleChange?: (visible: boolean) => void;
|
|
10
11
|
overlay: ReactNode;
|
|
@@ -13,5 +14,6 @@ export type DropdownProps = {
|
|
|
13
14
|
trigger?: [Trigger, ...Trigger[]];
|
|
14
15
|
visible?: boolean;
|
|
15
16
|
preventOverflow?: boolean;
|
|
17
|
+
preventAutoClose?: boolean;
|
|
16
18
|
samewidth?: boolean;
|
|
17
19
|
};
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
align-items: center;
|
|
3
3
|
cursor: pointer;
|
|
4
4
|
display: flex;
|
|
5
|
-
font-size:
|
|
5
|
+
font-size: 1em;
|
|
6
6
|
font-style: normal;
|
|
7
7
|
font-weight: 400;
|
|
8
8
|
justify-content: space-between;
|
|
9
|
-
line-height:
|
|
9
|
+
line-height: 1.5;
|
|
10
10
|
list-style: none;
|
|
11
11
|
padding: 8px 6px;
|
|
12
12
|
}
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
background-color: var(--palette-white);
|
|
21
21
|
}
|
|
22
22
|
.item_variant_primary:hover {
|
|
23
|
-
background-color: var(--palette-
|
|
23
|
+
background-color: var(--palette-bg-2);
|
|
24
24
|
}
|
|
25
25
|
.item_variant_primary:active {
|
|
26
|
-
background-color: var(--palette-
|
|
26
|
+
background-color: var(--palette-bg-2);
|
|
27
27
|
}
|
|
28
28
|
.item_variant_primary:focus, .item_variant_primary:focus-within {
|
|
29
|
-
background-color: var(--palette-
|
|
29
|
+
background-color: var(--palette-bg-2);
|
|
30
30
|
}
|
|
31
31
|
.item > * {
|
|
32
32
|
overflow: hidden;
|
|
@@ -26,7 +26,7 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
26
26
|
ref: ref,
|
|
27
27
|
"data-component": "menu-item",
|
|
28
28
|
style: {
|
|
29
|
-
backgroundColor: isSelected ? "var(--palette-
|
|
29
|
+
backgroundColor: isSelected ? "var(--palette-bg-2, rgb(232, 240, 254))" : ""
|
|
30
30
|
},
|
|
31
31
|
"data-testid": "menuitem",
|
|
32
32
|
className: clx("item", (_b = {
|
package/Select/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { SelectProps } from "./index.props";
|
|
3
|
-
declare const Select: <T extends string>({ options, value, name, zIndex, label, hint, error, required, placeholder, disabled, size, fullWidth, className, onChange, }: SelectProps<T>) => React.JSX.Element;
|
|
3
|
+
declare const Select: <T extends string>({ options, value, name, zIndex, fontSize, label, hint, error, required, placeholder, disabled, size, fullWidth, customInputRoot, className, onChange, }: SelectProps<T>) => React.JSX.Element;
|
|
4
4
|
export default Select;
|
package/Select/index.js
CHANGED
|
@@ -24,6 +24,7 @@ var Select = function Select(_a) {
|
|
|
24
24
|
value = _a.value,
|
|
25
25
|
name = _a.name,
|
|
26
26
|
zIndex = _a.zIndex,
|
|
27
|
+
fontSize = _a.fontSize,
|
|
27
28
|
label = _a.label,
|
|
28
29
|
hint = _a.hint,
|
|
29
30
|
error = _a.error,
|
|
@@ -34,6 +35,7 @@ var Select = function Select(_a) {
|
|
|
34
35
|
size = _c === void 0 ? "m" : _c,
|
|
35
36
|
_d = _a.fullWidth,
|
|
36
37
|
fullWidth = _d === void 0 ? false : _d,
|
|
38
|
+
customInputRoot = _a.customInputRoot,
|
|
37
39
|
className = _a.className,
|
|
38
40
|
onChange = _a.onChange;
|
|
39
41
|
var _e = React.useState(false),
|
|
@@ -72,13 +74,14 @@ var Select = function Select(_a) {
|
|
|
72
74
|
onVisibleChange: setIsOpen,
|
|
73
75
|
trigger: ["click"],
|
|
74
76
|
zIndex: zIndex,
|
|
77
|
+
fontSize: fontSize,
|
|
75
78
|
disabled: !!disabled,
|
|
76
79
|
overlay: /*#__PURE__*/React__default.default.createElement(index$2.default, {
|
|
77
80
|
options: preparedOptions,
|
|
78
81
|
onChange: onChange
|
|
79
82
|
}),
|
|
80
83
|
samewidth: true
|
|
81
|
-
}, /*#__PURE__*/React__default.default.createElement(index$3.default, {
|
|
84
|
+
}, customInputRoot ? customInputRoot : (/*#__PURE__*/React__default.default.createElement(index$3.default, {
|
|
82
85
|
error: error,
|
|
83
86
|
size: size,
|
|
84
87
|
className: clx(styles__default.default.root),
|
|
@@ -98,7 +101,7 @@ var Select = function Select(_a) {
|
|
|
98
101
|
name: name,
|
|
99
102
|
tabIndex: -1,
|
|
100
103
|
value: value || ""
|
|
101
|
-
}))));
|
|
104
|
+
})))));
|
|
102
105
|
};
|
|
103
106
|
|
|
104
107
|
exports.default = Select;
|
package/Select/index.module.css
CHANGED
package/Select/index.props.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface SelectProps<T extends string> extends Omit<FormFieldProps, "chi
|
|
|
10
10
|
options: IOption<T>[];
|
|
11
11
|
value?: T;
|
|
12
12
|
zIndex?: number;
|
|
13
|
+
fontSize?: number;
|
|
13
14
|
onChange: (value: T) => void;
|
|
14
15
|
disabled?: boolean;
|
|
15
16
|
placeholder?: string;
|
|
@@ -17,6 +18,7 @@ export interface SelectProps<T extends string> extends Omit<FormFieldProps, "chi
|
|
|
17
18
|
required?: boolean;
|
|
18
19
|
size?: Size;
|
|
19
20
|
className?: string;
|
|
21
|
+
customInputRoot?: ReactNode;
|
|
20
22
|
name?: string;
|
|
21
23
|
}
|
|
22
24
|
export type Coordinates = {
|
package/TimeSelect/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SelectProps } from "../Select/index.props";
|
|
2
2
|
import type { FC } from "react";
|
|
3
|
-
interface TimeSelectProps extends Omit<SelectProps<string>,
|
|
3
|
+
interface TimeSelectProps extends Omit<SelectProps<string>, "options"> {
|
|
4
4
|
interval?: 5 | 10 | 15 | 30;
|
|
5
5
|
currentDate?: Date | null;
|
|
6
6
|
selectedDate?: Date | null;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CalendarTitleSize } from "../../index.props";
|
|
1
2
|
import type { FunctionComponent } from "react";
|
|
2
3
|
export interface FCWithElements<T = {}> extends FunctionComponent<T> {
|
|
3
4
|
}
|
|
@@ -10,6 +11,7 @@ type Props = {
|
|
|
10
11
|
onDayClick: (date: string) => void;
|
|
11
12
|
offsetLeft: number;
|
|
12
13
|
availableDates?: string[];
|
|
14
|
+
titleSize?: CalendarTitleSize;
|
|
13
15
|
};
|
|
14
16
|
export declare const Month: FCWithElements<Props>;
|
|
15
17
|
export {};
|
|
@@ -46,7 +46,7 @@ var Month = function Month(props) {
|
|
|
46
46
|
className: clx(styles["month-name"])
|
|
47
47
|
}, /*#__PURE__*/React.createElement(Typography, {
|
|
48
48
|
tag: "span",
|
|
49
|
-
size:
|
|
49
|
+
size: props.titleSize
|
|
50
50
|
}, getUpperMonthName(props.startDate))), /*#__PURE__*/React.createElement("div", {
|
|
51
51
|
className: clx(styles.table)
|
|
52
52
|
}, /*#__PURE__*/React.createElement("ul", {
|
package/esm/Calendar/index.d.ts
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
date: string;
|
|
5
|
-
period: number;
|
|
6
|
-
};
|
|
7
|
-
type Props = {
|
|
8
|
-
today: string;
|
|
9
|
-
selectedDate?: string;
|
|
10
|
-
selectedPeriod?: number;
|
|
11
|
-
canSelectRange?: boolean;
|
|
12
|
-
activeDates?: string[];
|
|
13
|
-
datePresets?: Preset[];
|
|
14
|
-
availableDates?: string[];
|
|
15
|
-
onChange?: (payload: ChangePayload) => void;
|
|
16
|
-
onCancel?: () => void;
|
|
17
|
-
withContinueButton?: boolean;
|
|
18
|
-
};
|
|
19
|
-
declare const Calendar: React.FC<Props>;
|
|
2
|
+
import type { CalendarProps } from "./index.props";
|
|
3
|
+
declare const Calendar: React.FC<CalendarProps>;
|
|
20
4
|
export default Calendar;
|
package/esm/Calendar/index.js
CHANGED
|
@@ -26,20 +26,25 @@ var Calendar = function Calendar(_a) {
|
|
|
26
26
|
canSelectRange = _a.canSelectRange,
|
|
27
27
|
onChange = _a.onChange,
|
|
28
28
|
onCancel = _a.onCancel,
|
|
29
|
-
_b = _a.
|
|
30
|
-
|
|
29
|
+
_b = _a.minWidth,
|
|
30
|
+
minWidth = _b === void 0 ? 360 : _b,
|
|
31
|
+
_c = _a.withContinueButton,
|
|
32
|
+
withContinueButton = _c === void 0 ? false : _c,
|
|
33
|
+
className = _a.className,
|
|
34
|
+
_d = _a.titleSize,
|
|
35
|
+
titleSize = _d === void 0 ? "h3" : _d;
|
|
31
36
|
var $root = useRef(null);
|
|
32
37
|
var startMonth = getStartMonth({
|
|
33
38
|
today: today,
|
|
34
39
|
activeDates: activeDates
|
|
35
40
|
});
|
|
36
|
-
var
|
|
37
|
-
selectedDate =
|
|
38
|
-
setSelectedDate =
|
|
39
|
-
var
|
|
40
|
-
selectedPeriod =
|
|
41
|
-
setSelectedPeriod =
|
|
42
|
-
var
|
|
41
|
+
var _e = useState(initialSelectedDate),
|
|
42
|
+
selectedDate = _e[0],
|
|
43
|
+
setSelectedDate = _e[1];
|
|
44
|
+
var _f = useState(initialSelectedPeriod),
|
|
45
|
+
selectedPeriod = _f[0],
|
|
46
|
+
setSelectedPeriod = _f[1];
|
|
47
|
+
var _g = useState(function () {
|
|
43
48
|
if (initialSelectedDate) {
|
|
44
49
|
return getNumberOfMonthsBetweenDates(startMonth, initialSelectedDate);
|
|
45
50
|
} else if (activeDates && activeDates.length) {
|
|
@@ -47,14 +52,14 @@ var Calendar = function Calendar(_a) {
|
|
|
47
52
|
}
|
|
48
53
|
return 0;
|
|
49
54
|
}),
|
|
50
|
-
currentMonthOffset =
|
|
51
|
-
setCurrentMonthOffset =
|
|
52
|
-
var
|
|
53
|
-
contentWidth =
|
|
54
|
-
setContentWidth =
|
|
55
|
-
var
|
|
56
|
-
isRangeCompleted =
|
|
57
|
-
setIsRangeCompleted =
|
|
55
|
+
currentMonthOffset = _g[0],
|
|
56
|
+
setCurrentMonthOffset = _g[1];
|
|
57
|
+
var _h = useState(0),
|
|
58
|
+
contentWidth = _h[0],
|
|
59
|
+
setContentWidth = _h[1];
|
|
60
|
+
var _j = useState(true),
|
|
61
|
+
isRangeCompleted = _j[0],
|
|
62
|
+
setIsRangeCompleted = _j[1];
|
|
58
63
|
useEffect(function () {
|
|
59
64
|
var _a;
|
|
60
65
|
setContentWidth(((_a = $root.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0);
|
|
@@ -139,7 +144,10 @@ var Calendar = function Calendar(_a) {
|
|
|
139
144
|
onDayClick: handleDayClick
|
|
140
145
|
};
|
|
141
146
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
142
|
-
className: clx(styles.root),
|
|
147
|
+
className: clx(styles.root, className),
|
|
148
|
+
style: {
|
|
149
|
+
minWidth: "".concat(minWidth, "px")
|
|
150
|
+
},
|
|
143
151
|
"data-testid": "calendar",
|
|
144
152
|
ref: $root
|
|
145
153
|
}, /*#__PURE__*/React__default.createElement("div", null, contentWidth ? (/*#__PURE__*/React__default.createElement("div", {
|
|
@@ -157,9 +165,11 @@ var Calendar = function Calendar(_a) {
|
|
|
157
165
|
offsetLeft: index * contentWidth
|
|
158
166
|
});
|
|
159
167
|
return /*#__PURE__*/React__default.createElement(Month, __assign({}, attrs, {
|
|
168
|
+
titleSize: titleSize,
|
|
160
169
|
key: "month-".concat(index)
|
|
161
170
|
}));
|
|
162
171
|
}))) : (/*#__PURE__*/React__default.createElement(Month, __assign({
|
|
172
|
+
titleSize: titleSize,
|
|
163
173
|
today: today,
|
|
164
174
|
startDate: getMonthStartDate(currentMonthOffset),
|
|
165
175
|
offsetLeft: 0
|
|
@@ -3,18 +3,13 @@
|
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
-moz-osx-font-smoothing: grayscale;
|
|
5
5
|
-webkit-font-smoothing: antialiased;
|
|
6
|
-
gap:
|
|
7
|
-
min-width:
|
|
6
|
+
gap: 1rem;
|
|
7
|
+
min-width: 360px;
|
|
8
8
|
overflow: hidden;
|
|
9
9
|
position: relative;
|
|
10
10
|
text-rendering: optimizelegibility;
|
|
11
11
|
text-size-adjust: 100%;
|
|
12
12
|
}
|
|
13
|
-
@media (width >= 360px) {
|
|
14
|
-
.root {
|
|
15
|
-
min-width: 360px;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
13
|
|
|
19
14
|
.month-control {
|
|
20
15
|
background: transparent;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Preset } from "./components/Presets";
|
|
2
|
+
export type CalendarPayload = {
|
|
3
|
+
date: string;
|
|
4
|
+
period: number;
|
|
5
|
+
};
|
|
6
|
+
export type CalendarTitleSize = "xs" | "s" | "m" | "l" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
7
|
+
export type CalendarProps = {
|
|
8
|
+
today: string;
|
|
9
|
+
selectedDate?: string;
|
|
10
|
+
selectedPeriod?: number;
|
|
11
|
+
canSelectRange?: boolean;
|
|
12
|
+
activeDates?: string[];
|
|
13
|
+
datePresets?: Preset[];
|
|
14
|
+
availableDates?: string[];
|
|
15
|
+
onChange?: (payload: CalendarPayload) => void;
|
|
16
|
+
onCancel?: () => void;
|
|
17
|
+
withContinueButton?: boolean;
|
|
18
|
+
className?: string;
|
|
19
|
+
minWidth?: number;
|
|
20
|
+
titleSize?: CalendarTitleSize;
|
|
21
|
+
};
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
box-shadow: 0 0 0 2px var(--palette-alert);
|
|
58
58
|
}
|
|
59
59
|
.variant_primary_checked::after {
|
|
60
|
-
border-block-end: 2px solid var(--palette-
|
|
61
|
-
border-inline-end: 2px solid var(--palette-
|
|
60
|
+
border-block-end: 2px solid var(--palette-black);
|
|
61
|
+
border-inline-end: 2px solid var(--palette-black);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
.control {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React__default, { useState } from 'react';
|
|
2
|
+
import classNames from 'classnames/bind';
|
|
3
|
+
import Dropdown from '../../../Dropdown/index.js';
|
|
4
|
+
import Calendar from '../../../Calendar/index.js';
|
|
5
|
+
import { toISODate, toDMYDate } from '../../../helpers/date/index.js';
|
|
6
|
+
import styles from './index.module.css';
|
|
7
|
+
|
|
8
|
+
var clx = classNames.bind(styles);
|
|
9
|
+
var DatePicker = function DatePicker(_a) {
|
|
10
|
+
var className = _a.className,
|
|
11
|
+
_b = _a.selectedDate,
|
|
12
|
+
selectedDate = _b === void 0 ? "" : _b;
|
|
13
|
+
var _c = useState(selectedDate),
|
|
14
|
+
date = _c[0],
|
|
15
|
+
setDate = _c[1];
|
|
16
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
17
|
+
className: clx(styles.root, className)
|
|
18
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
19
|
+
className: clx(styles["date-picker"])
|
|
20
|
+
}, /*#__PURE__*/React__default.createElement(Dropdown, {
|
|
21
|
+
placement: "bottom",
|
|
22
|
+
preventAutoClose: true,
|
|
23
|
+
fontSize: 14,
|
|
24
|
+
trigger: ["click"],
|
|
25
|
+
overlay: /*#__PURE__*/React__default.createElement(Calendar, {
|
|
26
|
+
minWidth: 260,
|
|
27
|
+
className: styles.calendar,
|
|
28
|
+
today: toISODate(new Date()),
|
|
29
|
+
titleSize: "h5",
|
|
30
|
+
selectedDate: date,
|
|
31
|
+
onChange: function onChange(payload) {
|
|
32
|
+
setDate(payload.date);
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
}, /*#__PURE__*/React__default.createElement("input", {
|
|
36
|
+
className: clx(styles["date-picker-input-control"]),
|
|
37
|
+
value: toDMYDate(date),
|
|
38
|
+
readOnly: true
|
|
39
|
+
}))));
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { DatePicker as default };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
width: 100px;
|
|
3
|
+
}
|
|
4
|
+
.root:focus-within {
|
|
5
|
+
z-index: 2;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.date-picker {
|
|
9
|
+
display: inline-block;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.date-picker-input-control {
|
|
13
|
+
background-color: var(--palette-white);
|
|
14
|
+
border: 0;
|
|
15
|
+
border-radius: 0.375rem;
|
|
16
|
+
border-bottom-left-radius: 0;
|
|
17
|
+
border-top-left-radius: 0;
|
|
18
|
+
box-shadow: inset 0 0 0 1px var(--palette-bg-3);
|
|
19
|
+
box-sizing: border-box;
|
|
20
|
+
color: var(--palette-black);
|
|
21
|
+
font-size: 14px;
|
|
22
|
+
height: 36px;
|
|
23
|
+
outline: 0;
|
|
24
|
+
padding: 0 10px;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
.date-picker-input-control:focus {
|
|
28
|
+
box-shadow: inset 0 0 0 1px var(--palette-primary-3), 0 0 0 2px var(--palette-primary-2);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.calendar {
|
|
32
|
+
max-width: 250px;
|
|
33
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React__default, { useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
var OptionLabel = function OptionLabel(_a) {
|
|
4
|
+
var time = _a.time,
|
|
5
|
+
onClick = _a.onClick,
|
|
6
|
+
onMouseEnter = _a.onMouseEnter;
|
|
7
|
+
var ref = useRef(null);
|
|
8
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
9
|
+
onClick: onClick,
|
|
10
|
+
onMouseEnter: onMouseEnter,
|
|
11
|
+
ref: ref
|
|
12
|
+
}, time);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export { OptionLabel as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type Timestamp = {
|
|
2
|
+
time: string;
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare const DEFAULT_TIME: {
|
|
6
|
+
index: number;
|
|
7
|
+
time: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const formatTime: (date: Date) => string;
|
|
10
|
+
export declare const generateSuggest: (interval?: number) => Timestamp[];
|
|
11
|
+
export declare const checkIsBeforeNow: (time: string, currentDate?: Date | null) => boolean;
|
|
12
|
+
export declare const checkIsBeforeSelectedDate: (time: string, interval: number, date?: Date | null) => boolean;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { format, addMinutes, isBefore, parse } from 'date-fns';
|
|
2
|
+
|
|
3
|
+
var day = new Date();
|
|
4
|
+
day.setHours(24, 0, 0, 0);
|
|
5
|
+
var DEFAULT_TIME = {
|
|
6
|
+
index: 24,
|
|
7
|
+
time: "12:00"
|
|
8
|
+
};
|
|
9
|
+
var formatTime = function formatTime(date) {
|
|
10
|
+
return format(date, "HH:mm");
|
|
11
|
+
};
|
|
12
|
+
var generateSuggest = function generateSuggest(interval) {
|
|
13
|
+
if (interval === void 0) {
|
|
14
|
+
interval = 15;
|
|
15
|
+
}
|
|
16
|
+
return new Array(24 * 60 / interval).fill(null).map(function (_, index) {
|
|
17
|
+
var date = addMinutes(day, index * interval);
|
|
18
|
+
return {
|
|
19
|
+
time: formatTime(date)
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
var checkIsBeforeNow = function checkIsBeforeNow(time, currentDate) {
|
|
24
|
+
return currentDate ? isBefore(parse(time, "HH:mm", currentDate), new Date()) : false;
|
|
25
|
+
};
|
|
26
|
+
var checkIsBeforeSelectedDate = function checkIsBeforeSelectedDate(time, interval, date) {
|
|
27
|
+
if (date) {
|
|
28
|
+
var selectedDate = new Date(date);
|
|
29
|
+
selectedDate.setMinutes(selectedDate.getMinutes() + interval);
|
|
30
|
+
return isBefore(parse(time, "HH:mm", date), selectedDate);
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export { DEFAULT_TIME, checkIsBeforeNow, checkIsBeforeSelectedDate, formatTime, generateSuggest };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface TimePickerProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
interval?: 5 | 10 | 15 | 30;
|
|
5
|
+
value?: string;
|
|
6
|
+
selectedTime?: string;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: React.MemoExoticComponent<({ className, interval, selectedTime, }: TimePickerProps) => React.JSX.Element>;
|
|
9
|
+
export default _default;
|