@corva/ui 3.78.0-9 → 3.79.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MCP_README.md +11 -3
- package/cjs-bundle/components/AssetsMultipleSelector/AssetsMultipleSelector.js.map +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.js +1 -1
- package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/Input/Input.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/Input/Input.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.scss.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/utils.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/utils.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/Hotkey.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/Hotkey.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/CapsLock.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/CapsLock.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Command.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Command.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/LMB.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/LMB.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/MacControl.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/MacControl.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Option.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Option.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/RMB.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/RMB.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Shift.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Shift.js.map +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxLabel/RadioAndCheckboxLabel.scss.js +1 -1
- package/cjs-bundle/icons/customIcons/icons/Search.js.map +1 -1
- package/components/AssetsMultipleSelector/AssetsMultipleSelector.d.ts.map +1 -1
- package/components/AssetsMultipleSelector/AssetsMultipleSelector.js.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.d.ts.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/componentsV2/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/componentsV2/Autocomplete/Autocomplete.js +1 -1
- package/componentsV2/Autocomplete/Autocomplete.js.map +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/componentsV2/ColorPicker/ColorPicker.d.ts +3 -0
- package/componentsV2/ColorPicker/ColorPicker.d.ts.map +1 -1
- package/componentsV2/ColorPicker/ColorPicker.js +1 -1
- package/componentsV2/ColorPicker/ColorPicker.js.map +1 -1
- package/componentsV2/DatePicker/DatePickerNext.stories.d.ts.map +1 -1
- package/componentsV2/DatePicker/Input/Input.js +1 -1
- package/componentsV2/DatePicker/Input/Input.js.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.d.ts.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.scss.js +1 -1
- package/componentsV2/DatePicker/utils.js +1 -1
- package/componentsV2/DatePicker/utils.js.map +1 -1
- package/componentsV2/Hotkey/Hotkey.d.ts +4 -0
- package/componentsV2/Hotkey/Hotkey.d.ts.map +1 -1
- package/componentsV2/Hotkey/Hotkey.js +1 -1
- package/componentsV2/Hotkey/Hotkey.js.map +1 -1
- package/componentsV2/Hotkey/Hotkey.stories.d.ts +1 -0
- package/componentsV2/Hotkey/Hotkey.stories.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/CapsLock.d.ts +2 -0
- package/componentsV2/Hotkey/icons/CapsLock.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/CapsLock.js +2 -0
- package/componentsV2/Hotkey/icons/CapsLock.js.map +1 -0
- package/componentsV2/Hotkey/icons/Command.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Command.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Command.js +1 -1
- package/componentsV2/Hotkey/icons/Command.js.map +1 -1
- package/componentsV2/Hotkey/icons/LMB.d.ts +2 -0
- package/componentsV2/Hotkey/icons/LMB.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/LMB.js +2 -0
- package/componentsV2/Hotkey/icons/LMB.js.map +1 -0
- package/componentsV2/Hotkey/icons/MacControl.d.ts +2 -0
- package/componentsV2/Hotkey/icons/MacControl.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/MacControl.js +2 -0
- package/componentsV2/Hotkey/icons/MacControl.js.map +1 -0
- package/componentsV2/Hotkey/icons/Option.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Option.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Option.js +1 -1
- package/componentsV2/Hotkey/icons/Option.js.map +1 -1
- package/componentsV2/Hotkey/icons/RMB.d.ts +2 -0
- package/componentsV2/Hotkey/icons/RMB.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/RMB.js +2 -0
- package/componentsV2/Hotkey/icons/RMB.js.map +1 -0
- package/componentsV2/Hotkey/icons/Shift.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Shift.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Shift.js +1 -1
- package/componentsV2/Hotkey/icons/Shift.js.map +1 -1
- package/componentsV2/Hotkey/icons/index.d.ts +4 -0
- package/componentsV2/Hotkey/icons/index.d.ts.map +1 -1
- package/componentsV2/Hotkey/index.d.ts +1 -1
- package/componentsV2/Hotkey/index.d.ts.map +1 -1
- package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js +1 -1
- package/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js +1 -1
- package/componentsV2/RadioAndCheckboxLabel/RadioAndCheckboxLabel.scss.js +1 -1
- package/icons/customIcons/icons/Search.d.ts +1 -1
- package/icons/customIcons/icons/Search.js.map +1 -1
- package/mcp-server/server.mjs +887 -11002
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../src/componentsV2/DatePicker/Input/Input.tsx"],"sourcesContent":["import {\n FocusEventHandler,\n forwardRef,\n ReactNode,\n UIEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport moment from 'moment';\nimport classNames from 'classnames';\n\nimport { TextInputNext, TextInputNextProps } from '../../TextInputNext';\nimport { TextInput } from '../../TextInput';\nimport {\n autocompleteValue,\n DatePickerChangeHandler,\n DatePickerType,\n getDefaultFormat,\n getMaxDate,\n getMinDate,\n RangeSelectionStep,\n InputParseFormats,\n} from '../utils';\nimport { Popper } from '../../Popper';\n\nimport styles from './Input.scss';\n\nimport { CalendarThreeIcon } from '~/icons';\n\nexport type InputProps = {\n value?: Date | [Date | undefined, Date | undefined];\n setValue?: (value: Date | [Date, Date] | undefined) => void;\n label?: ReactNode;\n placeholder?: string;\n open: () => void;\n type: DatePickerType;\n format?: string;\n range?: boolean;\n rangeStep?: RangeSelectionStep;\n setRangeStep: (step: RangeSelectionStep) => void;\n readOnly?: boolean;\n focusOnClear?: boolean;\n labelPlacement?: TextInputNextProps['labelPlacement'];\n size?: TextInputNextProps['size'];\n elementsClassNames?: TextInputNextProps['elementsClassNames'];\n clearable?: TextInputNextProps['clearable'];\n\n className?: string;\n testId?: string;\n\n // Remove when next becomes baseline\n isOpen: boolean;\n isNext: boolean;\n};\n\nconst rangeOverlayPopperModifiers = {\n flip: {\n enabled: false,\n },\n};\n\nconst RangeSeparator = ' - ';\n\nconst formatValuePart = (value: Date | undefined, format: string) =>\n value ? moment(value).format(format) : format;\n\nconst formatValue = (value: InputProps['value'], format: string) =>\n (Array.isArray(value) ? value : [value])\n .filter(item => !!item)\n .map(item => formatValuePart(item, format))\n .join(RangeSeparator);\n\nconst parseStringDate = (value: string, format: string, type: DatePickerType) => {\n const parsedMoment = moment(value, [format, ...(InputParseFormats[type] || [])], true);\n\n return parsedMoment.isValid() ? parsedMoment.toDate() : undefined;\n};\n\nconst SizeToOverlayClassMap: Record<Required<TextInputNextProps>['size'], string> = {\n small: styles.small,\n medium: styles.medium,\n large: styles.large,\n};\n\nexport const Input = forwardRef<HTMLDivElement, InputProps>(\n (\n {\n value,\n label,\n open,\n className,\n testId,\n format: propsFormat,\n placeholder,\n range,\n readOnly,\n type,\n setValue,\n focusOnClear,\n labelPlacement,\n size = 'small',\n elementsClassNames: propsElementsClassNames,\n isNext,\n isOpen,\n clearable,\n rangeStep,\n setRangeStep,\n },\n ref\n ) => {\n const format = propsFormat || getDefaultFormat(type, range);\n const formattedValue = formatValue(value, format);\n const [inputValue, setInputValue] = useState(formattedValue);\n const [prevValue, setPrevValue] = useState(value);\n const prevInputValueRef = useRef(inputValue);\n const [inputScroll, setinputScroll] = useState(0);\n const [inputWidth, setInputWidth] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n const showRangeOverlay = !!range && inputValue === formattedValue && isOpen;\n\n // Value changed - reconstructing input value\n if (prevValue !== value) {\n setInputValue(formattedValue);\n setPrevValue(value);\n prevInputValueRef.current = formattedValue;\n }\n\n const onChange = useCallback(\n (typedValue: string) => {\n if (typedValue.trim() === '') {\n setValue?.(undefined);\n setInputValue('');\n prevInputValueRef.current = '';\n return;\n }\n\n const newValue = autocompleteValue({\n type,\n range,\n value: typedValue,\n prevValue: prevInputValueRef.current,\n });\n\n prevInputValueRef.current = newValue;\n\n setInputValue(newValue);\n if (range) {\n // Splitting by hyphen, or en dash, or em dash\n const dateParts = newValue\n .split(/[-–—]/)\n .map(part => parseStringDate(part.trim(), format, type))\n .filter(part => !!part);\n\n if (dateParts.length === 2) {\n const minDate = getMinDate(dateParts[0], dateParts[1]);\n const maxDate = getMaxDate(dateParts[0], dateParts[1]);\n\n if (minDate && maxDate) {\n (setValue as DatePickerChangeHandler<true>)?.([minDate, maxDate]);\n }\n }\n } else {\n const maybeDate = parseStringDate(newValue, format, type);\n\n if (maybeDate) {\n (setValue as DatePickerChangeHandler<false>)?.(maybeDate);\n }\n }\n },\n [format, range, setValue, type]\n );\n\n const onFocus = useCallback<FocusEventHandler<HTMLInputElement>>(\n e => {\n e.target.select();\n open();\n },\n [open]\n );\n\n const onBlur = useCallback(() => {\n setInputValue(formatValue(value, format));\n prevInputValueRef.current = '';\n }, [value, format]);\n\n const onClear = useCallback(() => {\n setValue?.(undefined);\n setInputValue('');\n }, [setValue]);\n\n const elementsClassNames = useMemo(\n () => ({\n ...propsElementsClassNames,\n prefix: classNames(propsElementsClassNames?.prefix, showRangeOverlay && styles.prefix),\n input: classNames(\n propsElementsClassNames?.input,\n showRangeOverlay && styles.rangeDefaultValue\n ),\n inputContainer: classNames(propsElementsClassNames?.inputContainer, styles.inputContainer),\n }),\n [showRangeOverlay, propsElementsClassNames]\n );\n\n const htmlAttributes = useMemo<{ onScroll: UIEventHandler<HTMLInputElement> } | undefined>(\n () =>\n range\n ? {\n onScroll: e => {\n setinputScroll(e.currentTarget.scrollLeft);\n },\n }\n : undefined,\n [range]\n );\n\n useEffect(() => {\n if (!range) {\n return undefined;\n }\n\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(entry => setInputWidth(entry.borderBoxSize?.[0]?.inlineSize || 0));\n });\n\n if (inputRef.current) {\n resizeObserver.observe(inputRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [range]);\n\n if (isNext) {\n return (\n <>\n <TextInputNext\n value={inputValue}\n inputContainerRef={ref}\n inputRef={inputRef}\n label={label}\n onFocus={onFocus}\n onBlur={onBlur}\n className={className}\n testId={testId}\n suffix={<CalendarThreeIcon />}\n placeholder={placeholder}\n onChange={onChange}\n readOnly={readOnly}\n clearable={clearable}\n focusOnClear={focusOnClear}\n labelPlacement={labelPlacement}\n size={size}\n elementsClassNames={elementsClassNames}\n htmlAttributes={htmlAttributes}\n />\n\n <Popper\n anchorEl={inputRef.current}\n open={showRangeOverlay}\n placement=\"top-start\"\n className={styles.popper}\n modifiers={rangeOverlayPopperModifiers}\n >\n <div\n className={classNames(styles.rangeOverlay, SizeToOverlayClassMap[size])}\n style={{ width: inputWidth }}\n >\n <div style={{ marginLeft: -inputScroll }}>\n {Array.isArray(value) && value.length === 2 && (\n <>\n <span\n className={classNames(\n styles.rangePart,\n\n rangeStep === 'startDate' && styles.rangePartActive\n )}\n onClick={() => setRangeStep('startDate')}\n >\n {formatValuePart(value[0], format)}\n </span>\n {RangeSeparator}\n <span\n className={classNames(\n styles.rangePart,\n rangeStep === 'endDate' && styles.rangePartActive\n )}\n onClick={() => setRangeStep('endDate')}\n >\n {formatValuePart(value[1], format)}\n </span>\n </>\n )}\n </div>\n </div>\n </Popper>\n </>\n );\n }\n\n return (\n <TextInput\n value={inputValue}\n ref={ref as never}\n label={label}\n onFocus={open}\n onBlur={onBlur}\n forceLabelShrink={isOpen}\n className={className}\n testId={testId}\n suffix={<CalendarThreeIcon />}\n placeholder={placeholder}\n onChange={onChange}\n readOnly={readOnly}\n onClear={clearable ? onClear : undefined}\n focusOnClear={focusOnClear}\n />\n );\n }\n);\n"],"names":["rangeOverlayPopperModifiers","flip","enabled","formatValuePart","value","format","moment","formatValue","Array","isArray","filter","item","map","join","parseStringDate","type","parsedMoment","concat","_toConsumableArray","InputParseFormats","isValid","toDate","undefined","SizeToOverlayClassMap","small","styles","medium","large","Input","forwardRef","_ref","ref","label","open","className","testId","propsFormat","placeholder","range","readOnly","setValue","focusOnClear","labelPlacement","_ref$size","size","propsElementsClassNames","elementsClassNames","isNext","isOpen","clearable","rangeStep","setRangeStep","getDefaultFormat","formattedValue","useState","_useState2","_slicedToArray","_useState","inputValue","setInputValue","_useState4","_useState3","prevValue","setPrevValue","prevInputValueRef","useRef","_useState6","_useState5","inputScroll","setinputScroll","_useState8","_useState7","inputWidth","setInputWidth","inputRef","showRangeOverlay","current","onChange","useCallback","typedValue","trim","newValue","autocompleteValue","dateParts","split","part","length","minDate","getMinDate","maxDate","getMaxDate","maybeDate","onFocus","e","target","select","onBlur","onClear","useMemo","_objectSpread","prefix","classNames","input","rangeDefaultValue","inputContainer","htmlAttributes","onScroll","currentTarget","scrollLeft","useEffect","resizeObserver","ResizeObserver","entries","forEach","entry","_entry$borderBoxSize","_entry$borderBoxSize$","borderBoxSize","inlineSize","observe","disconnect","_jsxs","_Fragment","children","_jsx","TextInputNext","inputContainerRef","suffix","CalendarThreeIcon","Popper","anchorEl","placement","popper","modifiers","rangeOverlay","style","width","marginLeft","rangePart","rangePartActive","onClick","TextInput","forceLabelShrink"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../src/componentsV2/DatePicker/Input/Input.tsx"],"sourcesContent":["import {\n FocusEventHandler,\n forwardRef,\n ReactNode,\n UIEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport moment from 'moment';\nimport classNames from 'classnames';\n\nimport { TextInputNext, TextInputNextProps } from '../../TextInputNext';\nimport { TextInput } from '../../TextInput';\nimport {\n autocompleteValue,\n DatePickerChangeHandler,\n DatePickerType,\n getDefaultFormat,\n getMaxDate,\n getMinDate,\n RangeSelectionStep,\n InputParseFormats,\n} from '../utils';\nimport { Popper } from '../../Popper';\n\nimport styles from './Input.scss';\n\nimport { CalendarThreeIcon } from '~/icons';\n\nexport type InputProps = {\n value?: Date | [Date | undefined, Date | undefined];\n setValue?: (value: Date | [Date, Date] | undefined) => void;\n label?: ReactNode;\n placeholder?: string;\n open: () => void;\n type: DatePickerType;\n format?: string;\n range?: boolean;\n rangeStep?: RangeSelectionStep;\n setRangeStep: (step: RangeSelectionStep) => void;\n readOnly?: boolean;\n focusOnClear?: boolean;\n labelPlacement?: TextInputNextProps['labelPlacement'];\n size?: TextInputNextProps['size'];\n elementsClassNames?: TextInputNextProps['elementsClassNames'];\n clearable?: TextInputNextProps['clearable'];\n\n className?: string;\n testId?: string;\n\n // Remove when next becomes baseline\n isOpen: boolean;\n isNext: boolean;\n};\n\nconst rangeOverlayPopperModifiers = {\n flip: {\n enabled: false,\n },\n};\n\nconst RangeSeparator = ' - ';\n\nconst formatValuePart = (value: Date | undefined, format: string) =>\n value ? moment(value).format(format) : format;\n\nconst formatValue = (value: InputProps['value'], format: string) =>\n (Array.isArray(value) ? value : [value])\n .filter(item => !!item)\n .map(item => formatValuePart(item, format))\n .join(RangeSeparator);\n\nconst parseStringDate = (value: string, format: string, type: DatePickerType) => {\n const parsedMoment = moment(value, [format, ...(InputParseFormats[type] || [])], true);\n\n return parsedMoment.isValid() ? parsedMoment.toDate() : undefined;\n};\n\nconst SizeToOverlayClassMap: Record<Required<TextInputNextProps>['size'], string> = {\n small: styles.small,\n medium: styles.medium,\n large: styles.large,\n};\n\nexport const Input = forwardRef<HTMLDivElement, InputProps>(\n (\n {\n value,\n label,\n open,\n className,\n testId,\n format: propsFormat,\n placeholder,\n range,\n readOnly,\n type,\n setValue,\n focusOnClear,\n labelPlacement,\n size = 'small',\n elementsClassNames: propsElementsClassNames,\n isNext,\n isOpen,\n clearable,\n rangeStep,\n setRangeStep,\n },\n ref\n ) => {\n const format = propsFormat || getDefaultFormat(type, range);\n const formattedValue = formatValue(value, format);\n const [inputValue, setInputValue] = useState(formattedValue);\n const [prevValue, setPrevValue] = useState(value);\n const prevInputValueRef = useRef(inputValue);\n const [inputScroll, setinputScroll] = useState(0);\n const [inputWidth, setInputWidth] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n const showRangeOverlay = !!range && inputValue === formattedValue && isOpen;\n\n // Value changed - reconstructing input value\n if (prevValue !== value) {\n setInputValue(formattedValue);\n setPrevValue(value);\n prevInputValueRef.current = formattedValue;\n }\n\n const onChange = useCallback(\n (typedValue: string) => {\n if (typedValue.trim() === '') {\n setValue?.(undefined);\n setInputValue('');\n prevInputValueRef.current = '';\n return;\n }\n\n const newValue = autocompleteValue({\n type,\n range,\n value: typedValue,\n prevValue: prevInputValueRef.current,\n });\n\n prevInputValueRef.current = newValue;\n\n setInputValue(newValue);\n if (range) {\n // Splitting by hyphen, or en dash, or em dash\n const dateParts = newValue\n .split(/[-–—]/)\n .map(part => parseStringDate(part.trim(), format, type))\n .filter(part => !!part);\n\n if (dateParts.length === 2) {\n const minDate = getMinDate(dateParts[0], dateParts[1]);\n const maxDate = getMaxDate(dateParts[0], dateParts[1]);\n\n if (minDate && maxDate) {\n (setValue as DatePickerChangeHandler<true>)?.([minDate, maxDate]);\n }\n }\n } else {\n const maybeDate = parseStringDate(newValue, format, type);\n\n if (maybeDate) {\n (setValue as DatePickerChangeHandler<false>)?.(maybeDate);\n }\n }\n },\n [format, range, setValue, type]\n );\n\n const onFocus = useCallback<FocusEventHandler<HTMLInputElement>>(\n e => {\n e.target.select();\n open();\n },\n [open]\n );\n\n const onBlur = useCallback(() => {\n setInputValue(formatValue(value, format));\n prevInputValueRef.current = '';\n }, [value, format]);\n\n const onClear = useCallback(() => {\n setValue?.(undefined);\n setInputValue('');\n }, [setValue]);\n\n const elementsClassNames = useMemo(\n () => ({\n ...propsElementsClassNames,\n prefix: classNames(propsElementsClassNames?.prefix, showRangeOverlay && styles.prefix),\n input: classNames(\n propsElementsClassNames?.input,\n showRangeOverlay && styles.rangeDefaultValue\n ),\n inputContainer: classNames(propsElementsClassNames?.inputContainer, styles.inputContainer),\n }),\n [showRangeOverlay, propsElementsClassNames]\n );\n\n const htmlAttributes = useMemo<{ onScroll: UIEventHandler<HTMLInputElement> } | undefined>(\n () =>\n range\n ? {\n onScroll: e => {\n setinputScroll(e.currentTarget.scrollLeft);\n },\n }\n : undefined,\n [range]\n );\n\n useEffect(() => {\n if (!range) {\n return undefined;\n }\n\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(entry => setInputWidth(entry.borderBoxSize?.[0]?.inlineSize || 0));\n });\n\n if (inputRef.current) {\n resizeObserver.observe(inputRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [range]);\n\n if (isNext) {\n return (\n <>\n <TextInputNext\n value={inputValue}\n inputContainerRef={ref}\n inputRef={inputRef}\n label={label}\n onFocus={onFocus}\n onBlur={onBlur}\n className={className}\n testId={testId}\n suffix={<CalendarThreeIcon />}\n placeholder={showRangeOverlay ? '' : placeholder}\n onChange={onChange}\n readOnly={readOnly}\n clearable={clearable}\n focusOnClear={focusOnClear}\n labelPlacement={labelPlacement}\n size={size}\n elementsClassNames={elementsClassNames}\n htmlAttributes={htmlAttributes}\n />\n\n <Popper\n anchorEl={inputRef.current}\n open={showRangeOverlay}\n placement=\"top-start\"\n className={styles.popper}\n modifiers={rangeOverlayPopperModifiers}\n >\n <div\n className={classNames(styles.rangeOverlay, SizeToOverlayClassMap[size])}\n style={{ width: inputWidth }}\n >\n <div style={{ marginLeft: -inputScroll }}>\n {Array.isArray(value) && value.length === 2 && (\n <>\n <span\n className={classNames(\n styles.rangePart,\n\n rangeStep === 'startDate' && styles.rangePartActive\n )}\n onClick={() => setRangeStep('startDate')}\n >\n {formatValuePart(value[0], format)}\n </span>\n {RangeSeparator}\n <span\n className={classNames(\n styles.rangePart,\n rangeStep === 'endDate' && styles.rangePartActive\n )}\n onClick={() => setRangeStep('endDate')}\n >\n {formatValuePart(value[1], format)}\n </span>\n </>\n )}\n </div>\n </div>\n </Popper>\n </>\n );\n }\n\n return (\n <TextInput\n value={inputValue}\n ref={ref as never}\n label={label}\n onFocus={open}\n onBlur={onBlur}\n forceLabelShrink={isOpen}\n className={className}\n testId={testId}\n suffix={<CalendarThreeIcon />}\n placeholder={placeholder}\n onChange={onChange}\n readOnly={readOnly}\n onClear={clearable ? onClear : undefined}\n focusOnClear={focusOnClear}\n />\n );\n }\n);\n"],"names":["rangeOverlayPopperModifiers","flip","enabled","formatValuePart","value","format","moment","formatValue","Array","isArray","filter","item","map","join","parseStringDate","type","parsedMoment","concat","_toConsumableArray","InputParseFormats","isValid","toDate","undefined","SizeToOverlayClassMap","small","styles","medium","large","Input","forwardRef","_ref","ref","label","open","className","testId","propsFormat","placeholder","range","readOnly","setValue","focusOnClear","labelPlacement","_ref$size","size","propsElementsClassNames","elementsClassNames","isNext","isOpen","clearable","rangeStep","setRangeStep","getDefaultFormat","formattedValue","useState","_useState2","_slicedToArray","_useState","inputValue","setInputValue","_useState4","_useState3","prevValue","setPrevValue","prevInputValueRef","useRef","_useState6","_useState5","inputScroll","setinputScroll","_useState8","_useState7","inputWidth","setInputWidth","inputRef","showRangeOverlay","current","onChange","useCallback","typedValue","trim","newValue","autocompleteValue","dateParts","split","part","length","minDate","getMinDate","maxDate","getMaxDate","maybeDate","onFocus","e","target","select","onBlur","onClear","useMemo","_objectSpread","prefix","classNames","input","rangeDefaultValue","inputContainer","htmlAttributes","onScroll","currentTarget","scrollLeft","useEffect","resizeObserver","ResizeObserver","entries","forEach","entry","_entry$borderBoxSize","_entry$borderBoxSize$","borderBoxSize","inlineSize","observe","disconnect","_jsxs","_Fragment","children","_jsx","TextInputNext","inputContainerRef","suffix","CalendarThreeIcon","Popper","anchorEl","placement","popper","modifiers","rangeOverlay","style","width","marginLeft","rangePart","rangePartActive","onClick","TextInput","forceLabelShrink"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/DatePicker/TimePicker/TimePicker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/DatePicker/TimePicker/TimePicker.tsx"],"names":[],"mappings":"AAcA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAYF,eAAO,MAAM,UAAU,uEAQpB,eAAe,4CA0OjB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"@babel/runtime/helpers/
|
|
1
|
+
import o from"@babel/runtime/helpers/slicedToArray";import{useRef as s,useMemo as n,useState as c,useEffect as i,useCallback as t}from"react";import r from"classnames";import e from"moment-timezone";import{padStart as m}from"lodash";import{TextInputNext as u}from"../../TextInputNext/TextInputNext.js";import{Text as a}from"../../Text/Text.js";import{isSameDay as l}from"../utils.js";import{Button as p}from"../../Button/Button.js";import d from"./TimePicker.scss.js";import{InfoIcon as I}from"../../../icons/iconParkIcons.js";import"../../../icons/customIcons/icons/AddMessage.js";import"../../../icons/customIcons/icons/DragOne.js";import"../../../icons/customIcons/icons/Attention.js";import"../../../icons/customIcons/icons/Collapse.js";import"../../../icons/customIcons/icons/Dashboard.js";import"../../../icons/customIcons/icons/Expand.js";import"../../../icons/customIcons/icons/FolderClosed.js";import"../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../icons/customIcons/icons/FolderOpened.js";import"../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../icons/customIcons/icons/LessOrEqual.js";import"../../../icons/customIcons/icons/Search.js";import"../../../icons/customIcons/icons/SearchOne.js";import"../../../icons/customIcons/icons/Wellhub.js";import"../../../icons/customIcons/icons/MultiRuler.js";import"../../../icons/customIcons/icons/Checkbox.js";import"../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../icons/customIcons/icons/Radio.js";import"../../../icons/customIcons/icons/RadioChecked.js";import"../../../icons/customIcons/icons/SimulFrac.js";import"../../../icons/customIcons/icons/ZipperFrac.js";import"../../../icons/customIcons/icons/CautionFilled.js";import"../../../icons/customIcons/icons/InfoRounded.js";import"../../../icons/customIcons/icons/FlameFilled.js";import"../../../icons/customIcons/icons/MoreApp.js";import"../../../icons/customIcons/icons/Pad.js";import"../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../icons/customIcons/icons/FracFleet.js";import"../../../icons/customIcons/icons/Global.js";import"../../../icons/customIcons/icons/Program.js";import"../../../icons/customIcons/icons/Rig.js";import"../../../icons/customIcons/icons/Well.js";import"../../../icons/customIcons/icons/Gap.js";import"../../../icons/customIcons/icons/Pin.js";import"../../../icons/customIcons/icons/PinOne.js";import"../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../icons/customIcons/icons/AttentionFilled.js";import"../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../icons/customIcons/icons/Archive.js";import"../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../icons/customIcons/icons/Unarchive.js";import"../../../icons/customIcons/icons/Archived.js";import"../../../icons/customIcons/icons/InterventionUnit.js";import"../../../icons/customIcons/icons/CloudDelete.js";import"../../../icons/customIcons/icons/Lasso.js";import"../../../icons/customIcons/icons/Radius.js";import"../../../icons/customIcons/icons/ErrorOps.js";import"../../../icons/customIcons/icons/DataTypeOps.js";import"../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../icons/customIcons/icons/CalibrationOps.js";import"../../../icons/customIcons/icons/CriticalOps.js";import"../../../icons/customIcons/icons/Company.js";import"../../../icons/customIcons/icons/ArchiveOne.js";import"../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../icons/customIcons/icons/Connect.js";import"../../../icons/customIcons/icons/PuzzleOne.js";import"../../../icons/customIcons/icons/Feed.js";import"../../../icons/customIcons/icons/Prompt.js";import"../../../icons/customIcons/icons/Companies.js";import"../../../icons/customIcons/icons/ClipboardAi.js";import"../../../icons/customIcons/icons/Key.js";import"../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../icons/customIcons/icons/MappingManual.js";import"../../../icons/customIcons/icons/Mapping.js";import"../../../icons/customIcons/icons/Metrics.js";import"../../../icons/customIcons/icons/Drops.js";import"../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../icons/customIcons/icons/Template.js";import"../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../icons/customIcons/icons/UnitConversion.js";import"../../../icons/customIcons/icons/NPT.js";import"../../../icons/customIcons/icons/GuidedFrac.js";import{jsxs as j,Fragment as h,jsx as v}from"react/jsx-runtime";var f=function(o){return o.replace(/[^\d]/g,"").substring(0,2)},C=function(o){return Number(o)>=0&&Number(o)<=23},g=function(o){return Number(o)>=0&&Number(o)<60},b=g,N=function(o){return void 0!==o?m(String(o),2,"0"):""},T={input:d.inputElement},F=function(m){var F=m.value,O=m.onChange,x=m.minDate,M=m.maxDate,P=m.saveTime,k=m.goToToday,y=m.clear,z=!F,A=s(null),S=s(null),D=s(null),R=s(),H=n((function(){return{hours:N(null==F?void 0:F.getHours()),minutes:N(null==F?void 0:F.getMinutes()),seconds:N(null==F?void 0:F.getSeconds())}}),[F]),B=c(H.hours),E=o(B,2),G=E[0],U=E[1],q=c(H.minutes),L=o(q,2),W=L[0],w=L[1],K=c(H.seconds),Z=o(K,2),J=Z[0],Q=Z[1];i((function(){R.current!==A.current&&U(H.hours),R.current!==S.current&&w(H.minutes),R.current!==D.current&&Q(H.seconds)}),[H.hours,H.minutes,H.seconds]);var V=n((function(){var o=l(x,F)&&e(x).format("HH:mm:ss"),s=l(M,F)&&e(M).format("HH:mm:ss");return o&&s?"In ".concat(o," - ").concat(s," range"):o?"Can’t be earlier than ".concat(o):s?"Can’t be later than ".concat(s):void 0}),[M,x,F]),X=t((function(o,s){if(F){var n=new Date(F);"hours"===o&&C(s)?n.setHours(Number(s)):"minutes"===o&&g(s)?n.setMinutes(Number(s)):"seconds"===o&&b(s)&&n.setSeconds(Number(s)),Math.floor(n.getTime()/1e3)!==Math.floor(F.getTime()/1e3)&&O(n)}}),[O,F]),Y=t((function(o){o.target.select(),R.current=o.target}),[]),$=t((function(o){var s=f(o.target.value);if(o.target===A.current){var n=C(s)?N(s):H.hours;U(n),X("hours",n)}if(o.target===S.current){var c=g(s)?N(s):H.minutes;w(c),X("minutes",c)}if(o.target===D.current){var i=b(s)?N(s):H.seconds;Q(i),X("seconds",i)}R.current=void 0}),[H.hours,H.minutes,H.seconds,X]),_=t((function(o){var s,n=f(o);(U(n),2===n.length&&C(n))&&(X("hours",n),null===(s=S.current)||void 0===s||s.focus())}),[X]),oo=t((function(o){var s,n=f(o);(w(n),2===n.length&&g(n))&&(X("minutes",n),null===(s=D.current)||void 0===s||s.focus())}),[X]),so=t((function(o){var s=f(o);Q(s),b(s)&&X("seconds",s)}),[X]),no=Number(null==F?void 0:F.getTime())>Number(null==M?void 0:M.getTime())||Number(null==F?void 0:F.getTime())<Number(null==x?void 0:x.getTime()),co=!C(G)||no,io=!g(W)||no,to=!b(J)||no;return j(h,{children:[j("div",{className:r(d.timePicker),children:[v(a,{color:z?"T9":"T1",size:14,className:d.header,children:"Time"}),v(u,{placeholder:"HH",className:d.input,disabled:z,value:G,onChange:_,status:co?"error":void 0,inputRef:A,onFocus:Y,onBlur:$,elementsClassNames:T}),v(a,{color:"T9",size:14,children:":"}),v(u,{placeholder:"MM",className:d.input,disabled:z,value:W,onChange:oo,status:io?"error":void 0,inputRef:S,onFocus:Y,onBlur:$,elementsClassNames:T}),v(a,{color:"T9",size:14,children:":"}),v(u,{placeholder:"SS",className:d.input,disabled:z,value:J,onChange:so,status:to?"error":void 0,inputRef:D,onFocus:Y,onBlur:$,elementsClassNames:T}),V&&j(a,{className:d.constraintText,size:12,children:[v(I,{className:d.constraintIcon,size:16}),V]})]}),j("div",{className:d.footer,children:[k&&v(p,{onClick:k,type:"tertiary",size:"small",children:"Today"}),j("div",{className:d.actions,children:[y&&v(p,{onClick:y,type:"tertiary",size:"small",disabled:!F,children:"Clear"}),v(p,{onClick:P,type:"secondary",size:"small",disabled:!F||co||io||to,children:"Save"})]})]})]})};export{F as TimePicker};
|
|
2
2
|
//# sourceMappingURL=TimePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker.js","sources":["../../../../src/componentsV2/DatePicker/TimePicker/TimePicker.tsx"],"sourcesContent":["import { FocusEventHandler, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport { padStart } from 'lodash';\n\nimport { TextInputNext } from '../../TextInputNext';\nimport { Text } from '../../Text';\nimport { ToggleButtons } from '../../ToggleButtons';\nimport { isSameDay } from '../utils';\nimport { Button } from '../../Button';\n\nimport styles from './TimePicker.scss';\n\nimport { InfoIcon } from '~/icons';\n\ntype AmPm = 'am' | 'pm';\n\nconst HalfOfDayMs = 12 * 60 * 60 * 1000;\n\nconst ToggleButtonsOptions: { value: AmPm; label: string }[] = [\n { value: 'am', label: 'AM' },\n { value: 'pm', label: 'PM' },\n];\n\nexport type TimePickerProps = {\n value?: Date;\n onChange: (date: Date) => void;\n saveTime: () => void;\n maxDate?: Date;\n minDate?: Date;\n\n goToToday?: () => void;\n clear?: () => void;\n};\n\nconst sanitize = (value: string) => value.replace(/[^\\d]/g, '').substring(0, 2);\nconst validateHours = (value?: string) => Number(value) >= 0 && Number(value) <= 12;\nconst validateMinutes = (value?: string) => Number(value) >= 0 && Number(value) < 60;\nconst validateSeconds = validateMinutes;\n\nconst getOffsetFromDayStart = (date: Date) => {\n return date.getTime() - moment(date).startOf('day').toDate().getTime();\n};\n\nconst formatTimePart = (part?: string | number) =>\n part !== undefined ? padStart(String(part), 2, '0') : '';\n\nconst getPartOfDay = (date: Date) => {\n return getOffsetFromDayStart(date) >= HalfOfDayMs ? 'pm' : 'am';\n};\n\nconst getActualHours = (sanitized: string) => (sanitized === '12' ? '00' : sanitized);\n\nexport const TimePicker = ({\n value,\n onChange,\n minDate,\n maxDate,\n saveTime,\n goToToday,\n clear,\n}: TimePickerProps) => {\n const disabled = !value;\n\n const hoursInputRef = useRef<HTMLInputElement>(null);\n const minutesInputRef = useRef<HTMLInputElement>(null);\n const secondsInputRef = useRef<HTMLInputElement>(null);\n\n const focusedInputRef = useRef<HTMLInputElement>();\n\n const timeParts = useMemo(() => {\n const partOfDay = value ? getPartOfDay(value) : undefined;\n\n const hourOffset = partOfDay === 'pm' ? 12 : 0;\n\n const hours = value ? value.getHours() - hourOffset : undefined;\n\n const hoursAmPm = hours !== undefined && hours === 12 ? 0 : hours;\n\n return {\n hours: formatTimePart(hoursAmPm),\n minutes: formatTimePart(value?.getMinutes()),\n seconds: formatTimePart(value?.getSeconds()),\n partOfDay,\n };\n }, [value]);\n\n const [hours, setHours] = useState(timeParts.hours);\n const [minutes, setMinutes] = useState(timeParts.minutes);\n const [seconds, setSeconds] = useState(timeParts.seconds);\n\n useEffect(() => {\n if (focusedInputRef.current !== hoursInputRef.current) {\n setHours(timeParts.hours);\n }\n if (focusedInputRef.current !== minutesInputRef.current) {\n setMinutes(timeParts.minutes);\n }\n if (focusedInputRef.current !== secondsInputRef.current) {\n setSeconds(timeParts.seconds);\n }\n }, [timeParts.hours, timeParts.minutes, timeParts.seconds]);\n\n const constraintText = useMemo(() => {\n const minValue = isSameDay(minDate, value) && moment(minDate).format('hh:mm:ss A');\n const maxValue = isSameDay(maxDate, value) && moment(maxDate).format('hh:mm:ss A');\n\n if (minValue && maxValue) {\n return `In ${minValue} - ${maxValue} range`;\n } else if (minValue) {\n return `Can’t be earlier than ${minValue}`;\n } else if (maxValue) {\n return `Can’t be later than ${maxValue}`;\n }\n return undefined;\n }, [maxDate, minDate, value]);\n\n const amPmOptions = useMemo(\n () =>\n ToggleButtonsOptions.map(item => {\n const isAmDisabled =\n item.value === 'am' &&\n !!minDate &&\n isSameDay(value, minDate) &&\n getOffsetFromDayStart(minDate) >= HalfOfDayMs;\n\n const isPmDisabled =\n item.value === 'pm' &&\n !!maxDate &&\n isSameDay(value, maxDate) &&\n getOffsetFromDayStart(maxDate) < HalfOfDayMs;\n\n return { ...item, disabled: disabled || isAmDisabled || isPmDisabled };\n }),\n [disabled, maxDate, minDate, value]\n );\n\n const updateValue = useCallback(\n (type: 'hours' | 'minutes' | 'seconds' | 'partOfDay', newValue: string) => {\n if (!value) {\n return;\n }\n\n const newDate = new Date(value);\n\n if (type === 'hours' && validateHours(newValue)) {\n const partOfDayOffset = timeParts.partOfDay === 'pm' ? 12 : 0;\n newDate.setHours(partOfDayOffset + Number(newValue));\n } else if (type === 'minutes' && validateMinutes(newValue)) {\n newDate.setMinutes(Number(newValue));\n } else if (type === 'seconds' && validateSeconds(newValue)) {\n newDate.setSeconds(Number(newValue));\n } else if (type === 'partOfDay' && (newValue === 'am' || newValue === 'pm')) {\n const hoursOffset = newDate.getHours() % 12;\n newDate.setHours((newValue === 'pm' ? 12 : 0) + hoursOffset);\n }\n\n if (Math.floor(newDate.getTime() / 1000) !== Math.floor(value.getTime() / 1000)) {\n onChange(newDate);\n }\n },\n [timeParts.partOfDay, onChange, value]\n );\n\n const onFieldFocus = useCallback<FocusEventHandler<HTMLInputElement>>(e => {\n e.target.select();\n focusedInputRef.current = e.target;\n }, []);\n\n const onFieldBlur = useCallback<FocusEventHandler<HTMLInputElement>>(\n e => {\n const fieldValue = sanitize(e.target.value);\n\n if (e.target === hoursInputRef.current) {\n const actualHours = getActualHours(fieldValue);\n const newHours = validateHours(actualHours) ? formatTimePart(actualHours) : timeParts.hours;\n setHours(newHours);\n updateValue('hours', newHours);\n }\n if (e.target === minutesInputRef.current) {\n const newMinutes = validateMinutes(fieldValue)\n ? formatTimePart(fieldValue)\n : timeParts.minutes;\n setMinutes(newMinutes);\n updateValue('minutes', newMinutes);\n }\n if (e.target === secondsInputRef.current) {\n const newSeconds = validateSeconds(fieldValue)\n ? formatTimePart(fieldValue)\n : timeParts.seconds;\n setSeconds(newSeconds);\n updateValue('seconds', newSeconds);\n }\n\n focusedInputRef.current = undefined;\n },\n [timeParts.hours, timeParts.minutes, timeParts.seconds, updateValue]\n );\n\n const onChangeHours = useCallback(\n (newValue: string) => {\n const sanitized = sanitize(newValue);\n const actualHours = getActualHours(sanitized);\n setHours(sanitized);\n if (sanitized.length === 2 && validateHours(sanitized)) {\n updateValue('hours', actualHours);\n minutesInputRef.current?.focus();\n }\n },\n [updateValue]\n );\n\n const onChangeMinutes = useCallback(\n (newValue: string) => {\n const sanitized = sanitize(newValue);\n setMinutes(sanitized);\n if (sanitized.length === 2 && validateMinutes(sanitized)) {\n updateValue('minutes', sanitized);\n secondsInputRef.current?.focus();\n }\n },\n [updateValue]\n );\n\n const onChangeSeconds = useCallback(\n (newValue: string) => {\n const sanitized = sanitize(newValue);\n setSeconds(sanitized);\n if (validateSeconds(sanitized)) {\n updateValue('seconds', sanitized);\n }\n },\n [updateValue]\n );\n\n const setPartOfDay = useCallback(\n (newValue: string) => {\n updateValue('partOfDay', newValue);\n },\n [updateValue]\n );\n\n const outOfBounds =\n Number(value?.getTime()) > Number(maxDate?.getTime()) ||\n Number(value?.getTime()) < Number(minDate?.getTime());\n\n const hoursInvalid = !validateHours(hours) || outOfBounds;\n const minutesInvalid = !validateMinutes(minutes) || outOfBounds;\n const secondsInvalid = !validateSeconds(seconds) || outOfBounds;\n\n return (\n <>\n <div className={classNames(styles.timePicker)}>\n <Text className={styles.header} size={14}>\n <span className={classNames(styles.headerText, disabled && styles.disabled)}>Time</span>\n {constraintText && (\n <>\n <InfoIcon className={styles.constraintIcon} size={16} />\n {constraintText}\n </>\n )}\n </Text>\n\n <TextInputNext\n placeholder=\"HH\"\n className={styles.input}\n disabled={disabled}\n value={hours}\n onChange={onChangeHours}\n status={hoursInvalid ? 'error' : undefined}\n inputRef={hoursInputRef}\n onFocus={onFieldFocus}\n onBlur={onFieldBlur}\n />\n\n <Text color=\"T9\" size={14}>\n :\n </Text>\n\n <TextInputNext\n placeholder=\"MM\"\n className={styles.input}\n disabled={disabled}\n value={minutes}\n onChange={onChangeMinutes}\n status={minutesInvalid ? 'error' : undefined}\n inputRef={minutesInputRef}\n onFocus={onFieldFocus}\n onBlur={onFieldBlur}\n />\n\n <Text color=\"T9\" size={14}>\n :\n </Text>\n\n <TextInputNext\n placeholder=\"SS\"\n className={styles.input}\n disabled={disabled}\n value={seconds}\n onChange={onChangeSeconds}\n status={secondsInvalid ? 'error' : undefined}\n inputRef={secondsInputRef}\n onFocus={onFieldFocus}\n onBlur={onFieldBlur}\n />\n\n <ToggleButtons\n options={amPmOptions}\n className={styles.tabs}\n size=\"small\"\n value={timeParts.partOfDay}\n onChange={setPartOfDay}\n />\n </div>\n <div className={styles.footer}>\n {goToToday && (\n <Button onClick={goToToday} type=\"tertiary\" size=\"small\">\n Today\n </Button>\n )}\n\n <div className={styles.actions}>\n {clear && (\n <Button onClick={clear} type=\"tertiary\" size=\"small\" disabled={!value}>\n Clear\n </Button>\n )}\n\n <Button\n onClick={saveTime}\n type=\"secondary\"\n size=\"small\"\n disabled={!value || hoursInvalid || minutesInvalid || secondsInvalid}\n >\n Save\n </Button>\n </div>\n </div>\n </>\n );\n};\n"],"names":["ToggleButtonsOptions","value","label","sanitize","replace","substring","validateHours","Number","validateMinutes","validateSeconds","getOffsetFromDayStart","date","getTime","moment","startOf","toDate","formatTimePart","part","undefined","padStart","String","getActualHours","sanitized","TimePicker","_ref","onChange","minDate","maxDate","saveTime","goToToday","clear","disabled","hoursInputRef","useRef","minutesInputRef","secondsInputRef","focusedInputRef","timeParts","useMemo","partOfDay","hourOffset","hours","getHours","minutes","getMinutes","seconds","getSeconds","_useState","useState","_useState2","_slicedToArray","setHours","_useState3","_useState4","setMinutes","_useState5","_useState6","setSeconds","useEffect","current","constraintText","minValue","isSameDay","format","maxValue","concat","amPmOptions","map","item","isAmDisabled","isPmDisabled","_objectSpread","updateValue","useCallback","type","newValue","newDate","Date","partOfDayOffset","hoursOffset","Math","floor","onFieldFocus","e","target","select","onFieldBlur","fieldValue","actualHours","newHours","newMinutes","newSeconds","onChangeHours","_minutesInputRef$curr","length","focus","onChangeMinutes","_secondsInputRef$curr","onChangeSeconds","setPartOfDay","outOfBounds","hoursInvalid","minutesInvalid","secondsInvalid","_jsxs","_Fragment","children","className","classNames","styles","timePicker","Text","header","size","_jsx","headerText","InfoIcon","constraintIcon","TextInputNext","placeholder","input","status","inputRef","onFocus","onBlur","color","ToggleButtons","options","tabs","footer","Button","onClick","actions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TimePicker.js","sources":["../../../../src/componentsV2/DatePicker/TimePicker/TimePicker.tsx"],"sourcesContent":["import { FocusEventHandler, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport { padStart } from 'lodash';\n\nimport { TextInputNext } from '../../TextInputNext';\nimport { Text } from '../../Text';\nimport { isSameDay } from '../utils';\nimport { Button } from '../../Button';\n\nimport styles from './TimePicker.scss';\n\nimport { InfoIcon } from '~/icons';\n\nexport type TimePickerProps = {\n value?: Date;\n onChange: (date: Date) => void;\n saveTime: () => void;\n maxDate?: Date;\n minDate?: Date;\n\n goToToday?: () => void;\n clear?: () => void;\n};\n\nconst sanitize = (value: string) => value.replace(/[^\\d]/g, '').substring(0, 2);\nconst validateHours = (value?: string) => Number(value) >= 0 && Number(value) <= 23;\nconst validateMinutes = (value?: string) => Number(value) >= 0 && Number(value) < 60;\nconst validateSeconds = validateMinutes;\n\nconst formatTimePart = (part?: string | number) =>\n part !== undefined ? padStart(String(part), 2, '0') : '';\n\nconst elementsClassNames = { input: styles.inputElement };\n\nexport const TimePicker = ({\n value,\n onChange,\n minDate,\n maxDate,\n saveTime,\n goToToday,\n clear,\n}: TimePickerProps) => {\n const disabled = !value;\n\n const hoursInputRef = useRef<HTMLInputElement>(null);\n const minutesInputRef = useRef<HTMLInputElement>(null);\n const secondsInputRef = useRef<HTMLInputElement>(null);\n\n const focusedInputRef = useRef<HTMLInputElement>();\n\n const timeParts = useMemo(() => {\n return {\n hours: formatTimePart(value?.getHours()),\n minutes: formatTimePart(value?.getMinutes()),\n seconds: formatTimePart(value?.getSeconds()),\n };\n }, [value]);\n\n const [hours, setHours] = useState(timeParts.hours);\n const [minutes, setMinutes] = useState(timeParts.minutes);\n const [seconds, setSeconds] = useState(timeParts.seconds);\n\n useEffect(() => {\n if (focusedInputRef.current !== hoursInputRef.current) {\n setHours(timeParts.hours);\n }\n if (focusedInputRef.current !== minutesInputRef.current) {\n setMinutes(timeParts.minutes);\n }\n if (focusedInputRef.current !== secondsInputRef.current) {\n setSeconds(timeParts.seconds);\n }\n }, [timeParts.hours, timeParts.minutes, timeParts.seconds]);\n\n const constraintText = useMemo(() => {\n const minValue = isSameDay(minDate, value) && moment(minDate).format('HH:mm:ss');\n const maxValue = isSameDay(maxDate, value) && moment(maxDate).format('HH:mm:ss');\n\n if (minValue && maxValue) {\n return `In ${minValue} - ${maxValue} range`;\n } else if (minValue) {\n return `Can’t be earlier than ${minValue}`;\n } else if (maxValue) {\n return `Can’t be later than ${maxValue}`;\n }\n return undefined;\n }, [maxDate, minDate, value]);\n\n const updateValue = useCallback(\n (type: 'hours' | 'minutes' | 'seconds', newValue: string) => {\n if (!value) {\n return;\n }\n\n const newDate = new Date(value);\n\n if (type === 'hours' && validateHours(newValue)) {\n newDate.setHours(Number(newValue));\n } else if (type === 'minutes' && validateMinutes(newValue)) {\n newDate.setMinutes(Number(newValue));\n } else if (type === 'seconds' && validateSeconds(newValue)) {\n newDate.setSeconds(Number(newValue));\n }\n\n if (Math.floor(newDate.getTime() / 1000) !== Math.floor(value.getTime() / 1000)) {\n onChange(newDate);\n }\n },\n [onChange, value]\n );\n\n const onFieldFocus = useCallback<FocusEventHandler<HTMLInputElement>>(e => {\n e.target.select();\n focusedInputRef.current = e.target;\n }, []);\n\n const onFieldBlur = useCallback<FocusEventHandler<HTMLInputElement>>(\n e => {\n const fieldValue = sanitize(e.target.value);\n\n if (e.target === hoursInputRef.current) {\n const newHours = validateHours(fieldValue) ? formatTimePart(fieldValue) : timeParts.hours;\n setHours(newHours);\n updateValue('hours', newHours);\n }\n if (e.target === minutesInputRef.current) {\n const newMinutes = validateMinutes(fieldValue)\n ? formatTimePart(fieldValue)\n : timeParts.minutes;\n setMinutes(newMinutes);\n updateValue('minutes', newMinutes);\n }\n if (e.target === secondsInputRef.current) {\n const newSeconds = validateSeconds(fieldValue)\n ? formatTimePart(fieldValue)\n : timeParts.seconds;\n setSeconds(newSeconds);\n updateValue('seconds', newSeconds);\n }\n\n focusedInputRef.current = undefined;\n },\n [timeParts.hours, timeParts.minutes, timeParts.seconds, updateValue]\n );\n\n const onChangeHours = useCallback(\n (newValue: string) => {\n const sanitized = sanitize(newValue);\n setHours(sanitized);\n if (sanitized.length === 2 && validateHours(sanitized)) {\n updateValue('hours', sanitized);\n minutesInputRef.current?.focus();\n }\n },\n [updateValue]\n );\n\n const onChangeMinutes = useCallback(\n (newValue: string) => {\n const sanitized = sanitize(newValue);\n setMinutes(sanitized);\n if (sanitized.length === 2 && validateMinutes(sanitized)) {\n updateValue('minutes', sanitized);\n secondsInputRef.current?.focus();\n }\n },\n [updateValue]\n );\n\n const onChangeSeconds = useCallback(\n (newValue: string) => {\n const sanitized = sanitize(newValue);\n setSeconds(sanitized);\n if (validateSeconds(sanitized)) {\n updateValue('seconds', sanitized);\n }\n },\n [updateValue]\n );\n\n const outOfBounds =\n Number(value?.getTime()) > Number(maxDate?.getTime()) ||\n Number(value?.getTime()) < Number(minDate?.getTime());\n\n const hoursInvalid = !validateHours(hours) || outOfBounds;\n const minutesInvalid = !validateMinutes(minutes) || outOfBounds;\n const secondsInvalid = !validateSeconds(seconds) || outOfBounds;\n\n return (\n <>\n <div className={classNames(styles.timePicker)}>\n <Text color={disabled ? 'T9' : 'T1'} size={14} className={styles.header}>\n Time\n </Text>\n\n <TextInputNext\n placeholder=\"HH\"\n className={styles.input}\n disabled={disabled}\n value={hours}\n onChange={onChangeHours}\n status={hoursInvalid ? 'error' : undefined}\n inputRef={hoursInputRef}\n onFocus={onFieldFocus}\n onBlur={onFieldBlur}\n elementsClassNames={elementsClassNames}\n />\n\n <Text color=\"T9\" size={14}>\n :\n </Text>\n\n <TextInputNext\n placeholder=\"MM\"\n className={styles.input}\n disabled={disabled}\n value={minutes}\n onChange={onChangeMinutes}\n status={minutesInvalid ? 'error' : undefined}\n inputRef={minutesInputRef}\n onFocus={onFieldFocus}\n onBlur={onFieldBlur}\n elementsClassNames={elementsClassNames}\n />\n\n <Text color=\"T9\" size={14}>\n :\n </Text>\n\n <TextInputNext\n placeholder=\"SS\"\n className={styles.input}\n disabled={disabled}\n value={seconds}\n onChange={onChangeSeconds}\n status={secondsInvalid ? 'error' : undefined}\n inputRef={secondsInputRef}\n onFocus={onFieldFocus}\n onBlur={onFieldBlur}\n elementsClassNames={elementsClassNames}\n />\n\n {constraintText && (\n <Text className={styles.constraintText} size={12}>\n <InfoIcon className={styles.constraintIcon} size={16} />\n {constraintText}\n </Text>\n )}\n </div>\n <div className={styles.footer}>\n {goToToday && (\n <Button onClick={goToToday} type=\"tertiary\" size=\"small\">\n Today\n </Button>\n )}\n\n <div className={styles.actions}>\n {clear && (\n <Button onClick={clear} type=\"tertiary\" size=\"small\" disabled={!value}>\n Clear\n </Button>\n )}\n\n <Button\n onClick={saveTime}\n type=\"secondary\"\n size=\"small\"\n disabled={!value || hoursInvalid || minutesInvalid || secondsInvalid}\n >\n Save\n </Button>\n </div>\n </div>\n </>\n );\n};\n"],"names":["sanitize","value","replace","substring","validateHours","Number","validateMinutes","validateSeconds","formatTimePart","part","undefined","padStart","String","elementsClassNames","input","styles","inputElement","TimePicker","_ref","onChange","minDate","maxDate","saveTime","goToToday","clear","disabled","hoursInputRef","useRef","minutesInputRef","secondsInputRef","focusedInputRef","timeParts","useMemo","hours","getHours","minutes","getMinutes","seconds","getSeconds","_useState","useState","_useState2","_slicedToArray","setHours","_useState3","_useState4","setMinutes","_useState5","_useState6","setSeconds","useEffect","current","constraintText","minValue","isSameDay","moment","format","maxValue","concat","updateValue","useCallback","type","newValue","newDate","Date","Math","floor","getTime","onFieldFocus","e","target","select","onFieldBlur","fieldValue","newHours","newMinutes","newSeconds","onChangeHours","_minutesInputRef$curr","sanitized","length","focus","onChangeMinutes","_secondsInputRef$curr","onChangeSeconds","outOfBounds","hoursInvalid","minutesInvalid","secondsInvalid","_jsxs","_Fragment","children","className","classNames","timePicker","_jsx","Text","color","size","header","TextInputNext","placeholder","status","inputRef","onFocus","onBlur","InfoIcon","constraintIcon","footer","Button","onClick","actions"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from'./../../../ext-esm/style-inject/dist/style-inject.es.js';var i={spacing:"8",timePicker:"TimePicker_timePicker__zbwy1",header:"TimePicker_header__IQJE8",
|
|
1
|
+
import e from'./../../../ext-esm/style-inject/dist/style-inject.es.js';var i={spacing:"8",timePicker:"TimePicker_timePicker__zbwy1",header:"TimePicker_header__IQJE8",constraintText:"TimePicker_constraintText__x7oac",constraintIcon:"TimePicker_constraintIcon__y2pg6",input:"TimePicker_input__-wBnb",inputElement:"TimePicker_inputElement__WShYF",tabs:"TimePicker_tabs__jNS1I",footer:"TimePicker_footer__-xJOC",actions:"TimePicker_actions__fx-7e"};e(".TimePicker_timePicker__zbwy1{align-items:center;border-top:2px solid var(--palette-background-b-4);display:flex;flex-flow:row wrap;gap:8px 4px;padding:8px}.TimePicker_header__IQJE8{margin-right:auto}.TimePicker_constraintText__x7oac{align-items:center;color:var(--palette-info-light);display:flex;flex-flow:row nowrap;gap:4px}.TimePicker_constraintIcon__y2pg6{flex:0 0 auto}.TimePicker_input__-wBnb{width:46px}.TimePicker_inputElement__WShYF{text-align:center}.TimePicker_tabs__jNS1I{margin-left:auto}.TimePicker_footer__-xJOC{align-items:center;border-top:2px solid var(--palette-background-b-4);display:flex;flex-flow:row nowrap;gap:8px;padding:8px}.TimePicker_actions__fx-7e{margin-left:auto}");export{i as default};
|
|
2
2
|
//# sourceMappingURL=TimePicker.scss.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t={date:"MMM DD YYYY",dateTime:"MMM DD YYYY
|
|
1
|
+
var t={date:"MMM DD YYYY",dateTime:"MMM DD YYYY HH:mm",month:"MMMM YYYY"},e={date:"MM/DD/YYYY",dateTime:"MM/DD/YYYY HH:mm",month:"MMM YYYY"},l=function(l,n){return(n?e:t)[l]},n=["D","M","Y","h","m","s","S","H"],i=[].concat(n,["A"]),u=new RegExp("^([^".concat(i.join(""),"]+)"),"gi"),Y={month:"MM/YYYY",date:"MM/DD/YYYY",dateTime:"MM/DD/YYYY HH:mm"},r={month:[Y.month,"MMMM YYYY","MMM YYYY"],date:[Y.date,"M/D/YYYY"],dateTime:[Y.dateTime,"M/D/YYYY HH:mm"]},a=function(t){var e=t.value,l=t.type,i=t.range,r=t.prevValue,a=Y[l],o=i?"".concat(a," - ").concat(a):a,M=e.toLocaleLowerCase().replace(/([ap])m/gi,"$1");if(e.length<=r.length||!function(t,e){return e.length<=t.length&&e.split("").every((function(e,l){var i,u=t[l];if(n.includes(u))return null==(i=e)?void 0:i.match(/\d/);if("A"===u){var Y=e.toLocaleLowerCase();return"a"===Y||"p"===Y}return u===e}))}(o,M)||o.length<=M.length)return e;var c=function(t,e){var l;return(null===(l=t.substring(e).match(u))||void 0===l?void 0:l[0])||""}(o,M.length);return"".concat(e).concat(c)},o=function(t,e){return!!t&&!!e&&t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()},M=function(t,e){return o(t,e)&&(null==t?void 0:t.getDate())===(null==e?void 0:e.getDate())},c=function(t,e){return t&&e?t<e?t:e:t||e},d=function(t,e){return t&&e?t>e?t:e:t||e},g=[{id:1,title:"Jan",fullTitle:"January"},{id:2,title:"Feb",fullTitle:"February"},{id:3,title:"Mar",fullTitle:"March"},{id:4,title:"Apr",fullTitle:"April"},{id:5,title:"May",fullTitle:"May"},{id:6,title:"Jun",fullTitle:"June"},{id:7,title:"Jul",fullTitle:"July"},{id:8,title:"Aug",fullTitle:"August"},{id:9,title:"Sep",fullTitle:"September"},{id:10,title:"Oct",fullTitle:"October"},{id:11,title:"Nov",fullTitle:"November"},{id:12,title:"Dec",fullTitle:"December"}],f=function(t,e){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),(null==e?void 0:e.getHours())||0,(null==e?void 0:e.getMinutes())||0,(null==e?void 0:e.getSeconds())||0)};export{t as DefaultFormatByType,e as DefaultFormatByTypeRange,Y as InputAutocompleteFormats,r as InputParseFormats,g as MonthOptions,a as autocompleteValue,f as getDateWithSameTime,l as getDefaultFormat,d as getMaxDate,c as getMinDate,M as isSameDay,o as isSameMonth};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/componentsV2/DatePicker/utils.tsx"],"sourcesContent":["export type DatePickerType = 'date' | 'dateTime' | 'month';\n\nexport type DatePickerValue<IsRange extends boolean | undefined = false> = IsRange extends\n | undefined\n | false\n ? Date | undefined\n : [Date, Date] | undefined;\n\nexport type DatePickerChangeHandler<IsRange extends boolean | undefined = false> = (\n value: DatePickerValue<IsRange>\n) => void;\n\n// startDate - initial state, no start date selected\n// endDate - start done, no end date selected\nexport type RangeSelectionStep = 'startDate' | 'endDate';\n\nexport const DefaultFormatByType: Record<DatePickerType, string> = {\n date: 'MMM DD YYYY',\n dateTime: 'MMM DD YYYY
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/componentsV2/DatePicker/utils.tsx"],"sourcesContent":["export type DatePickerType = 'date' | 'dateTime' | 'month';\n\nexport type DatePickerValue<IsRange extends boolean | undefined = false> = IsRange extends\n | undefined\n | false\n ? Date | undefined\n : [Date, Date] | undefined;\n\nexport type DatePickerChangeHandler<IsRange extends boolean | undefined = false> = (\n value: DatePickerValue<IsRange>\n) => void;\n\n// startDate - initial state, no start date selected\n// endDate - start done, no end date selected\nexport type RangeSelectionStep = 'startDate' | 'endDate';\n\nexport const DefaultFormatByType: Record<DatePickerType, string> = {\n date: 'MMM DD YYYY',\n dateTime: 'MMM DD YYYY HH:mm',\n month: 'MMMM YYYY',\n};\n\nexport const DefaultFormatByTypeRange: Record<DatePickerType, string> = {\n date: 'MM/DD/YYYY',\n dateTime: 'MM/DD/YYYY HH:mm',\n month: 'MMM YYYY',\n};\n\nexport const getDefaultFormat = (type: DatePickerType, range?: boolean) => {\n const map = range ? DefaultFormatByTypeRange : DefaultFormatByType;\n return map[type];\n};\n\nconst NumericLetters = ['D', 'M', 'Y', 'h', 'm', 's', 'S', 'H'];\nconst AllLetters = [...NumericLetters, 'A'];\nconst GetSeparatorRegex = new RegExp(`^([^${AllLetters.join('')}]+)`, 'gi');\n\n// These formats should be composed only of `AllLetters` as placeholders only\nexport const InputAutocompleteFormats: Record<DatePickerType, string> = {\n month: 'MM/YYYY',\n date: 'MM/DD/YYYY',\n dateTime: 'MM/DD/YYYY HH:mm',\n};\n\nexport const InputParseFormats: Record<DatePickerType, string[]> = {\n month: [InputAutocompleteFormats.month, 'MMMM YYYY', 'MMM YYYY'],\n date: [InputAutocompleteFormats.date, 'M/D/YYYY'],\n dateTime: [InputAutocompleteFormats.dateTime, 'M/D/YYYY HH:mm'],\n};\n\nconst isDigit = (symbol?: string) => symbol?.match(/\\d/);\n\nconst isInFormatSoFar = (format: string, value: string) => {\n if (value.length <= format.length) {\n const valueArr = value.split('');\n\n return valueArr.every((valueChar, pos) => {\n const formatChar = format[pos];\n\n if (NumericLetters.includes(formatChar)) {\n return isDigit(valueChar);\n }\n\n if (formatChar === 'A') {\n const lcChar = valueChar.toLocaleLowerCase();\n return lcChar === 'a' || lcChar === 'p';\n }\n\n return formatChar === valueChar;\n });\n }\n\n return false;\n};\n\nconst getSeparator = (format: string, startIndex: number) => {\n return format.substring(startIndex).match(GetSeparatorRegex)?.[0] || '';\n};\n\nexport const autocompleteValue = ({\n value,\n type,\n range,\n prevValue,\n}: {\n type: DatePickerType;\n range?: boolean;\n value: string;\n prevValue: string;\n}) => {\n const formatPart = InputAutocompleteFormats[type];\n const format = range ? `${formatPart} - ${formatPart}` : formatPart;\n\n const preparedValue = value.toLocaleLowerCase().replace(/([ap])m/gi, '$1');\n\n if (\n value.length <= prevValue.length ||\n !isInFormatSoFar(format, preparedValue) ||\n format.length <= preparedValue.length\n ) {\n return value;\n }\n\n // Only autocomplete if user types something\n // Check if conforms to format so far\n // Adding separators if needed\n const separator = getSeparator(format, preparedValue.length);\n\n return `${value}${separator}`;\n};\n\nexport const isSameMonth = (a?: Date, b?: Date) =>\n !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n\nexport const isSameDay = (a?: Date, b?: Date) => isSameMonth(a, b) && a?.getDate() === b?.getDate();\n\nexport const getMinDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a < b ? a : b;\n }\n\n return a || b;\n};\n\nexport const getMaxDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a > b ? a : b;\n }\n\n return a || b;\n};\n\nexport const MonthOptions = [\n { id: 1, title: 'Jan', fullTitle: 'January' },\n { id: 2, title: 'Feb', fullTitle: 'February' },\n { id: 3, title: 'Mar', fullTitle: 'March' },\n { id: 4, title: 'Apr', fullTitle: 'April' },\n { id: 5, title: 'May', fullTitle: 'May' },\n { id: 6, title: 'Jun', fullTitle: 'June' },\n { id: 7, title: 'Jul', fullTitle: 'July' },\n { id: 8, title: 'Aug', fullTitle: 'August' },\n { id: 9, title: 'Sep', fullTitle: 'September' },\n { id: 10, title: 'Oct', fullTitle: 'October' },\n { id: 11, title: 'Nov', fullTitle: 'November' },\n { id: 12, title: 'Dec', fullTitle: 'December' },\n];\n\nexport type DatePickerCalendarView = 'year' | 'month';\n\nexport const getDateWithSameTime = (date: Date, timeDate?: Date) =>\n new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n timeDate?.getHours() || 0,\n timeDate?.getMinutes() || 0,\n timeDate?.getSeconds() || 0\n );\n"],"names":["DefaultFormatByType","date","dateTime","month","DefaultFormatByTypeRange","getDefaultFormat","type","range","NumericLetters","AllLetters","concat","GetSeparatorRegex","RegExp","join","InputAutocompleteFormats","InputParseFormats","autocompleteValue","_ref","value","prevValue","formatPart","format","preparedValue","toLocaleLowerCase","replace","length","split","every","valueChar","pos","symbol","formatChar","includes","match","lcChar","isInFormatSoFar","separator","startIndex","_format$substring$mat","substring","getSeparator","isSameMonth","a","b","getFullYear","getMonth","isSameDay","getDate","getMinDate","getMaxDate","MonthOptions","id","title","fullTitle","getDateWithSameTime","timeDate","Date","getHours","getMinutes","getSeconds"],"mappings":"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"}
|
|
@@ -7,5 +7,9 @@ export type HotkeyProps = {
|
|
|
7
7
|
className?: string;
|
|
8
8
|
testId?: string;
|
|
9
9
|
};
|
|
10
|
+
export declare const ReplacementIcons: Record<string, ReactNode | {
|
|
11
|
+
mac: ReactNode;
|
|
12
|
+
win: ReactNode;
|
|
13
|
+
}>;
|
|
10
14
|
export declare const Hotkey: ({ keys, className, testId }: HotkeyProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
15
|
//# sourceMappingURL=Hotkey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hotkey.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/Hotkey/Hotkey.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQlC,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"Hotkey.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/Hotkey/Hotkey.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQlC,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,SAAS,CAAA;CAAE,CAsB3F,CAAC;AAmCF,eAAO,MAAM,MAAM,gCAAiC,WAAW,4CAY9D,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"@babel/runtime/helpers/typeof";import t from"classnames";import{Text as r}from"../Text/Text.js";import{Command as i}from"./icons/Command.js";import{Shift as a}from"./icons/Shift.js";import{Option as n}from"./icons/Option.js";import{CapsLock as s}from"./icons/CapsLock.js";import{MacControl as m}from"./icons/MacControl.js";import{LMB as e}from"./icons/LMB.js";import{RMB as c}from"./icons/RMB.js";import l from"./Hotkey.scss.js";import{jsx as p}from"react/jsx-runtime";var f,u,d,v,j,g={shift:p(a,{}),alt:{win:"Alt",mac:p(n,{})},option:{win:"Alt",mac:p(n,{})},cmd:{win:"Ctrl",mac:p(i,{})},ctrl:{win:"Ctrl",mac:p(i,{})},maccontrol:p(m,{}),capslock:p(s,{}),lmb:p(e,{}),rmb:p(c,{})},w=(null===(f=navigator.userAgentData)||void 0===f||null===(u=f.platform)||void 0===u||null===(d=u.toLowerCase)||void 0===d?void 0:d.call(u).startsWith("mac"))||(null===(v=navigator.platform)||void 0===v||null===(j=v.toLowerCase)||void 0===j?void 0:j.call(v).startsWith("mac"))||navigator.userAgent.includes("Mac"),h=function(t){var r=t.toLowerCase(),i=g[r];return i?"object"===o(i)&&"mac"in i?i[w?"mac":"win"]:i:t},y=function(o){var i=o.keys,a=o.className,n=o.testId,s=function(o){return"string"==typeof o?o.split(/[+,]/gi).map((function(o){return o.trim()})):Array.isArray(o)?o:[o]}(i);return p("span",{className:t(l.root,a),"data-testid":n,children:s.map((function(o,t){return p(r,{size:12,className:l.key,weight:"bold",children:"string"==typeof o?h(o):o},t)}))})};export{y as Hotkey,g as ReplacementIcons};
|
|
2
2
|
//# sourceMappingURL=Hotkey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hotkey.js","sources":["../../../src/componentsV2/Hotkey/Hotkey.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport { Text } from '../Text';\n\nimport { Command, Option, Shift } from './icons';\n\nimport styles from './Hotkey.scss';\n\nexport type HotkeyProps = {\n /**\n * Key or key combination. In case of `string`, can be separated by `,` or `+` signs.\n */\n keys: ReactNode[] | ReactNode;\n\n className?: string;\n testId?: string;\n};\n\
|
|
1
|
+
{"version":3,"file":"Hotkey.js","sources":["../../../src/componentsV2/Hotkey/Hotkey.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport { Text } from '../Text';\n\nimport { CapsLock, Command, LMB, MacControl, Option, RMB, Shift } from './icons';\n\nimport styles from './Hotkey.scss';\n\nexport type HotkeyProps = {\n /**\n * Key or key combination. In case of `string`, can be separated by `,` or `+` signs.\n */\n keys: ReactNode[] | ReactNode;\n\n className?: string;\n testId?: string;\n};\n\nexport const ReplacementIcons: Record<string, ReactNode | { mac: ReactNode; win: ReactNode }> = {\n shift: <Shift />,\n alt: {\n win: 'Alt',\n mac: <Option />,\n },\n option: {\n win: 'Alt',\n mac: <Option />,\n },\n cmd: {\n win: 'Ctrl',\n mac: <Command />,\n },\n ctrl: {\n win: 'Ctrl',\n mac: <Command />,\n },\n maccontrol: <MacControl />,\n capslock: <CapsLock />,\n lmb: <LMB />,\n rmb: <RMB />,\n};\n\nconst getKeysArray = (keys: HotkeyProps['keys']) => {\n if (typeof keys === 'string') {\n return keys.split(/[+,]/gi).map(key => key.trim());\n }\n if (!Array.isArray(keys)) {\n return [keys];\n }\n return keys;\n};\n\nconst isMac =\n // Not typed yet, and with suboptimal support, so we'll need a fallback\n // @ts-expect-error pending DOM types\n navigator.userAgentData?.platform?.toLowerCase?.().startsWith('mac') ||\n // Deprecated but seems more stable than userAgent sniffing\n navigator.platform?.toLowerCase?.().startsWith('mac') ||\n // If everything fails - old good userAgent\n navigator.userAgent.includes('Mac');\n\nconst getKeyWithReplacements = (key: string) => {\n const lowerKey = key.toLowerCase();\n const replacement = ReplacementIcons[lowerKey];\n if (replacement) {\n if (typeof replacement === 'object' && 'mac' in replacement) {\n return replacement[isMac ? 'mac' : 'win'];\n }\n\n return replacement;\n }\n\n return key;\n};\n\nexport const Hotkey = ({ keys, className, testId }: HotkeyProps) => {\n const hotkeyArray = getKeysArray(keys);\n\n return (\n <span className={classNames(styles.root, className)} data-testid={testId}>\n {hotkeyArray.map((key, index) => (\n <Text size={12} className={styles.key} key={index} weight=\"bold\">\n {typeof key === 'string' ? getKeyWithReplacements(key) : key}\n </Text>\n ))}\n </span>\n );\n};\n"],"names":["ReplacementIcons","shift","_jsx","Shift","alt","win","mac","Option","option","cmd","Command","ctrl","maccontrol","MacControl","capslock","CapsLock","lmb","LMB","rmb","RMB","isMac","_navigator$userAgentD","navigator","userAgentData","_navigator$userAgentD2","platform","_navigator$userAgentD3","toLowerCase","startsWith","_navigator$platform","_navigator$platform$t","call","userAgent","includes","getKeyWithReplacements","key","lowerKey","replacement","_typeof","Hotkey","_ref","keys","className","testId","hotkeyArray","split","map","trim","Array","isArray","getKeysArray","classNames","styles","root","children","index","Text","size","weight"],"mappings":"ifAmBaA,EAAmF,CAC9FC,MAAOC,EAACC,EAAQ,IAChBC,IAAK,CACHC,IAAK,MACLC,IAAKJ,EAACK,EAAM,KAEdC,OAAQ,CACNH,IAAK,MACLC,IAAKJ,EAACK,EAAM,KAEdE,IAAK,CACHJ,IAAK,OACLC,IAAKJ,EAACQ,EAAO,KAEfC,KAAM,CACJN,IAAK,OACLC,IAAKJ,EAACQ,EAAO,KAEfE,WAAYV,EAACW,EAAa,IAC1BC,SAAUZ,EAACa,EAAW,IACtBC,IAAKd,EAACe,EAAM,IACZC,IAAKhB,EAACiB,EAAG,KAaLC,GAGJ,QAAAC,EAAAC,UAAUC,qBAAV,IAAAF,GAAA,QAAAG,EAAAH,EAAyBI,gBAAzB,IAAAD,GAA8C,QAA9CE,EAAAF,EAAmCG,mBAAW,IAAAD,OAA9C,EAAAA,UAAmDE,WAAW,UAE5C,QADlBC,EACAP,UAAUG,gBAAQ,IAAAI,GAAlB,QAAkBC,EAAlBD,EAAoBF,mBAApB,IAAAG,OAAkB,EAAlBA,EAAAC,KAAAF,GAAoCD,WAAW,SAE/CN,UAAUU,UAAUC,SAAS,OAEzBC,EAAyB,SAACC,GAC9B,IAAMC,EAAWD,EAAIR,cACfU,EAAcrC,EAAiBoC,GACrC,OAAIC,EACyB,WAAvBC,EAAOD,IAA4B,QAASA,EACvCA,EAAYjB,EAAQ,MAAQ,OAG9BiB,EAGFF,CACT,EAEaI,EAAS,SAA8CC,GAAA,IAA3CC,IAAAA,KAAMC,IAAAA,UAAWC,IAAAA,OAClCC,EAlCa,SAACH,GACpB,MAAoB,iBAATA,EACFA,EAAKI,MAAM,UAAUC,KAAI,SAAAX,GAAG,OAAIA,EAAIY,UAExCC,MAAMC,QAAQR,GAGZA,EAFE,CAACA,EAGZ,CA0BsBS,CAAaT,GAEjC,OACEvC,EAAA,OAAA,CAAMwC,UAAWS,EAAWC,EAAOC,KAAMX,GAAY,cAAaC,EAAOW,SACtEV,EAAYE,KAAI,SAACX,EAAKoB,GAAK,OAC1BrD,EAACsD,EAAI,CAACC,KAAM,GAAIf,UAAWU,EAAOjB,IAAiBuB,OAAO,OAAMJ,SAC9C,iBAARnB,EAAmBD,EAAuBC,GAAOA,GADfoB,OAMpD"}
|
|
@@ -6,5 +6,6 @@ declare const meta: Meta<Props>;
|
|
|
6
6
|
export default meta;
|
|
7
7
|
export declare const Default: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
export declare const UsageInText: () => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare const PredefinedIcons: () => import("react/jsx-runtime").JSX.Element;
|
|
9
10
|
export declare const InputVariants: () => import("react/jsx-runtime").JSX.Element;
|
|
10
11
|
//# sourceMappingURL=Hotkey.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hotkey.stories.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/Hotkey/Hotkey.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"Hotkey.stories.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/Hotkey/Hotkey.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAY,MAAM,OAAO,CAAC;AAKjD,OAAO,EAAE,MAAM,EAAoB,MAAM,UAAU,CAAC;AAKpD,KAAK,KAAK,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAE3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,KAAK,CAGrB,CAAC;eAea,IAAI;AAEnB,eAAO,MAAM,OAAO,UAAW,KAAK,4CAA0B,CAAC;AAE/D,eAAO,MAAM,WAAW,+CAIvB,CAAC;AAKF,eAAO,MAAM,eAAe,+CAe3B,CAAC;AAKF,eAAO,MAAM,aAAa,+CASzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CapsLock.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Hotkey/icons/CapsLock.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,+CAOpB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as C}from"react/jsx-runtime";var r=function(){return C("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:C("path",{d:"M19.25 19.9828C19.664 19.9829 20 20.3188 20 20.7328C19.9998 21.1467 19.6639 21.4827 19.25 21.4828H5.25C4.83605 21.4828 4.50017 21.1467 4.5 20.7328C4.5 20.3187 4.83594 19.9828 5.25 19.9828H19.25ZM11.6504 2.2826C11.9337 1.90585 12.5664 1.90575 12.8496 2.2826L20.3496 12.2826C20.5205 12.5101 20.5479 12.8148 20.4209 13.0687C20.2939 13.3225 20.0341 13.4827 19.75 13.4828H16V17.7328C16 18.1468 15.664 18.4827 15.25 18.4828H9.25C8.83594 18.4828 8.5 18.1469 8.5 17.7328V13.4828H4.75C4.46594 13.4828 4.20612 13.3225 4.07911 13.0687C3.95215 12.8148 3.9795 12.5101 4.15039 12.2826L11.6504 2.2826ZM6.25 11.9828H9.25C9.66394 11.9829 9.99991 12.3189 10 12.7328V16.9828H14.5V12.7328C14.5001 12.3188 14.836 11.9828 15.25 11.9828H18.25L12.25 3.9828L6.25 11.9828Z",fill:"currentColor"})})};export{r as CapsLock};
|
|
2
|
+
//# sourceMappingURL=CapsLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CapsLock.js","sources":["../../../../src/componentsV2/Hotkey/icons/CapsLock.tsx"],"sourcesContent":["export const CapsLock = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.25 19.9828C19.664 19.9829 20 20.3188 20 20.7328C19.9998 21.1467 19.6639 21.4827 19.25 21.4828H5.25C4.83605 21.4828 4.50017 21.1467 4.5 20.7328C4.5 20.3187 4.83594 19.9828 5.25 19.9828H19.25ZM11.6504 2.2826C11.9337 1.90585 12.5664 1.90575 12.8496 2.2826L20.3496 12.2826C20.5205 12.5101 20.5479 12.8148 20.4209 13.0687C20.2939 13.3225 20.0341 13.4827 19.75 13.4828H16V17.7328C16 18.1468 15.664 18.4827 15.25 18.4828H9.25C8.83594 18.4828 8.5 18.1469 8.5 17.7328V13.4828H4.75C4.46594 13.4828 4.20612 13.3225 4.07911 13.0687C3.95215 12.8148 3.9795 12.5101 4.15039 12.2826L11.6504 2.2826ZM6.25 11.9828H9.25C9.66394 11.9829 9.99991 12.3189 10 12.7328V16.9828H14.5V12.7328C14.5001 12.3188 14.836 11.9828 15.25 11.9828H18.25L12.25 3.9828L6.25 11.9828Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"names":["CapsLock","_jsx","width","height","viewBox","fill","xmlns","children","d"],"mappings":"wCAAaA,IAAAA,EAAW,WAAH,OACnBC,EAAA,MAAA,CAAKC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BC,SAC5FN,EAAA,OAAA,CACEO,EAAE,6uBACFH,KAAK,kBAEH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const Command: () => JSX.Element;
|
|
1
|
+
export declare const Command: () => import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=Command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Hotkey/icons/Command.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Hotkey/icons/Command.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,+CAOnB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as C}from"react/jsx-runtime";var r=function(){return C("svg",{
|
|
1
|
+
import{jsx as C}from"react/jsx-runtime";var r=function(){return C("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:C("path",{d:"M17.75 14H15.5V9.5H17.75C19.8174 9.5 21.5 7.81787 21.5 5.75C21.5 3.68213 19.8174 2 17.75 2C15.6826 2 14 3.68213 14 5.75V8H9.5V5.75C9.5 3.68213 7.81738 2 5.75 2C3.68262 2 2 3.68213 2 5.75C2 7.81787 3.68262 9.5 5.75 9.5H8V14H5.75C3.68262 14 2 15.6821 2 17.75C2 19.8179 3.68262 21.5 5.75 21.5C7.81738 21.5 9.5 19.8179 9.5 17.75V15.5H14V17.75C14 19.8179 15.6826 21.5 17.75 21.5C19.8174 21.5 21.5 19.8179 21.5 17.75C21.5 15.6821 19.8174 14 17.75 14ZM15.5 5.75C15.5 4.50928 16.5098 3.5 17.75 3.5C18.9902 3.5 20 4.50928 20 5.75C20 6.99072 18.9902 8 17.75 8H15.5V5.75ZM3.5 5.75C3.5 4.50928 4.50977 3.5 5.75 3.5C6.99023 3.5 8 4.50928 8 5.75V8H5.75C4.50977 8 3.5 6.99072 3.5 5.75ZM8 17.75C8 18.9907 6.99023 20 5.75 20C4.50977 20 3.5 18.9907 3.5 17.75C3.5 16.5093 4.50977 15.5 5.75 15.5H8V17.75ZM9.5 9.5H14V14H9.5V9.5ZM17.75 20C16.5098 20 15.5 18.9907 15.5 17.75V15.5H17.75C18.9902 15.5 20 16.5093 20 17.75C20 18.9907 18.9902 20 17.75 20Z",fill:"currentColor"})})};export{r as Command};
|
|
2
2
|
//# sourceMappingURL=Command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.js","sources":["../../../../src/componentsV2/Hotkey/icons/Command.tsx"],"sourcesContent":["export const Command = ()
|
|
1
|
+
{"version":3,"file":"Command.js","sources":["../../../../src/componentsV2/Hotkey/icons/Command.tsx"],"sourcesContent":["export const Command = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M17.75 14H15.5V9.5H17.75C19.8174 9.5 21.5 7.81787 21.5 5.75C21.5 3.68213 19.8174 2 17.75 2C15.6826 2 14 3.68213 14 5.75V8H9.5V5.75C9.5 3.68213 7.81738 2 5.75 2C3.68262 2 2 3.68213 2 5.75C2 7.81787 3.68262 9.5 5.75 9.5H8V14H5.75C3.68262 14 2 15.6821 2 17.75C2 19.8179 3.68262 21.5 5.75 21.5C7.81738 21.5 9.5 19.8179 9.5 17.75V15.5H14V17.75C14 19.8179 15.6826 21.5 17.75 21.5C19.8174 21.5 21.5 19.8179 21.5 17.75C21.5 15.6821 19.8174 14 17.75 14ZM15.5 5.75C15.5 4.50928 16.5098 3.5 17.75 3.5C18.9902 3.5 20 4.50928 20 5.75C20 6.99072 18.9902 8 17.75 8H15.5V5.75ZM3.5 5.75C3.5 4.50928 4.50977 3.5 5.75 3.5C6.99023 3.5 8 4.50928 8 5.75V8H5.75C4.50977 8 3.5 6.99072 3.5 5.75ZM8 17.75C8 18.9907 6.99023 20 5.75 20C4.50977 20 3.5 18.9907 3.5 17.75C3.5 16.5093 4.50977 15.5 5.75 15.5H8V17.75ZM9.5 9.5H14V14H9.5V9.5ZM17.75 20C16.5098 20 15.5 18.9907 15.5 17.75V15.5H17.75C18.9902 15.5 20 16.5093 20 17.75C20 18.9907 18.9902 20 17.75 20Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"names":["Command","_jsx","width","height","viewBox","fill","xmlns","children","d"],"mappings":"wCAAaA,IAAAA,EAAU,WAAH,OAClBC,EAAA,MAAA,CAAKC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BC,SAC5FN,EAAA,OAAA,CACEO,EAAE,k6BACFH,KAAK,kBAEH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMB.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Hotkey/icons/LMB.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG,+CAOf,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";var t=function(){return r("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r("path",{d:"M14 2.25H10C7.38086 2.25 5.25 4.38086 5.25 7V15C5.25 18.7222 8.27832 21.75 12 21.75C15.7217 21.75 18.75 18.7222 18.75 15V7C18.75 4.38086 16.6191 2.25 14 2.25ZM10 3.75H11.25V8.25H6.75V7C6.75 5.20801 8.20801 3.75 10 3.75ZM17.25 15C17.25 17.895 14.8945 20.25 12 20.25C9.10547 20.25 6.75 17.895 6.75 15V9.75H12C12.4141 9.75 12.75 9.41406 12.75 9V3.75H14C15.792 3.75 17.25 5.20801 17.25 7V15Z",fill:"currentColor"})})};export{t as LMB};
|
|
2
|
+
//# sourceMappingURL=LMB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMB.js","sources":["../../../../src/componentsV2/Hotkey/icons/LMB.tsx"],"sourcesContent":["export const LMB = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14 2.25H10C7.38086 2.25 5.25 4.38086 5.25 7V15C5.25 18.7222 8.27832 21.75 12 21.75C15.7217 21.75 18.75 18.7222 18.75 15V7C18.75 4.38086 16.6191 2.25 14 2.25ZM10 3.75H11.25V8.25H6.75V7C6.75 5.20801 8.20801 3.75 10 3.75ZM17.25 15C17.25 17.895 14.8945 20.25 12 20.25C9.10547 20.25 6.75 17.895 6.75 15V9.75H12C12.4141 9.75 12.75 9.41406 12.75 9V3.75H14C15.792 3.75 17.25 5.20801 17.25 7V15Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"names":["LMB","_jsx","width","height","viewBox","fill","xmlns","children","d"],"mappings":"wCAAaA,IAAAA,EAAM,WAAH,OACdC,EAAA,MAAA,CAAKC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BC,SAC5FN,EAAA,OAAA,CACEO,EAAE,sYACFH,KAAK,kBAEH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MacControl.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Hotkey/icons/MacControl.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,+CAOtB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";var t=function(){return r("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r("path",{d:"M18.3496 15.2827L12.3496 7.28271C12.0664 6.90576 11.4336 6.90576 11.1504 7.28271L5.15038 15.2827C4.90135 15.6143 4.96873 16.0845 5.29979 16.333C5.63182 16.5815 6.10252 16.5127 6.34959 16.1831L11.75 8.98291L17.1504 16.1831C17.2969 16.3794 17.5224 16.4829 17.751 16.4829C17.9072 16.4829 18.0654 16.4341 18.2002 16.333C18.5312 16.0845 18.5986 15.6143 18.3496 15.2827Z",fill:"currentColor"})})};export{t as MacControl};
|
|
2
|
+
//# sourceMappingURL=MacControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MacControl.js","sources":["../../../../src/componentsV2/Hotkey/icons/MacControl.tsx"],"sourcesContent":["export const MacControl = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M18.3496 15.2827L12.3496 7.28271C12.0664 6.90576 11.4336 6.90576 11.1504 7.28271L5.15038 15.2827C4.90135 15.6143 4.96873 16.0845 5.29979 16.333C5.63182 16.5815 6.10252 16.5127 6.34959 16.1831L11.75 8.98291L17.1504 16.1831C17.2969 16.3794 17.5224 16.4829 17.751 16.4829C17.9072 16.4829 18.0654 16.4341 18.2002 16.333C18.5312 16.0845 18.5986 15.6143 18.3496 15.2827Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"names":["MacControl","_jsx","width","height","viewBox","fill","xmlns","children","d"],"mappings":"wCAAaA,IAAAA,EAAa,WAAH,OACrBC,EAAA,MAAA,CAAKC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BC,SAC5FN,EAAA,OAAA,CACEO,EAAE,+WACFH,KAAK,kBAEH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const Option: () => JSX.Element;
|
|
1
|
+
export declare const Option: () => import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=Option.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Hotkey/icons/Option.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Hotkey/icons/Option.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,+CAOlB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r}from"react/jsx-runtime";var t=function(){return r("svg",{
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";var t=function(){return r("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r("path",{d:"M7.75 4C8.01953 4 8.26758 4.14404 8.40137 4.37793L16.1855 18H20.75C21.1641 18 21.5 18.3359 21.5 18.75C21.5 19.1641 21.1641 19.5 20.75 19.5H15.75C15.4805 19.5 15.2324 19.356 15.0986 19.1221L7.31445 5.5H2.75C2.33594 5.5 2 5.16406 2 4.75C2 4.33594 2.33594 4 2.75 4H7.75ZM20.75 4C21.1641 4 21.5 4.33594 21.5 4.75C21.5 5.16406 21.1641 5.5 20.75 5.5H15.75C15.3359 5.5 15 5.16406 15 4.75C15 4.33594 15.3359 4 15.75 4H20.75Z",fill:"currentColor"})})};export{t as Option};
|
|
2
2
|
//# sourceMappingURL=Option.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.js","sources":["../../../../src/componentsV2/Hotkey/icons/Option.tsx"],"sourcesContent":["export const Option = ()
|
|
1
|
+
{"version":3,"file":"Option.js","sources":["../../../../src/componentsV2/Hotkey/icons/Option.tsx"],"sourcesContent":["export const Option = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.75 4C8.01953 4 8.26758 4.14404 8.40137 4.37793L16.1855 18H20.75C21.1641 18 21.5 18.3359 21.5 18.75C21.5 19.1641 21.1641 19.5 20.75 19.5H15.75C15.4805 19.5 15.2324 19.356 15.0986 19.1221L7.31445 5.5H2.75C2.33594 5.5 2 5.16406 2 4.75C2 4.33594 2.33594 4 2.75 4H7.75ZM20.75 4C21.1641 4 21.5 4.33594 21.5 4.75C21.5 5.16406 21.1641 5.5 20.75 5.5H15.75C15.3359 5.5 15 5.16406 15 4.75C15 4.33594 15.3359 4 15.75 4H20.75Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"names":["Option","_jsx","width","height","viewBox","fill","xmlns","children","d"],"mappings":"wCAAaA,IAAAA,EAAS,WAAH,OACjBC,EAAA,MAAA,CAAKC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BC,SAC5FN,EAAA,OAAA,CACEO,EAAE,maACFH,KAAK,kBAEH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RMB.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Hotkey/icons/RMB.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG,+CAOf,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";var t=function(){return r("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r("path",{d:"M14 2.25H10C7.38086 2.25 5.25 4.38086 5.25 7V15C5.25 18.7222 8.27832 21.75 12 21.75C15.7217 21.75 18.75 18.7222 18.75 15V7C18.75 4.38086 16.6191 2.25 14 2.25ZM17.25 7V8.25H12.75V3.75H14C15.792 3.75 17.25 5.20801 17.25 7ZM12 20.25C9.10547 20.25 6.75 17.895 6.75 15V7C6.75 5.20801 8.20801 3.75 10 3.75H11.25V9C11.25 9.41406 11.5859 9.75 12 9.75H17.25V15C17.25 17.895 14.8945 20.25 12 20.25Z",fill:"currentColor"})})};export{t as RMB};
|
|
2
|
+
//# sourceMappingURL=RMB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RMB.js","sources":["../../../../src/componentsV2/Hotkey/icons/RMB.tsx"],"sourcesContent":["export const RMB = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14 2.25H10C7.38086 2.25 5.25 4.38086 5.25 7V15C5.25 18.7222 8.27832 21.75 12 21.75C15.7217 21.75 18.75 18.7222 18.75 15V7C18.75 4.38086 16.6191 2.25 14 2.25ZM17.25 7V8.25H12.75V3.75H14C15.792 3.75 17.25 5.20801 17.25 7ZM12 20.25C9.10547 20.25 6.75 17.895 6.75 15V7C6.75 5.20801 8.20801 3.75 10 3.75H11.25V9C11.25 9.41406 11.5859 9.75 12 9.75H17.25V15C17.25 17.895 14.8945 20.25 12 20.25Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"names":["RMB","_jsx","width","height","viewBox","fill","xmlns","children","d"],"mappings":"wCAAaA,IAAAA,EAAM,WAAH,OACdC,EAAA,MAAA,CAAKC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BC,SAC5FN,EAAA,OAAA,CACEO,EAAE,uYACFH,KAAK,kBAEH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const Shift: () => JSX.Element;
|
|
1
|
+
export declare const Shift: () => import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=Shift.d.ts.map
|