@hh.ru/magritte-ui-input 7.0.8 → 7.1.1
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/BaseInput.d.ts +1 -1
- package/BaseInput.js +18 -8
- package/BaseInput.js.map +1 -1
- package/DateTimeInput.d.ts +7 -2
- package/DateTimeInput.js +21 -13
- package/DateTimeInput.js.map +1 -1
- package/Input.d.ts +1 -1
- package/NumberInput.d.ts +1 -1
- package/PasswordInput.d.ts +4 -2
- package/PasswordInput.js +5 -3
- package/PasswordInput.js.map +1 -1
- package/SearchInput.d.ts +1 -1
- package/SearchInput.js +3 -3
- package/SearchInput.js.map +1 -1
- package/UncontrolledDateTimeInput.d.ts +7 -2
- package/UncontrolledDateTimeInput.js +1 -1
- package/UncontrolledInput.d.ts +1 -1
- package/UncontrolledNumberInput.d.ts +1 -1
- package/UncontrolledPasswordInput.d.ts +4 -2
- package/UncontrolledSearchInput.d.ts +1 -1
- package/index.css +866 -835
- package/{index.esm-Dc5CZtKf.js → index.esm-CsQvPcoh.js} +1 -1
- package/{index.esm-Dc5CZtKf.js.map → index.esm-CsQvPcoh.js.map} +1 -1
- package/index.js +1 -1
- package/maskito-exports.js +1 -1
- package/package.json +13 -13
- package/types.d.ts +23 -27
- package/useDateTimeMask.js +1 -1
package/BaseInput.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
2
|
import { BaseInputProps } from '@hh.ru/magritte-ui-input/types';
|
|
3
|
-
declare const BaseInput: import("react").ForwardRefExoticComponent<(BaseInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
3
|
+
declare const BaseInput: import("react").ForwardRefExoticComponent<(BaseInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "hint" | "showHintAlways" | "clearable" | "clearableOnFocus" | "buttonIcon" | "onButtonClick" | "inputIcon" | "fixedPlaceholder" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value">) & import("react").RefAttributes<HTMLInputElement>>;
|
|
4
4
|
export { BaseInput };
|
package/BaseInput.js
CHANGED
|
@@ -8,14 +8,21 @@ import { useDisabled } from '@hh.ru/magritte-common-use-disabled';
|
|
|
8
8
|
import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
|
|
9
9
|
import { Action } from '@hh.ru/magritte-ui-action';
|
|
10
10
|
import { FormHelper } from '@hh.ru/magritte-ui-form-helper';
|
|
11
|
-
import { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
11
|
+
import { CrossOutlinedSize16, CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
12
12
|
import { useFocus } from './useFocus.js';
|
|
13
13
|
import { useInputAriaProps } from './useInputAriaProps.js';
|
|
14
14
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
15
15
|
|
|
16
|
-
var styles = {"input":"magritte-input___LVTID_7-
|
|
16
|
+
var styles = {"input":"magritte-input___LVTID_7-1-1","label":"magritte-label___YlOQk_7-1-1","elevated":"magritte-elevated___kPcsM_7-1-1","focused":"magritte-focused___dxrHD_7-1-1","invalid":"magritte-invalid___L5MVa_7-1-1","disabled":"magritte-disabled___0NH6E_7-1-1","position-container":"magritte-position-container___kZnvZ_7-1-1","positionContainer":"magritte-position-container___kZnvZ_7-1-1","field":"magritte-field___9S8Tw_7-1-1","hint":"magritte-hint___EFGK0_7-1-1","additional-value":"magritte-additional-value___9Kyap_7-1-1","additionalValue":"magritte-additional-value___9Kyap_7-1-1","label_elevated":"magritte-label_elevated___PVcpC_7-1-1","labelElevated":"magritte-label_elevated___PVcpC_7-1-1","fixed-placeholder":"magritte-fixed-placeholder___PYJIH_7-1-1","fixedPlaceholder":"magritte-fixed-placeholder___PYJIH_7-1-1","icon":"magritte-icon___HEDsQ_7-1-1","focus-visible":"magritte-focus-visible___QvCO1_7-1-1","focusVisible":"magritte-focus-visible___QvCO1_7-1-1","right-container":"magritte-right-container___N0B0o_7-1-1","rightContainer":"magritte-right-container___N0B0o_7-1-1","with-icon":"magritte-with-icon___TPBe2_7-1-1","withIcon":"magritte-with-icon___TPBe2_7-1-1","large":"magritte-large___9frRh_7-1-1","small":"magritte-small___iQL4F_7-1-1","autofill-helper":"magritte-autofill-helper___WFjOW_7-1-1","autofillHelper":"magritte-autofill-helper___WFjOW_7-1-1","content-container":"magritte-content-container___s-0kX_7-1-1","contentContainer":"magritte-content-container___s-0kX_7-1-1","rigging-container":"magritte-rigging-container___Up9Lb_7-1-1","riggingContainer":"magritte-rigging-container___Up9Lb_7-1-1","input__mask":"magritte-input__mask___CHda2_7-1-1","inputMask":"magritte-input__mask___CHda2_7-1-1","value-ghost":"magritte-value-ghost___IXNZj_7-1-1","valueGhost":"magritte-value-ghost___IXNZj_7-1-1","hint-container":"magritte-hint-container___rGsD8_7-1-1","hintContainer":"magritte-hint-container___rGsD8_7-1-1","counter":"magritte-counter___Bld3Q_7-1-1","value-container":"magritte-value-container___6ReT7_7-1-1","valueContainer":"magritte-value-container___6ReT7_7-1-1"};
|
|
17
17
|
|
|
18
|
-
const
|
|
18
|
+
const matchIconSize = (size, icon) => {
|
|
19
|
+
return icon &&
|
|
20
|
+
(((size === 'medium' || size === 'large') && icon._size === 24) ||
|
|
21
|
+
(size === 'small' && icon._size === 16))
|
|
22
|
+
? icon
|
|
23
|
+
: null;
|
|
24
|
+
};
|
|
25
|
+
const BaseInputForwardRefRenderFunc = ({ onChange, onFocus, onBlur, value, placeholder, disabled = false, postfix, size = 'medium', elevatePlaceholder = false, invalid = false, description, errorMessage, formatter, buttonIcon: _buttonIcon, clearable = false, clearableOnFocus, onButtonClick, buttonDataQa, buttonRef, inputIcon, wrapperRef, fixedPlaceholder, maxLength, hint, showHintAlways = false, ...restProps }, ref) => {
|
|
19
26
|
const wrapperCurrentRef = useRef(null);
|
|
20
27
|
const inputRef = useRef(null);
|
|
21
28
|
const [isActionVisible, setActionVisible] = useState(false);
|
|
@@ -78,9 +85,10 @@ const BaseInputComponent = ({ onChange, onFocus, onBlur, value, placeholder, dis
|
|
|
78
85
|
const showPostfix = !!postfix && (placeholderIsElevated || value !== '');
|
|
79
86
|
const showFixedPlaceholder = focusedOrFilled && !!fixedPlaceholder;
|
|
80
87
|
const showLabel = placeholderCanElevated || (value === '' && !showFixedPlaceholder);
|
|
81
|
-
const InputIconComponent = inputIcon
|
|
88
|
+
const InputIconComponent = matchIconSize(size, inputIcon);
|
|
82
89
|
const showClearButton = value.length > 0 && (clearable || (!!clearableOnFocus && isActionVisible));
|
|
83
90
|
const showHint = !!hint && (showHintAlways || value.length > 0);
|
|
91
|
+
const buttonIcon = matchIconSize(size, _buttonIcon);
|
|
84
92
|
const hintWrapperRefCallback = useCallback((element) => {
|
|
85
93
|
if (element && hintRef.current) {
|
|
86
94
|
const text = hintRef.current.innerText;
|
|
@@ -115,15 +123,17 @@ const BaseInputComponent = ({ onChange, onFocus, onBlur, value, placeholder, dis
|
|
|
115
123
|
[styles.focusVisible]: isFocusVisible,
|
|
116
124
|
[styles.disabled]: isComponentDisabled,
|
|
117
125
|
[styles.large]: size === 'large',
|
|
126
|
+
[styles.small]: size === 'small',
|
|
118
127
|
[styles.elevated]: placeholderCanElevated,
|
|
119
128
|
[styles.invalid]: !!invalid,
|
|
120
|
-
[styles.withRight]: !!buttonIcon || showClearButton,
|
|
121
129
|
[styles.withIcon]: !!inputIcon,
|
|
122
|
-
}), onFocus: clearableOnFocus ? handleWrapperFocus : undefined, onBlur: clearableOnFocus ? handleWrapperBlur : undefined, onClick: onClickWrapper, "data-interactive": true, children: [jsxs("div", { className: styles.positionContainer, children: [jsxs("div", { className: styles.hintContainer, children: [jsx("div", { className: styles.autofillHelper }), jsxs("div", { className: styles.contentContainer, children: [!!InputIconComponent && (jsx("div", { className: styles.icon, children: jsx(InputIconComponent, {}) })), jsxs("div", { className: styles.valueContainer, children: [jsx("input", { ...restProps, ...ariaProps, maxLength: maxLength, disabled: isComponentDisabled, suppressHydrationWarning: true, className: styles.field, value: currentValue, onInput: changeHandler, onFocus: focusHandler, onBlur: blurHandler, ref: inputRefCallback }), jsx("div", { className: styles.additionalValue, children: jsxs(Text, { Element: "span", typography:
|
|
130
|
+
}), onFocus: clearableOnFocus ? handleWrapperFocus : undefined, onBlur: clearableOnFocus ? handleWrapperBlur : undefined, onClick: onClickWrapper, "data-interactive": true, children: [jsxs("div", { className: styles.positionContainer, children: [jsxs("div", { className: styles.hintContainer, children: [jsx("div", { className: styles.autofillHelper }), jsxs("div", { className: styles.contentContainer, children: [!!InputIconComponent && (jsx("div", { className: styles.icon, children: jsx(InputIconComponent, {}) })), jsxs("div", { className: styles.valueContainer, children: [jsx("input", { ...restProps, ...ariaProps, maxLength: maxLength, disabled: isComponentDisabled, suppressHydrationWarning: true, className: styles.field, value: currentValue, onInput: changeHandler, onFocus: focusHandler, onBlur: blurHandler, ref: inputRefCallback }), jsx("div", { className: styles.additionalValue, children: jsxs(Text, { Element: "span", typography: size === 'small' ? 'label-3-regular' : 'label-2-regular', children: [jsx("span", { className: styles.valueGhost, children: currentValue }), showFixedPlaceholder && (jsx("span", { className: styles.fixedPlaceholder, children: fixedPlaceholder.slice(value.length) })), showPostfix && (jsxs(Fragment, { children: ['\u00A0', postfix] }))] }) })] }), jsx("div", { className: styles.riggingContainer, children: showLabel && (jsx("label", { className: classnames(styles.label, {
|
|
123
131
|
[styles.labelElevated]: placeholderIsElevated,
|
|
124
|
-
}), id: ariaProps['aria-labelledby'], children: placeholder })) })] }), showHint && (jsx("div", { className: styles.hint, ref: hintWrapperRefCallback, "data-qa": "input-hint", children: jsx(Text, { Element: "span", typography:
|
|
132
|
+
}), id: ariaProps['aria-labelledby'], children: placeholder })) })] }), showHint && (jsx("div", { className: styles.hint, ref: hintWrapperRefCallback, "data-qa": "input-hint", children: jsx(Text, { Element: "span", typography: size === 'small' ? 'label-4-regular' : 'label-3-regular', children: jsx("span", { ref: hintRef, children: hint }) }) }))] }), (buttonIcon || showClearButton) && (jsx("div", { className: styles.rightContainer, children: (buttonIcon || showClearButton) && (jsx(Action, { "data-qa": buttonQaLabel, mode: "secondary", onMouseDown: (event) => event.preventDefault(), onClick: showClearButton ? clearClickHandler : onButtonClick, icon: showClearButton
|
|
133
|
+
? (size === 'small' && CrossOutlinedSize16) || CrossOutlinedSize24
|
|
134
|
+
: buttonIcon, disabled: isComponentDisabled, ref: buttonRef })) }))] }), jsx(FormHelper, { description: description, errorMessage: errorMessage, descriptionId: ariaProps['aria-describedby'], disabled: isComponentDisabled, invalid: invalid })] }));
|
|
125
135
|
};
|
|
126
|
-
const BaseInput = forwardRef(
|
|
136
|
+
const BaseInput = forwardRef(BaseInputForwardRefRenderFunc);
|
|
127
137
|
BaseInput.displayName = 'BaseInput';
|
|
128
138
|
|
|
129
139
|
export { BaseInput };
|
package/BaseInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseInput.js","sources":["../src/BaseInput.tsx"],"sourcesContent":["import {\n InputHTMLAttributes,\n forwardRef,\n ForwardedRef,\n useCallback,\n useId,\n useRef,\n useState,\n useEffect,\n RefCallback,\n MouseEventHandler,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { isEventFromInteractiveComponent } from '@hh.ru/magritte-common-mouse';\nimport { Selection } from '@hh.ru/magritte-common-text-selection';\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { Action } from '@hh.ru/magritte-ui-action';\nimport { FormHelper } from '@hh.ru/magritte-ui-form-helper';\nimport { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { IconWrapperComponentSize24 } from '@hh.ru/magritte-ui-icon/src/iconTypes';\nimport { BaseInputProps } from '@hh.ru/magritte-ui-input/types';\nimport { useFocus } from '@hh.ru/magritte-ui-input/useFocus';\nimport { useInputAriaProps } from '@hh.ru/magritte-ui-input/useInputAriaProps';\nimport { Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './input.less';\n\nconst BaseInputComponent = (\n {\n onChange,\n onFocus,\n onBlur,\n value,\n placeholder,\n disabled = false,\n postfix,\n size = 'medium',\n elevatePlaceholder = false,\n invalid = false,\n description,\n errorMessage,\n formatter,\n buttonIcon,\n clearable = false,\n clearableOnFocus,\n onButtonClick,\n buttonDataQa,\n buttonRef,\n inputIcon,\n wrapperRef,\n fixedPlaceholder,\n maxLength,\n hint,\n showHintAlways = false,\n ...restProps\n }: BaseInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, keyof BaseInputProps>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const wrapperCurrentRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [isActionVisible, setActionVisible] = useState(false);\n const inputRefCallback = useMultipleRefs(ref, inputRef);\n const wrapperRefCallback = useMultipleRefs(wrapperRef, wrapperCurrentRef);\n const descriptionId = useId();\n const labelId = useId();\n const hintRef = useRef<HTMLDivElement>(null);\n const hintMaxWidthRef = useRef<{ width: number; text: string } | null>(null);\n const change = useCallback(\n (newValue: string) => {\n if (inputRef.current && formatter) {\n const caretPosition = Selection.getCaretPosition(inputRef.current);\n const formatResult = formatter(value, newValue, caretPosition || 0);\n requestAnimationFrame(() => {\n if (inputRef.current) {\n Selection.setCaretPosition(inputRef.current, formatResult.caretPosition);\n }\n });\n onChange(formatResult.outputValue);\n return;\n }\n onChange(newValue);\n },\n [formatter, onChange, value, inputRef]\n );\n\n const clearClickHandler = useCallback(\n (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n onChange('');\n inputRef.current && inputRef.current.focus();\n onButtonClick?.(event);\n },\n [onChange, inputRef, onButtonClick]\n );\n\n const forceDisabled = useDisabled();\n const isComponentDisabled = forceDisabled || !!disabled;\n\n const { changeHandler, focusHandler, blurHandler, isFocused } = useFocus(change, onFocus, onBlur);\n const placeholderCanElevated = size === 'large' && !!elevatePlaceholder && !!placeholder;\n const [isFocusVisible, setFocusVisible] = useState(false);\n const currentValue = formatter?.('', value, 0).formattedValue || value;\n const buttonQaLabel = buttonDataQa || `input-${clearable ? 'clearable-' : ''}button`;\n const ariaProps = useInputAriaProps({\n invalid,\n hasDescription: !!description,\n hasPlaceholder: !!placeholder,\n descriptionId,\n labelId,\n });\n\n const handleWrapperFocus = () => {\n setActionVisible(true);\n };\n\n const handleWrapperBlur = () => {\n requestAnimationFrame(() => {\n if (!wrapperCurrentRef.current?.contains(document.activeElement)) {\n setActionVisible(false);\n }\n });\n };\n\n const onClickWrapper: MouseEventHandler = (e) => {\n if (!isEventFromInteractiveComponent(e)) {\n inputRef.current?.focus();\n }\n };\n\n const focusedOrFilled = isFocused || value !== '';\n const placeholderIsElevated = focusedOrFilled && placeholderCanElevated;\n const showPostfix = !!postfix && (placeholderIsElevated || value !== '');\n const showFixedPlaceholder = focusedOrFilled && !!fixedPlaceholder;\n const showLabel = placeholderCanElevated || (value === '' && !showFixedPlaceholder);\n\n const InputIconComponent = inputIcon || null;\n const showClearButton = value.length > 0 && (clearable || (!!clearableOnFocus && isActionVisible));\n const showHint = !!hint && (showHintAlways || value.length > 0);\n\n const hintWrapperRefCallback: RefCallback<HTMLDivElement> = useCallback(\n (element) => {\n if (element && hintRef.current) {\n const text = hintRef.current.innerText;\n if (text.length > 30) {\n let maxWidth;\n if (text !== hintMaxWidthRef.current?.text) {\n const newText = text.slice(0, 30);\n hintRef.current.innerText = newText;\n maxWidth = hintRef.current.offsetWidth;\n hintRef.current.innerText = text;\n hintMaxWidthRef.current = {\n width: maxWidth,\n text,\n };\n } else {\n maxWidth = hintMaxWidthRef.current.width;\n }\n\n element.style.maxWidth = `${maxWidth}px`;\n }\n }\n },\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n [hint]\n );\n\n useEffect(() => {\n if (inputRef.current) {\n setFocusVisible(isFocused && inputRef.current.classList.contains('focus-visible'));\n }\n }, [isFocused]);\n\n return (\n <div\n ref={wrapperRefCallback}\n className={classnames(styles.input, {\n [styles.focused]: isFocused,\n [styles.focusVisible]: isFocusVisible,\n [styles.disabled]: isComponentDisabled,\n [styles.large]: size === 'large',\n [styles.elevated]: placeholderCanElevated,\n [styles.invalid]: !!invalid,\n [styles.withRight]: !!buttonIcon || showClearButton,\n [styles.withIcon]: !!inputIcon,\n })}\n onFocus={clearableOnFocus ? handleWrapperFocus : undefined}\n onBlur={clearableOnFocus ? handleWrapperBlur : undefined}\n onClick={onClickWrapper}\n data-interactive={true}\n >\n <div className={styles.positionContainer}>\n <div className={styles.hintContainer}>\n <div className={styles.autofillHelper} />\n <div className={styles.contentContainer}>\n {!!InputIconComponent && (\n <div className={styles.icon}>\n <InputIconComponent />\n </div>\n )}\n <div className={styles.valueContainer}>\n <input\n {...restProps}\n {...ariaProps}\n maxLength={maxLength}\n disabled={isComponentDisabled}\n suppressHydrationWarning\n className={styles.field}\n value={currentValue}\n onInput={changeHandler} // maskito требует onInput, (https://maskito.dev/frameworks/react) который работает аналогично onChange\n onFocus={focusHandler}\n onBlur={blurHandler}\n ref={inputRefCallback}\n />\n <div className={styles.additionalValue}>\n <Text Element=\"span\" typography=\"label-2-regular\">\n <span className={styles.valueGhost}>{currentValue}</span>\n {showFixedPlaceholder && (\n <span className={styles.fixedPlaceholder}>\n {fixedPlaceholder.slice(value.length)}\n </span>\n )}\n {showPostfix && (\n <>\n {'\\u00A0'}\n {postfix}\n </>\n )}\n </Text>\n </div>\n </div>\n <div className={styles.riggingContainer}>\n {showLabel && (\n <label\n className={classnames(styles.label, {\n [styles.labelElevated]: placeholderIsElevated,\n })}\n id={ariaProps['aria-labelledby']}\n >\n {placeholder}\n </label>\n )}\n </div>\n </div>\n {showHint && (\n <div className={styles.hint} ref={hintWrapperRefCallback} data-qa=\"input-hint\">\n <Text Element=\"span\" typography=\"label-3-regular\">\n <span ref={hintRef}>{hint}</span>\n </Text>\n </div>\n )}\n </div>\n {(buttonIcon || showClearButton) && (\n <div className={styles.rightContainer}>\n {(buttonIcon || showClearButton) && (\n <Action\n data-qa={buttonQaLabel}\n mode=\"secondary\"\n onMouseDown={(event) => event.preventDefault()} // чтобы инпут не терял фокус\n onClick={showClearButton ? clearClickHandler : (onButtonClick as () => void)}\n icon={\n showClearButton ? CrossOutlinedSize24 : (buttonIcon as IconWrapperComponentSize24)\n }\n disabled={isComponentDisabled}\n ref={buttonRef}\n />\n )}\n </div>\n )}\n </div>\n <FormHelper\n description={description}\n errorMessage={errorMessage}\n descriptionId={ariaProps['aria-describedby']}\n disabled={isComponentDisabled}\n invalid={invalid}\n />\n </div>\n );\n};\n\nconst BaseInput = forwardRef(BaseInputComponent);\n\nBaseInput.displayName = 'BaseInput';\n\nexport { BaseInput };\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":";;;;;;;;;;;;;;;;AA6BA,MAAM,kBAAkB,GAAG,CACvB,EACI,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,IAAI,GAAG,QAAQ,EACf,kBAAkB,GAAG,KAAK,EAC1B,OAAO,GAAG,KAAK,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,SAAS,GAAG,KAAK,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,IAAI,EACJ,cAAc,GAAG,KAAK,EACtB,GAAG,SAAS,EACqE,EACrF,GAAmC,KACnC;AACA,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AACvD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG,eAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAC1E,IAAA,MAAM,aAAa,GAAG,KAAK,EAAE,CAAC;AAC9B,IAAA,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;AACxB,IAAA,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAC7C,IAAA,MAAM,eAAe,GAAG,MAAM,CAAyC,IAAI,CAAC,CAAC;AAC7E,IAAA,MAAM,MAAM,GAAG,WAAW,CACtB,CAAC,QAAgB,KAAI;AACjB,QAAA,IAAI,QAAQ,CAAC,OAAO,IAAI,SAAS,EAAE;YAC/B,MAAM,aAAa,GAAG,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACnE,YAAA,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;YACpE,qBAAqB,CAAC,MAAK;AACvB,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;oBAClB,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;iBAC5E;AACL,aAAC,CAAC,CAAC;AACH,YAAA,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO;SACV;QACD,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACtB,EACD,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CACzC,CAAC;AAEF,IAAA,MAAM,iBAAiB,GAAG,WAAW,CACjC,CAAC,KAAsD,KAAI;QACvD,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC7C,QAAA,aAAa,GAAG,KAAK,CAAC,CAAC;KAC1B,EACD,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CACtC,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC;AACpC,IAAA,MAAM,mBAAmB,GAAG,aAAa,IAAI,CAAC,CAAC,QAAQ,CAAC;AAExD,IAAA,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAClG,IAAA,MAAM,sBAAsB,GAAG,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,WAAW,CAAC;IACzF,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAG,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,KAAK,CAAC;AACvE,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,SAAS,SAAS,GAAG,YAAY,GAAG,EAAE,QAAQ,CAAC;IACrF,MAAM,SAAS,GAAG,iBAAiB,CAAC;QAChC,OAAO;QACP,cAAc,EAAE,CAAC,CAAC,WAAW;QAC7B,cAAc,EAAE,CAAC,CAAC,WAAW;QAC7B,aAAa;QACb,OAAO;AACV,KAAA,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,MAAK;QAC5B,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3B,KAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAK;QAC3B,qBAAqB,CAAC,MAAK;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBAC9D,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC3B;AACL,SAAC,CAAC,CAAC;AACP,KAAC,CAAC;AAEF,IAAA,MAAM,cAAc,GAAsB,CAAC,CAAC,KAAI;AAC5C,QAAA,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE;AACrC,YAAA,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;SAC7B;AACL,KAAC,CAAC;AAEF,IAAA,MAAM,eAAe,GAAG,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;AAClD,IAAA,MAAM,qBAAqB,GAAG,eAAe,IAAI,sBAAsB,CAAC;AACxE,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,KAAK,qBAAqB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;AACzE,IAAA,MAAM,oBAAoB,GAAG,eAAe,IAAI,CAAC,CAAC,gBAAgB,CAAC;AACnE,IAAA,MAAM,SAAS,GAAG,sBAAsB,KAAK,KAAK,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAEpF,IAAA,MAAM,kBAAkB,GAAG,SAAS,IAAI,IAAI,CAAC;AAC7C,IAAA,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,SAAS,KAAK,CAAC,CAAC,gBAAgB,IAAI,eAAe,CAAC,CAAC,CAAC;AACnG,IAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEhE,IAAA,MAAM,sBAAsB,GAAgC,WAAW,CACnE,CAAC,OAAO,KAAI;AACR,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;AAC5B,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;AACvC,YAAA,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;AAClB,gBAAA,IAAI,QAAQ,CAAC;gBACb,IAAI,IAAI,KAAK,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE;oBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClC,oBAAA,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;AACpC,oBAAA,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;AACvC,oBAAA,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;oBACjC,eAAe,CAAC,OAAO,GAAG;AACtB,wBAAA,KAAK,EAAE,QAAQ;wBACf,IAAI;qBACP,CAAC;iBACL;qBAAM;AACH,oBAAA,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC5C;gBAED,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAG,EAAA,QAAQ,IAAI,CAAC;aAC5C;SACJ;KACJ;;IAED,CAAC,IAAI,CAAC,CACT,CAAC;IAEF,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,eAAe,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;SACtF;AACL,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhB,IAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,kBAAkB,EACvB,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;AAChC,YAAA,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS;AAC3B,YAAA,CAAC,MAAM,CAAC,YAAY,GAAG,cAAc;AACrC,YAAA,CAAC,MAAM,CAAC,QAAQ,GAAG,mBAAmB;AACtC,YAAA,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,KAAK,OAAO;AAChC,YAAA,CAAC,MAAM,CAAC,QAAQ,GAAG,sBAAsB;AACzC,YAAA,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;YAC3B,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,IAAI,eAAe;AACnD,YAAA,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS;SACjC,CAAC,EACF,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,SAAS,EAC1D,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,SAAS,EACxD,OAAO,EAAE,cAAc,EACL,kBAAA,EAAA,IAAI,aAEtBA,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,iBAAiB,aACpCA,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,EAChC,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,cAAc,EAAI,CAAA,EACzCD,cAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAClC,QAAA,EAAA,CAAA,CAAC,CAAC,kBAAkB,KACjBC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAA,QAAA,EACvBA,GAAC,CAAA,kBAAkB,EAAG,EAAA,CAAA,EAAA,CACpB,CACT,EACDD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACjCC,GACQ,CAAA,OAAA,EAAA,EAAA,GAAA,SAAS,EACT,GAAA,SAAS,EACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,mBAAmB,EAC7B,wBAAwB,EACxB,IAAA,EAAA,SAAS,EAAE,MAAM,CAAC,KAAK,EACvB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,gBAAgB,EACvB,CAAA,EACFA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,eAAe,EAClC,QAAA,EAAAD,IAAA,CAAC,IAAI,EAAC,EAAA,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,iBAAiB,EAAA,QAAA,EAAA,CAC7CC,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,UAAU,EAAA,QAAA,EAAG,YAAY,EAAA,CAAQ,EACxD,oBAAoB,KACjBA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAA,QAAA,EACnC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAClC,CAAA,CACV,EACA,WAAW,KACRD,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CACK,QAAQ,EACR,OAAO,CACT,EAAA,CAAA,CACN,IACE,EACL,CAAA,CAAA,EAAA,CACJ,EACND,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,gBAAgB,YAClC,SAAS,KACNA,GAAA,CAAA,OAAA,EAAA,EACI,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;AAChC,gDAAA,CAAC,MAAM,CAAC,aAAa,GAAG,qBAAqB;AAChD,6CAAA,CAAC,EACF,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAE/B,WAAW,EAAA,CACR,CACX,EACC,CAAA,CAAA,EAAA,CACJ,EACL,QAAQ,KACLA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,sBAAsB,EAAA,SAAA,EAAU,YAAY,EAAA,QAAA,EAC1EA,IAAC,IAAI,EAAA,EAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,iBAAiB,EAAA,QAAA,EAC7CA,cAAM,GAAG,EAAE,OAAO,EAAA,QAAA,EAAG,IAAI,EAAQ,CAAA,EAAA,CAC9B,EACL,CAAA,CACT,IACC,EACL,CAAC,UAAU,IAAI,eAAe,MAC3BA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,cAAc,YAChC,CAAC,UAAU,IAAI,eAAe,MAC3BA,IAAC,MAAM,EAAA,EAAA,SAAA,EACM,aAAa,EACtB,IAAI,EAAC,WAAW,EAChB,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,EAC9C,OAAO,EAAE,eAAe,GAAG,iBAAiB,GAAI,aAA4B,EAC5E,IAAI,EACA,eAAe,GAAG,mBAAmB,GAAI,UAAyC,EAEtF,QAAQ,EAAE,mBAAmB,EAC7B,GAAG,EAAE,SAAS,EAChB,CAAA,CACL,GACC,CACT,CAAA,EAAA,CACC,EACNA,GAAA,CAAC,UAAU,EACP,EAAA,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,SAAS,CAAC,kBAAkB,CAAC,EAC5C,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,OAAO,EAClB,CAAA,CAAA,EAAA,CACA,EACR;AACN,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,UAAU,CAAC,kBAAkB,EAAE;AAEjD,SAAS,CAAC,WAAW,GAAG,WAAW;;;;"}
|
|
1
|
+
{"version":3,"file":"BaseInput.js","sources":["../src/BaseInput.tsx"],"sourcesContent":["import {\n InputHTMLAttributes,\n forwardRef,\n ForwardedRef,\n useCallback,\n useId,\n useRef,\n useState,\n useEffect,\n RefCallback,\n MouseEventHandler,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { isEventFromInteractiveComponent } from '@hh.ru/magritte-common-mouse';\nimport { Selection } from '@hh.ru/magritte-common-text-selection';\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { Action } from '@hh.ru/magritte-ui-action';\nimport { FormHelper } from '@hh.ru/magritte-ui-form-helper';\nimport { CrossOutlinedSize16, CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { IconWrapperComponentSize16, IconWrapperComponentSize24 } from '@hh.ru/magritte-ui-icon/src/iconTypes';\nimport { BaseInputProps, InputSize } from '@hh.ru/magritte-ui-input/types';\nimport { useFocus } from '@hh.ru/magritte-ui-input/useFocus';\nimport { useInputAriaProps } from '@hh.ru/magritte-ui-input/useInputAriaProps';\nimport { Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './input.less';\n\nconst matchIconSize = (size: InputSize, icon: IconWrapperComponentSize16 | IconWrapperComponentSize24 | undefined) => {\n return icon &&\n (((size === 'medium' || size === 'large') && (icon as IconWrapperComponentSize24)._size === 24) ||\n (size === 'small' && (icon as IconWrapperComponentSize16)._size === 16))\n ? icon\n : null;\n};\n\nconst BaseInputForwardRefRenderFunc = (\n {\n onChange,\n onFocus,\n onBlur,\n value,\n placeholder,\n disabled = false,\n postfix,\n size = 'medium',\n elevatePlaceholder = false,\n invalid = false,\n description,\n errorMessage,\n formatter,\n buttonIcon: _buttonIcon,\n clearable = false,\n clearableOnFocus,\n onButtonClick,\n buttonDataQa,\n buttonRef,\n inputIcon,\n wrapperRef,\n fixedPlaceholder,\n maxLength,\n hint,\n showHintAlways = false,\n ...restProps\n }: BaseInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, keyof BaseInputProps>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const wrapperCurrentRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [isActionVisible, setActionVisible] = useState(false);\n const inputRefCallback = useMultipleRefs(ref, inputRef);\n const wrapperRefCallback = useMultipleRefs(wrapperRef, wrapperCurrentRef);\n const descriptionId = useId();\n const labelId = useId();\n const hintRef = useRef<HTMLDivElement>(null);\n const hintMaxWidthRef = useRef<{ width: number; text: string } | null>(null);\n const change = useCallback(\n (newValue: string) => {\n if (inputRef.current && formatter) {\n const caretPosition = Selection.getCaretPosition(inputRef.current);\n const formatResult = formatter(value, newValue, caretPosition || 0);\n requestAnimationFrame(() => {\n if (inputRef.current) {\n Selection.setCaretPosition(inputRef.current, formatResult.caretPosition);\n }\n });\n onChange(formatResult.outputValue);\n return;\n }\n onChange(newValue);\n },\n [formatter, onChange, value, inputRef]\n );\n\n const clearClickHandler = useCallback(\n (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n onChange('');\n inputRef.current && inputRef.current.focus();\n onButtonClick?.(event);\n },\n [onChange, inputRef, onButtonClick]\n );\n\n const forceDisabled = useDisabled();\n const isComponentDisabled = forceDisabled || !!disabled;\n\n const { changeHandler, focusHandler, blurHandler, isFocused } = useFocus(change, onFocus, onBlur);\n const placeholderCanElevated = size === 'large' && !!elevatePlaceholder && !!placeholder;\n const [isFocusVisible, setFocusVisible] = useState(false);\n const currentValue = formatter?.('', value, 0).formattedValue || value;\n const buttonQaLabel = buttonDataQa || `input-${clearable ? 'clearable-' : ''}button`;\n const ariaProps = useInputAriaProps({\n invalid,\n hasDescription: !!description,\n hasPlaceholder: !!placeholder,\n descriptionId,\n labelId,\n });\n\n const handleWrapperFocus = () => {\n setActionVisible(true);\n };\n\n const handleWrapperBlur = () => {\n requestAnimationFrame(() => {\n if (!wrapperCurrentRef.current?.contains(document.activeElement)) {\n setActionVisible(false);\n }\n });\n };\n\n const onClickWrapper: MouseEventHandler = (e) => {\n if (!isEventFromInteractiveComponent(e)) {\n inputRef.current?.focus();\n }\n };\n\n const focusedOrFilled = isFocused || value !== '';\n const placeholderIsElevated = focusedOrFilled && placeholderCanElevated;\n const showPostfix = !!postfix && (placeholderIsElevated || value !== '');\n const showFixedPlaceholder = focusedOrFilled && !!fixedPlaceholder;\n const showLabel = placeholderCanElevated || (value === '' && !showFixedPlaceholder);\n\n const InputIconComponent = matchIconSize(size, inputIcon);\n const showClearButton = value.length > 0 && (clearable || (!!clearableOnFocus && isActionVisible));\n const showHint = !!hint && (showHintAlways || value.length > 0);\n const buttonIcon = matchIconSize(size, _buttonIcon);\n\n const hintWrapperRefCallback: RefCallback<HTMLDivElement> = useCallback(\n (element) => {\n if (element && hintRef.current) {\n const text = hintRef.current.innerText;\n if (text.length > 30) {\n let maxWidth;\n if (text !== hintMaxWidthRef.current?.text) {\n const newText = text.slice(0, 30);\n hintRef.current.innerText = newText;\n maxWidth = hintRef.current.offsetWidth;\n hintRef.current.innerText = text;\n hintMaxWidthRef.current = {\n width: maxWidth,\n text,\n };\n } else {\n maxWidth = hintMaxWidthRef.current.width;\n }\n\n element.style.maxWidth = `${maxWidth}px`;\n }\n }\n },\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n [hint]\n );\n\n useEffect(() => {\n if (inputRef.current) {\n setFocusVisible(isFocused && inputRef.current.classList.contains('focus-visible'));\n }\n }, [isFocused]);\n\n return (\n <div\n ref={wrapperRefCallback}\n className={classnames(styles.input, {\n [styles.focused]: isFocused,\n [styles.focusVisible]: isFocusVisible,\n [styles.disabled]: isComponentDisabled,\n [styles.large]: size === 'large',\n [styles.small]: size === 'small',\n [styles.elevated]: placeholderCanElevated,\n [styles.invalid]: !!invalid,\n [styles.withIcon]: !!inputIcon,\n })}\n onFocus={clearableOnFocus ? handleWrapperFocus : undefined}\n onBlur={clearableOnFocus ? handleWrapperBlur : undefined}\n onClick={onClickWrapper}\n data-interactive={true}\n >\n <div className={styles.positionContainer}>\n <div className={styles.hintContainer}>\n <div className={styles.autofillHelper} />\n <div className={styles.contentContainer}>\n {!!InputIconComponent && (\n <div className={styles.icon}>\n <InputIconComponent />\n </div>\n )}\n <div className={styles.valueContainer}>\n <input\n {...restProps}\n {...ariaProps}\n maxLength={maxLength}\n disabled={isComponentDisabled}\n suppressHydrationWarning\n className={styles.field}\n value={currentValue}\n onInput={changeHandler} // maskito требует onInput, (https://maskito.dev/frameworks/react) который работает аналогично onChange\n onFocus={focusHandler}\n onBlur={blurHandler}\n ref={inputRefCallback}\n />\n <div className={styles.additionalValue}>\n <Text\n Element=\"span\"\n typography={size === 'small' ? 'label-3-regular' : 'label-2-regular'}\n >\n <span className={styles.valueGhost}>{currentValue}</span>\n {showFixedPlaceholder && (\n <span className={styles.fixedPlaceholder}>\n {fixedPlaceholder.slice(value.length)}\n </span>\n )}\n {showPostfix && (\n <>\n {'\\u00A0'}\n {postfix}\n </>\n )}\n </Text>\n </div>\n </div>\n <div className={styles.riggingContainer}>\n {showLabel && (\n <label\n className={classnames(styles.label, {\n [styles.labelElevated]: placeholderIsElevated,\n })}\n id={ariaProps['aria-labelledby']}\n >\n {placeholder}\n </label>\n )}\n </div>\n </div>\n {showHint && (\n <div className={styles.hint} ref={hintWrapperRefCallback} data-qa=\"input-hint\">\n <Text Element=\"span\" typography={size === 'small' ? 'label-4-regular' : 'label-3-regular'}>\n <span ref={hintRef}>{hint}</span>\n </Text>\n </div>\n )}\n </div>\n {(buttonIcon || showClearButton) && (\n <div className={styles.rightContainer}>\n {(buttonIcon || showClearButton) && (\n <Action\n data-qa={buttonQaLabel}\n mode=\"secondary\"\n onMouseDown={(event) => event.preventDefault()} // чтобы инпут не терял фокус\n onClick={showClearButton ? clearClickHandler : (onButtonClick as () => void)}\n icon={\n showClearButton\n ? (size === 'small' && CrossOutlinedSize16) || CrossOutlinedSize24\n : (buttonIcon as IconWrapperComponentSize16 | IconWrapperComponentSize24)\n }\n disabled={isComponentDisabled}\n ref={buttonRef}\n />\n )}\n </div>\n )}\n </div>\n <FormHelper\n description={description}\n errorMessage={errorMessage}\n descriptionId={ariaProps['aria-describedby']}\n disabled={isComponentDisabled}\n invalid={invalid}\n />\n </div>\n );\n};\n\nconst BaseInput = forwardRef(BaseInputForwardRefRenderFunc);\n\nBaseInput.displayName = 'BaseInput';\n\nexport { BaseInput };\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
|
package/DateTimeInput.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export declare const DateTimeInput: import("react").ForwardRefExoticComponent<import("@hh.ru/magritte-ui-input/types").InputBaseProps & {
|
|
3
|
+
dateMask?: import("@hh.ru/magritte-ui-input/types").DateInputMask;
|
|
4
|
+
timeMask?: boolean;
|
|
5
|
+
timeRounding?: import("@hh.ru/magritte-ui-input/types").TimeInputRounding;
|
|
6
|
+
onButtonClick?: (event: import("react").MouseEvent<HTMLButtonElement, MouseEvent>) => void;
|
|
7
|
+
hideMask?: boolean;
|
|
8
|
+
} & import("@hh.ru/magritte-ui-input/types").ControlledProps & Omit<InputHTMLAttributes<HTMLInputElement>, "onButtonClick" | keyof import("@hh.ru/magritte-ui-input/types").InputBaseProps | keyof import("@hh.ru/magritte-ui-input/types").ControlledProps | "dateMask" | "timeMask" | "timeRounding" | "hideMask"> & import("react").RefAttributes<HTMLInputElement>>;
|
package/DateTimeInput.js
CHANGED
|
@@ -2,7 +2,7 @@ import './index.css';
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef, useMemo } from 'react';
|
|
4
4
|
import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
|
|
5
|
-
import { ClockOutlinedSize24, CalendarOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
5
|
+
import { ClockOutlinedSize16, CalendarOutlinedSize16, ClockOutlinedSize24, CalendarOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
6
6
|
import { BaseInput } from './BaseInput.js';
|
|
7
7
|
import { useDateTimeMask } from './useDateTimeMask.js';
|
|
8
8
|
import 'classnames';
|
|
@@ -14,24 +14,24 @@ import '@hh.ru/magritte-ui-form-helper';
|
|
|
14
14
|
import './useFocus.js';
|
|
15
15
|
import './useInputAriaProps.js';
|
|
16
16
|
import '@hh.ru/magritte-ui-typography';
|
|
17
|
-
import './index.esm-
|
|
17
|
+
import './index.esm-CsQvPcoh.js';
|
|
18
18
|
|
|
19
|
-
const DateTimeInput = forwardRef(({ dateMask, timeMask, timeRounding, onButtonClick, hideMask, ...
|
|
19
|
+
const DateTimeInput = forwardRef(({ dateMask, timeMask, timeRounding, onButtonClick, hideMask, size, ...props }, ref) => {
|
|
20
20
|
const maskedInputRef = useDateTimeMask(dateMask, timeMask, timeRounding);
|
|
21
21
|
const inputRef = useMultipleRefs(maskedInputRef, ref);
|
|
22
22
|
const onBlur = dateMask === 'dd'
|
|
23
|
-
? (
|
|
24
|
-
if (
|
|
25
|
-
if (
|
|
26
|
-
|
|
23
|
+
? (event) => {
|
|
24
|
+
if (props.value.length === 1) {
|
|
25
|
+
if (props.value === '0') {
|
|
26
|
+
props.onChange('');
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
|
|
29
|
+
props.onChange(props.value.padStart(2, '0'));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
props.onBlur?.(event);
|
|
33
33
|
}
|
|
34
|
-
:
|
|
34
|
+
: props.onBlur;
|
|
35
35
|
const maskedPlaceholder = useMemo(() => {
|
|
36
36
|
if (hideMask) {
|
|
37
37
|
return undefined;
|
|
@@ -45,9 +45,17 @@ const DateTimeInput = forwardRef(({ dateMask, timeMask, timeRounding, onButtonCl
|
|
|
45
45
|
}
|
|
46
46
|
return parts.join(', ');
|
|
47
47
|
}, [dateMask, timeMask, hideMask]);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
return (jsx(BaseInput, { type: "text", inputMode: "decimal", fixedPlaceholder: maskedPlaceholder, ...props, ...((onButtonClick &&
|
|
49
|
+
(size === 'small'
|
|
50
|
+
? {
|
|
51
|
+
buttonIcon: timeMask && !dateMask ? ClockOutlinedSize16 : CalendarOutlinedSize16,
|
|
52
|
+
onButtonClick,
|
|
53
|
+
}
|
|
54
|
+
: {
|
|
55
|
+
buttonIcon: timeMask && !dateMask ? ClockOutlinedSize24 : CalendarOutlinedSize24,
|
|
56
|
+
onButtonClick,
|
|
57
|
+
})) ??
|
|
58
|
+
{}), ref: inputRef, size: size, autoComplete: "off", onBlur: onBlur }));
|
|
51
59
|
});
|
|
52
60
|
DateTimeInput.displayName = 'DateTimeInput';
|
|
53
61
|
|
package/DateTimeInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeInput.js","sources":["../src/DateTimeInput.tsx"],"sourcesContent":["import { InputHTMLAttributes, forwardRef, useMemo, FocusEventHandler } from 'react';\n\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport {
|
|
1
|
+
{"version":3,"file":"DateTimeInput.js","sources":["../src/DateTimeInput.tsx"],"sourcesContent":["import { InputHTMLAttributes, forwardRef, useMemo, FocusEventHandler } from 'react';\n\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport {\n CalendarOutlinedSize16,\n ClockOutlinedSize16,\n CalendarOutlinedSize24,\n ClockOutlinedSize24,\n} from '@hh.ru/magritte-ui-icon/icon';\nimport { BaseInput } from '@hh.ru/magritte-ui-input/BaseInput';\nimport { ControlledDateTimeInputProps } from '@hh.ru/magritte-ui-input/types';\nimport { useDateTimeMask } from '@hh.ru/magritte-ui-input/useDateTimeMask';\n\nexport const DateTimeInput = forwardRef<\n HTMLInputElement,\n ControlledDateTimeInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, keyof ControlledDateTimeInputProps>\n>(({ dateMask, timeMask, timeRounding, onButtonClick, hideMask, size, ...props }, ref) => {\n const maskedInputRef = useDateTimeMask(dateMask, timeMask, timeRounding);\n const inputRef = useMultipleRefs(maskedInputRef, ref);\n\n const onBlur: FocusEventHandler<HTMLInputElement> | undefined =\n dateMask === 'dd'\n ? (event) => {\n if (props.value.length === 1) {\n if (props.value === '0') {\n props.onChange('');\n } else {\n props.onChange(props.value.padStart(2, '0'));\n }\n }\n props.onBlur?.(event);\n }\n : props.onBlur;\n\n const maskedPlaceholder = useMemo(() => {\n if (hideMask) {\n return undefined;\n }\n const parts = [];\n\n if (dateMask) {\n parts.push(dateMask.replace(/d/g, 'Д').replace(/m/g, 'М').replace(/y/g, 'Г'));\n }\n if (timeMask) {\n parts.push('00:00');\n }\n\n return parts.join(', ');\n }, [dateMask, timeMask, hideMask]);\n\n return (\n <BaseInput\n type=\"text\"\n inputMode=\"decimal\"\n fixedPlaceholder={maskedPlaceholder}\n {...props}\n {...((onButtonClick &&\n (size === 'small'\n ? {\n buttonIcon: timeMask && !dateMask ? ClockOutlinedSize16 : CalendarOutlinedSize16,\n onButtonClick,\n }\n : {\n buttonIcon: timeMask && !dateMask ? ClockOutlinedSize24 : CalendarOutlinedSize24,\n onButtonClick,\n })) ??\n {})}\n ref={inputRef}\n size={size}\n autoComplete=\"off\"\n onBlur={onBlur}\n />\n );\n});\n\nDateTimeInput.displayName = 'DateTimeInput';\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;AAaa,MAAA,aAAa,GAAG,UAAU,CAGrC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACrF,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AAEtD,IAAA,MAAM,MAAM,GACR,QAAQ,KAAK,IAAI;AACb,UAAE,CAAC,KAAK,KAAI;YACN,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,gBAAA,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,EAAE;AACrB,oBAAA,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACtB;qBAAM;AACH,oBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;iBAChD;aACJ;AACD,YAAA,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;SACzB;AACH,UAAE,KAAK,CAAC,MAAM,CAAC;AAEvB,IAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAK;QACnC,IAAI,QAAQ,EAAE;AACV,YAAA,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,IAAI,QAAQ,EAAE;YACV,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACjF;QACD,IAAI,QAAQ,EAAE;AACV,YAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACvB;AAED,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnC,QACIA,IAAC,SAAS,EAAA,EACN,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,SAAS,EACnB,gBAAgB,EAAE,iBAAiB,EAAA,GAC/B,KAAK,EACL,IAAC,CAAC,aAAa;aACd,IAAI,KAAK,OAAO;AACb,kBAAE;AACI,oBAAA,UAAU,EAAE,QAAQ,IAAI,CAAC,QAAQ,GAAG,mBAAmB,GAAG,sBAAsB;oBAChF,aAAa;AAChB,iBAAA;AACH,kBAAE;AACI,oBAAA,UAAU,EAAE,QAAQ,IAAI,CAAC,QAAQ,GAAG,mBAAmB,GAAG,sBAAsB;oBAChF,aAAa;AAChB,iBAAA,CAAC;AACR,YAAA,EAAE,GACN,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,IAAI,EACV,YAAY,EAAC,KAAK,EAClB,MAAM,EAAE,MAAM,EAAA,CAChB,EACJ;AACN,CAAC,EAAE;AAEH,aAAa,CAAC,WAAW,GAAG,eAAe;;;;"}
|
package/Input.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
2
|
import { ControlledInputProps } from '@hh.ru/magritte-ui-input/types';
|
|
3
|
-
declare const Input: import("react").ForwardRefExoticComponent<(ControlledInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
3
|
+
declare const Input: import("react").ForwardRefExoticComponent<(ControlledInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "hint" | "showHintAlways" | "clearable" | "clearableOnFocus" | "buttonIcon" | "onButtonClick" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value">) & import("react").RefAttributes<HTMLInputElement>>;
|
|
4
4
|
export { Input };
|
package/NumberInput.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
2
|
import { ControlledNumberInputProps } from '@hh.ru/magritte-ui-input/types';
|
|
3
|
-
export declare const NumberInput: import("react").ForwardRefExoticComponent<(ControlledNumberInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
3
|
+
export declare const NumberInput: import("react").ForwardRefExoticComponent<(ControlledNumberInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "hint" | "showHintAlways" | "clearable" | "clearableOnFocus" | "buttonIcon" | "onButtonClick" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value" | "groupSeparator" | "decimalMark" | "groupSize" | "decimalLength" | "allowNegative">) & import("react").RefAttributes<HTMLInputElement>>;
|
package/PasswordInput.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export declare const PasswordInput: import("react").ForwardRefExoticComponent<import("@hh.ru/magritte-ui-input/types").InputBaseProps & import("@hh.ru/magritte-ui-input/types").InputWithHintProps & {
|
|
3
|
+
type?: never;
|
|
4
|
+
clearable?: never;
|
|
5
|
+
} & import("@hh.ru/magritte-ui-input/types").ControlledProps & Omit<InputHTMLAttributes<HTMLInputElement>, "hint" | "showHintAlways" | "clearable" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value" | "type"> & import("react").RefAttributes<HTMLInputElement>>;
|
package/PasswordInput.js
CHANGED
|
@@ -3,7 +3,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { forwardRef, useState, useCallback, useRef } from 'react';
|
|
4
4
|
import { Selection } from '@hh.ru/magritte-common-text-selection';
|
|
5
5
|
import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
|
|
6
|
-
import { EyeCrossedOutlinedSize24, EyeOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
6
|
+
import { EyeCrossedOutlinedSize16, EyeOutlinedSize16, EyeCrossedOutlinedSize24, EyeOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
7
7
|
import { Input } from './Input.js';
|
|
8
8
|
import './BaseInput.js';
|
|
9
9
|
import 'classnames';
|
|
@@ -15,7 +15,7 @@ import './useFocus.js';
|
|
|
15
15
|
import './useInputAriaProps.js';
|
|
16
16
|
import '@hh.ru/magritte-ui-typography';
|
|
17
17
|
|
|
18
|
-
const PasswordInput = forwardRef(({ onFocus, ...
|
|
18
|
+
const PasswordInput = forwardRef(({ onFocus, size, ...props }, ref) => {
|
|
19
19
|
const [typePassword, setTypePassword] = useState(true);
|
|
20
20
|
const clickHandler = useCallback(() => {
|
|
21
21
|
setTypePassword((typePassword) => !typePassword);
|
|
@@ -28,7 +28,9 @@ const PasswordInput = forwardRef(({ onFocus, ...restProps }, ref) => {
|
|
|
28
28
|
}
|
|
29
29
|
onFocus && onFocus(event);
|
|
30
30
|
}, [onFocus, inputRef]);
|
|
31
|
-
return (jsx(Input, { ...
|
|
31
|
+
return (jsx(Input, { ...props, size: size, buttonIcon: size === 'small'
|
|
32
|
+
? (typePassword && EyeCrossedOutlinedSize16) || EyeOutlinedSize16
|
|
33
|
+
: (typePassword && EyeCrossedOutlinedSize24) || EyeOutlinedSize24, buttonDataQa: "password-visibility-switch-button", onFocus: focusHandler, type: typePassword ? 'password' : 'text', onButtonClick: clickHandler, ref: inputRefCallback }));
|
|
32
34
|
});
|
|
33
35
|
PasswordInput.displayName = 'PasswordInput';
|
|
34
36
|
|
package/PasswordInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordInput.js","sources":["../src/PasswordInput.tsx"],"sourcesContent":["import { forwardRef, useCallback, useState, InputHTMLAttributes, FocusEventHandler, useRef } from 'react';\n\nimport { Selection } from '@hh.ru/magritte-common-text-selection';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport {
|
|
1
|
+
{"version":3,"file":"PasswordInput.js","sources":["../src/PasswordInput.tsx"],"sourcesContent":["import { forwardRef, useCallback, useState, InputHTMLAttributes, FocusEventHandler, useRef } from 'react';\n\nimport { Selection } from '@hh.ru/magritte-common-text-selection';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport {\n EyeOutlinedSize16,\n EyeCrossedOutlinedSize16,\n EyeOutlinedSize24,\n EyeCrossedOutlinedSize24,\n} from '@hh.ru/magritte-ui-icon/icon';\nimport { Input } from '@hh.ru/magritte-ui-input/Input';\nimport { ControlledPasswordInputProps } from '@hh.ru/magritte-ui-input/types';\n\nexport const PasswordInput = forwardRef<\n HTMLInputElement,\n ControlledPasswordInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, keyof ControlledPasswordInputProps>\n>(({ onFocus, size, ...props }, ref) => {\n const [typePassword, setTypePassword] = useState(true);\n const clickHandler = useCallback(() => {\n setTypePassword((typePassword) => !typePassword);\n }, [setTypePassword]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputRefCallback = useMultipleRefs(ref, inputRef);\n\n const focusHandler = useCallback<FocusEventHandler<HTMLInputElement>>(\n (event) => {\n if (inputRef.current) {\n Selection.set(inputRef.current, 0, inputRef.current.value.length, 'forward');\n }\n onFocus && onFocus(event);\n },\n [onFocus, inputRef]\n );\n\n return (\n <Input\n {...props}\n size={size}\n buttonIcon={\n size === 'small'\n ? (typePassword && EyeCrossedOutlinedSize16) || EyeOutlinedSize16\n : (typePassword && EyeCrossedOutlinedSize24) || EyeOutlinedSize24\n }\n buttonDataQa=\"password-visibility-switch-button\"\n onFocus={focusHandler}\n type={typePassword ? 'password' : 'text'}\n onButtonClick={clickHandler}\n ref={inputRefCallback}\n />\n );\n});\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;AAaa,MAAA,aAAa,GAAG,UAAU,CAGrC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACnC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvD,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,MAAK;QAClC,eAAe,CAAC,CAAC,YAAY,KAAK,CAAC,YAAY,CAAC,CAAC;AACrD,KAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAEtB,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAExD,IAAA,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,KAAK,KAAI;AACN,QAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SAChF;AACD,QAAA,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAC,EACD,CAAC,OAAO,EAAE,QAAQ,CAAC,CACtB,CAAC;AAEF,IAAA,QACIA,GAAA,CAAC,KAAK,EAAA,EAAA,GACE,KAAK,EACT,IAAI,EAAE,IAAI,EACV,UAAU,EACN,IAAI,KAAK,OAAO;AACZ,cAAE,CAAC,YAAY,IAAI,wBAAwB,KAAK,iBAAiB;AACjE,cAAE,CAAC,YAAY,IAAI,wBAAwB,KAAK,iBAAiB,EAEzE,YAAY,EAAC,mCAAmC,EAChD,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,EACxC,aAAa,EAAE,YAAY,EAC3B,GAAG,EAAE,gBAAgB,EAAA,CACvB,EACJ;AACN,CAAC,EAAE;AAEH,aAAa,CAAC,WAAW,GAAG,eAAe;;;;"}
|
package/SearchInput.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
2
|
import { ControlledSearchInputProps } from '@hh.ru/magritte-ui-input/types';
|
|
3
|
-
export declare const SearchInput: import("react").ForwardRefExoticComponent<(ControlledSearchInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
3
|
+
export declare const SearchInput: import("react").ForwardRefExoticComponent<(ControlledSearchInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "clearable" | "clearableOnFocus" | "buttonIcon" | "onButtonClick" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value" | "type">) & import("react").RefAttributes<HTMLInputElement>>;
|
package/SearchInput.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
|
-
import { MagnifierOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
4
|
+
import { MagnifierOutlinedSize16, MagnifierOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
5
5
|
import { BaseInput } from './BaseInput.js';
|
|
6
6
|
import 'classnames';
|
|
7
7
|
import '@hh.ru/magritte-common-mouse';
|
|
@@ -14,8 +14,8 @@ import './useFocus.js';
|
|
|
14
14
|
import './useInputAriaProps.js';
|
|
15
15
|
import '@hh.ru/magritte-ui-typography';
|
|
16
16
|
|
|
17
|
-
const SearchInput = forwardRef((props, ref) => {
|
|
18
|
-
return jsx(BaseInput, { ...props, elevatePlaceholder: false, inputIcon: MagnifierOutlinedSize24, ref: ref });
|
|
17
|
+
const SearchInput = forwardRef(({ size, ...props }, ref) => {
|
|
18
|
+
return (jsx(BaseInput, { ...props, elevatePlaceholder: false, inputIcon: size === 'small' ? MagnifierOutlinedSize16 : MagnifierOutlinedSize24, ref: ref, size: size }));
|
|
19
19
|
});
|
|
20
20
|
SearchInput.displayName = 'SearchInput';
|
|
21
21
|
|
package/SearchInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.js","sources":["../src/SearchInput.tsx"],"sourcesContent":["import { forwardRef, InputHTMLAttributes } from 'react';\n\nimport { MagnifierOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { BaseInput } from '@hh.ru/magritte-ui-input/BaseInput';\nimport { ControlledSearchInputProps } from '@hh.ru/magritte-ui-input/types';\n\nexport const SearchInput = forwardRef<\n HTMLInputElement,\n ControlledSearchInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, keyof ControlledSearchInputProps>\n>((props, ref) => {\n return <BaseInput
|
|
1
|
+
{"version":3,"file":"SearchInput.js","sources":["../src/SearchInput.tsx"],"sourcesContent":["import { forwardRef, InputHTMLAttributes } from 'react';\n\nimport { MagnifierOutlinedSize16, MagnifierOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { BaseInput } from '@hh.ru/magritte-ui-input/BaseInput';\nimport { ControlledSearchInputProps } from '@hh.ru/magritte-ui-input/types';\n\nexport const SearchInput = forwardRef<\n HTMLInputElement,\n ControlledSearchInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, keyof ControlledSearchInputProps>\n>(({ size, ...props }, ref) => {\n return (\n <BaseInput\n {...props}\n elevatePlaceholder={false}\n inputIcon={size === 'small' ? MagnifierOutlinedSize16 : MagnifierOutlinedSize24}\n ref={ref}\n size={size}\n />\n );\n});\n\nSearchInput.displayName = 'SearchInput';\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;AAMa,MAAA,WAAW,GAAG,UAAU,CAGnC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1B,IAAA,QACIA,GAAA,CAAC,SAAS,EAAA,EAAA,GACF,KAAK,EACT,kBAAkB,EAAE,KAAK,EACzB,SAAS,EAAE,IAAI,KAAK,OAAO,GAAG,uBAAuB,GAAG,uBAAuB,EAC/E,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EAAA,CACZ,EACJ;AACN,CAAC,EAAE;AAEH,WAAW,CAAC,WAAW,GAAG,aAAa;;;;"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export declare const UncontrolledDateTimeInput: import("react").ForwardRefExoticComponent<import("@hh.ru/magritte-ui-input/types").InputBaseProps & {
|
|
3
|
+
dateMask?: import("@hh.ru/magritte-ui-input/types").DateInputMask;
|
|
4
|
+
timeMask?: boolean;
|
|
5
|
+
timeRounding?: import("@hh.ru/magritte-ui-input/types").TimeInputRounding;
|
|
6
|
+
onButtonClick?: (event: import("react").MouseEvent<HTMLButtonElement, MouseEvent>) => void;
|
|
7
|
+
hideMask?: boolean;
|
|
8
|
+
} & Partial<import("@hh.ru/magritte-ui-input/types").ControlledProps> & Omit<InputHTMLAttributes<HTMLInputElement>, "onButtonClick" | keyof import("@hh.ru/magritte-ui-input/types").InputBaseProps | keyof import("@hh.ru/magritte-ui-input/types").ControlledProps | "dateMask" | "timeMask" | "timeRounding" | "hideMask"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -16,7 +16,7 @@ import './useFocus.js';
|
|
|
16
16
|
import './useInputAriaProps.js';
|
|
17
17
|
import '@hh.ru/magritte-ui-typography';
|
|
18
18
|
import './useDateTimeMask.js';
|
|
19
|
-
import './index.esm-
|
|
19
|
+
import './index.esm-CsQvPcoh.js';
|
|
20
20
|
|
|
21
21
|
const UncontrolledDateTimeInput = forwardRef(({ value, onChange, ...restProps }, ref) => {
|
|
22
22
|
const [currentValue, changeHandler] = useUncontrolledInput(value, onChange);
|
package/UncontrolledInput.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
2
|
import { UncontrolledInputProps } from '@hh.ru/magritte-ui-input/types';
|
|
3
|
-
export declare const UncontrolledInput: import("react").ForwardRefExoticComponent<(UncontrolledInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
3
|
+
export declare const UncontrolledInput: import("react").ForwardRefExoticComponent<(UncontrolledInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "hint" | "showHintAlways" | "clearable" | "clearableOnFocus" | "buttonIcon" | "onButtonClick" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value">) & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
2
|
import { UncontrolledNumberInputProps } from '@hh.ru/magritte-ui-input/types';
|
|
3
|
-
export declare const UncontrolledNumberInput: import("react").ForwardRefExoticComponent<(UncontrolledNumberInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
3
|
+
export declare const UncontrolledNumberInput: import("react").ForwardRefExoticComponent<(UncontrolledNumberInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "hint" | "showHintAlways" | "clearable" | "clearableOnFocus" | "buttonIcon" | "onButtonClick" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value" | "groupSeparator" | "decimalMark" | "groupSize" | "decimalLength" | "allowNegative">) & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export declare const UncontrolledPasswordInput: import("react").ForwardRefExoticComponent<import("@hh.ru/magritte-ui-input/types").InputBaseProps & import("@hh.ru/magritte-ui-input/types").InputWithHintProps & {
|
|
3
|
+
type?: never;
|
|
4
|
+
clearable?: never;
|
|
5
|
+
} & Partial<import("@hh.ru/magritte-ui-input/types").ControlledProps> & Omit<InputHTMLAttributes<HTMLInputElement>, "hint" | "showHintAlways" | "clearable" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value" | "type"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
2
|
import { UncontrolledSearchInputProps } from '@hh.ru/magritte-ui-input/types';
|
|
3
|
-
export declare const UncontrolledSearchInput: import("react").ForwardRefExoticComponent<(UncontrolledSearchInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
3
|
+
export declare const UncontrolledSearchInput: import("react").ForwardRefExoticComponent<(UncontrolledSearchInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "clearable" | "clearableOnFocus" | "buttonIcon" | "onButtonClick" | "invalid" | "placeholder" | "postfix" | "onFocus" | "onBlur" | "description" | "errorMessage" | "disabled" | "formatter" | "buttonDataQa" | "buttonRef" | "wrapperRef" | "maxLength" | "size" | "elevatePlaceholder" | "onChange" | "value" | "type">) & import("react").RefAttributes<HTMLInputElement>>;
|