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/Avatar/Avatar.module.css
CHANGED
|
@@ -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 {};
|
|
@@ -72,7 +72,7 @@ var Month = function Month(props) {
|
|
|
72
72
|
className: clx(styles__default.default["month-name"])
|
|
73
73
|
}, /*#__PURE__*/React__namespace.createElement(index.default, {
|
|
74
74
|
tag: "span",
|
|
75
|
-
size:
|
|
75
|
+
size: props.titleSize
|
|
76
76
|
}, index$1.getUpperMonthName(props.startDate))), /*#__PURE__*/React__namespace.createElement("div", {
|
|
77
77
|
className: clx(styles__default.default.table)
|
|
78
78
|
}, /*#__PURE__*/React__namespace.createElement("ul", {
|
package/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/Calendar/index.js
CHANGED
|
@@ -36,20 +36,25 @@ var Calendar = function Calendar(_a) {
|
|
|
36
36
|
canSelectRange = _a.canSelectRange,
|
|
37
37
|
onChange = _a.onChange,
|
|
38
38
|
onCancel = _a.onCancel,
|
|
39
|
-
_b = _a.
|
|
40
|
-
|
|
39
|
+
_b = _a.minWidth,
|
|
40
|
+
minWidth = _b === void 0 ? 360 : _b,
|
|
41
|
+
_c = _a.withContinueButton,
|
|
42
|
+
withContinueButton = _c === void 0 ? false : _c,
|
|
43
|
+
className = _a.className,
|
|
44
|
+
_d = _a.titleSize,
|
|
45
|
+
titleSize = _d === void 0 ? "h3" : _d;
|
|
41
46
|
var $root = React.useRef(null);
|
|
42
47
|
var startMonth = getStartMonth.getStartMonth({
|
|
43
48
|
today: today,
|
|
44
49
|
activeDates: activeDates
|
|
45
50
|
});
|
|
46
|
-
var
|
|
47
|
-
selectedDate =
|
|
48
|
-
setSelectedDate =
|
|
49
|
-
var
|
|
50
|
-
selectedPeriod =
|
|
51
|
-
setSelectedPeriod =
|
|
52
|
-
var
|
|
51
|
+
var _e = React.useState(initialSelectedDate),
|
|
52
|
+
selectedDate = _e[0],
|
|
53
|
+
setSelectedDate = _e[1];
|
|
54
|
+
var _f = React.useState(initialSelectedPeriod),
|
|
55
|
+
selectedPeriod = _f[0],
|
|
56
|
+
setSelectedPeriod = _f[1];
|
|
57
|
+
var _g = React.useState(function () {
|
|
53
58
|
if (initialSelectedDate) {
|
|
54
59
|
return getNumberOfMonthsBetweenDates.getNumberOfMonthsBetweenDates(startMonth, initialSelectedDate);
|
|
55
60
|
} else if (activeDates && activeDates.length) {
|
|
@@ -57,14 +62,14 @@ var Calendar = function Calendar(_a) {
|
|
|
57
62
|
}
|
|
58
63
|
return 0;
|
|
59
64
|
}),
|
|
60
|
-
currentMonthOffset =
|
|
61
|
-
setCurrentMonthOffset =
|
|
62
|
-
var
|
|
63
|
-
contentWidth =
|
|
64
|
-
setContentWidth =
|
|
65
|
-
var
|
|
66
|
-
isRangeCompleted =
|
|
67
|
-
setIsRangeCompleted =
|
|
65
|
+
currentMonthOffset = _g[0],
|
|
66
|
+
setCurrentMonthOffset = _g[1];
|
|
67
|
+
var _h = React.useState(0),
|
|
68
|
+
contentWidth = _h[0],
|
|
69
|
+
setContentWidth = _h[1];
|
|
70
|
+
var _j = React.useState(true),
|
|
71
|
+
isRangeCompleted = _j[0],
|
|
72
|
+
setIsRangeCompleted = _j[1];
|
|
68
73
|
React.useEffect(function () {
|
|
69
74
|
var _a;
|
|
70
75
|
setContentWidth(((_a = $root.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0);
|
|
@@ -149,7 +154,10 @@ var Calendar = function Calendar(_a) {
|
|
|
149
154
|
onDayClick: handleDayClick
|
|
150
155
|
};
|
|
151
156
|
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
152
|
-
className: clx(styles__default.default.root),
|
|
157
|
+
className: clx(styles__default.default.root, className),
|
|
158
|
+
style: {
|
|
159
|
+
minWidth: "".concat(minWidth, "px")
|
|
160
|
+
},
|
|
153
161
|
"data-testid": "calendar",
|
|
154
162
|
ref: $root
|
|
155
163
|
}, /*#__PURE__*/React__default.default.createElement("div", null, contentWidth ? (/*#__PURE__*/React__default.default.createElement("div", {
|
|
@@ -167,9 +175,11 @@ var Calendar = function Calendar(_a) {
|
|
|
167
175
|
offsetLeft: index * contentWidth
|
|
168
176
|
});
|
|
169
177
|
return /*#__PURE__*/React__default.default.createElement(Month.Month, tslib.__assign({}, attrs, {
|
|
178
|
+
titleSize: titleSize,
|
|
170
179
|
key: "month-".concat(index)
|
|
171
180
|
}));
|
|
172
181
|
}))) : (/*#__PURE__*/React__default.default.createElement(Month.Month, tslib.__assign({
|
|
182
|
+
titleSize: titleSize,
|
|
173
183
|
today: today,
|
|
174
184
|
startDate: getMonthStartDate(currentMonthOffset),
|
|
175
185
|
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,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var classNames = require('classnames/bind');
|
|
7
|
+
var index = require('../../../Dropdown/index.js');
|
|
8
|
+
var index$1 = require('../../../Calendar/index.js');
|
|
9
|
+
var index$2 = require('../../../helpers/date/index.js');
|
|
10
|
+
var styles = require('./index.module.css');
|
|
11
|
+
|
|
12
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
|
|
14
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
15
|
+
var classNames__default = /*#__PURE__*/_interopDefault(classNames);
|
|
16
|
+
var styles__default = /*#__PURE__*/_interopDefault(styles);
|
|
17
|
+
|
|
18
|
+
var clx = classNames__default.default.bind(styles__default.default);
|
|
19
|
+
var DatePicker = function DatePicker(_a) {
|
|
20
|
+
var className = _a.className,
|
|
21
|
+
_b = _a.selectedDate,
|
|
22
|
+
selectedDate = _b === void 0 ? "" : _b;
|
|
23
|
+
var _c = React.useState(selectedDate),
|
|
24
|
+
date = _c[0],
|
|
25
|
+
setDate = _c[1];
|
|
26
|
+
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
27
|
+
className: clx(styles__default.default.root, className)
|
|
28
|
+
}, /*#__PURE__*/React__default.default.createElement("div", {
|
|
29
|
+
className: clx(styles__default.default["date-picker"])
|
|
30
|
+
}, /*#__PURE__*/React__default.default.createElement(index.default, {
|
|
31
|
+
placement: "bottom",
|
|
32
|
+
preventAutoClose: true,
|
|
33
|
+
fontSize: 14,
|
|
34
|
+
trigger: ["click"],
|
|
35
|
+
overlay: /*#__PURE__*/React__default.default.createElement(index$1.default, {
|
|
36
|
+
minWidth: 260,
|
|
37
|
+
className: styles__default.default.calendar,
|
|
38
|
+
today: index$2.toISODate(new Date()),
|
|
39
|
+
titleSize: "h5",
|
|
40
|
+
selectedDate: date,
|
|
41
|
+
onChange: function onChange(payload) {
|
|
42
|
+
setDate(payload.date);
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
}, /*#__PURE__*/React__default.default.createElement("input", {
|
|
46
|
+
className: clx(styles__default.default["date-picker-input-control"]),
|
|
47
|
+
value: index$2.toDMYDate(date),
|
|
48
|
+
readOnly: true
|
|
49
|
+
}))));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.default = DatePicker;
|
|
@@ -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,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
|
|
7
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
+
|
|
9
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
10
|
+
|
|
11
|
+
var OptionLabel = function OptionLabel(_a) {
|
|
12
|
+
var time = _a.time,
|
|
13
|
+
onClick = _a.onClick,
|
|
14
|
+
onMouseEnter = _a.onMouseEnter;
|
|
15
|
+
var ref = React.useRef(null);
|
|
16
|
+
return /*#__PURE__*/React__default.default.createElement("span", {
|
|
17
|
+
onClick: onClick,
|
|
18
|
+
onMouseEnter: onMouseEnter,
|
|
19
|
+
ref: ref
|
|
20
|
+
}, time);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.default = OptionLabel;
|
|
@@ -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,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dateFns = require('date-fns');
|
|
4
|
+
|
|
5
|
+
var day = new Date();
|
|
6
|
+
day.setHours(24, 0, 0, 0);
|
|
7
|
+
var DEFAULT_TIME = {
|
|
8
|
+
index: 24,
|
|
9
|
+
time: "12:00"
|
|
10
|
+
};
|
|
11
|
+
var formatTime = function formatTime(date) {
|
|
12
|
+
return dateFns.format(date, "HH:mm");
|
|
13
|
+
};
|
|
14
|
+
var generateSuggest = function generateSuggest(interval) {
|
|
15
|
+
if (interval === void 0) {
|
|
16
|
+
interval = 15;
|
|
17
|
+
}
|
|
18
|
+
return new Array(24 * 60 / interval).fill(null).map(function (_, index) {
|
|
19
|
+
var date = dateFns.addMinutes(day, index * interval);
|
|
20
|
+
return {
|
|
21
|
+
time: formatTime(date)
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
var checkIsBeforeNow = function checkIsBeforeNow(time, currentDate) {
|
|
26
|
+
return currentDate ? dateFns.isBefore(dateFns.parse(time, "HH:mm", currentDate), new Date()) : false;
|
|
27
|
+
};
|
|
28
|
+
var checkIsBeforeSelectedDate = function checkIsBeforeSelectedDate(time, interval, date) {
|
|
29
|
+
if (date) {
|
|
30
|
+
var selectedDate = new Date(date);
|
|
31
|
+
selectedDate.setMinutes(selectedDate.getMinutes() + interval);
|
|
32
|
+
return dateFns.isBefore(dateFns.parse(time, "HH:mm", date), selectedDate);
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.DEFAULT_TIME = DEFAULT_TIME;
|
|
38
|
+
exports.checkIsBeforeNow = checkIsBeforeNow;
|
|
39
|
+
exports.checkIsBeforeSelectedDate = checkIsBeforeSelectedDate;
|
|
40
|
+
exports.formatTime = formatTime;
|
|
41
|
+
exports.generateSuggest = 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;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var classNames = require('classnames/bind');
|
|
8
|
+
var index$1 = require('../../../Select/index.js');
|
|
9
|
+
var styles = require('./index.module.css');
|
|
10
|
+
var helpers = require('./helpers.js');
|
|
11
|
+
var index = require('./Label/index.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
16
|
+
var classNames__default = /*#__PURE__*/_interopDefault(classNames);
|
|
17
|
+
var styles__default = /*#__PURE__*/_interopDefault(styles);
|
|
18
|
+
|
|
19
|
+
var clx = classNames__default.default.bind(styles__default.default);
|
|
20
|
+
var TimePicker = function TimePicker(_a) {
|
|
21
|
+
var className = _a.className,
|
|
22
|
+
_b = _a.interval,
|
|
23
|
+
interval = _b === void 0 ? 30 : _b,
|
|
24
|
+
_c = _a.selectedTime,
|
|
25
|
+
selectedTime = _c === void 0 ? "" : _c;
|
|
26
|
+
var _d = React.useState(selectedTime),
|
|
27
|
+
time = _d[0],
|
|
28
|
+
setTime = _d[1];
|
|
29
|
+
var baseOptions = React.useMemo(function () {
|
|
30
|
+
return helpers.generateSuggest(interval).map(function (item) {
|
|
31
|
+
return {
|
|
32
|
+
value: item.time,
|
|
33
|
+
label: /*#__PURE__*/React__default.default.createElement(index.default, {
|
|
34
|
+
time: item.time
|
|
35
|
+
})
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}, [interval]);
|
|
39
|
+
var options = React.useMemo(function () {
|
|
40
|
+
return baseOptions.map(function (option) {
|
|
41
|
+
return tslib.__assign(tslib.__assign({}, option), {
|
|
42
|
+
disabled: false
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}, [baseOptions, interval]);
|
|
46
|
+
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
47
|
+
className: clx(styles__default.default.root, className)
|
|
48
|
+
}, /*#__PURE__*/React__default.default.createElement("div", {
|
|
49
|
+
className: clx(styles__default.default["time-picker"])
|
|
50
|
+
}, /*#__PURE__*/React__default.default.createElement("span", {
|
|
51
|
+
className: clx(styles__default.default["time-input-wrapper"])
|
|
52
|
+
}, /*#__PURE__*/React__default.default.createElement("span", {
|
|
53
|
+
className: clx(styles__default.default.select)
|
|
54
|
+
}, /*#__PURE__*/React__default.default.createElement("span", {
|
|
55
|
+
className: clx(styles__default.default["text-input"])
|
|
56
|
+
}, /*#__PURE__*/React__default.default.createElement(index$1.default, {
|
|
57
|
+
value: time,
|
|
58
|
+
className: clx(styles__default.default["select-input-control"]),
|
|
59
|
+
options: options,
|
|
60
|
+
fontSize: 14,
|
|
61
|
+
customInputRoot: /*#__PURE__*/React__default.default.createElement("input", {
|
|
62
|
+
"aria-expanded": "false",
|
|
63
|
+
"aria-haspopup": "true",
|
|
64
|
+
"aria-invalid": "false",
|
|
65
|
+
autoComplete: "off",
|
|
66
|
+
className: clx(styles__default.default["text-input-control"]),
|
|
67
|
+
maxLength: 5,
|
|
68
|
+
value: time,
|
|
69
|
+
readOnly: true
|
|
70
|
+
}),
|
|
71
|
+
onChange: function onChange(time) {
|
|
72
|
+
return setTime(time);
|
|
73
|
+
}
|
|
74
|
+
}), /*#__PURE__*/React__default.default.createElement("span", {
|
|
75
|
+
className: clx(styles__default.default["text-input-box"])
|
|
76
|
+
}))))));
|
|
77
|
+
};
|
|
78
|
+
var TimePickerInput = /*#__PURE__*/React.memo(TimePicker);
|
|
79
|
+
|
|
80
|
+
exports.default = TimePickerInput;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
width: 88px;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.time-picker {
|
|
6
|
+
display: inline-block;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.time-input-wrapper {
|
|
10
|
+
display: inline-block;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.select {
|
|
14
|
+
display: inline-block;
|
|
15
|
+
max-width: 100%;
|
|
16
|
+
position: relative;
|
|
17
|
+
vertical-align: bottom;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.text-input {
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
display: inline-block;
|
|
23
|
+
position: relative;
|
|
24
|
+
vertical-align: top;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.text-input-control {
|
|
29
|
+
background: 0 0;
|
|
30
|
+
border: 0 solid transparent;
|
|
31
|
+
border-width: 8px 16px;
|
|
32
|
+
box-sizing: border-box;
|
|
33
|
+
color: var(--palette-black);
|
|
34
|
+
font-size: 1em;
|
|
35
|
+
height: 36px;
|
|
36
|
+
margin: 0;
|
|
37
|
+
outline: 0;
|
|
38
|
+
padding: 0;
|
|
39
|
+
position: relative;
|
|
40
|
+
-webkit-tap-highlight-color: transparent;
|
|
41
|
+
vertical-align: top;
|
|
42
|
+
width: 100%;
|
|
43
|
+
text-align: center;
|
|
44
|
+
z-index: 2;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.text-input-box {
|
|
48
|
+
background-color: var(--palette-white);
|
|
49
|
+
border: 1px solid var(--palette-bg-3);
|
|
50
|
+
border-radius: 0.375rem;
|
|
51
|
+
border-bottom-right-radius: 0;
|
|
52
|
+
border-right-width: 0;
|
|
53
|
+
border-top-right-radius: 0;
|
|
54
|
+
inset: 0;
|
|
55
|
+
box-sizing: border-box;
|
|
56
|
+
display: inline-block;
|
|
57
|
+
height: 36px;
|
|
58
|
+
position: absolute;
|
|
59
|
+
transition: background-color 0.15s linear;
|
|
60
|
+
z-index: 1;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.select-input-control:focus-within + .text-input-box {
|
|
64
|
+
border-color: var(--palette-primary-3);
|
|
65
|
+
border-width: 1px;
|
|
66
|
+
box-shadow: 0 0 0 2px var(--palette-primary-2);
|
|
67
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var classNames = require('classnames/bind');
|
|
7
|
+
var styles = require('./Datepicker.module.css');
|
|
8
|
+
var index = require('./components/TimePicker/index.js');
|
|
9
|
+
var index$1 = require('./components/DatePicker/index.js');
|
|
10
|
+
|
|
11
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
|
|
13
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
14
|
+
var classNames__default = /*#__PURE__*/_interopDefault(classNames);
|
|
15
|
+
var styles__default = /*#__PURE__*/_interopDefault(styles);
|
|
16
|
+
|
|
17
|
+
var clx = classNames__default.default.bind(styles__default.default);
|
|
18
|
+
var Datepicker = function Datepicker(_a) {
|
|
19
|
+
var className = _a.className,
|
|
20
|
+
selectedTime = _a.selectedTime,
|
|
21
|
+
selectedDate = _a.selectedDate;
|
|
22
|
+
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
23
|
+
className: clx(styles__default.default.root, className)
|
|
24
|
+
}, /*#__PURE__*/React__default.default.createElement(index.default, {
|
|
25
|
+
selectedTime: selectedTime
|
|
26
|
+
}), /*#__PURE__*/React__default.default.createElement(index$1.default, {
|
|
27
|
+
selectedDate: selectedDate
|
|
28
|
+
}));
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports.default = Datepicker;
|