@salutejs/plasma-new-hope 0.342.0-canary.2349.19625390680.0 → 0.342.0-canary.2352.19633574715.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.
Files changed (24) hide show
  1. package/cjs/components/TimePicker/TimePicker.js +27 -5
  2. package/cjs/components/TimePicker/TimePicker.js.map +1 -1
  3. package/cjs/components/TimePickerGrid/TimePickerGrid.styles.js +3 -1
  4. package/cjs/components/TimePickerGrid/TimePickerGrid.styles.js.map +1 -1
  5. package/emotion/cjs/components/TimePicker/TimePicker.js +26 -4
  6. package/emotion/cjs/components/TimePickerGrid/TimePickerGrid.styles.js +6 -4
  7. package/emotion/es/components/TimePicker/TimePicker.js +26 -4
  8. package/emotion/es/components/TimePickerGrid/TimePickerGrid.styles.js +6 -4
  9. package/es/components/TimePicker/TimePicker.js +27 -5
  10. package/es/components/TimePicker/TimePicker.js.map +1 -1
  11. package/es/components/TimePickerGrid/TimePickerGrid.styles.js +3 -1
  12. package/es/components/TimePickerGrid/TimePickerGrid.styles.js.map +1 -1
  13. package/package.json +4 -4
  14. package/styled-components/cjs/components/TimePicker/TimePicker.js +26 -4
  15. package/styled-components/cjs/components/TimePickerGrid/TimePickerGrid.styles.js +4 -2
  16. package/styled-components/cjs/examples/components/Combobox/Combobox.js +0 -15
  17. package/styled-components/es/components/TimePicker/TimePicker.js +26 -4
  18. package/styled-components/es/components/TimePickerGrid/TimePickerGrid.styles.js +4 -2
  19. package/styled-components/es/examples/components/Combobox/Combobox.js +0 -7
  20. package/types/components/TimePicker/TimePicker.d.ts +2 -2
  21. package/types/components/TimePicker/TimePicker.d.ts.map +1 -1
  22. package/types/components/TimePickerGrid/TimePickerGrid.styles.d.ts.map +1 -1
  23. package/types/examples/components/TimePicker/TimePicker.d.ts +1 -1
  24. package/types/examples/components/TimePicker/TimePicker.d.ts.map +1 -1
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
6
6
  var React = require('react');
7
7
  var cls = require('classnames');
8
+ var plasmaCore = require('@salutejs/plasma-core');
8
9
  var index = require('./utils/index.js');
9
10
  var TimePicker_styles = require('./TimePicker.styles.js');
10
11
  var TimePicker_tokens = require('./TimePicker.tokens.js');
@@ -69,6 +70,8 @@ var timePickerRoot = function timePickerRoot(Root) {
69
70
  onChange = _ref.onChange,
70
71
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
71
72
  var inputRef = React.useRef(null);
73
+ var rootRef = React.useRef(null);
74
+ var rootForkRef = plasmaCore.useForkRef(rootRef, ref);
72
75
  var hoursHideTimeoutRef = React.useRef(null);
73
76
  var minutesHideTimeoutRef = React.useRef(null);
74
77
  var secondsHideTimeoutRef = React.useRef(null);
@@ -80,14 +83,18 @@ var timePickerRoot = function timePickerRoot(Root) {
80
83
  _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
81
84
  innerTime = _useState4[0],
82
85
  setInnerTime = _useState4[1];
83
- var _useState5 = React.useState({
86
+ var _useState5 = React.useState(null),
87
+ _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
88
+ rootWidth = _useState6[0],
89
+ setRootWidth = _useState6[1];
90
+ var _useState7 = React.useState({
84
91
  hours: null,
85
92
  minutes: null,
86
93
  seconds: null,
87
94
  currentColumn: null
88
95
  }),
89
- _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
90
- setActiveTime = _useState6[1];
96
+ _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
97
+ setActiveTime = _useState8[1];
91
98
  var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
92
99
  var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
93
100
  React.useEffect(function () {
@@ -125,6 +132,12 @@ var timePickerRoot = function timePickerRoot(Root) {
125
132
  setIsInnerOpen(false);
126
133
  }
127
134
  }, [disabled, readonly]);
135
+ React.useEffect(function () {
136
+ if (dropdownWidth === 'fullWidth' && rootRef.current) {
137
+ var width = rootRef.current.offsetWidth;
138
+ setRootWidth(width);
139
+ }
140
+ }, [dropdownWidth, isInnerOpen]);
128
141
  var handleToggle = function handleToggle() {
129
142
  if (disabled || readonly) return;
130
143
  var newState = !isInnerOpen;
@@ -231,6 +244,15 @@ var timePickerRoot = function timePickerRoot(Root) {
231
244
  labelPlacement: labelPlacement,
232
245
  keepPlaceholder: keepPlaceholder
233
246
  });
247
+ var getDropdownWidth = function getDropdownWidth() {
248
+ if (dropdownWidth === 'fixed' || dropdownWidth === undefined) {
249
+ return undefined;
250
+ }
251
+ if (dropdownWidth === 'fullWidth') {
252
+ return rootWidth !== null ? "".concat(rootWidth, "px") : 'fullWidth';
253
+ }
254
+ return dropdownWidth;
255
+ };
234
256
  return /*#__PURE__*/React__default.default.createElement(Root, _rollupPluginBabelHelpers.extends({
235
257
  stretched: stretched,
236
258
  view: view,
@@ -238,7 +260,7 @@ var timePickerRoot = function timePickerRoot(Root) {
238
260
  className: cls__default.default(TimePicker_tokens.classes.timePickerRoot, className, _rollupPluginBabelHelpers.defineProperty({}, TimePicker_tokens.classes.timePickerstretched, stretched)),
239
261
  disabled: disabled,
240
262
  readonly: readonly,
241
- ref: ref
263
+ ref: rootForkRef
242
264
  }, rest), /*#__PURE__*/React__default.default.createElement(TimePicker_styles.StyledPopover, {
243
265
  opened: isInnerOpen,
244
266
  usePortal: usePortal,
@@ -256,7 +278,7 @@ var timePickerRoot = function timePickerRoot(Root) {
256
278
  value: viewValue,
257
279
  onChange: handleOnChange,
258
280
  dropdownHeight: dropdownHeight,
259
- dropdownWidth: dropdownWidth,
281
+ dropdownWidth: getDropdownWidth(),
260
282
  format: format,
261
283
  view: view,
262
284
  size: size,
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useEffect } from 'react';\nimport cls from 'classnames';\nimport type { ChangeEvent, KeyboardEvent } from 'react';\nimport type { RootProps } from 'src/engines';\nimport { getPlacements } from 'src/utils';\n\nimport { TimePickerGridChangeEvent } from '../TimePickerGrid/TimePickerGrid.types';\n\nimport { processTimeInput, delimiter } from './utils';\nimport { TimePickerProps } from './TimePicker.types';\nimport { base, StyledInput, StyledTimePickerGrid, StyledPopover } from './TimePicker.styles';\nimport { classes } from './TimePicker.tokens';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readonlyCSS } from './variations/_readonly/base';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\ninterface ActiveTime {\n hours?: number | null;\n minutes?: number | null;\n seconds?: number | null;\n currentColumn?: 'hours' | 'minutes' | 'seconds' | null;\n}\n\nexport const timePickerRoot = (\n Root: RootProps<HTMLDivElement, Omit<TimePickerProps, 'opened' | 'defaultValue' | 'onChange'>>,\n) =>\n forwardRef<HTMLInputElement, TimePickerProps>(\n (\n {\n className,\n opened = false,\n value: outerValue,\n label,\n labelPlacement = 'outer',\n keepPlaceholder,\n required = false,\n requiredPlacement = 'right',\n hasRequiredIndicator = true,\n placeholder,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n view,\n size,\n disabled = false,\n readonly = false,\n frame = 'document',\n usePortal = false,\n closeOnOverlayClick = true,\n closeOnEsc = true,\n offset,\n stretched,\n dropdownAlign = 'left',\n dropdownWidth,\n dropdownHeight,\n columnsQuantity = 2,\n onToggle,\n onFocus,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const hoursHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const minutesHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const secondsHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const [isInnerOpen, setIsInnerOpen] = useState(opened);\n const [innerTime, setInnerTime] = useState(outerValue || '');\n const [, setActiveTime] = useState<ActiveTime>({\n hours: null,\n minutes: null,\n seconds: null,\n currentColumn: null,\n });\n\n const viewValue = outerValue ?? innerTime;\n\n const format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';\n\n useEffect(() => {\n return () => {\n [hoursHideTimeoutRef, minutesHideTimeoutRef, secondsHideTimeoutRef].forEach((timeoutRef) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n });\n };\n }, []);\n\n useEffect(() => {\n if (!viewValue) {\n return;\n }\n\n let timeString = viewValue;\n if (format === 'HH:mm' && viewValue.length > 5) {\n timeString = viewValue.substring(0, 5);\n }\n setInnerTime(viewValue);\n const [hh, mm, ss] = timeString.split(delimiter).map(Number);\n setActiveTime({\n hours: !Number.isNaN(hh) ? hh : null,\n minutes: !Number.isNaN(mm) ? mm : null,\n seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,\n currentColumn: null,\n });\n }, [outerValue, format]);\n\n useEffect(() => {\n if (isInnerOpen && (disabled || readonly)) {\n setIsInnerOpen(false);\n }\n }, [disabled, readonly]);\n\n const handleToggle = () => {\n if (disabled || readonly) return;\n const newState = !isInnerOpen;\n setIsInnerOpen(newState);\n\n if (newState) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: 'hours',\n }));\n }\n\n onToggle?.(newState);\n };\n\n const handleOnChange = (event: TimePickerGridChangeEvent) => {\n if (!event) {\n return;\n }\n\n let timeString = event.value;\n if (format === 'HH:mm' && viewValue.length > 5) {\n timeString = viewValue.substring(0, 5);\n }\n setInnerTime(timeString ?? '');\n\n setActiveTime({\n hours: !Number.isNaN(event.timeValues.hour) ? event.timeValues.hour : null,\n minutes: !Number.isNaN(event.timeValues.minute) ? event.timeValues.minute : null,\n seconds:\n format === 'HH:mm:ss' && !Number.isNaN(event.timeValues.second)\n ? event.timeValues.second\n : null,\n currentColumn: null,\n });\n\n onChange?.(event);\n };\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const input = event.target.value;\n const cursorPos = event.target.selectionStart;\n\n const { innerString, values, newCursorPosition } = processTimeInput(input, format, cursorPos);\n\n setInnerTime(innerString);\n setActiveTime((prev) => ({\n ...prev,\n hours: values.hh,\n minutes: values.mm,\n seconds: values.ss,\n }));\n\n if (onChange) {\n onChange(({\n ...event,\n target: {\n ...event.target,\n value: innerString,\n timeValues: values,\n },\n } as unknown) as ChangeEvent<HTMLInputElement>);\n }\n\n requestAnimationFrame(() => {\n if (inputRef.current) {\n inputRef.current.setSelectionRange(newCursorPosition, newCursorPosition);\n }\n });\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' && !isInnerOpen) {\n event.preventDefault();\n setIsInnerOpen(true);\n setActiveTime((prev) => ({ ...prev, currentColumn: 'hours' }));\n onToggle?.(true);\n }\n };\n\n const handleOnKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDownNavigation(e);\n handleKeyDown(e);\n };\n\n const { onKeyDown: onKeyDownNavigation } = useKeyNavigation({\n isCalendarOpen: isInnerOpen,\n format,\n maskWithFormat: true,\n delimiter,\n closeOnEsc,\n onToggle: handleToggle,\n });\n\n const TimePickerInput = (\n <StyledInput\n ref={inputRef}\n value={viewValue}\n size={size}\n disabled={disabled}\n readOnly={readonly}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onChange={handleInputChange}\n onFocus={onFocus}\n onKeyDown={handleOnKeyDown}\n required={required}\n requiredPlacement={requiredPlacement}\n hasRequiredIndicator={hasRequiredIndicator}\n label={label}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n />\n );\n\n return (\n <Root\n stretched={stretched}\n view={view}\n size={size}\n className={cls(classes.timePickerRoot, className, {\n [classes.timePickerstretched]: stretched,\n })}\n disabled={disabled}\n readonly={readonly}\n ref={ref}\n {...rest}\n >\n <StyledPopover\n opened={isInnerOpen}\n usePortal={usePortal}\n frame={frame}\n onToggle={handleToggle}\n offset={offset}\n placement={getPlacements(dropdownAlign === 'left' ? 'bottom-start' : 'bottom-end', false)}\n trigger=\"click\"\n closeOnOverlayClick={closeOnOverlayClick}\n isFocusTrapped={false}\n target={TimePickerInput}\n preventOverflow={false}\n align={dropdownAlign}\n >\n <StyledTimePickerGrid\n value={viewValue}\n onChange={handleOnChange}\n dropdownHeight={dropdownHeight}\n dropdownWidth={dropdownWidth}\n format={format}\n view={view}\n size={size}\n disabled={disabled}\n />\n </StyledPopover>\n </Root>\n );\n },\n );\n\nexport const timePickerConfig = {\n name: 'TimePicker',\n tag: 'div',\n layout: timePickerRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readonly: {\n css: readonlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["timePickerRoot","Root","forwardRef","_ref","ref","className","_ref$opened","opened","outerValue","value","label","_ref$labelPlacement","labelPlacement","keepPlaceholder","_ref$required","required","_ref$requiredPlacemen","requiredPlacement","_ref$hasRequiredIndic","hasRequiredIndicator","placeholder","contentLeft","contentRight","textBefore","textAfter","view","size","_ref$disabled","disabled","_ref$readonly","readonly","_ref$frame","frame","_ref$usePortal","usePortal","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$closeOnEsc","closeOnEsc","offset","stretched","_ref$dropdownAlign","dropdownAlign","dropdownWidth","dropdownHeight","_ref$columnsQuantity","columnsQuantity","onToggle","onFocus","onChange","rest","_objectWithoutProperties","_excluded","inputRef","useRef","hoursHideTimeoutRef","minutesHideTimeoutRef","secondsHideTimeoutRef","_useState","useState","_useState2","_slicedToArray","isInnerOpen","setIsInnerOpen","_useState3","_useState4","innerTime","setInnerTime","_useState5","hours","minutes","seconds","currentColumn","_useState6","setActiveTime","viewValue","format","useEffect","forEach","timeoutRef","current","clearTimeout","timeString","length","substring","_timeString$split$map","split","delimiter","map","Number","_timeString$split$map2","hh","mm","ss","isNaN","handleToggle","newState","prev","_objectSpread","handleOnChange","event","_timeString","timeValues","hour","minute","second","handleInputChange","input","target","cursorPos","selectionStart","_processTimeInput","processTimeInput","innerString","values","newCursorPosition","requestAnimationFrame","setSelectionRange","handleKeyDown","key","preventDefault","handleOnKeyDown","e","onKeyDownNavigation","_useKeyNavigation","useKeyNavigation","isCalendarOpen","maskWithFormat","onKeyDown","TimePickerInput","React","createElement","StyledInput","readOnly","_extends","cls","classes","_defineProperty","timePickerstretched","StyledPopover","placement","getPlacements","trigger","isFocusTrapped","preventOverflow","align","StyledTimePickerGrid","timePickerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readonlyCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"TimePicker.js","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useEffect } from 'react';\nimport cls from 'classnames';\nimport type { ChangeEvent, KeyboardEvent } from 'react';\nimport type { RootProps } from 'src/engines';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { getPlacements } from 'src/utils';\n\nimport { TimePickerGridChangeEvent } from '../TimePickerGrid/TimePickerGrid.types';\n\nimport { processTimeInput, delimiter } from './utils';\nimport { TimePickerProps } from './TimePicker.types';\nimport { base, StyledInput, StyledTimePickerGrid, StyledPopover } from './TimePicker.styles';\nimport { classes } from './TimePicker.tokens';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readonlyCSS } from './variations/_readonly/base';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\ninterface ActiveTime {\n hours?: number | null;\n minutes?: number | null;\n seconds?: number | null;\n currentColumn?: 'hours' | 'minutes' | 'seconds' | null;\n}\n\nexport const timePickerRoot = (\n Root: RootProps<HTMLDivElement, Omit<TimePickerProps, 'opened' | 'defaultValue' | 'onChange'>>,\n) =>\n forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n className,\n opened = false,\n value: outerValue,\n label,\n labelPlacement = 'outer',\n keepPlaceholder,\n required = false,\n requiredPlacement = 'right',\n hasRequiredIndicator = true,\n placeholder,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n view,\n size,\n disabled = false,\n readonly = false,\n frame = 'document',\n usePortal = false,\n closeOnOverlayClick = true,\n closeOnEsc = true,\n offset,\n stretched,\n dropdownAlign = 'left',\n dropdownWidth,\n dropdownHeight,\n columnsQuantity = 2,\n onToggle,\n onFocus,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const rootForkRef = useForkRef(rootRef, ref);\n\n const hoursHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const minutesHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const secondsHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const [isInnerOpen, setIsInnerOpen] = useState(opened);\n const [innerTime, setInnerTime] = useState(outerValue || '');\n const [rootWidth, setRootWidth] = useState<number | null>(null);\n const [, setActiveTime] = useState<ActiveTime>({\n hours: null,\n minutes: null,\n seconds: null,\n currentColumn: null,\n });\n\n const viewValue = outerValue ?? innerTime;\n\n const format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';\n\n useEffect(() => {\n return () => {\n [hoursHideTimeoutRef, minutesHideTimeoutRef, secondsHideTimeoutRef].forEach((timeoutRef) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n });\n };\n }, []);\n\n useEffect(() => {\n if (!viewValue) {\n return;\n }\n\n let timeString = viewValue;\n if (format === 'HH:mm' && viewValue.length > 5) {\n timeString = viewValue.substring(0, 5);\n }\n setInnerTime(viewValue);\n const [hh, mm, ss] = timeString.split(delimiter).map(Number);\n setActiveTime({\n hours: !Number.isNaN(hh) ? hh : null,\n minutes: !Number.isNaN(mm) ? mm : null,\n seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,\n currentColumn: null,\n });\n }, [outerValue, format]);\n\n useEffect(() => {\n if (isInnerOpen && (disabled || readonly)) {\n setIsInnerOpen(false);\n }\n }, [disabled, readonly]);\n\n useEffect(() => {\n if (dropdownWidth === 'fullWidth' && rootRef.current) {\n const width = rootRef.current.offsetWidth;\n setRootWidth(width);\n }\n }, [dropdownWidth, isInnerOpen]);\n\n const handleToggle = () => {\n if (disabled || readonly) return;\n const newState = !isInnerOpen;\n setIsInnerOpen(newState);\n\n if (newState) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: 'hours',\n }));\n }\n\n onToggle?.(newState);\n };\n\n const handleOnChange = (event: TimePickerGridChangeEvent) => {\n if (!event) {\n return;\n }\n\n let timeString = event.value;\n if (format === 'HH:mm' && viewValue.length > 5) {\n timeString = viewValue.substring(0, 5);\n }\n setInnerTime(timeString ?? '');\n\n setActiveTime({\n hours: !Number.isNaN(event.timeValues.hour) ? event.timeValues.hour : null,\n minutes: !Number.isNaN(event.timeValues.minute) ? event.timeValues.minute : null,\n seconds:\n format === 'HH:mm:ss' && !Number.isNaN(event.timeValues.second)\n ? event.timeValues.second\n : null,\n currentColumn: null,\n });\n\n onChange?.(event);\n };\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const input = event.target.value;\n const cursorPos = event.target.selectionStart;\n\n const { innerString, values, newCursorPosition } = processTimeInput(input, format, cursorPos);\n\n setInnerTime(innerString);\n setActiveTime((prev) => ({\n ...prev,\n hours: values.hh,\n minutes: values.mm,\n seconds: values.ss,\n }));\n\n if (onChange) {\n onChange(({\n ...event,\n target: {\n ...event.target,\n value: innerString,\n timeValues: values,\n },\n } as unknown) as ChangeEvent<HTMLInputElement>);\n }\n\n requestAnimationFrame(() => {\n if (inputRef.current) {\n inputRef.current.setSelectionRange(newCursorPosition, newCursorPosition);\n }\n });\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' && !isInnerOpen) {\n event.preventDefault();\n setIsInnerOpen(true);\n setActiveTime((prev) => ({ ...prev, currentColumn: 'hours' }));\n onToggle?.(true);\n }\n };\n\n const handleOnKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDownNavigation(e);\n handleKeyDown(e);\n };\n\n const { onKeyDown: onKeyDownNavigation } = useKeyNavigation({\n isCalendarOpen: isInnerOpen,\n format,\n maskWithFormat: true,\n delimiter,\n closeOnEsc,\n onToggle: handleToggle,\n });\n\n const TimePickerInput = (\n <StyledInput\n ref={inputRef}\n value={viewValue}\n size={size}\n disabled={disabled}\n readOnly={readonly}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onChange={handleInputChange}\n onFocus={onFocus}\n onKeyDown={handleOnKeyDown}\n required={required}\n requiredPlacement={requiredPlacement}\n hasRequiredIndicator={hasRequiredIndicator}\n label={label}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n />\n );\n\n const getDropdownWidth = (): 'fixed' | 'fullWidth' | React.CSSProperties['width'] => {\n if (dropdownWidth === 'fixed' || dropdownWidth === undefined) {\n return undefined;\n }\n if (dropdownWidth === 'fullWidth') {\n return rootWidth !== null ? `${rootWidth}px` : 'fullWidth';\n }\n return dropdownWidth as React.CSSProperties['width'];\n };\n\n return (\n <Root\n stretched={stretched}\n view={view}\n size={size}\n className={cls(classes.timePickerRoot, className, {\n [classes.timePickerstretched]: stretched,\n })}\n disabled={disabled}\n readonly={readonly}\n ref={rootForkRef}\n {...rest}\n >\n <StyledPopover\n opened={isInnerOpen}\n usePortal={usePortal}\n frame={frame}\n onToggle={handleToggle}\n offset={offset}\n placement={getPlacements(dropdownAlign === 'left' ? 'bottom-start' : 'bottom-end', false)}\n trigger=\"click\"\n closeOnOverlayClick={closeOnOverlayClick}\n isFocusTrapped={false}\n target={TimePickerInput}\n preventOverflow={false}\n align={dropdownAlign}\n >\n <StyledTimePickerGrid\n value={viewValue}\n onChange={handleOnChange}\n dropdownHeight={dropdownHeight}\n dropdownWidth={getDropdownWidth()}\n format={format}\n view={view}\n size={size}\n disabled={disabled}\n />\n </StyledPopover>\n </Root>\n );\n },\n );\n\nexport const timePickerConfig = {\n name: 'TimePicker',\n tag: 'div',\n layout: timePickerRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readonly: {\n css: readonlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["timePickerRoot","Root","forwardRef","_ref","ref","className","_ref$opened","opened","outerValue","value","label","_ref$labelPlacement","labelPlacement","keepPlaceholder","_ref$required","required","_ref$requiredPlacemen","requiredPlacement","_ref$hasRequiredIndic","hasRequiredIndicator","placeholder","contentLeft","contentRight","textBefore","textAfter","view","size","_ref$disabled","disabled","_ref$readonly","readonly","_ref$frame","frame","_ref$usePortal","usePortal","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$closeOnEsc","closeOnEsc","offset","stretched","_ref$dropdownAlign","dropdownAlign","dropdownWidth","dropdownHeight","_ref$columnsQuantity","columnsQuantity","onToggle","onFocus","onChange","rest","_objectWithoutProperties","_excluded","inputRef","useRef","rootRef","rootForkRef","useForkRef","hoursHideTimeoutRef","minutesHideTimeoutRef","secondsHideTimeoutRef","_useState","useState","_useState2","_slicedToArray","isInnerOpen","setIsInnerOpen","_useState3","_useState4","innerTime","setInnerTime","_useState5","_useState6","rootWidth","setRootWidth","_useState7","hours","minutes","seconds","currentColumn","_useState8","setActiveTime","viewValue","format","useEffect","forEach","timeoutRef","current","clearTimeout","timeString","length","substring","_timeString$split$map","split","delimiter","map","Number","_timeString$split$map2","hh","mm","ss","isNaN","width","offsetWidth","handleToggle","newState","prev","_objectSpread","handleOnChange","event","_timeString","timeValues","hour","minute","second","handleInputChange","input","target","cursorPos","selectionStart","_processTimeInput","processTimeInput","innerString","values","newCursorPosition","requestAnimationFrame","setSelectionRange","handleKeyDown","key","preventDefault","handleOnKeyDown","e","onKeyDownNavigation","_useKeyNavigation","useKeyNavigation","isCalendarOpen","maskWithFormat","onKeyDown","TimePickerInput","React","createElement","StyledInput","readOnly","getDropdownWidth","undefined","concat","_extends","cls","classes","_defineProperty","timePickerstretched","StyledPopover","placement","getPlacements","trigger","isFocusTrapped","preventOverflow","align","StyledTimePickerGrid","timePickerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readonlyCSS","defaults"],"mappings":"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"}
@@ -10,7 +10,9 @@ var base = "b1gxyazn";
10
10
  var _exp3 = function _exp3() {
11
11
  return function (_ref) {
12
12
  var width = _ref.width;
13
- return (width === 'fullWidth' ? '100%' : width) || "var(".concat(TimePickerGrid_tokens.tokens.timePickerGridWidth, ")");
13
+ if (width === 'fullWidth') return '100%';
14
+ if (width === 'fixed' || width === undefined) return "var(".concat(TimePickerGrid_tokens.tokens.timePickerGridWidth, ")");
15
+ return width;
14
16
  };
15
17
  };
16
18
  var StyledTimePicker = /*#__PURE__*/react.styled('div')({
@@ -1 +1 @@
1
- {"version":3,"file":"TimePickerGrid.styles.js","sources":["../../../src/components/TimePickerGrid/TimePickerGrid.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\n\nimport { tokens } from './TimePickerGrid.tokens';\n\nexport const base = css`\n display: flex;\n width: 100%;\n height: 10rem;\n`;\n\nexport const StyledTimePicker = styled.div<{ width?: string | number }>`\n background: var(${tokens.timePickerGridBackground});\n border-radius: var(${tokens.timePickerGridBorderRadius});\n width: ${({ width }) => (width === 'fullWidth' ? '100%' : width) || `var(${tokens.timePickerGridWidth})`};\n display: flex;\n padding: var(${tokens.timePickerGridPadding});\n flex: 1 1 1;\n gap: var(${tokens.scrollbarWidth});\n box-sizing: border-box;\n position: relative;\n height: var(${tokens.columnHeight});\n`;\n"],"names":["base","_exp3","_ref","width","concat","tokens","timePickerGridWidth","StyledTimePicker","styled","name","class","propsAsIs","vars"],"mappings":";;;;;;;AAKO,IAAMA,IAAI,GAIhB,WAAA;AAAC,IAAAC,KAAA,GARgBA,SAQhBA,KAAAA,GAAA;AAAA,EAAA,OAKW,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAGC,KAAAA,GAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AAAAA,IAAAA,OAAY,CAACA,KAAK,KAAK,WAAW,GAAG,MAAM,GAAGA,KAAK,KAAA,MAAA,CAAAC,MAAA,CAAYC,4BAAM,CAACC,mBAAmB,EAAG,GAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAHrG,IAAMC,gBAAgB,gBAAGC,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,kBAAA;AAAAC,EAAAA,OAAAA,EAAA,QAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,UAAA,EAAA,cAGzBX,KAA+F,EAAA,CAAA;AAAA,GAAA;AAAA,CAQ3G;;;;;"}
1
+ {"version":3,"file":"TimePickerGrid.styles.js","sources":["../../../src/components/TimePickerGrid/TimePickerGrid.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\n\nimport { tokens } from './TimePickerGrid.tokens';\n\nexport const base = css`\n display: flex;\n width: 100%;\n height: 10rem;\n`;\n\nexport const StyledTimePicker = styled.div<{ width?: string | number }>`\n background: var(${tokens.timePickerGridBackground});\n border-radius: var(${tokens.timePickerGridBorderRadius});\n width: ${({ width }) => {\n if (width === 'fullWidth') return '100%';\n if (width === 'fixed' || width === undefined) return `var(${tokens.timePickerGridWidth})`;\n return width;\n }};\n display: flex;\n padding: var(${tokens.timePickerGridPadding});\n flex: 1 1 1;\n gap: var(${tokens.scrollbarWidth});\n box-sizing: border-box;\n position: relative;\n height: var(${tokens.columnHeight});\n`;\n"],"names":["base","_exp3","_ref","width","undefined","concat","tokens","timePickerGridWidth","StyledTimePicker","styled","name","class","propsAsIs","vars"],"mappings":";;;;;;;AAKO,IAAMA,IAAI,GAIhB,WAAA;AAAC,IAAAC,KAAA,GARgBA,SAQhBA,KAAAA,GAAA;EAAA,OAKW,UAAAC,IAAA,EAAe;AAAA,IAAA,IAAZC,KAAAA,GAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AACR,IAAA,IAAIA,KAAK,KAAK,WAAW,EAAE,OAAO,MAAM,CAAA;AACxC,IAAA,IAAIA,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAKC,SAAS,EAAE,OAAAC,MAAAA,CAAAA,MAAA,CAAcC,4BAAM,CAACC,mBAAmB,EAAA,GAAA,CAAA,CAAA;AACtF,IAAA,OAAOJ,KAAK,CAAA;GACf,CAAA;AAAA,CAAA,CAAA;AAPE,IAAMK,gBAAgB,gBAAGC,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,kBAAA;AAAAC,EAAAA,OAAAA,EAAA,QAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,UAAA,EAAA,cAGzBZ,KAIR,EAAA,CAAA;AAAA,GAAA;AAAA,CAQJ;;;;;"}
@@ -18,6 +18,7 @@ _export(exports, {
18
18
  });
19
19
  var _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
20
20
  var _classnames = /*#__PURE__*/ _interop_require_default(require("classnames"));
21
+ var _plasmacore = require("@salutejs/plasma-core");
21
22
  var _utils = require("../../utils");
22
23
  var _utils1 = require("./utils");
23
24
  var _TimePickerstyles = require("./TimePicker.styles");
@@ -234,17 +235,20 @@ var timePickerRoot = function(Root) {
234
235
  "onChange"
235
236
  ]);
236
237
  var inputRef = (0, _react.useRef)(null);
238
+ var rootRef = (0, _react.useRef)(null);
239
+ var rootForkRef = (0, _plasmacore.useForkRef)(rootRef, ref);
237
240
  var hoursHideTimeoutRef = (0, _react.useRef)(null);
238
241
  var minutesHideTimeoutRef = (0, _react.useRef)(null);
239
242
  var secondsHideTimeoutRef = (0, _react.useRef)(null);
240
243
  var _useState = _sliced_to_array((0, _react.useState)(opened), 2), isInnerOpen = _useState[0], setIsInnerOpen = _useState[1];
241
244
  var _useState1 = _sliced_to_array((0, _react.useState)(outerValue || ''), 2), innerTime = _useState1[0], setInnerTime = _useState1[1];
242
- var _useState2 = _sliced_to_array((0, _react.useState)({
245
+ var _useState2 = _sliced_to_array((0, _react.useState)(null), 2), rootWidth = _useState2[0], setRootWidth = _useState2[1];
246
+ var _useState3 = _sliced_to_array((0, _react.useState)({
243
247
  hours: null,
244
248
  minutes: null,
245
249
  seconds: null,
246
250
  currentColumn: null
247
- }), 2), setActiveTime = _useState2[1];
251
+ }), 2), setActiveTime = _useState3[1];
248
252
  var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
249
253
  var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
250
254
  (0, _react.useEffect)(function() {
@@ -288,6 +292,15 @@ var timePickerRoot = function(Root) {
288
292
  disabled,
289
293
  readonly
290
294
  ]);
295
+ (0, _react.useEffect)(function() {
296
+ if (dropdownWidth === 'fullWidth' && rootRef.current) {
297
+ var width = rootRef.current.offsetWidth;
298
+ setRootWidth(width);
299
+ }
300
+ }, [
301
+ dropdownWidth,
302
+ isInnerOpen
303
+ ]);
291
304
  var handleToggle = function() {
292
305
  if (disabled || readonly) return;
293
306
  var newState = !isInnerOpen;
@@ -389,6 +402,15 @@ var timePickerRoot = function(Root) {
389
402
  labelPlacement: labelPlacement,
390
403
  keepPlaceholder: keepPlaceholder
391
404
  });
405
+ var getDropdownWidth = function() {
406
+ if (dropdownWidth === 'fixed' || dropdownWidth === undefined) {
407
+ return undefined;
408
+ }
409
+ if (dropdownWidth === 'fullWidth') {
410
+ return rootWidth !== null ? "".concat(rootWidth, "px") : 'fullWidth';
411
+ }
412
+ return dropdownWidth;
413
+ };
392
414
  return /*#__PURE__*/ _react.default.createElement(Root, _object_spread({
393
415
  stretched: stretched,
394
416
  view: view,
@@ -396,7 +418,7 @@ var timePickerRoot = function(Root) {
396
418
  className: (0, _classnames.default)(_TimePickertokens.classes.timePickerRoot, className, _define_property({}, _TimePickertokens.classes.timePickerstretched, stretched)),
397
419
  disabled: disabled,
398
420
  readonly: readonly,
399
- ref: ref
421
+ ref: rootForkRef
400
422
  }, rest), /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.StyledPopover, {
401
423
  opened: isInnerOpen,
402
424
  usePortal: usePortal,
@@ -414,7 +436,7 @@ var timePickerRoot = function(Root) {
414
436
  value: viewValue,
415
437
  onChange: handleOnChange,
416
438
  dropdownHeight: dropdownHeight,
417
- dropdownWidth: dropdownWidth,
439
+ dropdownWidth: getDropdownWidth(),
418
440
  format: format,
419
441
  view: view,
420
442
  size: size,
@@ -24,11 +24,13 @@ function _interop_require_default(obj) {
24
24
  default: obj
25
25
  };
26
26
  }
27
- var base = (0, /*#__PURE__*/ _react.css)("display:flex;width:100%;height:10rem;", "base", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UaW1lUGlja2VyR3JpZC9UaW1lUGlja2VyR3JpZC5zdHlsZXMudHMiLCJzb3VyY2VzIjpbInNyYy1lbW90aW9uL2NvbXBvbmVudHMvVGltZVBpY2tlckdyaWQvVGltZVBpY2tlckdyaWQuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9UaW1lUGlja2VyR3JpZC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTByZW07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGltZVBpY2tlciA9IHN0eWxlZC5kaXY8eyB3aWR0aD86IHN0cmluZyB8IG51bWJlciB9PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRCYWNrZ3JvdW5kfSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkQm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4gKHdpZHRoID09PSAnZnVsbFdpZHRoJyA/ICcxMDAlJyA6IHdpZHRoKSB8fCBgdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkV2lkdGh9KWB9O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkUGFkZGluZ30pO1xuICAgIGZsZXg6IDEgMSAxO1xuICAgIGdhcDogdmFyKCR7dG9rZW5zLnNjcm9sbGJhcldpZHRofSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiB2YXIoJHt0b2tlbnMuY29sdW1uSGVpZ2h0fSk7XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtvQiJ9 */");
27
+ var base = (0, /*#__PURE__*/ _react.css)("display:flex;width:100%;height:10rem;", "base", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UaW1lUGlja2VyR3JpZC9UaW1lUGlja2VyR3JpZC5zdHlsZXMudHMiLCJzb3VyY2VzIjpbInNyYy1lbW90aW9uL2NvbXBvbmVudHMvVGltZVBpY2tlckdyaWQvVGltZVBpY2tlckdyaWQuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9UaW1lUGlja2VyR3JpZC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTByZW07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGltZVBpY2tlciA9IHN0eWxlZC5kaXY8eyB3aWR0aD86IHN0cmluZyB8IG51bWJlciB9PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRCYWNrZ3JvdW5kfSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkQm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4ge1xuICAgICAgICBpZiAod2lkdGggPT09ICdmdWxsV2lkdGgnKSByZXR1cm4gJzEwMCUnO1xuICAgICAgICBpZiAod2lkdGggPT09ICdmaXhlZCcgfHwgd2lkdGggPT09IHVuZGVmaW5lZCkgcmV0dXJuIGB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRXaWR0aH0pYDtcbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH19O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkUGFkZGluZ30pO1xuICAgIGZsZXg6IDEgMSAxO1xuICAgIGdhcDogdmFyKCR7dG9rZW5zLnNjcm9sbGJhcldpZHRofSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiB2YXIoJHt0b2tlbnMuY29sdW1uSGVpZ2h0fSk7XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtvQiJ9 */");
28
28
  var StyledTimePicker = (0, /*#__PURE__*/ _styled.default)("div", {
29
- target: "e1c95jji0",
29
+ target: "e1g940030",
30
30
  label: "StyledTimePicker"
31
31
  })("background:var(", _TimePickerGridtokens.tokens.timePickerGridBackground, ");border-radius:var(", _TimePickerGridtokens.tokens.timePickerGridBorderRadius, ");width:", function(param) {
32
32
  var width = param.width;
33
- return (width === 'fullWidth' ? '100%' : width) || "var(".concat(_TimePickerGridtokens.tokens.timePickerGridWidth, ")");
34
- }, ";display:flex;padding:var(", _TimePickerGridtokens.tokens.timePickerGridPadding, ");flex:1 1 1;gap:var(", _TimePickerGridtokens.tokens.scrollbarWidth, ");box-sizing:border-box;position:relative;height:var(", _TimePickerGridtokens.tokens.columnHeight, ");", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UaW1lUGlja2VyR3JpZC9UaW1lUGlja2VyR3JpZC5zdHlsZXMudHMiLCJzb3VyY2VzIjpbInNyYy1lbW90aW9uL2NvbXBvbmVudHMvVGltZVBpY2tlckdyaWQvVGltZVBpY2tlckdyaWQuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9UaW1lUGlja2VyR3JpZC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTByZW07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGltZVBpY2tlciA9IHN0eWxlZC5kaXY8eyB3aWR0aD86IHN0cmluZyB8IG51bWJlciB9PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRCYWNrZ3JvdW5kfSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkQm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4gKHdpZHRoID09PSAnZnVsbFdpZHRoJyA/ICcxMDAlJyA6IHdpZHRoKSB8fCBgdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkV2lkdGh9KWB9O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkUGFkZGluZ30pO1xuICAgIGZsZXg6IDEgMSAxO1xuICAgIGdhcDogdmFyKCR7dG9rZW5zLnNjcm9sbGJhcldpZHRofSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiB2YXIoJHt0b2tlbnMuY29sdW1uSGVpZ2h0fSk7XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdnQyJ9 */");
33
+ if (width === 'fullWidth') return '100%';
34
+ if (width === 'fixed' || width === undefined) return "var(".concat(_TimePickerGridtokens.tokens.timePickerGridWidth, ")");
35
+ return width;
36
+ }, ";display:flex;padding:var(", _TimePickerGridtokens.tokens.timePickerGridPadding, ");flex:1 1 1;gap:var(", _TimePickerGridtokens.tokens.scrollbarWidth, ");box-sizing:border-box;position:relative;height:var(", _TimePickerGridtokens.tokens.columnHeight, ");", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UaW1lUGlja2VyR3JpZC9UaW1lUGlja2VyR3JpZC5zdHlsZXMudHMiLCJzb3VyY2VzIjpbInNyYy1lbW90aW9uL2NvbXBvbmVudHMvVGltZVBpY2tlckdyaWQvVGltZVBpY2tlckdyaWQuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9UaW1lUGlja2VyR3JpZC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTByZW07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGltZVBpY2tlciA9IHN0eWxlZC5kaXY8eyB3aWR0aD86IHN0cmluZyB8IG51bWJlciB9PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRCYWNrZ3JvdW5kfSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkQm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4ge1xuICAgICAgICBpZiAod2lkdGggPT09ICdmdWxsV2lkdGgnKSByZXR1cm4gJzEwMCUnO1xuICAgICAgICBpZiAod2lkdGggPT09ICdmaXhlZCcgfHwgd2lkdGggPT09IHVuZGVmaW5lZCkgcmV0dXJuIGB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRXaWR0aH0pYDtcbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH19O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkUGFkZGluZ30pO1xuICAgIGZsZXg6IDEgMSAxO1xuICAgIGdhcDogdmFyKCR7dG9rZW5zLnNjcm9sbGJhcldpZHRofSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiB2YXIoJHt0b2tlbnMuY29sdW1uSGVpZ2h0fSk7XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdnQyJ9 */");
@@ -125,6 +125,7 @@ function _unsupported_iterable_to_array(o, minLen) {
125
125
  }
126
126
  import React, { forwardRef, useRef, useState, useEffect } from "react";
127
127
  import cls from "classnames";
128
+ import { useForkRef } from "@salutejs/plasma-core";
128
129
  import { getPlacements } from "../../utils";
129
130
  import { processTimeInput, delimiter } from "./utils";
130
131
  import { base, StyledInput, StyledTimePickerGrid, StyledPopover } from "./TimePicker.styles";
@@ -170,17 +171,20 @@ export var timePickerRoot = function(Root) {
170
171
  "onChange"
171
172
  ]);
172
173
  var inputRef = useRef(null);
174
+ var rootRef = useRef(null);
175
+ var rootForkRef = useForkRef(rootRef, ref);
173
176
  var hoursHideTimeoutRef = useRef(null);
174
177
  var minutesHideTimeoutRef = useRef(null);
175
178
  var secondsHideTimeoutRef = useRef(null);
176
179
  var _useState = _sliced_to_array(useState(opened), 2), isInnerOpen = _useState[0], setIsInnerOpen = _useState[1];
177
180
  var _useState1 = _sliced_to_array(useState(outerValue || ''), 2), innerTime = _useState1[0], setInnerTime = _useState1[1];
178
- var _useState2 = _sliced_to_array(useState({
181
+ var _useState2 = _sliced_to_array(useState(null), 2), rootWidth = _useState2[0], setRootWidth = _useState2[1];
182
+ var _useState3 = _sliced_to_array(useState({
179
183
  hours: null,
180
184
  minutes: null,
181
185
  seconds: null,
182
186
  currentColumn: null
183
- }), 2), setActiveTime = _useState2[1];
187
+ }), 2), setActiveTime = _useState3[1];
184
188
  var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
185
189
  var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
186
190
  useEffect(function() {
@@ -224,6 +228,15 @@ export var timePickerRoot = function(Root) {
224
228
  disabled,
225
229
  readonly
226
230
  ]);
231
+ useEffect(function() {
232
+ if (dropdownWidth === 'fullWidth' && rootRef.current) {
233
+ var width = rootRef.current.offsetWidth;
234
+ setRootWidth(width);
235
+ }
236
+ }, [
237
+ dropdownWidth,
238
+ isInnerOpen
239
+ ]);
227
240
  var handleToggle = function() {
228
241
  if (disabled || readonly) return;
229
242
  var newState = !isInnerOpen;
@@ -325,6 +338,15 @@ export var timePickerRoot = function(Root) {
325
338
  labelPlacement: labelPlacement,
326
339
  keepPlaceholder: keepPlaceholder
327
340
  });
341
+ var getDropdownWidth = function() {
342
+ if (dropdownWidth === 'fixed' || dropdownWidth === undefined) {
343
+ return undefined;
344
+ }
345
+ if (dropdownWidth === 'fullWidth') {
346
+ return rootWidth !== null ? "".concat(rootWidth, "px") : 'fullWidth';
347
+ }
348
+ return dropdownWidth;
349
+ };
328
350
  return /*#__PURE__*/ React.createElement(Root, _object_spread({
329
351
  stretched: stretched,
330
352
  view: view,
@@ -332,7 +354,7 @@ export var timePickerRoot = function(Root) {
332
354
  className: cls(classes.timePickerRoot, className, _define_property({}, classes.timePickerstretched, stretched)),
333
355
  disabled: disabled,
334
356
  readonly: readonly,
335
- ref: ref
357
+ ref: rootForkRef
336
358
  }, rest), /*#__PURE__*/ React.createElement(StyledPopover, {
337
359
  opened: isInnerOpen,
338
360
  usePortal: usePortal,
@@ -350,7 +372,7 @@ export var timePickerRoot = function(Root) {
350
372
  value: viewValue,
351
373
  onChange: handleOnChange,
352
374
  dropdownHeight: dropdownHeight,
353
- dropdownWidth: dropdownWidth,
375
+ dropdownWidth: getDropdownWidth(),
354
376
  format: format,
355
377
  view: view,
356
378
  size: size,
@@ -1,11 +1,13 @@
1
1
  import styled from "@emotion/styled";
2
2
  import { css } from "@emotion/react";
3
3
  import { tokens } from "./TimePickerGrid.tokens";
4
- export var base = /*#__PURE__*/ css("display:flex;width:100%;height:10rem;", "base", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UaW1lUGlja2VyR3JpZC9UaW1lUGlja2VyR3JpZC5zdHlsZXMudHMiLCJzb3VyY2VzIjpbInNyYy1lbW90aW9uL2NvbXBvbmVudHMvVGltZVBpY2tlckdyaWQvVGltZVBpY2tlckdyaWQuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9UaW1lUGlja2VyR3JpZC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTByZW07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGltZVBpY2tlciA9IHN0eWxlZC5kaXY8eyB3aWR0aD86IHN0cmluZyB8IG51bWJlciB9PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRCYWNrZ3JvdW5kfSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkQm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4gKHdpZHRoID09PSAnZnVsbFdpZHRoJyA/ICcxMDAlJyA6IHdpZHRoKSB8fCBgdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkV2lkdGh9KWB9O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkUGFkZGluZ30pO1xuICAgIGZsZXg6IDEgMSAxO1xuICAgIGdhcDogdmFyKCR7dG9rZW5zLnNjcm9sbGJhcldpZHRofSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiB2YXIoJHt0b2tlbnMuY29sdW1uSGVpZ2h0fSk7XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtvQiJ9 */");
4
+ export var base = /*#__PURE__*/ css("display:flex;width:100%;height:10rem;", "base", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UaW1lUGlja2VyR3JpZC9UaW1lUGlja2VyR3JpZC5zdHlsZXMudHMiLCJzb3VyY2VzIjpbInNyYy1lbW90aW9uL2NvbXBvbmVudHMvVGltZVBpY2tlckdyaWQvVGltZVBpY2tlckdyaWQuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9UaW1lUGlja2VyR3JpZC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTByZW07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGltZVBpY2tlciA9IHN0eWxlZC5kaXY8eyB3aWR0aD86IHN0cmluZyB8IG51bWJlciB9PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRCYWNrZ3JvdW5kfSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkQm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4ge1xuICAgICAgICBpZiAod2lkdGggPT09ICdmdWxsV2lkdGgnKSByZXR1cm4gJzEwMCUnO1xuICAgICAgICBpZiAod2lkdGggPT09ICdmaXhlZCcgfHwgd2lkdGggPT09IHVuZGVmaW5lZCkgcmV0dXJuIGB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRXaWR0aH0pYDtcbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH19O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkUGFkZGluZ30pO1xuICAgIGZsZXg6IDEgMSAxO1xuICAgIGdhcDogdmFyKCR7dG9rZW5zLnNjcm9sbGJhcldpZHRofSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiB2YXIoJHt0b2tlbnMuY29sdW1uSGVpZ2h0fSk7XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtvQiJ9 */");
5
5
  export var StyledTimePicker = /*#__PURE__*/ styled("div", {
6
- target: "e1c95jji0",
6
+ target: "e1g940030",
7
7
  label: "StyledTimePicker"
8
8
  })("background:var(", tokens.timePickerGridBackground, ");border-radius:var(", tokens.timePickerGridBorderRadius, ");width:", function(param) {
9
9
  var width = param.width;
10
- return (width === 'fullWidth' ? '100%' : width) || "var(".concat(tokens.timePickerGridWidth, ")");
11
- }, ";display:flex;padding:var(", tokens.timePickerGridPadding, ");flex:1 1 1;gap:var(", tokens.scrollbarWidth, ");box-sizing:border-box;position:relative;height:var(", tokens.columnHeight, ");", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UaW1lUGlja2VyR3JpZC9UaW1lUGlja2VyR3JpZC5zdHlsZXMudHMiLCJzb3VyY2VzIjpbInNyYy1lbW90aW9uL2NvbXBvbmVudHMvVGltZVBpY2tlckdyaWQvVGltZVBpY2tlckdyaWQuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9UaW1lUGlja2VyR3JpZC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTByZW07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGltZVBpY2tlciA9IHN0eWxlZC5kaXY8eyB3aWR0aD86IHN0cmluZyB8IG51bWJlciB9PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRCYWNrZ3JvdW5kfSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkQm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4gKHdpZHRoID09PSAnZnVsbFdpZHRoJyA/ICcxMDAlJyA6IHdpZHRoKSB8fCBgdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkV2lkdGh9KWB9O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkUGFkZGluZ30pO1xuICAgIGZsZXg6IDEgMSAxO1xuICAgIGdhcDogdmFyKCR7dG9rZW5zLnNjcm9sbGJhcldpZHRofSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiB2YXIoJHt0b2tlbnMuY29sdW1uSGVpZ2h0fSk7XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdnQyJ9 */");
10
+ if (width === 'fullWidth') return '100%';
11
+ if (width === 'fixed' || width === undefined) return "var(".concat(tokens.timePickerGridWidth, ")");
12
+ return width;
13
+ }, ";display:flex;padding:var(", tokens.timePickerGridPadding, ");flex:1 1 1;gap:var(", tokens.scrollbarWidth, ");box-sizing:border-box;position:relative;height:var(", tokens.columnHeight, ");", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UaW1lUGlja2VyR3JpZC9UaW1lUGlja2VyR3JpZC5zdHlsZXMudHMiLCJzb3VyY2VzIjpbInNyYy1lbW90aW9uL2NvbXBvbmVudHMvVGltZVBpY2tlckdyaWQvVGltZVBpY2tlckdyaWQuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi9UaW1lUGlja2VyR3JpZC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTByZW07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGltZVBpY2tlciA9IHN0eWxlZC5kaXY8eyB3aWR0aD86IHN0cmluZyB8IG51bWJlciB9PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRCYWNrZ3JvdW5kfSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkQm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgd2lkdGggfSkgPT4ge1xuICAgICAgICBpZiAod2lkdGggPT09ICdmdWxsV2lkdGgnKSByZXR1cm4gJzEwMCUnO1xuICAgICAgICBpZiAod2lkdGggPT09ICdmaXhlZCcgfHwgd2lkdGggPT09IHVuZGVmaW5lZCkgcmV0dXJuIGB2YXIoJHt0b2tlbnMudGltZVBpY2tlckdyaWRXaWR0aH0pYDtcbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH19O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKCR7dG9rZW5zLnRpbWVQaWNrZXJHcmlkUGFkZGluZ30pO1xuICAgIGZsZXg6IDEgMSAxO1xuICAgIGdhcDogdmFyKCR7dG9rZW5zLnNjcm9sbGJhcldpZHRofSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiB2YXIoJHt0b2tlbnMuY29sdW1uSGVpZ2h0fSk7XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdnQyJ9 */");
@@ -1,6 +1,7 @@
1
1
  import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends, defineProperty as _defineProperty, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useRef, useState, useEffect } from 'react';
3
3
  import cls from 'classnames';
4
+ import { useForkRef } from '@salutejs/plasma-core';
4
5
  import { delimiter, processTimeInput } from './utils/index.js';
5
6
  import { StyledPopover, StyledTimePickerGrid, base, StyledInput } from './TimePicker.styles.js';
6
7
  import { classes } from './TimePicker.tokens.js';
@@ -60,6 +61,8 @@ var timePickerRoot = function timePickerRoot(Root) {
60
61
  onChange = _ref.onChange,
61
62
  rest = _objectWithoutProperties(_ref, _excluded);
62
63
  var inputRef = useRef(null);
64
+ var rootRef = useRef(null);
65
+ var rootForkRef = useForkRef(rootRef, ref);
63
66
  var hoursHideTimeoutRef = useRef(null);
64
67
  var minutesHideTimeoutRef = useRef(null);
65
68
  var secondsHideTimeoutRef = useRef(null);
@@ -71,14 +74,18 @@ var timePickerRoot = function timePickerRoot(Root) {
71
74
  _useState4 = _slicedToArray(_useState3, 2),
72
75
  innerTime = _useState4[0],
73
76
  setInnerTime = _useState4[1];
74
- var _useState5 = useState({
77
+ var _useState5 = useState(null),
78
+ _useState6 = _slicedToArray(_useState5, 2),
79
+ rootWidth = _useState6[0],
80
+ setRootWidth = _useState6[1];
81
+ var _useState7 = useState({
75
82
  hours: null,
76
83
  minutes: null,
77
84
  seconds: null,
78
85
  currentColumn: null
79
86
  }),
80
- _useState6 = _slicedToArray(_useState5, 2),
81
- setActiveTime = _useState6[1];
87
+ _useState8 = _slicedToArray(_useState7, 2),
88
+ setActiveTime = _useState8[1];
82
89
  var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
83
90
  var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
84
91
  useEffect(function () {
@@ -116,6 +123,12 @@ var timePickerRoot = function timePickerRoot(Root) {
116
123
  setIsInnerOpen(false);
117
124
  }
118
125
  }, [disabled, readonly]);
126
+ useEffect(function () {
127
+ if (dropdownWidth === 'fullWidth' && rootRef.current) {
128
+ var width = rootRef.current.offsetWidth;
129
+ setRootWidth(width);
130
+ }
131
+ }, [dropdownWidth, isInnerOpen]);
119
132
  var handleToggle = function handleToggle() {
120
133
  if (disabled || readonly) return;
121
134
  var newState = !isInnerOpen;
@@ -222,6 +235,15 @@ var timePickerRoot = function timePickerRoot(Root) {
222
235
  labelPlacement: labelPlacement,
223
236
  keepPlaceholder: keepPlaceholder
224
237
  });
238
+ var getDropdownWidth = function getDropdownWidth() {
239
+ if (dropdownWidth === 'fixed' || dropdownWidth === undefined) {
240
+ return undefined;
241
+ }
242
+ if (dropdownWidth === 'fullWidth') {
243
+ return rootWidth !== null ? "".concat(rootWidth, "px") : 'fullWidth';
244
+ }
245
+ return dropdownWidth;
246
+ };
225
247
  return /*#__PURE__*/React.createElement(Root, _extends({
226
248
  stretched: stretched,
227
249
  view: view,
@@ -229,7 +251,7 @@ var timePickerRoot = function timePickerRoot(Root) {
229
251
  className: cls(classes.timePickerRoot, className, _defineProperty({}, classes.timePickerstretched, stretched)),
230
252
  disabled: disabled,
231
253
  readonly: readonly,
232
- ref: ref
254
+ ref: rootForkRef
233
255
  }, rest), /*#__PURE__*/React.createElement(StyledPopover, {
234
256
  opened: isInnerOpen,
235
257
  usePortal: usePortal,
@@ -247,7 +269,7 @@ var timePickerRoot = function timePickerRoot(Root) {
247
269
  value: viewValue,
248
270
  onChange: handleOnChange,
249
271
  dropdownHeight: dropdownHeight,
250
- dropdownWidth: dropdownWidth,
272
+ dropdownWidth: getDropdownWidth(),
251
273
  format: format,
252
274
  view: view,
253
275
  size: size,
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useEffect } from 'react';\nimport cls from 'classnames';\nimport type { ChangeEvent, KeyboardEvent } from 'react';\nimport type { RootProps } from 'src/engines';\nimport { getPlacements } from 'src/utils';\n\nimport { TimePickerGridChangeEvent } from '../TimePickerGrid/TimePickerGrid.types';\n\nimport { processTimeInput, delimiter } from './utils';\nimport { TimePickerProps } from './TimePicker.types';\nimport { base, StyledInput, StyledTimePickerGrid, StyledPopover } from './TimePicker.styles';\nimport { classes } from './TimePicker.tokens';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readonlyCSS } from './variations/_readonly/base';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\ninterface ActiveTime {\n hours?: number | null;\n minutes?: number | null;\n seconds?: number | null;\n currentColumn?: 'hours' | 'minutes' | 'seconds' | null;\n}\n\nexport const timePickerRoot = (\n Root: RootProps<HTMLDivElement, Omit<TimePickerProps, 'opened' | 'defaultValue' | 'onChange'>>,\n) =>\n forwardRef<HTMLInputElement, TimePickerProps>(\n (\n {\n className,\n opened = false,\n value: outerValue,\n label,\n labelPlacement = 'outer',\n keepPlaceholder,\n required = false,\n requiredPlacement = 'right',\n hasRequiredIndicator = true,\n placeholder,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n view,\n size,\n disabled = false,\n readonly = false,\n frame = 'document',\n usePortal = false,\n closeOnOverlayClick = true,\n closeOnEsc = true,\n offset,\n stretched,\n dropdownAlign = 'left',\n dropdownWidth,\n dropdownHeight,\n columnsQuantity = 2,\n onToggle,\n onFocus,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const hoursHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const minutesHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const secondsHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const [isInnerOpen, setIsInnerOpen] = useState(opened);\n const [innerTime, setInnerTime] = useState(outerValue || '');\n const [, setActiveTime] = useState<ActiveTime>({\n hours: null,\n minutes: null,\n seconds: null,\n currentColumn: null,\n });\n\n const viewValue = outerValue ?? innerTime;\n\n const format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';\n\n useEffect(() => {\n return () => {\n [hoursHideTimeoutRef, minutesHideTimeoutRef, secondsHideTimeoutRef].forEach((timeoutRef) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n });\n };\n }, []);\n\n useEffect(() => {\n if (!viewValue) {\n return;\n }\n\n let timeString = viewValue;\n if (format === 'HH:mm' && viewValue.length > 5) {\n timeString = viewValue.substring(0, 5);\n }\n setInnerTime(viewValue);\n const [hh, mm, ss] = timeString.split(delimiter).map(Number);\n setActiveTime({\n hours: !Number.isNaN(hh) ? hh : null,\n minutes: !Number.isNaN(mm) ? mm : null,\n seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,\n currentColumn: null,\n });\n }, [outerValue, format]);\n\n useEffect(() => {\n if (isInnerOpen && (disabled || readonly)) {\n setIsInnerOpen(false);\n }\n }, [disabled, readonly]);\n\n const handleToggle = () => {\n if (disabled || readonly) return;\n const newState = !isInnerOpen;\n setIsInnerOpen(newState);\n\n if (newState) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: 'hours',\n }));\n }\n\n onToggle?.(newState);\n };\n\n const handleOnChange = (event: TimePickerGridChangeEvent) => {\n if (!event) {\n return;\n }\n\n let timeString = event.value;\n if (format === 'HH:mm' && viewValue.length > 5) {\n timeString = viewValue.substring(0, 5);\n }\n setInnerTime(timeString ?? '');\n\n setActiveTime({\n hours: !Number.isNaN(event.timeValues.hour) ? event.timeValues.hour : null,\n minutes: !Number.isNaN(event.timeValues.minute) ? event.timeValues.minute : null,\n seconds:\n format === 'HH:mm:ss' && !Number.isNaN(event.timeValues.second)\n ? event.timeValues.second\n : null,\n currentColumn: null,\n });\n\n onChange?.(event);\n };\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const input = event.target.value;\n const cursorPos = event.target.selectionStart;\n\n const { innerString, values, newCursorPosition } = processTimeInput(input, format, cursorPos);\n\n setInnerTime(innerString);\n setActiveTime((prev) => ({\n ...prev,\n hours: values.hh,\n minutes: values.mm,\n seconds: values.ss,\n }));\n\n if (onChange) {\n onChange(({\n ...event,\n target: {\n ...event.target,\n value: innerString,\n timeValues: values,\n },\n } as unknown) as ChangeEvent<HTMLInputElement>);\n }\n\n requestAnimationFrame(() => {\n if (inputRef.current) {\n inputRef.current.setSelectionRange(newCursorPosition, newCursorPosition);\n }\n });\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' && !isInnerOpen) {\n event.preventDefault();\n setIsInnerOpen(true);\n setActiveTime((prev) => ({ ...prev, currentColumn: 'hours' }));\n onToggle?.(true);\n }\n };\n\n const handleOnKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDownNavigation(e);\n handleKeyDown(e);\n };\n\n const { onKeyDown: onKeyDownNavigation } = useKeyNavigation({\n isCalendarOpen: isInnerOpen,\n format,\n maskWithFormat: true,\n delimiter,\n closeOnEsc,\n onToggle: handleToggle,\n });\n\n const TimePickerInput = (\n <StyledInput\n ref={inputRef}\n value={viewValue}\n size={size}\n disabled={disabled}\n readOnly={readonly}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onChange={handleInputChange}\n onFocus={onFocus}\n onKeyDown={handleOnKeyDown}\n required={required}\n requiredPlacement={requiredPlacement}\n hasRequiredIndicator={hasRequiredIndicator}\n label={label}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n />\n );\n\n return (\n <Root\n stretched={stretched}\n view={view}\n size={size}\n className={cls(classes.timePickerRoot, className, {\n [classes.timePickerstretched]: stretched,\n })}\n disabled={disabled}\n readonly={readonly}\n ref={ref}\n {...rest}\n >\n <StyledPopover\n opened={isInnerOpen}\n usePortal={usePortal}\n frame={frame}\n onToggle={handleToggle}\n offset={offset}\n placement={getPlacements(dropdownAlign === 'left' ? 'bottom-start' : 'bottom-end', false)}\n trigger=\"click\"\n closeOnOverlayClick={closeOnOverlayClick}\n isFocusTrapped={false}\n target={TimePickerInput}\n preventOverflow={false}\n align={dropdownAlign}\n >\n <StyledTimePickerGrid\n value={viewValue}\n onChange={handleOnChange}\n dropdownHeight={dropdownHeight}\n dropdownWidth={dropdownWidth}\n format={format}\n view={view}\n size={size}\n disabled={disabled}\n />\n </StyledPopover>\n </Root>\n );\n },\n );\n\nexport const timePickerConfig = {\n name: 'TimePicker',\n tag: 'div',\n layout: timePickerRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readonly: {\n css: readonlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["timePickerRoot","Root","forwardRef","_ref","ref","className","_ref$opened","opened","outerValue","value","label","_ref$labelPlacement","labelPlacement","keepPlaceholder","_ref$required","required","_ref$requiredPlacemen","requiredPlacement","_ref$hasRequiredIndic","hasRequiredIndicator","placeholder","contentLeft","contentRight","textBefore","textAfter","view","size","_ref$disabled","disabled","_ref$readonly","readonly","_ref$frame","frame","_ref$usePortal","usePortal","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$closeOnEsc","closeOnEsc","offset","stretched","_ref$dropdownAlign","dropdownAlign","dropdownWidth","dropdownHeight","_ref$columnsQuantity","columnsQuantity","onToggle","onFocus","onChange","rest","_objectWithoutProperties","_excluded","inputRef","useRef","hoursHideTimeoutRef","minutesHideTimeoutRef","secondsHideTimeoutRef","_useState","useState","_useState2","_slicedToArray","isInnerOpen","setIsInnerOpen","_useState3","_useState4","innerTime","setInnerTime","_useState5","hours","minutes","seconds","currentColumn","_useState6","setActiveTime","viewValue","format","useEffect","forEach","timeoutRef","current","clearTimeout","timeString","length","substring","_timeString$split$map","split","delimiter","map","Number","_timeString$split$map2","hh","mm","ss","isNaN","handleToggle","newState","prev","_objectSpread","handleOnChange","event","_timeString","timeValues","hour","minute","second","handleInputChange","input","target","cursorPos","selectionStart","_processTimeInput","processTimeInput","innerString","values","newCursorPosition","requestAnimationFrame","setSelectionRange","handleKeyDown","key","preventDefault","handleOnKeyDown","e","onKeyDownNavigation","_useKeyNavigation","useKeyNavigation","isCalendarOpen","maskWithFormat","onKeyDown","TimePickerInput","React","createElement","StyledInput","readOnly","_extends","cls","classes","_defineProperty","timePickerstretched","StyledPopover","placement","getPlacements","trigger","isFocusTrapped","preventOverflow","align","StyledTimePickerGrid","timePickerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readonlyCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"TimePicker.js","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useEffect } from 'react';\nimport cls from 'classnames';\nimport type { ChangeEvent, KeyboardEvent } from 'react';\nimport type { RootProps } from 'src/engines';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { getPlacements } from 'src/utils';\n\nimport { TimePickerGridChangeEvent } from '../TimePickerGrid/TimePickerGrid.types';\n\nimport { processTimeInput, delimiter } from './utils';\nimport { TimePickerProps } from './TimePicker.types';\nimport { base, StyledInput, StyledTimePickerGrid, StyledPopover } from './TimePicker.styles';\nimport { classes } from './TimePicker.tokens';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readonlyCSS } from './variations/_readonly/base';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\ninterface ActiveTime {\n hours?: number | null;\n minutes?: number | null;\n seconds?: number | null;\n currentColumn?: 'hours' | 'minutes' | 'seconds' | null;\n}\n\nexport const timePickerRoot = (\n Root: RootProps<HTMLDivElement, Omit<TimePickerProps, 'opened' | 'defaultValue' | 'onChange'>>,\n) =>\n forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n className,\n opened = false,\n value: outerValue,\n label,\n labelPlacement = 'outer',\n keepPlaceholder,\n required = false,\n requiredPlacement = 'right',\n hasRequiredIndicator = true,\n placeholder,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n view,\n size,\n disabled = false,\n readonly = false,\n frame = 'document',\n usePortal = false,\n closeOnOverlayClick = true,\n closeOnEsc = true,\n offset,\n stretched,\n dropdownAlign = 'left',\n dropdownWidth,\n dropdownHeight,\n columnsQuantity = 2,\n onToggle,\n onFocus,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const rootForkRef = useForkRef(rootRef, ref);\n\n const hoursHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const minutesHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const secondsHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const [isInnerOpen, setIsInnerOpen] = useState(opened);\n const [innerTime, setInnerTime] = useState(outerValue || '');\n const [rootWidth, setRootWidth] = useState<number | null>(null);\n const [, setActiveTime] = useState<ActiveTime>({\n hours: null,\n minutes: null,\n seconds: null,\n currentColumn: null,\n });\n\n const viewValue = outerValue ?? innerTime;\n\n const format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';\n\n useEffect(() => {\n return () => {\n [hoursHideTimeoutRef, minutesHideTimeoutRef, secondsHideTimeoutRef].forEach((timeoutRef) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n });\n };\n }, []);\n\n useEffect(() => {\n if (!viewValue) {\n return;\n }\n\n let timeString = viewValue;\n if (format === 'HH:mm' && viewValue.length > 5) {\n timeString = viewValue.substring(0, 5);\n }\n setInnerTime(viewValue);\n const [hh, mm, ss] = timeString.split(delimiter).map(Number);\n setActiveTime({\n hours: !Number.isNaN(hh) ? hh : null,\n minutes: !Number.isNaN(mm) ? mm : null,\n seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,\n currentColumn: null,\n });\n }, [outerValue, format]);\n\n useEffect(() => {\n if (isInnerOpen && (disabled || readonly)) {\n setIsInnerOpen(false);\n }\n }, [disabled, readonly]);\n\n useEffect(() => {\n if (dropdownWidth === 'fullWidth' && rootRef.current) {\n const width = rootRef.current.offsetWidth;\n setRootWidth(width);\n }\n }, [dropdownWidth, isInnerOpen]);\n\n const handleToggle = () => {\n if (disabled || readonly) return;\n const newState = !isInnerOpen;\n setIsInnerOpen(newState);\n\n if (newState) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: 'hours',\n }));\n }\n\n onToggle?.(newState);\n };\n\n const handleOnChange = (event: TimePickerGridChangeEvent) => {\n if (!event) {\n return;\n }\n\n let timeString = event.value;\n if (format === 'HH:mm' && viewValue.length > 5) {\n timeString = viewValue.substring(0, 5);\n }\n setInnerTime(timeString ?? '');\n\n setActiveTime({\n hours: !Number.isNaN(event.timeValues.hour) ? event.timeValues.hour : null,\n minutes: !Number.isNaN(event.timeValues.minute) ? event.timeValues.minute : null,\n seconds:\n format === 'HH:mm:ss' && !Number.isNaN(event.timeValues.second)\n ? event.timeValues.second\n : null,\n currentColumn: null,\n });\n\n onChange?.(event);\n };\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const input = event.target.value;\n const cursorPos = event.target.selectionStart;\n\n const { innerString, values, newCursorPosition } = processTimeInput(input, format, cursorPos);\n\n setInnerTime(innerString);\n setActiveTime((prev) => ({\n ...prev,\n hours: values.hh,\n minutes: values.mm,\n seconds: values.ss,\n }));\n\n if (onChange) {\n onChange(({\n ...event,\n target: {\n ...event.target,\n value: innerString,\n timeValues: values,\n },\n } as unknown) as ChangeEvent<HTMLInputElement>);\n }\n\n requestAnimationFrame(() => {\n if (inputRef.current) {\n inputRef.current.setSelectionRange(newCursorPosition, newCursorPosition);\n }\n });\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' && !isInnerOpen) {\n event.preventDefault();\n setIsInnerOpen(true);\n setActiveTime((prev) => ({ ...prev, currentColumn: 'hours' }));\n onToggle?.(true);\n }\n };\n\n const handleOnKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDownNavigation(e);\n handleKeyDown(e);\n };\n\n const { onKeyDown: onKeyDownNavigation } = useKeyNavigation({\n isCalendarOpen: isInnerOpen,\n format,\n maskWithFormat: true,\n delimiter,\n closeOnEsc,\n onToggle: handleToggle,\n });\n\n const TimePickerInput = (\n <StyledInput\n ref={inputRef}\n value={viewValue}\n size={size}\n disabled={disabled}\n readOnly={readonly}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onChange={handleInputChange}\n onFocus={onFocus}\n onKeyDown={handleOnKeyDown}\n required={required}\n requiredPlacement={requiredPlacement}\n hasRequiredIndicator={hasRequiredIndicator}\n label={label}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n />\n );\n\n const getDropdownWidth = (): 'fixed' | 'fullWidth' | React.CSSProperties['width'] => {\n if (dropdownWidth === 'fixed' || dropdownWidth === undefined) {\n return undefined;\n }\n if (dropdownWidth === 'fullWidth') {\n return rootWidth !== null ? `${rootWidth}px` : 'fullWidth';\n }\n return dropdownWidth as React.CSSProperties['width'];\n };\n\n return (\n <Root\n stretched={stretched}\n view={view}\n size={size}\n className={cls(classes.timePickerRoot, className, {\n [classes.timePickerstretched]: stretched,\n })}\n disabled={disabled}\n readonly={readonly}\n ref={rootForkRef}\n {...rest}\n >\n <StyledPopover\n opened={isInnerOpen}\n usePortal={usePortal}\n frame={frame}\n onToggle={handleToggle}\n offset={offset}\n placement={getPlacements(dropdownAlign === 'left' ? 'bottom-start' : 'bottom-end', false)}\n trigger=\"click\"\n closeOnOverlayClick={closeOnOverlayClick}\n isFocusTrapped={false}\n target={TimePickerInput}\n preventOverflow={false}\n align={dropdownAlign}\n >\n <StyledTimePickerGrid\n value={viewValue}\n onChange={handleOnChange}\n dropdownHeight={dropdownHeight}\n dropdownWidth={getDropdownWidth()}\n format={format}\n view={view}\n size={size}\n disabled={disabled}\n />\n </StyledPopover>\n </Root>\n );\n },\n );\n\nexport const timePickerConfig = {\n name: 'TimePicker',\n tag: 'div',\n layout: timePickerRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readonly: {\n css: readonlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["timePickerRoot","Root","forwardRef","_ref","ref","className","_ref$opened","opened","outerValue","value","label","_ref$labelPlacement","labelPlacement","keepPlaceholder","_ref$required","required","_ref$requiredPlacemen","requiredPlacement","_ref$hasRequiredIndic","hasRequiredIndicator","placeholder","contentLeft","contentRight","textBefore","textAfter","view","size","_ref$disabled","disabled","_ref$readonly","readonly","_ref$frame","frame","_ref$usePortal","usePortal","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$closeOnEsc","closeOnEsc","offset","stretched","_ref$dropdownAlign","dropdownAlign","dropdownWidth","dropdownHeight","_ref$columnsQuantity","columnsQuantity","onToggle","onFocus","onChange","rest","_objectWithoutProperties","_excluded","inputRef","useRef","rootRef","rootForkRef","useForkRef","hoursHideTimeoutRef","minutesHideTimeoutRef","secondsHideTimeoutRef","_useState","useState","_useState2","_slicedToArray","isInnerOpen","setIsInnerOpen","_useState3","_useState4","innerTime","setInnerTime","_useState5","_useState6","rootWidth","setRootWidth","_useState7","hours","minutes","seconds","currentColumn","_useState8","setActiveTime","viewValue","format","useEffect","forEach","timeoutRef","current","clearTimeout","timeString","length","substring","_timeString$split$map","split","delimiter","map","Number","_timeString$split$map2","hh","mm","ss","isNaN","width","offsetWidth","handleToggle","newState","prev","_objectSpread","handleOnChange","event","_timeString","timeValues","hour","minute","second","handleInputChange","input","target","cursorPos","selectionStart","_processTimeInput","processTimeInput","innerString","values","newCursorPosition","requestAnimationFrame","setSelectionRange","handleKeyDown","key","preventDefault","handleOnKeyDown","e","onKeyDownNavigation","_useKeyNavigation","useKeyNavigation","isCalendarOpen","maskWithFormat","onKeyDown","TimePickerInput","React","createElement","StyledInput","readOnly","getDropdownWidth","undefined","concat","_extends","cls","classes","_defineProperty","timePickerstretched","StyledPopover","placement","getPlacements","trigger","isFocusTrapped","preventOverflow","align","StyledTimePickerGrid","timePickerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readonlyCSS","defaults"],"mappings":"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"}
@@ -6,7 +6,9 @@ var base = "b1gxyazn";
6
6
  var _exp3 = function _exp3() {
7
7
  return function (_ref) {
8
8
  var width = _ref.width;
9
- return (width === 'fullWidth' ? '100%' : width) || "var(".concat(tokens.timePickerGridWidth, ")");
9
+ if (width === 'fullWidth') return '100%';
10
+ if (width === 'fixed' || width === undefined) return "var(".concat(tokens.timePickerGridWidth, ")");
11
+ return width;
10
12
  };
11
13
  };
12
14
  var StyledTimePicker = /*#__PURE__*/styled('div')({
@@ -1 +1 @@
1
- {"version":3,"file":"TimePickerGrid.styles.js","sources":["../../../src/components/TimePickerGrid/TimePickerGrid.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\n\nimport { tokens } from './TimePickerGrid.tokens';\n\nexport const base = css`\n display: flex;\n width: 100%;\n height: 10rem;\n`;\n\nexport const StyledTimePicker = styled.div<{ width?: string | number }>`\n background: var(${tokens.timePickerGridBackground});\n border-radius: var(${tokens.timePickerGridBorderRadius});\n width: ${({ width }) => (width === 'fullWidth' ? '100%' : width) || `var(${tokens.timePickerGridWidth})`};\n display: flex;\n padding: var(${tokens.timePickerGridPadding});\n flex: 1 1 1;\n gap: var(${tokens.scrollbarWidth});\n box-sizing: border-box;\n position: relative;\n height: var(${tokens.columnHeight});\n`;\n"],"names":["base","_exp3","_ref","width","concat","tokens","timePickerGridWidth","StyledTimePicker","styled","name","class","propsAsIs","vars"],"mappings":";;;AAKO,IAAMA,IAAI,GAIhB,WAAA;AAAC,IAAAC,KAAA,GARgBA,SAQhBA,KAAAA,GAAA;AAAA,EAAA,OAKW,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAGC,KAAAA,GAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AAAAA,IAAAA,OAAY,CAACA,KAAK,KAAK,WAAW,GAAG,MAAM,GAAGA,KAAK,KAAA,MAAA,CAAAC,MAAA,CAAYC,MAAM,CAACC,mBAAmB,EAAG,GAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAHrG,IAAMC,gBAAgB,gBAAGC,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,kBAAA;AAAAC,EAAAA,OAAAA,EAAA,QAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,UAAA,EAAA,cAGzBX,KAA+F,EAAA,CAAA;AAAA,GAAA;AAAA,CAQ3G;;;;"}
1
+ {"version":3,"file":"TimePickerGrid.styles.js","sources":["../../../src/components/TimePickerGrid/TimePickerGrid.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\n\nimport { tokens } from './TimePickerGrid.tokens';\n\nexport const base = css`\n display: flex;\n width: 100%;\n height: 10rem;\n`;\n\nexport const StyledTimePicker = styled.div<{ width?: string | number }>`\n background: var(${tokens.timePickerGridBackground});\n border-radius: var(${tokens.timePickerGridBorderRadius});\n width: ${({ width }) => {\n if (width === 'fullWidth') return '100%';\n if (width === 'fixed' || width === undefined) return `var(${tokens.timePickerGridWidth})`;\n return width;\n }};\n display: flex;\n padding: var(${tokens.timePickerGridPadding});\n flex: 1 1 1;\n gap: var(${tokens.scrollbarWidth});\n box-sizing: border-box;\n position: relative;\n height: var(${tokens.columnHeight});\n`;\n"],"names":["base","_exp3","_ref","width","undefined","concat","tokens","timePickerGridWidth","StyledTimePicker","styled","name","class","propsAsIs","vars"],"mappings":";;;AAKO,IAAMA,IAAI,GAIhB,WAAA;AAAC,IAAAC,KAAA,GARgBA,SAQhBA,KAAAA,GAAA;EAAA,OAKW,UAAAC,IAAA,EAAe;AAAA,IAAA,IAAZC,KAAAA,GAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AACR,IAAA,IAAIA,KAAK,KAAK,WAAW,EAAE,OAAO,MAAM,CAAA;AACxC,IAAA,IAAIA,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAKC,SAAS,EAAE,OAAAC,MAAAA,CAAAA,MAAA,CAAcC,MAAM,CAACC,mBAAmB,EAAA,GAAA,CAAA,CAAA;AACtF,IAAA,OAAOJ,KAAK,CAAA;GACf,CAAA;AAAA,CAAA,CAAA;AAPE,IAAMK,gBAAgB,gBAAGC,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,kBAAA;AAAAC,EAAAA,OAAAA,EAAA,QAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,UAAA,EAAA,cAGzBZ,KAIR,EAAA,CAAA;AAAA,GAAA;AAAA,CAQJ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.342.0-canary.2349.19625390680.0",
3
+ "version": "0.342.0-canary.2352.19633574715.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -79,7 +79,7 @@
79
79
  "@rollup/plugin-babel": "^6.0.4",
80
80
  "@rollup/plugin-commonjs": "^25.0.4",
81
81
  "@rollup/plugin-node-resolve": "^15.1.0",
82
- "@salutejs/plasma-sb-utils": "0.210.0-canary.2349.19625390680.0",
82
+ "@salutejs/plasma-sb-utils": "0.210.0-canary.2352.19633574715.0",
83
83
  "@salutejs/plasma-themes": "0.38.0",
84
84
  "@storybook/addon-docs": "8.6.12",
85
85
  "@storybook/addon-essentials": "8.6.12",
@@ -117,7 +117,7 @@
117
117
  "@linaria/react": "5.0.3",
118
118
  "@popperjs/core": "2.11.8",
119
119
  "@salutejs/input-core": "2.1.2",
120
- "@salutejs/plasma-core": "1.210.0-canary.2349.19625390680.0",
120
+ "@salutejs/plasma-core": "1.210.0-canary.2352.19633574715.0",
121
121
  "@salutejs/react-maskinput": "3.3.0",
122
122
  "@tanstack/react-table": "8.21.2",
123
123
  "@tanstack/react-virtual": "3.13.2",
@@ -137,5 +137,5 @@
137
137
  "sideEffects": [
138
138
  "*.css"
139
139
  ],
140
- "gitHead": "b7b147a516b0025487554c65fca6ac1d6d3404a7"
140
+ "gitHead": "892e0895dd12c931d5c7f4fd90aa1e6fe9916d5f"
141
141
  }
@@ -18,6 +18,7 @@ _export(exports, {
18
18
  });
19
19
  var _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
20
20
  var _classnames = /*#__PURE__*/ _interop_require_default(require("classnames"));
21
+ var _plasmacore = require("@salutejs/plasma-core");
21
22
  var _utils = require("../../utils");
22
23
  var _utils1 = require("./utils");
23
24
  var _TimePickerstyles = require("./TimePicker.styles");
@@ -234,17 +235,20 @@ var timePickerRoot = function(Root) {
234
235
  "onChange"
235
236
  ]);
236
237
  var inputRef = (0, _react.useRef)(null);
238
+ var rootRef = (0, _react.useRef)(null);
239
+ var rootForkRef = (0, _plasmacore.useForkRef)(rootRef, ref);
237
240
  var hoursHideTimeoutRef = (0, _react.useRef)(null);
238
241
  var minutesHideTimeoutRef = (0, _react.useRef)(null);
239
242
  var secondsHideTimeoutRef = (0, _react.useRef)(null);
240
243
  var _useState = _sliced_to_array((0, _react.useState)(opened), 2), isInnerOpen = _useState[0], setIsInnerOpen = _useState[1];
241
244
  var _useState1 = _sliced_to_array((0, _react.useState)(outerValue || ''), 2), innerTime = _useState1[0], setInnerTime = _useState1[1];
242
- var _useState2 = _sliced_to_array((0, _react.useState)({
245
+ var _useState2 = _sliced_to_array((0, _react.useState)(null), 2), rootWidth = _useState2[0], setRootWidth = _useState2[1];
246
+ var _useState3 = _sliced_to_array((0, _react.useState)({
243
247
  hours: null,
244
248
  minutes: null,
245
249
  seconds: null,
246
250
  currentColumn: null
247
- }), 2), setActiveTime = _useState2[1];
251
+ }), 2), setActiveTime = _useState3[1];
248
252
  var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
249
253
  var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
250
254
  (0, _react.useEffect)(function() {
@@ -288,6 +292,15 @@ var timePickerRoot = function(Root) {
288
292
  disabled,
289
293
  readonly
290
294
  ]);
295
+ (0, _react.useEffect)(function() {
296
+ if (dropdownWidth === 'fullWidth' && rootRef.current) {
297
+ var width = rootRef.current.offsetWidth;
298
+ setRootWidth(width);
299
+ }
300
+ }, [
301
+ dropdownWidth,
302
+ isInnerOpen
303
+ ]);
291
304
  var handleToggle = function() {
292
305
  if (disabled || readonly) return;
293
306
  var newState = !isInnerOpen;
@@ -389,6 +402,15 @@ var timePickerRoot = function(Root) {
389
402
  labelPlacement: labelPlacement,
390
403
  keepPlaceholder: keepPlaceholder
391
404
  });
405
+ var getDropdownWidth = function() {
406
+ if (dropdownWidth === 'fixed' || dropdownWidth === undefined) {
407
+ return undefined;
408
+ }
409
+ if (dropdownWidth === 'fullWidth') {
410
+ return rootWidth !== null ? "".concat(rootWidth, "px") : 'fullWidth';
411
+ }
412
+ return dropdownWidth;
413
+ };
392
414
  return /*#__PURE__*/ _react.default.createElement(Root, _object_spread({
393
415
  stretched: stretched,
394
416
  view: view,
@@ -396,7 +418,7 @@ var timePickerRoot = function(Root) {
396
418
  className: (0, _classnames.default)(_TimePickertokens.classes.timePickerRoot, className, _define_property({}, _TimePickertokens.classes.timePickerstretched, stretched)),
397
419
  disabled: disabled,
398
420
  readonly: readonly,
399
- ref: ref
421
+ ref: rootForkRef
400
422
  }, rest), /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.StyledPopover, {
401
423
  opened: isInnerOpen,
402
424
  usePortal: usePortal,
@@ -414,7 +436,7 @@ var timePickerRoot = function(Root) {
414
436
  value: viewValue,
415
437
  onChange: handleOnChange,
416
438
  dropdownHeight: dropdownHeight,
417
- dropdownWidth: dropdownWidth,
439
+ dropdownWidth: getDropdownWidth(),
418
440
  format: format,
419
441
  view: view,
420
442
  size: size,
@@ -64,7 +64,7 @@ var base = (0, _styledcomponents.css)([
64
64
  ]);
65
65
  var StyledTimePicker = _styledcomponents.default.div.withConfig({
66
66
  displayName: "TimePickerGrid.styles__StyledTimePicker",
67
- componentId: "sc-25f5922-0"
67
+ componentId: "sc-526cdfba-0"
68
68
  })([
69
69
  "background:var(",
70
70
  ");border-radius:var(",
@@ -75,5 +75,7 @@ var StyledTimePicker = _styledcomponents.default.div.withConfig({
75
75
  ");"
76
76
  ], _TimePickerGridtokens.tokens.timePickerGridBackground, _TimePickerGridtokens.tokens.timePickerGridBorderRadius, function(param) {
77
77
  var width = param.width;
78
- return (width === 'fullWidth' ? '100%' : width) || "var(".concat(_TimePickerGridtokens.tokens.timePickerGridWidth, ")");
78
+ if (width === 'fullWidth') return '100%';
79
+ if (width === 'fixed' || width === undefined) return "var(".concat(_TimePickerGridtokens.tokens.timePickerGridWidth, ")");
80
+ return width;
79
81
  }, _TimePickerGridtokens.tokens.timePickerGridPadding, _TimePickerGridtokens.tokens.scrollbarWidth, _TimePickerGridtokens.tokens.columnHeight);
@@ -1,16 +1 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "Combobox", {
6
- enumerable: true,
7
- get: function() {
8
- return Combobox;
9
- }
10
- });
11
- var _engines = require("../../../engines");
12
- var _ = require("../../..");
13
- var _Comboboxconfig = require("./Combobox.config");
14
- var mergedConfig = (0, _engines.mergeConfig)(_.comboboxNewConfig, _Comboboxconfig.config);
15
- var ComboboxComponent = (0, _engines.component)(mergedConfig);
16
- var Combobox = ComboboxComponent;
@@ -125,6 +125,7 @@ function _unsupported_iterable_to_array(o, minLen) {
125
125
  }
126
126
  import React, { forwardRef, useRef, useState, useEffect } from "react";
127
127
  import cls from "classnames";
128
+ import { useForkRef } from "@salutejs/plasma-core";
128
129
  import { getPlacements } from "../../utils";
129
130
  import { processTimeInput, delimiter } from "./utils";
130
131
  import { base, StyledInput, StyledTimePickerGrid, StyledPopover } from "./TimePicker.styles";
@@ -170,17 +171,20 @@ export var timePickerRoot = function(Root) {
170
171
  "onChange"
171
172
  ]);
172
173
  var inputRef = useRef(null);
174
+ var rootRef = useRef(null);
175
+ var rootForkRef = useForkRef(rootRef, ref);
173
176
  var hoursHideTimeoutRef = useRef(null);
174
177
  var minutesHideTimeoutRef = useRef(null);
175
178
  var secondsHideTimeoutRef = useRef(null);
176
179
  var _useState = _sliced_to_array(useState(opened), 2), isInnerOpen = _useState[0], setIsInnerOpen = _useState[1];
177
180
  var _useState1 = _sliced_to_array(useState(outerValue || ''), 2), innerTime = _useState1[0], setInnerTime = _useState1[1];
178
- var _useState2 = _sliced_to_array(useState({
181
+ var _useState2 = _sliced_to_array(useState(null), 2), rootWidth = _useState2[0], setRootWidth = _useState2[1];
182
+ var _useState3 = _sliced_to_array(useState({
179
183
  hours: null,
180
184
  minutes: null,
181
185
  seconds: null,
182
186
  currentColumn: null
183
- }), 2), setActiveTime = _useState2[1];
187
+ }), 2), setActiveTime = _useState3[1];
184
188
  var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
185
189
  var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
186
190
  useEffect(function() {
@@ -224,6 +228,15 @@ export var timePickerRoot = function(Root) {
224
228
  disabled,
225
229
  readonly
226
230
  ]);
231
+ useEffect(function() {
232
+ if (dropdownWidth === 'fullWidth' && rootRef.current) {
233
+ var width = rootRef.current.offsetWidth;
234
+ setRootWidth(width);
235
+ }
236
+ }, [
237
+ dropdownWidth,
238
+ isInnerOpen
239
+ ]);
227
240
  var handleToggle = function() {
228
241
  if (disabled || readonly) return;
229
242
  var newState = !isInnerOpen;
@@ -325,6 +338,15 @@ export var timePickerRoot = function(Root) {
325
338
  labelPlacement: labelPlacement,
326
339
  keepPlaceholder: keepPlaceholder
327
340
  });
341
+ var getDropdownWidth = function() {
342
+ if (dropdownWidth === 'fixed' || dropdownWidth === undefined) {
343
+ return undefined;
344
+ }
345
+ if (dropdownWidth === 'fullWidth') {
346
+ return rootWidth !== null ? "".concat(rootWidth, "px") : 'fullWidth';
347
+ }
348
+ return dropdownWidth;
349
+ };
328
350
  return /*#__PURE__*/ React.createElement(Root, _object_spread({
329
351
  stretched: stretched,
330
352
  view: view,
@@ -332,7 +354,7 @@ export var timePickerRoot = function(Root) {
332
354
  className: cls(classes.timePickerRoot, className, _define_property({}, classes.timePickerstretched, stretched)),
333
355
  disabled: disabled,
334
356
  readonly: readonly,
335
- ref: ref
357
+ ref: rootForkRef
336
358
  }, rest), /*#__PURE__*/ React.createElement(StyledPopover, {
337
359
  opened: isInnerOpen,
338
360
  usePortal: usePortal,
@@ -350,7 +372,7 @@ export var timePickerRoot = function(Root) {
350
372
  value: viewValue,
351
373
  onChange: handleOnChange,
352
374
  dropdownHeight: dropdownHeight,
353
- dropdownWidth: dropdownWidth,
375
+ dropdownWidth: getDropdownWidth(),
354
376
  format: format,
355
377
  view: view,
356
378
  size: size,
@@ -6,7 +6,7 @@ export var base = css([
6
6
  ]);
7
7
  export var StyledTimePicker = styled.div.withConfig({
8
8
  displayName: "TimePickerGrid.styles__StyledTimePicker",
9
- componentId: "sc-25f5922-0"
9
+ componentId: "sc-526cdfba-0"
10
10
  })([
11
11
  "background:var(",
12
12
  ");border-radius:var(",
@@ -17,5 +17,7 @@ export var StyledTimePicker = styled.div.withConfig({
17
17
  ");"
18
18
  ], tokens.timePickerGridBackground, tokens.timePickerGridBorderRadius, function(param) {
19
19
  var width = param.width;
20
- return (width === 'fullWidth' ? '100%' : width) || "var(".concat(tokens.timePickerGridWidth, ")");
20
+ if (width === 'fullWidth') return '100%';
21
+ if (width === 'fixed' || width === undefined) return "var(".concat(tokens.timePickerGridWidth, ")");
22
+ return width;
21
23
  }, tokens.timePickerGridPadding, tokens.scrollbarWidth, tokens.columnHeight);
@@ -1,7 +0,0 @@
1
- import { component, mergeConfig } from "../../../engines";
2
- import { comboboxNewConfig } from "../../..";
3
- import { config } from "./Combobox.config";
4
- var mergedConfig = mergeConfig(comboboxNewConfig, config);
5
- var ComboboxComponent = component(mergedConfig);
6
- var Combobox = ComboboxComponent;
7
- export { Combobox };
@@ -26,7 +26,7 @@ export declare const timePickerRoot: (Root: RootProps<HTMLDivElement, Omit<TimeP
26
26
  textBefore?: string;
27
27
  textAfter?: string;
28
28
  onChange?: (event: import("./TimePicker.types").TimePickerChangeEvent) => void;
29
- } & import("../TextField/TextField.types").LabelProps & import("./TimePicker.types").TimePickerPopoverProps & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue"> & React.RefAttributes<HTMLInputElement>>;
29
+ } & import("../TextField/TextField.types").LabelProps & import("./TimePicker.types").TimePickerPopoverProps & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue"> & React.RefAttributes<HTMLDivElement>>;
30
30
  export declare const timePickerConfig: {
31
31
  name: string;
32
32
  tag: string;
@@ -55,7 +55,7 @@ export declare const timePickerConfig: {
55
55
  textBefore?: string;
56
56
  textAfter?: string;
57
57
  onChange?: (event: import("./TimePicker.types").TimePickerChangeEvent) => void;
58
- } & import("../TextField/TextField.types").LabelProps & import("./TimePicker.types").TimePickerPopoverProps & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue"> & React.RefAttributes<HTMLInputElement>>;
58
+ } & import("../TextField/TextField.types").LabelProps & import("./TimePicker.types").TimePickerPopoverProps & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue"> & React.RefAttributes<HTMLDivElement>>;
59
59
  base: import("@linaria/core").LinariaClassName;
60
60
  variations: {
61
61
  view: {
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgBrD,eAAO,MAAM,cAAc,SACjB,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;kBAAvD,MAAO,YAAY;mBAE/C,MAAO,YAAY;;;;iNA2P7B,CAAC;AAEN,eAAO,MAAM,gBAAgB;;;mBA/PnB,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;sBAAvD,MAAO,YAAY;uBAE/C,MAAO,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;CAsRjC,CAAC"}
1
+ {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgBrD,eAAO,MAAM,cAAc,SACjB,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;kBAD3E,MAAO,YACpB;mBAA2D,MAAM,YAAY;;;;+MAiRlF,CAAC;AAEN,eAAO,MAAM,gBAAgB;;;mBAnRnB,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;sBAD3E,MAAO,YACpB;uBAA2D,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;CA4StF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TimePickerGrid.styles.d.ts","sourceRoot":"","sources":["../../../src/components/TimePickerGrid/TimePickerGrid.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,0CAIhB,CAAC;AAEF,eAAO,MAAM,gBAAgB;YAAwB,MAAM,GAAG,MAAM;EAWnE,CAAC"}
1
+ {"version":3,"file":"TimePickerGrid.styles.d.ts","sourceRoot":"","sources":["../../../src/components/TimePickerGrid/TimePickerGrid.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,0CAIhB,CAAC;AAEF,eAAO,MAAM,gBAAgB;YAAwB,MAAM,GAAG,MAAM;EAenE,CAAC"}
@@ -39,5 +39,5 @@ export declare const TimePicker: import("react").FunctionComponent<import("../..
39
39
  textBefore?: string;
40
40
  textAfter?: string;
41
41
  onChange?: (event: import("../../../components/TimePicker/TimePicker.types").TimePickerChangeEvent) => void;
42
- } & import("../../../components/TextField/TextField.types").LabelProps & import("../../../components/TimePicker/TimePicker.types").TimePickerPopoverProps & Omit<import("react").HTMLAttributes<HTMLDivElement>, "defaultValue"> & import("react").RefAttributes<HTMLInputElement>>;
42
+ } & import("../../../components/TextField/TextField.types").LabelProps & import("../../../components/TimePicker/TimePicker.types").TimePickerPopoverProps & Omit<import("react").HTMLAttributes<HTMLDivElement>, "defaultValue"> & import("react").RefAttributes<HTMLDivElement>>;
43
43
  //# sourceMappingURL=TimePicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../../src/examples/components/TimePicker/TimePicker.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBACy0B,MAAO,YAAY;mBAA0D,MAAO,YAAY;;;;mRAD/4B,CAAC"}
1
+ {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../../src/examples/components/TimePicker/TimePicker.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBACy0B,MAAO,YAAY;mBAA0D,MAAO,YAAY;;;;iRAD/4B,CAAC"}