@alfalab/core-components-input-autocomplete 8.1.3 → 8.2.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/Component.d.ts +3 -1
- package/Component.js +1 -1
- package/Component.mobile.d.ts +10 -2
- package/Component.mobile.js +5 -4
- package/autocomplete-field/Component.d.ts +1 -1
- package/autocomplete-field/Component.js +4 -4
- package/autocomplete-field/index.css +2 -2
- package/autocomplete-field/index.js +1 -1
- package/autocomplete-mobile-field/Component.d.ts +1 -1
- package/autocomplete-mobile-field/Component.js +6 -6
- package/autocomplete-mobile-field/index.css +8 -8
- package/autocomplete-mobile-field/index.js +1 -1
- package/cssm/Component.d.ts +3 -1
- package/cssm/Component.mobile.d.ts +10 -2
- package/cssm/Component.mobile.js +3 -2
- package/cssm/autocomplete-field/Component.d.ts +1 -1
- package/cssm/autocomplete-field/Component.js +2 -2
- package/cssm/autocomplete-mobile-field/Component.d.ts +1 -1
- package/cssm/autocomplete-mobile-field/Component.js +4 -4
- package/esm/Component.d.ts +3 -1
- package/esm/Component.js +1 -1
- package/esm/Component.mobile.d.ts +10 -2
- package/esm/Component.mobile.js +5 -4
- package/esm/autocomplete-field/Component.d.ts +1 -1
- package/esm/autocomplete-field/Component.js +4 -4
- package/esm/autocomplete-field/index.css +2 -2
- package/esm/autocomplete-field/index.js +1 -1
- package/esm/autocomplete-mobile-field/Component.d.ts +1 -1
- package/esm/autocomplete-mobile-field/Component.js +6 -6
- package/esm/autocomplete-mobile-field/index.css +8 -8
- package/esm/autocomplete-mobile-field/index.js +1 -1
- package/esm/index.js +1 -1
- package/esm/mobile.css +4 -4
- package/esm/mobile.js +1 -1
- package/esm/{tslib.es6-3f8bf2a6.d.ts → tslib.es6-0351ba9b.d.ts} +0 -0
- package/esm/{tslib.es6-3f8bf2a6.js → tslib.es6-0351ba9b.js} +0 -0
- package/index.js +1 -1
- package/mobile.css +4 -4
- package/mobile.js +1 -1
- package/modern/Component.d.ts +3 -1
- package/modern/Component.mobile.d.ts +10 -2
- package/modern/Component.mobile.js +4 -3
- package/modern/autocomplete-field/Component.d.ts +1 -1
- package/modern/autocomplete-field/Component.js +3 -3
- package/modern/autocomplete-field/index.css +2 -2
- package/modern/autocomplete-mobile-field/Component.d.ts +1 -1
- package/modern/autocomplete-mobile-field/Component.js +4 -4
- package/modern/autocomplete-mobile-field/index.css +8 -8
- package/modern/mobile.css +4 -4
- package/package.json +5 -5
- /package/{tslib.es6-32a9e0d5.d.ts → tslib.es6-5ba7273e.d.ts} +0 -0
- /package/{tslib.es6-32a9e0d5.js → tslib.es6-5ba7273e.js} +0 -0
package/Component.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ type InputAutocompleteProps = Omit<BaseSelectProps, 'Field' | 'nativeSelect'> &
|
|
|
33
33
|
*/
|
|
34
34
|
updatePopover?: BaseSelectProps['updatePopover'];
|
|
35
35
|
};
|
|
36
|
-
declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onScroll" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "multiple" | "selected" | "valueRenderer" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
36
|
+
declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "labelView" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onScroll" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "multiple" | "selected" | "valueRenderer" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
37
37
|
/**
|
|
38
38
|
* Компонент ввода значения
|
|
39
39
|
*/
|
|
@@ -48,6 +48,7 @@ declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelect
|
|
|
48
48
|
success?: boolean | undefined;
|
|
49
49
|
hint?: React.ReactNode;
|
|
50
50
|
label?: React.ReactNode;
|
|
51
|
+
labelView?: "inner" | "outer" | undefined;
|
|
51
52
|
type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
|
|
52
53
|
wrapperRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
53
54
|
leftAddons?: React.ReactNode;
|
|
@@ -83,6 +84,7 @@ declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelect
|
|
|
83
84
|
success?: boolean | undefined;
|
|
84
85
|
hint?: React.ReactNode;
|
|
85
86
|
label?: React.ReactNode;
|
|
87
|
+
labelView?: "inner" | "outer" | undefined;
|
|
86
88
|
type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
|
|
87
89
|
wrapperRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
88
90
|
leftAddons?: React.ReactNode;
|
package/Component.js
CHANGED
package/Component.mobile.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { ChangeEvent } from "react";
|
|
3
|
+
import { ChangeEvent, ElementType } from "react";
|
|
4
4
|
import { BaseSelectProps, BaseSelectChangePayload } from "@alfalab/core-components-select";
|
|
5
5
|
import { ButtonProps } from "@alfalab/core-components-button";
|
|
6
6
|
import { BottomSheetProps } from "./index-7ca84eff";
|
|
@@ -45,8 +45,12 @@ type InputAutocompleteMobileProps = Omit<BaseSelectProps, 'OptionsList' | 'Check
|
|
|
45
45
|
* Дополнительные пропсы на кнопку "отмена"
|
|
46
46
|
*/
|
|
47
47
|
cancelButtonProps?: ButtonProps;
|
|
48
|
+
/**
|
|
49
|
+
* Кастомный инпут
|
|
50
|
+
*/
|
|
51
|
+
Input?: ElementType;
|
|
48
52
|
};
|
|
49
|
-
declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "Field" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
53
|
+
declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "labelView" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "Field" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
50
54
|
/**
|
|
51
55
|
* Обработчик выбора
|
|
52
56
|
*/
|
|
@@ -87,5 +91,9 @@ declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<Base
|
|
|
87
91
|
* Дополнительные пропсы на кнопку "отмена"
|
|
88
92
|
*/
|
|
89
93
|
cancelButtonProps?: Partial<import("@alfalab/core-components-button").AnchorButtonProps> | Partial<import("@alfalab/core-components-button").NativeButtonProps> | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Кастомный инпут
|
|
96
|
+
*/
|
|
97
|
+
Input?: "symbol" | "object" | "s" | "label" | "slot" | "style" | "title" | React.ComponentClass<any, any> | React.FunctionComponent<any> | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | "canvas" | "caption" | "cite" | "code" | "col" | "colgroup" | "data" | "datalist" | "dd" | "del" | "details" | "dfn" | "dialog" | "div" | "dl" | "dt" | "em" | "embed" | "fieldset" | "figcaption" | "figure" | "footer" | "form" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "head" | "header" | "hgroup" | "hr" | "html" | "i" | "iframe" | "img" | "input" | "ins" | "kbd" | "keygen" | "legend" | "li" | "link" | "main" | "map" | "mark" | "menu" | "menuitem" | "meta" | "meter" | "nav" | "noindex" | "noscript" | "ol" | "optgroup" | "option" | "output" | "p" | "param" | "picture" | "pre" | "progress" | "q" | "rp" | "rt" | "ruby" | "samp" | "script" | "section" | "select" | "small" | "source" | "span" | "strong" | "sub" | "summary" | "sup" | "table" | "template" | "tbody" | "td" | "textarea" | "tfoot" | "th" | "thead" | "time" | "tr" | "track" | "u" | "ul" | "var" | "video" | "wbr" | "webview" | "svg" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | undefined;
|
|
90
98
|
} & React.RefAttributes<unknown>>;
|
|
91
99
|
export { InputAutocompleteMobileProps, InputAutocompleteMobile };
|
package/Component.mobile.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('./tslib.es6-
|
|
5
|
+
var tslib_es6 = require('./tslib.es6-5ba7273e.js');
|
|
6
6
|
var cn = require('classnames');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var mergeRefs = require('react-merge-refs');
|
|
@@ -21,12 +21,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
21
21
|
var mergeRefs__default = /*#__PURE__*/_interopDefaultLegacy(mergeRefs);
|
|
22
22
|
var throttle__default = /*#__PURE__*/_interopDefaultLegacy(throttle);
|
|
23
23
|
|
|
24
|
-
var styles = {"bottomSheetInput":"input-
|
|
24
|
+
var styles = {"bottomSheetInput":"input-autocomplete__bottomSheetInput_oluh5","footer":"input-autocomplete__footer_oluh5"};
|
|
25
25
|
require('./mobile.css')
|
|
26
26
|
|
|
27
27
|
var SELECTED = [];
|
|
28
28
|
var InputAutocompleteMobile = React__default['default'].forwardRef(function (_a, ref) {
|
|
29
|
-
var _b = _a.bottomSheetProps, bottomSheetProps = _b === void 0 ? {} : _b, _c = _a.bottomSheetHeaderAddonsProps, bottomSheetHeaderAddonsProps = _c === void 0 ? {} : _c, _d = _a.value, value = _d === void 0 ? '' : _d, _e = _a.filter, filter = _e === void 0 ? '' : _e, name = _a.name, _f = _a.Arrow, Arrow = _f === void 0 ? null : _f, label = _a.label, placeholder = _a.placeholder, _g = _a.size, size = _g === void 0 ? 's' : _g, openProp = _a.open, onFilter = _a.onFilter, onChange = _a.onChange, onOpen = _a.onOpen, onCancel = _a.onCancel, onClearFilter = _a.onClearFilter, continueButtonProps = _a.continueButtonProps, cancelButtonProps = _a.cancelButtonProps, restProps = tslib_es6.__rest(_a, ["bottomSheetProps", "bottomSheetHeaderAddonsProps", "value", "filter", "name", "Arrow", "label", "placeholder", "size", "open", "onFilter", "onChange", "onOpen", "onCancel", "onClearFilter", "continueButtonProps", "cancelButtonProps"]);
|
|
29
|
+
var Input = _a.Input, _b = _a.bottomSheetProps, bottomSheetProps = _b === void 0 ? {} : _b, _c = _a.bottomSheetHeaderAddonsProps, bottomSheetHeaderAddonsProps = _c === void 0 ? {} : _c, _d = _a.value, value = _d === void 0 ? '' : _d, _e = _a.filter, filter = _e === void 0 ? '' : _e, name = _a.name, _f = _a.Arrow, Arrow = _f === void 0 ? null : _f, label = _a.label, placeholder = _a.placeholder, _g = _a.size, size = _g === void 0 ? 's' : _g, openProp = _a.open, onFilter = _a.onFilter, onChange = _a.onChange, onOpen = _a.onOpen, onCancel = _a.onCancel, onClearFilter = _a.onClearFilter, continueButtonProps = _a.continueButtonProps, cancelButtonProps = _a.cancelButtonProps, restProps = tslib_es6.__rest(_a, ["Input", "bottomSheetProps", "bottomSheetHeaderAddonsProps", "value", "filter", "name", "Arrow", "label", "placeholder", "size", "open", "onFilter", "onChange", "onOpen", "onCancel", "onClearFilter", "continueButtonProps", "cancelButtonProps"]);
|
|
30
30
|
var _h = React.useState(false), open = _h[0], setOpen = _h[1];
|
|
31
31
|
var bottomSheetInputRef = React.useRef(null);
|
|
32
32
|
var targetRef = React.useRef(null);
|
|
@@ -69,9 +69,10 @@ var InputAutocompleteMobile = React__default['default'].forwardRef(function (_a,
|
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
71
|
var getBottomSheetProps = function () {
|
|
72
|
+
var Component = Input || coreComponentsInput.Input;
|
|
72
73
|
return tslib_es6.__assign(tslib_es6.__assign({ actionButton: (React__default['default'].createElement("div", { className: styles.footer },
|
|
73
74
|
React__default['default'].createElement(coreComponentsButton.Button, tslib_es6.__assign({ block: true, view: 'primary', size: 's', onClick: handleChange }, continueButtonProps), "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C"),
|
|
74
|
-
React__default['default'].createElement(coreComponentsButton.Button, tslib_es6.__assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))), title: label || placeholder, bottomAddons: (React__default['default'].createElement(
|
|
75
|
+
React__default['default'].createElement(coreComponentsButton.Button, tslib_es6.__assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))), title: label || placeholder, bottomAddons: (React__default['default'].createElement(Component, tslib_es6.__assign({ block: true, clear: !!onClearFilter, onClear: onClearFilter, value: filter, onInput: onFilter, placeholder: placeholder, onFocus: handleInputFocus }, bottomSheetHeaderAddonsProps, { className: cn__default['default'](styles.bottomSheetInput, bottomSheetHeaderAddonsProps.className), ref: mergeRefs__default['default']([
|
|
75
76
|
bottomSheetInputRef,
|
|
76
77
|
bottomSheetHeaderAddonsProps.ref,
|
|
77
78
|
]) }))), initialHeight: 'full' }, bottomSheetProps), { containerProps: tslib_es6.__assign({ onTouchMove: handleOptionsListTouchMove }, bottomSheetProps.containerProps) });
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import { FieldProps } from "@alfalab/core-components-select";
|
|
3
3
|
import { InputAutocompleteProps } from "../Component";
|
|
4
4
|
type AutocompleteFieldProps = FieldProps & Pick<InputAutocompleteProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;
|
|
5
|
-
declare const AutocompleteField: ({ label, placeholder, size, Arrow, Input, value, error, success, hint, disabled, readOnly, onInput, inputProps, innerProps, }: AutocompleteFieldProps) => JSX.Element;
|
|
5
|
+
declare const AutocompleteField: ({ label, labelView, placeholder, size, Arrow, Input, value, error, success, hint, disabled, readOnly, onInput, inputProps, innerProps, }: AutocompleteFieldProps) => JSX.Element;
|
|
6
6
|
export { AutocompleteFieldProps, AutocompleteField };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('../tslib.es6-
|
|
5
|
+
var tslib_es6 = require('../tslib.es6-5ba7273e.js');
|
|
6
6
|
var cn = require('classnames');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var mergeRefs = require('react-merge-refs');
|
|
@@ -14,12 +14,12 @@ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
|
|
|
14
14
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
15
15
|
var mergeRefs__default = /*#__PURE__*/_interopDefaultLegacy(mergeRefs);
|
|
16
16
|
|
|
17
|
-
var styles = {"arrow":"input-
|
|
17
|
+
var styles = {"arrow":"input-autocomplete__arrow_m56b2","error":"input-autocomplete__error_m56b2"};
|
|
18
18
|
require('./index.css')
|
|
19
19
|
|
|
20
20
|
var AutocompleteField = function (_a) {
|
|
21
21
|
var _b;
|
|
22
|
-
var label = _a.label, placeholder = _a.placeholder, size = _a.size, Arrow = _a.Arrow,
|
|
22
|
+
var label = _a.label, _c = _a.labelView, labelView = _c === void 0 ? 'inner' : _c, placeholder = _a.placeholder, size = _a.size, Arrow = _a.Arrow, _d = _a.Input, Input = _d === void 0 ? coreComponentsInput.Input : _d, value = _a.value, error = _a.error, success = _a.success, hint = _a.hint, disabled = _a.disabled, readOnly = _a.readOnly, onInput = _a.onInput, _e = _a.inputProps, inputProps = _e === void 0 ? {} : _e, innerProps = _a.innerProps;
|
|
23
23
|
var inputRef = React.useRef(null);
|
|
24
24
|
var onClick = innerProps.onClick, onFocus = innerProps.onFocus;
|
|
25
25
|
var inputDisabled = disabled || readOnly;
|
|
@@ -36,7 +36,7 @@ var AutocompleteField = function (_a) {
|
|
|
36
36
|
wrapperRef: mergeRefs__default['default']([innerProps.ref, inputProps.wrapperRef]),
|
|
37
37
|
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
|
|
38
38
|
// @ts-ignore
|
|
39
|
-
ref: mergeRefs__default['default']([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: onInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: (Arrow || inputProps.rightAddons) && (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
39
|
+
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: onInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: (Arrow || inputProps.rightAddons) && (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
40
40
|
inputProps.rightAddons,
|
|
41
41
|
Arrow && (React__default['default'].createElement("span", { className: cn__default['default'](styles.arrow, (_b = {},
|
|
42
42
|
_b[styles.error] = error,
|
|
@@ -3,5 +3,5 @@ import { FormControlProps } from "@alfalab/core-components-form-control";
|
|
|
3
3
|
import { FieldProps as BaseFieldProps } from "@alfalab/core-components-select";
|
|
4
4
|
import { InputAutocompleteProps } from "../index";
|
|
5
5
|
type AutocompleteMobileFieldProps = FormControlProps & Omit<BaseFieldProps, 'selected' | 'multiple' | 'success'> & Pick<InputAutocompleteProps, 'value'>;
|
|
6
|
-
declare const AutocompleteMobileField: ({ size, open, error, hint, disabled, label, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }: AutocompleteMobileFieldProps) => JSX.Element;
|
|
6
|
+
declare const AutocompleteMobileField: ({ size, open, error, hint, disabled, label, labelView, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }: AutocompleteMobileFieldProps) => JSX.Element;
|
|
7
7
|
export { AutocompleteMobileFieldProps, AutocompleteMobileField };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('../tslib.es6-
|
|
5
|
+
var tslib_es6 = require('../tslib.es6-5ba7273e.js');
|
|
6
6
|
var cn = require('classnames');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var hooks = require('@alfalab/hooks');
|
|
@@ -13,22 +13,22 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
13
13
|
var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
|
|
14
14
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
15
15
|
|
|
16
|
-
var styles = {"component":"input-
|
|
16
|
+
var styles = {"component":"input-autocomplete__component_wegyt","field":"input-autocomplete__field_wegyt","disabled":"input-autocomplete__disabled_wegyt","placeholder":"input-autocomplete__placeholder_wegyt","contentWrapper":"input-autocomplete__contentWrapper_wegyt","value":"input-autocomplete__value_wegyt","focusVisible":"input-autocomplete__focusVisible_wegyt"};
|
|
17
17
|
require('./index.css')
|
|
18
18
|
|
|
19
19
|
var AutocompleteMobileField = function (_a) {
|
|
20
20
|
var _b;
|
|
21
|
-
var _c = _a.size, size = _c === void 0 ? 'm' : _c, open = _a.open, error = _a.error, hint = _a.hint, disabled = _a.disabled, label = _a.label, placeholder = _a.placeholder, value = _a.value, innerProps = _a.innerProps, dataTestId = _a.dataTestId, fieldClassName = _a.fieldClassName, Arrow = _a.Arrow, valueRenderer = _a.valueRenderer, toggleMenu = _a.toggleMenu, setSelectedItems = _a.setSelectedItems, selectedMultiple = _a.selectedMultiple, restProps = tslib_es6.__rest(_a, ["size", "open", "error", "hint", "disabled", "label", "placeholder", "value", "innerProps", "dataTestId", "fieldClassName", "Arrow", "valueRenderer", "toggleMenu", "setSelectedItems", "selectedMultiple"]);
|
|
22
|
-
var
|
|
21
|
+
var _c = _a.size, size = _c === void 0 ? 'm' : _c, open = _a.open, error = _a.error, hint = _a.hint, disabled = _a.disabled, label = _a.label, _d = _a.labelView, labelView = _d === void 0 ? 'inner' : _d, placeholder = _a.placeholder, value = _a.value, innerProps = _a.innerProps, dataTestId = _a.dataTestId, fieldClassName = _a.fieldClassName, Arrow = _a.Arrow, valueRenderer = _a.valueRenderer, toggleMenu = _a.toggleMenu, setSelectedItems = _a.setSelectedItems, selectedMultiple = _a.selectedMultiple, restProps = tslib_es6.__rest(_a, ["size", "open", "error", "hint", "disabled", "label", "labelView", "placeholder", "value", "innerProps", "dataTestId", "fieldClassName", "Arrow", "valueRenderer", "toggleMenu", "setSelectedItems", "selectedMultiple"]);
|
|
22
|
+
var _e = React.useState(false), focused = _e[0], setFocused = _e[1];
|
|
23
23
|
var wrapperRef = React.useRef(null);
|
|
24
24
|
var focusVisible = hooks.useFocus(wrapperRef, 'keyboard')[0];
|
|
25
25
|
var filled = Boolean(value);
|
|
26
|
-
var showLabel = !!label && (filled || !placeholder);
|
|
26
|
+
var showLabel = !!label && (filled || !placeholder || labelView === 'outer');
|
|
27
27
|
return (React__default['default'].createElement("div", { className: styles.component, ref: wrapperRef, onFocus: function () { return setFocused(true); }, onBlur: function () { return setFocused(false); } },
|
|
28
28
|
React__default['default'].createElement(coreComponentsFormControl.FormControl, tslib_es6.__assign({ fieldClassName: cn__default['default'](styles.field, fieldClassName, (_b = {},
|
|
29
29
|
_b[styles.disabled] = disabled,
|
|
30
30
|
_b[styles.focusVisible] = focusVisible,
|
|
31
|
-
_b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, label: showLabel && label, error: error, hint: hint, "data-test-id": dataTestId }, restProps, innerProps),
|
|
31
|
+
_b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, label: showLabel && label, labelView: labelView, error: error, hint: hint, "data-test-id": dataTestId }, restProps, innerProps),
|
|
32
32
|
React__default['default'].createElement("div", { className: styles.contentWrapper },
|
|
33
33
|
placeholder && !filled && (React__default['default'].createElement("span", { className: styles.placeholder }, placeholder)),
|
|
34
34
|
filled && React__default['default'].createElement("div", { className: styles.value }, value)))));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: n8v03 */
|
|
2
2
|
:root {
|
|
3
3
|
--color-light-border-link: #007aff;
|
|
4
4
|
--color-light-text-secondary: #546272;
|
|
@@ -15,20 +15,20 @@
|
|
|
15
15
|
--focus-color: var(--color-light-border-link);
|
|
16
16
|
--disabled-cursor: not-allowed;
|
|
17
17
|
}
|
|
18
|
-
.input-
|
|
18
|
+
.input-autocomplete__component_wegyt {
|
|
19
19
|
width: 100%;
|
|
20
20
|
outline: none;
|
|
21
21
|
}
|
|
22
|
-
.input-
|
|
22
|
+
.input-autocomplete__field_wegyt:not(.input-autocomplete__disabled_wegyt) {
|
|
23
23
|
cursor: pointer;
|
|
24
24
|
}
|
|
25
|
-
.input-
|
|
25
|
+
.input-autocomplete__disabled_wegyt {
|
|
26
26
|
cursor: var(--disabled-cursor);
|
|
27
27
|
}
|
|
28
|
-
.input-
|
|
28
|
+
.input-autocomplete__placeholder_wegyt {
|
|
29
29
|
color: var(--color-light-text-secondary);
|
|
30
30
|
}
|
|
31
|
-
.input-
|
|
31
|
+
.input-autocomplete__contentWrapper_wegyt {
|
|
32
32
|
font-size: 16px;
|
|
33
33
|
line-height: 20px;
|
|
34
34
|
font-weight: 400;
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
overflow: hidden;
|
|
39
39
|
width: 100%;
|
|
40
40
|
}
|
|
41
|
-
.input-
|
|
41
|
+
.input-autocomplete__value_wegyt {
|
|
42
42
|
overflow: hidden;
|
|
43
43
|
text-overflow: ellipsis;
|
|
44
44
|
text-align: left;
|
|
45
45
|
}
|
|
46
|
-
.input-
|
|
46
|
+
.input-autocomplete__focusVisible_wegyt {
|
|
47
47
|
outline: 2px solid var(--focus-color);
|
|
48
48
|
outline-offset: 2px;
|
|
49
49
|
}
|
package/cssm/Component.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ type InputAutocompleteProps = Omit<BaseSelectProps, 'Field' | 'nativeSelect'> &
|
|
|
33
33
|
*/
|
|
34
34
|
updatePopover?: BaseSelectProps['updatePopover'];
|
|
35
35
|
};
|
|
36
|
-
declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onScroll" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "multiple" | "selected" | "valueRenderer" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
36
|
+
declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "labelView" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onScroll" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "multiple" | "selected" | "valueRenderer" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
37
37
|
/**
|
|
38
38
|
* Компонент ввода значения
|
|
39
39
|
*/
|
|
@@ -48,6 +48,7 @@ declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelect
|
|
|
48
48
|
success?: boolean | undefined;
|
|
49
49
|
hint?: React.ReactNode;
|
|
50
50
|
label?: React.ReactNode;
|
|
51
|
+
labelView?: "inner" | "outer" | undefined;
|
|
51
52
|
type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
|
|
52
53
|
wrapperRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
53
54
|
leftAddons?: React.ReactNode;
|
|
@@ -83,6 +84,7 @@ declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelect
|
|
|
83
84
|
success?: boolean | undefined;
|
|
84
85
|
hint?: React.ReactNode;
|
|
85
86
|
label?: React.ReactNode;
|
|
87
|
+
labelView?: "inner" | "outer" | undefined;
|
|
86
88
|
type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
|
|
87
89
|
wrapperRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
88
90
|
leftAddons?: React.ReactNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { ChangeEvent } from "react";
|
|
3
|
+
import { ChangeEvent, ElementType } from "react";
|
|
4
4
|
import { BaseSelectProps, BaseSelectChangePayload } from "@alfalab/core-components-select";
|
|
5
5
|
import { ButtonProps } from "@alfalab/core-components-button";
|
|
6
6
|
import { BottomSheetProps } from "./index-7ca84eff";
|
|
@@ -45,8 +45,12 @@ type InputAutocompleteMobileProps = Omit<BaseSelectProps, 'OptionsList' | 'Check
|
|
|
45
45
|
* Дополнительные пропсы на кнопку "отмена"
|
|
46
46
|
*/
|
|
47
47
|
cancelButtonProps?: ButtonProps;
|
|
48
|
+
/**
|
|
49
|
+
* Кастомный инпут
|
|
50
|
+
*/
|
|
51
|
+
Input?: ElementType;
|
|
48
52
|
};
|
|
49
|
-
declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "Field" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
53
|
+
declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "labelView" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "Field" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
50
54
|
/**
|
|
51
55
|
* Обработчик выбора
|
|
52
56
|
*/
|
|
@@ -87,5 +91,9 @@ declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<Base
|
|
|
87
91
|
* Дополнительные пропсы на кнопку "отмена"
|
|
88
92
|
*/
|
|
89
93
|
cancelButtonProps?: Partial<import("@alfalab/core-components-button").AnchorButtonProps> | Partial<import("@alfalab/core-components-button").NativeButtonProps> | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Кастомный инпут
|
|
96
|
+
*/
|
|
97
|
+
Input?: "symbol" | "object" | "s" | "label" | "slot" | "style" | "title" | React.ComponentClass<any, any> | React.FunctionComponent<any> | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | "canvas" | "caption" | "cite" | "code" | "col" | "colgroup" | "data" | "datalist" | "dd" | "del" | "details" | "dfn" | "dialog" | "div" | "dl" | "dt" | "em" | "embed" | "fieldset" | "figcaption" | "figure" | "footer" | "form" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "head" | "header" | "hgroup" | "hr" | "html" | "i" | "iframe" | "img" | "input" | "ins" | "kbd" | "keygen" | "legend" | "li" | "link" | "main" | "map" | "mark" | "menu" | "menuitem" | "meta" | "meter" | "nav" | "noindex" | "noscript" | "ol" | "optgroup" | "option" | "output" | "p" | "param" | "picture" | "pre" | "progress" | "q" | "rp" | "rt" | "ruby" | "samp" | "script" | "section" | "select" | "small" | "source" | "span" | "strong" | "sub" | "summary" | "sup" | "table" | "template" | "tbody" | "td" | "textarea" | "tfoot" | "th" | "thead" | "time" | "tr" | "track" | "u" | "ul" | "var" | "video" | "wbr" | "webview" | "svg" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | undefined;
|
|
90
98
|
} & React.RefAttributes<unknown>>;
|
|
91
99
|
export { InputAutocompleteMobileProps, InputAutocompleteMobile };
|
package/cssm/Component.mobile.js
CHANGED
|
@@ -26,7 +26,7 @@ var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
|
|
|
26
26
|
|
|
27
27
|
var SELECTED = [];
|
|
28
28
|
var InputAutocompleteMobile = React__default['default'].forwardRef(function (_a, ref) {
|
|
29
|
-
var _b = _a.bottomSheetProps, bottomSheetProps = _b === void 0 ? {} : _b, _c = _a.bottomSheetHeaderAddonsProps, bottomSheetHeaderAddonsProps = _c === void 0 ? {} : _c, _d = _a.value, value = _d === void 0 ? '' : _d, _e = _a.filter, filter = _e === void 0 ? '' : _e, name = _a.name, _f = _a.Arrow, Arrow = _f === void 0 ? null : _f, label = _a.label, placeholder = _a.placeholder, _g = _a.size, size = _g === void 0 ? 's' : _g, openProp = _a.open, onFilter = _a.onFilter, onChange = _a.onChange, onOpen = _a.onOpen, onCancel = _a.onCancel, onClearFilter = _a.onClearFilter, continueButtonProps = _a.continueButtonProps, cancelButtonProps = _a.cancelButtonProps, restProps = tslib_es6.__rest(_a, ["bottomSheetProps", "bottomSheetHeaderAddonsProps", "value", "filter", "name", "Arrow", "label", "placeholder", "size", "open", "onFilter", "onChange", "onOpen", "onCancel", "onClearFilter", "continueButtonProps", "cancelButtonProps"]);
|
|
29
|
+
var Input = _a.Input, _b = _a.bottomSheetProps, bottomSheetProps = _b === void 0 ? {} : _b, _c = _a.bottomSheetHeaderAddonsProps, bottomSheetHeaderAddonsProps = _c === void 0 ? {} : _c, _d = _a.value, value = _d === void 0 ? '' : _d, _e = _a.filter, filter = _e === void 0 ? '' : _e, name = _a.name, _f = _a.Arrow, Arrow = _f === void 0 ? null : _f, label = _a.label, placeholder = _a.placeholder, _g = _a.size, size = _g === void 0 ? 's' : _g, openProp = _a.open, onFilter = _a.onFilter, onChange = _a.onChange, onOpen = _a.onOpen, onCancel = _a.onCancel, onClearFilter = _a.onClearFilter, continueButtonProps = _a.continueButtonProps, cancelButtonProps = _a.cancelButtonProps, restProps = tslib_es6.__rest(_a, ["Input", "bottomSheetProps", "bottomSheetHeaderAddonsProps", "value", "filter", "name", "Arrow", "label", "placeholder", "size", "open", "onFilter", "onChange", "onOpen", "onCancel", "onClearFilter", "continueButtonProps", "cancelButtonProps"]);
|
|
30
30
|
var _h = React.useState(false), open = _h[0], setOpen = _h[1];
|
|
31
31
|
var bottomSheetInputRef = React.useRef(null);
|
|
32
32
|
var targetRef = React.useRef(null);
|
|
@@ -69,9 +69,10 @@ var InputAutocompleteMobile = React__default['default'].forwardRef(function (_a,
|
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
71
|
var getBottomSheetProps = function () {
|
|
72
|
+
var Component = Input || coreComponentsInput.Input;
|
|
72
73
|
return tslib_es6.__assign(tslib_es6.__assign({ actionButton: (React__default['default'].createElement("div", { className: styles__default['default'].footer },
|
|
73
74
|
React__default['default'].createElement(coreComponentsButton.Button, tslib_es6.__assign({ block: true, view: 'primary', size: 's', onClick: handleChange }, continueButtonProps), "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C"),
|
|
74
|
-
React__default['default'].createElement(coreComponentsButton.Button, tslib_es6.__assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))), title: label || placeholder, bottomAddons: (React__default['default'].createElement(
|
|
75
|
+
React__default['default'].createElement(coreComponentsButton.Button, tslib_es6.__assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))), title: label || placeholder, bottomAddons: (React__default['default'].createElement(Component, tslib_es6.__assign({ block: true, clear: !!onClearFilter, onClear: onClearFilter, value: filter, onInput: onFilter, placeholder: placeholder, onFocus: handleInputFocus }, bottomSheetHeaderAddonsProps, { className: cn__default['default'](styles__default['default'].bottomSheetInput, bottomSheetHeaderAddonsProps.className), ref: mergeRefs__default['default']([
|
|
75
76
|
bottomSheetInputRef,
|
|
76
77
|
bottomSheetHeaderAddonsProps.ref,
|
|
77
78
|
]) }))), initialHeight: 'full' }, bottomSheetProps), { containerProps: tslib_es6.__assign({ onTouchMove: handleOptionsListTouchMove }, bottomSheetProps.containerProps) });
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import { FieldProps } from "@alfalab/core-components-select";
|
|
3
3
|
import { InputAutocompleteProps } from "../Component";
|
|
4
4
|
type AutocompleteFieldProps = FieldProps & Pick<InputAutocompleteProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;
|
|
5
|
-
declare const AutocompleteField: ({ label, placeholder, size, Arrow, Input, value, error, success, hint, disabled, readOnly, onInput, inputProps, innerProps, }: AutocompleteFieldProps) => JSX.Element;
|
|
5
|
+
declare const AutocompleteField: ({ label, labelView, placeholder, size, Arrow, Input, value, error, success, hint, disabled, readOnly, onInput, inputProps, innerProps, }: AutocompleteFieldProps) => JSX.Element;
|
|
6
6
|
export { AutocompleteFieldProps, AutocompleteField };
|
|
@@ -18,7 +18,7 @@ var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
|
|
|
18
18
|
|
|
19
19
|
var AutocompleteField = function (_a) {
|
|
20
20
|
var _b;
|
|
21
|
-
var label = _a.label, placeholder = _a.placeholder, size = _a.size, Arrow = _a.Arrow,
|
|
21
|
+
var label = _a.label, _c = _a.labelView, labelView = _c === void 0 ? 'inner' : _c, placeholder = _a.placeholder, size = _a.size, Arrow = _a.Arrow, _d = _a.Input, Input = _d === void 0 ? coreComponentsInput.Input : _d, value = _a.value, error = _a.error, success = _a.success, hint = _a.hint, disabled = _a.disabled, readOnly = _a.readOnly, onInput = _a.onInput, _e = _a.inputProps, inputProps = _e === void 0 ? {} : _e, innerProps = _a.innerProps;
|
|
22
22
|
var inputRef = React.useRef(null);
|
|
23
23
|
var onClick = innerProps.onClick, onFocus = innerProps.onFocus;
|
|
24
24
|
var inputDisabled = disabled || readOnly;
|
|
@@ -35,7 +35,7 @@ var AutocompleteField = function (_a) {
|
|
|
35
35
|
wrapperRef: mergeRefs__default['default']([innerProps.ref, inputProps.wrapperRef]),
|
|
36
36
|
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
|
|
37
37
|
// @ts-ignore
|
|
38
|
-
ref: mergeRefs__default['default']([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: onInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: (Arrow || inputProps.rightAddons) && (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
38
|
+
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: onInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: (Arrow || inputProps.rightAddons) && (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
39
39
|
inputProps.rightAddons,
|
|
40
40
|
Arrow && (React__default['default'].createElement("span", { className: cn__default['default'](styles__default['default'].arrow, (_b = {},
|
|
41
41
|
_b[styles__default['default'].error] = error,
|
|
@@ -3,5 +3,5 @@ import { FormControlProps } from "@alfalab/core-components-form-control";
|
|
|
3
3
|
import { FieldProps as BaseFieldProps } from "@alfalab/core-components-select";
|
|
4
4
|
import { InputAutocompleteProps } from "../index";
|
|
5
5
|
type AutocompleteMobileFieldProps = FormControlProps & Omit<BaseFieldProps, 'selected' | 'multiple' | 'success'> & Pick<InputAutocompleteProps, 'value'>;
|
|
6
|
-
declare const AutocompleteMobileField: ({ size, open, error, hint, disabled, label, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }: AutocompleteMobileFieldProps) => JSX.Element;
|
|
6
|
+
declare const AutocompleteMobileField: ({ size, open, error, hint, disabled, label, labelView, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }: AutocompleteMobileFieldProps) => JSX.Element;
|
|
7
7
|
export { AutocompleteMobileFieldProps, AutocompleteMobileField };
|
|
@@ -17,17 +17,17 @@ var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
|
|
|
17
17
|
|
|
18
18
|
var AutocompleteMobileField = function (_a) {
|
|
19
19
|
var _b;
|
|
20
|
-
var _c = _a.size, size = _c === void 0 ? 'm' : _c, open = _a.open, error = _a.error, hint = _a.hint, disabled = _a.disabled, label = _a.label, placeholder = _a.placeholder, value = _a.value, innerProps = _a.innerProps, dataTestId = _a.dataTestId, fieldClassName = _a.fieldClassName, Arrow = _a.Arrow, valueRenderer = _a.valueRenderer, toggleMenu = _a.toggleMenu, setSelectedItems = _a.setSelectedItems, selectedMultiple = _a.selectedMultiple, restProps = tslib_es6.__rest(_a, ["size", "open", "error", "hint", "disabled", "label", "placeholder", "value", "innerProps", "dataTestId", "fieldClassName", "Arrow", "valueRenderer", "toggleMenu", "setSelectedItems", "selectedMultiple"]);
|
|
21
|
-
var
|
|
20
|
+
var _c = _a.size, size = _c === void 0 ? 'm' : _c, open = _a.open, error = _a.error, hint = _a.hint, disabled = _a.disabled, label = _a.label, _d = _a.labelView, labelView = _d === void 0 ? 'inner' : _d, placeholder = _a.placeholder, value = _a.value, innerProps = _a.innerProps, dataTestId = _a.dataTestId, fieldClassName = _a.fieldClassName, Arrow = _a.Arrow, valueRenderer = _a.valueRenderer, toggleMenu = _a.toggleMenu, setSelectedItems = _a.setSelectedItems, selectedMultiple = _a.selectedMultiple, restProps = tslib_es6.__rest(_a, ["size", "open", "error", "hint", "disabled", "label", "labelView", "placeholder", "value", "innerProps", "dataTestId", "fieldClassName", "Arrow", "valueRenderer", "toggleMenu", "setSelectedItems", "selectedMultiple"]);
|
|
21
|
+
var _e = React.useState(false), focused = _e[0], setFocused = _e[1];
|
|
22
22
|
var wrapperRef = React.useRef(null);
|
|
23
23
|
var focusVisible = hooks.useFocus(wrapperRef, 'keyboard')[0];
|
|
24
24
|
var filled = Boolean(value);
|
|
25
|
-
var showLabel = !!label && (filled || !placeholder);
|
|
25
|
+
var showLabel = !!label && (filled || !placeholder || labelView === 'outer');
|
|
26
26
|
return (React__default['default'].createElement("div", { className: styles__default['default'].component, ref: wrapperRef, onFocus: function () { return setFocused(true); }, onBlur: function () { return setFocused(false); } },
|
|
27
27
|
React__default['default'].createElement(coreComponentsFormControl.FormControl, tslib_es6.__assign({ fieldClassName: cn__default['default'](styles__default['default'].field, fieldClassName, (_b = {},
|
|
28
28
|
_b[styles__default['default'].disabled] = disabled,
|
|
29
29
|
_b[styles__default['default'].focusVisible] = focusVisible,
|
|
30
|
-
_b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, label: showLabel && label, error: error, hint: hint, "data-test-id": dataTestId }, restProps, innerProps),
|
|
30
|
+
_b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, label: showLabel && label, labelView: labelView, error: error, hint: hint, "data-test-id": dataTestId }, restProps, innerProps),
|
|
31
31
|
React__default['default'].createElement("div", { className: styles__default['default'].contentWrapper },
|
|
32
32
|
placeholder && !filled && (React__default['default'].createElement("span", { className: styles__default['default'].placeholder }, placeholder)),
|
|
33
33
|
filled && React__default['default'].createElement("div", { className: styles__default['default'].value }, value)))));
|
package/esm/Component.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ type InputAutocompleteProps = Omit<BaseSelectProps, 'Field' | 'nativeSelect'> &
|
|
|
33
33
|
*/
|
|
34
34
|
updatePopover?: BaseSelectProps['updatePopover'];
|
|
35
35
|
};
|
|
36
|
-
declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onScroll" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "multiple" | "selected" | "valueRenderer" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
36
|
+
declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "labelView" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onScroll" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "multiple" | "selected" | "valueRenderer" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
37
37
|
/**
|
|
38
38
|
* Компонент ввода значения
|
|
39
39
|
*/
|
|
@@ -48,6 +48,7 @@ declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelect
|
|
|
48
48
|
success?: boolean | undefined;
|
|
49
49
|
hint?: React.ReactNode;
|
|
50
50
|
label?: React.ReactNode;
|
|
51
|
+
labelView?: "inner" | "outer" | undefined;
|
|
51
52
|
type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
|
|
52
53
|
wrapperRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
53
54
|
leftAddons?: React.ReactNode;
|
|
@@ -83,6 +84,7 @@ declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelect
|
|
|
83
84
|
success?: boolean | undefined;
|
|
84
85
|
hint?: React.ReactNode;
|
|
85
86
|
label?: React.ReactNode;
|
|
87
|
+
labelView?: "inner" | "outer" | undefined;
|
|
86
88
|
type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
|
|
87
89
|
wrapperRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
88
90
|
leftAddons?: React.ReactNode;
|
package/esm/Component.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { ChangeEvent } from "react";
|
|
3
|
+
import { ChangeEvent, ElementType } from "react";
|
|
4
4
|
import { BaseSelectProps, BaseSelectChangePayload } from "@alfalab/core-components-select";
|
|
5
5
|
import { ButtonProps } from "@alfalab/core-components-button";
|
|
6
6
|
import { BottomSheetProps } from "./index-7ca84eff";
|
|
@@ -45,8 +45,12 @@ type InputAutocompleteMobileProps = Omit<BaseSelectProps, 'OptionsList' | 'Check
|
|
|
45
45
|
* Дополнительные пропсы на кнопку "отмена"
|
|
46
46
|
*/
|
|
47
47
|
cancelButtonProps?: ButtonProps;
|
|
48
|
+
/**
|
|
49
|
+
* Кастомный инпут
|
|
50
|
+
*/
|
|
51
|
+
Input?: ElementType;
|
|
48
52
|
};
|
|
49
|
-
declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "Field" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
53
|
+
declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "labelView" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "Field" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
50
54
|
/**
|
|
51
55
|
* Обработчик выбора
|
|
52
56
|
*/
|
|
@@ -87,5 +91,9 @@ declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<Base
|
|
|
87
91
|
* Дополнительные пропсы на кнопку "отмена"
|
|
88
92
|
*/
|
|
89
93
|
cancelButtonProps?: Partial<import("@alfalab/core-components-button").AnchorButtonProps> | Partial<import("@alfalab/core-components-button").NativeButtonProps> | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Кастомный инпут
|
|
96
|
+
*/
|
|
97
|
+
Input?: "symbol" | "object" | "s" | "label" | "slot" | "style" | "title" | React.ComponentClass<any, any> | React.FunctionComponent<any> | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | "canvas" | "caption" | "cite" | "code" | "col" | "colgroup" | "data" | "datalist" | "dd" | "del" | "details" | "dfn" | "dialog" | "div" | "dl" | "dt" | "em" | "embed" | "fieldset" | "figcaption" | "figure" | "footer" | "form" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "head" | "header" | "hgroup" | "hr" | "html" | "i" | "iframe" | "img" | "input" | "ins" | "kbd" | "keygen" | "legend" | "li" | "link" | "main" | "map" | "mark" | "menu" | "menuitem" | "meta" | "meter" | "nav" | "noindex" | "noscript" | "ol" | "optgroup" | "option" | "output" | "p" | "param" | "picture" | "pre" | "progress" | "q" | "rp" | "rt" | "ruby" | "samp" | "script" | "section" | "select" | "small" | "source" | "span" | "strong" | "sub" | "summary" | "sup" | "table" | "template" | "tbody" | "td" | "textarea" | "tfoot" | "th" | "thead" | "time" | "tr" | "track" | "u" | "ul" | "var" | "video" | "wbr" | "webview" | "svg" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | undefined;
|
|
90
98
|
} & React.RefAttributes<unknown>>;
|
|
91
99
|
export { InputAutocompleteMobileProps, InputAutocompleteMobile };
|
package/esm/Component.mobile.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as __rest, a as __assign } from './tslib.es6-
|
|
1
|
+
import { _ as __rest, a as __assign } from './tslib.es6-0351ba9b.js';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
import React, { useState, useRef, useMemo } from 'react';
|
|
4
4
|
import mergeRefs from 'react-merge-refs';
|
|
@@ -10,12 +10,12 @@ import '@alfalab/hooks';
|
|
|
10
10
|
import '@alfalab/core-components-form-control/esm';
|
|
11
11
|
import { AutocompleteMobileField } from './autocomplete-mobile-field/Component.js';
|
|
12
12
|
|
|
13
|
-
var styles = {"bottomSheetInput":"input-
|
|
13
|
+
var styles = {"bottomSheetInput":"input-autocomplete__bottomSheetInput_oluh5","footer":"input-autocomplete__footer_oluh5"};
|
|
14
14
|
require('./mobile.css')
|
|
15
15
|
|
|
16
16
|
var SELECTED = [];
|
|
17
17
|
var InputAutocompleteMobile = React.forwardRef(function (_a, ref) {
|
|
18
|
-
var _b = _a.bottomSheetProps, bottomSheetProps = _b === void 0 ? {} : _b, _c = _a.bottomSheetHeaderAddonsProps, bottomSheetHeaderAddonsProps = _c === void 0 ? {} : _c, _d = _a.value, value = _d === void 0 ? '' : _d, _e = _a.filter, filter = _e === void 0 ? '' : _e, name = _a.name, _f = _a.Arrow, Arrow = _f === void 0 ? null : _f, label = _a.label, placeholder = _a.placeholder, _g = _a.size, size = _g === void 0 ? 's' : _g, openProp = _a.open, onFilter = _a.onFilter, onChange = _a.onChange, onOpen = _a.onOpen, onCancel = _a.onCancel, onClearFilter = _a.onClearFilter, continueButtonProps = _a.continueButtonProps, cancelButtonProps = _a.cancelButtonProps, restProps = __rest(_a, ["bottomSheetProps", "bottomSheetHeaderAddonsProps", "value", "filter", "name", "Arrow", "label", "placeholder", "size", "open", "onFilter", "onChange", "onOpen", "onCancel", "onClearFilter", "continueButtonProps", "cancelButtonProps"]);
|
|
18
|
+
var Input$1 = _a.Input, _b = _a.bottomSheetProps, bottomSheetProps = _b === void 0 ? {} : _b, _c = _a.bottomSheetHeaderAddonsProps, bottomSheetHeaderAddonsProps = _c === void 0 ? {} : _c, _d = _a.value, value = _d === void 0 ? '' : _d, _e = _a.filter, filter = _e === void 0 ? '' : _e, name = _a.name, _f = _a.Arrow, Arrow = _f === void 0 ? null : _f, label = _a.label, placeholder = _a.placeholder, _g = _a.size, size = _g === void 0 ? 's' : _g, openProp = _a.open, onFilter = _a.onFilter, onChange = _a.onChange, onOpen = _a.onOpen, onCancel = _a.onCancel, onClearFilter = _a.onClearFilter, continueButtonProps = _a.continueButtonProps, cancelButtonProps = _a.cancelButtonProps, restProps = __rest(_a, ["Input", "bottomSheetProps", "bottomSheetHeaderAddonsProps", "value", "filter", "name", "Arrow", "label", "placeholder", "size", "open", "onFilter", "onChange", "onOpen", "onCancel", "onClearFilter", "continueButtonProps", "cancelButtonProps"]);
|
|
19
19
|
var _h = useState(false), open = _h[0], setOpen = _h[1];
|
|
20
20
|
var bottomSheetInputRef = useRef(null);
|
|
21
21
|
var targetRef = useRef(null);
|
|
@@ -58,9 +58,10 @@ var InputAutocompleteMobile = React.forwardRef(function (_a, ref) {
|
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
var getBottomSheetProps = function () {
|
|
61
|
+
var Component = Input$1 || Input;
|
|
61
62
|
return __assign(__assign({ actionButton: (React.createElement("div", { className: styles.footer },
|
|
62
63
|
React.createElement(Button, __assign({ block: true, view: 'primary', size: 's', onClick: handleChange }, continueButtonProps), "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C"),
|
|
63
|
-
React.createElement(Button, __assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))), title: label || placeholder, bottomAddons: (React.createElement(
|
|
64
|
+
React.createElement(Button, __assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))), title: label || placeholder, bottomAddons: (React.createElement(Component, __assign({ block: true, clear: !!onClearFilter, onClear: onClearFilter, value: filter, onInput: onFilter, placeholder: placeholder, onFocus: handleInputFocus }, bottomSheetHeaderAddonsProps, { className: cn(styles.bottomSheetInput, bottomSheetHeaderAddonsProps.className), ref: mergeRefs([
|
|
64
65
|
bottomSheetInputRef,
|
|
65
66
|
bottomSheetHeaderAddonsProps.ref,
|
|
66
67
|
]) }))), initialHeight: 'full' }, bottomSheetProps), { containerProps: __assign({ onTouchMove: handleOptionsListTouchMove }, bottomSheetProps.containerProps) });
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import { FieldProps } from "@alfalab/core-components-select";
|
|
3
3
|
import { InputAutocompleteProps } from "../Component";
|
|
4
4
|
type AutocompleteFieldProps = FieldProps & Pick<InputAutocompleteProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;
|
|
5
|
-
declare const AutocompleteField: ({ label, placeholder, size, Arrow, Input, value, error, success, hint, disabled, readOnly, onInput, inputProps, innerProps, }: AutocompleteFieldProps) => JSX.Element;
|
|
5
|
+
declare const AutocompleteField: ({ label, labelView, placeholder, size, Arrow, Input, value, error, success, hint, disabled, readOnly, onInput, inputProps, innerProps, }: AutocompleteFieldProps) => JSX.Element;
|
|
6
6
|
export { AutocompleteFieldProps, AutocompleteField };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { a as __assign } from '../tslib.es6-
|
|
1
|
+
import { a as __assign } from '../tslib.es6-0351ba9b.js';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
import React, { useRef, useCallback } from 'react';
|
|
4
4
|
import mergeRefs from 'react-merge-refs';
|
|
5
5
|
import { Input } from '@alfalab/core-components-input/esm';
|
|
6
6
|
|
|
7
|
-
var styles = {"arrow":"input-
|
|
7
|
+
var styles = {"arrow":"input-autocomplete__arrow_m56b2","error":"input-autocomplete__error_m56b2"};
|
|
8
8
|
require('./index.css')
|
|
9
9
|
|
|
10
10
|
var AutocompleteField = function (_a) {
|
|
11
11
|
var _b;
|
|
12
|
-
var label = _a.label, placeholder = _a.placeholder, size = _a.size, Arrow = _a.Arrow,
|
|
12
|
+
var label = _a.label, _c = _a.labelView, labelView = _c === void 0 ? 'inner' : _c, placeholder = _a.placeholder, size = _a.size, Arrow = _a.Arrow, _d = _a.Input, Input$1 = _d === void 0 ? Input : _d, value = _a.value, error = _a.error, success = _a.success, hint = _a.hint, disabled = _a.disabled, readOnly = _a.readOnly, onInput = _a.onInput, _e = _a.inputProps, inputProps = _e === void 0 ? {} : _e, innerProps = _a.innerProps;
|
|
13
13
|
var inputRef = useRef(null);
|
|
14
14
|
var onClick = innerProps.onClick, onFocus = innerProps.onFocus;
|
|
15
15
|
var inputDisabled = disabled || readOnly;
|
|
@@ -26,7 +26,7 @@ var AutocompleteField = function (_a) {
|
|
|
26
26
|
wrapperRef: mergeRefs([innerProps.ref, inputProps.wrapperRef]),
|
|
27
27
|
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
|
|
28
28
|
// @ts-ignore
|
|
29
|
-
ref: mergeRefs([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: onInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: (Arrow || inputProps.rightAddons) && (React.createElement(React.Fragment, null,
|
|
29
|
+
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: onInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: (Arrow || inputProps.rightAddons) && (React.createElement(React.Fragment, null,
|
|
30
30
|
inputProps.rightAddons,
|
|
31
31
|
Arrow && (React.createElement("span", { className: cn(styles.arrow, (_b = {},
|
|
32
32
|
_b[styles.error] = error,
|
|
@@ -3,5 +3,5 @@ import { FormControlProps } from "@alfalab/core-components-form-control";
|
|
|
3
3
|
import { FieldProps as BaseFieldProps } from "@alfalab/core-components-select";
|
|
4
4
|
import { InputAutocompleteProps } from "../index";
|
|
5
5
|
type AutocompleteMobileFieldProps = FormControlProps & Omit<BaseFieldProps, 'selected' | 'multiple' | 'success'> & Pick<InputAutocompleteProps, 'value'>;
|
|
6
|
-
declare const AutocompleteMobileField: ({ size, open, error, hint, disabled, label, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }: AutocompleteMobileFieldProps) => JSX.Element;
|
|
6
|
+
declare const AutocompleteMobileField: ({ size, open, error, hint, disabled, label, labelView, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }: AutocompleteMobileFieldProps) => JSX.Element;
|
|
7
7
|
export { AutocompleteMobileFieldProps, AutocompleteMobileField };
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { _ as __rest, a as __assign } from '../tslib.es6-
|
|
1
|
+
import { _ as __rest, a as __assign } from '../tslib.es6-0351ba9b.js';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
import React, { useState, useRef } from 'react';
|
|
4
4
|
import { useFocus } from '@alfalab/hooks';
|
|
5
5
|
import { FormControl } from '@alfalab/core-components-form-control/esm';
|
|
6
6
|
|
|
7
|
-
var styles = {"component":"input-
|
|
7
|
+
var styles = {"component":"input-autocomplete__component_wegyt","field":"input-autocomplete__field_wegyt","disabled":"input-autocomplete__disabled_wegyt","placeholder":"input-autocomplete__placeholder_wegyt","contentWrapper":"input-autocomplete__contentWrapper_wegyt","value":"input-autocomplete__value_wegyt","focusVisible":"input-autocomplete__focusVisible_wegyt"};
|
|
8
8
|
require('./index.css')
|
|
9
9
|
|
|
10
10
|
var AutocompleteMobileField = function (_a) {
|
|
11
11
|
var _b;
|
|
12
|
-
var _c = _a.size, size = _c === void 0 ? 'm' : _c, open = _a.open, error = _a.error, hint = _a.hint, disabled = _a.disabled, label = _a.label, placeholder = _a.placeholder, value = _a.value, innerProps = _a.innerProps, dataTestId = _a.dataTestId, fieldClassName = _a.fieldClassName, Arrow = _a.Arrow, valueRenderer = _a.valueRenderer, toggleMenu = _a.toggleMenu, setSelectedItems = _a.setSelectedItems, selectedMultiple = _a.selectedMultiple, restProps = __rest(_a, ["size", "open", "error", "hint", "disabled", "label", "placeholder", "value", "innerProps", "dataTestId", "fieldClassName", "Arrow", "valueRenderer", "toggleMenu", "setSelectedItems", "selectedMultiple"]);
|
|
13
|
-
var
|
|
12
|
+
var _c = _a.size, size = _c === void 0 ? 'm' : _c, open = _a.open, error = _a.error, hint = _a.hint, disabled = _a.disabled, label = _a.label, _d = _a.labelView, labelView = _d === void 0 ? 'inner' : _d, placeholder = _a.placeholder, value = _a.value, innerProps = _a.innerProps, dataTestId = _a.dataTestId, fieldClassName = _a.fieldClassName, Arrow = _a.Arrow, valueRenderer = _a.valueRenderer, toggleMenu = _a.toggleMenu, setSelectedItems = _a.setSelectedItems, selectedMultiple = _a.selectedMultiple, restProps = __rest(_a, ["size", "open", "error", "hint", "disabled", "label", "labelView", "placeholder", "value", "innerProps", "dataTestId", "fieldClassName", "Arrow", "valueRenderer", "toggleMenu", "setSelectedItems", "selectedMultiple"]);
|
|
13
|
+
var _e = useState(false), focused = _e[0], setFocused = _e[1];
|
|
14
14
|
var wrapperRef = useRef(null);
|
|
15
15
|
var focusVisible = useFocus(wrapperRef, 'keyboard')[0];
|
|
16
16
|
var filled = Boolean(value);
|
|
17
|
-
var showLabel = !!label && (filled || !placeholder);
|
|
17
|
+
var showLabel = !!label && (filled || !placeholder || labelView === 'outer');
|
|
18
18
|
return (React.createElement("div", { className: styles.component, ref: wrapperRef, onFocus: function () { return setFocused(true); }, onBlur: function () { return setFocused(false); } },
|
|
19
19
|
React.createElement(FormControl, __assign({ fieldClassName: cn(styles.field, fieldClassName, (_b = {},
|
|
20
20
|
_b[styles.disabled] = disabled,
|
|
21
21
|
_b[styles.focusVisible] = focusVisible,
|
|
22
|
-
_b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, label: showLabel && label, error: error, hint: hint, "data-test-id": dataTestId }, restProps, innerProps),
|
|
22
|
+
_b)), block: true, size: size, focused: focused, disabled: disabled, filled: filled, label: showLabel && label, labelView: labelView, error: error, hint: hint, "data-test-id": dataTestId }, restProps, innerProps),
|
|
23
23
|
React.createElement("div", { className: styles.contentWrapper },
|
|
24
24
|
placeholder && !filled && (React.createElement("span", { className: styles.placeholder }, placeholder)),
|
|
25
25
|
filled && React.createElement("div", { className: styles.value }, value)))));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: n8v03 */
|
|
2
2
|
:root {
|
|
3
3
|
--color-light-border-link: #007aff;
|
|
4
4
|
--color-light-text-secondary: #546272;
|
|
@@ -15,20 +15,20 @@
|
|
|
15
15
|
--focus-color: var(--color-light-border-link);
|
|
16
16
|
--disabled-cursor: not-allowed;
|
|
17
17
|
}
|
|
18
|
-
.input-
|
|
18
|
+
.input-autocomplete__component_wegyt {
|
|
19
19
|
width: 100%;
|
|
20
20
|
outline: none;
|
|
21
21
|
}
|
|
22
|
-
.input-
|
|
22
|
+
.input-autocomplete__field_wegyt:not(.input-autocomplete__disabled_wegyt) {
|
|
23
23
|
cursor: pointer;
|
|
24
24
|
}
|
|
25
|
-
.input-
|
|
25
|
+
.input-autocomplete__disabled_wegyt {
|
|
26
26
|
cursor: var(--disabled-cursor);
|
|
27
27
|
}
|
|
28
|
-
.input-
|
|
28
|
+
.input-autocomplete__placeholder_wegyt {
|
|
29
29
|
color: var(--color-light-text-secondary);
|
|
30
30
|
}
|
|
31
|
-
.input-
|
|
31
|
+
.input-autocomplete__contentWrapper_wegyt {
|
|
32
32
|
font-size: 16px;
|
|
33
33
|
line-height: 20px;
|
|
34
34
|
font-weight: 400;
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
overflow: hidden;
|
|
39
39
|
width: 100%;
|
|
40
40
|
}
|
|
41
|
-
.input-
|
|
41
|
+
.input-autocomplete__value_wegyt {
|
|
42
42
|
overflow: hidden;
|
|
43
43
|
text-overflow: ellipsis;
|
|
44
44
|
text-align: left;
|
|
45
45
|
}
|
|
46
|
-
.input-
|
|
46
|
+
.input-autocomplete__focusVisible_wegyt {
|
|
47
47
|
outline: 2px solid var(--focus-color);
|
|
48
48
|
outline-offset: 2px;
|
|
49
49
|
}
|
package/esm/index.js
CHANGED
package/esm/mobile.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 13rp7 */
|
|
2
2
|
:root {
|
|
3
3
|
|
|
4
4
|
/* Hard */
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
--gap-xs: 8px;
|
|
12
12
|
--gap-m: 16px;
|
|
13
13
|
}
|
|
14
|
-
.input-
|
|
14
|
+
.input-autocomplete__bottomSheetInput_oluh5 {
|
|
15
15
|
padding: 0 var(--gap-xs) var(--gap-xs);
|
|
16
16
|
box-sizing: border-box;
|
|
17
17
|
}
|
|
18
|
-
.input-
|
|
18
|
+
.input-autocomplete__footer_oluh5 {
|
|
19
19
|
display: flex
|
|
20
20
|
}
|
|
21
|
-
.input-
|
|
21
|
+
.input-autocomplete__footer_oluh5 > button + button {
|
|
22
22
|
margin-left: var(--gap-m);
|
|
23
23
|
}
|
package/esm/mobile.js
CHANGED
|
File without changes
|
|
File without changes
|
package/index.js
CHANGED
package/mobile.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 13rp7 */
|
|
2
2
|
:root {
|
|
3
3
|
|
|
4
4
|
/* Hard */
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
--gap-xs: 8px;
|
|
12
12
|
--gap-m: 16px;
|
|
13
13
|
}
|
|
14
|
-
.input-
|
|
14
|
+
.input-autocomplete__bottomSheetInput_oluh5 {
|
|
15
15
|
padding: 0 var(--gap-xs) var(--gap-xs);
|
|
16
16
|
box-sizing: border-box;
|
|
17
17
|
}
|
|
18
|
-
.input-
|
|
18
|
+
.input-autocomplete__footer_oluh5 {
|
|
19
19
|
display: flex
|
|
20
20
|
}
|
|
21
|
-
.input-
|
|
21
|
+
.input-autocomplete__footer_oluh5 > button + button {
|
|
22
22
|
margin-left: var(--gap-m);
|
|
23
23
|
}
|
package/mobile.js
CHANGED
package/modern/Component.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ type InputAutocompleteProps = Omit<BaseSelectProps, 'Field' | 'nativeSelect'> &
|
|
|
33
33
|
*/
|
|
34
34
|
updatePopover?: BaseSelectProps['updatePopover'];
|
|
35
35
|
};
|
|
36
|
-
declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onScroll" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "multiple" | "selected" | "valueRenderer" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
36
|
+
declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "labelView" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onScroll" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "multiple" | "selected" | "valueRenderer" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
37
37
|
/**
|
|
38
38
|
* Компонент ввода значения
|
|
39
39
|
*/
|
|
@@ -48,6 +48,7 @@ declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelect
|
|
|
48
48
|
success?: boolean | undefined;
|
|
49
49
|
hint?: React.ReactNode;
|
|
50
50
|
label?: React.ReactNode;
|
|
51
|
+
labelView?: "inner" | "outer" | undefined;
|
|
51
52
|
type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
|
|
52
53
|
wrapperRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
53
54
|
leftAddons?: React.ReactNode;
|
|
@@ -83,6 +84,7 @@ declare const InputAutocomplete: React.ForwardRefExoticComponent<Pick<BaseSelect
|
|
|
83
84
|
success?: boolean | undefined;
|
|
84
85
|
hint?: React.ReactNode;
|
|
85
86
|
label?: React.ReactNode;
|
|
87
|
+
labelView?: "inner" | "outer" | undefined;
|
|
86
88
|
type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
|
|
87
89
|
wrapperRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
88
90
|
leftAddons?: React.ReactNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { ChangeEvent } from "react";
|
|
3
|
+
import { ChangeEvent, ElementType } from "react";
|
|
4
4
|
import { BaseSelectProps, BaseSelectChangePayload } from "@alfalab/core-components-select";
|
|
5
5
|
import { ButtonProps } from "@alfalab/core-components-button";
|
|
6
6
|
import { BottomSheetProps } from "./index-7ca84eff";
|
|
@@ -45,8 +45,12 @@ type InputAutocompleteMobileProps = Omit<BaseSelectProps, 'OptionsList' | 'Check
|
|
|
45
45
|
* Дополнительные пропсы на кнопку "отмена"
|
|
46
46
|
*/
|
|
47
47
|
cancelButtonProps?: ButtonProps;
|
|
48
|
+
/**
|
|
49
|
+
* Кастомный инпут
|
|
50
|
+
*/
|
|
51
|
+
Input?: ElementType;
|
|
48
52
|
};
|
|
49
|
-
declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "Field" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
53
|
+
declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "block" | "size" | "className" | "fieldClassName" | "disabled" | "error" | "hint" | "label" | "labelView" | "dataTestId" | "id" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "preventFlip" | "popperClassName" | "open" | "name" | "options" | "Optgroup" | "optionsListWidth" | "visibleOptions" | "Arrow" | "optionGroupClassName" | "Option" | "optionsListClassName" | "optionClassName" | "closeOnSelect" | "circularNavigation" | "defaultOpen" | "popoverPosition" | "optionsSize" | "fieldProps" | "optionsListProps" | "optionProps" | "onOpen" | "Field" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & {
|
|
50
54
|
/**
|
|
51
55
|
* Обработчик выбора
|
|
52
56
|
*/
|
|
@@ -87,5 +91,9 @@ declare const InputAutocompleteMobile: React.ForwardRefExoticComponent<Pick<Base
|
|
|
87
91
|
* Дополнительные пропсы на кнопку "отмена"
|
|
88
92
|
*/
|
|
89
93
|
cancelButtonProps?: Partial<import("@alfalab/core-components-button").AnchorButtonProps> | Partial<import("@alfalab/core-components-button").NativeButtonProps> | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Кастомный инпут
|
|
96
|
+
*/
|
|
97
|
+
Input?: "symbol" | "object" | "s" | "label" | "slot" | "style" | "title" | React.ComponentClass<any, any> | React.FunctionComponent<any> | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | "canvas" | "caption" | "cite" | "code" | "col" | "colgroup" | "data" | "datalist" | "dd" | "del" | "details" | "dfn" | "dialog" | "div" | "dl" | "dt" | "em" | "embed" | "fieldset" | "figcaption" | "figure" | "footer" | "form" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "head" | "header" | "hgroup" | "hr" | "html" | "i" | "iframe" | "img" | "input" | "ins" | "kbd" | "keygen" | "legend" | "li" | "link" | "main" | "map" | "mark" | "menu" | "menuitem" | "meta" | "meter" | "nav" | "noindex" | "noscript" | "ol" | "optgroup" | "option" | "output" | "p" | "param" | "picture" | "pre" | "progress" | "q" | "rp" | "rt" | "ruby" | "samp" | "script" | "section" | "select" | "small" | "source" | "span" | "strong" | "sub" | "summary" | "sup" | "table" | "template" | "tbody" | "td" | "textarea" | "tfoot" | "th" | "thead" | "time" | "tr" | "track" | "u" | "ul" | "var" | "video" | "wbr" | "webview" | "svg" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | undefined;
|
|
90
98
|
} & React.RefAttributes<unknown>>;
|
|
91
99
|
export { InputAutocompleteMobileProps, InputAutocompleteMobile };
|
|
@@ -9,11 +9,11 @@ import '@alfalab/hooks';
|
|
|
9
9
|
import '@alfalab/core-components-form-control/modern';
|
|
10
10
|
import { AutocompleteMobileField } from './autocomplete-mobile-field/Component.js';
|
|
11
11
|
|
|
12
|
-
var styles = {"bottomSheetInput":"input-
|
|
12
|
+
var styles = {"bottomSheetInput":"input-autocomplete__bottomSheetInput_oluh5","footer":"input-autocomplete__footer_oluh5"};
|
|
13
13
|
require('./mobile.css')
|
|
14
14
|
|
|
15
15
|
const SELECTED = [];
|
|
16
|
-
const InputAutocompleteMobile = React.forwardRef(({ bottomSheetProps = {}, bottomSheetHeaderAddonsProps = {}, value = '', filter = '', name, Arrow = null, label, placeholder, size = 's', open: openProp, onFilter, onChange, onOpen, onCancel, onClearFilter, continueButtonProps, cancelButtonProps, ...restProps }, ref) => {
|
|
16
|
+
const InputAutocompleteMobile = React.forwardRef(({ Input: Input$1, bottomSheetProps = {}, bottomSheetHeaderAddonsProps = {}, value = '', filter = '', name, Arrow = null, label, placeholder, size = 's', open: openProp, onFilter, onChange, onOpen, onCancel, onClearFilter, continueButtonProps, cancelButtonProps, ...restProps }, ref) => {
|
|
17
17
|
const [open, setOpen] = useState(false);
|
|
18
18
|
const bottomSheetInputRef = useRef(null);
|
|
19
19
|
const targetRef = useRef(null);
|
|
@@ -56,12 +56,13 @@ const InputAutocompleteMobile = React.forwardRef(({ bottomSheetProps = {}, botto
|
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
const getBottomSheetProps = () => {
|
|
59
|
+
const Component = Input$1 || Input;
|
|
59
60
|
return {
|
|
60
61
|
actionButton: (React.createElement("div", { className: styles.footer },
|
|
61
62
|
React.createElement(Button, Object.assign({ block: true, view: 'primary', size: 's', onClick: handleChange }, continueButtonProps), "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C"),
|
|
62
63
|
React.createElement(Button, Object.assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))),
|
|
63
64
|
title: label || placeholder,
|
|
64
|
-
bottomAddons: (React.createElement(
|
|
65
|
+
bottomAddons: (React.createElement(Component, Object.assign({ block: true, clear: !!onClearFilter, onClear: onClearFilter, value: filter, onInput: onFilter, placeholder: placeholder, onFocus: handleInputFocus }, bottomSheetHeaderAddonsProps, { className: cn(styles.bottomSheetInput, bottomSheetHeaderAddonsProps.className), ref: mergeRefs([
|
|
65
66
|
bottomSheetInputRef,
|
|
66
67
|
bottomSheetHeaderAddonsProps.ref,
|
|
67
68
|
]) }))),
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import { FieldProps } from "@alfalab/core-components-select";
|
|
3
3
|
import { InputAutocompleteProps } from "../Component";
|
|
4
4
|
type AutocompleteFieldProps = FieldProps & Pick<InputAutocompleteProps, 'Input' | 'inputProps' | 'value' | 'onInput' | 'readOnly'>;
|
|
5
|
-
declare const AutocompleteField: ({ label, placeholder, size, Arrow, Input, value, error, success, hint, disabled, readOnly, onInput, inputProps, innerProps, }: AutocompleteFieldProps) => JSX.Element;
|
|
5
|
+
declare const AutocompleteField: ({ label, labelView, placeholder, size, Arrow, Input, value, error, success, hint, disabled, readOnly, onInput, inputProps, innerProps, }: AutocompleteFieldProps) => JSX.Element;
|
|
6
6
|
export { AutocompleteFieldProps, AutocompleteField };
|
|
@@ -3,10 +3,10 @@ import React, { useRef, useCallback } from 'react';
|
|
|
3
3
|
import mergeRefs from 'react-merge-refs';
|
|
4
4
|
import { Input } from '@alfalab/core-components-input/modern';
|
|
5
5
|
|
|
6
|
-
var styles = {"arrow":"input-
|
|
6
|
+
var styles = {"arrow":"input-autocomplete__arrow_m56b2","error":"input-autocomplete__error_m56b2"};
|
|
7
7
|
require('./index.css')
|
|
8
8
|
|
|
9
|
-
const AutocompleteField = ({ label, placeholder, size, Arrow, Input: Input$1 = Input, value, error, success, hint, disabled, readOnly, onInput, inputProps = {}, innerProps, }) => {
|
|
9
|
+
const AutocompleteField = ({ label, labelView = 'inner', placeholder, size, Arrow, Input: Input$1 = Input, value, error, success, hint, disabled, readOnly, onInput, inputProps = {}, innerProps, }) => {
|
|
10
10
|
const inputRef = useRef(null);
|
|
11
11
|
const { onClick, onFocus } = innerProps;
|
|
12
12
|
const inputDisabled = disabled || readOnly;
|
|
@@ -23,7 +23,7 @@ const AutocompleteField = ({ label, placeholder, size, Arrow, Input: Input$1 = I
|
|
|
23
23
|
wrapperRef: mergeRefs([innerProps.ref, inputProps.wrapperRef]),
|
|
24
24
|
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
|
|
25
25
|
// @ts-ignore
|
|
26
|
-
ref: mergeRefs([inputRef, inputProps.ref]), disabled: disabled, readOnly: readOnly, block: true, label: label, placeholder: placeholder, size: size, error: error, success: success, hint: hint, onChange: onInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: (Arrow || inputProps.rightAddons) && (React.createElement(React.Fragment, null,
|
|
26
|
+
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: onInput, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : onFocus, autoComplete: 'off', value: value, rightAddons: (Arrow || inputProps.rightAddons) && (React.createElement(React.Fragment, null,
|
|
27
27
|
inputProps.rightAddons,
|
|
28
28
|
Arrow && (React.createElement("span", { className: cn(styles.arrow, {
|
|
29
29
|
[styles.error]: error,
|
|
@@ -3,5 +3,5 @@ import { FormControlProps } from "@alfalab/core-components-form-control";
|
|
|
3
3
|
import { FieldProps as BaseFieldProps } from "@alfalab/core-components-select";
|
|
4
4
|
import { InputAutocompleteProps } from "../index";
|
|
5
5
|
type AutocompleteMobileFieldProps = FormControlProps & Omit<BaseFieldProps, 'selected' | 'multiple' | 'success'> & Pick<InputAutocompleteProps, 'value'>;
|
|
6
|
-
declare const AutocompleteMobileField: ({ size, open, error, hint, disabled, label, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }: AutocompleteMobileFieldProps) => JSX.Element;
|
|
6
|
+
declare const AutocompleteMobileField: ({ size, open, error, hint, disabled, label, labelView, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }: AutocompleteMobileFieldProps) => JSX.Element;
|
|
7
7
|
export { AutocompleteMobileFieldProps, AutocompleteMobileField };
|
|
@@ -3,20 +3,20 @@ import React, { useState, useRef } from 'react';
|
|
|
3
3
|
import { useFocus } from '@alfalab/hooks';
|
|
4
4
|
import { FormControl } from '@alfalab/core-components-form-control/modern';
|
|
5
5
|
|
|
6
|
-
var styles = {"component":"input-
|
|
6
|
+
var styles = {"component":"input-autocomplete__component_wegyt","field":"input-autocomplete__field_wegyt","disabled":"input-autocomplete__disabled_wegyt","placeholder":"input-autocomplete__placeholder_wegyt","contentWrapper":"input-autocomplete__contentWrapper_wegyt","value":"input-autocomplete__value_wegyt","focusVisible":"input-autocomplete__focusVisible_wegyt"};
|
|
7
7
|
require('./index.css')
|
|
8
8
|
|
|
9
|
-
const AutocompleteMobileField = ({ size = 'm', open, error, hint, disabled, label, placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }) => {
|
|
9
|
+
const AutocompleteMobileField = ({ size = 'm', open, error, hint, disabled, label, labelView = 'inner', placeholder, value, innerProps, dataTestId, fieldClassName, Arrow, valueRenderer, toggleMenu, setSelectedItems, selectedMultiple, ...restProps }) => {
|
|
10
10
|
const [focused, setFocused] = useState(false);
|
|
11
11
|
const wrapperRef = useRef(null);
|
|
12
12
|
const [focusVisible] = useFocus(wrapperRef, 'keyboard');
|
|
13
13
|
const filled = Boolean(value);
|
|
14
|
-
const showLabel = !!label && (filled || !placeholder);
|
|
14
|
+
const showLabel = !!label && (filled || !placeholder || labelView === 'outer');
|
|
15
15
|
return (React.createElement("div", { className: styles.component, ref: wrapperRef, onFocus: () => setFocused(true), onBlur: () => setFocused(false) },
|
|
16
16
|
React.createElement(FormControl, Object.assign({ fieldClassName: cn(styles.field, fieldClassName, {
|
|
17
17
|
[styles.disabled]: disabled,
|
|
18
18
|
[styles.focusVisible]: focusVisible,
|
|
19
|
-
}), block: true, size: size, focused: focused, disabled: disabled, filled: filled, label: showLabel && label, error: error, hint: hint, "data-test-id": dataTestId }, restProps, innerProps),
|
|
19
|
+
}), block: true, size: size, focused: focused, disabled: disabled, filled: filled, label: showLabel && label, labelView: labelView, error: error, hint: hint, "data-test-id": dataTestId }, restProps, innerProps),
|
|
20
20
|
React.createElement("div", { className: styles.contentWrapper },
|
|
21
21
|
placeholder && !filled && (React.createElement("span", { className: styles.placeholder }, placeholder)),
|
|
22
22
|
filled && React.createElement("div", { className: styles.value }, value)))));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: n8v03 */
|
|
2
2
|
:root {
|
|
3
3
|
--color-light-border-link: #007aff;
|
|
4
4
|
--color-light-text-secondary: #546272;
|
|
@@ -15,20 +15,20 @@
|
|
|
15
15
|
--focus-color: var(--color-light-border-link);
|
|
16
16
|
--disabled-cursor: not-allowed;
|
|
17
17
|
}
|
|
18
|
-
.input-
|
|
18
|
+
.input-autocomplete__component_wegyt {
|
|
19
19
|
width: 100%;
|
|
20
20
|
outline: none;
|
|
21
21
|
}
|
|
22
|
-
.input-
|
|
22
|
+
.input-autocomplete__field_wegyt:not(.input-autocomplete__disabled_wegyt) {
|
|
23
23
|
cursor: pointer;
|
|
24
24
|
}
|
|
25
|
-
.input-
|
|
25
|
+
.input-autocomplete__disabled_wegyt {
|
|
26
26
|
cursor: var(--disabled-cursor);
|
|
27
27
|
}
|
|
28
|
-
.input-
|
|
28
|
+
.input-autocomplete__placeholder_wegyt {
|
|
29
29
|
color: var(--color-light-text-secondary);
|
|
30
30
|
}
|
|
31
|
-
.input-
|
|
31
|
+
.input-autocomplete__contentWrapper_wegyt {
|
|
32
32
|
font-size: 16px;
|
|
33
33
|
line-height: 20px;
|
|
34
34
|
font-weight: 400;
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
overflow: hidden;
|
|
39
39
|
width: 100%;
|
|
40
40
|
}
|
|
41
|
-
.input-
|
|
41
|
+
.input-autocomplete__value_wegyt {
|
|
42
42
|
overflow: hidden;
|
|
43
43
|
text-overflow: ellipsis;
|
|
44
44
|
text-align: left;
|
|
45
45
|
}
|
|
46
|
-
.input-
|
|
46
|
+
.input-autocomplete__focusVisible_wegyt {
|
|
47
47
|
outline: 2px solid var(--focus-color);
|
|
48
48
|
outline-offset: 2px;
|
|
49
49
|
}
|
package/modern/mobile.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 13rp7 */
|
|
2
2
|
:root {
|
|
3
3
|
|
|
4
4
|
/* Hard */
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
--gap-xs: 8px;
|
|
12
12
|
--gap-m: 16px;
|
|
13
13
|
}
|
|
14
|
-
.input-
|
|
14
|
+
.input-autocomplete__bottomSheetInput_oluh5 {
|
|
15
15
|
padding: 0 var(--gap-xs) var(--gap-xs);
|
|
16
16
|
box-sizing: border-box;
|
|
17
17
|
}
|
|
18
|
-
.input-
|
|
18
|
+
.input-autocomplete__footer_oluh5 {
|
|
19
19
|
display: flex
|
|
20
20
|
}
|
|
21
|
-
.input-
|
|
21
|
+
.input-autocomplete__footer_oluh5 > button + button {
|
|
22
22
|
margin-left: var(--gap-m);
|
|
23
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-input-autocomplete",
|
|
3
|
-
"version": "8.1
|
|
3
|
+
"version": "8.2.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"react": "^16.9.0 || ^17.0.1 || ^18.0.0"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@alfalab/core-components-button": "^6.1.
|
|
21
|
-
"@alfalab/core-components-form-control": "^8.
|
|
22
|
-
"@alfalab/core-components-input": "^10.1
|
|
23
|
-
"@alfalab/core-components-select": "^12.
|
|
20
|
+
"@alfalab/core-components-button": "^6.1.1",
|
|
21
|
+
"@alfalab/core-components-form-control": "^8.3.0",
|
|
22
|
+
"@alfalab/core-components-input": "^10.2.1",
|
|
23
|
+
"@alfalab/core-components-select": "^12.4.1",
|
|
24
24
|
"@alfalab/hooks": "^1.4.1",
|
|
25
25
|
"classnames": "^2.3.1",
|
|
26
26
|
"lodash.throttle": "^4.1.1",
|
|
File without changes
|
|
File without changes
|