@salutejs/plasma-new-hope 0.336.0-canary.2220.17591054284.0 → 0.336.0-canary.2220.17648264852.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/Combobox/ComboboxNew/Combobox.js +39 -12
- package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/cjs/engines/common.js +11 -1
- package/cjs/engines/common.js.map +1 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +36 -9
- package/emotion/cjs/engines/common.js +14 -1
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +36 -9
- package/emotion/es/engines/common.js +14 -1
- package/emotion/es/examples/components/Combobox/Combobox.js +7 -0
- package/es/components/Combobox/ComboboxNew/Combobox.js +39 -12
- package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/es/engines/common.js +12 -2
- package/es/engines/common.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +36 -9
- package/styled-components/cjs/engines/common.js +14 -1
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +36 -9
- package/styled-components/es/engines/common.js +14 -1
- package/styled-components/es/examples/components/Combobox/Combobox.js +7 -0
- package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
- package/types/components/NumberFormat/NumberFormat.d.ts.map +1 -1
- package/types/components/NumberFormat/NumberFormat.types.d.ts +1 -1
- package/types/components/TextField/TextField.types.d.ts +2 -2
- package/types/engines/common.d.ts.map +1 -1
- package/types/examples/components/NumberFormat/NumberFormat.d.ts.map +1 -1
@@ -207,7 +207,11 @@ var comboboxRoot = function comboboxRoot(Root) {
|
|
207
207
|
var handleChipClick = function handleChipClick(chip) {
|
208
208
|
if (!Array.isArray(value)) return;
|
209
209
|
if (isTargetAmount) {
|
210
|
-
|
210
|
+
// При закрытии чипа в режиме isTargetAmount в value оставляем только disabled-элементы
|
211
|
+
onChange(value.filter(function (val) {
|
212
|
+
var _valueToItemMap$get;
|
213
|
+
return valueToItemMap === null || valueToItemMap === void 0 || (_valueToItemMap$get = valueToItemMap.get(val)) === null || _valueToItemMap$get === void 0 ? void 0 : _valueToItemMap$get.disabled;
|
214
|
+
}));
|
211
215
|
} else {
|
212
216
|
onChange(value.filter(function (val) {
|
213
217
|
return val !== chip.value;
|
@@ -243,14 +247,34 @@ var comboboxRoot = function comboboxRoot(Root) {
|
|
243
247
|
return;
|
244
248
|
}
|
245
249
|
var checkedCopy = new Map(checked);
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
250
|
+
switch (checkedCopy.get(item.value)) {
|
251
|
+
// Если чекбокс в состоянии indeterminate
|
252
|
+
case 'indeterminate':
|
253
|
+
{
|
254
|
+
// checkedCopy.set(item.value, true); ??
|
255
|
+
updateDescendants(item, checkedCopy, true, valueToItemMap);
|
256
|
+
break;
|
257
|
+
}
|
258
|
+
// Если чекбокс в состоянии checked
|
259
|
+
case true:
|
260
|
+
{
|
261
|
+
updateDescendants(item, checkedCopy, false, valueToItemMap);
|
262
|
+
checkedCopy.set(item.value, false);
|
263
|
+
break;
|
264
|
+
}
|
265
|
+
// Если чекбокс в состоянии unchecked
|
266
|
+
case false:
|
267
|
+
{
|
268
|
+
updateDescendants(item, checkedCopy, true, valueToItemMap);
|
269
|
+
checkedCopy.set(item.value, true);
|
270
|
+
break;
|
271
|
+
}
|
272
|
+
default:
|
273
|
+
{
|
274
|
+
console.log();
|
275
|
+
break;
|
276
|
+
}
|
252
277
|
}
|
253
|
-
updateAncestors(item, checkedCopy);
|
254
278
|
var newValues = [];
|
255
279
|
valueToItemMap.forEach(function (item, key) {
|
256
280
|
if (checkedCopy.get(key)) {
|
@@ -323,19 +347,22 @@ var comboboxRoot = function comboboxRoot(Root) {
|
|
323
347
|
return [{
|
324
348
|
value: '_removeAll',
|
325
349
|
label: "\u0412\u044B\u0431\u0440\u0430\u043D\u043E ".concat(targetAmount || value.length),
|
326
|
-
disabled:
|
350
|
+
disabled: value.every(function (val) {
|
351
|
+
var _valueToItemMap$get2;
|
352
|
+
return valueToItemMap === null || valueToItemMap === void 0 || (_valueToItemMap$get2 = valueToItemMap.get(val)) === null || _valueToItemMap$get2 === void 0 ? void 0 : _valueToItemMap$get2.disabled;
|
353
|
+
})
|
327
354
|
}];
|
328
355
|
}
|
329
356
|
return value.map(function (value) {
|
330
|
-
var _valueToItemMap$
|
357
|
+
var _valueToItemMap$get3, _valueToItemMap$get4;
|
331
358
|
var currentLabel = renderValue ? renderValue(valueToItemMap.get(value) || {
|
332
359
|
value: value,
|
333
360
|
label: value
|
334
|
-
}) : ((_valueToItemMap$
|
361
|
+
}) : ((_valueToItemMap$get3 = valueToItemMap.get(value)) === null || _valueToItemMap$get3 === void 0 ? void 0 : _valueToItemMap$get3.label) || value.toString();
|
335
362
|
return {
|
336
363
|
value: value,
|
337
364
|
label: currentLabel,
|
338
|
-
disabled: ((_valueToItemMap$
|
365
|
+
disabled: ((_valueToItemMap$get4 = valueToItemMap.get(value)) === null || _valueToItemMap$get4 === void 0 ? void 0 : _valueToItemMap$get4.disabled) || false
|
339
366
|
};
|
340
367
|
});
|
341
368
|
}
|
@@ -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, MouseEvent } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId, isEmpty } from 'src/utils';\nimport { RootProps } from 'src/engines';\nimport { useOutsideClick, useDidMountLayoutEffect } from 'src/hooks';\n\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 getTextValue,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport {\n Ul,\n base,\n StyledArrow,\n IconArrowWrapper,\n StyledEmptyState,\n StyledLeftHelper,\n ListWrapper,\n} 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 mode = 'default',\n // @ts-ignore\n _offset,\n ...rest\n } = props;\n\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap] = useMemo(() => getTreeMaps(transformedItems), [items]);\n\n const [textValue, setTextValue] = useState(getTextValue(multiple, outerValue, valueToItemMap, renderValue));\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 const listWrapperRef = useRef<HTMLDivElement>(null);\n\n const filteredItems = useMemo(\n () =>\n filterItems(\n transformedItems,\n textValue,\n getTextValue(multiple, value, valueToItemMap, renderValue),\n filter,\n ),\n [transformedItems, textValue, filter],\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n const initialPath = alwaysOpened ? ['root'] : [];\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, initialPath);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = 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 || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n\n // Возвращаем актуальное значение поля ввода после закрытия выпадающего списка.\n setTextValue(getTextValue(multiple, value, valueToItemMap, renderValue));\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 = (e: MouseEvent<HTMLElement>) => {\n handleListToggle(!isCurrentListOpen);\n\n // При клике на иконку закрытия фокус не должен становиться в инпут.\n e.stopPropagation();\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 handleChipClick = (chip: { value: string; label: string; disabled: boolean }) => {\n if (!Array.isArray(value)) return;\n\n if (isTargetAmount) {\n onChange([]);\n } else {\n onChange(\n value.filter((val) => val !== chip.value),\n valueToItemMap.get(chip.value) || 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 // Обработчик клика по айтему выпадающего списка\n const handleItemClick = (item: ItemOptionTransformed, e?: 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 // Закрываем список, если элемент уже выбран.\n if (mode === 'radio' && isCurrentChecked) {\n return;\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n };\n\n // Обработчик клика на таргет\n const handleTargetClick = () => {\n if (!isCurrentListOpen) {\n handleListToggle(true);\n }\n };\n\n const getChips = (): { value: string; label: string; disabled: boolean }[] => {\n if (multiple && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [{ value: '_removeAll', label: `Выбрано ${targetAmount || value.length}`, disabled: false }];\n }\n\n return value.map((value) => {\n const currentLabel = renderValue\n ? renderValue(valueToItemMap.get(value) || { value, label: value })\n : valueToItemMap.get(value)?.label || value.toString();\n\n return {\n value,\n label: currentLabel,\n disabled: valueToItemMap.get(value)?.disabled || false,\n };\n });\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: 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: 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 // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n // При изменении value нужно возвращать значение в инпуте к исходному.\n useDidMountLayoutEffect(() => {\n setTextValue(getTextValue(multiple, value, valueToItemMap, renderValue));\n }, [outerValue, internalValue]);\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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n offset={_offset}\n target={(referenceRef) => (\n <div onClick={handleTargetClick}>\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\n disabled={disabled}\n onClick={handleClickArrow}\n className={classes.comboboxTargetArrow}\n >\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\n ? getItemId(treeId, activeDescendantItemValue)\n : ''\n }\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n {...(multiple\n ? {\n enumerationType: 'chip',\n _chips: getChips(),\n _onChipClick: handleChipClick,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n _onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n </div>\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <ListWrapper ref={listWrapperRef} listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n ref={targetRef}\n virtual={virtual}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n <>\n {props.multiple && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll\n selectAllOptions={props.selectAllOptions}\n variant={variant}\n />\n )}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\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 portal={listWrapperRef}\n />\n ))\n )}\n </>\n )}\n\n {afterList}\n </Ul>\n </ListWrapper>\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","_getItemByFocused","_StyledLeftHelper","name","multiple","outerValue","value","defaultValue","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","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","_props$mode","mode","_offset","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","_useState","useState","getTextValue","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","listWrapperRef","filteredItems","filterItems","_useMemo3","getPathMap","_useMemo4","pathMap","focusedToValueMap","initialPath","_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","onChange","newValue","item","Array","isArray","_typeof","handleClickArrow","e","handleListToggle","stopPropagation","handleTextValueChange","target","handleChipClick","chip","val","get","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","newValues","forEach","key","push","has","handleItemClick","isEmpty","isCurrentChecked","handleTargetClick","getChips","length","concat","map","_valueToItemMap$get","_valueToItemMap$get2","currentLabel","toString","handlePressDown","helperTextStopPropagation","event","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateSingleAncestors","useDidMountLayoutEffect","React","createElement","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","offset","referenceRef","onClick","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","className","comboboxTargetArrow","StyledArrow","color","sizeToIconSize","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","_chips","_onChipClick","_onEnterDisabled","isInner","ListWrapper","Ul","id","StyledEmptyState","emptyStateWrapper","description","Fragment","selectAllOptions","SelectAll","VirtualList","index","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, MouseEvent } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId, isEmpty } from 'src/utils';\nimport { RootProps } from 'src/engines';\nimport { useOutsideClick, useDidMountLayoutEffect } from 'src/hooks';\n\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 getTextValue,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport {\n Ul,\n base,\n StyledArrow,\n IconArrowWrapper,\n StyledEmptyState,\n StyledLeftHelper,\n ListWrapper,\n} 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 mode = 'default',\n // @ts-ignore\n _offset,\n ...rest\n } = props;\n\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap] = useMemo(() => getTreeMaps(transformedItems), [items]);\n\n const [textValue, setTextValue] = useState(getTextValue(multiple, outerValue, valueToItemMap, renderValue));\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 const listWrapperRef = useRef<HTMLDivElement>(null);\n\n const filteredItems = useMemo(\n () =>\n filterItems(\n transformedItems,\n textValue,\n getTextValue(multiple, value, valueToItemMap, renderValue),\n filter,\n ),\n [transformedItems, textValue, filter],\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n const initialPath = alwaysOpened ? ['root'] : [];\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, initialPath);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = 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 || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n\n // Возвращаем актуальное значение поля ввода после закрытия выпадающего списка.\n setTextValue(getTextValue(multiple, value, valueToItemMap, renderValue));\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 = (e: MouseEvent<HTMLElement>) => {\n handleListToggle(!isCurrentListOpen);\n\n // При клике на иконку закрытия фокус не должен становиться в инпут.\n e.stopPropagation();\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 handleChipClick = (chip: { value: string; label: string; disabled: boolean }) => {\n if (!Array.isArray(value)) return;\n\n if (isTargetAmount) {\n // При закрытии чипа в режиме isTargetAmount в value оставляем только disabled-элементы\n onChange(value.filter((val) => valueToItemMap?.get(val)?.disabled));\n } else {\n onChange(\n value.filter((val) => val !== chip.value),\n valueToItemMap.get(chip.value) || 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 switch (checkedCopy.get(item.value)) {\n // Если чекбокс в состоянии indeterminate\n case 'indeterminate': {\n // checkedCopy.set(item.value, true); ??\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n break;\n }\n // Если чекбокс в состоянии checked\n case true: {\n updateDescendants(item, checkedCopy, false, valueToItemMap);\n checkedCopy.set(item.value, false);\n break;\n }\n // Если чекбокс в состоянии unchecked\n case false: {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n checkedCopy.set(item.value, true);\n break;\n }\n default: {\n console.log();\n break;\n }\n }\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 // Обработчик клика по айтему выпадающего списка\n const handleItemClick = (item: ItemOptionTransformed, e?: 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 // Закрываем список, если элемент уже выбран.\n if (mode === 'radio' && isCurrentChecked) {\n return;\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n };\n\n // Обработчик клика на таргет\n const handleTargetClick = () => {\n if (!isCurrentListOpen) {\n handleListToggle(true);\n }\n };\n\n const getChips = (): { value: string; label: string; disabled: boolean }[] => {\n if (multiple && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [\n {\n value: '_removeAll',\n label: `Выбрано ${targetAmount || value.length}`,\n disabled: value.every((val) => valueToItemMap?.get(val)?.disabled),\n },\n ];\n }\n\n return value.map((value) => {\n const currentLabel = renderValue\n ? renderValue(valueToItemMap.get(value) || { value, label: value })\n : valueToItemMap.get(value)?.label || value.toString();\n\n return {\n value,\n label: currentLabel,\n disabled: valueToItemMap.get(value)?.disabled || false,\n };\n });\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: 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: 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 // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n // При изменении value нужно возвращать значение в инпуте к исходному.\n useDidMountLayoutEffect(() => {\n setTextValue(getTextValue(multiple, value, valueToItemMap, renderValue));\n }, [outerValue, internalValue]);\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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n offset={_offset}\n target={(referenceRef) => (\n <div onClick={handleTargetClick}>\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\n disabled={disabled}\n onClick={handleClickArrow}\n className={classes.comboboxTargetArrow}\n >\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\n ? getItemId(treeId, activeDescendantItemValue)\n : ''\n }\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n {...(multiple\n ? {\n enumerationType: 'chip',\n _chips: getChips(),\n _onChipClick: handleChipClick,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n _onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n </div>\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <ListWrapper ref={listWrapperRef} listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n ref={targetRef}\n virtual={virtual}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n <>\n {props.multiple && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll\n selectAllOptions={props.selectAllOptions}\n variant={variant}\n />\n )}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\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 portal={listWrapperRef}\n />\n ))\n )}\n </>\n )}\n\n {afterList}\n </Ul>\n </ListWrapper>\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","_getItemByFocused","_StyledLeftHelper","name","multiple","outerValue","value","defaultValue","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","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","_props$mode","mode","_offset","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","_useState","useState","getTextValue","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","listWrapperRef","filteredItems","filterItems","_useMemo3","getPathMap","_useMemo4","pathMap","focusedToValueMap","initialPath","_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","onChange","newValue","item","Array","isArray","_typeof","handleClickArrow","e","handleListToggle","stopPropagation","handleTextValueChange","target","handleChipClick","chip","val","_valueToItemMap$get","get","opened","handleCheckboxChange","checkedCopy","Map","updateDescendants","set","console","log","newValues","forEach","key","push","has","handleItemClick","isEmpty","isCurrentChecked","handleTargetClick","getChips","length","concat","every","_valueToItemMap$get2","map","_valueToItemMap$get3","_valueToItemMap$get4","currentLabel","toString","handlePressDown","helperTextStopPropagation","event","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateAncestors","updateSingleAncestors","useDidMountLayoutEffect","React","createElement","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","offset","referenceRef","onClick","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","className","comboboxTargetArrow","StyledArrow","color","sizeToIconSize","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","_chips","_onChipClick","_onEnterDisabled","isInner","ListWrapper","Ul","id","StyledEmptyState","emptyStateWrapper","description","Fragment","selectAllOptions","SelectAll","VirtualList","index","Inner","currentLevel","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
package/es/engines/common.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { objectSpread2 as _objectSpread2, extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';
|
1
|
+
import { objectSpread2 as _objectSpread2, extends as _extends, defineProperty as _defineProperty } from '../_virtual/_rollupPluginBabelHelpers.js';
|
2
2
|
import React from 'react';
|
3
3
|
import { _component } from './linaria.js';
|
4
4
|
|
@@ -29,10 +29,20 @@ var mergeConfig = function mergeConfig(baseConfig, userConfig) {
|
|
29
29
|
}
|
30
30
|
return res;
|
31
31
|
};
|
32
|
+
|
33
|
+
// INFO: Метод, который проводит слияние двух объектов
|
34
|
+
// INFO: если значение явно указанно как undefined/null/пустая строка, то будет взято значение указанное в default
|
35
|
+
function mergeWithoutNullable(defaults, componentProps) {
|
36
|
+
var props = Object.keys(defaults).reduce(function (acc, key) {
|
37
|
+
return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty({}, key, [null, undefined, ''].includes(componentProps[key]) ? defaults[key] : componentProps[key]));
|
38
|
+
}, {});
|
39
|
+
return _objectSpread2(_objectSpread2({}, componentProps), props);
|
40
|
+
}
|
32
41
|
function component(config) {
|
33
42
|
var Comp = config.layout(_component(config));
|
34
43
|
return /*#__PURE__*/React.forwardRef(function (props, ref) {
|
35
|
-
|
44
|
+
var mergedProps = mergeWithoutNullable(config === null || config === void 0 ? void 0 : config.defaults, props);
|
45
|
+
return /*#__PURE__*/React.createElement(Comp, _extends({}, mergedProps, {
|
36
46
|
ref: ref
|
37
47
|
}));
|
38
48
|
});
|
package/es/engines/common.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.js","sources":["../../src/engines/common.tsx"],"sourcesContent":["import React from 'react';\n\nimport { _component } from './linaria';\nimport type {\n ComponentConfig,\n HTMLTagList,\n PropsType,\n Variants,\n HTMLAttributesWithoutOnChange,\n HTMLAttributesWithoutOnChangeAndDefaultValue,\n} from './types';\n\nexport const mergeConfig = <\n Tag extends HTMLTagList,\n VariantList extends Variants,\n VariantsProps extends PropsType<VariantList>,\n LayoutPropsBase extends\n | React.HTMLAttributes<HTMLElement>\n | HTMLAttributesWithoutOnChange<HTMLElement>\n | HTMLAttributesWithoutOnChangeAndDefaultValue<HTMLElement>,\n LayoutPropsUser extends\n | React.HTMLAttributes<HTMLElement>\n | HTMLAttributesWithoutOnChange<HTMLElement>\n | HTMLAttributesWithoutOnChangeAndDefaultValue<HTMLElement>\n | undefined = undefined\n>(\n baseConfig: ComponentConfig<Tag, Variants, PropsType & LayoutPropsBase, LayoutPropsBase>,\n userConfig?: Partial<ComponentConfig<Tag, VariantList, VariantsProps, LayoutPropsUser>>,\n) => {\n const res = { ...baseConfig, ...userConfig };\n\n if (res.variations) {\n // copy variations base css\n // eslint-disable-next-line guard-for-in\n for (const key in res.variations) {\n const variant = baseConfig.variations[key];\n\n res.variations[key].css = variant?.css;\n /* start of bad decision */\n if (!res.variations[key].true && variant?.true) {\n res.variations[key].true = variant.true;\n }\n /* end of bad decision */\n if (variant?.attrs) {\n res.variations[key].attrs = variant.attrs;\n }\n }\n }\n\n // eslint-disable-next-line guard-for-in\n for (const key in baseConfig.defaults || {}) {\n if (!(key in res.defaults)) {\n res.defaults[key] = baseConfig.defaults[key];\n }\n }\n\n return res as ComponentConfig<\n Tag,\n VariantList,\n PropsType<VariantList>,\n LayoutPropsUser extends undefined ? LayoutPropsBase : LayoutPropsUser\n >;\n};\n\nexport function component<\n Tag extends HTMLTagList,\n VariantList extends Variants,\n VariantsProps extends PropsType<VariantList>,\n LayoutProps extends\n | React.HTMLAttributes<HTMLElement>\n | HTMLAttributesWithoutOnChange<HTMLElement>\n | HTMLAttributesWithoutOnChangeAndDefaultValue<HTMLElement>\n>(\n config: ComponentConfig<Tag, VariantList, VariantsProps, LayoutProps>,\n): React.FunctionComponent<VariantsProps & LayoutProps> {\n const Comp = config.layout(_component((config as unknown) as ComponentConfig));\n\n return React.forwardRef<VariantsProps & LayoutProps, any>((props, ref) =>
|
1
|
+
{"version":3,"file":"common.js","sources":["../../src/engines/common.tsx"],"sourcesContent":["import React from 'react';\n\nimport { _component } from './linaria';\nimport type {\n ComponentConfig,\n HTMLTagList,\n PropsType,\n Variants,\n HTMLAttributesWithoutOnChange,\n HTMLAttributesWithoutOnChangeAndDefaultValue,\n} from './types';\n\nexport const mergeConfig = <\n Tag extends HTMLTagList,\n VariantList extends Variants,\n VariantsProps extends PropsType<VariantList>,\n LayoutPropsBase extends\n | React.HTMLAttributes<HTMLElement>\n | HTMLAttributesWithoutOnChange<HTMLElement>\n | HTMLAttributesWithoutOnChangeAndDefaultValue<HTMLElement>,\n LayoutPropsUser extends\n | React.HTMLAttributes<HTMLElement>\n | HTMLAttributesWithoutOnChange<HTMLElement>\n | HTMLAttributesWithoutOnChangeAndDefaultValue<HTMLElement>\n | undefined = undefined\n>(\n baseConfig: ComponentConfig<Tag, Variants, PropsType & LayoutPropsBase, LayoutPropsBase>,\n userConfig?: Partial<ComponentConfig<Tag, VariantList, VariantsProps, LayoutPropsUser>>,\n) => {\n const res = { ...baseConfig, ...userConfig };\n\n if (res.variations) {\n // copy variations base css\n // eslint-disable-next-line guard-for-in\n for (const key in res.variations) {\n const variant = baseConfig.variations[key];\n\n res.variations[key].css = variant?.css;\n /* start of bad decision */\n if (!res.variations[key].true && variant?.true) {\n res.variations[key].true = variant.true;\n }\n /* end of bad decision */\n if (variant?.attrs) {\n res.variations[key].attrs = variant.attrs;\n }\n }\n }\n\n // eslint-disable-next-line guard-for-in\n for (const key in baseConfig.defaults || {}) {\n if (!(key in res.defaults)) {\n res.defaults[key] = baseConfig.defaults[key];\n }\n }\n\n return res as ComponentConfig<\n Tag,\n VariantList,\n PropsType<VariantList>,\n LayoutPropsUser extends undefined ? LayoutPropsBase : LayoutPropsUser\n >;\n};\n\n// INFO: Метод, который проводит слияние двух объектов\n// INFO: если значение явно указанно как undefined/null/пустая строка, то будет взято значение указанное в default\nfunction mergeWithoutNullable(defaults: any, componentProps: any) {\n const props = Object.keys(defaults).reduce((acc, key) => {\n return {\n ...acc,\n [key]: [null, undefined, ''].includes(componentProps[key]) ? defaults[key] : componentProps[key],\n };\n }, {});\n\n return { ...componentProps, ...props };\n}\n\nexport function component<\n Tag extends HTMLTagList,\n VariantList extends Variants,\n VariantsProps extends PropsType<VariantList>,\n LayoutProps extends\n | React.HTMLAttributes<HTMLElement>\n | HTMLAttributesWithoutOnChange<HTMLElement>\n | HTMLAttributesWithoutOnChangeAndDefaultValue<HTMLElement>\n>(\n config: ComponentConfig<Tag, VariantList, VariantsProps, LayoutProps>,\n): React.FunctionComponent<VariantsProps & LayoutProps> {\n const Comp = config.layout(_component((config as unknown) as ComponentConfig));\n\n return React.forwardRef<VariantsProps & LayoutProps, any>((props, ref) => {\n const mergedProps = mergeWithoutNullable(config?.defaults, props);\n\n return <Comp {...mergedProps} ref={ref} />;\n });\n}\n"],"names":["mergeConfig","baseConfig","userConfig","res","_objectSpread","variations","key","variant","css","attrs","defaults","mergeWithoutNullable","componentProps","props","Object","keys","reduce","acc","_defineProperty","undefined","includes","component","config","Comp","layout","_component","React","forwardRef","ref","mergedProps","createElement","_extends"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@salutejs/plasma-new-hope",
|
3
|
-
"version": "0.336.0-canary.2220.
|
3
|
+
"version": "0.336.0-canary.2220.17648264852.0",
|
4
4
|
"description": "Salute Design System blueprint",
|
5
5
|
"main": "cjs/index.js",
|
6
6
|
"module": "es/index.js",
|
@@ -137,5 +137,5 @@
|
|
137
137
|
"sideEffects": [
|
138
138
|
"*.css"
|
139
139
|
],
|
140
|
-
"gitHead": "
|
140
|
+
"gitHead": "2a65ae43ad8e399312de2e55cb586171d5ff50e8"
|
141
141
|
}
|
@@ -354,7 +354,11 @@ var comboboxRoot = function(Root) {
|
|
354
354
|
var handleChipClick = function(chip) {
|
355
355
|
if (!Array.isArray(value)) return;
|
356
356
|
if (isTargetAmount) {
|
357
|
-
|
357
|
+
// При закрытии чипа в режиме isTargetAmount в value оставляем только disabled-элементы
|
358
|
+
onChange(value.filter(function(val) {
|
359
|
+
var _valueToItemMap_get;
|
360
|
+
return valueToItemMap === null || valueToItemMap === void 0 ? void 0 : (_valueToItemMap_get = valueToItemMap.get(val)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.disabled;
|
361
|
+
}));
|
358
362
|
} else {
|
359
363
|
onChange(value.filter(function(val) {
|
360
364
|
return val !== chip.value;
|
@@ -388,14 +392,34 @@ var comboboxRoot = function(Root) {
|
|
388
392
|
return;
|
389
393
|
}
|
390
394
|
var checkedCopy = new Map(checked);
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
395
|
+
switch(checkedCopy.get(item.value)){
|
396
|
+
// Если чекбокс в состоянии indeterminate
|
397
|
+
case 'indeterminate':
|
398
|
+
{
|
399
|
+
// checkedCopy.set(item.value, true); ??
|
400
|
+
(0, _utils2.updateDescendants)(item, checkedCopy, true, valueToItemMap);
|
401
|
+
break;
|
402
|
+
}
|
403
|
+
// Если чекбокс в состоянии checked
|
404
|
+
case true:
|
405
|
+
{
|
406
|
+
(0, _utils2.updateDescendants)(item, checkedCopy, false, valueToItemMap);
|
407
|
+
checkedCopy.set(item.value, false);
|
408
|
+
break;
|
409
|
+
}
|
410
|
+
// Если чекбокс в состоянии unchecked
|
411
|
+
case false:
|
412
|
+
{
|
413
|
+
(0, _utils2.updateDescendants)(item, checkedCopy, true, valueToItemMap);
|
414
|
+
checkedCopy.set(item.value, true);
|
415
|
+
break;
|
416
|
+
}
|
417
|
+
default:
|
418
|
+
{
|
419
|
+
console.log();
|
420
|
+
break;
|
421
|
+
}
|
397
422
|
}
|
398
|
-
(0, _utils2.updateAncestors)(item, checkedCopy);
|
399
423
|
var newValues = [];
|
400
424
|
valueToItemMap.forEach(function(item, key) {
|
401
425
|
if (checkedCopy.get(key)) {
|
@@ -465,7 +489,10 @@ var comboboxRoot = function(Root) {
|
|
465
489
|
{
|
466
490
|
value: '_removeAll',
|
467
491
|
label: "Выбрано ".concat(targetAmount || value.length),
|
468
|
-
disabled:
|
492
|
+
disabled: value.every(function(val) {
|
493
|
+
var _valueToItemMap_get;
|
494
|
+
return valueToItemMap === null || valueToItemMap === void 0 ? void 0 : (_valueToItemMap_get = valueToItemMap.get(val)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.disabled;
|
495
|
+
})
|
469
496
|
}
|
470
497
|
];
|
471
498
|
}
|
@@ -99,10 +99,23 @@ var mergeConfig = function(baseConfig, userConfig) {
|
|
99
99
|
}
|
100
100
|
return res;
|
101
101
|
};
|
102
|
+
// INFO: Метод, который проводит слияние двух объектов
|
103
|
+
// INFO: если значение явно указанно как undefined/null/пустая строка, то будет взято значение указанное в default
|
104
|
+
function mergeWithoutNullable(defaults, componentProps) {
|
105
|
+
var props = Object.keys(defaults).reduce(function(acc, key) {
|
106
|
+
return _object_spread_props(_object_spread({}, acc), _define_property({}, key, [
|
107
|
+
null,
|
108
|
+
undefined,
|
109
|
+
''
|
110
|
+
].includes(componentProps[key]) ? defaults[key] : componentProps[key]));
|
111
|
+
}, {});
|
112
|
+
return _object_spread({}, componentProps, props);
|
113
|
+
}
|
102
114
|
function component(config) {
|
103
115
|
var Comp = config.layout((0, _styledcomponents._component)(config));
|
104
116
|
return /*#__PURE__*/ _react.default.forwardRef(function(props, ref) {
|
105
|
-
|
117
|
+
var mergedProps = mergeWithoutNullable(config === null || config === void 0 ? void 0 : config.defaults, props);
|
118
|
+
return /*#__PURE__*/ _react.default.createElement(Comp, _object_spread_props(_object_spread({}, mergedProps), {
|
106
119
|
ref: ref
|
107
120
|
}));
|
108
121
|
});
|
@@ -297,7 +297,11 @@ import { Context } from "./Combobox.context";
|
|
297
297
|
var handleChipClick = function(chip) {
|
298
298
|
if (!Array.isArray(value)) return;
|
299
299
|
if (isTargetAmount) {
|
300
|
-
|
300
|
+
// При закрытии чипа в режиме isTargetAmount в value оставляем только disabled-элементы
|
301
|
+
onChange(value.filter(function(val) {
|
302
|
+
var _valueToItemMap_get;
|
303
|
+
return valueToItemMap === null || valueToItemMap === void 0 ? void 0 : (_valueToItemMap_get = valueToItemMap.get(val)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.disabled;
|
304
|
+
}));
|
301
305
|
} else {
|
302
306
|
onChange(value.filter(function(val) {
|
303
307
|
return val !== chip.value;
|
@@ -331,14 +335,34 @@ import { Context } from "./Combobox.context";
|
|
331
335
|
return;
|
332
336
|
}
|
333
337
|
var checkedCopy = new Map(checked);
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
338
|
+
switch(checkedCopy.get(item.value)){
|
339
|
+
// Если чекбокс в состоянии indeterminate
|
340
|
+
case 'indeterminate':
|
341
|
+
{
|
342
|
+
// checkedCopy.set(item.value, true); ??
|
343
|
+
updateDescendants(item, checkedCopy, true, valueToItemMap);
|
344
|
+
break;
|
345
|
+
}
|
346
|
+
// Если чекбокс в состоянии checked
|
347
|
+
case true:
|
348
|
+
{
|
349
|
+
updateDescendants(item, checkedCopy, false, valueToItemMap);
|
350
|
+
checkedCopy.set(item.value, false);
|
351
|
+
break;
|
352
|
+
}
|
353
|
+
// Если чекбокс в состоянии unchecked
|
354
|
+
case false:
|
355
|
+
{
|
356
|
+
updateDescendants(item, checkedCopy, true, valueToItemMap);
|
357
|
+
checkedCopy.set(item.value, true);
|
358
|
+
break;
|
359
|
+
}
|
360
|
+
default:
|
361
|
+
{
|
362
|
+
console.log();
|
363
|
+
break;
|
364
|
+
}
|
340
365
|
}
|
341
|
-
updateAncestors(item, checkedCopy);
|
342
366
|
var newValues = [];
|
343
367
|
valueToItemMap.forEach(function(item, key) {
|
344
368
|
if (checkedCopy.get(key)) {
|
@@ -408,7 +432,10 @@ import { Context } from "./Combobox.context";
|
|
408
432
|
{
|
409
433
|
value: '_removeAll',
|
410
434
|
label: "Выбрано ".concat(targetAmount || value.length),
|
411
|
-
disabled:
|
435
|
+
disabled: value.every(function(val) {
|
436
|
+
var _valueToItemMap_get;
|
437
|
+
return valueToItemMap === null || valueToItemMap === void 0 ? void 0 : (_valueToItemMap_get = valueToItemMap.get(val)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.disabled;
|
438
|
+
})
|
412
439
|
}
|
413
440
|
];
|
414
441
|
}
|
@@ -76,10 +76,23 @@ export var mergeConfig = function(baseConfig, userConfig) {
|
|
76
76
|
}
|
77
77
|
return res;
|
78
78
|
};
|
79
|
+
// INFO: Метод, который проводит слияние двух объектов
|
80
|
+
// INFO: если значение явно указанно как undefined/null/пустая строка, то будет взято значение указанное в default
|
81
|
+
function mergeWithoutNullable(defaults, componentProps) {
|
82
|
+
var props = Object.keys(defaults).reduce(function(acc, key) {
|
83
|
+
return _object_spread_props(_object_spread({}, acc), _define_property({}, key, [
|
84
|
+
null,
|
85
|
+
undefined,
|
86
|
+
''
|
87
|
+
].includes(componentProps[key]) ? defaults[key] : componentProps[key]));
|
88
|
+
}, {});
|
89
|
+
return _object_spread({}, componentProps, props);
|
90
|
+
}
|
79
91
|
export function component(config) {
|
80
92
|
var Comp = config.layout(_component(config));
|
81
93
|
return /*#__PURE__*/ React.forwardRef(function(props, ref) {
|
82
|
-
|
94
|
+
var mergedProps = mergeWithoutNullable(config === null || config === void 0 ? void 0 : config.defaults, props);
|
95
|
+
return /*#__PURE__*/ React.createElement(Comp, _object_spread_props(_object_spread({}, mergedProps), {
|
83
96
|
ref: ref
|
84
97
|
}));
|
85
98
|
});
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { component, mergeConfig } from "../../../engines";
|
2
|
+
import { comboboxNewConfig } from "../../..";
|
3
|
+
import { config } from "./Combobox.config";
|
4
|
+
var mergedConfig = mergeConfig(comboboxNewConfig, config);
|
5
|
+
var ComboboxComponent = component(mergedConfig);
|
6
|
+
var Combobox = ComboboxComponent;
|
7
|
+
export { Combobox };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAIlG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA6BxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD;;GAEG;AAEH,eAAO,MAAM,YAAY,SAAU,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,
|
1
|
+
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAIlG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA6BxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD;;GAEG;AAEH,eAAO,MAAM,YAAY,SAAU,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,2FAwjBtF,CAAC;AAEP,eAAO,MAAM,cAAc;;;mBA1jBQ,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;CA+kB3F,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NumberFormat.d.ts","sourceRoot":"","sources":["../../../src/components/NumberFormat/NumberFormat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAkB,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAc,MAAM,qBAAqB,CAAC;AAG1E,OAAO,KAAK,EAER,wBAAwB,EACxB,0BAA0B,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,0BAA0B,kBAAkB,EAAE,CAAC,CAAC,CAAC;;;;;;;;;qBA+
|
1
|
+
{"version":3,"file":"NumberFormat.d.ts","sourceRoot":"","sources":["../../../src/components/NumberFormat/NumberFormat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAkB,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAc,MAAM,qBAAqB,CAAC;AAG1E,OAAO,KAAK,EAER,wBAAwB,EACxB,0BAA0B,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,0BAA0B,kBAAkB,EAAE,CAAC,CAAC,CAAC;;;;;;;;;qBA+C3D,CAAC,uCAEb,CAAhB;mGA+BP,CAAC"}
|