@invoicebox/ui 0.1.0-alpha.320 → 0.1.0-alpha.322
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/common/AppCardLink/index.js +2 -1
- package/dist/components/common/BgCard/index.js +2 -1
- package/dist/components/common/BgCard/styles.js +2 -1
- package/dist/components/common/Calendar/index.js +2 -1
- package/dist/components/common/Calendar/index.stories.js +2 -1
- package/dist/components/common/Calendar/styles.js +2 -1
- package/dist/components/common/Divider/index.js +2 -1
- package/dist/components/common/Drawer/index.js +2 -1
- package/dist/components/common/Drawer/index.stories.js +2 -1
- package/dist/components/common/Drawer/styles.js +2 -1
- package/dist/components/common/Dropdown/index.js +2 -1
- package/dist/components/common/Dropdown/styles.js +9 -8
- package/dist/components/common/EntityAutocompleteOptionsDrawer/index.js +2 -1
- package/dist/components/common/EntityAutocompleteOptionsDrawer/index.stories.js +2 -1
- package/dist/components/common/Flag/index.js +2 -1
- package/dist/components/common/Flag/styles.js +2 -1
- package/dist/components/common/InvoiceboxSpinner/index.js +2 -1
- package/dist/components/common/InvoiceboxSpinner/styles.js +2 -1
- package/dist/components/common/PointsLoader/index.js +2 -1
- package/dist/components/common/QRCode/index.js +2 -2
- package/dist/components/common/ReadOnlyLabelValueField/index.js +2 -1
- package/dist/components/common/Scrollbar/index.js +2 -1
- package/dist/components/common/Scrollbar/styles.js +2 -1
- package/dist/components/common/SecondaryButton/index.js +4 -3
- package/dist/components/common/SecondaryButton/styles.js +2 -1
- package/dist/components/common/Skeleton/index.js +2 -1
- package/dist/components/common/Skeleton/styles.js +2 -1
- package/dist/components/common/Toast/index.js +2 -1
- package/dist/components/common/Tooltip/index.js +2 -1
- package/dist/components/common/Typography/index.js +4 -3
- package/dist/components/common/WarningIcon/index.js +2 -1
- package/dist/components/form/Autocomplete/components/Autocomplete/index.js +2 -1
- package/dist/components/form/Autocomplete/components/Autocomplete/index.stories.js +2 -1
- package/dist/components/form/Autocomplete/components/OrganizationAutocompleteItem/index.js +2 -1
- package/dist/components/form/Checkbox/index.js +4 -3
- package/dist/components/form/Checkbox/index.stories.js +2 -1
- package/dist/components/form/CodeInput/index.js +2 -1
- package/dist/components/form/CodeInput/index.stories.js +2 -1
- package/dist/components/form/CountrySelect/components/CountryItem/index.d.ts +2 -1
- package/dist/components/form/CountrySelect/components/CountryItem/index.js +10 -4
- package/dist/components/form/CountrySelect/components/CountryItem/stlyes.d.ts +4 -0
- package/dist/components/form/CountrySelect/components/CountryItem/stlyes.js +18 -7
- package/dist/components/form/CountrySelect/index.d.ts +1 -0
- package/dist/components/form/CountrySelect/index.js +5 -3
- package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.js +2 -1
- package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.stories.js +2 -1
- package/dist/components/form/CurrencyInput/CurrencyInputNumber/index.js +2 -2
- package/dist/components/form/CurrencyInput/CurrencyInputNumber/index.stories.js +2 -1
- package/dist/components/form/CurrencyInput/CurrencyInputString/index.js +2 -2
- package/dist/components/form/CurrencyInput/CurrencyInputString/index.stories.js +2 -1
- package/dist/components/form/DateInput/components/CalendarIcon/index.js +2 -1
- package/dist/components/form/DateInput/components/MobileDrawerDateCalendar/index.js +2 -1
- package/dist/components/form/DateInput/components/MobileDrawerDateCalendar/index.stories.js +2 -1
- package/dist/components/form/DateInput/index.js +2 -1
- package/dist/components/form/DateInput/index.stories.js +2 -1
- package/dist/components/form/DateInput/logic.d.ts +1 -0
- package/dist/components/form/DateInput/logic.js +11 -0
- package/dist/components/form/DateTimeInput/components/MobileDatePicker/index.d.ts +12 -0
- package/dist/components/form/DateTimeInput/components/MobileDatePicker/index.js +83 -0
- package/dist/components/form/DateTimeInput/components/MobileDatePicker/index.stories.d.ts +6 -0
- package/dist/components/form/DateTimeInput/components/MobileDatePicker/index.stories.js +48 -0
- package/dist/components/form/DateTimeInput/components/MobileDatePicker/logic.d.ts +11 -0
- package/dist/components/form/DateTimeInput/components/MobileDatePicker/logic.js +92 -0
- package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.d.ts +4 -0
- package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.js +42 -22
- package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.stories.js +2 -1
- package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/styles.d.ts +1 -2
- package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/styles.js +4 -8
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/components/WheelColumn/index.d.ts +14 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/components/WheelColumn/index.js +259 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/components/WheelColumn/styles.d.ts +12 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/components/WheelColumn/styles.js +35 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/constants.d.ts +11 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/constants.js +40 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/index.d.ts +12 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/index.js +48 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/index.stories.d.ts +5 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/index.stories.js +47 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/palette.d.ts +9 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/palette.js +17 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/styles.d.ts +12 -0
- package/dist/components/form/DateTimeInput/components/MobileWheelPicker/styles.js +39 -0
- package/dist/components/form/DateTimeInput/components/TimePicker/index.d.ts +1 -0
- package/dist/components/form/DateTimeInput/components/TimePicker/index.js +34 -16
- package/dist/components/form/DateTimeInput/components/TimePicker/index.stories.d.ts +1 -0
- package/dist/components/form/DateTimeInput/components/TimePicker/index.stories.js +31 -17
- package/dist/components/form/DateTimeInput/components/TimePicker/styles.d.ts +0 -4
- package/dist/components/form/DateTimeInput/components/TimePicker/styles.js +2 -13
- package/dist/components/form/DateTimeInput/index.js +22 -4
- package/dist/components/form/DateTimeInput/index.stories.js +2 -1
- package/dist/components/form/InputLabel/index.js +2 -1
- package/dist/components/form/InputLabel/styles.js +2 -1
- package/dist/components/form/ModernPlaceholder/index.js +2 -1
- package/dist/components/form/PhoneInput/index.d.ts +1 -0
- package/dist/components/form/PhoneInput/index.js +2 -1
- package/dist/components/form/PhoneInput/index.stories.js +4 -2
- package/dist/components/form/PhoneInput/phoneInputLogic.d.ts +2 -0
- package/dist/components/form/PhoneInput/types.d.ts +1 -0
- package/dist/components/form/PositiveIntegerInput/index.js +2 -1
- package/dist/components/form/PositiveIntegerInput/index.stories.js +2 -1
- package/dist/components/form/PositiveIntegerInput/styles.js +2 -1
- package/dist/components/form/PureInput/index.js +4 -3
- package/dist/components/form/PureInput/styles.js +2 -2
- package/dist/components/form/ResetButton/index.js +2 -1
- package/dist/components/form/SearchInput/index.js +2 -1
- package/dist/components/form/SearchInput/index.stories.js +2 -1
- package/dist/components/form/Select/components/Input/index.js +2 -1
- package/dist/components/form/Select/components/Loader/index.js +2 -1
- package/dist/components/form/Select/components/MultipleValue/index.js +2 -1
- package/dist/components/form/Select/components/MultipleValue/styles.js +2 -1
- package/dist/components/form/Select/index.js +2 -1
- package/dist/components/form/Select/index.stories.js +2 -1
- package/dist/components/form/Select/styles.js +2 -1
- package/dist/components/form/TagsInput/index.js +2 -1
- package/dist/components/form/TagsInput/index.stories.js +2 -1
- package/dist/components/form/TagsInput/styles.js +2 -2
- package/dist/components/form/TextInput/index.js +2 -1
- package/dist/components/form/TextInput/index.stories.js +2 -1
- package/dist/components/form/Toggle/index.js +4 -3
- package/dist/components/form/Toggle/index.stories.js +2 -1
- package/dist/components/form/Toggle/styles.js +10 -10
- package/dist/components/form/_hooks/useInputStyles.js +2 -1
- package/dist/components/form/common/DrawerHeader/index.d.ts +2 -0
- package/dist/components/form/common/DrawerHeader/index.js +15 -5
- package/dist/components/form/common/DrawerHeader/styles.d.ts +4 -0
- package/dist/components/form/common/DrawerHeader/styles.js +17 -7
- package/dist/esm/components/common/Dropdown/styles.js +7 -7
- package/dist/esm/components/common/QRCode/index.js +2 -2
- package/dist/esm/components/common/SecondaryButton/index.js +2 -2
- package/dist/esm/components/common/Typography/index.js +2 -2
- package/dist/esm/components/form/Checkbox/index.js +2 -2
- package/dist/esm/components/form/CountrySelect/components/CountryItem/index.js +8 -3
- package/dist/esm/components/form/CountrySelect/components/CountryItem/stlyes.js +17 -6
- package/dist/esm/components/form/CountrySelect/index.js +3 -2
- package/dist/esm/components/form/CurrencyInput/CurrencyInputNumber/index.js +2 -2
- package/dist/esm/components/form/CurrencyInput/CurrencyInputString/index.js +2 -2
- package/dist/esm/components/form/DateInput/logic.js +11 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileDatePicker/index.js +74 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileDatePicker/index.stories.js +39 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileDatePicker/logic.js +86 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.js +40 -21
- package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/styles.js +3 -7
- package/dist/esm/components/form/DateTimeInput/components/MobileWheelPicker/components/WheelColumn/index.js +250 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileWheelPicker/components/WheelColumn/styles.js +28 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileWheelPicker/constants.js +34 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileWheelPicker/index.js +32 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileWheelPicker/index.stories.js +38 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileWheelPicker/palette.js +10 -0
- package/dist/esm/components/form/DateTimeInput/components/MobileWheelPicker/styles.js +32 -0
- package/dist/esm/components/form/DateTimeInput/components/TimePicker/index.js +32 -15
- package/dist/esm/components/form/DateTimeInput/components/TimePicker/index.stories.js +29 -15
- package/dist/esm/components/form/DateTimeInput/components/TimePicker/styles.js +1 -12
- package/dist/esm/components/form/DateTimeInput/index.js +21 -4
- package/dist/esm/components/form/PhoneInput/index.stories.js +2 -1
- package/dist/esm/components/form/PureInput/index.js +2 -2
- package/dist/esm/components/form/PureInput/styles.js +2 -2
- package/dist/esm/components/form/TagsInput/styles.js +2 -2
- package/dist/esm/components/form/Toggle/index.js +2 -2
- package/dist/esm/components/form/Toggle/styles.js +10 -10
- package/dist/esm/components/form/common/DrawerHeader/index.js +13 -4
- package/dist/esm/components/form/common/DrawerHeader/styles.js +16 -6
- package/dist/esm/palette/context.js +2 -0
- package/dist/esm/palette/provider.js +2 -0
- package/dist/hooks/useUnupdatableHandler/index.stories.js +2 -1
- package/dist/palette/context.d.ts +2 -0
- package/dist/palette/context.js +48 -46
- package/dist/palette/provider.js +50 -47
- package/dist/palette/usePalette.d.ts +1 -0
- package/package.json +1 -1
- package/dist/components/form/DateTimeInput/components/MobileNumbersColumn/index.d.ts +0 -8
- package/dist/components/form/DateTimeInput/components/MobileNumbersColumn/index.js +0 -201
- package/dist/components/form/DateTimeInput/components/MobileNumbersColumn/styles.d.ts +0 -7
- package/dist/components/form/DateTimeInput/components/MobileNumbersColumn/styles.js +0 -27
- package/dist/esm/components/form/DateTimeInput/components/MobileNumbersColumn/index.js +0 -193
- package/dist/esm/components/form/DateTimeInput/components/MobileNumbersColumn/styles.js +0 -19
|
@@ -10,7 +10,8 @@ export var CountryItem = function CountryItem(_ref) {
|
|
|
10
10
|
value = _ref.value,
|
|
11
11
|
countryLabel = _ref.countryLabel,
|
|
12
12
|
selectedLabel = _ref.selectedLabel,
|
|
13
|
-
palette = _ref.palette
|
|
13
|
+
palette = _ref.palette,
|
|
14
|
+
hint = _ref.hint;
|
|
14
15
|
var handleSelect = useCallback(function () {
|
|
15
16
|
return onSelect(value);
|
|
16
17
|
}, [onSelect, value]);
|
|
@@ -24,9 +25,13 @@ export var CountryItem = function CountryItem(_ref) {
|
|
|
24
25
|
}, flag && /*#__PURE__*/React.createElement(Flag, {
|
|
25
26
|
flag: flag,
|
|
26
27
|
isSmall: true
|
|
27
|
-
}), /*#__PURE__*/React.createElement(Typography, {
|
|
28
|
+
}), /*#__PURE__*/React.createElement(S.TitleTexts, null, /*#__PURE__*/React.createElement(Typography, {
|
|
28
29
|
variant: 'captionRegular'
|
|
29
|
-
}, countryLabel, " ", isSelected && selectedLabel)
|
|
30
|
+
}, countryLabel, " ", isSelected && selectedLabel), hint && /*#__PURE__*/React.createElement(S.Hint, {
|
|
31
|
+
$palette: palette
|
|
32
|
+
}, /*#__PURE__*/React.createElement(Typography, {
|
|
33
|
+
variant: 'captionSRegular'
|
|
34
|
+
}, hint)))), /*#__PURE__*/React.createElement(Typography, {
|
|
30
35
|
variant: 'captionRegular'
|
|
31
36
|
}, description));
|
|
32
37
|
};
|
|
@@ -9,16 +9,27 @@ export var Title = styled.div.withConfig({
|
|
|
9
9
|
var $isSelected = _ref2.$isSelected;
|
|
10
10
|
return $isSelected ? 0.5 : 1;
|
|
11
11
|
});
|
|
12
|
-
export var
|
|
13
|
-
displayName: "
|
|
12
|
+
export var TitleTexts = styled.div.withConfig({
|
|
13
|
+
displayName: "stlyes__TitleTexts",
|
|
14
14
|
componentId: "sc-cou0vg-1"
|
|
15
|
-
})(["
|
|
15
|
+
})(["text-align:left;"]);
|
|
16
|
+
export var Hint = styled.div.withConfig({
|
|
17
|
+
displayName: "stlyes__Hint",
|
|
18
|
+
componentId: "sc-cou0vg-2"
|
|
19
|
+
})(["color:", ";"], function (_ref3) {
|
|
16
20
|
var $palette = _ref3.$palette;
|
|
17
|
-
return $palette.countryBg;
|
|
18
|
-
}, function (_ref4) {
|
|
19
|
-
var $palette = _ref4.$palette;
|
|
20
21
|
return $palette.countryDescription;
|
|
22
|
+
});
|
|
23
|
+
export var Wrapper = styled.button.withConfig({
|
|
24
|
+
displayName: "stlyes__Wrapper",
|
|
25
|
+
componentId: "sc-cou0vg-3"
|
|
26
|
+
})(["padding:15px 20px;display:flex;align-items:center;justify-content:space-between;width:100%;border:none;cursor:pointer;background-color:", ";color:", ";&:hover{background-color:", ";", "{opacity:0.5;}}"], function (_ref4) {
|
|
27
|
+
var $palette = _ref4.$palette;
|
|
28
|
+
return $palette.countryBg;
|
|
21
29
|
}, function (_ref5) {
|
|
22
30
|
var $palette = _ref5.$palette;
|
|
31
|
+
return $palette.countryDescription;
|
|
32
|
+
}, function (_ref6) {
|
|
33
|
+
var $palette = _ref6.$palette;
|
|
23
34
|
return $palette.countryHoverBg;
|
|
24
35
|
}, Title);
|
|
@@ -10,8 +10,8 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
10
10
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
11
11
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
12
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
13
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var
|
|
14
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (
|
|
13
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
14
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
|
|
15
15
|
import React, { useCallback, useMemo, useRef, useState } from 'react';
|
|
16
16
|
import * as S from './stlyes';
|
|
17
17
|
import { CountryItem } from './components/CountryItem';
|
|
@@ -109,6 +109,7 @@ export var CountrySelect = function CountrySelect(_ref) {
|
|
|
109
109
|
value: option.value,
|
|
110
110
|
isSelected: option === selectedOption,
|
|
111
111
|
description: option.description,
|
|
112
|
+
hint: option.hint,
|
|
112
113
|
flag: option.flag
|
|
113
114
|
});
|
|
114
115
|
})))));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var _excluded = ["onChange"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var
|
|
4
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (
|
|
3
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { CoreCurrencyInput } from '../CoreCurrencyInput';
|
|
7
7
|
export var CurrencyInputNumber = function CurrencyInputNumber(_ref) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var _excluded = ["onChange"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var
|
|
4
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (
|
|
3
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { CoreCurrencyInput } from '../CoreCurrencyInput';
|
|
7
7
|
export var CurrencyInputString = function CurrencyInputString(_ref) {
|
|
@@ -72,6 +72,17 @@ var Logic = /*#__PURE__*/function () {
|
|
|
72
72
|
}).join(':');
|
|
73
73
|
return new Date(withTime ? formattedDateStr + ' ' + formattedTimeStr : formattedDateStr);
|
|
74
74
|
}
|
|
75
|
+
|
|
76
|
+
// Поля с временем работают с точностью до минуты, а секунды приходят из
|
|
77
|
+
// `new Date()` у потребителя и ломают сравнения: выбранные 15:12:00 оказываются
|
|
78
|
+
// «меньше» границы 15:12:37, и сохранить значение невозможно.
|
|
79
|
+
}, {
|
|
80
|
+
key: "dropSeconds",
|
|
81
|
+
value: function dropSeconds(date) {
|
|
82
|
+
var newDate = new Date(date);
|
|
83
|
+
newDate.setSeconds(0, 0);
|
|
84
|
+
return newDate;
|
|
85
|
+
}
|
|
75
86
|
}, {
|
|
76
87
|
key: "addHoursAndMinutesToDate",
|
|
77
88
|
value: function addHoursAndMinutesToDate(date, hours, minutes) {
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
2
|
+
import { MobileWheelPicker, WheelColumn } from '../MobileWheelPicker';
|
|
3
|
+
import { datePickerLogic } from './logic';
|
|
4
|
+
var DAY_COLUMN_WIDTH = 56;
|
|
5
|
+
var MONTH_COLUMN_WIDTH = 116;
|
|
6
|
+
var YEAR_COLUMN_WIDTH = 76;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Барабанный выбор даты «как в ОС»: день / месяц / год.
|
|
10
|
+
* Время не трогаем — его добавляет вызывающий код, как это делает Calendar.
|
|
11
|
+
*/
|
|
12
|
+
export var MobileDatePicker = function MobileDatePicker(_ref) {
|
|
13
|
+
var value = _ref.value,
|
|
14
|
+
onChange = _ref.onChange,
|
|
15
|
+
minDate = _ref.minDate,
|
|
16
|
+
maxDate = _ref.maxDate;
|
|
17
|
+
var fallbackDate = useMemo(function () {
|
|
18
|
+
var today = new Date();
|
|
19
|
+
return datePickerLogic.clampDate(today.getFullYear(), today.getMonth(), today.getDate(), minDate, maxDate);
|
|
20
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
21
|
+
}, [minDate === null || minDate === void 0 ? void 0 : minDate.getTime(), maxDate === null || maxDate === void 0 ? void 0 : maxDate.getTime()]);
|
|
22
|
+
var currentDate = value || fallbackDate;
|
|
23
|
+
var year = currentDate.getFullYear();
|
|
24
|
+
var month = currentDate.getMonth();
|
|
25
|
+
var day = currentDate.getDate();
|
|
26
|
+
|
|
27
|
+
// В нативном пикере значение есть всегда: пустое поле открывается на сегодня,
|
|
28
|
+
// и «Готово» сразу доступно. Поднимаем стартовую дату наверх один раз.
|
|
29
|
+
var didInitRef = useRef(false);
|
|
30
|
+
useEffect(function () {
|
|
31
|
+
if (didInitRef.current || value) return;
|
|
32
|
+
didInitRef.current = true;
|
|
33
|
+
onChange(fallbackDate);
|
|
34
|
+
}, [value, fallbackDate, onChange]);
|
|
35
|
+
var yearOptions = useMemo(function () {
|
|
36
|
+
return datePickerLogic.getYearOptions(minDate, maxDate);
|
|
37
|
+
}, [minDate, maxDate]);
|
|
38
|
+
var monthOptions = useMemo(function () {
|
|
39
|
+
return datePickerLogic.getMonthOptions(year, minDate, maxDate);
|
|
40
|
+
}, [year, minDate, maxDate]);
|
|
41
|
+
var dayOptions = useMemo(function () {
|
|
42
|
+
return datePickerLogic.getDayOptions(year, month, minDate, maxDate);
|
|
43
|
+
}, [year, month, minDate, maxDate]);
|
|
44
|
+
var handleDayChange = useCallback(function (newDay) {
|
|
45
|
+
return onChange(datePickerLogic.clampDate(year, month, newDay, minDate, maxDate));
|
|
46
|
+
}, [maxDate, minDate, month, onChange, year]);
|
|
47
|
+
var handleMonthChange = useCallback(function (newMonth) {
|
|
48
|
+
return onChange(datePickerLogic.clampDate(year, newMonth, day, minDate, maxDate));
|
|
49
|
+
}, [day, maxDate, minDate, onChange, year]);
|
|
50
|
+
var handleYearChange = useCallback(function (newYear) {
|
|
51
|
+
return onChange(datePickerLogic.clampDate(newYear, month, day, minDate, maxDate));
|
|
52
|
+
}, [day, maxDate, minDate, month, onChange]);
|
|
53
|
+
return /*#__PURE__*/React.createElement(MobileWheelPicker, {
|
|
54
|
+
label: 'Дата'
|
|
55
|
+
}, /*#__PURE__*/React.createElement(WheelColumn, {
|
|
56
|
+
label: 'День',
|
|
57
|
+
options: dayOptions,
|
|
58
|
+
value: day,
|
|
59
|
+
onChange: handleDayChange,
|
|
60
|
+
width: DAY_COLUMN_WIDTH
|
|
61
|
+
}), /*#__PURE__*/React.createElement(WheelColumn, {
|
|
62
|
+
label: 'Месяц',
|
|
63
|
+
options: monthOptions,
|
|
64
|
+
value: month,
|
|
65
|
+
onChange: handleMonthChange,
|
|
66
|
+
width: MONTH_COLUMN_WIDTH
|
|
67
|
+
}), /*#__PURE__*/React.createElement(WheelColumn, {
|
|
68
|
+
label: 'Год',
|
|
69
|
+
options: yearOptions,
|
|
70
|
+
value: year,
|
|
71
|
+
onChange: handleYearChange,
|
|
72
|
+
width: YEAR_COLUMN_WIDTH
|
|
73
|
+
}));
|
|
74
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
5
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
6
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
7
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
8
|
+
import React, { useState } from 'react';
|
|
9
|
+
import { MobileDatePicker } from '.';
|
|
10
|
+
var meta = {
|
|
11
|
+
title: 'form/DateTimeInput/_components/MobileDatePicker',
|
|
12
|
+
component: MobileDatePicker,
|
|
13
|
+
tags: ['autodocs']
|
|
14
|
+
};
|
|
15
|
+
export default meta;
|
|
16
|
+
var Render = function Render(args) {
|
|
17
|
+
var _useState = useState(args.value),
|
|
18
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
19
|
+
value = _useState2[0],
|
|
20
|
+
setValue = _useState2[1];
|
|
21
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(MobileDatePicker, _extends({}, args, {
|
|
22
|
+
value: value,
|
|
23
|
+
onChange: setValue
|
|
24
|
+
})), /*#__PURE__*/React.createElement("div", null, value ? value.toDateString() : 'не выбрано'));
|
|
25
|
+
};
|
|
26
|
+
export var Default = {
|
|
27
|
+
args: {
|
|
28
|
+
value: null
|
|
29
|
+
},
|
|
30
|
+
render: Render
|
|
31
|
+
};
|
|
32
|
+
export var WithMinAndMaxDate = {
|
|
33
|
+
args: {
|
|
34
|
+
value: null,
|
|
35
|
+
minDate: new Date(2024, 5, 10),
|
|
36
|
+
maxDate: new Date(2026, 8, 25)
|
|
37
|
+
},
|
|
38
|
+
render: Render
|
|
39
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
3
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
4
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
// Родительный падеж — барабан читается как одна строка: «20 июня 1986».
|
|
8
|
+
export var MONTHS = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];
|
|
9
|
+
|
|
10
|
+
// Диапазон лет по умолчанию, когда minDate/maxDate не заданы.
|
|
11
|
+
var YEARS_BACK = 100;
|
|
12
|
+
var YEARS_FORWARD = 100;
|
|
13
|
+
var clampNumber = function clampNumber(value, min, max) {
|
|
14
|
+
return Math.min(Math.max(value, min), max);
|
|
15
|
+
};
|
|
16
|
+
var range = function range(from, to) {
|
|
17
|
+
return to < from ? [from] : new Array(to - from + 1).fill(0).map(function (item, index) {
|
|
18
|
+
return from + index;
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var DatePickerLogic = /*#__PURE__*/function () {
|
|
22
|
+
function DatePickerLogic() {
|
|
23
|
+
_classCallCheck(this, DatePickerLogic);
|
|
24
|
+
}
|
|
25
|
+
return _createClass(DatePickerLogic, [{
|
|
26
|
+
key: "getDaysInMonth",
|
|
27
|
+
value: function getDaysInMonth(year, month) {
|
|
28
|
+
// Нулевой день следующего месяца — последний день текущего.
|
|
29
|
+
return new Date(year, month + 1, 0).getDate();
|
|
30
|
+
}
|
|
31
|
+
}, {
|
|
32
|
+
key: "getYearOptions",
|
|
33
|
+
value: function getYearOptions(minDate, maxDate) {
|
|
34
|
+
var currentYear = new Date().getFullYear();
|
|
35
|
+
var from = minDate ? minDate.getFullYear() : currentYear - YEARS_BACK;
|
|
36
|
+
var to = maxDate ? maxDate.getFullYear() : currentYear + YEARS_FORWARD;
|
|
37
|
+
return range(from, to).map(function (year) {
|
|
38
|
+
return {
|
|
39
|
+
value: year,
|
|
40
|
+
label: year.toString()
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
key: "getMonthOptions",
|
|
46
|
+
value: function getMonthOptions(year, minDate, maxDate) {
|
|
47
|
+
var from = minDate && year === minDate.getFullYear() ? minDate.getMonth() : 0;
|
|
48
|
+
var to = maxDate && year === maxDate.getFullYear() ? maxDate.getMonth() : 11;
|
|
49
|
+
return range(from, to).map(function (month) {
|
|
50
|
+
return {
|
|
51
|
+
value: month,
|
|
52
|
+
label: MONTHS[month]
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
key: "getDayOptions",
|
|
58
|
+
value: function getDayOptions(year, month, minDate, maxDate) {
|
|
59
|
+
var isMinMonth = !!minDate && year === minDate.getFullYear() && month === minDate.getMonth();
|
|
60
|
+
var isMaxMonth = !!maxDate && year === maxDate.getFullYear() && month === maxDate.getMonth();
|
|
61
|
+
var from = isMinMonth && minDate ? minDate.getDate() : 1;
|
|
62
|
+
var to = isMaxMonth && maxDate ? maxDate.getDate() : this.getDaysInMonth(year, month);
|
|
63
|
+
return range(from, to).map(function (day) {
|
|
64
|
+
return {
|
|
65
|
+
value: day,
|
|
66
|
+
label: day.toString()
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Приводит произвольную комбинацию колонок к дате внутри minDate/maxDate:
|
|
72
|
+
// сначала год, затем месяц (он зависит от года), затем день (зависит от обоих).
|
|
73
|
+
}, {
|
|
74
|
+
key: "clampDate",
|
|
75
|
+
value: function clampDate(year, month, day, minDate, maxDate) {
|
|
76
|
+
var yearOptions = this.getYearOptions(minDate, maxDate);
|
|
77
|
+
var safeYear = clampNumber(year, yearOptions[0].value, yearOptions[yearOptions.length - 1].value);
|
|
78
|
+
var monthOptions = this.getMonthOptions(safeYear, minDate, maxDate);
|
|
79
|
+
var safeMonth = clampNumber(month, monthOptions[0].value, monthOptions[monthOptions.length - 1].value);
|
|
80
|
+
var dayOptions = this.getDayOptions(safeYear, safeMonth, minDate, maxDate);
|
|
81
|
+
var safeDay = clampNumber(day, dayOptions[0].value, dayOptions[dayOptions.length - 1].value);
|
|
82
|
+
return new Date(safeYear, safeMonth, safeDay);
|
|
83
|
+
}
|
|
84
|
+
}]);
|
|
85
|
+
}();
|
|
86
|
+
export var datePickerLogic = new DatePickerLogic();
|
package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.js
CHANGED
|
@@ -7,26 +7,43 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
|
7
7
|
import React, { useState } from 'react';
|
|
8
8
|
import { Drawer } from '../../../../common/Drawer';
|
|
9
9
|
import * as S from './styles';
|
|
10
|
-
import { Calendar } from '../../../../common/Calendar';
|
|
11
10
|
import { TimePicker } from '../TimePicker';
|
|
11
|
+
import { MobileDatePicker } from '../MobileDatePicker';
|
|
12
12
|
import { logic } from '../../../DateInput/logic';
|
|
13
13
|
import { DrawerHeader } from '../../../common/DrawerHeader';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
// Барабан времени должен открываться на допустимом значении: иначе после выбора даты
|
|
15
|
+
// «Готово» остаётся недоступным, пока пользователь вручную не прокрутит часы.
|
|
16
|
+
var clampTime = function clampTime(_ref, minTime, maxTime) {
|
|
17
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
18
|
+
hour = _ref2[0],
|
|
19
|
+
minute = _ref2[1];
|
|
20
|
+
if (minTime && (hour < minTime[0] || hour === minTime[0] && minute < minTime[1])) return minTime;
|
|
21
|
+
if (maxTime && (hour > maxTime[0] || hour === maxTime[0] && minute > maxTime[1])) return maxTime;
|
|
22
|
+
return [hour, minute];
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Ввод даты и времени барабанами, как в системных пикерах: сначала шаг с датой,
|
|
27
|
+
* затем шаг со временем. «Отмена» закрывает шторку целиком, правая кнопка ведёт вперёд.
|
|
28
|
+
*/
|
|
29
|
+
export var MobileDrawerDateTimeCalendar = function MobileDrawerDateTimeCalendar(_ref3) {
|
|
30
|
+
var isOpen = _ref3.isOpen,
|
|
31
|
+
onClose = _ref3.onClose,
|
|
32
|
+
maxDate = _ref3.maxDate,
|
|
33
|
+
minDate = _ref3.minDate,
|
|
34
|
+
onCalendarChange = _ref3.onCalendarChange,
|
|
35
|
+
calendarDropdownValue = _ref3.calendarDropdownValue,
|
|
36
|
+
afterSubmit = _ref3.afterSubmit,
|
|
37
|
+
onSubmit = _ref3.onSubmit,
|
|
38
|
+
onTimeChange = _ref3.onTimeChange,
|
|
39
|
+
maxTime = _ref3.maxTime,
|
|
40
|
+
minTime = _ref3.minTime;
|
|
26
41
|
var _useState = useState(true),
|
|
27
42
|
_useState2 = _slicedToArray(_useState, 2),
|
|
28
43
|
isDateStep = _useState2[0],
|
|
29
44
|
setIsDateStep = _useState2[1];
|
|
45
|
+
var currentHour = (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getHours()) || 0;
|
|
46
|
+
var currentMinute = (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getMinutes()) || 0;
|
|
30
47
|
var handleClose = function handleClose() {
|
|
31
48
|
onClose();
|
|
32
49
|
setIsDateStep(true);
|
|
@@ -34,14 +51,14 @@ export var MobileDrawerDateTimeCalendar = function MobileDrawerDateTimeCalendar(
|
|
|
34
51
|
var handleDone = function handleDone() {
|
|
35
52
|
if (isDateStep) {
|
|
36
53
|
setIsDateStep(false);
|
|
54
|
+
var safeTime = clampTime([currentHour, currentMinute], minTime, maxTime);
|
|
55
|
+
if (safeTime[0] !== currentHour || safeTime[1] !== currentMinute) onTimeChange(safeTime);
|
|
37
56
|
} else {
|
|
38
57
|
onSubmit();
|
|
39
58
|
afterSubmit();
|
|
40
59
|
setIsDateStep(true);
|
|
41
60
|
}
|
|
42
61
|
};
|
|
43
|
-
var currentHour = (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getHours()) || 0;
|
|
44
|
-
var currentMinute = (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getMinutes()) || 0;
|
|
45
62
|
return /*#__PURE__*/React.createElement(Drawer, {
|
|
46
63
|
onClose: handleClose,
|
|
47
64
|
isOpen: isOpen,
|
|
@@ -49,15 +66,17 @@ export var MobileDrawerDateTimeCalendar = function MobileDrawerDateTimeCalendar(
|
|
|
49
66
|
}, /*#__PURE__*/React.createElement(DrawerHeader, {
|
|
50
67
|
onClose: handleClose,
|
|
51
68
|
onSubmit: handleDone,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
closeLabel: 'Отмена',
|
|
70
|
+
submitLabel: isDateStep ? 'Далее' : 'Готово',
|
|
71
|
+
label: isDateStep ? 'Дата' : 'Время',
|
|
72
|
+
isSubmitDisabled: !calendarDropdownValue || !isDateStep && !logic.isBetweenMinAndMax(calendarDropdownValue, minDate, maxDate)
|
|
73
|
+
}), /*#__PURE__*/React.createElement(S.PickerWrapper, null, isDateStep ? /*#__PURE__*/React.createElement(MobileDatePicker, {
|
|
55
74
|
value: calendarDropdownValue,
|
|
56
75
|
onChange: onCalendarChange,
|
|
57
76
|
minDate: minDate,
|
|
58
|
-
maxDate: maxDate
|
|
59
|
-
|
|
60
|
-
|
|
77
|
+
maxDate: maxDate
|
|
78
|
+
}) : /*#__PURE__*/React.createElement(TimePicker, {
|
|
79
|
+
isMobile: true,
|
|
61
80
|
value: [currentHour, currentMinute],
|
|
62
81
|
onChange: onTimeChange,
|
|
63
82
|
maxTime: maxTime,
|
package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/styles.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import styled from 'styled-components';
|
|
2
|
-
export var
|
|
3
|
-
displayName: "
|
|
2
|
+
export var PickerWrapper = styled.div.withConfig({
|
|
3
|
+
displayName: "styles__PickerWrapper",
|
|
4
4
|
componentId: "sc-vw0y4c-0"
|
|
5
|
-
})(["padding:
|
|
6
|
-
export var TimePickerWrapper = styled.div.withConfig({
|
|
7
|
-
displayName: "styles__TimePickerWrapper",
|
|
8
|
-
componentId: "sc-vw0y4c-1"
|
|
9
|
-
})(["padding-bottom:30px;display:flex;justify-content:center;"]);
|
|
5
|
+
})(["padding:20px 16px 30px;display:flex;justify-content:center;"]);
|