@alfalab/core-components-input-autocomplete 13.1.0 → 14.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2

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 (49) hide show
  1. package/autocomplete-field/index.css +1 -1
  2. package/autocomplete-field/index.module.css.js +1 -1
  3. package/autocomplete-mobile-field/index.css +29 -12
  4. package/autocomplete-mobile-field/index.module.css.js +1 -1
  5. package/cssm/autocomplete-mobile-field/index.module.css +29 -12
  6. package/cssm/desktop/Component.desktop.js +2 -2
  7. package/cssm/desktop/Component.desktop.js.map +1 -1
  8. package/cssm/mobile/Component.mobile.js +6 -6
  9. package/cssm/mobile/Component.mobile.js.map +1 -1
  10. package/cssm/types.d.ts +1 -1
  11. package/desktop/Component.desktop.js +2 -2
  12. package/desktop/Component.desktop.js.map +1 -1
  13. package/esm/autocomplete-field/index.css +1 -1
  14. package/esm/autocomplete-field/index.module.css.js +1 -1
  15. package/esm/autocomplete-mobile-field/index.css +29 -12
  16. package/esm/autocomplete-mobile-field/index.module.css.js +1 -1
  17. package/esm/desktop/Component.desktop.js +2 -2
  18. package/esm/desktop/Component.desktop.js.map +1 -1
  19. package/esm/mobile/Component.mobile.js +6 -6
  20. package/esm/mobile/Component.mobile.js.map +1 -1
  21. package/esm/mobile/mobile.css +1 -1
  22. package/esm/mobile/mobile.module.css.js +1 -1
  23. package/esm/types.d.ts +1 -1
  24. package/mobile/Component.mobile.js +6 -6
  25. package/mobile/Component.mobile.js.map +1 -1
  26. package/mobile/mobile.css +1 -1
  27. package/mobile/mobile.module.css.js +1 -1
  28. package/modern/autocomplete-field/index.css +1 -1
  29. package/modern/autocomplete-field/index.module.css.js +1 -1
  30. package/modern/autocomplete-mobile-field/index.css +29 -12
  31. package/modern/autocomplete-mobile-field/index.module.css.js +1 -1
  32. package/modern/desktop/Component.desktop.js +1 -1
  33. package/modern/desktop/Component.desktop.js.map +1 -1
  34. package/modern/mobile/Component.mobile.js +4 -5
  35. package/modern/mobile/Component.mobile.js.map +1 -1
  36. package/modern/mobile/mobile.css +1 -1
  37. package/modern/mobile/mobile.module.css.js +1 -1
  38. package/modern/types.d.ts +1 -1
  39. package/moderncssm/autocomplete-mobile-field/index.module.css +1 -0
  40. package/moderncssm/desktop/Component.desktop.js +1 -1
  41. package/moderncssm/desktop/Component.desktop.js.map +1 -1
  42. package/moderncssm/mobile/Component.mobile.js +4 -5
  43. package/moderncssm/mobile/Component.mobile.js.map +1 -1
  44. package/moderncssm/types.d.ts +1 -1
  45. package/package.json +12 -12
  46. package/src/desktop/Component.desktop.tsx +2 -3
  47. package/src/mobile/Component.mobile.tsx +3 -7
  48. package/src/types.ts +7 -1
  49. package/types.d.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  import './mobile.css';
2
2
 
3
- var styles = {"input":"input-autocomplete__input_d5oj5"};
3
+ var styles = {"input":"input-autocomplete__input_1jtbu"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=mobile.module.css.js.map
package/esm/types.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type ComponentType, type RefAttributes } from 'react';
2
2
  import { type InputProps } from '@alfalab/core-components-input/esm';
3
3
  import { type BaseSelectProps, type BottomSheetSelectMobileProps } from '@alfalab/core-components-select/esm/shared';
4
4
  declare type OnInputTypeReason = 'close' | 'change';
5
- export interface InputAutocompleteCommonProps extends Omit<BaseSelectProps, 'autocomplete' | 'nativeSelect' | 'showSearch' | 'valueRenderer'> {
5
+ export interface InputAutocompleteCommonProps extends Omit<BaseSelectProps, 'autocomplete' | 'Field' | 'nativeSelect' | 'searchProps' | 'showSearch' | 'Search' | 'valueRenderer'> {
6
6
  /**
7
7
  * Компонент ввода значения
8
8
  */
@@ -26,8 +26,8 @@ var throttle__default = /*#__PURE__*/_interopDefaultCompat(throttle);
26
26
  var InputAutocompleteMobile = React__default.default.forwardRef(function (_a, ref) {
27
27
  var _b;
28
28
  var _c;
29
- var Input = _a.Input, value = _a.value, name = _a.name, _d = _a.Arrow, Arrow = _d === void 0 ? null : _d, label = _a.label, _e = _a.placeholder, placeholder = _e === void 0 ? '' : _e, _f = _a.size, size = _f === void 0 ? 48 : _f, openProp = _a.open, onInput = _a.onInput, onOpen = _a.onOpen, multiple = _a.multiple, inputProps = _a.inputProps, _g = _a.isBottomSheet, isBottomSheet = _g === void 0 ? true : _g, dataTestId = _a.dataTestId, transitionProps = _a.transitionProps, onCancel = _a.onCancel, onApply = _a.onApply, title = _a.title, success = _a.success, _h = _a.virtualKeyboard, virtualKeyboard = _h === void 0 ? false : _h, Search = _a.Search, searchProps = _a.searchProps, _j = _a.Field, Field = _j === void 0 ? Component.AutocompleteMobileField : _j, restProps = tslib.__rest(_a, ["Input", "value", "name", "Arrow", "label", "placeholder", "size", "open", "onInput", "onOpen", "multiple", "inputProps", "isBottomSheet", "dataTestId", "transitionProps", "onCancel", "onApply", "title", "success", "virtualKeyboard", "Search", "searchProps", "Field"]);
30
- var _k = React.useState(false), open = _k[0], setOpen = _k[1];
29
+ var Input = _a.Input, value = _a.value, name = _a.name, _d = _a.Arrow, Arrow = _d === void 0 ? null : _d, label = _a.label, _e = _a.placeholder, placeholder = _e === void 0 ? '' : _e, _f = _a.size, size = _f === void 0 ? 48 : _f, openProp = _a.open, onInput = _a.onInput, onOpen = _a.onOpen, multiple = _a.multiple, inputProps = _a.inputProps, _g = _a.isBottomSheet, isBottomSheet = _g === void 0 ? true : _g, dataTestId = _a.dataTestId, transitionProps = _a.transitionProps, onCancel = _a.onCancel, onApply = _a.onApply, title = _a.title, success = _a.success, _h = _a.virtualKeyboard, virtualKeyboard = _h === void 0 ? false : _h, restProps = tslib.__rest(_a, ["Input", "value", "name", "Arrow", "label", "placeholder", "size", "open", "onInput", "onOpen", "multiple", "inputProps", "isBottomSheet", "dataTestId", "transitionProps", "onCancel", "onApply", "title", "success", "virtualKeyboard"]);
30
+ var _j = React.useState(false), open = _j[0], setOpen = _j[1];
31
31
  var frozenValue = React.useRef('');
32
32
  var searchInputRef = React.useRef(null);
33
33
  var targetRef = React.useRef(null);
@@ -85,18 +85,18 @@ var InputAutocompleteMobile = React__default.default.forwardRef(function (_a, re
85
85
  ? core.maskitoTransform(displayValue, { mask: mask })
86
86
  : displayValue;
87
87
  }, [displayValue, inputProps === null || inputProps === void 0 ? void 0 : inputProps.mask]);
88
- return (React__default.default.createElement(Component$1, tslib.__assign({ Field: Field }, restProps, (isBottomSheet
88
+ return (React__default.default.createElement(Component$1, tslib.__assign({ Field: Component.AutocompleteMobileField }, restProps, (isBottomSheet
89
89
  ? {
90
90
  bottomSheetProps: tslib.__assign(tslib.__assign({}, componentProps), { virtualKeyboard: virtualKeyboard, showSwipeMarker: false }),
91
91
  }
92
92
  : {
93
93
  modalProps: componentProps,
94
94
  modalHeaderProps: { title: title },
95
- }), { dataTestId: dataTestId, useWithApplyHook: false, showSearch: true, Search: Search !== null && Search !== void 0 ? Search : Input, searchProps: {
95
+ }), { dataTestId: dataTestId, useWithApplyHook: false, showSearch: true, searchProps: {
96
96
  value: value,
97
97
  filterFn: utils.searchFilterStub,
98
- componentProps: tslib.__assign(tslib.__assign(tslib.__assign({ leftAddons: null, placeholder: placeholder }, inputProps), searchProps === null || searchProps === void 0 ? void 0 : searchProps.componentProps), { className: cn__default.default(mobile_module.input, inputProps === null || inputProps === void 0 ? void 0 : inputProps.className), clear: clear, ref: mergeRefs__default.default([searchInputRef, inputProps === null || inputProps === void 0 ? void 0 : inputProps.ref]), onChange: function (_, payload) { return onInput === null || onInput === void 0 ? void 0 : onInput(payload.value, enums.OnInputReason.Change); } }),
99
- }, ref: mergeRefs__default.default([targetRef, ref]), open: isOpen, onOpen: handleOpen, Arrow: Arrow, placeholder: placeholder, label: label, size: size, name: name, multiple: multiple, optionsListProps: tslib.__assign({ footer: (React__default.default.createElement(shared.Footer, { showClear: true, handleClear: handleCancel, handleApply: handleApply, clearText: '\u041E\u0442\u043C\u0435\u043D\u0430', applyText: '\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C', dataTestId: dataTestId })) }, restProps.optionsListProps), fieldProps: tslib.__assign({ value: fieldValue, clear: clear, onClear: clear ? inputProps === null || inputProps === void 0 ? void 0 : inputProps.onClear : undefined, success: success }, restProps.fieldProps) })));
98
+ componentProps: tslib.__assign(tslib.__assign({ leftAddons: null, placeholder: placeholder }, inputProps), { className: cn__default.default(mobile_module.input, inputProps === null || inputProps === void 0 ? void 0 : inputProps.className), clear: clear, ref: mergeRefs__default.default([searchInputRef, inputProps === null || inputProps === void 0 ? void 0 : inputProps.ref]), onChange: function (_, payload) { return onInput === null || onInput === void 0 ? void 0 : onInput(payload.value, enums.OnInputReason.Change); } }),
99
+ }, Search: Input, ref: mergeRefs__default.default([targetRef, ref]), open: isOpen, onOpen: handleOpen, Arrow: Arrow, placeholder: placeholder, label: label, size: size, name: name, multiple: multiple, optionsListProps: tslib.__assign({ footer: (React__default.default.createElement(shared.Footer, { showClear: true, handleClear: handleCancel, handleApply: handleApply, clearText: '\u041E\u0442\u043C\u0435\u043D\u0430', applyText: '\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C', dataTestId: dataTestId })) }, restProps.optionsListProps), fieldProps: tslib.__assign({ value: fieldValue, clear: clear, onClear: clear ? inputProps === null || inputProps === void 0 ? void 0 : inputProps.onClear : undefined, success: success }, restProps.fieldProps) })));
100
100
  });
101
101
 
102
102
  exports.InputAutocompleteMobile = InputAutocompleteMobile;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.mobile.js","sources":["../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { type Ref, useMemo, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport { maskitoTransform } from '@maskito/core';\nimport cn from 'classnames';\nimport throttle from 'lodash/throttle';\n\nimport {\n SelectMobile,\n type SelectMobileProps,\n SelectModalMobile,\n} from '@alfalab/core-components-select/mobile';\nimport {\n type AnyObject,\n type BottomSheetSelectMobileProps,\n Footer,\n type ModalSelectMobileProps,\n} from '@alfalab/core-components-select/shared';\nimport { isMaskitoMask, isNonNullable } from '@alfalab/core-components-shared';\n\nimport { AutocompleteMobileField as DefaultField } from '../autocomplete-mobile-field';\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteMobileProps } from '../types';\nimport { searchFilterStub } from '../utils';\n\nimport styles from './mobile.module.css';\n\nexport const InputAutocompleteMobile = React.forwardRef(\n (\n {\n Input,\n value,\n name,\n Arrow = null,\n label,\n placeholder = '',\n size = 48,\n open: openProp,\n onInput,\n onOpen,\n multiple,\n inputProps,\n isBottomSheet = true,\n dataTestId,\n transitionProps,\n onCancel,\n onApply,\n title,\n success,\n virtualKeyboard = false,\n Search,\n searchProps,\n Field = DefaultField,\n ...restProps\n }: InputAutocompleteMobileProps,\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const frozenValue = useRef<string>('');\n const searchInputRef = useRef<HTMLInputElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n\n const restorePrevValue = () => onInput?.(frozenValue.current, OnInputReason.Close);\n\n const setModalVisibility = (isOpen: boolean) => {\n if (isOpen) {\n frozenValue.current = value || '';\n }\n\n if (openProp === undefined) {\n setOpen(isOpen);\n }\n\n onOpen?.({ open: isOpen, name });\n };\n\n const handleOpen: SelectMobileProps['onOpen'] = (payload) => {\n setModalVisibility(Boolean(payload.open));\n };\n\n const handleOptionsListTouchMove = useMemo(\n () =>\n throttle(() => {\n const input = searchInputRef.current;\n\n if (input && document.activeElement === input) {\n input.blur();\n }\n }, 300),\n [],\n );\n\n const handleApply = () => {\n setModalVisibility(false);\n onApply?.();\n };\n\n const handleCancel = () => {\n setModalVisibility(false);\n restorePrevValue();\n onCancel?.();\n };\n\n const handleExiting = (node: HTMLElement) => {\n targetRef.current?.focus();\n transitionProps?.onExiting?.(node);\n };\n\n const isOpen = Boolean(open || openProp);\n\n const Component = isBottomSheet ? SelectMobile : SelectModalMobile;\n\n const componentProps:\n | ModalSelectMobileProps['modalProps']\n | BottomSheetSelectMobileProps['bottomSheetProps'] = {\n title: title || label || placeholder,\n onClose: restorePrevValue,\n transitionProps: {\n ...transitionProps,\n onExiting: handleExiting,\n },\n [isBottomSheet ? 'containerProps' : 'componentDivProps']: {\n onTouchMove: handleOptionsListTouchMove,\n },\n };\n\n const clear = inputProps?.clear ?? false;\n\n const displayValue = isOpen ? frozenValue.current : value;\n\n const fieldValue = useMemo(() => {\n const mask = inputProps?.mask;\n\n return isNonNullable(displayValue) && isMaskitoMask(mask)\n ? maskitoTransform(displayValue, { mask })\n : displayValue;\n }, [displayValue, inputProps?.mask]);\n\n return (\n <Component\n Field={Field}\n {...restProps}\n {...(isBottomSheet\n ? {\n bottomSheetProps: {\n ...componentProps,\n virtualKeyboard,\n showSwipeMarker: false,\n },\n }\n : {\n modalProps: componentProps,\n modalHeaderProps: { title },\n })}\n dataTestId={dataTestId}\n useWithApplyHook={false}\n showSearch={true}\n Search={Search ?? Input}\n searchProps={{\n value,\n filterFn: searchFilterStub,\n componentProps: {\n leftAddons: null,\n placeholder,\n ...inputProps,\n ...searchProps?.componentProps,\n className: cn(styles.input, inputProps?.className),\n clear,\n ref: mergeRefs([searchInputRef, inputProps?.ref as Ref<HTMLInputElement>]),\n onChange: (_, payload) => onInput?.(payload.value, OnInputReason.Change),\n },\n }}\n ref={mergeRefs([targetRef, ref])}\n open={isOpen}\n onOpen={handleOpen}\n Arrow={Arrow}\n placeholder={placeholder}\n label={label}\n size={size}\n name={name}\n multiple={multiple}\n optionsListProps={{\n footer: (\n <Footer\n showClear={true}\n handleClear={handleCancel}\n handleApply={handleApply}\n clearText='Отмена'\n applyText='Продолжить'\n dataTestId={dataTestId}\n />\n ),\n ...(restProps.optionsListProps as AnyObject),\n }}\n fieldProps={{\n value: fieldValue,\n clear,\n onClear: clear ? inputProps?.onClear : undefined,\n success,\n ...(restProps.fieldProps as AnyObject),\n }}\n />\n );\n },\n);\n"],"names":["React","DefaultField","__rest","useState","useRef","OnInputReason","useMemo","throttle","Component","SelectMobile","SelectModalMobile","isNonNullable","isMaskitoMask","maskitoTransform","__assign","searchFilterStub","cn","styles","mergeRefs","Footer"],"mappings":"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"}
1
+ {"version":3,"file":"Component.mobile.js","sources":["../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { type Ref, useMemo, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport { maskitoTransform } from '@maskito/core';\nimport cn from 'classnames';\nimport throttle from 'lodash/throttle';\n\nimport {\n SelectMobile,\n type SelectMobileProps,\n SelectModalMobile,\n} from '@alfalab/core-components-select/mobile';\nimport {\n type AnyObject,\n type BottomSheetSelectMobileProps,\n Footer,\n type ModalSelectMobileProps,\n} from '@alfalab/core-components-select/shared';\nimport { isMaskitoMask, isNonNullable } from '@alfalab/core-components-shared';\n\nimport { AutocompleteMobileField } from '../autocomplete-mobile-field';\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteMobileProps } from '../types';\nimport { searchFilterStub } from '../utils';\n\nimport styles from './mobile.module.css';\n\nexport const InputAutocompleteMobile = React.forwardRef(\n (\n {\n Input,\n value,\n name,\n Arrow = null,\n label,\n placeholder = '',\n size = 48,\n open: openProp,\n onInput,\n onOpen,\n multiple,\n inputProps,\n isBottomSheet = true,\n dataTestId,\n transitionProps,\n onCancel,\n onApply,\n title,\n success,\n virtualKeyboard = false,\n ...restProps\n }: InputAutocompleteMobileProps,\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const frozenValue = useRef<string>('');\n const searchInputRef = useRef<HTMLInputElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n\n const restorePrevValue = () => onInput?.(frozenValue.current, OnInputReason.Close);\n\n const setModalVisibility = (isOpen: boolean) => {\n if (isOpen) {\n frozenValue.current = value || '';\n }\n\n if (openProp === undefined) {\n setOpen(isOpen);\n }\n\n onOpen?.({ open: isOpen, name });\n };\n\n const handleOpen: SelectMobileProps['onOpen'] = (payload) => {\n setModalVisibility(Boolean(payload.open));\n };\n\n const handleOptionsListTouchMove = useMemo(\n () =>\n throttle(() => {\n const input = searchInputRef.current;\n\n if (input && document.activeElement === input) {\n input.blur();\n }\n }, 300),\n [],\n );\n\n const handleApply = () => {\n setModalVisibility(false);\n onApply?.();\n };\n\n const handleCancel = () => {\n setModalVisibility(false);\n restorePrevValue();\n onCancel?.();\n };\n\n const handleExiting = (node: HTMLElement) => {\n targetRef.current?.focus();\n transitionProps?.onExiting?.(node);\n };\n\n const isOpen = Boolean(open || openProp);\n\n const Component = isBottomSheet ? SelectMobile : SelectModalMobile;\n\n const componentProps:\n | ModalSelectMobileProps['modalProps']\n | BottomSheetSelectMobileProps['bottomSheetProps'] = {\n title: title || label || placeholder,\n onClose: restorePrevValue,\n transitionProps: {\n ...transitionProps,\n onExiting: handleExiting,\n },\n [isBottomSheet ? 'containerProps' : 'componentDivProps']: {\n onTouchMove: handleOptionsListTouchMove,\n },\n };\n\n const clear = inputProps?.clear ?? false;\n\n const displayValue = isOpen ? frozenValue.current : value;\n\n const fieldValue = useMemo(() => {\n const mask = inputProps?.mask;\n\n return isNonNullable(displayValue) && isMaskitoMask(mask)\n ? maskitoTransform(displayValue, { mask })\n : displayValue;\n }, [displayValue, inputProps?.mask]);\n\n return (\n <Component\n Field={AutocompleteMobileField}\n {...restProps}\n {...(isBottomSheet\n ? {\n bottomSheetProps: {\n ...componentProps,\n virtualKeyboard,\n showSwipeMarker: false,\n },\n }\n : {\n modalProps: componentProps,\n modalHeaderProps: { title },\n })}\n dataTestId={dataTestId}\n useWithApplyHook={false}\n showSearch={true}\n searchProps={{\n value,\n filterFn: searchFilterStub,\n componentProps: {\n leftAddons: null,\n placeholder,\n ...inputProps,\n className: cn(styles.input, inputProps?.className),\n clear,\n ref: mergeRefs([searchInputRef, inputProps?.ref as Ref<HTMLInputElement>]),\n onChange: (_, payload) => onInput?.(payload.value, OnInputReason.Change),\n },\n }}\n Search={Input}\n ref={mergeRefs([targetRef, ref])}\n open={isOpen}\n onOpen={handleOpen}\n Arrow={Arrow}\n placeholder={placeholder}\n label={label}\n size={size}\n name={name}\n multiple={multiple}\n optionsListProps={{\n footer: (\n <Footer\n showClear={true}\n handleClear={handleCancel}\n handleApply={handleApply}\n clearText='Отмена'\n applyText='Продолжить'\n dataTestId={dataTestId}\n />\n ),\n ...(restProps.optionsListProps as AnyObject),\n }}\n fieldProps={{\n value: fieldValue,\n clear,\n onClear: clear ? inputProps?.onClear : undefined,\n success,\n ...(restProps.fieldProps as AnyObject),\n }}\n />\n );\n },\n);\n"],"names":["React","__rest","useState","useRef","OnInputReason","useMemo","throttle","Component","SelectMobile","SelectModalMobile","isNonNullable","isMaskitoMask","maskitoTransform","__assign","AutocompleteMobileField","searchFilterStub","cn","styles","mergeRefs","Footer"],"mappings":"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"}
package/mobile/mobile.css CHANGED
@@ -1,3 +1,3 @@
1
- .input-autocomplete__input_d5oj5 {
1
+ .input-autocomplete__input_1jtbu {
2
2
  width: auto;
3
3
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./mobile.css');
4
4
 
5
- var styles = {"input":"input-autocomplete__input_d5oj5"};
5
+ var styles = {"input":"input-autocomplete__input_1jtbu"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=mobile.module.css.js.map
@@ -1,3 +1,3 @@
1
- .input-autocomplete__arrow_9fl0i.input-autocomplete__error_9fl0i ~ * {
1
+ .input-autocomplete__arrow_xzch7.input-autocomplete__error_xzch7 ~ * {
2
2
  display: none;
3
3
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"arrow":"input-autocomplete__arrow_9fl0i","error":"input-autocomplete__error_9fl0i"};
3
+ const styles = {"arrow":"input-autocomplete__arrow_xzch7","error":"input-autocomplete__error_xzch7"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1,42 +1,59 @@
1
1
  :root {
2
2
  --color-light-status-info: #2288fa;
3
3
  --color-light-text-secondary: rgba(4, 4, 19, 0.55);
4
- } :root {
4
+ }
5
+ :root {
6
+ --font-family-system:
7
+ system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Helvetica, sans-serif;
8
+ }
9
+ :root {
5
10
  --focus-color: var(--color-light-status-info);
6
11
  --disabled-cursor: not-allowed;
7
- } :root {
12
+ }
13
+ :root {
8
14
  --input-error-icon-display: none;
9
15
  --input-success-icon-display: flex;
10
16
  --input-error-icon-not-alone-display: none;
11
- } .input-autocomplete__component_owpot {
17
+ }
18
+ .input-autocomplete__component_137uy {
12
19
  width: 100%;
13
20
  outline: none;
14
- } .input-autocomplete__field_owpot:not(.input-autocomplete__disabled_owpot) {
21
+ }
22
+ .input-autocomplete__field_137uy:not(.input-autocomplete__disabled_137uy) {
15
23
  cursor: pointer;
16
- } .input-autocomplete__errorIcon_owpot {
24
+ }
25
+ .input-autocomplete__errorIcon_137uy {
17
26
  display: var(--input-error-icon-display);
18
- } * + .input-autocomplete__errorIcon_owpot {
27
+ }
28
+ * + .input-autocomplete__errorIcon_137uy {
19
29
  display: var(--input-error-icon-not-alone-display);
20
- } .input-autocomplete__successIcon_owpot {
30
+ }
31
+ .input-autocomplete__successIcon_137uy {
21
32
  display: var(--input-success-icon-display);
22
- } .input-autocomplete__disabled_owpot {
33
+ }
34
+ .input-autocomplete__disabled_137uy {
23
35
  cursor: var(--disabled-cursor);
24
- } .input-autocomplete__placeholder_owpot {
36
+ }
37
+ .input-autocomplete__placeholder_137uy {
25
38
  color: var(--color-light-text-secondary);
26
- } .input-autocomplete__contentWrapper_owpot {
39
+ }
40
+ .input-autocomplete__contentWrapper_137uy {
27
41
  font-size: 16px;
28
42
  line-height: 20px;
29
43
  font-weight: 400;
44
+ font-family: var(--font-family-system);
30
45
 
31
46
  white-space: nowrap;
32
47
  text-overflow: ellipsis;
33
48
  overflow: hidden;
34
49
  width: 100%;
35
- } .input-autocomplete__value_owpot {
50
+ }
51
+ .input-autocomplete__value_137uy {
36
52
  overflow: hidden;
37
53
  text-overflow: ellipsis;
38
54
  text-align: left;
39
- } .input-autocomplete__focusVisible_owpot {
55
+ }
56
+ .input-autocomplete__focusVisible_137uy {
40
57
  outline: 2px solid var(--focus-color);
41
58
  outline-offset: 2px;
42
59
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"component":"input-autocomplete__component_owpot","field":"input-autocomplete__field_owpot","disabled":"input-autocomplete__disabled_owpot","errorIcon":"input-autocomplete__errorIcon_owpot","successIcon":"input-autocomplete__successIcon_owpot","placeholder":"input-autocomplete__placeholder_owpot","contentWrapper":"input-autocomplete__contentWrapper_owpot","value":"input-autocomplete__value_owpot","focusVisible":"input-autocomplete__focusVisible_owpot"};
3
+ const styles = {"component":"input-autocomplete__component_137uy","field":"input-autocomplete__field_137uy","disabled":"input-autocomplete__disabled_137uy","errorIcon":"input-autocomplete__errorIcon_137uy","successIcon":"input-autocomplete__successIcon_137uy","placeholder":"input-autocomplete__placeholder_137uy","contentWrapper":"input-autocomplete__contentWrapper_137uy","value":"input-autocomplete__value_137uy","focusVisible":"input-autocomplete__focusVisible_137uy"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -3,7 +3,7 @@ import { Popover } from '@alfalab/core-components-popover/modern';
3
3
  import { BaseSelect, OptionsList, Optgroup, Option } from '@alfalab/core-components-select/modern/shared';
4
4
  import { AutocompleteField } from '../autocomplete-field/Component.js';
5
5
 
6
- const InputAutocompleteDesktop = forwardRef(({ OptionsList: OptionsList$1 = OptionsList, Optgroup: Optgroup$1 = Optgroup, Option: Option$1 = Option, Field = AutocompleteField, Input, inputProps = {}, onInput, value, success, readOnly, closeOnSelect = false, options, ...restProps }, ref) => (React.createElement(BaseSelect, { view: 'desktop', Popover: Popover, ref: ref, autocomplete: true, options: options, closeOnSelect: closeOnSelect, Option: Option$1, Field: Field, Optgroup: Optgroup$1, OptionsList: OptionsList$1, ...restProps, fieldProps: {
6
+ const InputAutocompleteDesktop = forwardRef(({ OptionsList: OptionsList$1 = OptionsList, Optgroup: Optgroup$1 = Optgroup, Option: Option$1 = Option, Input, inputProps = {}, onInput, value, success, readOnly, closeOnSelect = false, options, ...restProps }, ref) => (React.createElement(BaseSelect, { view: 'desktop', Popover: Popover, ref: ref, autocomplete: true, options: options, closeOnSelect: closeOnSelect, Option: Option$1, Field: AutocompleteField, Optgroup: Optgroup$1, OptionsList: OptionsList$1, ...restProps, fieldProps: {
7
7
  ...restProps.fieldProps,
8
8
  Input,
9
9
  onInput,
@@ -1 +1 @@
1
- {"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { Popover } from '@alfalab/core-components-popover';\nimport {\n type AnyObject,\n BaseSelect,\n Optgroup as DefaultOptgroup,\n Option as DefaultOption,\n OptionsList as DefaultOptionsList,\n} from '@alfalab/core-components-select/shared';\n\nimport { AutocompleteField as DefaultField } from '../autocomplete-field';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nexport const InputAutocompleteDesktop = forwardRef<HTMLInputElement, InputAutocompleteCommonProps>(\n (\n {\n OptionsList = DefaultOptionsList,\n Optgroup = DefaultOptgroup,\n Option = DefaultOption,\n Field = DefaultField,\n Input,\n inputProps = {},\n onInput,\n value,\n success,\n readOnly,\n closeOnSelect = false,\n options,\n ...restProps\n },\n ref,\n ) => (\n <BaseSelect\n view='desktop'\n Popover={Popover}\n ref={ref}\n autocomplete={true}\n options={options}\n closeOnSelect={closeOnSelect}\n Option={Option}\n Field={Field}\n Optgroup={Optgroup}\n OptionsList={OptionsList}\n {...restProps}\n fieldProps={{\n ...(restProps.fieldProps as AnyObject),\n Input,\n onInput,\n value,\n inputProps,\n readOnly,\n success,\n }}\n />\n ),\n);\n"],"names":["OptionsList","DefaultOptionsList","Optgroup","DefaultOptgroup","Option","DefaultOption","DefaultField"],"mappings":";;;;;MAca,wBAAwB,GAAG,UAAU,CAC9C,CACI,eACIA,aAAW,GAAGC,WAAkB,YAChCC,UAAQ,GAAGC,QAAe,UAC1BC,QAAM,GAAGC,MAAa,EACtB,KAAK,GAAGC,iBAAY,EACpB,KAAK,EACL,UAAU,GAAG,EAAE,EACf,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,aAAa,GAAG,KAAK,EACrB,OAAO,EACP,GAAG,SAAS,EACf,EACD,GAAG,MAEH,KAAC,CAAA,aAAA,CAAA,UAAU,IACP,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAEF,QAAM,EACd,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAEF,UAAQ,EAClB,WAAW,EAAEF,aAAW,EACpB,GAAA,SAAS,EACb,UAAU,EAAE;QACR,GAAI,SAAS,CAAC,UAAwB;QACtC,KAAK;QACL,OAAO;QACP,KAAK;QACL,UAAU;QACV,QAAQ;QACR,OAAO;KACV,EACH,CAAA,CACL;;;;"}
1
+ {"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { Popover } from '@alfalab/core-components-popover';\nimport {\n type AnyObject,\n BaseSelect,\n Optgroup as DefaultOptgroup,\n Option as DefaultOption,\n OptionsList as DefaultOptionsList,\n} from '@alfalab/core-components-select/shared';\n\nimport { AutocompleteField } from '../autocomplete-field';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nexport const InputAutocompleteDesktop = forwardRef<HTMLInputElement, InputAutocompleteCommonProps>(\n (\n {\n OptionsList = DefaultOptionsList,\n Optgroup = DefaultOptgroup,\n Option = DefaultOption,\n Input,\n inputProps = {},\n onInput,\n value,\n success,\n readOnly,\n closeOnSelect = false,\n options,\n ...restProps\n },\n ref,\n ) => (\n <BaseSelect\n view='desktop'\n Popover={Popover}\n ref={ref}\n autocomplete={true}\n options={options}\n closeOnSelect={closeOnSelect}\n Option={Option}\n Field={AutocompleteField}\n Optgroup={Optgroup}\n OptionsList={OptionsList}\n {...restProps}\n fieldProps={{\n ...(restProps.fieldProps as AnyObject),\n Input,\n onInput,\n value,\n inputProps,\n readOnly,\n success,\n }}\n />\n ),\n);\n"],"names":["OptionsList","DefaultOptionsList","Optgroup","DefaultOptgroup","Option","DefaultOption"],"mappings":";;;;;MAca,wBAAwB,GAAG,UAAU,CAC9C,CACI,eACIA,aAAW,GAAGC,WAAkB,YAChCC,UAAQ,GAAGC,QAAe,UAC1BC,QAAM,GAAGC,MAAa,EACtB,KAAK,EACL,UAAU,GAAG,EAAE,EACf,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,aAAa,GAAG,KAAK,EACrB,OAAO,EACP,GAAG,SAAS,EACf,EACD,GAAG,MAEH,KAAA,CAAA,aAAA,CAAC,UAAU,EACP,EAAA,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAED,QAAM,EACd,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAEF,UAAQ,EAClB,WAAW,EAAEF,aAAW,EACpB,GAAA,SAAS,EACb,UAAU,EAAE;QACR,GAAI,SAAS,CAAC,UAAwB;QACtC,KAAK;QACL,OAAO;QACP,KAAK;QACL,UAAU;QACV,QAAQ;QACR,OAAO;KACV,EACH,CAAA,CACL;;;;"}
@@ -11,7 +11,7 @@ import { OnInputReason } from '../enums.js';
11
11
  import { searchFilterStub } from '../utils.js';
12
12
  import styles from './mobile.module.css.js';
13
13
 
14
- const InputAutocompleteMobile = React.forwardRef(({ Input, value, name, Arrow = null, label, placeholder = '', size = 48, open: openProp, onInput, onOpen, multiple, inputProps, isBottomSheet = true, dataTestId, transitionProps, onCancel, onApply, title, success, virtualKeyboard = false, Search, searchProps, Field = AutocompleteMobileField, ...restProps }, ref) => {
14
+ const InputAutocompleteMobile = React.forwardRef(({ Input, value, name, Arrow = null, label, placeholder = '', size = 48, open: openProp, onInput, onOpen, multiple, inputProps, isBottomSheet = true, dataTestId, transitionProps, onCancel, onApply, title, success, virtualKeyboard = false, ...restProps }, ref) => {
15
15
  const [open, setOpen] = useState(false);
16
16
  const frozenValue = useRef('');
17
17
  const searchInputRef = useRef(null);
@@ -69,7 +69,7 @@ const InputAutocompleteMobile = React.forwardRef(({ Input, value, name, Arrow =
69
69
  ? maskitoTransform(displayValue, { mask })
70
70
  : displayValue;
71
71
  }, [displayValue, inputProps?.mask]);
72
- return (React.createElement(Component, { Field: Field, ...restProps, ...(isBottomSheet
72
+ return (React.createElement(Component, { Field: AutocompleteMobileField, ...restProps, ...(isBottomSheet
73
73
  ? {
74
74
  bottomSheetProps: {
75
75
  ...componentProps,
@@ -80,20 +80,19 @@ const InputAutocompleteMobile = React.forwardRef(({ Input, value, name, Arrow =
80
80
  : {
81
81
  modalProps: componentProps,
82
82
  modalHeaderProps: { title },
83
- }), dataTestId: dataTestId, useWithApplyHook: false, showSearch: true, Search: Search ?? Input, searchProps: {
83
+ }), dataTestId: dataTestId, useWithApplyHook: false, showSearch: true, searchProps: {
84
84
  value,
85
85
  filterFn: searchFilterStub,
86
86
  componentProps: {
87
87
  leftAddons: null,
88
88
  placeholder,
89
89
  ...inputProps,
90
- ...searchProps?.componentProps,
91
90
  className: cn(styles.input, inputProps?.className),
92
91
  clear,
93
92
  ref: mergeRefs([searchInputRef, inputProps?.ref]),
94
93
  onChange: (_, payload) => onInput?.(payload.value, OnInputReason.Change),
95
94
  },
96
- }, ref: mergeRefs([targetRef, ref]), open: isOpen, onOpen: handleOpen, Arrow: Arrow, placeholder: placeholder, label: label, size: size, name: name, multiple: multiple, optionsListProps: {
95
+ }, Search: Input, ref: mergeRefs([targetRef, ref]), open: isOpen, onOpen: handleOpen, Arrow: Arrow, placeholder: placeholder, label: label, size: size, name: name, multiple: multiple, optionsListProps: {
97
96
  footer: (React.createElement(Footer, { showClear: true, handleClear: handleCancel, handleApply: handleApply, clearText: '\u041E\u0442\u043C\u0435\u043D\u0430', applyText: '\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C', dataTestId: dataTestId })),
98
97
  ...restProps.optionsListProps,
99
98
  }, fieldProps: {
@@ -1 +1 @@
1
- {"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { type Ref, useMemo, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport { maskitoTransform } from '@maskito/core';\nimport cn from 'classnames';\nimport throttle from 'lodash/throttle';\n\nimport {\n SelectMobile,\n type SelectMobileProps,\n SelectModalMobile,\n} from '@alfalab/core-components-select/mobile';\nimport {\n type AnyObject,\n type BottomSheetSelectMobileProps,\n Footer,\n type ModalSelectMobileProps,\n} from '@alfalab/core-components-select/shared';\nimport { isMaskitoMask, isNonNullable } from '@alfalab/core-components-shared';\n\nimport { AutocompleteMobileField as DefaultField } from '../autocomplete-mobile-field';\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteMobileProps } from '../types';\nimport { searchFilterStub } from '../utils';\n\nimport styles from './mobile.module.css';\n\nexport const InputAutocompleteMobile = React.forwardRef(\n (\n {\n Input,\n value,\n name,\n Arrow = null,\n label,\n placeholder = '',\n size = 48,\n open: openProp,\n onInput,\n onOpen,\n multiple,\n inputProps,\n isBottomSheet = true,\n dataTestId,\n transitionProps,\n onCancel,\n onApply,\n title,\n success,\n virtualKeyboard = false,\n Search,\n searchProps,\n Field = DefaultField,\n ...restProps\n }: InputAutocompleteMobileProps,\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const frozenValue = useRef<string>('');\n const searchInputRef = useRef<HTMLInputElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n\n const restorePrevValue = () => onInput?.(frozenValue.current, OnInputReason.Close);\n\n const setModalVisibility = (isOpen: boolean) => {\n if (isOpen) {\n frozenValue.current = value || '';\n }\n\n if (openProp === undefined) {\n setOpen(isOpen);\n }\n\n onOpen?.({ open: isOpen, name });\n };\n\n const handleOpen: SelectMobileProps['onOpen'] = (payload) => {\n setModalVisibility(Boolean(payload.open));\n };\n\n const handleOptionsListTouchMove = useMemo(\n () =>\n throttle(() => {\n const input = searchInputRef.current;\n\n if (input && document.activeElement === input) {\n input.blur();\n }\n }, 300),\n [],\n );\n\n const handleApply = () => {\n setModalVisibility(false);\n onApply?.();\n };\n\n const handleCancel = () => {\n setModalVisibility(false);\n restorePrevValue();\n onCancel?.();\n };\n\n const handleExiting = (node: HTMLElement) => {\n targetRef.current?.focus();\n transitionProps?.onExiting?.(node);\n };\n\n const isOpen = Boolean(open || openProp);\n\n const Component = isBottomSheet ? SelectMobile : SelectModalMobile;\n\n const componentProps:\n | ModalSelectMobileProps['modalProps']\n | BottomSheetSelectMobileProps['bottomSheetProps'] = {\n title: title || label || placeholder,\n onClose: restorePrevValue,\n transitionProps: {\n ...transitionProps,\n onExiting: handleExiting,\n },\n [isBottomSheet ? 'containerProps' : 'componentDivProps']: {\n onTouchMove: handleOptionsListTouchMove,\n },\n };\n\n const clear = inputProps?.clear ?? false;\n\n const displayValue = isOpen ? frozenValue.current : value;\n\n const fieldValue = useMemo(() => {\n const mask = inputProps?.mask;\n\n return isNonNullable(displayValue) && isMaskitoMask(mask)\n ? maskitoTransform(displayValue, { mask })\n : displayValue;\n }, [displayValue, inputProps?.mask]);\n\n return (\n <Component\n Field={Field}\n {...restProps}\n {...(isBottomSheet\n ? {\n bottomSheetProps: {\n ...componentProps,\n virtualKeyboard,\n showSwipeMarker: false,\n },\n }\n : {\n modalProps: componentProps,\n modalHeaderProps: { title },\n })}\n dataTestId={dataTestId}\n useWithApplyHook={false}\n showSearch={true}\n Search={Search ?? Input}\n searchProps={{\n value,\n filterFn: searchFilterStub,\n componentProps: {\n leftAddons: null,\n placeholder,\n ...inputProps,\n ...searchProps?.componentProps,\n className: cn(styles.input, inputProps?.className),\n clear,\n ref: mergeRefs([searchInputRef, inputProps?.ref as Ref<HTMLInputElement>]),\n onChange: (_, payload) => onInput?.(payload.value, OnInputReason.Change),\n },\n }}\n ref={mergeRefs([targetRef, ref])}\n open={isOpen}\n onOpen={handleOpen}\n Arrow={Arrow}\n placeholder={placeholder}\n label={label}\n size={size}\n name={name}\n multiple={multiple}\n optionsListProps={{\n footer: (\n <Footer\n showClear={true}\n handleClear={handleCancel}\n handleApply={handleApply}\n clearText='Отмена'\n applyText='Продолжить'\n dataTestId={dataTestId}\n />\n ),\n ...(restProps.optionsListProps as AnyObject),\n }}\n fieldProps={{\n value: fieldValue,\n clear,\n onClear: clear ? inputProps?.onClear : undefined,\n success,\n ...(restProps.fieldProps as AnyObject),\n }}\n />\n );\n },\n);\n"],"names":["DefaultField"],"mappings":"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"}
1
+ {"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { type Ref, useMemo, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport { maskitoTransform } from '@maskito/core';\nimport cn from 'classnames';\nimport throttle from 'lodash/throttle';\n\nimport {\n SelectMobile,\n type SelectMobileProps,\n SelectModalMobile,\n} from '@alfalab/core-components-select/mobile';\nimport {\n type AnyObject,\n type BottomSheetSelectMobileProps,\n Footer,\n type ModalSelectMobileProps,\n} from '@alfalab/core-components-select/shared';\nimport { isMaskitoMask, isNonNullable } from '@alfalab/core-components-shared';\n\nimport { AutocompleteMobileField } from '../autocomplete-mobile-field';\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteMobileProps } from '../types';\nimport { searchFilterStub } from '../utils';\n\nimport styles from './mobile.module.css';\n\nexport const InputAutocompleteMobile = React.forwardRef(\n (\n {\n Input,\n value,\n name,\n Arrow = null,\n label,\n placeholder = '',\n size = 48,\n open: openProp,\n onInput,\n onOpen,\n multiple,\n inputProps,\n isBottomSheet = true,\n dataTestId,\n transitionProps,\n onCancel,\n onApply,\n title,\n success,\n virtualKeyboard = false,\n ...restProps\n }: InputAutocompleteMobileProps,\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const frozenValue = useRef<string>('');\n const searchInputRef = useRef<HTMLInputElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n\n const restorePrevValue = () => onInput?.(frozenValue.current, OnInputReason.Close);\n\n const setModalVisibility = (isOpen: boolean) => {\n if (isOpen) {\n frozenValue.current = value || '';\n }\n\n if (openProp === undefined) {\n setOpen(isOpen);\n }\n\n onOpen?.({ open: isOpen, name });\n };\n\n const handleOpen: SelectMobileProps['onOpen'] = (payload) => {\n setModalVisibility(Boolean(payload.open));\n };\n\n const handleOptionsListTouchMove = useMemo(\n () =>\n throttle(() => {\n const input = searchInputRef.current;\n\n if (input && document.activeElement === input) {\n input.blur();\n }\n }, 300),\n [],\n );\n\n const handleApply = () => {\n setModalVisibility(false);\n onApply?.();\n };\n\n const handleCancel = () => {\n setModalVisibility(false);\n restorePrevValue();\n onCancel?.();\n };\n\n const handleExiting = (node: HTMLElement) => {\n targetRef.current?.focus();\n transitionProps?.onExiting?.(node);\n };\n\n const isOpen = Boolean(open || openProp);\n\n const Component = isBottomSheet ? SelectMobile : SelectModalMobile;\n\n const componentProps:\n | ModalSelectMobileProps['modalProps']\n | BottomSheetSelectMobileProps['bottomSheetProps'] = {\n title: title || label || placeholder,\n onClose: restorePrevValue,\n transitionProps: {\n ...transitionProps,\n onExiting: handleExiting,\n },\n [isBottomSheet ? 'containerProps' : 'componentDivProps']: {\n onTouchMove: handleOptionsListTouchMove,\n },\n };\n\n const clear = inputProps?.clear ?? false;\n\n const displayValue = isOpen ? frozenValue.current : value;\n\n const fieldValue = useMemo(() => {\n const mask = inputProps?.mask;\n\n return isNonNullable(displayValue) && isMaskitoMask(mask)\n ? maskitoTransform(displayValue, { mask })\n : displayValue;\n }, [displayValue, inputProps?.mask]);\n\n return (\n <Component\n Field={AutocompleteMobileField}\n {...restProps}\n {...(isBottomSheet\n ? {\n bottomSheetProps: {\n ...componentProps,\n virtualKeyboard,\n showSwipeMarker: false,\n },\n }\n : {\n modalProps: componentProps,\n modalHeaderProps: { title },\n })}\n dataTestId={dataTestId}\n useWithApplyHook={false}\n showSearch={true}\n searchProps={{\n value,\n filterFn: searchFilterStub,\n componentProps: {\n leftAddons: null,\n placeholder,\n ...inputProps,\n className: cn(styles.input, inputProps?.className),\n clear,\n ref: mergeRefs([searchInputRef, inputProps?.ref as Ref<HTMLInputElement>]),\n onChange: (_, payload) => onInput?.(payload.value, OnInputReason.Change),\n },\n }}\n Search={Input}\n ref={mergeRefs([targetRef, ref])}\n open={isOpen}\n onOpen={handleOpen}\n Arrow={Arrow}\n placeholder={placeholder}\n label={label}\n size={size}\n name={name}\n multiple={multiple}\n optionsListProps={{\n footer: (\n <Footer\n showClear={true}\n handleClear={handleCancel}\n handleApply={handleApply}\n clearText='Отмена'\n applyText='Продолжить'\n dataTestId={dataTestId}\n />\n ),\n ...(restProps.optionsListProps as AnyObject),\n }}\n fieldProps={{\n value: fieldValue,\n clear,\n onClear: clear ? inputProps?.onClear : undefined,\n success,\n ...(restProps.fieldProps as AnyObject),\n }}\n />\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;;;;;AA0BO,MAAM,uBAAuB,GAAG,KAAK,CAAC,UAAU,CACnD,CACI,EACI,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,GAAG,IAAI,EACZ,KAAK,EACL,WAAW,GAAG,EAAE,EAChB,IAAI,GAAG,EAAE,EACT,IAAI,EAAE,QAAQ,EACd,OAAO,EACP,MAAM,EACN,QAAQ,EACR,UAAU,EACV,aAAa,GAAG,IAAI,EACpB,UAAU,EACV,eAAe,EACf,QAAQ,EACR,OAAO,EACP,KAAK,EACL,OAAO,EACP,eAAe,GAAG,KAAK,EACvB,GAAG,SAAS,EACe,EAC/B,GAAG,KACH;IACA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACvC,IAAA,MAAM,WAAW,GAAG,MAAM,CAAS,EAAE,CAAC;AACtC,IAAA,MAAM,cAAc,GAAG,MAAM,CAAmB,IAAI,CAAC;AACrD,IAAA,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC;AAE9C,IAAA,MAAM,gBAAgB,GAAG,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC;AAElF,IAAA,MAAM,kBAAkB,GAAG,CAAC,MAAe,KAAI;AAC3C,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,WAAW,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;AACpC;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,OAAO,CAAC,MAAM,CAAC;AAClB;QAED,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpC,KAAC;AAED,IAAA,MAAM,UAAU,GAAgC,CAAC,OAAO,KAAI;QACxD,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7C,KAAC;IAED,MAAM,0BAA0B,GAAG,OAAO,CACtC,MACI,QAAQ,CAAC,MAAK;AACV,QAAA,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO;AAEpC,QAAA,IAAI,KAAK,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE;YAC3C,KAAK,CAAC,IAAI,EAAE;AACf;AACL,KAAC,EAAE,GAAG,CAAC,EACX,EAAE,CACL;IAED,MAAM,WAAW,GAAG,MAAK;QACrB,kBAAkB,CAAC,KAAK,CAAC;QACzB,OAAO,IAAI;AACf,KAAC;IAED,MAAM,YAAY,GAAG,MAAK;QACtB,kBAAkB,CAAC,KAAK,CAAC;AACzB,QAAA,gBAAgB,EAAE;QAClB,QAAQ,IAAI;AAChB,KAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,IAAiB,KAAI;AACxC,QAAA,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE;AAC1B,QAAA,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC;AACtC,KAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;IAExC,MAAM,SAAS,GAAG,aAAa,GAAG,YAAY,GAAG,iBAAiB;AAElE,IAAA,MAAM,cAAc,GAEqC;AACrD,QAAA,KAAK,EAAE,KAAK,IAAI,KAAK,IAAI,WAAW;AACpC,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,eAAe,EAAE;AACb,YAAA,GAAG,eAAe;AAClB,YAAA,SAAS,EAAE,aAAa;AAC3B,SAAA;QACD,CAAC,aAAa,GAAG,gBAAgB,GAAG,mBAAmB,GAAG;AACtD,YAAA,WAAW,EAAE,0BAA0B;AAC1C,SAAA;KACJ;AAED,IAAA,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,KAAK;AAExC,IAAA,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,KAAK;AAEzD,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAK;AAC5B,QAAA,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI;QAE7B,OAAO,aAAa,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,IAAI;cAClD,gBAAgB,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE;cACvC,YAAY;KACrB,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAEpC,QACI,KAAC,CAAA,aAAA,CAAA,SAAS,EACN,EAAA,KAAK,EAAE,uBAAuB,EAC1B,GAAA,SAAS,EACT,IAAC;AACD,cAAE;AACI,gBAAA,gBAAgB,EAAE;AACd,oBAAA,GAAG,cAAc;oBACjB,eAAe;AACf,oBAAA,eAAe,EAAE,KAAK;AACzB,iBAAA;AACJ;AACH,cAAE;AACI,gBAAA,UAAU,EAAE,cAAc;gBAC1B,gBAAgB,EAAE,EAAE,KAAK,EAAE;AAC9B,aAAA,CAAC,EACR,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,KAAK,EACvB,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE;YACT,KAAK;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,cAAc,EAAE;AACZ,gBAAA,UAAU,EAAE,IAAI;gBAChB,WAAW;AACX,gBAAA,GAAG,UAAU;gBACb,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC;gBAClD,KAAK;gBACL,GAAG,EAAE,SAAS,CAAC,CAAC,cAAc,EAAE,UAAU,EAAE,GAA4B,CAAC,CAAC;AAC1E,gBAAA,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;AAC3E,aAAA;SACJ,EACD,MAAM,EAAE,KAAK,EACb,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE;AACd,YAAA,MAAM,GACF,KAAC,CAAA,aAAA,CAAA,MAAM,EACH,EAAA,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,YAAY,EACzB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAC,sCAAQ,EAClB,SAAS,EAAC,8DAAY,EACtB,UAAU,EAAE,UAAU,GACxB,CACL;YACD,GAAI,SAAS,CAAC,gBAA8B;AAC/C,SAAA,EACD,UAAU,EAAE;AACR,YAAA,KAAK,EAAE,UAAU;YACjB,KAAK;YACL,OAAO,EAAE,KAAK,GAAG,UAAU,EAAE,OAAO,GAAG,SAAS;YAChD,OAAO;YACP,GAAI,SAAS,CAAC,UAAwB;AACzC,SAAA,EAAA,CACH;AAEV,CAAC;;;;"}
@@ -1,3 +1,3 @@
1
- .input-autocomplete__input_d5oj5 {
1
+ .input-autocomplete__input_1jtbu {
2
2
  width: auto;
3
3
  }
@@ -1,6 +1,6 @@
1
1
  import './mobile.css';
2
2
 
3
- const styles = {"input":"input-autocomplete__input_d5oj5"};
3
+ const styles = {"input":"input-autocomplete__input_1jtbu"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=mobile.module.css.js.map
package/modern/types.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type ComponentType, type RefAttributes } from 'react';
2
2
  import { type InputProps } from '@alfalab/core-components-input/modern';
3
3
  import { type BaseSelectProps, type BottomSheetSelectMobileProps } from '@alfalab/core-components-select/modern/shared';
4
4
  declare type OnInputTypeReason = 'close' | 'change';
5
- export interface InputAutocompleteCommonProps extends Omit<BaseSelectProps, 'autocomplete' | 'nativeSelect' | 'showSearch' | 'valueRenderer'> {
5
+ export interface InputAutocompleteCommonProps extends Omit<BaseSelectProps, 'autocomplete' | 'Field' | 'nativeSelect' | 'searchProps' | 'showSearch' | 'Search' | 'valueRenderer'> {
6
6
  /**
7
7
  * Компонент ввода значения
8
8
  */
@@ -37,6 +37,7 @@
37
37
  font-size: 16px;
38
38
  line-height: 20px;
39
39
  font-weight: 400;
40
+ font-family: var(--font-family-system);
40
41
 
41
42
  white-space: nowrap;
42
43
  text-overflow: ellipsis;
@@ -3,7 +3,7 @@ import { Popover } from '@alfalab/core-components-popover/moderncssm';
3
3
  import { BaseSelect, OptionsList, Optgroup, Option } from '@alfalab/core-components-select/moderncssm/shared';
4
4
  import { AutocompleteField } from '../autocomplete-field/Component.js';
5
5
 
6
- const InputAutocompleteDesktop = forwardRef(({ OptionsList: OptionsList$1 = OptionsList, Optgroup: Optgroup$1 = Optgroup, Option: Option$1 = Option, Field = AutocompleteField, Input, inputProps = {}, onInput, value, success, readOnly, closeOnSelect = false, options, ...restProps }, ref) => (React.createElement(BaseSelect, { view: 'desktop', Popover: Popover, ref: ref, autocomplete: true, options: options, closeOnSelect: closeOnSelect, Option: Option$1, Field: Field, Optgroup: Optgroup$1, OptionsList: OptionsList$1, ...restProps, fieldProps: {
6
+ const InputAutocompleteDesktop = forwardRef(({ OptionsList: OptionsList$1 = OptionsList, Optgroup: Optgroup$1 = Optgroup, Option: Option$1 = Option, Input, inputProps = {}, onInput, value, success, readOnly, closeOnSelect = false, options, ...restProps }, ref) => (React.createElement(BaseSelect, { view: 'desktop', Popover: Popover, ref: ref, autocomplete: true, options: options, closeOnSelect: closeOnSelect, Option: Option$1, Field: AutocompleteField, Optgroup: Optgroup$1, OptionsList: OptionsList$1, ...restProps, fieldProps: {
7
7
  ...restProps.fieldProps,
8
8
  Input,
9
9
  onInput,
@@ -1 +1 @@
1
- {"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { Popover } from '@alfalab/core-components-popover';\nimport {\n type AnyObject,\n BaseSelect,\n Optgroup as DefaultOptgroup,\n Option as DefaultOption,\n OptionsList as DefaultOptionsList,\n} from '@alfalab/core-components-select/shared';\n\nimport { AutocompleteField as DefaultField } from '../autocomplete-field';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nexport const InputAutocompleteDesktop = forwardRef<HTMLInputElement, InputAutocompleteCommonProps>(\n (\n {\n OptionsList = DefaultOptionsList,\n Optgroup = DefaultOptgroup,\n Option = DefaultOption,\n Field = DefaultField,\n Input,\n inputProps = {},\n onInput,\n value,\n success,\n readOnly,\n closeOnSelect = false,\n options,\n ...restProps\n },\n ref,\n ) => (\n <BaseSelect\n view='desktop'\n Popover={Popover}\n ref={ref}\n autocomplete={true}\n options={options}\n closeOnSelect={closeOnSelect}\n Option={Option}\n Field={Field}\n Optgroup={Optgroup}\n OptionsList={OptionsList}\n {...restProps}\n fieldProps={{\n ...(restProps.fieldProps as AnyObject),\n Input,\n onInput,\n value,\n inputProps,\n readOnly,\n success,\n }}\n />\n ),\n);\n"],"names":["OptionsList","DefaultOptionsList","Optgroup","DefaultOptgroup","Option","DefaultOption","DefaultField"],"mappings":";;;;;MAca,wBAAwB,GAAG,UAAU,CAC9C,CACI,eACIA,aAAW,GAAGC,WAAkB,YAChCC,UAAQ,GAAGC,QAAe,UAC1BC,QAAM,GAAGC,MAAa,EACtB,KAAK,GAAGC,iBAAY,EACpB,KAAK,EACL,UAAU,GAAG,EAAE,EACf,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,aAAa,GAAG,KAAK,EACrB,OAAO,EACP,GAAG,SAAS,EACf,EACD,GAAG,MAEH,KAAC,CAAA,aAAA,CAAA,UAAU,IACP,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAEF,QAAM,EACd,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAEF,UAAQ,EAClB,WAAW,EAAEF,aAAW,EACpB,GAAA,SAAS,EACb,UAAU,EAAE;QACR,GAAI,SAAS,CAAC,UAAwB;QACtC,KAAK;QACL,OAAO;QACP,KAAK;QACL,UAAU;QACV,QAAQ;QACR,OAAO;KACV,EACH,CAAA,CACL;;;;"}
1
+ {"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { Popover } from '@alfalab/core-components-popover';\nimport {\n type AnyObject,\n BaseSelect,\n Optgroup as DefaultOptgroup,\n Option as DefaultOption,\n OptionsList as DefaultOptionsList,\n} from '@alfalab/core-components-select/shared';\n\nimport { AutocompleteField } from '../autocomplete-field';\nimport { type InputAutocompleteCommonProps } from '../types';\n\nexport const InputAutocompleteDesktop = forwardRef<HTMLInputElement, InputAutocompleteCommonProps>(\n (\n {\n OptionsList = DefaultOptionsList,\n Optgroup = DefaultOptgroup,\n Option = DefaultOption,\n Input,\n inputProps = {},\n onInput,\n value,\n success,\n readOnly,\n closeOnSelect = false,\n options,\n ...restProps\n },\n ref,\n ) => (\n <BaseSelect\n view='desktop'\n Popover={Popover}\n ref={ref}\n autocomplete={true}\n options={options}\n closeOnSelect={closeOnSelect}\n Option={Option}\n Field={AutocompleteField}\n Optgroup={Optgroup}\n OptionsList={OptionsList}\n {...restProps}\n fieldProps={{\n ...(restProps.fieldProps as AnyObject),\n Input,\n onInput,\n value,\n inputProps,\n readOnly,\n success,\n }}\n />\n ),\n);\n"],"names":["OptionsList","DefaultOptionsList","Optgroup","DefaultOptgroup","Option","DefaultOption"],"mappings":";;;;;MAca,wBAAwB,GAAG,UAAU,CAC9C,CACI,eACIA,aAAW,GAAGC,WAAkB,YAChCC,UAAQ,GAAGC,QAAe,UAC1BC,QAAM,GAAGC,MAAa,EACtB,KAAK,EACL,UAAU,GAAG,EAAE,EACf,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,aAAa,GAAG,KAAK,EACrB,OAAO,EACP,GAAG,SAAS,EACf,EACD,GAAG,MAEH,KAAA,CAAA,aAAA,CAAC,UAAU,EACP,EAAA,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAED,QAAM,EACd,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAEF,UAAQ,EAClB,WAAW,EAAEF,aAAW,EACpB,GAAA,SAAS,EACb,UAAU,EAAE;QACR,GAAI,SAAS,CAAC,UAAwB;QACtC,KAAK;QACL,OAAO;QACP,KAAK;QACL,UAAU;QACV,QAAQ;QACR,OAAO;KACV,EACH,CAAA,CACL;;;;"}
@@ -11,7 +11,7 @@ import { OnInputReason } from '../enums.js';
11
11
  import { searchFilterStub } from '../utils.js';
12
12
  import styles from './mobile.module.css';
13
13
 
14
- const InputAutocompleteMobile = React.forwardRef(({ Input, value, name, Arrow = null, label, placeholder = '', size = 48, open: openProp, onInput, onOpen, multiple, inputProps, isBottomSheet = true, dataTestId, transitionProps, onCancel, onApply, title, success, virtualKeyboard = false, Search, searchProps, Field = AutocompleteMobileField, ...restProps }, ref) => {
14
+ const InputAutocompleteMobile = React.forwardRef(({ Input, value, name, Arrow = null, label, placeholder = '', size = 48, open: openProp, onInput, onOpen, multiple, inputProps, isBottomSheet = true, dataTestId, transitionProps, onCancel, onApply, title, success, virtualKeyboard = false, ...restProps }, ref) => {
15
15
  const [open, setOpen] = useState(false);
16
16
  const frozenValue = useRef('');
17
17
  const searchInputRef = useRef(null);
@@ -69,7 +69,7 @@ const InputAutocompleteMobile = React.forwardRef(({ Input, value, name, Arrow =
69
69
  ? maskitoTransform(displayValue, { mask })
70
70
  : displayValue;
71
71
  }, [displayValue, inputProps?.mask]);
72
- return (React.createElement(Component, { Field: Field, ...restProps, ...(isBottomSheet
72
+ return (React.createElement(Component, { Field: AutocompleteMobileField, ...restProps, ...(isBottomSheet
73
73
  ? {
74
74
  bottomSheetProps: {
75
75
  ...componentProps,
@@ -80,20 +80,19 @@ const InputAutocompleteMobile = React.forwardRef(({ Input, value, name, Arrow =
80
80
  : {
81
81
  modalProps: componentProps,
82
82
  modalHeaderProps: { title },
83
- }), dataTestId: dataTestId, useWithApplyHook: false, showSearch: true, Search: Search ?? Input, searchProps: {
83
+ }), dataTestId: dataTestId, useWithApplyHook: false, showSearch: true, searchProps: {
84
84
  value,
85
85
  filterFn: searchFilterStub,
86
86
  componentProps: {
87
87
  leftAddons: null,
88
88
  placeholder,
89
89
  ...inputProps,
90
- ...searchProps?.componentProps,
91
90
  className: cn(styles.input, inputProps?.className),
92
91
  clear,
93
92
  ref: mergeRefs([searchInputRef, inputProps?.ref]),
94
93
  onChange: (_, payload) => onInput?.(payload.value, OnInputReason.Change),
95
94
  },
96
- }, ref: mergeRefs([targetRef, ref]), open: isOpen, onOpen: handleOpen, Arrow: Arrow, placeholder: placeholder, label: label, size: size, name: name, multiple: multiple, optionsListProps: {
95
+ }, Search: Input, ref: mergeRefs([targetRef, ref]), open: isOpen, onOpen: handleOpen, Arrow: Arrow, placeholder: placeholder, label: label, size: size, name: name, multiple: multiple, optionsListProps: {
97
96
  footer: (React.createElement(Footer, { showClear: true, handleClear: handleCancel, handleApply: handleApply, clearText: '\u041E\u0442\u043C\u0435\u043D\u0430', applyText: '\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C', dataTestId: dataTestId })),
98
97
  ...restProps.optionsListProps,
99
98
  }, fieldProps: {
@@ -1 +1 @@
1
- {"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { type Ref, useMemo, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport { maskitoTransform } from '@maskito/core';\nimport cn from 'classnames';\nimport throttle from 'lodash/throttle';\n\nimport {\n SelectMobile,\n type SelectMobileProps,\n SelectModalMobile,\n} from '@alfalab/core-components-select/mobile';\nimport {\n type AnyObject,\n type BottomSheetSelectMobileProps,\n Footer,\n type ModalSelectMobileProps,\n} from '@alfalab/core-components-select/shared';\nimport { isMaskitoMask, isNonNullable } from '@alfalab/core-components-shared';\n\nimport { AutocompleteMobileField as DefaultField } from '../autocomplete-mobile-field';\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteMobileProps } from '../types';\nimport { searchFilterStub } from '../utils';\n\nimport styles from './mobile.module.css';\n\nexport const InputAutocompleteMobile = React.forwardRef(\n (\n {\n Input,\n value,\n name,\n Arrow = null,\n label,\n placeholder = '',\n size = 48,\n open: openProp,\n onInput,\n onOpen,\n multiple,\n inputProps,\n isBottomSheet = true,\n dataTestId,\n transitionProps,\n onCancel,\n onApply,\n title,\n success,\n virtualKeyboard = false,\n Search,\n searchProps,\n Field = DefaultField,\n ...restProps\n }: InputAutocompleteMobileProps,\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const frozenValue = useRef<string>('');\n const searchInputRef = useRef<HTMLInputElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n\n const restorePrevValue = () => onInput?.(frozenValue.current, OnInputReason.Close);\n\n const setModalVisibility = (isOpen: boolean) => {\n if (isOpen) {\n frozenValue.current = value || '';\n }\n\n if (openProp === undefined) {\n setOpen(isOpen);\n }\n\n onOpen?.({ open: isOpen, name });\n };\n\n const handleOpen: SelectMobileProps['onOpen'] = (payload) => {\n setModalVisibility(Boolean(payload.open));\n };\n\n const handleOptionsListTouchMove = useMemo(\n () =>\n throttle(() => {\n const input = searchInputRef.current;\n\n if (input && document.activeElement === input) {\n input.blur();\n }\n }, 300),\n [],\n );\n\n const handleApply = () => {\n setModalVisibility(false);\n onApply?.();\n };\n\n const handleCancel = () => {\n setModalVisibility(false);\n restorePrevValue();\n onCancel?.();\n };\n\n const handleExiting = (node: HTMLElement) => {\n targetRef.current?.focus();\n transitionProps?.onExiting?.(node);\n };\n\n const isOpen = Boolean(open || openProp);\n\n const Component = isBottomSheet ? SelectMobile : SelectModalMobile;\n\n const componentProps:\n | ModalSelectMobileProps['modalProps']\n | BottomSheetSelectMobileProps['bottomSheetProps'] = {\n title: title || label || placeholder,\n onClose: restorePrevValue,\n transitionProps: {\n ...transitionProps,\n onExiting: handleExiting,\n },\n [isBottomSheet ? 'containerProps' : 'componentDivProps']: {\n onTouchMove: handleOptionsListTouchMove,\n },\n };\n\n const clear = inputProps?.clear ?? false;\n\n const displayValue = isOpen ? frozenValue.current : value;\n\n const fieldValue = useMemo(() => {\n const mask = inputProps?.mask;\n\n return isNonNullable(displayValue) && isMaskitoMask(mask)\n ? maskitoTransform(displayValue, { mask })\n : displayValue;\n }, [displayValue, inputProps?.mask]);\n\n return (\n <Component\n Field={Field}\n {...restProps}\n {...(isBottomSheet\n ? {\n bottomSheetProps: {\n ...componentProps,\n virtualKeyboard,\n showSwipeMarker: false,\n },\n }\n : {\n modalProps: componentProps,\n modalHeaderProps: { title },\n })}\n dataTestId={dataTestId}\n useWithApplyHook={false}\n showSearch={true}\n Search={Search ?? Input}\n searchProps={{\n value,\n filterFn: searchFilterStub,\n componentProps: {\n leftAddons: null,\n placeholder,\n ...inputProps,\n ...searchProps?.componentProps,\n className: cn(styles.input, inputProps?.className),\n clear,\n ref: mergeRefs([searchInputRef, inputProps?.ref as Ref<HTMLInputElement>]),\n onChange: (_, payload) => onInput?.(payload.value, OnInputReason.Change),\n },\n }}\n ref={mergeRefs([targetRef, ref])}\n open={isOpen}\n onOpen={handleOpen}\n Arrow={Arrow}\n placeholder={placeholder}\n label={label}\n size={size}\n name={name}\n multiple={multiple}\n optionsListProps={{\n footer: (\n <Footer\n showClear={true}\n handleClear={handleCancel}\n handleApply={handleApply}\n clearText='Отмена'\n applyText='Продолжить'\n dataTestId={dataTestId}\n />\n ),\n ...(restProps.optionsListProps as AnyObject),\n }}\n fieldProps={{\n value: fieldValue,\n clear,\n onClear: clear ? inputProps?.onClear : undefined,\n success,\n ...(restProps.fieldProps as AnyObject),\n }}\n />\n );\n },\n);\n"],"names":["DefaultField"],"mappings":"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"}
1
+ {"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { type Ref, useMemo, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport { maskitoTransform } from '@maskito/core';\nimport cn from 'classnames';\nimport throttle from 'lodash/throttle';\n\nimport {\n SelectMobile,\n type SelectMobileProps,\n SelectModalMobile,\n} from '@alfalab/core-components-select/mobile';\nimport {\n type AnyObject,\n type BottomSheetSelectMobileProps,\n Footer,\n type ModalSelectMobileProps,\n} from '@alfalab/core-components-select/shared';\nimport { isMaskitoMask, isNonNullable } from '@alfalab/core-components-shared';\n\nimport { AutocompleteMobileField } from '../autocomplete-mobile-field';\nimport { OnInputReason } from '../enums';\nimport { type InputAutocompleteMobileProps } from '../types';\nimport { searchFilterStub } from '../utils';\n\nimport styles from './mobile.module.css';\n\nexport const InputAutocompleteMobile = React.forwardRef(\n (\n {\n Input,\n value,\n name,\n Arrow = null,\n label,\n placeholder = '',\n size = 48,\n open: openProp,\n onInput,\n onOpen,\n multiple,\n inputProps,\n isBottomSheet = true,\n dataTestId,\n transitionProps,\n onCancel,\n onApply,\n title,\n success,\n virtualKeyboard = false,\n ...restProps\n }: InputAutocompleteMobileProps,\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const frozenValue = useRef<string>('');\n const searchInputRef = useRef<HTMLInputElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n\n const restorePrevValue = () => onInput?.(frozenValue.current, OnInputReason.Close);\n\n const setModalVisibility = (isOpen: boolean) => {\n if (isOpen) {\n frozenValue.current = value || '';\n }\n\n if (openProp === undefined) {\n setOpen(isOpen);\n }\n\n onOpen?.({ open: isOpen, name });\n };\n\n const handleOpen: SelectMobileProps['onOpen'] = (payload) => {\n setModalVisibility(Boolean(payload.open));\n };\n\n const handleOptionsListTouchMove = useMemo(\n () =>\n throttle(() => {\n const input = searchInputRef.current;\n\n if (input && document.activeElement === input) {\n input.blur();\n }\n }, 300),\n [],\n );\n\n const handleApply = () => {\n setModalVisibility(false);\n onApply?.();\n };\n\n const handleCancel = () => {\n setModalVisibility(false);\n restorePrevValue();\n onCancel?.();\n };\n\n const handleExiting = (node: HTMLElement) => {\n targetRef.current?.focus();\n transitionProps?.onExiting?.(node);\n };\n\n const isOpen = Boolean(open || openProp);\n\n const Component = isBottomSheet ? SelectMobile : SelectModalMobile;\n\n const componentProps:\n | ModalSelectMobileProps['modalProps']\n | BottomSheetSelectMobileProps['bottomSheetProps'] = {\n title: title || label || placeholder,\n onClose: restorePrevValue,\n transitionProps: {\n ...transitionProps,\n onExiting: handleExiting,\n },\n [isBottomSheet ? 'containerProps' : 'componentDivProps']: {\n onTouchMove: handleOptionsListTouchMove,\n },\n };\n\n const clear = inputProps?.clear ?? false;\n\n const displayValue = isOpen ? frozenValue.current : value;\n\n const fieldValue = useMemo(() => {\n const mask = inputProps?.mask;\n\n return isNonNullable(displayValue) && isMaskitoMask(mask)\n ? maskitoTransform(displayValue, { mask })\n : displayValue;\n }, [displayValue, inputProps?.mask]);\n\n return (\n <Component\n Field={AutocompleteMobileField}\n {...restProps}\n {...(isBottomSheet\n ? {\n bottomSheetProps: {\n ...componentProps,\n virtualKeyboard,\n showSwipeMarker: false,\n },\n }\n : {\n modalProps: componentProps,\n modalHeaderProps: { title },\n })}\n dataTestId={dataTestId}\n useWithApplyHook={false}\n showSearch={true}\n searchProps={{\n value,\n filterFn: searchFilterStub,\n componentProps: {\n leftAddons: null,\n placeholder,\n ...inputProps,\n className: cn(styles.input, inputProps?.className),\n clear,\n ref: mergeRefs([searchInputRef, inputProps?.ref as Ref<HTMLInputElement>]),\n onChange: (_, payload) => onInput?.(payload.value, OnInputReason.Change),\n },\n }}\n Search={Input}\n ref={mergeRefs([targetRef, ref])}\n open={isOpen}\n onOpen={handleOpen}\n Arrow={Arrow}\n placeholder={placeholder}\n label={label}\n size={size}\n name={name}\n multiple={multiple}\n optionsListProps={{\n footer: (\n <Footer\n showClear={true}\n handleClear={handleCancel}\n handleApply={handleApply}\n clearText='Отмена'\n applyText='Продолжить'\n dataTestId={dataTestId}\n />\n ),\n ...(restProps.optionsListProps as AnyObject),\n }}\n fieldProps={{\n value: fieldValue,\n clear,\n onClear: clear ? inputProps?.onClear : undefined,\n success,\n ...(restProps.fieldProps as AnyObject),\n }}\n />\n );\n },\n);\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { type ComponentType, type RefAttributes } from 'react';
2
2
  import { type InputProps } from '@alfalab/core-components-input/moderncssm';
3
3
  import { type BaseSelectProps, type BottomSheetSelectMobileProps } from '@alfalab/core-components-select/moderncssm/shared';
4
4
  declare type OnInputTypeReason = 'close' | 'change';
5
- export interface InputAutocompleteCommonProps extends Omit<BaseSelectProps, 'autocomplete' | 'nativeSelect' | 'showSearch' | 'valueRenderer'> {
5
+ export interface InputAutocompleteCommonProps extends Omit<BaseSelectProps, 'autocomplete' | 'Field' | 'nativeSelect' | 'searchProps' | 'showSearch' | 'Search' | 'valueRenderer'> {
6
6
  /**
7
7
  * Компонент ввода значения
8
8
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-input-autocomplete",
3
- "version": "13.1.0",
3
+ "version": "14.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,13 +10,13 @@
10
10
  "main": "index.js",
11
11
  "module": "./esm/index.js",
12
12
  "dependencies": {
13
- "@alfalab/core-components-form-control": "^13.0.2",
14
- "@alfalab/core-components-input": "^16.0.4",
15
- "@alfalab/core-components-mq": "^5.0.2",
16
- "@alfalab/core-components-popover": "^7.1.1",
17
- "@alfalab/core-components-select": "^18.2.8",
18
- "@alfalab/core-components-shared": "^1.1.1",
19
- "@alfalab/core-components-status-badge": "^2.0.1",
13
+ "@alfalab/core-components-form-control": "14.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
14
+ "@alfalab/core-components-input": "17.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
15
+ "@alfalab/core-components-mq": "6.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
16
+ "@alfalab/core-components-popover": "8.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
17
+ "@alfalab/core-components-select": "19.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
18
+ "@alfalab/core-components-shared": "2.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
19
+ "@alfalab/core-components-status-badge": "3.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
20
20
  "@alfalab/hooks": "^1.13.1",
21
21
  "@maskito/core": "^1.7.0",
22
22
  "classnames": "^2.5.1",
@@ -25,13 +25,13 @@
25
25
  "tslib": "^2.4.0"
26
26
  },
27
27
  "peerDependencies": {
28
- "react": "^16.9.0 || ^17.0.1 || ^18.0.0",
29
- "react-dom": "^16.9.0 || ^17.0.1 || ^18.0.0"
28
+ "react": "^16.9.0 || ^17.0.1 || ^18.0.0 || ^19.0.0",
29
+ "react-dom": "^16.9.0 || ^17.0.1 || ^18.0.0 || ^19.0.0"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public",
33
33
  "directory": "dist"
34
34
  },
35
- "themesVersion": "14.2.0",
36
- "varsVersion": "10.2.0"
35
+ "themesVersion": "15.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2",
36
+ "varsVersion": "11.0.0-8406faee42e08c133fbcbb0de3e6eb2df6766dd2"
37
37
  }