@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.
@@ -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
- onChange([]);
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
- if (!checkedCopy.get(item.value)) {
247
- checkedCopy.set(item.value, true);
248
- updateDescendants(item, checkedCopy, true, valueToItemMap);
249
- } else {
250
- checkedCopy.set(item.value, false);
251
- updateDescendants(item, checkedCopy, false);
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: false
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$get, _valueToItemMap$get2;
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$get = valueToItemMap.get(value)) === null || _valueToItemMap$get === void 0 ? void 0 : _valueToItemMap$get.label) || value.toString();
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$get2 = valueToItemMap.get(value)) === null || _valueToItemMap$get2 === void 0 ? void 0 : _valueToItemMap$get2.disabled) || false
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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"}
@@ -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
- return /*#__PURE__*/React.createElement(Comp, _extends({}, config === null || config === void 0 ? void 0 : config.defaults, props, {
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
  });
@@ -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) => (\n <Comp {...config?.defaults} {...props} ref={ref} />\n ));\n}\n"],"names":["mergeConfig","baseConfig","userConfig","res","_objectSpread","variations","key","variant","css","attrs","defaults","component","config","Comp","layout","_component","React","forwardRef","props","ref","createElement","_extends"],"mappings":";;;;AAYO,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAcpBC,UAAwF,EACxFC,UAAuF,EACtF;EACD,IAAMC,GAAG,GAAAC,cAAA,CAAAA,cAAA,CAAQH,EAAAA,EAAAA,UAAU,CAAKC,EAAAA,UAAU,CAAE,CAAA;EAE5C,IAAIC,GAAG,CAACE,UAAU,EAAE;AAChB;AACA;AACA,IAAA,KAAK,IAAMC,GAAG,IAAIH,GAAG,CAACE,UAAU,EAAE;AAC9B,MAAA,IAAME,OAAO,GAAGN,UAAU,CAACI,UAAU,CAACC,GAAG,CAAC,CAAA;AAE1CH,MAAAA,GAAG,CAACE,UAAU,CAACC,GAAG,CAAC,CAACE,GAAG,GAAGD,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEC,GAAG,CAAA;AACtC;AACA,MAAA,IAAI,CAACL,GAAG,CAACE,UAAU,CAACC,GAAG,CAAC,CAAK,MAAA,CAAA,IAAIC,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,IAAAA,OAAO,QAAM,EAAE;QAC5CJ,GAAG,CAACE,UAAU,CAACC,GAAG,CAAC,CAAK,MAAA,CAAA,GAAGC,OAAO,CAAK,MAAA,CAAA,CAAA;AAC3C,OAAA;AACA;AACA,MAAA,IAAIA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAEE,KAAK,EAAE;QAChBN,GAAG,CAACE,UAAU,CAACC,GAAG,CAAC,CAACG,KAAK,GAAGF,OAAO,CAACE,KAAK,CAAA;AAC7C,OAAA;AACJ,KAAA;AACJ,GAAA;;AAEA;EACA,KAAK,IAAMH,IAAG,IAAIL,UAAU,CAACS,QAAQ,IAAI,EAAE,EAAE;AACzC,IAAA,IAAI,EAAEJ,IAAG,IAAIH,GAAG,CAACO,QAAQ,CAAC,EAAE;MACxBP,GAAG,CAACO,QAAQ,CAACJ,IAAG,CAAC,GAAGL,UAAU,CAACS,QAAQ,CAACJ,IAAG,CAAC,CAAA;AAChD,KAAA;AACJ,GAAA;AAEA,EAAA,OAAOH,GAAG,CAAA;AAMd,EAAC;AAEM,SAASQ,SAASA,CASrBC,MAAqE,EACjB;EACpD,IAAMC,IAAI,GAAGD,MAAM,CAACE,MAAM,CAACC,UAAU,CAAEH,MAAqC,CAAC,CAAC,CAAA;AAE9E,EAAA,oBAAOI,KAAK,CAACC,UAAU,CAAmC,UAACC,KAAK,EAAEC,GAAG,EAAA;AAAA,IAAA,oBACjEH,KAAA,CAAAI,aAAA,CAACP,IAAI,EAAAQ,QAAA,CAAA,EAAA,EAAKT,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEF,QAAQ,EAAMQ,KAAK,EAAA;AAAEC,MAAAA,GAAG,EAAEA,GAAAA;AAAI,KAAA,CAAE,CAAC,CAAA;AAAA,GACtD,CAAC,CAAA;AACN;;;;"}
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.17591054284.0",
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": "f02c658730fece3da6adf36eb975e974650e02fd"
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
- onChange([]);
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
- if (!checkedCopy.get(item.value)) {
392
- checkedCopy.set(item.value, true);
393
- (0, _utils2.updateDescendants)(item, checkedCopy, true, valueToItemMap);
394
- } else {
395
- checkedCopy.set(item.value, false);
396
- (0, _utils2.updateDescendants)(item, checkedCopy, false);
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: false
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
- return /*#__PURE__*/ _react.default.createElement(Comp, _object_spread_props(_object_spread({}, config === null || config === void 0 ? void 0 : config.defaults, props), {
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
- onChange([]);
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
- if (!checkedCopy.get(item.value)) {
335
- checkedCopy.set(item.value, true);
336
- updateDescendants(item, checkedCopy, true, valueToItemMap);
337
- } else {
338
- checkedCopy.set(item.value, false);
339
- updateDescendants(item, checkedCopy, false);
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: false
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
- return /*#__PURE__*/ React.createElement(Comp, _object_spread_props(_object_spread({}, config === null || config === void 0 ? void 0 : config.defaults, props), {
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,2FAkiBtF,CAAC;AAEP,eAAO,MAAM,cAAc;;;mBApiBQ,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;CAyjB3F,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+C7D,CAAC,uCAEX,CAAlB;mGA+BL,CAAC"}
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"}