@alfalab/core-components-input-autocomplete 14.0.6 → 14.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/autocomplete-field/Component.js +9 -19
  2. package/autocomplete-field/Component.js.map +1 -1
  3. package/autocomplete-field/index.css +1 -1
  4. package/autocomplete-field/index.module.css.js +1 -1
  5. package/autocomplete-mobile-field/Component.js +10 -35
  6. package/autocomplete-mobile-field/Component.js.map +1 -1
  7. package/autocomplete-mobile-field/index.css +10 -10
  8. package/autocomplete-mobile-field/index.module.css.js +1 -1
  9. package/cssm/autocomplete-field/Component.js +9 -19
  10. package/cssm/autocomplete-field/Component.js.map +1 -1
  11. package/cssm/autocomplete-mobile-field/Component.js +13 -38
  12. package/cssm/autocomplete-mobile-field/Component.js.map +1 -1
  13. package/esm/autocomplete-field/Component.js +10 -20
  14. package/esm/autocomplete-field/Component.js.map +1 -1
  15. package/esm/autocomplete-field/index.css +1 -1
  16. package/esm/autocomplete-field/index.module.css.js +1 -1
  17. package/esm/autocomplete-mobile-field/Component.js +12 -37
  18. package/esm/autocomplete-mobile-field/Component.js.map +1 -1
  19. package/esm/autocomplete-mobile-field/index.css +10 -10
  20. package/esm/autocomplete-mobile-field/index.module.css.js +1 -1
  21. package/esm/mobile/mobile.css +1 -1
  22. package/esm/mobile/mobile.module.css.js +1 -1
  23. package/mobile/mobile.css +1 -1
  24. package/mobile/mobile.module.css.js +1 -1
  25. package/modern/autocomplete-field/Component.js +7 -17
  26. package/modern/autocomplete-field/Component.js.map +1 -1
  27. package/modern/autocomplete-field/index.css +1 -1
  28. package/modern/autocomplete-field/index.module.css.js +1 -1
  29. package/modern/autocomplete-mobile-field/Component.js +12 -37
  30. package/modern/autocomplete-mobile-field/Component.js.map +1 -1
  31. package/modern/autocomplete-mobile-field/index.css +10 -10
  32. package/modern/autocomplete-mobile-field/index.module.css.js +1 -1
  33. package/modern/mobile/mobile.css +1 -1
  34. package/modern/mobile/mobile.module.css.js +1 -1
  35. package/moderncssm/autocomplete-field/Component.js +7 -17
  36. package/moderncssm/autocomplete-field/Component.js.map +1 -1
  37. package/moderncssm/autocomplete-mobile-field/Component.js +12 -37
  38. package/moderncssm/autocomplete-mobile-field/Component.js.map +1 -1
  39. package/package.json +5 -5
  40. package/src/autocomplete-field/Component.tsx +9 -16
  41. package/src/autocomplete-mobile-field/Component.tsx +17 -37
@@ -7,7 +7,6 @@ var React = require('react');
7
7
  var mergeRefs = require('react-merge-refs');
8
8
  var cn = require('classnames');
9
9
  var desktop = require('@alfalab/core-components-input/desktop');
10
- var getAddonsByPriority = require('@alfalab/core-components-input/helpers/get-addons-by-priority');
11
10
  var enums = require('../enums.js');
12
11
  var index_module = require('./index.module.css.js');
13
12
 
@@ -40,27 +39,18 @@ var AutocompleteField = function (_a) {
40
39
  * [1] - Indicators (eye, calendar, chevron, stepper e.g.)
41
40
  * [0] - Lock
42
41
  */
43
- var rightAddonsMap = getAddonsByPriority.getAddonsByPriority([
44
- {
45
- priority: 2,
46
- predicate: Boolean(inputProps.rightAddons),
47
- render: function () { return inputProps.rightAddons; },
48
- },
49
- {
50
- priority: 1,
51
- predicate: Boolean(Arrow) && !inputDisabled,
52
- render: function () {
53
- var _a;
54
- return (React__default.default.createElement("span", { className: cn__default.default(index_module.arrow, (_a = {},
55
- _a[index_module.error] = error,
56
- _a)) }, Arrow));
57
- },
58
- },
59
- ]);
42
+ var renderRightAddons = function () {
43
+ var _a;
44
+ return (React__default.default.createElement(React.Fragment, null,
45
+ inputProps.rightAddons,
46
+ Arrow && !inputDisabled && (React__default.default.createElement("span", { className: cn__default.default(index_module.arrow, (_a = {},
47
+ _a[index_module.error] = error,
48
+ _a)) }, Arrow))));
49
+ };
60
50
  return (React__default.default.createElement(Input, tslib.__assign({ dataTestId: dataTestId }, inputProps, innerProps, { wrapperRef: mergeRefs__default.default([
61
51
  innerProps.ref,
62
52
  inputProps.wrapperRef,
63
- ]), ref: mergeRefs__default.default([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, labelView: labelView, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: handleInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: rightAddonsMap })));
53
+ ]), ref: mergeRefs__default.default([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, labelView: labelView, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: handleInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: renderRightAddons() })));
64
54
  };
65
55
 
66
56
  exports.AutocompleteField = AutocompleteField;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/autocomplete-field/Component.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop as DefaultInput } from '@alfalab/core-components-input/desktop';\nimport { getAddonsByPriority } from '@alfalab/core-components-input/helpers/get-addons-by-priority';\nimport { type FieldProps } from '@alfalab/core-components-select/shared';\n\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nimport styles from './index.module.css';\n\nexport type AutocompleteFieldProps = FieldProps &\n Pick<InputAutocompleteCommonProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;\n\nexport const AutocompleteField = ({\n label,\n labelView = 'inner',\n placeholder,\n size,\n Arrow,\n Input = DefaultInput,\n value,\n error,\n success,\n hint,\n disabled,\n readOnly,\n onInput,\n inputProps = {},\n innerProps,\n dataTestId,\n}: AutocompleteFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { onClick, onFocus } = innerProps;\n\n const inputDisabled = disabled || readOnly;\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event);\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n [onClick],\n );\n\n const handleInput: InputProps['onChange'] = (_, payload) =>\n onInput?.(payload.value, OnInputReason.Change);\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const rightAddonsMap = getAddonsByPriority([\n {\n priority: 2,\n predicate: Boolean(inputProps.rightAddons),\n render: () => inputProps.rightAddons,\n },\n {\n priority: 1,\n predicate: Boolean(Arrow) && !inputDisabled,\n render: () => (\n <span\n className={cn(styles.arrow, {\n [styles.error]: error,\n })}\n >\n {Arrow}\n </span>\n ),\n },\n ]);\n\n return (\n <Input\n dataTestId={dataTestId}\n {...inputProps}\n {...innerProps}\n wrapperRef={mergeRefs([\n innerProps.ref as React.Ref<HTMLElement>,\n inputProps.wrapperRef as React.Ref<HTMLElement>,\n ])}\n ref={mergeRefs([inputRef, inputProps.ref as React.Ref<HTMLElement>])}\n disabled={disabled}\n readOnly={readOnly}\n block={true}\n label={label}\n labelView={labelView}\n placeholder={placeholder}\n size={size}\n error={error}\n success={success}\n hint={hint}\n onChange={handleInput}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : onFocus}\n autoComplete='off'\n value={value}\n rightAddons={rightAddonsMap}\n />\n );\n};\n"],"names":["DefaultInput","useRef","useCallback","OnInputReason","getAddonsByPriority","React","cn","styles","__assign","mergeRefs"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../src/autocomplete-field/Component.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop as DefaultInput } from '@alfalab/core-components-input/desktop';\nimport { type FieldProps } from '@alfalab/core-components-select/shared';\n\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nimport styles from './index.module.css';\n\nexport type AutocompleteFieldProps = FieldProps &\n Pick<InputAutocompleteCommonProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;\n\nexport const AutocompleteField = ({\n label,\n labelView = 'inner',\n placeholder,\n size,\n Arrow,\n Input = DefaultInput,\n value,\n error,\n success,\n hint,\n disabled,\n readOnly,\n onInput,\n inputProps = {},\n innerProps,\n dataTestId,\n}: AutocompleteFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { onClick, onFocus } = innerProps;\n\n const inputDisabled = disabled || readOnly;\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event);\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n [onClick],\n );\n\n const handleInput: InputProps['onChange'] = (_, payload) =>\n onInput?.(payload.value, OnInputReason.Change);\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const renderRightAddons = () => (\n <Fragment>\n {inputProps.rightAddons}\n {Arrow && !inputDisabled && (\n <span\n className={cn(styles.arrow, {\n [styles.error]: error,\n })}\n >\n {Arrow}\n </span>\n )}\n </Fragment>\n );\n\n return (\n <Input\n dataTestId={dataTestId}\n {...inputProps}\n {...innerProps}\n wrapperRef={mergeRefs([\n innerProps.ref as React.Ref<HTMLElement>,\n inputProps.wrapperRef as React.Ref<HTMLElement>,\n ])}\n ref={mergeRefs([inputRef, inputProps.ref as React.Ref<HTMLElement>])}\n disabled={disabled}\n readOnly={readOnly}\n block={true}\n label={label}\n labelView={labelView}\n placeholder={placeholder}\n size={size}\n error={error}\n success={success}\n hint={hint}\n onChange={handleInput}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : onFocus}\n autoComplete='off'\n value={value}\n rightAddons={renderRightAddons()}\n />\n );\n};\n"],"names":["DefaultInput","useRef","useCallback","OnInputReason","React","Fragment","cn","styles","__assign","mergeRefs"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- .input-autocomplete__arrow_1fepc.input-autocomplete__error_1fepc ~ * {
1
+ .input-autocomplete__arrow_1vetf.input-autocomplete__error_1vetf ~ * {
2
2
  display: none;
3
3
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"arrow":"input-autocomplete__arrow_1fepc","error":"input-autocomplete__error_1fepc"};
5
+ var styles = {"arrow":"input-autocomplete__arrow_1vetf","error":"input-autocomplete__error_1vetf"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -36,47 +36,22 @@ var AutocompleteMobileField = function (_a) {
36
36
  * [1] - Indicators (eye, calendar, chevron, stepper e.g.)
37
37
  * [0] - Lock
38
38
  */
39
- var rightAddonsMap = shared.getAddonsByPriority([
40
- {
41
- priority: 4,
42
- predicate: clear && filled && !disabled && !readOnly,
43
- render: function () { return React__default.default.createElement(shared.ClearButton, { onClick: onClear, disabled: disabled, colors: colors }); },
44
- },
45
- {
46
- priority: 3,
47
- predicate: Boolean(error),
48
- render: function () { return (React__default.default.createElement("div", { className: index_module.errorIcon, "data-addon": 'error-icon' },
49
- React__default.default.createElement(coreComponentsStatusBadge.StatusBadge, { view: 'negative-alert', size: statusBadgeSize, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'error-icon') }))); },
50
- },
51
- {
52
- priority: 3,
53
- predicate: Boolean(success && !error),
54
- render: function () { return (React__default.default.createElement("div", { className: index_module.successIcon },
55
- React__default.default.createElement(coreComponentsStatusBadge.StatusBadge, { view: 'positive-checkmark', size: statusBadgeSize, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'success-icon') }))); },
56
- },
57
- {
58
- priority: 2,
59
- predicate: Boolean(rightAddons),
60
- render: function () { return rightAddons; },
61
- },
62
- {
63
- priority: 1,
64
- predicate: Boolean(Arrow) && !disabled && !readOnly,
65
- render: function () { return Arrow; },
66
- },
67
- {
68
- priority: 0,
69
- predicate: Boolean(disabled || readOnly),
70
- render: function () { return React__default.default.createElement(shared.LockIcon, { colors: colors, size: size }); },
71
- },
72
- ]);
39
+ var renderRightAddons = function () { return (React__default.default.createElement(React.Fragment, null,
40
+ clear && filled && !disabled && !readOnly && (React__default.default.createElement(shared.ClearButton, { onClick: onClear, disabled: disabled, colors: colors })),
41
+ error && (React__default.default.createElement("div", { className: index_module.errorIcon, "data-addon": 'error-icon' },
42
+ React__default.default.createElement(coreComponentsStatusBadge.StatusBadge, { view: 'negative-alert', size: statusBadgeSize, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'error-icon') }))),
43
+ success && !error && (React__default.default.createElement("div", { className: index_module.successIcon },
44
+ React__default.default.createElement(coreComponentsStatusBadge.StatusBadge, { view: 'positive-checkmark', size: statusBadgeSize, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'success-icon') }))),
45
+ rightAddons,
46
+ !disabled && !readOnly && Arrow,
47
+ (disabled || readOnly) && React__default.default.createElement(shared.LockIcon, { colors: colors, size: size }))); };
73
48
  return (React__default.default.createElement("div", { className: index_module.component, ref: wrapperRef, onFocus: function () { return setFocused(true); }, onBlur: function () { return setFocused(false); } },
74
49
  React__default.default.createElement(mobile.FormControlMobile, tslib.__assign({ fieldClassName: cn__default.default(index_module.field, fieldClassName, (_b = {},
75
50
  _b[index_module.disabled] = disabled,
76
51
  _b[index_module.focusVisible] = focusVisible,
77
52
  _b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, labelView: labelView, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'form-control'),
78
53
  // downshift устанавливает фокус на таргет поле после выбора опции, не даем ему это сделать пока открыт список, иначе поле поиска будет терять фокус
79
- tabIndex: open ? undefined : tabIndex }, restProps, restInnerProps, { readOnly: readOnly, colors: colors, error: error, rightAddons: rightAddonsMap }),
54
+ tabIndex: open ? undefined : tabIndex }, restProps, restInnerProps, { readOnly: readOnly, colors: colors, error: error, rightAddons: renderRightAddons() }),
80
55
  React__default.default.createElement("div", { className: index_module.contentWrapper },
81
56
  showPlaceholder && React__default.default.createElement("span", { className: index_module.placeholder }, placeholder),
82
57
  filled && React__default.default.createElement("div", { className: index_module.value }, value)))));
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/autocomplete-mobile-field/Component.tsx"],"sourcesContent":["import React, { type ElementType, useRef, useState } from 'react';\nimport cn from 'classnames';\n\nimport {\n FormControlMobile,\n type FormControlMobileProps,\n} from '@alfalab/core-components-form-control/mobile';\nimport { ClearButton, getAddonsByPriority, LockIcon } from '@alfalab/core-components-input/shared';\nimport { type FieldProps as BaseFieldProps } from '@alfalab/core-components-select/shared';\nimport { getDataTestId } from '@alfalab/core-components-shared';\nimport { StatusBadge } from '@alfalab/core-components-status-badge';\nimport { useFocus } from '@alfalab/hooks';\n\nimport styles from './index.module.css';\n\ntype FieldProps = {\n /**\n * Компонент FormControl\n */\n FormControlComponent?: ElementType;\n};\n\nexport type AutocompleteMobileFieldProps = FormControlMobileProps &\n Omit<BaseFieldProps, 'selected' | 'multiple' | 'success'> & {\n /**\n * Значение поля ввода\n */\n value?: string;\n };\n\n// eslint-disable-next-line complexity\nexport const AutocompleteMobileField = ({\n size = 56,\n open,\n disabled,\n value,\n innerProps,\n dataTestId,\n fieldClassName,\n labelView = 'inner',\n placeholder,\n Arrow,\n valueRenderer,\n toggleMenu,\n setSelectedItems,\n selectedMultiple,\n FormControlComponent,\n rightAddons,\n error,\n readOnly,\n clear,\n success,\n onClear,\n onInput,\n colors = 'default',\n ...restProps\n}: AutocompleteMobileFieldProps & FieldProps) => {\n const [focused, setFocused] = useState(false);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const [focusVisible] = useFocus(wrapperRef, 'keyboard');\n\n const filled = Boolean(value);\n const showPlaceholder = placeholder && !filled && labelView === 'outer';\n\n const statusBadgeSize = size === 40 ? 16 : 20;\n\n const { tabIndex, ...restInnerProps } = innerProps;\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const rightAddonsMap = getAddonsByPriority([\n {\n priority: 4,\n predicate: clear && filled && !disabled && !readOnly,\n render: () => <ClearButton onClick={onClear} disabled={disabled} colors={colors} />,\n },\n {\n priority: 3,\n predicate: Boolean(error),\n render: () => (\n <div className={styles.errorIcon} data-addon='error-icon'>\n <StatusBadge\n view='negative-alert'\n size={statusBadgeSize}\n dataTestId={getDataTestId(dataTestId, 'error-icon')}\n />\n </div>\n ),\n },\n {\n priority: 3,\n predicate: Boolean(success && !error),\n render: () => (\n <div className={styles.successIcon}>\n <StatusBadge\n view='positive-checkmark'\n size={statusBadgeSize}\n dataTestId={getDataTestId(dataTestId, 'success-icon')}\n />\n </div>\n ),\n },\n {\n priority: 2,\n predicate: Boolean(rightAddons),\n render: () => rightAddons,\n },\n {\n priority: 1,\n predicate: Boolean(Arrow) && !disabled && !readOnly,\n render: () => Arrow,\n },\n {\n priority: 0,\n predicate: Boolean(disabled || readOnly),\n render: () => <LockIcon colors={colors} size={size} />,\n },\n ]);\n\n return (\n <div\n className={styles.component}\n ref={wrapperRef}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n >\n <FormControlMobile\n fieldClassName={cn(styles.field, fieldClassName, {\n [styles.disabled]: disabled,\n [styles.focusVisible]: focusVisible,\n })}\n block={true}\n size={size}\n focused={focused}\n disabled={disabled}\n filled={filled}\n labelView={labelView}\n dataTestId={getDataTestId(dataTestId, 'form-control')}\n // downshift устанавливает фокус на таргет поле после выбора опции, не даем ему это сделать пока открыт список, иначе поле поиска будет терять фокус\n tabIndex={open ? undefined : tabIndex}\n {...restProps}\n {...restInnerProps}\n readOnly={readOnly}\n colors={colors}\n error={error}\n rightAddons={rightAddonsMap}\n >\n <div className={styles.contentWrapper}>\n {showPlaceholder && <span className={styles.placeholder}>{placeholder}</span>}\n {filled && <div className={styles.value}>{value}</div>}\n </div>\n </FormControlMobile>\n </div>\n );\n};\n"],"names":["__rest","useState","useRef","useFocus","getAddonsByPriority","React","ClearButton","styles","StatusBadge","getDataTestId","LockIcon","FormControlMobile","__assign","cn"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../src/autocomplete-mobile-field/Component.tsx"],"sourcesContent":["import React, { type ElementType, Fragment, useRef, useState } from 'react';\nimport cn from 'classnames';\n\nimport {\n FormControlMobile,\n type FormControlMobileProps,\n} from '@alfalab/core-components-form-control/mobile';\nimport { ClearButton, LockIcon } from '@alfalab/core-components-input/shared';\nimport { type FieldProps as BaseFieldProps } from '@alfalab/core-components-select/shared';\nimport { getDataTestId } from '@alfalab/core-components-shared';\nimport { StatusBadge } from '@alfalab/core-components-status-badge';\nimport { useFocus } from '@alfalab/hooks';\n\nimport styles from './index.module.css';\n\ntype FieldProps = {\n /**\n * Компонент FormControl\n */\n FormControlComponent?: ElementType;\n};\n\nexport type AutocompleteMobileFieldProps = FormControlMobileProps &\n Omit<BaseFieldProps, 'selected' | 'multiple' | 'success'> & {\n /**\n * Значение поля ввода\n */\n value?: string;\n };\n\n// eslint-disable-next-line complexity\nexport const AutocompleteMobileField = ({\n size = 56,\n open,\n disabled,\n value,\n innerProps,\n dataTestId,\n fieldClassName,\n labelView = 'inner',\n placeholder,\n Arrow,\n valueRenderer,\n toggleMenu,\n setSelectedItems,\n selectedMultiple,\n FormControlComponent,\n rightAddons,\n error,\n readOnly,\n clear,\n success,\n onClear,\n onInput,\n colors = 'default',\n ...restProps\n}: AutocompleteMobileFieldProps & FieldProps) => {\n const [focused, setFocused] = useState(false);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const [focusVisible] = useFocus(wrapperRef, 'keyboard');\n\n const filled = Boolean(value);\n const showPlaceholder = placeholder && !filled && labelView === 'outer';\n\n const statusBadgeSize = size === 40 ? 16 : 20;\n\n const { tabIndex, ...restInnerProps } = innerProps;\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const renderRightAddons = () => (\n <Fragment>\n {clear && filled && !disabled && !readOnly && (\n <ClearButton onClick={onClear} disabled={disabled} colors={colors} />\n )}\n {error && (\n <div className={styles.errorIcon} data-addon='error-icon'>\n <StatusBadge\n view='negative-alert'\n size={statusBadgeSize}\n dataTestId={getDataTestId(dataTestId, 'error-icon')}\n />\n </div>\n )}\n {success && !error && (\n <div className={styles.successIcon}>\n <StatusBadge\n view='positive-checkmark'\n size={statusBadgeSize}\n dataTestId={getDataTestId(dataTestId, 'success-icon')}\n />\n </div>\n )}\n {rightAddons}\n {!disabled && !readOnly && Arrow}\n {(disabled || readOnly) && <LockIcon colors={colors} size={size} />}\n </Fragment>\n );\n\n return (\n <div\n className={styles.component}\n ref={wrapperRef}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n >\n <FormControlMobile\n fieldClassName={cn(styles.field, fieldClassName, {\n [styles.disabled]: disabled,\n [styles.focusVisible]: focusVisible,\n })}\n block={true}\n size={size}\n focused={focused}\n disabled={disabled}\n filled={filled}\n labelView={labelView}\n dataTestId={getDataTestId(dataTestId, 'form-control')}\n // downshift устанавливает фокус на таргет поле после выбора опции, не даем ему это сделать пока открыт список, иначе поле поиска будет терять фокус\n tabIndex={open ? undefined : tabIndex}\n {...restProps}\n {...restInnerProps}\n readOnly={readOnly}\n colors={colors}\n error={error}\n rightAddons={renderRightAddons()}\n >\n <div className={styles.contentWrapper}>\n {showPlaceholder && <span className={styles.placeholder}>{placeholder}</span>}\n {filled && <div className={styles.value}>{value}</div>}\n </div>\n </FormControlMobile>\n </div>\n );\n};\n"],"names":["__rest","useState","useRef","useFocus","React","Fragment","ClearButton","styles","StatusBadge","getDataTestId","LockIcon","FormControlMobile","__assign","cn"],"mappings":"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"}
@@ -15,29 +15,29 @@
15
15
  --input-success-icon-display: flex;
16
16
  --input-error-icon-not-alone-display: none;
17
17
  }
18
- .input-autocomplete__component_986i5 {
18
+ .input-autocomplete__component_1s96h {
19
19
  width: 100%;
20
20
  outline: none;
21
21
  }
22
- .input-autocomplete__field_986i5:not(.input-autocomplete__disabled_986i5) {
22
+ .input-autocomplete__field_1s96h:not(.input-autocomplete__disabled_1s96h) {
23
23
  cursor: pointer;
24
24
  }
25
- .input-autocomplete__errorIcon_986i5 {
25
+ .input-autocomplete__errorIcon_1s96h {
26
26
  display: var(--input-error-icon-display);
27
27
  }
28
- * + .input-autocomplete__errorIcon_986i5 {
28
+ * + .input-autocomplete__errorIcon_1s96h {
29
29
  display: var(--input-error-icon-not-alone-display);
30
30
  }
31
- .input-autocomplete__successIcon_986i5 {
31
+ .input-autocomplete__successIcon_1s96h {
32
32
  display: var(--input-success-icon-display);
33
33
  }
34
- .input-autocomplete__disabled_986i5 {
34
+ .input-autocomplete__disabled_1s96h {
35
35
  cursor: var(--disabled-cursor);
36
36
  }
37
- .input-autocomplete__placeholder_986i5 {
37
+ .input-autocomplete__placeholder_1s96h {
38
38
  color: var(--color-light-text-secondary);
39
39
  }
40
- .input-autocomplete__contentWrapper_986i5 {
40
+ .input-autocomplete__contentWrapper_1s96h {
41
41
  font-size: 16px;
42
42
  line-height: 20px;
43
43
  font-weight: 400;
@@ -48,12 +48,12 @@
48
48
  overflow: hidden;
49
49
  width: 100%;
50
50
  }
51
- .input-autocomplete__value_986i5 {
51
+ .input-autocomplete__value_1s96h {
52
52
  overflow: hidden;
53
53
  text-overflow: ellipsis;
54
54
  text-align: left;
55
55
  }
56
- .input-autocomplete__focusVisible_986i5 {
56
+ .input-autocomplete__focusVisible_1s96h {
57
57
  outline: 2px solid var(--focus-color);
58
58
  outline-offset: 2px;
59
59
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"input-autocomplete__component_986i5","field":"input-autocomplete__field_986i5","disabled":"input-autocomplete__disabled_986i5","errorIcon":"input-autocomplete__errorIcon_986i5","successIcon":"input-autocomplete__successIcon_986i5","placeholder":"input-autocomplete__placeholder_986i5","contentWrapper":"input-autocomplete__contentWrapper_986i5","value":"input-autocomplete__value_986i5","focusVisible":"input-autocomplete__focusVisible_986i5"};
5
+ var styles = {"component":"input-autocomplete__component_1s96h","field":"input-autocomplete__field_1s96h","disabled":"input-autocomplete__disabled_1s96h","errorIcon":"input-autocomplete__errorIcon_1s96h","successIcon":"input-autocomplete__successIcon_1s96h","placeholder":"input-autocomplete__placeholder_1s96h","contentWrapper":"input-autocomplete__contentWrapper_1s96h","value":"input-autocomplete__value_1s96h","focusVisible":"input-autocomplete__focusVisible_1s96h"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -7,7 +7,6 @@ var React = require('react');
7
7
  var mergeRefs = require('react-merge-refs');
8
8
  var cn = require('classnames');
9
9
  var desktop = require('@alfalab/core-components-input/cssm/desktop');
10
- var getAddonsByPriority = require('@alfalab/core-components-input/cssm/helpers/get-addons-by-priority');
11
10
  var enums = require('../enums.js');
12
11
  var styles = require('./index.module.css');
13
12
 
@@ -41,27 +40,18 @@ var AutocompleteField = function (_a) {
41
40
  * [1] - Indicators (eye, calendar, chevron, stepper e.g.)
42
41
  * [0] - Lock
43
42
  */
44
- var rightAddonsMap = getAddonsByPriority.getAddonsByPriority([
45
- {
46
- priority: 2,
47
- predicate: Boolean(inputProps.rightAddons),
48
- render: function () { return inputProps.rightAddons; },
49
- },
50
- {
51
- priority: 1,
52
- predicate: Boolean(Arrow) && !inputDisabled,
53
- render: function () {
54
- var _a;
55
- return (React__default.default.createElement("span", { className: cn__default.default(styles__default.default.arrow, (_a = {},
56
- _a[styles__default.default.error] = error,
57
- _a)) }, Arrow));
58
- },
59
- },
60
- ]);
43
+ var renderRightAddons = function () {
44
+ var _a;
45
+ return (React__default.default.createElement(React.Fragment, null,
46
+ inputProps.rightAddons,
47
+ Arrow && !inputDisabled && (React__default.default.createElement("span", { className: cn__default.default(styles__default.default.arrow, (_a = {},
48
+ _a[styles__default.default.error] = error,
49
+ _a)) }, Arrow))));
50
+ };
61
51
  return (React__default.default.createElement(Input, tslib.__assign({ dataTestId: dataTestId }, inputProps, innerProps, { wrapperRef: mergeRefs__default.default([
62
52
  innerProps.ref,
63
53
  inputProps.wrapperRef,
64
- ]), ref: mergeRefs__default.default([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, labelView: labelView, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: handleInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: rightAddonsMap })));
54
+ ]), ref: mergeRefs__default.default([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, labelView: labelView, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: handleInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: renderRightAddons() })));
65
55
  };
66
56
 
67
57
  exports.AutocompleteField = AutocompleteField;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../src/autocomplete-field/Component.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop as DefaultInput } from '@alfalab/core-components-input/desktop';\nimport { getAddonsByPriority } from '@alfalab/core-components-input/helpers/get-addons-by-priority';\nimport { type FieldProps } from '@alfalab/core-components-select/shared';\n\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nimport styles from './index.module.css';\n\nexport type AutocompleteFieldProps = FieldProps &\n Pick<InputAutocompleteCommonProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;\n\nexport const AutocompleteField = ({\n label,\n labelView = 'inner',\n placeholder,\n size,\n Arrow,\n Input = DefaultInput,\n value,\n error,\n success,\n hint,\n disabled,\n readOnly,\n onInput,\n inputProps = {},\n innerProps,\n dataTestId,\n}: AutocompleteFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { onClick, onFocus } = innerProps;\n\n const inputDisabled = disabled || readOnly;\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event);\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n [onClick],\n );\n\n const handleInput: InputProps['onChange'] = (_, payload) =>\n onInput?.(payload.value, OnInputReason.Change);\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const rightAddonsMap = getAddonsByPriority([\n {\n priority: 2,\n predicate: Boolean(inputProps.rightAddons),\n render: () => inputProps.rightAddons,\n },\n {\n priority: 1,\n predicate: Boolean(Arrow) && !inputDisabled,\n render: () => (\n <span\n className={cn(styles.arrow, {\n [styles.error]: error,\n })}\n >\n {Arrow}\n </span>\n ),\n },\n ]);\n\n return (\n <Input\n dataTestId={dataTestId}\n {...inputProps}\n {...innerProps}\n wrapperRef={mergeRefs([\n innerProps.ref as React.Ref<HTMLElement>,\n inputProps.wrapperRef as React.Ref<HTMLElement>,\n ])}\n ref={mergeRefs([inputRef, inputProps.ref as React.Ref<HTMLElement>])}\n disabled={disabled}\n readOnly={readOnly}\n block={true}\n label={label}\n labelView={labelView}\n placeholder={placeholder}\n size={size}\n error={error}\n success={success}\n hint={hint}\n onChange={handleInput}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : onFocus}\n autoComplete='off'\n value={value}\n rightAddons={rightAddonsMap}\n />\n );\n};\n"],"names":["DefaultInput","useRef","useCallback","OnInputReason","getAddonsByPriority","React","cn","styles","__assign","mergeRefs"],"mappings":";;;;;;;;;;;;;;;;;;;;AAiBO,IAAM,iBAAiB,GAAG,UAAC,EAiBT,EAAA;QAhBrB,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,EAAA,GAAA,EAAA,CAAA,SAAmB,EAAnB,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,OAAO,GAAA,EAAA,EACnB,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,IAAI,UAAA,EACJ,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,EAAoB,GAAA,EAAA,CAAA,KAAA,EAApB,KAAK,GAAA,EAAA,KAAA,MAAA,GAAGA,oBAAY,GAAA,EAAA,EACpB,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,EAAA,GAAA,EAAA,CAAA,UAAe,EAAf,UAAU,GAAG,EAAA,KAAA,MAAA,GAAA,EAAE,GAAA,EAAA,EACf,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,UAAU,GAAA,EAAA,CAAA,UAAA;AAEV,IAAA,IAAM,QAAQ,GAAGC,YAAM,CAAmB,IAAI,CAAC;IAEvC,IAAA,OAAO,GAAc,UAAU,CAAA,OAAxB,EAAE,OAAO,GAAK,UAAU,CAAA,OAAf;AAExB,IAAA,IAAM,aAAa,GAAG,QAAQ,IAAI,QAAQ;AAE1C,IAAA,IAAM,WAAW,GAAGC,iBAAW,CAC3B,UAAC,KAAuC,EAAA;AACpC,QAAA,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC;QAE3B,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAC3B;AACL,KAAC,EACD,CAAC,OAAO,CAAC,CACZ;AAED,IAAA,IAAM,WAAW,GAA2B,UAAC,CAAC,EAAE,OAAO,EAAA;AACnD,QAAA,OAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAG,OAAO,CAAC,KAAK,EAAEC,mBAAa,CAAC,MAAM,CAAC;AAA9C,KAA8C;AAElD;;;;;;;AAOG;IACH,IAAM,cAAc,GAAGC,uCAAmB,CAAC;AACvC,QAAA;AACI,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;AAC1C,YAAA,MAAM,EAAE,YAAM,EAAA,OAAA,UAAU,CAAC,WAAW,GAAA;AACvC,SAAA;AACD,QAAA;AACI,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa;AAC3C,YAAA,MAAM,EAAE,YAAA;;gBAAM,QACVC,+CACI,SAAS,EAAEC,mBAAE,CAACC,uBAAM,CAAC,KAAK,GAAA,EAAA,GAAA,EAAA;AACtB,wBAAA,EAAA,CAACA,uBAAM,CAAC,KAAK,CAAA,GAAG,KAAK;4BACvB,EAED,EAAA,KAAK,CACH;aACV;AACJ,SAAA;AACJ,KAAA,CAAC;AAEF,IAAA,QACIF,sBAAA,CAAA,aAAA,CAAC,KAAK,EAAAG,cAAA,CAAA,EACF,UAAU,EAAE,UAAU,EAClB,EAAA,UAAU,EACV,UAAU,EAAA,EACd,UAAU,EAAEC,0BAAS,CAAC;AAClB,YAAA,UAAU,CAAC,GAA6B;AACxC,YAAA,UAAU,CAAC,UAAoC;SAClD,CAAC,EACF,GAAG,EAAEA,0BAAS,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,GAA6B,CAAC,CAAC,EACpE,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,WAAW,EAChD,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,EAC5C,YAAY,EAAC,KAAK,EAClB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,cAAc,EAC7B,CAAA,CAAA;AAEV;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../../src/autocomplete-field/Component.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop as DefaultInput } from '@alfalab/core-components-input/desktop';\nimport { type FieldProps } from '@alfalab/core-components-select/shared';\n\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nimport styles from './index.module.css';\n\nexport type AutocompleteFieldProps = FieldProps &\n Pick<InputAutocompleteCommonProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;\n\nexport const AutocompleteField = ({\n label,\n labelView = 'inner',\n placeholder,\n size,\n Arrow,\n Input = DefaultInput,\n value,\n error,\n success,\n hint,\n disabled,\n readOnly,\n onInput,\n inputProps = {},\n innerProps,\n dataTestId,\n}: AutocompleteFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { onClick, onFocus } = innerProps;\n\n const inputDisabled = disabled || readOnly;\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event);\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n [onClick],\n );\n\n const handleInput: InputProps['onChange'] = (_, payload) =>\n onInput?.(payload.value, OnInputReason.Change);\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const renderRightAddons = () => (\n <Fragment>\n {inputProps.rightAddons}\n {Arrow && !inputDisabled && (\n <span\n className={cn(styles.arrow, {\n [styles.error]: error,\n })}\n >\n {Arrow}\n </span>\n )}\n </Fragment>\n );\n\n return (\n <Input\n dataTestId={dataTestId}\n {...inputProps}\n {...innerProps}\n wrapperRef={mergeRefs([\n innerProps.ref as React.Ref<HTMLElement>,\n inputProps.wrapperRef as React.Ref<HTMLElement>,\n ])}\n ref={mergeRefs([inputRef, inputProps.ref as React.Ref<HTMLElement>])}\n disabled={disabled}\n readOnly={readOnly}\n block={true}\n label={label}\n labelView={labelView}\n placeholder={placeholder}\n size={size}\n error={error}\n success={success}\n hint={hint}\n onChange={handleInput}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : onFocus}\n autoComplete='off'\n value={value}\n rightAddons={renderRightAddons()}\n />\n );\n};\n"],"names":["DefaultInput","useRef","useCallback","OnInputReason","React","Fragment","cn","styles","__assign","mergeRefs"],"mappings":"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"}
@@ -7,8 +7,8 @@ var React = require('react');
7
7
  var cn = require('classnames');
8
8
  var mobile = require('@alfalab/core-components-form-control/cssm/mobile');
9
9
  var shared = require('@alfalab/core-components-input/cssm/shared');
10
- var cssm$1 = require('@alfalab/core-components-shared/cssm');
11
- var cssm = require('@alfalab/core-components-status-badge/cssm');
10
+ var cssm = require('@alfalab/core-components-shared/cssm');
11
+ var cssm$1 = require('@alfalab/core-components-status-badge/cssm');
12
12
  var hooks = require('@alfalab/hooks');
13
13
  var styles = require('./index.module.css');
14
14
 
@@ -37,47 +37,22 @@ var AutocompleteMobileField = function (_a) {
37
37
  * [1] - Indicators (eye, calendar, chevron, stepper e.g.)
38
38
  * [0] - Lock
39
39
  */
40
- var rightAddonsMap = shared.getAddonsByPriority([
41
- {
42
- priority: 4,
43
- predicate: clear && filled && !disabled && !readOnly,
44
- render: function () { return React__default.default.createElement(shared.ClearButton, { onClick: onClear, disabled: disabled, colors: colors }); },
45
- },
46
- {
47
- priority: 3,
48
- predicate: Boolean(error),
49
- render: function () { return (React__default.default.createElement("div", { className: styles__default.default.errorIcon, "data-addon": 'error-icon' },
50
- React__default.default.createElement(cssm.StatusBadge, { view: 'negative-alert', size: statusBadgeSize, dataTestId: cssm$1.getDataTestId(dataTestId, 'error-icon') }))); },
51
- },
52
- {
53
- priority: 3,
54
- predicate: Boolean(success && !error),
55
- render: function () { return (React__default.default.createElement("div", { className: styles__default.default.successIcon },
56
- React__default.default.createElement(cssm.StatusBadge, { view: 'positive-checkmark', size: statusBadgeSize, dataTestId: cssm$1.getDataTestId(dataTestId, 'success-icon') }))); },
57
- },
58
- {
59
- priority: 2,
60
- predicate: Boolean(rightAddons),
61
- render: function () { return rightAddons; },
62
- },
63
- {
64
- priority: 1,
65
- predicate: Boolean(Arrow) && !disabled && !readOnly,
66
- render: function () { return Arrow; },
67
- },
68
- {
69
- priority: 0,
70
- predicate: Boolean(disabled || readOnly),
71
- render: function () { return React__default.default.createElement(shared.LockIcon, { colors: colors, size: size }); },
72
- },
73
- ]);
40
+ var renderRightAddons = function () { return (React__default.default.createElement(React.Fragment, null,
41
+ clear && filled && !disabled && !readOnly && (React__default.default.createElement(shared.ClearButton, { onClick: onClear, disabled: disabled, colors: colors })),
42
+ error && (React__default.default.createElement("div", { className: styles__default.default.errorIcon, "data-addon": 'error-icon' },
43
+ React__default.default.createElement(cssm$1.StatusBadge, { view: 'negative-alert', size: statusBadgeSize, dataTestId: cssm.getDataTestId(dataTestId, 'error-icon') }))),
44
+ success && !error && (React__default.default.createElement("div", { className: styles__default.default.successIcon },
45
+ React__default.default.createElement(cssm$1.StatusBadge, { view: 'positive-checkmark', size: statusBadgeSize, dataTestId: cssm.getDataTestId(dataTestId, 'success-icon') }))),
46
+ rightAddons,
47
+ !disabled && !readOnly && Arrow,
48
+ (disabled || readOnly) && React__default.default.createElement(shared.LockIcon, { colors: colors, size: size }))); };
74
49
  return (React__default.default.createElement("div", { className: styles__default.default.component, ref: wrapperRef, onFocus: function () { return setFocused(true); }, onBlur: function () { return setFocused(false); } },
75
50
  React__default.default.createElement(mobile.FormControlMobile, tslib.__assign({ fieldClassName: cn__default.default(styles__default.default.field, fieldClassName, (_b = {},
76
51
  _b[styles__default.default.disabled] = disabled,
77
52
  _b[styles__default.default.focusVisible] = focusVisible,
78
- _b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, labelView: labelView, dataTestId: cssm$1.getDataTestId(dataTestId, 'form-control'),
53
+ _b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, labelView: labelView, dataTestId: cssm.getDataTestId(dataTestId, 'form-control'),
79
54
  // downshift устанавливает фокус на таргет поле после выбора опции, не даем ему это сделать пока открыт список, иначе поле поиска будет терять фокус
80
- tabIndex: open ? undefined : tabIndex }, restProps, restInnerProps, { readOnly: readOnly, colors: colors, error: error, rightAddons: rightAddonsMap }),
55
+ tabIndex: open ? undefined : tabIndex }, restProps, restInnerProps, { readOnly: readOnly, colors: colors, error: error, rightAddons: renderRightAddons() }),
81
56
  React__default.default.createElement("div", { className: styles__default.default.contentWrapper },
82
57
  showPlaceholder && React__default.default.createElement("span", { className: styles__default.default.placeholder }, placeholder),
83
58
  filled && React__default.default.createElement("div", { className: styles__default.default.value }, value)))));
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../src/autocomplete-mobile-field/Component.tsx"],"sourcesContent":["import React, { type ElementType, useRef, useState } from 'react';\nimport cn from 'classnames';\n\nimport {\n FormControlMobile,\n type FormControlMobileProps,\n} from '@alfalab/core-components-form-control/mobile';\nimport { ClearButton, getAddonsByPriority, LockIcon } from '@alfalab/core-components-input/shared';\nimport { type FieldProps as BaseFieldProps } from '@alfalab/core-components-select/shared';\nimport { getDataTestId } from '@alfalab/core-components-shared';\nimport { StatusBadge } from '@alfalab/core-components-status-badge';\nimport { useFocus } from '@alfalab/hooks';\n\nimport styles from './index.module.css';\n\ntype FieldProps = {\n /**\n * Компонент FormControl\n */\n FormControlComponent?: ElementType;\n};\n\nexport type AutocompleteMobileFieldProps = FormControlMobileProps &\n Omit<BaseFieldProps, 'selected' | 'multiple' | 'success'> & {\n /**\n * Значение поля ввода\n */\n value?: string;\n };\n\n// eslint-disable-next-line complexity\nexport const AutocompleteMobileField = ({\n size = 56,\n open,\n disabled,\n value,\n innerProps,\n dataTestId,\n fieldClassName,\n labelView = 'inner',\n placeholder,\n Arrow,\n valueRenderer,\n toggleMenu,\n setSelectedItems,\n selectedMultiple,\n FormControlComponent,\n rightAddons,\n error,\n readOnly,\n clear,\n success,\n onClear,\n onInput,\n colors = 'default',\n ...restProps\n}: AutocompleteMobileFieldProps & FieldProps) => {\n const [focused, setFocused] = useState(false);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const [focusVisible] = useFocus(wrapperRef, 'keyboard');\n\n const filled = Boolean(value);\n const showPlaceholder = placeholder && !filled && labelView === 'outer';\n\n const statusBadgeSize = size === 40 ? 16 : 20;\n\n const { tabIndex, ...restInnerProps } = innerProps;\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const rightAddonsMap = getAddonsByPriority([\n {\n priority: 4,\n predicate: clear && filled && !disabled && !readOnly,\n render: () => <ClearButton onClick={onClear} disabled={disabled} colors={colors} />,\n },\n {\n priority: 3,\n predicate: Boolean(error),\n render: () => (\n <div className={styles.errorIcon} data-addon='error-icon'>\n <StatusBadge\n view='negative-alert'\n size={statusBadgeSize}\n dataTestId={getDataTestId(dataTestId, 'error-icon')}\n />\n </div>\n ),\n },\n {\n priority: 3,\n predicate: Boolean(success && !error),\n render: () => (\n <div className={styles.successIcon}>\n <StatusBadge\n view='positive-checkmark'\n size={statusBadgeSize}\n dataTestId={getDataTestId(dataTestId, 'success-icon')}\n />\n </div>\n ),\n },\n {\n priority: 2,\n predicate: Boolean(rightAddons),\n render: () => rightAddons,\n },\n {\n priority: 1,\n predicate: Boolean(Arrow) && !disabled && !readOnly,\n render: () => Arrow,\n },\n {\n priority: 0,\n predicate: Boolean(disabled || readOnly),\n render: () => <LockIcon colors={colors} size={size} />,\n },\n ]);\n\n return (\n <div\n className={styles.component}\n ref={wrapperRef}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n >\n <FormControlMobile\n fieldClassName={cn(styles.field, fieldClassName, {\n [styles.disabled]: disabled,\n [styles.focusVisible]: focusVisible,\n })}\n block={true}\n size={size}\n focused={focused}\n disabled={disabled}\n filled={filled}\n labelView={labelView}\n dataTestId={getDataTestId(dataTestId, 'form-control')}\n // downshift устанавливает фокус на таргет поле после выбора опции, не даем ему это сделать пока открыт список, иначе поле поиска будет терять фокус\n tabIndex={open ? undefined : tabIndex}\n {...restProps}\n {...restInnerProps}\n readOnly={readOnly}\n colors={colors}\n error={error}\n rightAddons={rightAddonsMap}\n >\n <div className={styles.contentWrapper}>\n {showPlaceholder && <span className={styles.placeholder}>{placeholder}</span>}\n {filled && <div className={styles.value}>{value}</div>}\n </div>\n </FormControlMobile>\n </div>\n );\n};\n"],"names":["__rest","useState","useRef","useFocus","getAddonsByPriority","React","ClearButton","styles","StatusBadge","getDataTestId","LockIcon","FormControlMobile","__assign","cn"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../src/autocomplete-mobile-field/Component.tsx"],"sourcesContent":["import React, { type ElementType, Fragment, useRef, useState } from 'react';\nimport cn from 'classnames';\n\nimport {\n FormControlMobile,\n type FormControlMobileProps,\n} from '@alfalab/core-components-form-control/mobile';\nimport { ClearButton, LockIcon } from '@alfalab/core-components-input/shared';\nimport { type FieldProps as BaseFieldProps } from '@alfalab/core-components-select/shared';\nimport { getDataTestId } from '@alfalab/core-components-shared';\nimport { StatusBadge } from '@alfalab/core-components-status-badge';\nimport { useFocus } from '@alfalab/hooks';\n\nimport styles from './index.module.css';\n\ntype FieldProps = {\n /**\n * Компонент FormControl\n */\n FormControlComponent?: ElementType;\n};\n\nexport type AutocompleteMobileFieldProps = FormControlMobileProps &\n Omit<BaseFieldProps, 'selected' | 'multiple' | 'success'> & {\n /**\n * Значение поля ввода\n */\n value?: string;\n };\n\n// eslint-disable-next-line complexity\nexport const AutocompleteMobileField = ({\n size = 56,\n open,\n disabled,\n value,\n innerProps,\n dataTestId,\n fieldClassName,\n labelView = 'inner',\n placeholder,\n Arrow,\n valueRenderer,\n toggleMenu,\n setSelectedItems,\n selectedMultiple,\n FormControlComponent,\n rightAddons,\n error,\n readOnly,\n clear,\n success,\n onClear,\n onInput,\n colors = 'default',\n ...restProps\n}: AutocompleteMobileFieldProps & FieldProps) => {\n const [focused, setFocused] = useState(false);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const [focusVisible] = useFocus(wrapperRef, 'keyboard');\n\n const filled = Boolean(value);\n const showPlaceholder = placeholder && !filled && labelView === 'outer';\n\n const statusBadgeSize = size === 40 ? 16 : 20;\n\n const { tabIndex, ...restInnerProps } = innerProps;\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const renderRightAddons = () => (\n <Fragment>\n {clear && filled && !disabled && !readOnly && (\n <ClearButton onClick={onClear} disabled={disabled} colors={colors} />\n )}\n {error && (\n <div className={styles.errorIcon} data-addon='error-icon'>\n <StatusBadge\n view='negative-alert'\n size={statusBadgeSize}\n dataTestId={getDataTestId(dataTestId, 'error-icon')}\n />\n </div>\n )}\n {success && !error && (\n <div className={styles.successIcon}>\n <StatusBadge\n view='positive-checkmark'\n size={statusBadgeSize}\n dataTestId={getDataTestId(dataTestId, 'success-icon')}\n />\n </div>\n )}\n {rightAddons}\n {!disabled && !readOnly && Arrow}\n {(disabled || readOnly) && <LockIcon colors={colors} size={size} />}\n </Fragment>\n );\n\n return (\n <div\n className={styles.component}\n ref={wrapperRef}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n >\n <FormControlMobile\n fieldClassName={cn(styles.field, fieldClassName, {\n [styles.disabled]: disabled,\n [styles.focusVisible]: focusVisible,\n })}\n block={true}\n size={size}\n focused={focused}\n disabled={disabled}\n filled={filled}\n labelView={labelView}\n dataTestId={getDataTestId(dataTestId, 'form-control')}\n // downshift устанавливает фокус на таргет поле после выбора опции, не даем ему это сделать пока открыт список, иначе поле поиска будет терять фокус\n tabIndex={open ? undefined : tabIndex}\n {...restProps}\n {...restInnerProps}\n readOnly={readOnly}\n colors={colors}\n error={error}\n rightAddons={renderRightAddons()}\n >\n <div className={styles.contentWrapper}>\n {showPlaceholder && <span className={styles.placeholder}>{placeholder}</span>}\n {filled && <div className={styles.value}>{value}</div>}\n </div>\n </FormControlMobile>\n </div>\n );\n};\n"],"names":["__rest","useState","useRef","useFocus","React","Fragment","ClearButton","styles","StatusBadge","getDataTestId","LockIcon","FormControlMobile","__assign","cn"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { __assign } from 'tslib';
2
- import React, { useRef, useCallback } from 'react';
2
+ import React, { useRef, useCallback, Fragment } from 'react';
3
3
  import mergeRefs from 'react-merge-refs';
4
4
  import cn from 'classnames';
5
5
  import { InputDesktop } from '@alfalab/core-components-input/esm/desktop';
6
- import { getAddonsByPriority } from '@alfalab/core-components-input/esm/helpers/get-addons-by-priority';
7
6
  import { OnInputReason } from '../enums.js';
8
7
  import styles from './index.module.css.js';
9
8
 
@@ -30,27 +29,18 @@ var AutocompleteField = function (_a) {
30
29
  * [1] - Indicators (eye, calendar, chevron, stepper e.g.)
31
30
  * [0] - Lock
32
31
  */
33
- var rightAddonsMap = getAddonsByPriority([
34
- {
35
- priority: 2,
36
- predicate: Boolean(inputProps.rightAddons),
37
- render: function () { return inputProps.rightAddons; },
38
- },
39
- {
40
- priority: 1,
41
- predicate: Boolean(Arrow) && !inputDisabled,
42
- render: function () {
43
- var _a;
44
- return (React.createElement("span", { className: cn(styles.arrow, (_a = {},
45
- _a[styles.error] = error,
46
- _a)) }, Arrow));
47
- },
48
- },
49
- ]);
32
+ var renderRightAddons = function () {
33
+ var _a;
34
+ return (React.createElement(Fragment, null,
35
+ inputProps.rightAddons,
36
+ Arrow && !inputDisabled && (React.createElement("span", { className: cn(styles.arrow, (_a = {},
37
+ _a[styles.error] = error,
38
+ _a)) }, Arrow))));
39
+ };
50
40
  return (React.createElement(Input, __assign({ dataTestId: dataTestId }, inputProps, innerProps, { wrapperRef: mergeRefs([
51
41
  innerProps.ref,
52
42
  inputProps.wrapperRef,
53
- ]), ref: mergeRefs([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, labelView: labelView, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: handleInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: rightAddonsMap })));
43
+ ]), ref: mergeRefs([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, labelView: labelView, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: handleInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: renderRightAddons() })));
54
44
  };
55
45
 
56
46
  export { AutocompleteField };
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../src/autocomplete-field/Component.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop as DefaultInput } from '@alfalab/core-components-input/desktop';\nimport { getAddonsByPriority } from '@alfalab/core-components-input/helpers/get-addons-by-priority';\nimport { type FieldProps } from '@alfalab/core-components-select/shared';\n\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nimport styles from './index.module.css';\n\nexport type AutocompleteFieldProps = FieldProps &\n Pick<InputAutocompleteCommonProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;\n\nexport const AutocompleteField = ({\n label,\n labelView = 'inner',\n placeholder,\n size,\n Arrow,\n Input = DefaultInput,\n value,\n error,\n success,\n hint,\n disabled,\n readOnly,\n onInput,\n inputProps = {},\n innerProps,\n dataTestId,\n}: AutocompleteFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { onClick, onFocus } = innerProps;\n\n const inputDisabled = disabled || readOnly;\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event);\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n [onClick],\n );\n\n const handleInput: InputProps['onChange'] = (_, payload) =>\n onInput?.(payload.value, OnInputReason.Change);\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const rightAddonsMap = getAddonsByPriority([\n {\n priority: 2,\n predicate: Boolean(inputProps.rightAddons),\n render: () => inputProps.rightAddons,\n },\n {\n priority: 1,\n predicate: Boolean(Arrow) && !inputDisabled,\n render: () => (\n <span\n className={cn(styles.arrow, {\n [styles.error]: error,\n })}\n >\n {Arrow}\n </span>\n ),\n },\n ]);\n\n return (\n <Input\n dataTestId={dataTestId}\n {...inputProps}\n {...innerProps}\n wrapperRef={mergeRefs([\n innerProps.ref as React.Ref<HTMLElement>,\n inputProps.wrapperRef as React.Ref<HTMLElement>,\n ])}\n ref={mergeRefs([inputRef, inputProps.ref as React.Ref<HTMLElement>])}\n disabled={disabled}\n readOnly={readOnly}\n block={true}\n label={label}\n labelView={labelView}\n placeholder={placeholder}\n size={size}\n error={error}\n success={success}\n hint={hint}\n onChange={handleInput}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : onFocus}\n autoComplete='off'\n value={value}\n rightAddons={rightAddonsMap}\n />\n );\n};\n"],"names":["DefaultInput"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../src/autocomplete-field/Component.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop as DefaultInput } from '@alfalab/core-components-input/desktop';\nimport { type FieldProps } from '@alfalab/core-components-select/shared';\n\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nimport styles from './index.module.css';\n\nexport type AutocompleteFieldProps = FieldProps &\n Pick<InputAutocompleteCommonProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;\n\nexport const AutocompleteField = ({\n label,\n labelView = 'inner',\n placeholder,\n size,\n Arrow,\n Input = DefaultInput,\n value,\n error,\n success,\n hint,\n disabled,\n readOnly,\n onInput,\n inputProps = {},\n innerProps,\n dataTestId,\n}: AutocompleteFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { onClick, onFocus } = innerProps;\n\n const inputDisabled = disabled || readOnly;\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event);\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n [onClick],\n );\n\n const handleInput: InputProps['onChange'] = (_, payload) =>\n onInput?.(payload.value, OnInputReason.Change);\n\n /**\n * Right addons priority [4] <= [3] <= [2] <= [1] or [0]\n * [4] - Clear\n * [3] - Status (error, success)\n * [2] - Common (info, e.g.)\n * [1] - Indicators (eye, calendar, chevron, stepper e.g.)\n * [0] - Lock\n */\n const renderRightAddons = () => (\n <Fragment>\n {inputProps.rightAddons}\n {Arrow && !inputDisabled && (\n <span\n className={cn(styles.arrow, {\n [styles.error]: error,\n })}\n >\n {Arrow}\n </span>\n )}\n </Fragment>\n );\n\n return (\n <Input\n dataTestId={dataTestId}\n {...inputProps}\n {...innerProps}\n wrapperRef={mergeRefs([\n innerProps.ref as React.Ref<HTMLElement>,\n inputProps.wrapperRef as React.Ref<HTMLElement>,\n ])}\n ref={mergeRefs([inputRef, inputProps.ref as React.Ref<HTMLElement>])}\n disabled={disabled}\n readOnly={readOnly}\n block={true}\n label={label}\n labelView={labelView}\n placeholder={placeholder}\n size={size}\n error={error}\n success={success}\n hint={hint}\n onChange={handleInput}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : onFocus}\n autoComplete='off'\n value={value}\n rightAddons={renderRightAddons()}\n />\n );\n};\n"],"names":["DefaultInput"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- .input-autocomplete__arrow_1fepc.input-autocomplete__error_1fepc ~ * {
1
+ .input-autocomplete__arrow_1vetf.input-autocomplete__error_1vetf ~ * {
2
2
  display: none;
3
3
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var styles = {"arrow":"input-autocomplete__arrow_1fepc","error":"input-autocomplete__error_1fepc"};
3
+ var styles = {"arrow":"input-autocomplete__arrow_1vetf","error":"input-autocomplete__error_1vetf"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map