@salutejs/plasma-new-hope 0.337.0-canary.2184.17981110340.0 → 0.337.0-canary.2184.18005913845.0
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/cjs/components/TimePicker/TimePicker.css +11 -9
- package/cjs/components/TimePicker/TimePicker.js +108 -96
- package/cjs/components/TimePicker/TimePicker.js.map +1 -1
- package/cjs/components/TimePicker/TimePicker.styles.js +3 -48
- package/cjs/components/TimePicker/TimePicker.styles.js.map +1 -1
- package/cjs/components/TimePicker/TimePicker.styles_ar3obv.css +4 -0
- package/cjs/components/TimePicker/TimePicker.tokens.js +3 -2
- package/cjs/components/TimePicker/TimePicker.tokens.js.map +1 -1
- package/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +7 -13
- package/cjs/components/TimePicker/hooks/useKeyboardNavigation.js.map +1 -1
- package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.css +7 -0
- package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
- package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js.map +1 -0
- package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +61 -0
- package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js.map +1 -0
- package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles_juymyb.css +7 -0
- package/cjs/components/TimePicker/utils/index.js +40 -42
- package/cjs/components/TimePicker/utils/index.js.map +1 -1
- package/cjs/index.css +11 -9
- package/emotion/cjs/components/TimePicker/TimePicker.js +104 -92
- package/emotion/cjs/components/TimePicker/TimePicker.styles.js +7 -52
- package/emotion/cjs/components/TimePicker/TimePicker.tokens.js +3 -2
- package/emotion/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +7 -15
- package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
- package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +71 -0
- package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +4 -0
- package/emotion/cjs/components/TimePicker/utils/index.js +40 -42
- package/emotion/cjs/examples/components/Combobox/Combobox.js +15 -0
- package/emotion/cjs/examples/components/TimePicker/TimePicker.config.js +7 -7
- package/emotion/es/components/TimePicker/TimePicker.js +106 -94
- package/emotion/es/components/TimePicker/TimePicker.styles.js +7 -34
- package/emotion/es/components/TimePicker/TimePicker.tokens.js +3 -2
- package/emotion/es/components/TimePicker/hooks/useKeyboardNavigation.js +7 -15
- package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +50 -0
- package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +33 -0
- package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +1 -0
- package/emotion/es/components/TimePicker/utils/index.js +37 -42
- package/emotion/es/examples/components/Combobox/Combobox.js +0 -7
- package/emotion/es/examples/components/TimePicker/TimePicker.config.js +7 -7
- package/es/components/TimePicker/TimePicker.css +11 -9
- package/es/components/TimePicker/TimePicker.js +110 -98
- package/es/components/TimePicker/TimePicker.js.map +1 -1
- package/es/components/TimePicker/TimePicker.styles.js +4 -43
- package/es/components/TimePicker/TimePicker.styles.js.map +1 -1
- package/es/components/TimePicker/TimePicker.styles_ar3obv.css +4 -0
- package/es/components/TimePicker/TimePicker.tokens.js +3 -2
- package/es/components/TimePicker/TimePicker.tokens.js.map +1 -1
- package/es/components/TimePicker/hooks/useKeyboardNavigation.js +7 -13
- package/es/components/TimePicker/hooks/useKeyboardNavigation.js.map +1 -1
- package/es/components/TimePicker/ui/TimeColumn/TimeColumn.css +7 -0
- package/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +56 -0
- package/es/components/TimePicker/ui/TimeColumn/TimeColumn.js.map +1 -0
- package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +51 -0
- package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js.map +1 -0
- package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles_juymyb.css +7 -0
- package/es/components/TimePicker/utils/index.js +40 -43
- package/es/components/TimePicker/utils/index.js.map +1 -1
- package/es/index.css +11 -9
- package/package.json +2 -2
- package/styled-components/cjs/components/TimePicker/TimePicker.js +104 -92
- package/styled-components/cjs/components/TimePicker/TimePicker.styles.js +6 -88
- package/styled-components/cjs/components/TimePicker/TimePicker.tokens.js +3 -2
- package/styled-components/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +7 -15
- package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
- package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +112 -0
- package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +4 -0
- package/styled-components/cjs/components/TimePicker/utils/index.js +40 -42
- package/styled-components/cjs/examples/components/TimePicker/TimePicker.config.js +29 -11
- package/styled-components/es/components/TimePicker/TimePicker.js +106 -94
- package/styled-components/es/components/TimePicker/TimePicker.styles.js +6 -70
- package/styled-components/es/components/TimePicker/TimePicker.tokens.js +3 -2
- package/styled-components/es/components/TimePicker/hooks/useKeyboardNavigation.js +7 -15
- package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +50 -0
- package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +74 -0
- package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +1 -0
- package/styled-components/es/components/TimePicker/utils/index.js +37 -42
- package/styled-components/es/examples/components/Combobox/Combobox.js +0 -7
- package/styled-components/es/examples/components/TimePicker/TimePicker.config.js +29 -11
- package/types/components/TimePicker/TimePicker.d.ts +2 -2
- package/types/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/types/components/TimePicker/TimePicker.styles.d.ts +0 -8
- package/types/components/TimePicker/TimePicker.styles.d.ts.map +1 -1
- package/types/components/TimePicker/TimePicker.tokens.d.ts +3 -2
- package/types/components/TimePicker/TimePicker.tokens.d.ts.map +1 -1
- package/types/components/TimePicker/TimePicker.types.d.ts +1 -1
- package/types/components/TimePicker/TimePicker.types.d.ts.map +1 -1
- package/types/components/TimePicker/hooks/useKeyboardNavigation.d.ts.map +1 -1
- package/types/components/TimePicker/ui/TimeColumn/TimeColumn.d.ts +3 -0
- package/types/components/TimePicker/ui/TimeColumn/TimeColumn.d.ts.map +1 -0
- package/types/components/TimePicker/ui/TimeColumn/TimeColumn.styles.d.ts +10 -0
- package/types/components/TimePicker/ui/TimeColumn/TimeColumn.styles.d.ts.map +1 -0
- package/types/components/TimePicker/ui/TimeColumn/TimeColumn.types.d.ts +35 -0
- package/types/components/TimePicker/ui/TimeColumn/TimeColumn.types.d.ts.map +1 -0
- package/types/components/TimePicker/utils/index.d.ts +1 -0
- package/types/components/TimePicker/utils/index.d.ts.map +1 -1
- package/types/examples/components/TimePicker/TimePicker.config.d.ts.map +1 -1
- package/types/examples/components/TimePicker/TimePicker.d.ts +1 -1
- package/types/examples/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/cjs/components/TimePicker/TimePicker.styles_dnulzj.css +0 -10
- package/es/components/TimePicker/TimePicker.styles_dnulzj.css +0 -10
|
@@ -138,14 +138,15 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
138
138
|
import React, { forwardRef, useRef, useState, useEffect, useCallback } from "react";
|
|
139
139
|
import cls from "classnames";
|
|
140
140
|
import { getPlacements } from "../../utils";
|
|
141
|
-
import { range, processTimeInput, animateScrollTo } from "./utils";
|
|
142
|
-
import { base, StyledInput, StyledPopover,
|
|
141
|
+
import { range, processTimeInput, animateScrollTo, delimiter } from "./utils";
|
|
142
|
+
import { base, StyledInput, StyledPopover, StyledTimePicker } from "./TimePicker.styles";
|
|
143
143
|
import { classes } from "./TimePicker.tokens";
|
|
144
144
|
import { base as sizeCSS } from "./variations/_size/base";
|
|
145
145
|
import { base as viewCSS } from "./variations/_view/base";
|
|
146
146
|
import { base as disabledCSS } from "./variations/_disabled/base";
|
|
147
147
|
import { base as readonlyCSS } from "./variations/_readonly/base";
|
|
148
148
|
import { useKeyNavigation } from "./hooks/useKeyboardNavigation";
|
|
149
|
+
import { renderTimeColumn } from "./ui/TimeColumn/TimeColumn";
|
|
149
150
|
export var timePickerRoot = function(Root) {
|
|
150
151
|
return /*#__PURE__*/ forwardRef(function(_param, ref) {
|
|
151
152
|
var className = _param.className, _param_opened = _param.opened, opened = _param_opened === void 0 ? false : _param_opened, outerValue = _param.value, label = _param.label, _param_labelPlacement = _param.labelPlacement, labelPlacement = _param_labelPlacement === void 0 ? 'outer' : _param_labelPlacement, keepPlaceholder = _param.keepPlaceholder, _param_required = _param.required, required = _param_required === void 0 ? false : _param_required, _param_requiredPlacement = _param.requiredPlacement, requiredPlacement = _param_requiredPlacement === void 0 ? 'right' : _param_requiredPlacement, _param_hasRequiredIndicator = _param.hasRequiredIndicator, hasRequiredIndicator = _param_hasRequiredIndicator === void 0 ? true : _param_hasRequiredIndicator, placeholder = _param.placeholder, contentLeft = _param.contentLeft, contentRight = _param.contentRight, textBefore = _param.textBefore, textAfter = _param.textAfter, view = _param.view, size = _param.size, _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, _param_readonly = _param.readonly, readonly = _param_readonly === void 0 ? false : _param_readonly, _param_frame = _param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = _param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, offset = _param.offset, stretched = _param.stretched, _param_dropdownAlign = _param.dropdownAlign, dropdownAlign = _param_dropdownAlign === void 0 ? 'left' : _param_dropdownAlign, dropdownWidth = _param.dropdownWidth, dropdownHeight = _param.dropdownHeight, _param_columnsQuantity = _param.columnsQuantity, columnsQuantity = _param_columnsQuantity === void 0 ? 2 : _param_columnsQuantity, onToggle = _param.onToggle, onFocus = _param.onFocus, onChange = _param.onChange, rest = _object_without_properties(_param, [
|
|
@@ -229,6 +230,7 @@ export var timePickerRoot = function(Root) {
|
|
|
229
230
|
var hours = range(24);
|
|
230
231
|
var minutes = range(60);
|
|
231
232
|
var seconds = range(60);
|
|
233
|
+
var minScrollbarTrackHeight = 20;
|
|
232
234
|
var calculateScrollbar = useCallback(function(columnRef) {
|
|
233
235
|
if (!columnRef.current) return {
|
|
234
236
|
thumbHeight: 0,
|
|
@@ -236,7 +238,7 @@ export var timePickerRoot = function(Root) {
|
|
|
236
238
|
};
|
|
237
239
|
var _columnRef_current = columnRef.current, scrollTop = _columnRef_current.scrollTop, scrollHeight = _columnRef_current.scrollHeight, clientHeight = _columnRef_current.clientHeight;
|
|
238
240
|
var trackHeight = clientHeight;
|
|
239
|
-
var thumbHeight = Math.max(trackHeight / scrollHeight * trackHeight,
|
|
241
|
+
var thumbHeight = Math.max(trackHeight / scrollHeight * trackHeight, minScrollbarTrackHeight);
|
|
240
242
|
var maxScroll = scrollHeight - clientHeight;
|
|
241
243
|
var thumbPosition = maxScroll > 0 ? scrollTop / maxScroll * (trackHeight - thumbHeight) : 0;
|
|
242
244
|
return {
|
|
@@ -340,35 +342,37 @@ export var timePickerRoot = function(Root) {
|
|
|
340
342
|
};
|
|
341
343
|
}, []);
|
|
342
344
|
useEffect(function() {
|
|
343
|
-
if (isInnerOpen) {
|
|
344
|
-
|
|
345
|
-
updateScrollbar(hoursColumnRef, setHoursScrollbar);
|
|
346
|
-
updateScrollbar(minutesColumnRef, setMinutesScrollbar);
|
|
347
|
-
if (columnsQuantity === 3) {
|
|
348
|
-
updateScrollbar(secondsColumnRef, setSecondsScrollbar);
|
|
349
|
-
}
|
|
350
|
-
}, 100);
|
|
345
|
+
if (!isInnerOpen) {
|
|
346
|
+
return;
|
|
351
347
|
}
|
|
348
|
+
setTimeout(function() {
|
|
349
|
+
updateScrollbar(hoursColumnRef, setHoursScrollbar);
|
|
350
|
+
updateScrollbar(minutesColumnRef, setMinutesScrollbar);
|
|
351
|
+
if (columnsQuantity === 3) {
|
|
352
|
+
updateScrollbar(secondsColumnRef, setSecondsScrollbar);
|
|
353
|
+
}
|
|
354
|
+
}, 100);
|
|
352
355
|
}, [
|
|
353
356
|
isInnerOpen,
|
|
354
357
|
columnsQuantity,
|
|
355
358
|
updateScrollbar
|
|
356
359
|
]);
|
|
357
360
|
useEffect(function() {
|
|
358
|
-
if (viewValue) {
|
|
359
|
-
|
|
360
|
-
if (format === 'HH:mm' && viewValue.length > 5) {
|
|
361
|
-
timeString = viewValue.substring(0, 5);
|
|
362
|
-
}
|
|
363
|
-
setInnerTime(viewValue);
|
|
364
|
-
var _timeString_split_map = _sliced_to_array(timeString.split(':').map(Number), 3), hh = _timeString_split_map[0], mm = _timeString_split_map[1], ss = _timeString_split_map[2];
|
|
365
|
-
setActiveTime({
|
|
366
|
-
hours: !Number.isNaN(hh) ? hh : null,
|
|
367
|
-
minutes: !Number.isNaN(mm) ? mm : null,
|
|
368
|
-
seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,
|
|
369
|
-
currentColumn: null
|
|
370
|
-
});
|
|
361
|
+
if (!viewValue) {
|
|
362
|
+
return;
|
|
371
363
|
}
|
|
364
|
+
var timeString = viewValue;
|
|
365
|
+
if (format === 'HH:mm' && viewValue.length > 5) {
|
|
366
|
+
timeString = viewValue.substring(0, 5);
|
|
367
|
+
}
|
|
368
|
+
setInnerTime(viewValue);
|
|
369
|
+
var _timeString_split_map = _sliced_to_array(timeString.split(delimiter).map(Number), 3), hh = _timeString_split_map[0], mm = _timeString_split_map[1], ss = _timeString_split_map[2];
|
|
370
|
+
setActiveTime({
|
|
371
|
+
hours: !Number.isNaN(hh) ? hh : null,
|
|
372
|
+
minutes: !Number.isNaN(mm) ? mm : null,
|
|
373
|
+
seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,
|
|
374
|
+
currentColumn: null
|
|
375
|
+
});
|
|
372
376
|
}, [
|
|
373
377
|
outerValue,
|
|
374
378
|
format
|
|
@@ -403,13 +407,7 @@ export var timePickerRoot = function(Root) {
|
|
|
403
407
|
var scrollPosition = index * (itemHeight + gap);
|
|
404
408
|
animateScrollTo(columnRef.current, scrollPosition);
|
|
405
409
|
setTimeout(function() {
|
|
406
|
-
|
|
407
|
-
updateScrollbar(hoursColumnRef, setHoursScrollbar);
|
|
408
|
-
} else if (columnRef === minutesColumnRef) {
|
|
409
|
-
updateScrollbar(minutesColumnRef, setMinutesScrollbar);
|
|
410
|
-
} else if (columnRef === secondsColumnRef) {
|
|
411
|
-
updateScrollbar(secondsColumnRef, setSecondsScrollbar);
|
|
412
|
-
}
|
|
410
|
+
updateScrollbar(columnRef, setHoursScrollbar);
|
|
413
411
|
}, 300);
|
|
414
412
|
}
|
|
415
413
|
};
|
|
@@ -519,7 +517,7 @@ export var timePickerRoot = function(Root) {
|
|
|
519
517
|
};
|
|
520
518
|
var handleTimeItemClick = function(value, column) {
|
|
521
519
|
var isNextColumn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
|
|
522
|
-
var currentTime = innerTime.split(
|
|
520
|
+
var currentTime = innerTime.split(delimiter);
|
|
523
521
|
var newTime = [];
|
|
524
522
|
if (format === 'HH:mm:ss') {
|
|
525
523
|
newTime = _to_consumable_array(currentTime);
|
|
@@ -539,10 +537,8 @@ export var timePickerRoot = function(Root) {
|
|
|
539
537
|
if (!currentTime[1]) {
|
|
540
538
|
newTime[1] = '00';
|
|
541
539
|
}
|
|
542
|
-
if (format === 'HH:mm:ss') {
|
|
543
|
-
|
|
544
|
-
newTime[2] = '00';
|
|
545
|
-
}
|
|
540
|
+
if (format === 'HH:mm:ss' && !currentTime[2]) {
|
|
541
|
+
newTime[2] = '00';
|
|
546
542
|
}
|
|
547
543
|
break;
|
|
548
544
|
case 'minutes':
|
|
@@ -550,10 +546,8 @@ export var timePickerRoot = function(Root) {
|
|
|
550
546
|
if (!currentTime[0]) {
|
|
551
547
|
newTime[0] = '00';
|
|
552
548
|
}
|
|
553
|
-
if (format === 'HH:mm:ss') {
|
|
554
|
-
|
|
555
|
-
newTime[2] = '00';
|
|
556
|
-
}
|
|
549
|
+
if (format === 'HH:mm:ss' && !currentTime[2]) {
|
|
550
|
+
newTime[2] = '00';
|
|
557
551
|
}
|
|
558
552
|
break;
|
|
559
553
|
case 'seconds':
|
|
@@ -570,7 +564,7 @@ export var timePickerRoot = function(Root) {
|
|
|
570
564
|
default:
|
|
571
565
|
break;
|
|
572
566
|
}
|
|
573
|
-
var newTimeString = newTime.join(
|
|
567
|
+
var newTimeString = newTime.join(delimiter);
|
|
574
568
|
setInnerTime(newTimeString);
|
|
575
569
|
var nextColumn = null;
|
|
576
570
|
if (column === 'hours' && isNextColumn) {
|
|
@@ -608,12 +602,14 @@ export var timePickerRoot = function(Root) {
|
|
|
608
602
|
seconds: values.ss
|
|
609
603
|
});
|
|
610
604
|
});
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
605
|
+
if (onChange) {
|
|
606
|
+
onChange(_object_spread_props(_object_spread({}, event), {
|
|
607
|
+
target: _object_spread_props(_object_spread({}, event.target), {
|
|
608
|
+
value: innerString,
|
|
609
|
+
timeValues: values
|
|
610
|
+
})
|
|
611
|
+
}));
|
|
612
|
+
}
|
|
617
613
|
requestAnimationFrame(function() {
|
|
618
614
|
if (inputRef.current) {
|
|
619
615
|
inputRef.current.setSelectionRange(newCursorPosition, newCursorPosition);
|
|
@@ -632,9 +628,13 @@ export var timePickerRoot = function(Root) {
|
|
|
632
628
|
onToggle === null || onToggle === void 0 ? void 0 : onToggle(true);
|
|
633
629
|
return;
|
|
634
630
|
}
|
|
635
|
-
if (!isInnerOpen)
|
|
631
|
+
if (!isInnerOpen) {
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
636
634
|
var currentColumn = activeTime.currentColumn;
|
|
637
|
-
if (!currentColumn)
|
|
635
|
+
if (!currentColumn) {
|
|
636
|
+
return;
|
|
637
|
+
}
|
|
638
638
|
var newIndex = null;
|
|
639
639
|
var newColumn = currentColumn;
|
|
640
640
|
if ([
|
|
@@ -687,8 +687,11 @@ export var timePickerRoot = function(Root) {
|
|
|
687
687
|
}
|
|
688
688
|
break;
|
|
689
689
|
case 'ArrowLeft':
|
|
690
|
-
if (currentColumn === 'minutes')
|
|
691
|
-
|
|
690
|
+
if (currentColumn === 'minutes') {
|
|
691
|
+
newColumn = 'hours';
|
|
692
|
+
} else if (currentColumn === 'seconds') {
|
|
693
|
+
newColumn = 'minutes';
|
|
694
|
+
}
|
|
692
695
|
var _activeTime_newColumn1;
|
|
693
696
|
newIndex = (_activeTime_newColumn1 = activeTime[newColumn]) !== null && _activeTime_newColumn1 !== void 0 ? _activeTime_newColumn1 : 0;
|
|
694
697
|
setActiveTime(_object_spread_props(_object_spread({}, activeTime), _define_property({
|
|
@@ -708,11 +711,15 @@ export var timePickerRoot = function(Root) {
|
|
|
708
711
|
handleTimeItemClick(value, column);
|
|
709
712
|
}
|
|
710
713
|
};
|
|
714
|
+
var handleOnKeyDown = function(e) {
|
|
715
|
+
onKeyDownNavigation(e);
|
|
716
|
+
handleKeyDown(e);
|
|
717
|
+
};
|
|
711
718
|
var _useKeyNavigation = useKeyNavigation({
|
|
712
719
|
isCalendarOpen: isInnerOpen,
|
|
713
720
|
format: format,
|
|
714
721
|
maskWithFormat: true,
|
|
715
|
-
delimiter:
|
|
722
|
+
delimiter: delimiter,
|
|
716
723
|
closeOnEsc: closeOnEsc,
|
|
717
724
|
onToggle: handleToggle
|
|
718
725
|
}), onKeyDownNavigation = _useKeyNavigation.onKeyDown;
|
|
@@ -729,10 +736,7 @@ export var timePickerRoot = function(Root) {
|
|
|
729
736
|
textAfter: textAfter,
|
|
730
737
|
onChange: handleInputChange,
|
|
731
738
|
onFocus: onFocus,
|
|
732
|
-
onKeyDown:
|
|
733
|
-
onKeyDownNavigation(e);
|
|
734
|
-
handleKeyDown(e);
|
|
735
|
-
},
|
|
739
|
+
onKeyDown: handleOnKeyDown,
|
|
736
740
|
required: required,
|
|
737
741
|
requiredPlacement: requiredPlacement,
|
|
738
742
|
hasRequiredIndicator: hasRequiredIndicator,
|
|
@@ -740,43 +744,6 @@ export var timePickerRoot = function(Root) {
|
|
|
740
744
|
labelPlacement: labelPlacement,
|
|
741
745
|
keepPlaceholder: keepPlaceholder
|
|
742
746
|
});
|
|
743
|
-
var renderTimeColumn = function(values, column, columnRef, scrollbarState, setScrollbar, scrollbarRef, thumbRef, timeoutRef) {
|
|
744
|
-
return /*#__PURE__*/ React.createElement("div", {
|
|
745
|
-
style: {
|
|
746
|
-
position: 'relative',
|
|
747
|
-
width: '100%'
|
|
748
|
-
}
|
|
749
|
-
}, /*#__PURE__*/ React.createElement(StyledTimeColumn, {
|
|
750
|
-
key: column,
|
|
751
|
-
ref: columnRef,
|
|
752
|
-
height: dropdownHeight,
|
|
753
|
-
className: classes.timeColumn
|
|
754
|
-
}, values.map(function(value, index) {
|
|
755
|
-
return /*#__PURE__*/ React.createElement(StyledTimeItem, {
|
|
756
|
-
key: value,
|
|
757
|
-
ref: function(el) {
|
|
758
|
-
timeItemRefs.current["".concat(column, "-").concat(value)] = el;
|
|
759
|
-
},
|
|
760
|
-
className: cls(_define_property({}, classes.timeItemActive, activeTime[column] === index)),
|
|
761
|
-
onClick: function() {
|
|
762
|
-
return handleTimeItemClick(value, column);
|
|
763
|
-
},
|
|
764
|
-
onKeyDown: function(e) {
|
|
765
|
-
return handleTimeItemKeyDown(e, column, value);
|
|
766
|
-
}
|
|
767
|
-
}, value);
|
|
768
|
-
}), /*#__PURE__*/ React.createElement(StyledEmpty, null)), /*#__PURE__*/ React.createElement(CustomScrollbar, {
|
|
769
|
-
ref: scrollbarRef,
|
|
770
|
-
className: cls(_define_property({}, classes.scrollbarVisible, scrollbarState.isVisible))
|
|
771
|
-
}, /*#__PURE__*/ React.createElement(ScrollbarTrack, null, /*#__PURE__*/ React.createElement(ScrollbarThumb, {
|
|
772
|
-
ref: thumbRef,
|
|
773
|
-
style: {
|
|
774
|
-
height: "".concat(scrollbarState.thumbHeight, "px"),
|
|
775
|
-
top: "".concat(scrollbarState.thumbPosition, "px")
|
|
776
|
-
},
|
|
777
|
-
onMouseDown: createScrollbarDragHandler(columnRef, setScrollbar, timeoutRef)
|
|
778
|
-
}))));
|
|
779
|
-
};
|
|
780
747
|
return /*#__PURE__*/ React.createElement(Root, _object_spread({
|
|
781
748
|
stretched: stretched,
|
|
782
749
|
view: view,
|
|
@@ -809,7 +776,52 @@ export var timePickerRoot = function(Root) {
|
|
|
809
776
|
stretched: stretched
|
|
810
777
|
}, /*#__PURE__*/ React.createElement(StyledTimePicker, {
|
|
811
778
|
width: dropdownWidth
|
|
812
|
-
}, renderTimeColumn(
|
|
779
|
+
}, renderTimeColumn({
|
|
780
|
+
values: hours,
|
|
781
|
+
dropdownHeight: dropdownHeight,
|
|
782
|
+
column: 'hours',
|
|
783
|
+
columnRef: hoursColumnRef,
|
|
784
|
+
scrollbarState: hoursScrollbar,
|
|
785
|
+
setScrollbar: setHoursScrollbar,
|
|
786
|
+
scrollbarRef: hoursScrollbarRef,
|
|
787
|
+
thumbRef: hoursThumbRef,
|
|
788
|
+
timeoutRef: hoursHideTimeoutRef,
|
|
789
|
+
timeItemRefs: timeItemRefs,
|
|
790
|
+
activeTime: activeTime,
|
|
791
|
+
handleTimeItemClick: handleTimeItemClick,
|
|
792
|
+
handleTimeItemKeyDown: handleTimeItemKeyDown,
|
|
793
|
+
createScrollbarDragHandler: createScrollbarDragHandler
|
|
794
|
+
}), renderTimeColumn({
|
|
795
|
+
values: minutes,
|
|
796
|
+
dropdownHeight: dropdownHeight,
|
|
797
|
+
column: 'minutes',
|
|
798
|
+
columnRef: minutesColumnRef,
|
|
799
|
+
scrollbarState: minutesScrollbar,
|
|
800
|
+
setScrollbar: setMinutesScrollbar,
|
|
801
|
+
scrollbarRef: minutesScrollbarRef,
|
|
802
|
+
thumbRef: minutesThumbRef,
|
|
803
|
+
timeoutRef: minutesHideTimeoutRef,
|
|
804
|
+
timeItemRefs: timeItemRefs,
|
|
805
|
+
activeTime: activeTime,
|
|
806
|
+
handleTimeItemClick: handleTimeItemClick,
|
|
807
|
+
handleTimeItemKeyDown: handleTimeItemKeyDown,
|
|
808
|
+
createScrollbarDragHandler: createScrollbarDragHandler
|
|
809
|
+
}), columnsQuantity === 3 && renderTimeColumn({
|
|
810
|
+
values: seconds,
|
|
811
|
+
dropdownHeight: dropdownHeight,
|
|
812
|
+
column: 'seconds',
|
|
813
|
+
columnRef: secondsColumnRef,
|
|
814
|
+
scrollbarState: secondsScrollbar,
|
|
815
|
+
setScrollbar: setSecondsScrollbar,
|
|
816
|
+
scrollbarRef: secondsScrollbarRef,
|
|
817
|
+
thumbRef: secondsThumbRef,
|
|
818
|
+
timeoutRef: secondsHideTimeoutRef,
|
|
819
|
+
timeItemRefs: timeItemRefs,
|
|
820
|
+
activeTime: activeTime,
|
|
821
|
+
handleTimeItemClick: handleTimeItemClick,
|
|
822
|
+
handleTimeItemKeyDown: handleTimeItemKeyDown,
|
|
823
|
+
createScrollbarDragHandler: createScrollbarDragHandler
|
|
824
|
+
})))));
|
|
813
825
|
});
|
|
814
826
|
};
|
|
815
827
|
export var timePickerConfig = {
|
|
@@ -10,14 +10,14 @@ var mergedPopoverConfig = mergeConfig(popoverConfig);
|
|
|
10
10
|
var Popover = component(mergedPopoverConfig);
|
|
11
11
|
export var StyledPopover = styled(Popover).withConfig({
|
|
12
12
|
displayName: "TimePicker.styles__StyledPopover",
|
|
13
|
-
componentId: "sc-
|
|
13
|
+
componentId: "sc-8a747fd1-0"
|
|
14
14
|
})([
|
|
15
15
|
""
|
|
16
16
|
]);
|
|
17
17
|
// NOTE: переопределение токенов TextField
|
|
18
18
|
export var StyledInput = styled(TextField).withConfig({
|
|
19
19
|
displayName: "TimePicker.styles__StyledInput",
|
|
20
|
-
componentId: "sc-
|
|
20
|
+
componentId: "sc-8a747fd1-1"
|
|
21
21
|
})([
|
|
22
22
|
"width:100%;",
|
|
23
23
|
":var(",
|
|
@@ -131,6 +131,8 @@ export var StyledInput = styled(TextField).withConfig({
|
|
|
131
131
|
":var(",
|
|
132
132
|
");",
|
|
133
133
|
":var(",
|
|
134
|
+
");",
|
|
135
|
+
":var(",
|
|
134
136
|
",var(",
|
|
135
137
|
"));",
|
|
136
138
|
":var(",
|
|
@@ -165,7 +167,7 @@ export var StyledInput = styled(TextField).withConfig({
|
|
|
165
167
|
");",
|
|
166
168
|
":var(",
|
|
167
169
|
");}"
|
|
168
|
-
], textFieldTokens.color, tokens.textFieldColor, textFieldTokens.placeholderColor, tokens.textFieldPlaceholderColor, textFieldTokens.placeholderColorFocus, tokens.textFieldPlaceholderColorFocus, textFieldTokens.caretColor, tokens.textFieldCaretColor, textFieldTokens.focusColor, tokens.textFieldFocusColor, textFieldTokens.backgroundColor, tokens.textFieldBackgroundColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundColorFocus, textFieldTokens.borderColor, tokens.borderColor, textFieldTokens.borderColorHover, tokens.borderColorHover, textFieldTokens.borderColorFocus, tokens.borderColorFocus, textFieldTokens.colorReadOnly, tokens.textFieldColorReadOnly, textFieldTokens.backgroundColorReadOnly, tokens.textFieldBackgroundColorReadOnly, textFieldTokens.borderColorReadOnly, tokens.textFieldBorderColorReadOnly, textFieldTokens.placeholderColorReadOnly, tokens.textFieldPlaceholderColorReadOnly, textFieldTokens.height, tokens.textFieldHeight, textFieldTokens.borderWidth, tokens.textFieldBorderWidth, textFieldTokens.borderRadius, tokens.textFieldBorderRadius, textFieldTokens.padding, tokens.textFieldPadding, textFieldTokens.labelInnerPadding, tokens.labelInnerPadding, textFieldTokens.contentLabelInnerPadding, tokens.contentLabelInnerPadding, textFieldTokens.labelOffset, tokens.labelOffset, textFieldTokens.labelFontFamily, tokens.labelFontFamily, textFieldTokens.labelFontStyle, tokens.labelFontStyle, textFieldTokens.labelFontSize, tokens.labelFontSize, textFieldTokens.labelFontWeight, tokens.labelFontWeight, textFieldTokens.labelLetterSpacing, tokens.labelLetterSpacing, textFieldTokens.labelLineHeight, tokens.labelLineHeight, textFieldTokens.labelInnerFontFamily, tokens.labelInnerFontFamily, textFieldTokens.labelInnerFontSize, tokens.labelInnerFontSize, textFieldTokens.labelInnerFontStyle, tokens.labelInnerFontStyle, textFieldTokens.labelInnerFontWeight, tokens.labelInnerFontWeight, textFieldTokens.labelInnerLetterSpacing, tokens.labelInnerLetterSpacing, textFieldTokens.labelInnerLineHeight, tokens.labelInnerLineHeight, textFieldTokens.labelColorReadOnly, tokens.labelColorReadOnly, textFieldTokens.indicatorColor, tokens.indicatorColor, textFieldTokens.indicatorSizeInner, tokens.indicatorSize, textFieldTokens.indicatorSizeOuter, tokens.indicatorSizeOuter, textFieldTokens.indicatorLabelPlacementInner, tokens.indicatorPlacement, textFieldTokens.indicatorLabelPlacementOuter, tokens.indicatorOuterPlacement, textFieldTokens.indicatorLabelPlacementInnerRight, tokens.indicatorPlacementRight, textFieldTokens.indicatorLabelPlacementOuterRight, tokens.indicatorOuterPlacementRight, textFieldTokens.leftContentMargin, tokens.textFieldLeftContentMargin, textFieldTokens.rightContentMargin, tokens.textFieldRightContentMargin, textFieldTokens.fontFamily, tokens.textFieldFontFamily, textFieldTokens.fontSize, tokens.textFieldFontSize, textFieldTokens.fontStyle, tokens.textFieldFontStyle, textFieldTokens.fontWeight, tokens.textFieldFontWeight, textFieldTokens.letterSpacing, tokens.textFieldLetterSpacing, textFieldTokens.lineHeight, tokens.textFieldLineHeight, textFieldTokens.disabledOpacity, tokens.disabledOpacity, textFieldTokens.textBeforeColor, tokens.textFieldTextBeforeColor, textFieldTokens.textAfterColor, tokens.textFieldTextAfterColor, textFieldTokens.textBeforeMargin, tokens.textFieldTextBeforeMargin, textFieldTokens.textAfterMargin, tokens.textFieldTextAfterMargin, textFieldTokens.contentSlotColor, tokens.textFieldContentSlotColor, tokens.textFieldColor, textFieldTokens.contentSlotRightColor, tokens.textFieldContentRightSlotColor, textFieldTokens.contentSlotColor, textFieldTokens.contentSlotRightColorHover, tokens.textFieldContentRightSlotColorHover, textFieldTokens.contentSlotRightColor, classes.timePickerError, textFieldTokens.backgroundColor, tokens.textFieldBackgroundErrorColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundErrorColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundErrorColorFocus, textFieldTokens.borderColor, tokens.textFieldBorderColorError, textFieldTokens.borderColorHover, tokens.textFieldBorderColorErrorHover, textFieldTokens.borderColorFocus, tokens.textFieldBorderColorErrorFocus, classes.timePickerSuccess, textFieldTokens.backgroundColor, tokens.textFieldBackgroundSuccessColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundSuccessColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundSuccessColorFocus, textFieldTokens.borderColor, tokens.textFieldBorderColorSuccess, textFieldTokens.borderColorHover, tokens.textFieldBorderColorSuccessHover, textFieldTokens.borderColorFocus, tokens.textFieldBorderColorSuccessFocus);
|
|
170
|
+
], textFieldTokens.color, tokens.textFieldColor, textFieldTokens.placeholderColor, tokens.textFieldPlaceholderColor, textFieldTokens.placeholderColorFocus, tokens.textFieldPlaceholderColorFocus, textFieldTokens.caretColor, tokens.textFieldCaretColor, textFieldTokens.focusColor, tokens.textFieldFocusColor, textFieldTokens.backgroundColor, tokens.textFieldBackgroundColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundColorFocus, textFieldTokens.borderColor, tokens.borderColor, textFieldTokens.borderColorHover, tokens.borderColorHover, textFieldTokens.borderColorFocus, tokens.borderColorFocus, textFieldTokens.boxShadow, tokens.textFieldBoxShadow, textFieldTokens.colorReadOnly, tokens.textFieldColorReadOnly, textFieldTokens.backgroundColorReadOnly, tokens.textFieldBackgroundColorReadOnly, textFieldTokens.borderColorReadOnly, tokens.textFieldBorderColorReadOnly, textFieldTokens.placeholderColorReadOnly, tokens.textFieldPlaceholderColorReadOnly, textFieldTokens.height, tokens.textFieldHeight, textFieldTokens.borderWidth, tokens.textFieldBorderWidth, textFieldTokens.borderRadius, tokens.textFieldBorderRadius, textFieldTokens.padding, tokens.textFieldPadding, textFieldTokens.labelInnerPadding, tokens.labelInnerPadding, textFieldTokens.contentLabelInnerPadding, tokens.contentLabelInnerPadding, textFieldTokens.labelOffset, tokens.labelOffset, textFieldTokens.labelFontFamily, tokens.labelFontFamily, textFieldTokens.labelFontStyle, tokens.labelFontStyle, textFieldTokens.labelFontSize, tokens.labelFontSize, textFieldTokens.labelFontWeight, tokens.labelFontWeight, textFieldTokens.labelLetterSpacing, tokens.labelLetterSpacing, textFieldTokens.labelLineHeight, tokens.labelLineHeight, textFieldTokens.labelInnerFontFamily, tokens.labelInnerFontFamily, textFieldTokens.labelInnerFontSize, tokens.labelInnerFontSize, textFieldTokens.labelInnerFontStyle, tokens.labelInnerFontStyle, textFieldTokens.labelInnerFontWeight, tokens.labelInnerFontWeight, textFieldTokens.labelInnerLetterSpacing, tokens.labelInnerLetterSpacing, textFieldTokens.labelInnerLineHeight, tokens.labelInnerLineHeight, textFieldTokens.labelColorReadOnly, tokens.labelColorReadOnly, textFieldTokens.indicatorColor, tokens.indicatorColor, textFieldTokens.indicatorSizeInner, tokens.indicatorSize, textFieldTokens.indicatorSizeOuter, tokens.indicatorSizeOuter, textFieldTokens.indicatorLabelPlacementInner, tokens.indicatorPlacement, textFieldTokens.indicatorLabelPlacementOuter, tokens.indicatorOuterPlacement, textFieldTokens.indicatorLabelPlacementInnerRight, tokens.indicatorPlacementRight, textFieldTokens.indicatorLabelPlacementOuterRight, tokens.indicatorOuterPlacementRight, textFieldTokens.leftContentMargin, tokens.textFieldLeftContentMargin, textFieldTokens.rightContentMargin, tokens.textFieldRightContentMargin, textFieldTokens.fontFamily, tokens.textFieldFontFamily, textFieldTokens.fontSize, tokens.textFieldFontSize, textFieldTokens.fontStyle, tokens.textFieldFontStyle, textFieldTokens.fontWeight, tokens.textFieldFontWeight, textFieldTokens.letterSpacing, tokens.textFieldLetterSpacing, textFieldTokens.lineHeight, tokens.textFieldLineHeight, textFieldTokens.disabledOpacity, tokens.disabledOpacity, textFieldTokens.textBeforeColor, tokens.textFieldTextBeforeColor, textFieldTokens.textAfterColor, tokens.textFieldTextAfterColor, textFieldTokens.textBeforeMargin, tokens.textFieldTextBeforeMargin, textFieldTokens.textAfterMargin, tokens.textFieldTextAfterMargin, textFieldTokens.contentSlotColor, tokens.textFieldContentSlotColor, tokens.textFieldColor, textFieldTokens.contentSlotRightColor, tokens.textFieldContentRightSlotColor, textFieldTokens.contentSlotColor, textFieldTokens.contentSlotRightColorHover, tokens.textFieldContentRightSlotColorHover, textFieldTokens.contentSlotRightColor, classes.timePickerError, textFieldTokens.backgroundColor, tokens.textFieldBackgroundErrorColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundErrorColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundErrorColorFocus, textFieldTokens.borderColor, tokens.textFieldBorderColorError, textFieldTokens.borderColorHover, tokens.textFieldBorderColorErrorHover, textFieldTokens.borderColorFocus, tokens.textFieldBorderColorErrorFocus, classes.timePickerSuccess, textFieldTokens.backgroundColor, tokens.textFieldBackgroundSuccessColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundSuccessColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundSuccessColorFocus, textFieldTokens.borderColor, tokens.textFieldBorderColorSuccess, textFieldTokens.borderColorHover, tokens.textFieldBorderColorSuccessHover, textFieldTokens.borderColorFocus, tokens.textFieldBorderColorSuccessFocus);
|
|
169
171
|
export var base = css([
|
|
170
172
|
"display:flex;width:var(",
|
|
171
173
|
");margin-top:var(",
|
|
@@ -179,7 +181,7 @@ export var base = css([
|
|
|
179
181
|
], tokens.width, tokens.dropdownMarginTop, popoverClasses.wrapper, popoverClasses.target, classes.timePickerstretched, popoverClasses.root, classes.timePickerFullWidth, classes.timePickerPlacementRight);
|
|
180
182
|
export var StyledTimePicker = styled.div.withConfig({
|
|
181
183
|
displayName: "TimePicker.styles__StyledTimePicker",
|
|
182
|
-
componentId: "sc-
|
|
184
|
+
componentId: "sc-8a747fd1-2"
|
|
183
185
|
})([
|
|
184
186
|
"background:var(",
|
|
185
187
|
");border-radius:var(",
|
|
@@ -191,69 +193,3 @@ export var StyledTimePicker = styled.div.withConfig({
|
|
|
191
193
|
var width = param.width;
|
|
192
194
|
return (width === 'fullWidth' ? "var(".concat(tokens.width, ")") : width) || "var(".concat(tokens.timePickerWidth, ")");
|
|
193
195
|
}, tokens.timePickerPadding, tokens.scrollbarWidth);
|
|
194
|
-
export var StyledTimeItem = styled.div.withConfig({
|
|
195
|
-
displayName: "TimePicker.styles__StyledTimeItem",
|
|
196
|
-
componentId: "sc-d0bdbdc5-3"
|
|
197
|
-
})([
|
|
198
|
-
"height:var(",
|
|
199
|
-
");padding:var(",
|
|
200
|
-
");box-sizing:border-box;display:flex;justify-content:center;align-items:center;transition:0.05s;border-radius:var(",
|
|
201
|
-
");cursor:pointer;flex-shrink:0;overflow:auto;font-family:var(",
|
|
202
|
-
");font-size:var(",
|
|
203
|
-
");font-style:var(",
|
|
204
|
-
");font-weight:var(",
|
|
205
|
-
");letter-spacing:var(",
|
|
206
|
-
");line-height:var(",
|
|
207
|
-
");&:hover{background:var(",
|
|
208
|
-
");}&.",
|
|
209
|
-
"{background:var(",
|
|
210
|
-
");}"
|
|
211
|
-
], tokens.itemHeight, tokens.itemPadding, tokens.itemBorderRadius, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHoverBackground, classes.timeItemActive, tokens.itemActiveBackground);
|
|
212
|
-
export var StyledTimeColumn = styled.div.withConfig({
|
|
213
|
-
displayName: "TimePicker.styles__StyledTimeColumn",
|
|
214
|
-
componentId: "sc-d0bdbdc5-4"
|
|
215
|
-
})([
|
|
216
|
-
"max-height:",
|
|
217
|
-
";overflow-y:scroll;flex:1;z-index:3;box-sizing:border-box;display:flex;flex-direction:column;gap:var(",
|
|
218
|
-
");width:100%;&.",
|
|
219
|
-
"{border:0.125rem solid var(",
|
|
220
|
-
");border-radius:var(",
|
|
221
|
-
");}scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none;width:0;}"
|
|
222
|
-
], function(param) {
|
|
223
|
-
var height = param.height;
|
|
224
|
-
return height || "var(".concat(tokens.columnHeight, ")");
|
|
225
|
-
}, tokens.scrollbarWidth, classes.timeColumnActive, tokens.itemHoverBackground, tokens.itemBorderRadius);
|
|
226
|
-
export var CustomScrollbar = styled.div.withConfig({
|
|
227
|
-
displayName: "TimePicker.styles__CustomScrollbar",
|
|
228
|
-
componentId: "sc-d0bdbdc5-5"
|
|
229
|
-
})([
|
|
230
|
-
"position:absolute;top:var(",
|
|
231
|
-
");right:0;bottom:var(",
|
|
232
|
-
");width:var(",
|
|
233
|
-
");opacity:0;transition:opacity 0.3s ease;pointer-events:none;z-index:10;overflow:hidden;&.",
|
|
234
|
-
"{opacity:1;pointer-events:auto;}"
|
|
235
|
-
], tokens.scrollbarMargin, tokens.scrollbarMargin, tokens.scrollbarWidth, classes.scrollbarVisible);
|
|
236
|
-
export var ScrollbarTrack = styled.div.withConfig({
|
|
237
|
-
displayName: "TimePicker.styles__ScrollbarTrack",
|
|
238
|
-
componentId: "sc-d0bdbdc5-6"
|
|
239
|
-
})([
|
|
240
|
-
"position:relative;width:100%;height:100%;background:var(",
|
|
241
|
-
");border-radius:var(",
|
|
242
|
-
");"
|
|
243
|
-
], tokens.scrollbarTrackColor, tokens.scrollbarWidth);
|
|
244
|
-
export var ScrollbarThumb = styled.div.withConfig({
|
|
245
|
-
displayName: "TimePicker.styles__ScrollbarThumb",
|
|
246
|
-
componentId: "sc-d0bdbdc5-7"
|
|
247
|
-
})([
|
|
248
|
-
"position:absolute;top:0;left:0;width:100%;background:var(",
|
|
249
|
-
");border-radius:var(",
|
|
250
|
-
");cursor:pointer;transition:background-color 0.2s ease;&:hover{background:var(",
|
|
251
|
-
");}&:active{background:var(",
|
|
252
|
-
");}"
|
|
253
|
-
], tokens.scrollbarColor, tokens.scrollbarWidth, tokens.scrollbarColor, tokens.scrollbarTrackColor);
|
|
254
|
-
export var StyledEmpty = styled.div.withConfig({
|
|
255
|
-
displayName: "TimePicker.styles__StyledEmpty",
|
|
256
|
-
componentId: "sc-d0bdbdc5-8"
|
|
257
|
-
})([
|
|
258
|
-
"width:100%;height:0%.125rem;"
|
|
259
|
-
]);
|
|
@@ -75,6 +75,7 @@ export var tokens = {
|
|
|
75
75
|
textFieldBorderColorSuccess: '--plasma-time-picker-textfield-border-color-success',
|
|
76
76
|
textFieldBorderColorSuccessHover: '--plasma-time-picker-textfield-border-color-success-hover',
|
|
77
77
|
textFieldBorderColorSuccessFocus: '--plasma-time-picker-textfield-border-color-success-focus',
|
|
78
|
+
textFieldBoxShadow: '--plasma-time-picker-textfield-box-shadow',
|
|
78
79
|
textFieldColorReadOnly: '--plasma-time-picker-textfield-color-readonly',
|
|
79
80
|
textFieldBackgroundColorReadOnly: '--plasma-time-picker-textfield-background-color-readonly',
|
|
80
81
|
textFieldBorderColorReadOnly: '--plasma-time-picker-textfield-border-color-readonly',
|
|
@@ -108,8 +109,8 @@ export var tokens = {
|
|
|
108
109
|
itemHeight: '--plasma-time-picker-item-height',
|
|
109
110
|
itemBorderRadius: '--plasma-time-picker-item-border-radius',
|
|
110
111
|
itemPadding: '--plasma-time-picker-item-padding',
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
itemBackgroundHover: '--plasma-time-picker-item-hover-background',
|
|
113
|
+
itemBackgroundActive: '--plasma-time-picker-item-active-background',
|
|
113
114
|
itemFontFamily: '--plasma-time-picker-item-font-family',
|
|
114
115
|
itemFontStyle: '--plasma-time-picker-item-font-style',
|
|
115
116
|
itemFontSize: '--plasma-time-picker-item-font-size',
|
|
@@ -5,21 +5,13 @@ export var useKeyNavigation = function(param) {
|
|
|
5
5
|
event.preventDefault();
|
|
6
6
|
return;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
case 'Escape':
|
|
16
|
-
if (isCalendarOpen && closeOnEsc) {
|
|
17
|
-
event.preventDefault();
|
|
18
|
-
onToggle(false, event);
|
|
19
|
-
}
|
|
20
|
-
break;
|
|
21
|
-
default:
|
|
22
|
-
break;
|
|
8
|
+
if (event.code === 'Space' && !isCalendarOpen) {
|
|
9
|
+
event.preventDefault();
|
|
10
|
+
onToggle(true, event);
|
|
11
|
+
}
|
|
12
|
+
if (event.code === 'Escape' && isCalendarOpen && closeOnEsc) {
|
|
13
|
+
event.preventDefault();
|
|
14
|
+
onToggle(false, event);
|
|
23
15
|
}
|
|
24
16
|
};
|
|
25
17
|
return {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
import React from "react";
|
|
15
|
+
import cls from "classnames";
|
|
16
|
+
import { classes } from "../../TimePicker.tokens";
|
|
17
|
+
import { StyledTimeColumn, StyledTimeItem, StyledEmpty, CustomScrollbar, ScrollbarTrack, ScrollbarThumb, StyledRoot } from "./TimeColumn.styles";
|
|
18
|
+
export var renderTimeColumn = function(param) {
|
|
19
|
+
var values = param.values, dropdownHeight = param.dropdownHeight, column = param.column, columnRef = param.columnRef, scrollbarState = param.scrollbarState, setScrollbar = param.setScrollbar, scrollbarRef = param.scrollbarRef, thumbRef = param.thumbRef, timeoutRef = param.timeoutRef, timeItemRefs = param.timeItemRefs, activeTime = param.activeTime, handleTimeItemClick = param.handleTimeItemClick, handleTimeItemKeyDown = param.handleTimeItemKeyDown, createScrollbarDragHandler = param.createScrollbarDragHandler;
|
|
20
|
+
return /*#__PURE__*/ React.createElement(StyledRoot, null, /*#__PURE__*/ React.createElement(StyledTimeColumn, {
|
|
21
|
+
key: column,
|
|
22
|
+
ref: columnRef,
|
|
23
|
+
height: dropdownHeight,
|
|
24
|
+
className: classes.timeColumn
|
|
25
|
+
}, values.map(function(value, index) {
|
|
26
|
+
return /*#__PURE__*/ React.createElement(StyledTimeItem, {
|
|
27
|
+
key: value,
|
|
28
|
+
ref: function(el) {
|
|
29
|
+
timeItemRefs.current["".concat(column, "-").concat(value)] = el;
|
|
30
|
+
},
|
|
31
|
+
className: cls(_define_property({}, classes.timeItemActive, activeTime[column] === index)),
|
|
32
|
+
onClick: function() {
|
|
33
|
+
return handleTimeItemClick(value, column);
|
|
34
|
+
},
|
|
35
|
+
onKeyDown: function(e) {
|
|
36
|
+
return handleTimeItemKeyDown(e, column, value);
|
|
37
|
+
}
|
|
38
|
+
}, value);
|
|
39
|
+
}), /*#__PURE__*/ React.createElement(StyledEmpty, null)), /*#__PURE__*/ React.createElement(CustomScrollbar, {
|
|
40
|
+
ref: scrollbarRef,
|
|
41
|
+
className: cls(_define_property({}, classes.scrollbarVisible, scrollbarState.isVisible))
|
|
42
|
+
}, /*#__PURE__*/ React.createElement(ScrollbarTrack, null, /*#__PURE__*/ React.createElement(ScrollbarThumb, {
|
|
43
|
+
ref: thumbRef,
|
|
44
|
+
style: {
|
|
45
|
+
height: "".concat(scrollbarState.thumbHeight, "px"),
|
|
46
|
+
top: "".concat(scrollbarState.thumbPosition, "px")
|
|
47
|
+
},
|
|
48
|
+
onMouseDown: createScrollbarDragHandler(columnRef, setScrollbar, timeoutRef)
|
|
49
|
+
}))));
|
|
50
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import styled from "styled-components";
|
|
2
|
+
import { classes, tokens } from "../../TimePicker.tokens";
|
|
3
|
+
export var StyledRoot = styled.div.withConfig({
|
|
4
|
+
displayName: "TimeColumn.styles__StyledRoot",
|
|
5
|
+
componentId: "sc-a5ee4233-0"
|
|
6
|
+
})([
|
|
7
|
+
"position:relative;width:100%;"
|
|
8
|
+
]);
|
|
9
|
+
export var StyledTimeItem = styled.div.withConfig({
|
|
10
|
+
displayName: "TimeColumn.styles__StyledTimeItem",
|
|
11
|
+
componentId: "sc-a5ee4233-1"
|
|
12
|
+
})([
|
|
13
|
+
"height:var(",
|
|
14
|
+
");padding:var(",
|
|
15
|
+
");box-sizing:border-box;display:flex;justify-content:center;align-items:center;transition:0.05s;border-radius:var(",
|
|
16
|
+
");cursor:pointer;flex-shrink:0;overflow:auto;font-family:var(",
|
|
17
|
+
");font-size:var(",
|
|
18
|
+
");font-style:var(",
|
|
19
|
+
");font-weight:var(",
|
|
20
|
+
");letter-spacing:var(",
|
|
21
|
+
");line-height:var(",
|
|
22
|
+
");&:hover{background:var(",
|
|
23
|
+
");}&.",
|
|
24
|
+
"{background:var(",
|
|
25
|
+
");}"
|
|
26
|
+
], tokens.itemHeight, tokens.itemPadding, tokens.itemBorderRadius, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemBackgroundHover, classes.timeItemActive, tokens.itemBackgroundActive);
|
|
27
|
+
export var StyledTimeColumn = styled.div.withConfig({
|
|
28
|
+
displayName: "TimeColumn.styles__StyledTimeColumn",
|
|
29
|
+
componentId: "sc-a5ee4233-2"
|
|
30
|
+
})([
|
|
31
|
+
"max-height:",
|
|
32
|
+
";overflow-y:scroll;flex:1;z-index:3;box-sizing:border-box;display:flex;flex-direction:column;gap:var(",
|
|
33
|
+
");width:100%;&.",
|
|
34
|
+
"{border:0.125rem solid var(",
|
|
35
|
+
");border-radius:var(",
|
|
36
|
+
");}scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none;width:0;}"
|
|
37
|
+
], function(param) {
|
|
38
|
+
var height = param.height;
|
|
39
|
+
return height || "var(".concat(tokens.columnHeight, ")");
|
|
40
|
+
}, tokens.scrollbarWidth, classes.timeColumnActive, tokens.itemBackgroundHover, tokens.itemBorderRadius);
|
|
41
|
+
export var CustomScrollbar = styled.div.withConfig({
|
|
42
|
+
displayName: "TimeColumn.styles__CustomScrollbar",
|
|
43
|
+
componentId: "sc-a5ee4233-3"
|
|
44
|
+
})([
|
|
45
|
+
"position:absolute;top:var(",
|
|
46
|
+
");right:0;bottom:var(",
|
|
47
|
+
");width:var(",
|
|
48
|
+
");opacity:0;transition:opacity 0.3s ease;pointer-events:none;z-index:10;overflow:hidden;&.",
|
|
49
|
+
"{opacity:1;pointer-events:auto;}"
|
|
50
|
+
], tokens.scrollbarMargin, tokens.scrollbarMargin, tokens.scrollbarWidth, classes.scrollbarVisible);
|
|
51
|
+
export var ScrollbarTrack = styled.div.withConfig({
|
|
52
|
+
displayName: "TimeColumn.styles__ScrollbarTrack",
|
|
53
|
+
componentId: "sc-a5ee4233-4"
|
|
54
|
+
})([
|
|
55
|
+
"position:relative;width:100%;height:100%;background:var(",
|
|
56
|
+
");border-radius:var(",
|
|
57
|
+
");"
|
|
58
|
+
], tokens.scrollbarTrackColor, tokens.scrollbarWidth);
|
|
59
|
+
export var ScrollbarThumb = styled.div.withConfig({
|
|
60
|
+
displayName: "TimeColumn.styles__ScrollbarThumb",
|
|
61
|
+
componentId: "sc-a5ee4233-5"
|
|
62
|
+
})([
|
|
63
|
+
"position:absolute;top:0;left:0;width:100%;background:var(",
|
|
64
|
+
");border-radius:var(",
|
|
65
|
+
");cursor:pointer;transition:background-color 0.2s ease;&:hover{background:var(",
|
|
66
|
+
");}&:active{background:var(",
|
|
67
|
+
");}"
|
|
68
|
+
], tokens.scrollbarColor, tokens.scrollbarWidth, tokens.scrollbarColor, tokens.scrollbarTrackColor);
|
|
69
|
+
export var StyledEmpty = styled.div.withConfig({
|
|
70
|
+
displayName: "TimeColumn.styles__StyledEmpty",
|
|
71
|
+
componentId: "sc-a5ee4233-6"
|
|
72
|
+
})([
|
|
73
|
+
"width:100%;height:0%.125rem;"
|
|
74
|
+
]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|