colibri-ui 0.7.110 → 0.7.113
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 +6 -0
- package/Datepicker/components/DatePicker/index.d.ts +7 -0
- package/Datepicker/components/DatePicker/index.js +56 -0
- package/Datepicker/components/DatePicker/index.module.css +47 -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 +71 -0
- package/Datepicker/components/TimePicker/index.module.css +34 -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 +6 -0
- package/esm/Datepicker/components/DatePicker/index.d.ts +7 -0
- package/esm/Datepicker/components/DatePicker/index.js +46 -0
- package/esm/Datepicker/components/DatePicker/index.module.css +47 -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 +61 -0
- package/esm/Datepicker/components/TimePicker/index.module.css +34 -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,56 @@
|
|
|
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['input-container'], styles__default.default['input-date'], className)
|
|
28
|
+
}, /*#__PURE__*/React__default.default.createElement(index.default, {
|
|
29
|
+
placement: "bottom",
|
|
30
|
+
preventAutoClose: true,
|
|
31
|
+
fontSize: 14,
|
|
32
|
+
trigger: ["click"],
|
|
33
|
+
overlay: /*#__PURE__*/React__default.default.createElement(index$1.default, {
|
|
34
|
+
minWidth: 260,
|
|
35
|
+
className: styles__default.default.calendar,
|
|
36
|
+
today: index$2.toISODate(new Date()),
|
|
37
|
+
titleSize: "h5",
|
|
38
|
+
selectedDate: date,
|
|
39
|
+
onChange: function onChange(payload) {
|
|
40
|
+
setDate(payload.date);
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
}, /*#__PURE__*/React__default.default.createElement("input", {
|
|
44
|
+
className: clx(styles__default.default['input-field']),
|
|
45
|
+
tabIndex: 0,
|
|
46
|
+
"aria-expanded": "false",
|
|
47
|
+
"aria-haspopup": "true",
|
|
48
|
+
"aria-invalid": "false",
|
|
49
|
+
autoComplete: "off",
|
|
50
|
+
maxLength: 7,
|
|
51
|
+
readOnly: true,
|
|
52
|
+
value: index$2.toDMYDate(date)
|
|
53
|
+
})));
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
exports.default = DatePicker;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
.input-container {
|
|
2
|
+
border-radius: 6px;
|
|
3
|
+
border: 1px solid var(--palette-bg-3);
|
|
4
|
+
display: flex;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.input-field {
|
|
10
|
+
height: 100%;
|
|
11
|
+
padding: 4px;
|
|
12
|
+
text-align: center;
|
|
13
|
+
font-size: 1em;
|
|
14
|
+
outline: none;
|
|
15
|
+
border: none;
|
|
16
|
+
width: 100%;
|
|
17
|
+
background: transparent;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.input-date {
|
|
21
|
+
position: relative;
|
|
22
|
+
border-bottom-left-radius: 0;
|
|
23
|
+
border-left: none;
|
|
24
|
+
border-top-left-radius: 0;
|
|
25
|
+
width: 100px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.input-date:focus-within {
|
|
29
|
+
border: 1px solid var(--palette-primary-3);
|
|
30
|
+
border-bottom-left-radius: 0;
|
|
31
|
+
border-left: none;
|
|
32
|
+
border-top-left-radius: 0;
|
|
33
|
+
box-shadow: 0 0 0 2px var(--palette-primary-2);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.input-date:focus-within::before {
|
|
37
|
+
content: "";
|
|
38
|
+
position: absolute;
|
|
39
|
+
height: 100%;
|
|
40
|
+
width: 1px;
|
|
41
|
+
background-color: var(--palette-primary-3);
|
|
42
|
+
left: 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.calendar {
|
|
46
|
+
max-width: 250px;
|
|
47
|
+
}
|
|
@@ -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,71 @@
|
|
|
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(index$1.default, {
|
|
47
|
+
className: className,
|
|
48
|
+
value: time,
|
|
49
|
+
options: options,
|
|
50
|
+
fontSize: 14,
|
|
51
|
+
customInputRoot: /*#__PURE__*/React__default.default.createElement("div", {
|
|
52
|
+
className: clx(styles__default.default['input-container'], styles__default.default['input-time'])
|
|
53
|
+
}, /*#__PURE__*/React__default.default.createElement("input", {
|
|
54
|
+
className: clx(styles__default.default['input-field']),
|
|
55
|
+
tabIndex: 0,
|
|
56
|
+
"aria-expanded": "false",
|
|
57
|
+
"aria-haspopup": "true",
|
|
58
|
+
"aria-invalid": "false",
|
|
59
|
+
autoComplete: "off",
|
|
60
|
+
maxLength: 5,
|
|
61
|
+
readOnly: true,
|
|
62
|
+
value: time
|
|
63
|
+
})),
|
|
64
|
+
onChange: function onChange(time) {
|
|
65
|
+
return setTime(time);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
var TimePickerInput = /*#__PURE__*/React.memo(TimePicker);
|
|
70
|
+
|
|
71
|
+
exports.default = TimePickerInput;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.input-container {
|
|
2
|
+
border-radius: 6px;
|
|
3
|
+
border: 1px solid var(--palette-bg-3);
|
|
4
|
+
display: flex;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.input-field {
|
|
10
|
+
height: 100%;
|
|
11
|
+
padding: 4px;
|
|
12
|
+
text-align: center;
|
|
13
|
+
font-size: 1em;
|
|
14
|
+
outline: none;
|
|
15
|
+
border: none;
|
|
16
|
+
width: 100%;
|
|
17
|
+
background: transparent;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.input-time {
|
|
21
|
+
border-bottom-right-radius: 0;
|
|
22
|
+
border-right: 1px solid var(--palette-bg-3);
|
|
23
|
+
border-top-right-radius: 0;
|
|
24
|
+
width: 89px;
|
|
25
|
+
height: 100%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.input-time:focus-within {
|
|
29
|
+
border: 1px solid var(--palette-primary-3);
|
|
30
|
+
border-bottom-right-radius: 0;
|
|
31
|
+
border-top-right-radius: 0;
|
|
32
|
+
box-shadow: 0 0 0 2px var(--palette-primary-2);
|
|
33
|
+
z-index: 3;
|
|
34
|
+
}
|
|
@@ -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;
|
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", {
|