@salutejs/plasma-new-hope 0.320.1-canary.1913.14457152885.0 → 0.320.1-canary.1913.14480249004.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/Autocomplete/Autocomplete.js +2 -2
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +1 -1
- package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
- package/cjs/components/Typography/Body/Body.css +1 -1
- package/cjs/components/Typography/Typography.js +3 -2
- package/cjs/components/Typography/Typography.js.map +1 -1
- package/cjs/components/Typography/Typography.styles.js +1 -1
- package/cjs/components/Typography/Typography.styles.js.map +1 -1
- package/cjs/components/Typography/{Typography.styles_c0qunc.css → Typography.styles_ysh8u6.css} +1 -1
- package/cjs/components/Typography/tokens.js +2 -1
- package/cjs/components/Typography/tokens.js.map +1 -1
- package/cjs/index.css +1 -1
- package/emotion/cjs/components/Autocomplete/Autocomplete.js +2 -2
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +2 -2
- package/emotion/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +1 -1
- package/emotion/cjs/components/Typography/Typography.js +3 -2
- package/emotion/cjs/components/Typography/Typography.styles.js +1 -1
- package/emotion/cjs/components/Typography/Typography.template-doc.mdx +3 -0
- package/emotion/cjs/components/Typography/tokens.js +2 -1
- package/emotion/cjs/examples/plasma_b2c/components/Checkbox/Checkbox.config.js +13 -12
- package/emotion/cjs/examples/plasma_b2c/components/Checkbox/Checkbox.outline.config.js +13 -12
- package/emotion/cjs/examples/plasma_b2c/components/Checkbox/Checkbox.stories.tsx +1 -1
- package/emotion/cjs/examples/plasma_b2c/components/Radiobox/Radiobox.config.js +13 -12
- package/emotion/cjs/examples/plasma_b2c/components/Radiobox/Radiobox.outline.config.js +13 -12
- package/emotion/cjs/examples/plasma_b2c/components/Radiobox/Radiobox.stories.tsx +1 -1
- package/emotion/cjs/examples/plasma_web/components/Checkbox/Checkbox.config.js +13 -12
- package/emotion/cjs/examples/plasma_web/components/Checkbox/Checkbox.outline.config.js +13 -12
- package/emotion/cjs/examples/plasma_web/components/Checkbox/Checkbox.stories.tsx +1 -1
- package/emotion/cjs/examples/plasma_web/components/Radiobox/Radiobox.config.js +13 -12
- package/emotion/cjs/examples/plasma_web/components/Radiobox/Radiobox.outline.config.js +13 -12
- package/emotion/cjs/examples/plasma_web/components/Radiobox/Radiobox.stories.tsx +1 -1
- package/emotion/cjs/examples/typography/components/Body/Body.stories.tsx +9 -4
- package/emotion/cjs/examples/typography/components/Dspl/Dspl.stories.tsx +3 -0
- package/emotion/cjs/examples/typography/components/Heading/Heading.stories.tsx +3 -0
- package/emotion/cjs/examples/typography/components/Text/Text.stories.tsx +3 -0
- package/emotion/es/components/Autocomplete/Autocomplete.js +2 -2
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +2 -2
- package/emotion/es/components/Select/ui/Target/ui/Textfield/Textfield.js +1 -1
- package/emotion/es/components/Typography/Typography.js +3 -2
- package/emotion/es/components/Typography/Typography.styles.js +1 -1
- package/emotion/es/components/Typography/Typography.template-doc.mdx +3 -0
- package/emotion/es/components/Typography/tokens.js +2 -1
- package/emotion/es/examples/plasma_b2c/components/Checkbox/Checkbox.config.js +13 -12
- package/emotion/es/examples/plasma_b2c/components/Checkbox/Checkbox.outline.config.js +13 -12
- package/emotion/es/examples/plasma_b2c/components/Checkbox/Checkbox.stories.tsx +1 -1
- package/emotion/es/examples/plasma_b2c/components/Radiobox/Radiobox.config.js +13 -12
- package/emotion/es/examples/plasma_b2c/components/Radiobox/Radiobox.outline.config.js +13 -12
- package/emotion/es/examples/plasma_b2c/components/Radiobox/Radiobox.stories.tsx +1 -1
- package/emotion/es/examples/plasma_web/components/Checkbox/Checkbox.config.js +13 -12
- package/emotion/es/examples/plasma_web/components/Checkbox/Checkbox.outline.config.js +13 -12
- package/emotion/es/examples/plasma_web/components/Checkbox/Checkbox.stories.tsx +1 -1
- package/emotion/es/examples/plasma_web/components/Radiobox/Radiobox.config.js +13 -12
- package/emotion/es/examples/plasma_web/components/Radiobox/Radiobox.outline.config.js +13 -12
- package/emotion/es/examples/plasma_web/components/Radiobox/Radiobox.stories.tsx +1 -1
- package/emotion/es/examples/typography/components/Body/Body.stories.tsx +9 -4
- package/emotion/es/examples/typography/components/Dspl/Dspl.stories.tsx +3 -0
- package/emotion/es/examples/typography/components/Heading/Heading.stories.tsx +3 -0
- package/emotion/es/examples/typography/components/Text/Text.stories.tsx +3 -0
- package/es/components/Autocomplete/Autocomplete.js +2 -2
- package/es/components/Autocomplete/Autocomplete.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js +2 -2
- package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/es/components/Select/ui/Target/ui/Textfield/Textfield.js +1 -1
- package/es/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
- package/es/components/Typography/Body/Body.css +1 -1
- package/es/components/Typography/Typography.js +3 -2
- package/es/components/Typography/Typography.js.map +1 -1
- package/es/components/Typography/Typography.styles.js +1 -1
- package/es/components/Typography/Typography.styles.js.map +1 -1
- package/es/components/Typography/{Typography.styles_c0qunc.css → Typography.styles_ysh8u6.css} +1 -1
- package/es/components/Typography/tokens.js +2 -1
- package/es/components/Typography/tokens.js.map +1 -1
- package/es/index.css +1 -1
- package/package.json +3 -3
- package/styled-components/cjs/components/Autocomplete/Autocomplete.js +2 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +2 -2
- package/styled-components/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +1 -1
- package/styled-components/cjs/components/Typography/Typography.js +3 -2
- package/styled-components/cjs/components/Typography/Typography.styles.js +1 -1
- package/styled-components/cjs/components/Typography/Typography.template-doc.mdx +3 -0
- package/styled-components/cjs/components/Typography/tokens.js +2 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Checkbox/Checkbox.config.js +2 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Checkbox/Checkbox.outline.config.js +2 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Checkbox/Checkbox.stories.tsx +1 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Radiobox/Radiobox.config.js +2 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Radiobox/Radiobox.outline.config.js +2 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Radiobox/Radiobox.stories.tsx +1 -1
- package/styled-components/cjs/examples/plasma_web/components/Checkbox/Checkbox.config.js +2 -1
- package/styled-components/cjs/examples/plasma_web/components/Checkbox/Checkbox.outline.config.js +2 -1
- package/styled-components/cjs/examples/plasma_web/components/Checkbox/Checkbox.stories.tsx +1 -1
- package/styled-components/cjs/examples/plasma_web/components/Radiobox/Radiobox.config.js +2 -1
- package/styled-components/cjs/examples/plasma_web/components/Radiobox/Radiobox.outline.config.js +2 -1
- package/styled-components/cjs/examples/plasma_web/components/Radiobox/Radiobox.stories.tsx +1 -1
- package/styled-components/cjs/examples/typography/components/Body/Body.stories.tsx +9 -4
- package/styled-components/cjs/examples/typography/components/Dspl/Dspl.stories.tsx +3 -0
- package/styled-components/cjs/examples/typography/components/Heading/Heading.stories.tsx +3 -0
- package/styled-components/cjs/examples/typography/components/Text/Text.stories.tsx +3 -0
- package/styled-components/es/components/Autocomplete/Autocomplete.js +2 -2
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +2 -2
- package/styled-components/es/components/Select/ui/Target/ui/Textfield/Textfield.js +1 -1
- package/styled-components/es/components/Typography/Typography.js +3 -2
- package/styled-components/es/components/Typography/Typography.styles.js +1 -1
- package/styled-components/es/components/Typography/Typography.template-doc.mdx +3 -0
- package/styled-components/es/components/Typography/tokens.js +2 -1
- package/styled-components/es/examples/plasma_b2c/components/Checkbox/Checkbox.config.js +2 -1
- package/styled-components/es/examples/plasma_b2c/components/Checkbox/Checkbox.outline.config.js +2 -1
- package/styled-components/es/examples/plasma_b2c/components/Checkbox/Checkbox.stories.tsx +1 -1
- package/styled-components/es/examples/plasma_b2c/components/Radiobox/Radiobox.config.js +2 -1
- package/styled-components/es/examples/plasma_b2c/components/Radiobox/Radiobox.outline.config.js +2 -1
- package/styled-components/es/examples/plasma_b2c/components/Radiobox/Radiobox.stories.tsx +1 -1
- package/styled-components/es/examples/plasma_web/components/Checkbox/Checkbox.config.js +2 -1
- package/styled-components/es/examples/plasma_web/components/Checkbox/Checkbox.outline.config.js +2 -1
- package/styled-components/es/examples/plasma_web/components/Checkbox/Checkbox.stories.tsx +1 -1
- package/styled-components/es/examples/plasma_web/components/Radiobox/Radiobox.config.js +2 -1
- package/styled-components/es/examples/plasma_web/components/Radiobox/Radiobox.outline.config.js +2 -1
- package/styled-components/es/examples/plasma_web/components/Radiobox/Radiobox.stories.tsx +1 -1
- package/styled-components/es/examples/typography/components/Body/Body.stories.tsx +9 -4
- package/styled-components/es/examples/typography/components/Dspl/Dspl.stories.tsx +3 -0
- package/styled-components/es/examples/typography/components/Heading/Heading.stories.tsx +3 -0
- package/styled-components/es/examples/typography/components/Text/Text.stories.tsx +3 -0
- package/types/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
- package/types/components/Select/ui/Target/ui/Textfield/Textfield.d.ts.map +1 -1
- package/types/components/Typography/Typography.d.ts.map +1 -1
- package/types/components/Typography/Typography.styles.d.ts.map +1 -1
- package/types/components/Typography/Typography.types.d.ts +4 -0
- package/types/components/Typography/Typography.types.d.ts.map +1 -1
- package/types/components/Typography/tokens.d.ts +1 -0
- package/types/components/Typography/tokens.d.ts.map +1 -1
@@ -179,9 +179,9 @@ var autocompleteRoot = function autocompleteRoot(Root) {
|
|
179
179
|
hintText: String(hintText || ''),
|
180
180
|
labelPlacement: labelPlacement,
|
181
181
|
keepPlaceholder: keepPlaceholder,
|
182
|
-
leftHelper: _StyledLeftHelper || (_StyledLeftHelper = /*#__PURE__*/React__default.default.createElement(Autocomplete_styles.StyledLeftHelper, {
|
182
|
+
leftHelper: leftHelper && (_StyledLeftHelper || (_StyledLeftHelper = /*#__PURE__*/React__default.default.createElement(Autocomplete_styles.StyledLeftHelper, {
|
183
183
|
onClick: helperTextStopPropagation
|
184
|
-
}, leftHelper))
|
184
|
+
}, leftHelper)))
|
185
185
|
}, rest));
|
186
186
|
}
|
187
187
|
}, renderList && renderList(finalResults) || Boolean(finalResults.length) && /*#__PURE__*/React__default.default.createElement(Root, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useLayoutEffect, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { useDidMountEffect, useOutsideClick } from '../../hooks';\nimport { RootProps } from '../../engines';\n\nimport { FloatingPopover } from './FloatingPopover';\nimport { focusedReducer } from './reducers/focusedReducer';\nimport { SuggestionItem, StyledTextField, VirtualList } from './ui';\nimport { Ul, InfiniteLoaderWrapper, base, StyledLeftHelper } from './Autocomplete.styles';\nimport type { AutocompleteProps, SuggestionItemType } from './Autocomplete.types';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\n// Пороговое значение количества результирующих элементов в списке,\n// при котором возможна виртуализация (при virtual=true);\nconst VIRTUAL_ITEM_AMOUNT_THRESHOLD = 10;\n\n/**\n * Компонент Autocomplete. Поле ввода с подсказками в выпадающем списке.\n */\nexport const autocompleteRoot = (Root: RootProps<HTMLInputElement, Omit<AutocompleteProps, 'hintText'>>) =>\n forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n value: outerValue,\n defaultValue,\n onChange,\n suggestions,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n disabled,\n readOnly,\n label,\n leftHelper,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n onScroll,\n listMaxHeight,\n listWidth,\n portal,\n filter,\n onSuggestionSelect,\n threshold = 2,\n renderList,\n renderListEnd,\n onSearch,\n hintText,\n hintView = 'default',\n hintSize = 'm',\n beforeList,\n afterList,\n virtual = false,\n ...rest\n },\n ref,\n ) => {\n const [focused, dispatchFocused] = useReducer(focusedReducer, null);\n const [innerValue, setInnerValue] = useState<string | number>('');\n const [isOpen, setIsOpen] = useState(false);\n\n const listId = safeUseId();\n const value = outerValue ?? innerValue;\n\n const helperTextId = safeUseId();\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n setIsOpen(false);\n }, floatingPopoverRef);\n\n const handleFocus = () => {\n if (value.toString().length >= threshold) {\n setIsOpen(true);\n }\n };\n\n const handleItemClick = (e: SuggestionItemType) => {\n setInnerValue(e.label);\n\n if (onSuggestionSelect) {\n onSuggestionSelect(e);\n }\n\n setIsOpen(false);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const currentValue = e.target.value;\n\n setInnerValue(currentValue);\n\n if (onChange) {\n onChange(e);\n }\n\n if (currentValue.toString().length >= threshold) {\n setIsOpen(true);\n } else {\n setIsOpen(false);\n }\n };\n\n const defaultFilterCallback = ({ label }: { label: string }) => {\n return label.toLowerCase().includes(value.toString().toLowerCase());\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const finalResults = suggestions?.filter(filter || defaultFilterCallback) || [];\n\n virtual = virtual && finalResults.length > VIRTUAL_ITEM_AMOUNT_THRESHOLD;\n\n const { onKeyDown } = useKeyNavigation({\n isOpen,\n setIsOpen,\n focused,\n dispatchFocused,\n finalResults,\n handleItemClick,\n });\n\n useDidMountEffect(() => {\n dispatchFocused({ type: 'reset' });\n }, [value]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInnerValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n hintView={hintView}\n hintSize={hintSize}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isOpen}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={ref}\n inputWrapperRef={referenceRef}\n value={value}\n onChange={handleChange}\n onSearch={focused === null ? onSearch : undefined}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onFocus={handleFocus}\n onKeyDown={onKeyDown}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={listId}\n aria-expanded={isOpen}\n aria-activedescendant={`${listId}/${focused}`}\n aria-describedby={helperTextId}\n hintText={String(hintText || '')}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n leftHelper={\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {leftHelper}\n </StyledLeftHelper>\n }\n {...rest}\n />\n )}\n >\n {(renderList && renderList(finalResults)) ||\n (Boolean(finalResults.length) && (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <Ul\n ref={targetRef}\n id={listId}\n role=\"listbox\"\n aria-label={label}\n onScroll={virtual ? undefined : onScroll}\n listMaxHeight={listMaxHeight}\n virtual={virtual}\n >\n {virtual ? (\n <VirtualList\n items={finalResults}\n onClick={handleItemClick}\n listId={listId}\n listMaxHeight={listMaxHeight}\n onScroll={onScroll}\n />\n ) : (\n <>\n {beforeList}\n\n {finalResults.map((suggestion, index) => (\n <SuggestionItem\n key={index}\n item={suggestion}\n onClick={handleItemClick}\n id={`${listId}/${index}`}\n focused={focused === index}\n />\n ))}\n\n {afterList}\n </>\n )}\n\n {renderListEnd && (\n <InfiniteLoaderWrapper>{renderListEnd()}</InfiniteLoaderWrapper>\n )}\n </Ul>\n </Root>\n ))}\n </FloatingPopover>\n </Root>\n );\n },\n );\n\nexport const autocompleteConfig = {\n name: 'Autocomplete',\n tag: 'div',\n layout: autocompleteRoot,\n base,\n defaults: {\n view: 'default',\n size: 'l',\n labelPlacement: 'outer',\n },\n variations: {\n view: {\n css: '',\n },\n },\n};\n"],"names":["VIRTUAL_ITEM_AMOUNT_THRESHOLD","autocompleteRoot","Root","forwardRef","_ref","ref","_StyledLeftHelper","outerValue","value","defaultValue","onChange","suggestions","view","size","labelPlacement","keepPlaceholder","disabled","readOnly","label","leftHelper","contentLeft","contentRight","textBefore","textAfter","onScroll","listMaxHeight","listWidth","portal","filter","onSuggestionSelect","_ref$threshold","threshold","renderList","renderListEnd","onSearch","hintText","_ref$hintView","hintView","_ref$hintSize","hintSize","beforeList","afterList","_ref$virtual","virtual","rest","_objectWithoutProperties","_excluded","_useReducer","useReducer","focusedReducer","_useReducer2","_slicedToArray","focused","dispatchFocused","_useState","useState","_useState2","innerValue","setInnerValue","_useState3","_useState4","isOpen","setIsOpen","listId","safeUseId","helperTextId","floatingPopoverRef","useRef","targetRef","useOutsideClick","handleFocus","toString","length","handleItemClick","e","handleChange","currentValue","target","defaultFilterCallback","_ref2","toLowerCase","includes","helperTextStopPropagation","event","stopPropagation","finalResults","_useKeyNavigation","useKeyNavigation","onKeyDown","useDidMountEffect","type","useLayoutEffect","React","createElement","FloatingPopover","opened","referenceRef","StyledTextField","_extends","inputWrapperRef","undefined","onFocus","role","concat","String","StyledLeftHelper","onClick","Boolean","Ul","id","VirtualList","items","Fragment","map","suggestion","index","SuggestionItem","key","item","InfiniteLoaderWrapper","autocompleteConfig","name","tag","layout","base","defaults","variations","css"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useLayoutEffect, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { useDidMountEffect, useOutsideClick } from '../../hooks';\nimport { RootProps } from '../../engines';\n\nimport { FloatingPopover } from './FloatingPopover';\nimport { focusedReducer } from './reducers/focusedReducer';\nimport { SuggestionItem, StyledTextField, VirtualList } from './ui';\nimport { Ul, InfiniteLoaderWrapper, base, StyledLeftHelper } from './Autocomplete.styles';\nimport type { AutocompleteProps, SuggestionItemType } from './Autocomplete.types';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\n// Пороговое значение количества результирующих элементов в списке,\n// при котором возможна виртуализация (при virtual=true);\nconst VIRTUAL_ITEM_AMOUNT_THRESHOLD = 10;\n\n/**\n * Компонент Autocomplete. Поле ввода с подсказками в выпадающем списке.\n */\nexport const autocompleteRoot = (Root: RootProps<HTMLInputElement, Omit<AutocompleteProps, 'hintText'>>) =>\n forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n value: outerValue,\n defaultValue,\n onChange,\n suggestions,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n disabled,\n readOnly,\n label,\n leftHelper,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n onScroll,\n listMaxHeight,\n listWidth,\n portal,\n filter,\n onSuggestionSelect,\n threshold = 2,\n renderList,\n renderListEnd,\n onSearch,\n hintText,\n hintView = 'default',\n hintSize = 'm',\n beforeList,\n afterList,\n virtual = false,\n ...rest\n },\n ref,\n ) => {\n const [focused, dispatchFocused] = useReducer(focusedReducer, null);\n const [innerValue, setInnerValue] = useState<string | number>('');\n const [isOpen, setIsOpen] = useState(false);\n\n const listId = safeUseId();\n const value = outerValue ?? innerValue;\n\n const helperTextId = safeUseId();\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n setIsOpen(false);\n }, floatingPopoverRef);\n\n const handleFocus = () => {\n if (value.toString().length >= threshold) {\n setIsOpen(true);\n }\n };\n\n const handleItemClick = (e: SuggestionItemType) => {\n setInnerValue(e.label);\n\n if (onSuggestionSelect) {\n onSuggestionSelect(e);\n }\n\n setIsOpen(false);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const currentValue = e.target.value;\n\n setInnerValue(currentValue);\n\n if (onChange) {\n onChange(e);\n }\n\n if (currentValue.toString().length >= threshold) {\n setIsOpen(true);\n } else {\n setIsOpen(false);\n }\n };\n\n const defaultFilterCallback = ({ label }: { label: string }) => {\n return label.toLowerCase().includes(value.toString().toLowerCase());\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const finalResults = suggestions?.filter(filter || defaultFilterCallback) || [];\n\n virtual = virtual && finalResults.length > VIRTUAL_ITEM_AMOUNT_THRESHOLD;\n\n const { onKeyDown } = useKeyNavigation({\n isOpen,\n setIsOpen,\n focused,\n dispatchFocused,\n finalResults,\n handleItemClick,\n });\n\n useDidMountEffect(() => {\n dispatchFocused({ type: 'reset' });\n }, [value]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInnerValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n hintView={hintView}\n hintSize={hintSize}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isOpen}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={ref}\n inputWrapperRef={referenceRef}\n value={value}\n onChange={handleChange}\n onSearch={focused === null ? onSearch : undefined}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onFocus={handleFocus}\n onKeyDown={onKeyDown}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={listId}\n aria-expanded={isOpen}\n aria-activedescendant={`${listId}/${focused}`}\n aria-describedby={helperTextId}\n hintText={String(hintText || '')}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n leftHelper={\n leftHelper && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {leftHelper}\n </StyledLeftHelper>\n )\n }\n {...rest}\n />\n )}\n >\n {(renderList && renderList(finalResults)) ||\n (Boolean(finalResults.length) && (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <Ul\n ref={targetRef}\n id={listId}\n role=\"listbox\"\n aria-label={label}\n onScroll={virtual ? undefined : onScroll}\n listMaxHeight={listMaxHeight}\n virtual={virtual}\n >\n {virtual ? (\n <VirtualList\n items={finalResults}\n onClick={handleItemClick}\n listId={listId}\n listMaxHeight={listMaxHeight}\n onScroll={onScroll}\n />\n ) : (\n <>\n {beforeList}\n\n {finalResults.map((suggestion, index) => (\n <SuggestionItem\n key={index}\n item={suggestion}\n onClick={handleItemClick}\n id={`${listId}/${index}`}\n focused={focused === index}\n />\n ))}\n\n {afterList}\n </>\n )}\n\n {renderListEnd && (\n <InfiniteLoaderWrapper>{renderListEnd()}</InfiniteLoaderWrapper>\n )}\n </Ul>\n </Root>\n ))}\n </FloatingPopover>\n </Root>\n );\n },\n );\n\nexport const autocompleteConfig = {\n name: 'Autocomplete',\n tag: 'div',\n layout: autocompleteRoot,\n base,\n defaults: {\n view: 'default',\n size: 'l',\n labelPlacement: 'outer',\n },\n variations: {\n view: {\n css: '',\n },\n },\n};\n"],"names":["VIRTUAL_ITEM_AMOUNT_THRESHOLD","autocompleteRoot","Root","forwardRef","_ref","ref","_StyledLeftHelper","outerValue","value","defaultValue","onChange","suggestions","view","size","labelPlacement","keepPlaceholder","disabled","readOnly","label","leftHelper","contentLeft","contentRight","textBefore","textAfter","onScroll","listMaxHeight","listWidth","portal","filter","onSuggestionSelect","_ref$threshold","threshold","renderList","renderListEnd","onSearch","hintText","_ref$hintView","hintView","_ref$hintSize","hintSize","beforeList","afterList","_ref$virtual","virtual","rest","_objectWithoutProperties","_excluded","_useReducer","useReducer","focusedReducer","_useReducer2","_slicedToArray","focused","dispatchFocused","_useState","useState","_useState2","innerValue","setInnerValue","_useState3","_useState4","isOpen","setIsOpen","listId","safeUseId","helperTextId","floatingPopoverRef","useRef","targetRef","useOutsideClick","handleFocus","toString","length","handleItemClick","e","handleChange","currentValue","target","defaultFilterCallback","_ref2","toLowerCase","includes","helperTextStopPropagation","event","stopPropagation","finalResults","_useKeyNavigation","useKeyNavigation","onKeyDown","useDidMountEffect","type","useLayoutEffect","React","createElement","FloatingPopover","opened","referenceRef","StyledTextField","_extends","inputWrapperRef","undefined","onFocus","role","concat","String","StyledLeftHelper","onClick","Boolean","Ul","id","VirtualList","items","Fragment","map","suggestion","index","SuggestionItem","key","item","InfiniteLoaderWrapper","autocompleteConfig","name","tag","layout","base","defaults","variations","css"],"mappings":"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"}
|
@@ -506,9 +506,9 @@ var comboboxRoot = function comboboxRoot(Root) {
|
|
506
506
|
textBefore: textBefore,
|
507
507
|
textAfter: textAfter,
|
508
508
|
onKeyDown: onKeyDown,
|
509
|
-
leftHelper: _StyledLeftHelper || (_StyledLeftHelper = /*#__PURE__*/React__default.default.createElement(Combobox_styles.StyledLeftHelper, {
|
509
|
+
leftHelper: helperText && (_StyledLeftHelper || (_StyledLeftHelper = /*#__PURE__*/React__default.default.createElement(Combobox_styles.StyledLeftHelper, {
|
510
510
|
onClick: helperTextStopPropagation
|
511
|
-
}, helperText)),
|
511
|
+
}, helperText))),
|
512
512
|
role: "combobox",
|
513
513
|
"aria-autocomplete": "list",
|
514
514
|
"aria-controls": "".concat(treeId, "_tree_level_1"),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent, ForwardedRef } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { isEmpty } from '../../../utils';\nimport { useOutsideClick } from '../../../hooks';\nimport { sizeToIconSize } from '../../Select/utils';\n\nimport { classes } from './Combobox.tokens';\nimport { FloatingPopover } from './FloatingPopover';\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n filterItems,\n getItemId,\n getRemovedElement,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport { Ul, base, StyledArrow, IconArrowWrapper, StyledEmptyState, StyledLeftHelper } from './Combobox.styles';\nimport type { ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed, ItemOption } from './ui/Inner/ui/Item/Item.types';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Combobox.context';\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\n\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n name,\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n defaultValue,\n isTargetAmount,\n targetAmount,\n items,\n placement = 'bottom-start',\n label,\n placeholder,\n helperText,\n contentLeft,\n textBefore,\n textAfter,\n variant = 'normal',\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n zIndex,\n beforeList,\n afterList,\n virtual = false,\n hintView,\n hintSize,\n emptyStateDescription,\n onChangeValue,\n onScroll,\n onToggle,\n ...rest\n } = props;\n\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap, labelToItemMap] = useMemo(() => getTreeMaps(transformedItems), [\n items,\n ]);\n\n const [textValue, setTextValue] = useState(\n multiple || Array.isArray(outerValue)\n ? ''\n : valueToItemMap.get(outerValue as string)?.label || outerValue?.toString() || '',\n );\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n const treeId = safeUseId();\n\n const filteredItems = filterItems(\n transformedItems,\n textValue,\n valueToItemMap.get(value as string)?.label as string,\n filter,\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n const withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;\n const closeAfterSelect = outerCloseAfterSelect ?? !multiple;\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || '');\n }\n }\n }, floatingPopoverRef);\n\n // Эта функция срабатывает при изменении Combobox и\n // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).\n const onChange = (\n newValue: string | Array<string> | ChangeEvent<HTMLSelectElement> | null,\n item?: ItemOption | null,\n ) => {\n // Условие для отправки изменений наружу\n if (props.onChange) {\n // Условие для отправки если комбобокс используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если комбобокс используется с формой.\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleClickArrow = () => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isCurrentListOpen) {\n dispatchPath({ type: 'reset' });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n }\n\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик изменения значения в инпуте\n const handleTextValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n setTextValue(e.target.value);\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onChangeValue) {\n onChangeValue(e.target.value);\n }\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)?.value || chipLabel);\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n\n onChange(\n newValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n }\n };\n\n // Обработчик открытия/закрытия выпадающего списка\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n // Обработчик выбора чекбоксов (только при multiple)\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (!multiple) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n\n // После выбора/снятия чекбокса скроллим к инпуту\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n }, 1);\n };\n\n // Обработчик клика по айтему выпадающего списка\n const handleItemClick = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (multiple) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n };\n\n const getChips = (): string[] => {\n if (multiple && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${targetAmount || value.length}`];\n }\n\n const renderValueMapper =\n renderValue &&\n ((stringValue: string) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\n\n return value.map(renderValueMapper || valueToItemMapper);\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (multiple) {\n handleCheckboxChange(item);\n }\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n setTextValue,\n multiple,\n value,\n textValue,\n valueToItemMap,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value)) {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(multiple ? '' : valueToItemMap.get(value as string)?.label || value?.toString() || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n hintView={hintView}\n hintSize={hintSize}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiple={multiple}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLInputElement>}\n />\n )}\n <div>\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={name ? inputRef : (inputForkRef as ForwardedRef<HTMLInputElement>)}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={\n <IconArrowWrapper disabled={disabled} onClick={handleClickArrow}>\n <StyledArrow\n color=\"inherit\"\n size={sizeToIconSize(size)}\n className={withArrowInverse}\n />\n </IconArrowWrapper>\n }\n textBefore={textBefore}\n textAfter={textAfter}\n onKeyDown={onKeyDown}\n leftHelper={\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {helperText}\n </StyledLeftHelper>\n }\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={isCurrentListOpen}\n aria-activedescendant={\n activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''\n }\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n {...(multiple\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n _onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n )}\n zIndex={zIndex}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n listWidth={listWidth}\n ref={targetRef}\n virtual={virtual}\n listOverflow={listOverflow}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n <>\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n filteredItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n </>\n )}\n\n {afterList}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </div>\n </Root>\n );\n });\n\nexport const comboboxConfig = {\n name: 'Select',\n tag: 'div',\n layout: comboboxRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n readOnly: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n },\n};\n"],"names":["comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_valueToItemMap$get2","_getItemByFocused","_StyledLeftHelper","name","multiple","outerValue","value","defaultValue","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listMaxHeight","listWidth","portal","renderItem","view","size","labelPlacement","keepPlaceholder","_props$readOnly","readOnly","_props$disabled","disabled","_props$alwaysOpened","alwaysOpened","filter","outerCloseAfterSelect","closeAfterSelect","renderValue","zIndex","beforeList","afterList","_props$virtual","virtual","hintView","hintSize","emptyStateDescription","onChangeValue","onScroll","onToggle","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","Array","isArray","get","toString","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","filterItems","_useMemo3","getPathMap","_useMemo4","pathMap","focusedToValueMap","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState5","_useState6","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","withArrowInverse","classes","arrowInverse","targetRef","useOutsideClick","type","isEmpty","_valueToItemMap$get3","onChange","newValue","item","_typeof","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","resultValues","_toConsumableArray","forEach","_","index","_valueToItemMap$get4","stringValue","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","map","chipLabel","_labelToItemMap$get","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","key","push","val","has","setTimeout","current","scrollIntoView","behavior","inline","handleItemClick","stopPropagation","isCurrentChecked","getChips","length","concat","renderValueMapper","valueToItemMapper","_valueToItemMap$get5","handlePressDown","helperTextStopPropagation","event","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_valueToItemMap$get6","updateSingleAncestors","React","createElement","SelectNative","onSetValue","Context","Provider","FloatingPopover","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","Ul","id","VirtualList","Fragment","StyledEmptyState","emptyStateWrapper","description","Inner","currentLevel","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent, ForwardedRef } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { isEmpty } from '../../../utils';\nimport { useOutsideClick } from '../../../hooks';\nimport { sizeToIconSize } from '../../Select/utils';\n\nimport { classes } from './Combobox.tokens';\nimport { FloatingPopover } from './FloatingPopover';\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n filterItems,\n getItemId,\n getRemovedElement,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport { Ul, base, StyledArrow, IconArrowWrapper, StyledEmptyState, StyledLeftHelper } from './Combobox.styles';\nimport type { ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed, ItemOption } from './ui/Inner/ui/Item/Item.types';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Combobox.context';\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\n\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n name,\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n defaultValue,\n isTargetAmount,\n targetAmount,\n items,\n placement = 'bottom-start',\n label,\n placeholder,\n helperText,\n contentLeft,\n textBefore,\n textAfter,\n variant = 'normal',\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n zIndex,\n beforeList,\n afterList,\n virtual = false,\n hintView,\n hintSize,\n emptyStateDescription,\n onChangeValue,\n onScroll,\n onToggle,\n ...rest\n } = props;\n\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap, labelToItemMap] = useMemo(() => getTreeMaps(transformedItems), [\n items,\n ]);\n\n const [textValue, setTextValue] = useState(\n multiple || Array.isArray(outerValue)\n ? ''\n : valueToItemMap.get(outerValue as string)?.label || outerValue?.toString() || '',\n );\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n const treeId = safeUseId();\n\n const filteredItems = filterItems(\n transformedItems,\n textValue,\n valueToItemMap.get(value as string)?.label as string,\n filter,\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n const withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;\n const closeAfterSelect = outerCloseAfterSelect ?? !multiple;\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || '');\n }\n }\n }, floatingPopoverRef);\n\n // Эта функция срабатывает при изменении Combobox и\n // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).\n const onChange = (\n newValue: string | Array<string> | ChangeEvent<HTMLSelectElement> | null,\n item?: ItemOption | null,\n ) => {\n // Условие для отправки изменений наружу\n if (props.onChange) {\n // Условие для отправки если комбобокс используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если комбобокс используется с формой.\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleClickArrow = () => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isCurrentListOpen) {\n dispatchPath({ type: 'reset' });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n }\n\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик изменения значения в инпуте\n const handleTextValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n setTextValue(e.target.value);\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onChangeValue) {\n onChangeValue(e.target.value);\n }\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)?.value || chipLabel);\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n\n onChange(\n newValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n }\n };\n\n // Обработчик открытия/закрытия выпадающего списка\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n // Обработчик выбора чекбоксов (только при multiple)\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (!multiple) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n\n // После выбора/снятия чекбокса скроллим к инпуту\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n }, 1);\n };\n\n // Обработчик клика по айтему выпадающего списка\n const handleItemClick = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (multiple) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n };\n\n const getChips = (): string[] => {\n if (multiple && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${targetAmount || value.length}`];\n }\n\n const renderValueMapper =\n renderValue &&\n ((stringValue: string) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\n\n return value.map(renderValueMapper || valueToItemMapper);\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (multiple) {\n handleCheckboxChange(item);\n }\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n setTextValue,\n multiple,\n value,\n textValue,\n valueToItemMap,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value)) {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(multiple ? '' : valueToItemMap.get(value as string)?.label || value?.toString() || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n hintView={hintView}\n hintSize={hintSize}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiple={multiple}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLInputElement>}\n />\n )}\n <div>\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={name ? inputRef : (inputForkRef as ForwardedRef<HTMLInputElement>)}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={\n <IconArrowWrapper disabled={disabled} onClick={handleClickArrow}>\n <StyledArrow\n color=\"inherit\"\n size={sizeToIconSize(size)}\n className={withArrowInverse}\n />\n </IconArrowWrapper>\n }\n textBefore={textBefore}\n textAfter={textAfter}\n onKeyDown={onKeyDown}\n leftHelper={\n helperText && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {helperText}\n </StyledLeftHelper>\n )\n }\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={isCurrentListOpen}\n aria-activedescendant={\n activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''\n }\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n {...(multiple\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n _onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n )}\n zIndex={zIndex}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n listWidth={listWidth}\n ref={targetRef}\n virtual={virtual}\n listOverflow={listOverflow}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n <>\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n filteredItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n </>\n )}\n\n {afterList}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </div>\n </Root>\n );\n });\n\nexport const comboboxConfig = {\n name: 'Select',\n tag: 'div',\n layout: comboboxRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n readOnly: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n },\n};\n"],"names":["comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_valueToItemMap$get2","_getItemByFocused","_StyledLeftHelper","name","multiple","outerValue","value","defaultValue","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listMaxHeight","listWidth","portal","renderItem","view","size","labelPlacement","keepPlaceholder","_props$readOnly","readOnly","_props$disabled","disabled","_props$alwaysOpened","alwaysOpened","filter","outerCloseAfterSelect","closeAfterSelect","renderValue","zIndex","beforeList","afterList","_props$virtual","virtual","hintView","hintSize","emptyStateDescription","onChangeValue","onScroll","onToggle","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","Array","isArray","get","toString","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","filterItems","_useMemo3","getPathMap","_useMemo4","pathMap","focusedToValueMap","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState5","_useState6","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","withArrowInverse","classes","arrowInverse","targetRef","useOutsideClick","type","isEmpty","_valueToItemMap$get3","onChange","newValue","item","_typeof","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","resultValues","_toConsumableArray","forEach","_","index","_valueToItemMap$get4","stringValue","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","map","chipLabel","_labelToItemMap$get","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","key","push","val","has","setTimeout","current","scrollIntoView","behavior","inline","handleItemClick","stopPropagation","isCurrentChecked","getChips","length","concat","renderValueMapper","valueToItemMapper","_valueToItemMap$get5","handlePressDown","helperTextStopPropagation","event","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_valueToItemMap$get6","updateSingleAncestors","React","createElement","SelectNative","onSetValue","Context","Provider","FloatingPopover","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","Ul","id","VirtualList","Fragment","StyledEmptyState","emptyStateWrapper","description","Inner","currentLevel","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
@@ -140,7 +140,7 @@ var Textfield = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
140
140
|
className: withArrowInverse
|
141
141
|
})),
|
142
142
|
onKeyDown: onKeyDown,
|
143
|
-
leftHelper: /*#__PURE__*/React__default.default.createElement(Textfield_styles.StyledLeftHelper, {
|
143
|
+
leftHelper: helperText && /*#__PURE__*/React__default.default.createElement(Textfield_styles.StyledLeftHelper, {
|
144
144
|
onClick: helperTextStopPropagation
|
145
145
|
}, helperText),
|
146
146
|
role: "combobox",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Textfield.js","sources":["../../../../../../../src/components/Select/ui/Target/ui/Textfield/Textfield.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { sizeToIconSize, getItemId, getRemovedElement } from '../../../../utils';\nimport { classes } from '../../../../Select.tokens';\n\nimport { IconArrowWrapper, StyledArrow, StyledTextField, StyledLeftHelper } from './Textfield.styles';\nimport { TextfieldProps } from './Textfield.types';\n\nexport const Textfield = forwardRef<HTMLInputElement, TextfieldProps>(\n (\n {\n inputWrapperRef,\n opened,\n multiselect,\n value,\n label,\n labelPlacement,\n keepPlaceholder,\n placeholder,\n onKeyDown,\n size,\n view,\n contentLeft,\n helperText,\n treeId,\n activeDescendantItemValue,\n disabled,\n readOnly,\n isTargetAmount,\n valueToItemMap,\n renderValue,\n onChange,\n labelToItemMap,\n chipView,\n requiredProps,\n chipType,\n hintProps,\n },\n ref,\n ) => {\n const withArrowInverse = opened ? classes.arrowInverse : undefined;\n\n const getValue = () => {\n if (multiselect || Array.isArray(value) || !value) {\n return '';\n }\n\n if (renderValue) {\n return renderValue(valueToItemMap.get(value.toString()) || { value, label: value.toString() });\n }\n\n return valueToItemMap.get(value.toString())?.label || value.toString();\n };\n\n const getChips = (): string[] => {\n if (multiselect && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${value.length}`];\n }\n\n const renderValueMapper =\n renderValue &&\n ((stringValue: string | number) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string | number) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\n\n return value.map(renderValueMapper || valueToItemMapper);\n }\n\n return [];\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => {\n return labelToItemMap.get(chipLabel)?.value || chipLabel;\n });\n\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n const item = removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null;\n\n onChange(newValues, item);\n }\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n return (\n <StyledTextField\n ref={ref}\n inputWrapperRef={inputWrapperRef}\n readOnly\n className={readOnly ? classes.readOnly : undefined}\n value={getValue()}\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n label={label}\n keepPlaceholder={keepPlaceholder}\n placeholder={value instanceof Array && value.length ? '' : placeholder}\n contentLeft={contentLeft as React.ReactElement}\n contentRight={\n <IconArrowWrapper disabled={disabled} readOnly={readOnly}>\n <StyledArrow color=\"inherit\" size={sizeToIconSize(size)} className={withArrowInverse} />\n </IconArrowWrapper>\n }\n onKeyDown={onKeyDown}\n leftHelper={<StyledLeftHelper onClick={helperTextStopPropagation}>{helperText}</StyledLeftHelper>}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={opened}\n aria-activedescendant={activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''}\n {...(multiselect\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n chipType,\n chipView,\n }\n : { enumerationType: 'plain' })}\n _onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n opened={opened}\n // TODO: #1547\n _forceChipManipulationWithReadonly={!readOnly}\n {...requiredProps}\n {...hintProps}\n />\n );\n },\n);\n"],"names":["Textfield","forwardRef","_ref","ref","inputWrapperRef","opened","multiselect","value","label","labelPlacement","keepPlaceholder","placeholder","onKeyDown","size","view","contentLeft","helperText","treeId","activeDescendantItemValue","disabled","readOnly","isTargetAmount","valueToItemMap","renderValue","onChange","labelToItemMap","chipView","requiredProps","chipType","hintProps","withArrowInverse","classes","arrowInverse","undefined","getValue","_valueToItemMap$get","Array","isArray","get","toString","getChips","length","concat","renderValueMapper","stringValue","valueToItemMapper","_valueToItemMap$get2","map","handleChipsChange","chipLabels","resultValues","_toConsumableArray","forEach","_","index","_valueToItemMap$get3","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","chipLabel","_labelToItemMap$get","item","helperTextStopPropagation","event","stopPropagation","React","createElement","StyledTextField","_extends","className","contentRight","IconArrowWrapper","StyledArrow","color","sizeToIconSize","leftHelper","StyledLeftHelper","onClick","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","_forceChipManipulationWithReadonly"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Textfield.js","sources":["../../../../../../../src/components/Select/ui/Target/ui/Textfield/Textfield.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { sizeToIconSize, getItemId, getRemovedElement } from '../../../../utils';\nimport { classes } from '../../../../Select.tokens';\n\nimport { IconArrowWrapper, StyledArrow, StyledTextField, StyledLeftHelper } from './Textfield.styles';\nimport { TextfieldProps } from './Textfield.types';\n\nexport const Textfield = forwardRef<HTMLInputElement, TextfieldProps>(\n (\n {\n inputWrapperRef,\n opened,\n multiselect,\n value,\n label,\n labelPlacement,\n keepPlaceholder,\n placeholder,\n onKeyDown,\n size,\n view,\n contentLeft,\n helperText,\n treeId,\n activeDescendantItemValue,\n disabled,\n readOnly,\n isTargetAmount,\n valueToItemMap,\n renderValue,\n onChange,\n labelToItemMap,\n chipView,\n requiredProps,\n chipType,\n hintProps,\n },\n ref,\n ) => {\n const withArrowInverse = opened ? classes.arrowInverse : undefined;\n\n const getValue = () => {\n if (multiselect || Array.isArray(value) || !value) {\n return '';\n }\n\n if (renderValue) {\n return renderValue(valueToItemMap.get(value.toString()) || { value, label: value.toString() });\n }\n\n return valueToItemMap.get(value.toString())?.label || value.toString();\n };\n\n const getChips = (): string[] => {\n if (multiselect && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${value.length}`];\n }\n\n const renderValueMapper =\n renderValue &&\n ((stringValue: string | number) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string | number) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\n\n return value.map(renderValueMapper || valueToItemMapper);\n }\n\n return [];\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => {\n return labelToItemMap.get(chipLabel)?.value || chipLabel;\n });\n\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n const item = removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null;\n\n onChange(newValues, item);\n }\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n return (\n <StyledTextField\n ref={ref}\n inputWrapperRef={inputWrapperRef}\n readOnly\n className={readOnly ? classes.readOnly : undefined}\n value={getValue()}\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n label={label}\n keepPlaceholder={keepPlaceholder}\n placeholder={value instanceof Array && value.length ? '' : placeholder}\n contentLeft={contentLeft as React.ReactElement}\n contentRight={\n <IconArrowWrapper disabled={disabled} readOnly={readOnly}>\n <StyledArrow color=\"inherit\" size={sizeToIconSize(size)} className={withArrowInverse} />\n </IconArrowWrapper>\n }\n onKeyDown={onKeyDown}\n leftHelper={\n helperText && <StyledLeftHelper onClick={helperTextStopPropagation}>{helperText}</StyledLeftHelper>\n }\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={opened}\n aria-activedescendant={activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''}\n {...(multiselect\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n chipType,\n chipView,\n }\n : { enumerationType: 'plain' })}\n _onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n opened={opened}\n // TODO: #1547\n _forceChipManipulationWithReadonly={!readOnly}\n {...requiredProps}\n {...hintProps}\n />\n );\n },\n);\n"],"names":["Textfield","forwardRef","_ref","ref","inputWrapperRef","opened","multiselect","value","label","labelPlacement","keepPlaceholder","placeholder","onKeyDown","size","view","contentLeft","helperText","treeId","activeDescendantItemValue","disabled","readOnly","isTargetAmount","valueToItemMap","renderValue","onChange","labelToItemMap","chipView","requiredProps","chipType","hintProps","withArrowInverse","classes","arrowInverse","undefined","getValue","_valueToItemMap$get","Array","isArray","get","toString","getChips","length","concat","renderValueMapper","stringValue","valueToItemMapper","_valueToItemMap$get2","map","handleChipsChange","chipLabels","resultValues","_toConsumableArray","forEach","_","index","_valueToItemMap$get3","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","chipLabel","_labelToItemMap$get","item","helperTextStopPropagation","event","stopPropagation","React","createElement","StyledTextField","_extends","className","contentRight","IconArrowWrapper","StyledArrow","color","sizeToIconSize","leftHelper","StyledLeftHelper","onClick","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","_forceChipManipulationWithReadonly"],"mappings":";;;;;;;;;;;;;;;;AAQO,IAAMA,SAAS,gBAAGC,gBAAU,CAC/B,UAAAC,IAAA,EA6BIC,GAAG,EACF;AAAA,EAAA,IA5BGC,eAAe,GAAAF,IAAA,CAAfE,eAAe;IACfC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,cAAc,GAAAP,IAAA,CAAdO,cAAc;IACdC,eAAe,GAAAR,IAAA,CAAfQ,eAAe;IACfC,WAAW,GAAAT,IAAA,CAAXS,WAAW;IACXC,SAAS,GAAAV,IAAA,CAATU,SAAS;IACTC,IAAI,GAAAX,IAAA,CAAJW,IAAI;IACJC,IAAI,GAAAZ,IAAA,CAAJY,IAAI;IACJC,WAAW,GAAAb,IAAA,CAAXa,WAAW;IACXC,UAAU,GAAAd,IAAA,CAAVc,UAAU;IACVC,MAAM,GAAAf,IAAA,CAANe,MAAM;IACNC,yBAAyB,GAAAhB,IAAA,CAAzBgB,yBAAyB;IACzBC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IACRC,QAAQ,GAAAlB,IAAA,CAARkB,QAAQ;IACRC,cAAc,GAAAnB,IAAA,CAAdmB,cAAc;IACdC,cAAc,GAAApB,IAAA,CAAdoB,cAAc;IACdC,WAAW,GAAArB,IAAA,CAAXqB,WAAW;IACXC,QAAQ,GAAAtB,IAAA,CAARsB,QAAQ;IACRC,cAAc,GAAAvB,IAAA,CAAduB,cAAc;IACdC,QAAQ,GAAAxB,IAAA,CAARwB,QAAQ;IACRC,aAAa,GAAAzB,IAAA,CAAbyB,aAAa;IACbC,QAAQ,GAAA1B,IAAA,CAAR0B,QAAQ;IACRC,SAAS,GAAA3B,IAAA,CAAT2B,SAAS,CAAA;EAIb,IAAMC,gBAAgB,GAAGzB,MAAM,GAAG0B,qBAAO,CAACC,YAAY,GAAGC,SAAS,CAAA;AAElE,EAAA,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,GAAS;AAAA,IAAA,IAAAC,mBAAA,CAAA;IACnB,IAAI7B,WAAW,IAAI8B,KAAK,CAACC,OAAO,CAAC9B,KAAK,CAAC,IAAI,CAACA,KAAK,EAAE;AAC/C,MAAA,OAAO,EAAE,CAAA;AACb,KAAA;AAEA,IAAA,IAAIgB,WAAW,EAAE;AACb,MAAA,OAAOA,WAAW,CAACD,cAAc,CAACgB,GAAG,CAAC/B,KAAK,CAACgC,QAAQ,EAAE,CAAC,IAAI;AAAEhC,QAAAA,KAAK,EAALA,KAAK;AAAEC,QAAAA,KAAK,EAAED,KAAK,CAACgC,QAAQ,EAAC;AAAE,OAAC,CAAC,CAAA;AAClG,KAAA;IAEA,OAAO,CAAA,CAAAJ,mBAAA,GAAAb,cAAc,CAACgB,GAAG,CAAC/B,KAAK,CAACgC,QAAQ,EAAE,CAAC,MAAAJ,IAAAA,IAAAA,mBAAA,KAApCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAAsC3B,KAAK,KAAID,KAAK,CAACgC,QAAQ,EAAE,CAAA;GACzE,CAAA;AAED,EAAA,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,GAAmB;IAC7B,IAAIlC,WAAW,IAAI8B,KAAK,CAACC,OAAO,CAAC9B,KAAK,CAAC,EAAE;AACrC,MAAA,IAAIA,KAAK,CAACkC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;AAEjC,MAAA,IAAIpB,cAAc,EAAE;AAChB,QAAA,OAAO,+CAAAqB,MAAA,CAAYnC,KAAK,CAACkC,MAAM,CAAG,CAAA,CAAA;AACtC,OAAA;AAEA,MAAA,IAAME,iBAAiB,GACnBpB,WAAW,IACV,UAACqB,WAA4B,EAAA;QAAA,OAC1BrB,WAAW,CACPD,cAAc,CAACgB,GAAG,CAACM,WAAW,CAAC,IAAI;AAAErC,UAAAA,KAAK,EAAEqC,WAAW;AAAEpC,UAAAA,KAAK,EAAEoC,WAAW,CAACL,QAAQ,EAAC;AAAE,SAC3F,CAAC,CAAA;OAAC,CAAA;AACV,MAAA,IAAMM,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAID,WAA4B,EAAA;AAAA,QAAA,IAAAE,oBAAA,CAAA;QAAA,OACnD,CAAA,CAAAA,oBAAA,GAAAxB,cAAc,CAACgB,GAAG,CAACM,WAAW,CAAC,MAAA,IAAA,IAAAE,oBAAA,KAA/BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAiCtC,KAAK,KAAIoC,WAAW,CAACL,QAAQ,EAAE,CAAA;AAAA,OAAA,CAAA;AAEpE,MAAA,OAAOhC,KAAK,CAACwC,GAAG,CAACJ,iBAAiB,IAAIE,iBAAiB,CAAC,CAAA;AAC5D,KAAA;AAEA,IAAA,OAAO,EAAE,CAAA;GACZ,CAAA;;AAED;AACA,EAAA,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,UAAiB,EAAK;AAC7C,IAAA,IAAI,CAACb,KAAK,CAACC,OAAO,CAAC9B,KAAK,CAAC,EAAE,OAAA;;AAE3B;AACA;AACA,IAAA,IAAIgB,WAAW,IAAI,CAACF,cAAc,EAAE;AAChC,MAAA,IAAM6B,YAAY,GAAAC,2CAAA,CAAO5C,KAAK,CAAC,CAAA;AAE/BA,MAAAA,KAAK,CAAC6C,OAAO,CAAC,UAACC,CAAC,EAAEC,KAAK,EAAK;AAAA,QAAA,IAAAC,oBAAA,CAAA;AACxB,QAAA,IAAMX,WAAW,GAAGrC,KAAK,CAAC+C,KAAK,CAAC,CAAA;AAChC,QAAA,IAAM9C,KAAK,GAAA,CAAA+C,oBAAA,GAAGjC,cAAc,CAACgB,GAAG,CAACM,WAAW,CAAC,MAAAW,IAAAA,IAAAA,oBAAA,KAA/BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAiC/C,KAAK,CAAA;AAEpD,QAAA,IAAMgD,qBAAqB,GAAGjC,WAAW,CACrCf,KAAK,GACCiB,cAAc,CAACa,GAAG,CAAC9B,KAAK,CAAC,GACzB;AACID,UAAAA,KAAK,EAAEqC,WAAW;AAClBpC,UAAAA,KAAK,EAAEoC,WAAW,CAACL,QAAQ,EAAC;AAChC,SACV,CAAC,CAAA;AAED,QAAA,IAAI,CAACU,UAAU,CAACQ,QAAQ,CAACD,qBAAqB,CAAC,EAAE;AAC7CN,UAAAA,YAAY,CAACQ,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC,CAAA;AACjC,SAAA;AACJ,OAAC,CAAC,CAAA;MAEF,IAAMK,gBAAgB,GAAGC,mCAAiB,CAACrD,KAAK,EAAE2C,YAAY,EAAE7B,cAAc,CAAC,CAAA;MAE/EG,QAAQ,CACJ0B,YAAY,EACZS,gBAAgB,GACVrC,cAAc,CAACgB,GAAG,CAACqB,gBAAgB,CAAC,IAAI;AACpCpD,QAAAA,KAAK,EAAEoD,gBAAgB;AACvBnD,QAAAA,KAAK,EAAEmD,gBAAgB,CAACpB,QAAQ,EAAC;OACpC,GACD,IACV,CAAC,CAAA;AACL,KAAC,MAAM;MACH,IAAMsB,SAAS,GAAGZ,UAAU,CAACF,GAAG,CAAC,UAACe,SAAS,EAAK;AAAA,QAAA,IAAAC,mBAAA,CAAA;AAC5C,QAAA,OAAO,EAAAA,mBAAA,GAAAtC,cAAc,CAACa,GAAG,CAACwB,SAAS,CAAC,MAAA,IAAA,IAAAC,mBAAA,KAA7BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAA+BxD,KAAK,KAAIuD,SAAS,CAAA;AAC5D,OAAC,CAAC,CAAA;MAEF,IAAMH,iBAAgB,GAAGC,mCAAiB,CAACrD,KAAK,EAAEsD,SAAS,EAAExC,cAAc,CAAC,CAAA;MAC5E,IAAM2C,IAAI,GAAGL,iBAAgB,GACvBrC,cAAc,CAACgB,GAAG,CAACqB,iBAAgB,CAAC,IAAI;AACpCpD,QAAAA,KAAK,EAAEoD,iBAAgB;AACvBnD,QAAAA,KAAK,EAAEmD,iBAAgB,CAACpB,QAAQ,EAAC;AACrC,OAAC,GACD,IAAI,CAAA;AAEVf,MAAAA,QAAQ,CAACqC,SAAS,EAAEG,IAAI,CAAC,CAAA;AAC7B,KAAA;GACH,CAAA;AAED,EAAA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,KAAuC,EAAK;IAC3EA,KAAK,CAACC,eAAe,EAAE,CAAA;GAC1B,CAAA;AAED,EAAA,oBACIC,sBAAA,CAAAC,aAAA,CAACC,gCAAe,EAAAC,iCAAA,CAAA;AACZpE,IAAAA,GAAG,EAAEA,GAAI;AACTC,IAAAA,eAAe,EAAEA,eAAgB;IACjCgB,QAAQ,EAAA,IAAA;AACRoD,IAAAA,SAAS,EAAEpD,QAAQ,GAAGW,qBAAO,CAACX,QAAQ,GAAGa,SAAU;IACnD1B,KAAK,EAAE2B,QAAQ,EAAG;AAClBrB,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,IAAI,EAAEA,IAAK;AACXL,IAAAA,cAAc,EAAEA,cAAe;AAC/BU,IAAAA,QAAQ,EAAEA,QAAS;AACnBX,IAAAA,KAAK,EAAEA,KAAM;AACbE,IAAAA,eAAe,EAAEA,eAAgB;IACjCC,WAAW,EAAEJ,KAAK,YAAY6B,KAAK,IAAI7B,KAAK,CAACkC,MAAM,GAAG,EAAE,GAAG9B,WAAY;AACvEI,IAAAA,WAAW,EAAEA,WAAkC;AAC/C0D,IAAAA,YAAY,eACRL,sBAAA,CAAAC,aAAA,CAACK,iCAAgB,EAAA;AAACvD,MAAAA,QAAQ,EAAEA,QAAS;AAACC,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,eACrDgD,sBAAA,CAAAC,aAAA,CAACM,4BAAW,EAAA;AAACC,MAAAA,KAAK,EAAC,SAAS;AAAC/D,MAAAA,IAAI,EAAEgE,6BAAc,CAAChE,IAAI,CAAE;AAAC2D,MAAAA,SAAS,EAAE1C,gBAAAA;AAAiB,KAAE,CACzE,CACrB;AACDlB,IAAAA,SAAS,EAAEA,SAAU;AACrBkE,IAAAA,UAAU,EACN9D,UAAU,iBAAIoD,sBAAA,CAAAC,aAAA,CAACU,iCAAgB,EAAA;AAACC,MAAAA,OAAO,EAAEf,yBAAAA;AAA0B,KAAA,EAAEjD,UAA6B,CACrG;AACDiE,IAAAA,IAAI,EAAC,UAAU;AACf,IAAA,mBAAA,EAAkB,MAAM;IACxB,eAAAvC,EAAAA,EAAAA,CAAAA,MAAA,CAAkBzB,MAAM,EAAgB,eAAA,CAAA;AACxC,IAAA,eAAA,EAAeZ,MAAO;IACtB,uBAAuBa,EAAAA,yBAAyB,GAAGgE,mBAAS,CAACjE,MAAM,EAAEC,yBAAyB,CAAC,GAAG,EAAA;AAAG,GAAA,EAChGZ,WAAW,GACV;AACI6E,IAAAA,eAAe,EAAE,MAAM;IACvBC,KAAK,EAAE5C,QAAQ,EAAE;AACjB6C,IAAAA,aAAa,EAAErC,iBAAiB;AAChCpB,IAAAA,QAAQ,EAARA,QAAQ;AACRF,IAAAA,QAAQ,EAARA,QAAAA;AACJ,GAAC,GACD;AAAEyD,IAAAA,eAAe,EAAE,OAAA;GAAS,EAAA;AAClCG,IAAAA,gBAAgB,EAAC,IAAA;AAAA;AACjBjF,IAAAA,MAAM,EAAEA,MAAAA;AACR;AAAA;AACAkF,IAAAA,kCAAkC,EAAE,CAACnE,QAAAA;AAAS,GAAA,EAC1CO,aAAa,EACbE,SAAS,CAChB,CAAC,CAAA;AAEV,CACJ;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
.
|
1
|
+
.Typography_styles_ysh8u6_b1ru04lg__63d1851b{font-family:var(--typo-font-family);font-size:var(--typo-font-size);font-style:var(--typo-font-style);-webkit-letter-spacing:var(--typo-font-letter-spacing);-moz-letter-spacing:var(--typo-font-letter-spacing);-ms-letter-spacing:var(--typo-font-letter-spacing);letter-spacing:var(--typo-font-letter-spacing);line-height:var(--typo-font-line-height);font-weight:var(--typo-font-weight);overflow-wrap:normal;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual;hyphens:manual;}.Typography_styles_ysh8u6_b1ru04lg__63d1851b.Typography_styles_ysh8u6_typographyBold__63d1851b{font-weight:var(--typo-font-weight-bold);}.Typography_styles_ysh8u6_b1ru04lg__63d1851b.Typography_styles_ysh8u6_typographyMedium__63d1851b{font-weight:var(--typo-font-weight-medium);}.Typography_styles_ysh8u6_b1ru04lg__63d1851b.Typography_styles_ysh8u6_withNoWrap__63d1851b{white-space:nowrap;}.Typography_styles_ysh8u6_b1ru04lg__63d1851b.Typography_styles_ysh8u6_typographyIsNumeric__63d1851b{font-variant-numeric:tabular-nums;}.Typography_styles_ysh8u6_b1ru04lg__63d1851b.Typography_styles_ysh8u6_withBreakWord__63d1851b{overflow-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;}
|
@@ -12,7 +12,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
|
13
13
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
14
14
|
|
15
|
-
var _excluded = ["size", "children", "breakWord", "noWrap", "bold", "medium", "color", "className", "style"];
|
15
|
+
var _excluded = ["size", "children", "breakWord", "noWrap", "bold", "medium", "color", "isNumeric", "className", "style"];
|
16
16
|
var typographyRootCompose = function typographyRootCompose(defaultArgs) {
|
17
17
|
return function (Root) {
|
18
18
|
return /*#__PURE__*/React.forwardRef(function (props, ref) {
|
@@ -24,13 +24,14 @@ var typographyRootCompose = function typographyRootCompose(defaultArgs) {
|
|
24
24
|
bold = _props$bold === void 0 ? defaultArgs === null || defaultArgs === void 0 ? void 0 : defaultArgs.defaultBold : _props$bold,
|
25
25
|
medium = props.medium,
|
26
26
|
color = props.color,
|
27
|
+
isNumeric = props.isNumeric,
|
27
28
|
className = props.className,
|
28
29
|
style = props.style,
|
29
30
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
|
30
31
|
return /*#__PURE__*/React__default.default.createElement(Root, _rollupPluginBabelHelpers.extends({
|
31
32
|
size: size,
|
32
33
|
ref: ref,
|
33
|
-
className: index.cx(noWrap && tokens.classes.typoWithNoWrap, breakWord && tokens.classes.typoWithBreakWord, bold && tokens.classes.typoBold, medium && tokens.classes.typoMedium, className),
|
34
|
+
className: index.cx(noWrap && tokens.classes.typoWithNoWrap, breakWord && tokens.classes.typoWithBreakWord, bold && tokens.classes.typoBold, medium && tokens.classes.typoMedium, isNumeric && tokens.classes.typoIsNumeric, className),
|
34
35
|
style: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({
|
35
36
|
color: color
|
36
37
|
}, style), applySpacing.applySpacing(rest))
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Typography.js","sources":["../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { applySpacing } from '../../mixins/applySpacing';\nimport type { RootProps } from '../../engines';\nimport { cx } from '../../utils';\n\nimport { classes } from './tokens';\nimport { FontProps } from './Typography.types';\n\nexport const typographyRootCompose = (defaultArgs?: { defaultBold?: boolean }) => (\n Root: RootProps<HTMLDivElement, FontProps>,\n) =>\n forwardRef<HTMLDivElement, FontProps>((props, ref) => {\n const {\n size,\n children,\n breakWord,\n noWrap,\n bold = defaultArgs?.defaultBold,\n medium,\n color,\n className,\n style,\n ...rest\n } = props;\n\n return (\n <Root\n size={size}\n ref={ref}\n className={cx(\n noWrap && classes.typoWithNoWrap,\n breakWord && classes.typoWithBreakWord,\n bold && classes.typoBold,\n medium && classes.typoMedium,\n className,\n )}\n style={{ color, ...style, ...applySpacing(rest) }}\n {...rest}\n >\n {children}\n </Root>\n );\n });\n"],"names":["typographyRootCompose","defaultArgs","Root","forwardRef","props","ref","size","children","breakWord","noWrap","_props$bold","bold","defaultBold","medium","color","className","style","rest","_objectWithoutProperties","_excluded","React","createElement","_extends","cx","classes","typoWithNoWrap","typoWithBreakWord","typoBold","typoMedium","_objectSpread","applySpacing"],"mappings":";;;;;;;;;;;;;;;IASaA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,WAAuC,EAAA;AAAA,EAAA,OAAK,UAC9EC,IAA0C,EAAA;AAAA,IAAA,oBAE1CC,gBAAU,CAA4B,UAACC,KAAK,EAAEC,GAAG,EAAK;AAClD,MAAA,IACIC,IAAI,
|
1
|
+
{"version":3,"file":"Typography.js","sources":["../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { applySpacing } from '../../mixins/applySpacing';\nimport type { RootProps } from '../../engines';\nimport { cx } from '../../utils';\n\nimport { classes } from './tokens';\nimport { FontProps } from './Typography.types';\n\nexport const typographyRootCompose = (defaultArgs?: { defaultBold?: boolean }) => (\n Root: RootProps<HTMLDivElement, FontProps>,\n) =>\n forwardRef<HTMLDivElement, FontProps>((props, ref) => {\n const {\n size,\n children,\n breakWord,\n noWrap,\n bold = defaultArgs?.defaultBold,\n medium,\n color,\n isNumeric,\n className,\n style,\n ...rest\n } = props;\n\n return (\n <Root\n size={size}\n ref={ref}\n className={cx(\n noWrap && classes.typoWithNoWrap,\n breakWord && classes.typoWithBreakWord,\n bold && classes.typoBold,\n medium && classes.typoMedium,\n isNumeric && classes.typoIsNumeric,\n className,\n )}\n style={{ color, ...style, ...applySpacing(rest) }}\n {...rest}\n >\n {children}\n </Root>\n );\n });\n"],"names":["typographyRootCompose","defaultArgs","Root","forwardRef","props","ref","size","children","breakWord","noWrap","_props$bold","bold","defaultBold","medium","color","isNumeric","className","style","rest","_objectWithoutProperties","_excluded","React","createElement","_extends","cx","classes","typoWithNoWrap","typoWithBreakWord","typoBold","typoMedium","typoIsNumeric","_objectSpread","applySpacing"],"mappings":";;;;;;;;;;;;;;;IASaA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,WAAuC,EAAA;AAAA,EAAA,OAAK,UAC9EC,IAA0C,EAAA;AAAA,IAAA,oBAE1CC,gBAAU,CAA4B,UAACC,KAAK,EAAEC,GAAG,EAAK;AAClD,MAAA,IACIC,IAAI,GAWJF,KAAK,CAXLE,IAAI;QACJC,QAAQ,GAURH,KAAK,CAVLG,QAAQ;QACRC,SAAS,GASTJ,KAAK,CATLI,SAAS;QACTC,MAAM,GAQNL,KAAK,CARLK,MAAM;QAAAC,WAAA,GAQNN,KAAK,CAPLO,IAAI;QAAJA,IAAI,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAGT,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,WAAW,CAAEW,WAAW,GAAAF,WAAA;QAC/BG,MAAM,GAMNT,KAAK,CANLS,MAAM;QACNC,KAAK,GAKLV,KAAK,CALLU,KAAK;QACLC,SAAS,GAITX,KAAK,CAJLW,SAAS;QACTC,SAAS,GAGTZ,KAAK,CAHLY,SAAS;QACTC,KAAK,GAELb,KAAK,CAFLa,KAAK;AACFC,QAAAA,IAAI,GAAAC,iDAAA,CACPf,KAAK,EAAAgB,SAAA,CAAA,CAAA;AAET,MAAA,oBACIC,sBAAA,CAAAC,aAAA,CAACpB,IAAI,EAAAqB,iCAAA,CAAA;AACDjB,QAAAA,IAAI,EAAEA,IAAK;AACXD,QAAAA,GAAG,EAAEA,GAAI;AACTW,QAAAA,SAAS,EAAEQ,QAAE,CACTf,MAAM,IAAIgB,cAAO,CAACC,cAAc,EAChClB,SAAS,IAAIiB,cAAO,CAACE,iBAAiB,EACtChB,IAAI,IAAIc,cAAO,CAACG,QAAQ,EACxBf,MAAM,IAAIY,cAAO,CAACI,UAAU,EAC5Bd,SAAS,IAAIU,cAAO,CAACK,aAAa,EAClCd,SACJ,CAAE;QACFC,KAAK,EAAAc,uCAAA,CAAAA,uCAAA,CAAA;AAAIjB,UAAAA,KAAK,EAALA,KAAAA;AAAK,SAAA,EAAKG,KAAK,CAAA,EAAKe,yBAAY,CAACd,IAAI,CAAC,CAAA;OAC3CA,EAAAA,IAAI,CAEPX,EAAAA,QACC,CAAC,CAAA;AAEf,KAAC,CAAC,CAAA;AAAA,GAAA,CAAA;AAAA;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Typography.styles.js","sources":["../../../src/components/Typography/Typography.styles.ts"],"sourcesContent":["import { css } from '@linaria/core';\n\nimport { applyHyphens, applyHyphensNormal } from '../../mixins';\n\nimport { classes, tokens } from './tokens';\n\nexport const base = css`\n font-family: var(${tokens.typoFontFamily});\n font-size: var(${tokens.typoFontSize});\n font-style: var(${tokens.typoFontStyle});\n letter-spacing: var(${tokens.typoFontLetterSpacing});\n line-height: var(${tokens.typoFontLineHeight});\n font-weight: var(${tokens.typoFontWeight});\n\n &.${classes.typoBold} {\n font-weight: var(${tokens.typoFontWeightBold});\n }\n\n &.${classes.typoMedium} {\n font-weight: var(${tokens.typoFontWeightMedium});\n }\n\n &.${classes.typoWithNoWrap} {\n white-space: nowrap;\n }\n\n ${applyHyphensNormal};\n\n &.${classes.typoWithBreakWord} {\n ${applyHyphens};\n }\n`;\n"],"names":["base"],"mappings":";;;;AAMO,IAAMA,IAAI,
|
1
|
+
{"version":3,"file":"Typography.styles.js","sources":["../../../src/components/Typography/Typography.styles.ts"],"sourcesContent":["import { css } from '@linaria/core';\n\nimport { applyHyphens, applyHyphensNormal } from '../../mixins';\n\nimport { classes, tokens } from './tokens';\n\nexport const base = css`\n font-family: var(${tokens.typoFontFamily});\n font-size: var(${tokens.typoFontSize});\n font-style: var(${tokens.typoFontStyle});\n letter-spacing: var(${tokens.typoFontLetterSpacing});\n line-height: var(${tokens.typoFontLineHeight});\n font-weight: var(${tokens.typoFontWeight});\n\n &.${classes.typoBold} {\n font-weight: var(${tokens.typoFontWeightBold});\n }\n\n &.${classes.typoMedium} {\n font-weight: var(${tokens.typoFontWeightMedium});\n }\n\n &.${classes.typoWithNoWrap} {\n white-space: nowrap;\n }\n\n &.${classes.typoIsNumeric} {\n font-variant-numeric: tabular-nums;\n }\n\n ${applyHyphensNormal};\n\n &.${classes.typoWithBreakWord} {\n ${applyHyphens};\n }\n`;\n"],"names":["base"],"mappings":";;;;AAMO,IAAMA,IAAI,GA6BhB;;;;"}
|
package/cjs/components/Typography/{Typography.styles_c0qunc.css → Typography.styles_ysh8u6.css}
RENAMED
@@ -1 +1 @@
|
|
1
|
-
.b1ru04lg{font-family:var(--typo-font-family);font-size:var(--typo-font-size);font-style:var(--typo-font-style);-webkit-letter-spacing:var(--typo-font-letter-spacing);-moz-letter-spacing:var(--typo-font-letter-spacing);-ms-letter-spacing:var(--typo-font-letter-spacing);letter-spacing:var(--typo-font-letter-spacing);line-height:var(--typo-font-line-height);font-weight:var(--typo-font-weight);overflow-wrap:normal;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual;hyphens:manual;}.b1ru04lg.typography-bold{font-weight:var(--typo-font-weight-bold);}.b1ru04lg.typography-medium{font-weight:var(--typo-font-weight-medium);}.b1ru04lg.with-no-wrap{white-space:nowrap;}.b1ru04lg.with-break-word{overflow-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;}
|
1
|
+
.b1ru04lg{font-family:var(--typo-font-family);font-size:var(--typo-font-size);font-style:var(--typo-font-style);-webkit-letter-spacing:var(--typo-font-letter-spacing);-moz-letter-spacing:var(--typo-font-letter-spacing);-ms-letter-spacing:var(--typo-font-letter-spacing);letter-spacing:var(--typo-font-letter-spacing);line-height:var(--typo-font-line-height);font-weight:var(--typo-font-weight);overflow-wrap:normal;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual;hyphens:manual;}.b1ru04lg.typography-bold{font-weight:var(--typo-font-weight-bold);}.b1ru04lg.typography-medium{font-weight:var(--typo-font-weight-medium);}.b1ru04lg.with-no-wrap{white-space:nowrap;}.b1ru04lg.typography-is-numeric{font-variant-numeric:tabular-nums;}.b1ru04lg.with-break-word{overflow-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;}
|
@@ -6,7 +6,8 @@ var classes = {
|
|
6
6
|
typoWithNoWrap: 'with-no-wrap',
|
7
7
|
typoWithBreakWord: 'with-break-word',
|
8
8
|
typoBold: 'typography-bold',
|
9
|
-
typoMedium: 'typography-medium'
|
9
|
+
typoMedium: 'typography-medium',
|
10
|
+
typoIsNumeric: 'typography-is-numeric'
|
10
11
|
};
|
11
12
|
var tokens = {
|
12
13
|
typoFontFamily: '--typo-font-family',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tokens.js","sources":["../../../src/components/Typography/tokens.ts"],"sourcesContent":["export const classes = {\n typoWithNoWrap: 'with-no-wrap',\n typoWithBreakWord: 'with-break-word',\n typoBold: 'typography-bold',\n typoMedium: 'typography-medium',\n};\n\nexport const tokens = {\n typoFontFamily: '--typo-font-family',\n typoFontSize: '--typo-font-size',\n typoFontStyle: '--typo-font-style',\n typoFontWeight: '--typo-font-weight',\n typoFontWeightBold: '--typo-font-weight-bold',\n typoFontWeightMedium: '--typo-font-weight-medium',\n typoFontLetterSpacing: '--typo-font-letter-spacing',\n typoFontLineHeight: '--typo-font-line-height',\n};\n"],"names":["classes","typoWithNoWrap","typoWithBreakWord","typoBold","typoMedium","tokens","typoFontFamily","typoFontSize","typoFontStyle","typoFontWeight","typoFontWeightBold","typoFontWeightMedium","typoFontLetterSpacing","typoFontLineHeight"],"mappings":";;;;AAAO,IAAMA,OAAO,GAAG;AACnBC,EAAAA,cAAc,EAAE,cAAc;AAC9BC,EAAAA,iBAAiB,EAAE,iBAAiB;AACpCC,EAAAA,QAAQ,EAAE,iBAAiB;AAC3BC,EAAAA,UAAU,EAAE,
|
1
|
+
{"version":3,"file":"tokens.js","sources":["../../../src/components/Typography/tokens.ts"],"sourcesContent":["export const classes = {\n typoWithNoWrap: 'with-no-wrap',\n typoWithBreakWord: 'with-break-word',\n typoBold: 'typography-bold',\n typoMedium: 'typography-medium',\n typoIsNumeric: 'typography-is-numeric',\n};\n\nexport const tokens = {\n typoFontFamily: '--typo-font-family',\n typoFontSize: '--typo-font-size',\n typoFontStyle: '--typo-font-style',\n typoFontWeight: '--typo-font-weight',\n typoFontWeightBold: '--typo-font-weight-bold',\n typoFontWeightMedium: '--typo-font-weight-medium',\n typoFontLetterSpacing: '--typo-font-letter-spacing',\n typoFontLineHeight: '--typo-font-line-height',\n};\n"],"names":["classes","typoWithNoWrap","typoWithBreakWord","typoBold","typoMedium","typoIsNumeric","tokens","typoFontFamily","typoFontSize","typoFontStyle","typoFontWeight","typoFontWeightBold","typoFontWeightMedium","typoFontLetterSpacing","typoFontLineHeight"],"mappings":";;;;AAAO,IAAMA,OAAO,GAAG;AACnBC,EAAAA,cAAc,EAAE,cAAc;AAC9BC,EAAAA,iBAAiB,EAAE,iBAAiB;AACpCC,EAAAA,QAAQ,EAAE,iBAAiB;AAC3BC,EAAAA,UAAU,EAAE,mBAAmB;AAC/BC,EAAAA,aAAa,EAAE,uBAAA;AACnB,EAAC;AAEM,IAAMC,MAAM,GAAG;AAClBC,EAAAA,cAAc,EAAE,oBAAoB;AACpCC,EAAAA,YAAY,EAAE,kBAAkB;AAChCC,EAAAA,aAAa,EAAE,mBAAmB;AAClCC,EAAAA,cAAc,EAAE,oBAAoB;AACpCC,EAAAA,kBAAkB,EAAE,yBAAyB;AAC7CC,EAAAA,oBAAoB,EAAE,2BAA2B;AACjDC,EAAAA,qBAAqB,EAAE,4BAA4B;AACnDC,EAAAA,kBAAkB,EAAE,yBAAA;AACxB;;;;;"}
|