@salutejs/plasma-new-hope 0.121.0-dev.0 → 0.122.0-canary.1349.10334518391.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. package/cjs/components/Select/Select.js +13 -5
  2. package/cjs/components/Select/Select.js.map +1 -1
  3. package/cjs/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  4. package/cjs/components/Select/hooks/usePathMaps.js +2 -2
  5. package/cjs/components/Select/hooks/usePathMaps.js.map +1 -1
  6. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  7. package/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -1
  8. package/cjs/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  9. package/cjs/components/Select/ui/Target/Target.js +4 -2
  10. package/cjs/components/Select/ui/Target/Target.js.map +1 -1
  11. package/cjs/components/Select/ui/Target/ui/Button/Button.js +4 -2
  12. package/cjs/components/Select/ui/Target/ui/Button/Button.js.map +1 -1
  13. package/cjs/components/Select/utils/getButtonLabel.js +3 -2
  14. package/cjs/components/Select/utils/getButtonLabel.js.map +1 -1
  15. package/cjs/components/Select/utils/getView.js +27 -0
  16. package/cjs/components/Select/utils/getView.js.map +1 -0
  17. package/cjs/components/Select/utils/initialItemsTransform.js.map +1 -1
  18. package/cjs/components/Select/utils/updateAncestors.js.map +1 -1
  19. package/cjs/components/Select/utils/updateDescendants.js.map +1 -1
  20. package/cjs/components/Select/utils/updateSingleAncestors.js.map +1 -1
  21. package/emotion/cjs/components/Select/Select.js +12 -5
  22. package/emotion/cjs/components/Select/hooks/usePathMaps.js +2 -2
  23. package/emotion/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -1
  24. package/emotion/cjs/components/Select/ui/Target/Target.js +4 -2
  25. package/emotion/cjs/components/Select/ui/Target/ui/Button/Button.js +4 -2
  26. package/emotion/cjs/components/Select/utils/getButtonLabel.js +3 -2
  27. package/emotion/cjs/components/Select/utils/getView.js +26 -0
  28. package/emotion/cjs/components/Select/utils/index.js +8 -1
  29. package/emotion/es/components/Select/Select.js +13 -6
  30. package/emotion/es/components/Select/hooks/usePathMaps.js +2 -2
  31. package/emotion/es/components/Select/ui/Inner/ui/Item/Item.js +1 -1
  32. package/emotion/es/components/Select/ui/Target/Target.js +4 -2
  33. package/emotion/es/components/Select/ui/Target/ui/Button/Button.js +4 -2
  34. package/emotion/es/components/Select/utils/getButtonLabel.js +3 -2
  35. package/emotion/es/components/Select/utils/getView.js +20 -0
  36. package/emotion/es/components/Select/utils/index.js +2 -1
  37. package/es/components/Select/Select.js +13 -5
  38. package/es/components/Select/Select.js.map +1 -1
  39. package/es/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  40. package/es/components/Select/hooks/usePathMaps.js +2 -2
  41. package/es/components/Select/hooks/usePathMaps.js.map +1 -1
  42. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  43. package/es/components/Select/ui/Inner/ui/Item/Item.js +1 -1
  44. package/es/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  45. package/es/components/Select/ui/Target/Target.js +4 -2
  46. package/es/components/Select/ui/Target/Target.js.map +1 -1
  47. package/es/components/Select/ui/Target/ui/Button/Button.js +4 -2
  48. package/es/components/Select/ui/Target/ui/Button/Button.js.map +1 -1
  49. package/es/components/Select/utils/getButtonLabel.js +3 -2
  50. package/es/components/Select/utils/getButtonLabel.js.map +1 -1
  51. package/es/components/Select/utils/getView.js +23 -0
  52. package/es/components/Select/utils/getView.js.map +1 -0
  53. package/es/components/Select/utils/initialItemsTransform.js.map +1 -1
  54. package/es/components/Select/utils/updateAncestors.js.map +1 -1
  55. package/es/components/Select/utils/updateDescendants.js.map +1 -1
  56. package/es/components/Select/utils/updateSingleAncestors.js.map +1 -1
  57. package/package.json +2 -2
  58. package/styled-components/cjs/components/Select/Select.js +12 -5
  59. package/styled-components/cjs/components/Select/hooks/usePathMaps.js +2 -2
  60. package/styled-components/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -1
  61. package/styled-components/cjs/components/Select/ui/Target/Target.js +4 -2
  62. package/styled-components/cjs/components/Select/ui/Target/ui/Button/Button.js +4 -2
  63. package/styled-components/cjs/components/Select/utils/getButtonLabel.js +3 -2
  64. package/styled-components/cjs/components/Select/utils/getView.js +26 -0
  65. package/styled-components/cjs/components/Select/utils/index.js +8 -1
  66. package/styled-components/es/components/Select/Select.js +13 -6
  67. package/styled-components/es/components/Select/hooks/usePathMaps.js +2 -2
  68. package/styled-components/es/components/Select/ui/Inner/ui/Item/Item.js +1 -1
  69. package/styled-components/es/components/Select/ui/Target/Target.js +4 -2
  70. package/styled-components/es/components/Select/ui/Target/ui/Button/Button.js +4 -2
  71. package/styled-components/es/components/Select/utils/getButtonLabel.js +3 -2
  72. package/styled-components/es/components/Select/utils/getView.js +20 -0
  73. package/styled-components/es/components/Select/utils/index.js +2 -1
  74. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +123 -27
  75. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts.map +1 -1
  76. package/types/components/Select/Select.d.ts +3 -3
  77. package/types/components/Select/Select.d.ts.map +1 -1
  78. package/types/components/Select/Select.types.d.ts +137 -9
  79. package/types/components/Select/Select.types.d.ts.map +1 -1
  80. package/types/components/Select/hooks/useKeyboardNavigation.d.ts +6 -6
  81. package/types/components/Select/hooks/useKeyboardNavigation.d.ts.map +1 -1
  82. package/types/components/Select/hooks/usePathMaps.d.ts +6 -6
  83. package/types/components/Select/hooks/usePathMaps.d.ts.map +1 -1
  84. package/types/components/Select/index.d.ts +1 -1
  85. package/types/components/Select/index.d.ts.map +1 -1
  86. package/types/components/Select/ui/Inner/Inner.type.d.ts +4 -4
  87. package/types/components/Select/ui/Inner/Inner.type.d.ts.map +1 -1
  88. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts +18 -3
  89. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  90. package/types/components/Select/ui/Target/Target.d.ts.map +1 -1
  91. package/types/components/Select/ui/Target/Target.types.d.ts +4 -3
  92. package/types/components/Select/ui/Target/Target.types.d.ts.map +1 -1
  93. package/types/components/Select/ui/Target/ui/Button/Button.d.ts.map +1 -1
  94. package/types/components/Select/ui/Target/ui/Button/Button.types.d.ts +1 -1
  95. package/types/components/Select/ui/Target/ui/Button/Button.types.d.ts.map +1 -1
  96. package/types/components/Select/utils/getButtonLabel.d.ts +1 -1
  97. package/types/components/Select/utils/getButtonLabel.d.ts.map +1 -1
  98. package/types/components/Select/utils/getView.d.ts +3 -0
  99. package/types/components/Select/utils/getView.d.ts.map +1 -0
  100. package/types/components/Select/utils/index.d.ts +1 -0
  101. package/types/components/Select/utils/index.d.ts.map +1 -1
  102. package/types/components/Select/utils/initialItemsTransform.d.ts +2 -2
  103. package/types/components/Select/utils/initialItemsTransform.d.ts.map +1 -1
  104. package/types/components/Select/utils/updateAncestors.d.ts +2 -2
  105. package/types/components/Select/utils/updateAncestors.d.ts.map +1 -1
  106. package/types/components/Select/utils/updateDescendants.d.ts +2 -2
  107. package/types/components/Select/utils/updateDescendants.d.ts.map +1 -1
  108. package/types/components/Select/utils/updateSingleAncestors.d.ts +2 -2
  109. package/types/components/Select/utils/updateSingleAncestors.d.ts.map +1 -1
  110. package/types/examples/plasma_b2c/components/Select/Select.d.ts +123 -27
  111. package/types/examples/plasma_b2c/components/Select/Select.d.ts.map +1 -1
  112. package/types/examples/plasma_web/components/Select/Select.d.ts +123 -27
  113. package/types/examples/plasma_web/components/Select/Select.d.ts.map +1 -1
@@ -13,6 +13,7 @@ var initialItemsTransform = require('./utils/initialItemsTransform.js');
13
13
  var updateDescendants = require('./utils/updateDescendants.js');
14
14
  var updateAncestors = require('./utils/updateAncestors.js');
15
15
  var updateSingleAncestors = require('./utils/updateSingleAncestors.js');
16
+ var getView = require('./utils/getView.js');
16
17
  require('@linaria/react');
17
18
  require('@linaria/core');
18
19
  require('focus-visible');
@@ -27,7 +28,7 @@ var Select_styles = require('./Select.styles.js');
27
28
  var base = require('./variations/_view/base.js');
28
29
  var base$1 = require('./variations/_size/base.js');
29
30
 
30
- var _excluded = ["value", "onChange", "target", "items", "placement", "label", "labelPlacement", "placeholder", "helperText", "disabled", "view", "size", "listOverflow", "listHeight", "listWidth", "contentLeft", "onScrollBottom", "chipView", "variant", "portal", "renderValue", "renderItem"];
31
+ var _excluded = ["value", "onChange", "target", "items", "placement", "label", "labelPlacement", "placeholder", "helperText", "disabled", "view", "size", "listOverflow", "listHeight", "listWidth", "contentLeft", "onScrollBottom", "chipView", "variant", "portal", "renderValue", "renderItem", "status", "onItemSelect", "separator"];
31
32
  var Context = /*#__PURE__*/React.createContext({});
32
33
 
33
34
  /**
@@ -62,6 +63,9 @@ var selectRoot = function selectRoot(Root) {
62
63
  portal = props.portal,
63
64
  renderValue = props.renderValue,
64
65
  renderItem = props.renderItem,
66
+ status = props.status,
67
+ onItemSelect = props.onItemSelect,
68
+ separator = props.separator,
65
69
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
66
70
  var _useState = React.useState(outerValue || props.multiselect ? [] : ''),
67
71
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
@@ -75,7 +79,7 @@ var selectRoot = function selectRoot(Root) {
75
79
  setInternalValue(e);
76
80
  };
77
81
  var transformedItems = React.useMemo(function () {
78
- return initialItemsTransform.initialItemsTransform(items);
82
+ return initialItemsTransform.initialItemsTransform(items || []);
79
83
  }, [items]);
80
84
  var _usePathMaps = usePathMaps.usePathMaps(transformedItems),
81
85
  _usePathMaps2 = _rollupPluginBabelHelpers.slicedToArray(_usePathMaps, 4),
@@ -167,6 +171,9 @@ var selectRoot = function selectRoot(Root) {
167
171
  if (onChange) {
168
172
  onChange(isCurrentChecked ? '' : item.value);
169
173
  }
174
+ if (onItemSelect) {
175
+ onItemSelect(item);
176
+ }
170
177
  }
171
178
  };
172
179
  var handleChipClick = function handleChipClick(currentValue) {
@@ -228,7 +235,7 @@ var selectRoot = function selectRoot(Root) {
228
235
  return /*#__PURE__*/React.createElement(Root, _rollupPluginBabelHelpers.extends({
229
236
  ref: ref,
230
237
  size: size,
231
- view: view,
238
+ view: status ? getView.getView(status) : view,
232
239
  chipView: chipView
233
240
  }, rest), label && labelPlacement === 'outer' && target !== 'button-like' && /*#__PURE__*/React.createElement(Select_styles.OuterLabel, null, label), /*#__PURE__*/React.createElement(Context.Provider, {
234
241
  value: {
@@ -265,11 +272,12 @@ var selectRoot = function selectRoot(Root) {
265
272
  size: size,
266
273
  contentLeft: contentLeft,
267
274
  disabled: disabled,
268
- renderValue: renderValue
275
+ renderValue: renderValue,
276
+ separator: separator
269
277
  }),
270
278
  preventOverflow: false,
271
279
  closeOnOverlayClick: true
272
- }, /*#__PURE__*/React.createElement(Root, _rollupPluginBabelHelpers.extends({
280
+ }, items && /*#__PURE__*/React.createElement(Root, _rollupPluginBabelHelpers.extends({
273
281
  size: size
274
282
  }, rest), /*#__PURE__*/React.createElement(Select_styles.Ul, {
275
283
  role: "tree",
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, createContext, useLayoutEffect } from 'react';\n\nimport { RootProps } from '../../engines';\nimport { isEmpty, getPlacements } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors } from './utils';\nimport { Inner, Target } from './ui';\nimport { pathReducer, focusedPathReducer, focusedChipIndexReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { StyledPopover, Ul, base, OuterLabel, HelperText } from './Select.styles';\nimport type { SelectProps, ItemContext } from './Select.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed } from './ui/Inner/ui/Item/Item.types';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<SelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, SelectProps>((props, ref) => {\n const {\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement = 'outer',\n placeholder,\n helperText,\n disabled = false,\n view,\n size,\n listOverflow,\n listHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n ...rest\n } = props;\n\n const [internalValue, setInternalValue] = useState<string | string[]>(\n outerValue || props.multiselect ? [] : '',\n );\n\n const value = outerValue || internalValue;\n\n const onChange = (e: string | string[]) => {\n if (outerOnChange) {\n outerOnChange(e as any);\n }\n\n setInternalValue(e);\n };\n\n const transformedItems = useMemo(() => initialItemsTransform(items), [items]);\n\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap] = usePathMaps(transformedItems);\n\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [focusedChipIndex, dispatchFocusedChipIndex] = useReducer(focusedChipIndexReducer, null);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const targetRef = useOutsideClick<HTMLDivElement>(() => {\n if (focusedChipIndex != null) {\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n });\n\n const handleToggle = (opened: boolean) => {\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n };\n\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (props.multiselect) {\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true);\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 if (onChange) {\n onChange(newValues);\n }\n }\n };\n\n const handleItemClick = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n } else {\n if (e) {\n e.stopPropagation();\n }\n\n const checkedCopy = new Map(checked);\n\n const isCurrentChecked = checkedCopy.get(item.value);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isCurrentChecked) {\n checkedCopy.set(item.value, 'done');\n updateSingleAncestors(item, checkedCopy, 'dot');\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value);\n }\n }\n };\n\n const handleChipClick = (currentValue: string) => {\n handleCheckboxChange(valueToItemMap.get(currentValue)!);\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n value,\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleToggle,\n handlePressDown,\n focusedChipIndex,\n dispatchFocusedChipIndex,\n valueToItemMap,\n multiselect: props.multiselect,\n isTargetAmount: props.isTargetAmount,\n });\n\n const isCurrentListOpen = Boolean(path[0]);\n\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 checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n });\n } else {\n checkedCopy.set(value as string, 'done');\n updateSingleAncestors(valueToItemMap.get(value as string)!, checkedCopy, 'dot');\n }\n }\n\n setChecked(checkedCopy);\n }, [value]);\n\n return (\n <Root ref={ref} size={size} view={view} chipView={chipView} {...(rest as any)}>\n {label && labelPlacement === 'outer' && target !== 'button-like' && <OuterLabel>{label}</OuterLabel>}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n }}\n >\n <StyledPopover\n ref={targetRef}\n isOpen={isCurrentListOpen}\n placement={getPlacements(placement)}\n usePortal={Boolean(portal)}\n frame={portal}\n onToggle={handleToggle}\n trigger=\"click\"\n target={\n <Target\n opened={isCurrentListOpen}\n value={value}\n valueToItemMap={valueToItemMap}\n focusedPath={focusedPath}\n focusedToValueMap={focusedToValueMap}\n onChipClick={handleChipClick}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n focusedChipIndex={focusedChipIndex}\n labelPlacement={labelPlacement}\n selectProps={props}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n renderValue={renderValue}\n />\n }\n preventOverflow={false}\n closeOnOverlayClick\n >\n <Root size={size} {...(rest as any)}>\n <Ul\n role=\"tree\"\n id=\"tree_level_1\"\n listHeight={listHeight}\n listOverflow={listOverflow}\n onScroll={handleScroll}\n listWidth={listWidth}\n >\n {transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </Root>\n </StyledPopover>\n </Context.Provider>\n {helperText && target === 'textfield-like' && <HelperText>{helperText}</HelperText>}\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n chipView: 'default',\n size: 'm',\n },\n};\n"],"names":["Context","createContext","selectRoot","Root","forwardRef","props","ref","outerValue","value","outerOnChange","onChange","_props$target","target","items","_props$placement","placement","label","_props$labelPlacement","labelPlacement","placeholder","helperText","_props$disabled","disabled","view","size","listOverflow","listHeight","listWidth","contentLeft","onScrollBottom","chipView","_props$variant","variant","portal","renderValue","renderItem","rest","_objectWithoutProperties","_excluded","_useState","useState","multiselect","_useState2","_slicedToArray","internalValue","setInternalValue","e","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useReducer5","focusedChipIndexReducer","_useReducer6","focusedChipIndex","dispatchFocusedChipIndex","_useState3","_useState4","checked","setChecked","targetRef","useOutsideClick","type","handleToggle","opened","handleCheckboxChange","item","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","handleItemClick","isEmpty","stopPropagation","isCurrentChecked","_","updateSingleAncestors","handleChipClick","currentValue","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","isTargetAmount","onKeyDown","isCurrentListOpen","Boolean","useLayoutEffect","Array","isArray","val","React","createElement","_extends","OuterLabel","Provider","StyledPopover","isOpen","getPlacements","usePortal","frame","onToggle","trigger","Target","onChipClick","selectProps","preventOverflow","closeOnOverlayClick","Ul","role","id","onScroll","map","index","Inner","concat","currentLevel","HelperText","selectConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, createContext, useLayoutEffect } from 'react';\n\nimport { RootProps } from '../../engines';\nimport { isEmpty, getPlacements } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target } from './ui';\nimport { pathReducer, focusedPathReducer, focusedChipIndexReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { StyledPopover, Ul, base, OuterLabel, HelperText } from './Select.styles';\nimport type { ItemContext, MergedSelectProps } from './Select.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement = 'outer',\n placeholder,\n helperText,\n disabled = false,\n view,\n size,\n listOverflow,\n listHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n ...rest\n } = props;\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n outerValue || props.multiselect ? [] : '',\n );\n\n const value = outerValue || internalValue;\n\n const onChange = (e: string | number | Array<string | number>) => {\n if (outerOnChange) {\n outerOnChange(e as any);\n }\n\n setInternalValue(e);\n };\n\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap] = usePathMaps(transformedItems);\n\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [focusedChipIndex, dispatchFocusedChipIndex] = useReducer(focusedChipIndexReducer, null);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const targetRef = useOutsideClick<HTMLDivElement>(() => {\n if (focusedChipIndex != null) {\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n });\n\n const handleToggle = (opened: boolean) => {\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (props.multiselect) {\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true);\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 | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n if (onChange) {\n onChange(newValues);\n }\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n } else {\n if (e) {\n e.stopPropagation();\n }\n\n const checkedCopy = new Map(checked);\n\n const isCurrentChecked = checkedCopy.get(item.value);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isCurrentChecked) {\n checkedCopy.set(item.value, 'done');\n updateSingleAncestors(item, checkedCopy, 'dot');\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value);\n }\n\n if (onItemSelect) {\n onItemSelect(item);\n }\n }\n };\n\n const handleChipClick = (currentValue: string) => {\n handleCheckboxChange(valueToItemMap.get(currentValue)!);\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n value,\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleToggle,\n handlePressDown,\n focusedChipIndex,\n dispatchFocusedChipIndex,\n valueToItemMap,\n multiselect: props.multiselect,\n isTargetAmount: props.isTargetAmount,\n });\n\n const isCurrentListOpen = Boolean(path[0]);\n\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 checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n });\n } else {\n checkedCopy.set(value as string, 'done');\n updateSingleAncestors(valueToItemMap.get(value as string)!, checkedCopy, 'dot');\n }\n }\n\n setChecked(checkedCopy);\n }, [value]);\n\n return (\n <Root ref={ref} size={size} view={status ? getView(status) : view} chipView={chipView} {...(rest as any)}>\n {label && labelPlacement === 'outer' && target !== 'button-like' && <OuterLabel>{label}</OuterLabel>}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n }}\n >\n <StyledPopover\n ref={targetRef}\n isOpen={isCurrentListOpen}\n placement={getPlacements(placement)}\n usePortal={Boolean(portal)}\n frame={portal}\n onToggle={handleToggle}\n trigger=\"click\"\n target={\n <Target\n opened={isCurrentListOpen}\n value={value}\n valueToItemMap={valueToItemMap}\n focusedPath={focusedPath}\n focusedToValueMap={focusedToValueMap}\n onChipClick={handleChipClick}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n focusedChipIndex={focusedChipIndex}\n labelPlacement={labelPlacement}\n selectProps={props}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n renderValue={renderValue}\n separator={separator}\n />\n }\n preventOverflow={false}\n closeOnOverlayClick\n >\n {items && (\n <Root size={size} {...(rest as any)}>\n <Ul\n role=\"tree\"\n id=\"tree_level_1\"\n listHeight={listHeight}\n listOverflow={listOverflow}\n onScroll={handleScroll}\n listWidth={listWidth}\n >\n {transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </Root>\n )}\n </StyledPopover>\n </Context.Provider>\n {helperText && target === 'textfield-like' && <HelperText>{helperText}</HelperText>}\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n chipView: 'default',\n size: 'm',\n },\n};\n"],"names":["Context","createContext","selectRoot","Root","forwardRef","props","ref","outerValue","value","outerOnChange","onChange","_props$target","target","items","_props$placement","placement","label","_props$labelPlacement","labelPlacement","placeholder","helperText","_props$disabled","disabled","view","size","listOverflow","listHeight","listWidth","contentLeft","onScrollBottom","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","rest","_objectWithoutProperties","_excluded","_useState","useState","multiselect","_useState2","_slicedToArray","internalValue","setInternalValue","e","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useReducer5","focusedChipIndexReducer","_useReducer6","focusedChipIndex","dispatchFocusedChipIndex","_useState3","_useState4","checked","setChecked","targetRef","useOutsideClick","type","handleToggle","opened","handleCheckboxChange","item","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","handleItemClick","isEmpty","stopPropagation","isCurrentChecked","_","updateSingleAncestors","handleChipClick","currentValue","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","isTargetAmount","onKeyDown","isCurrentListOpen","Boolean","useLayoutEffect","Array","isArray","val","React","createElement","_extends","getView","OuterLabel","Provider","StyledPopover","isOpen","getPlacements","usePortal","frame","onToggle","trigger","Target","onChipClick","selectProps","preventOverflow","closeOnOverlayClick","Ul","role","id","onScroll","map","index","Inner","concat","currentLevel","HelperText","selectConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/Select/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import type { KeyboardEvent, Dispatch } from 'react';\nimport React from 'react';\n\nimport {\n PathAction,\n PathState,\n FocusedPathAction,\n FocusedPathState,\n FocusedChipIndexState,\n FocusedChipIndexAction,\n} from '../reducers';\nimport { SelectProps } from '../Select.types';\nimport type { ItemOptionTransformed } from '../ui/Inner/ui/Item/Item.types';\n\nimport { PathMapType, FocusedToValueMapType, ValueToItemMapType } from './usePathMaps';\n\nconst JUMP_SIZE = 10;\n\nexport const keys = {\n Enter: 'Enter',\n Space: 'Space',\n Tab: 'Tab',\n Escape: 'Escape',\n Backspace: 'Backspace',\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight',\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n Home: 'Home',\n End: 'End',\n PageUp: 'PageUp',\n PageDown: 'PageDown',\n};\n\nconst getFurtherPath = (focusedPath: FocusedPathState, focusedToValueMap: FocusedToValueMapType) => {\n const focusedPathAsString = focusedPath.reduce((acc, n) => `${acc}/${n}`, '').replace(/^(\\/)/, '');\n\n return focusedToValueMap.get(focusedPathAsString);\n};\n\ninterface Props {\n focusedPath: FocusedPathState;\n dispatchFocusedPath: Dispatch<FocusedPathAction>;\n path: PathState;\n dispatchPath: Dispatch<PathAction>;\n pathMap: PathMapType;\n focusedToValueMap: FocusedToValueMapType;\n handleToggle: (opened: boolean) => void;\n handlePressDown: (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => void;\n focusedChipIndex: FocusedChipIndexState;\n dispatchFocusedChipIndex: Dispatch<FocusedChipIndexAction>;\n value: string | string[];\n valueToItemMap: ValueToItemMapType;\n multiselect: SelectProps['multiselect'];\n isTargetAmount: SelectProps['isTargetAmount'];\n}\n\ninterface ReturnedProps {\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nexport const useKeyNavigation = ({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleToggle,\n handlePressDown,\n focusedChipIndex,\n dispatchFocusedChipIndex,\n value,\n valueToItemMap,\n multiselect,\n isTargetAmount,\n}: Props): ReturnedProps => {\n const currentIndex: number = focusedPath?.[focusedPath.length - 1] || 0;\n const currentLength: number = pathMap.get(path?.[focusedPath.length - 1]) || 0;\n\n const onKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n switch (event.code) {\n case keys.ArrowUp: {\n if (focusedPath.length) {\n if (currentIndex > 0) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex - 1 });\n }\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n handleToggle(true);\n }\n\n if (Array.isArray(value)) {\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n\n break;\n }\n\n case keys.ArrowDown: {\n if (focusedPath.length) {\n if (currentIndex + 1 < currentLength) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex + 1 });\n }\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n handleToggle(true);\n }\n\n if (Array.isArray(value)) {\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n\n break;\n }\n\n case keys.ArrowLeft: {\n if (path[0]) {\n if (focusedPath.length) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n } else {\n dispatchFocusedPath({ type: 'return_prev_focus' });\n }\n }\n\n if (path.length === 1) {\n handleToggle(false);\n }\n } else if (Array.isArray(value) && !isTargetAmount) {\n dispatchFocusedChipIndex({ type: 'moveLeft' });\n }\n\n break;\n }\n\n case keys.ArrowRight: {\n if (path[0]) {\n if (!focusedPath.length) {\n break;\n }\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap);\n\n if (currentItem?.items) {\n if (path.length > focusedPath.length) {\n dispatchFocusedPath({ type: 'add_focus', value: 0 });\n } else {\n dispatchPath({ type: 'added_next_level', value: currentItem.value.toString() });\n }\n }\n } else if (Array.isArray(value) && !isTargetAmount) {\n dispatchFocusedChipIndex({ type: 'moveRight', total: value.length });\n }\n\n break;\n }\n\n case keys.Backspace: {\n if (!multiselect) break;\n\n if (focusedChipIndex !== null) {\n const currentItem = valueToItemMap.get(value[focusedChipIndex])!;\n\n handlePressDown(currentItem);\n\n if (value.length === 1) {\n dispatchFocusedChipIndex({ type: 'reset' });\n\n break;\n }\n\n if (focusedChipIndex === value.length - 1) {\n dispatchFocusedChipIndex({ type: 'moveLeft' });\n\n break;\n }\n }\n\n break;\n }\n\n case keys.Space: {\n event.preventDefault();\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap);\n\n if (!path[0]) {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n break;\n }\n\n if (!currentItem || currentItem?.disabled) {\n break;\n }\n\n handlePressDown(currentItem);\n\n break;\n }\n\n case keys.Enter: {\n event.preventDefault();\n\n if (Array.isArray(value)) {\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap)!;\n\n if (currentItem?.disabled) {\n break;\n }\n\n if (!path[0]) {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n break;\n }\n\n if (currentItem?.items) {\n if (path.length > focusedPath.length) {\n dispatchFocusedPath({ type: 'add_focus', value: 0 });\n } else {\n dispatchPath({ type: 'added_next_level', value: currentItem.value.toString() });\n }\n\n break;\n }\n\n handlePressDown(currentItem);\n\n break;\n }\n\n case keys.Tab:\n case keys.Escape: {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n dispatchFocusedChipIndex({ type: 'reset' });\n handleToggle(false);\n\n break;\n }\n\n case keys.Home: {\n if (path[0]) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: 0 });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n\n handleToggle(true);\n }\n\n break;\n }\n\n case keys.End: {\n if (path[0]) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentLength - 1 });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'change_last_focus', value: (pathMap.get('root') || 0) - 1 });\n\n handleToggle(true);\n }\n\n break;\n }\n\n case keys.PageUp: {\n if (!path[0]) {\n break;\n }\n\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n if (currentIndex <= JUMP_SIZE) {\n dispatchFocusedPath({ type: 'change_last_focus', value: 0 });\n } else {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex - JUMP_SIZE });\n }\n\n break;\n }\n\n case keys.PageDown: {\n if (!path[0]) {\n break;\n }\n\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n if (currentLength - currentIndex <= JUMP_SIZE) {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentLength - 1 });\n } else {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex + JUMP_SIZE });\n }\n\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["JUMP_SIZE","keys","Enter","Space","Tab","Escape","Backspace","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown","getFurtherPath","focusedPath","focusedToValueMap","focusedPathAsString","reduce","acc","n","concat","replace","get","useKeyNavigation","_ref","dispatchFocusedPath","path","dispatchPath","pathMap","handleToggle","handlePressDown","focusedChipIndex","dispatchFocusedChipIndex","value","valueToItemMap","multiselect","isTargetAmount","currentIndex","length","currentLength","onKeyDown","event","code","type","Array","isArray","currentItem","items","toString","total","preventDefault","disabled"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/Select/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import type { KeyboardEvent, Dispatch } from 'react';\nimport React from 'react';\n\nimport {\n PathAction,\n PathState,\n FocusedPathAction,\n FocusedPathState,\n FocusedChipIndexState,\n FocusedChipIndexAction,\n} from '../reducers';\nimport { SelectProps } from '../Select.types';\nimport type { MergedDropdownNodeTransformed } from '../ui/Inner/ui/Item/Item.types';\n\nimport { PathMapType, FocusedToValueMapType, ValueToItemMapType } from './usePathMaps';\n\nconst JUMP_SIZE = 10;\n\nexport const keys = {\n Enter: 'Enter',\n Space: 'Space',\n Tab: 'Tab',\n Escape: 'Escape',\n Backspace: 'Backspace',\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight',\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n Home: 'Home',\n End: 'End',\n PageUp: 'PageUp',\n PageDown: 'PageDown',\n};\n\nconst getFurtherPath = (focusedPath: FocusedPathState, focusedToValueMap: FocusedToValueMapType) => {\n const focusedPathAsString = focusedPath.reduce((acc, n) => `${acc}/${n}`, '').replace(/^(\\/)/, '');\n\n return focusedToValueMap.get(focusedPathAsString);\n};\n\ntype Props = {\n focusedPath: FocusedPathState;\n dispatchFocusedPath: Dispatch<FocusedPathAction>;\n path: PathState;\n dispatchPath: Dispatch<PathAction>;\n pathMap: PathMapType;\n focusedToValueMap: FocusedToValueMapType;\n handleToggle: (opened: boolean) => void;\n handlePressDown: (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => void;\n focusedChipIndex: FocusedChipIndexState;\n dispatchFocusedChipIndex: Dispatch<FocusedChipIndexAction>;\n value: string | string[];\n valueToItemMap: ValueToItemMapType;\n multiselect: SelectProps['multiselect'];\n isTargetAmount: SelectProps['isTargetAmount'];\n};\n\ntype ReturnedProps = {\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n};\n\nexport const useKeyNavigation = ({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleToggle,\n handlePressDown,\n focusedChipIndex,\n dispatchFocusedChipIndex,\n value,\n valueToItemMap,\n multiselect,\n isTargetAmount,\n}: Props): ReturnedProps => {\n const currentIndex: number = focusedPath?.[focusedPath.length - 1] || 0;\n const currentLength: number = pathMap.get(path?.[focusedPath.length - 1]) || 0;\n\n const onKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n switch (event.code) {\n case keys.ArrowUp: {\n if (focusedPath.length) {\n if (currentIndex > 0) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex - 1 });\n }\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n handleToggle(true);\n }\n\n if (Array.isArray(value)) {\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n\n break;\n }\n\n case keys.ArrowDown: {\n if (focusedPath.length) {\n if (currentIndex + 1 < currentLength) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex + 1 });\n }\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n handleToggle(true);\n }\n\n if (Array.isArray(value)) {\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n\n break;\n }\n\n case keys.ArrowLeft: {\n if (path[0]) {\n if (focusedPath.length) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n } else {\n dispatchFocusedPath({ type: 'return_prev_focus' });\n }\n }\n\n if (path.length === 1) {\n handleToggle(false);\n }\n } else if (Array.isArray(value) && !isTargetAmount) {\n dispatchFocusedChipIndex({ type: 'moveLeft' });\n }\n\n break;\n }\n\n case keys.ArrowRight: {\n if (path[0]) {\n if (!focusedPath.length) {\n break;\n }\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap);\n\n if (currentItem?.items) {\n if (path.length > focusedPath.length) {\n dispatchFocusedPath({ type: 'add_focus', value: 0 });\n } else {\n dispatchPath({ type: 'added_next_level', value: currentItem.value.toString() });\n }\n }\n } else if (Array.isArray(value) && !isTargetAmount) {\n dispatchFocusedChipIndex({ type: 'moveRight', total: value.length });\n }\n\n break;\n }\n\n case keys.Backspace: {\n if (!multiselect) break;\n\n if (focusedChipIndex !== null) {\n const currentItem = valueToItemMap.get(value[focusedChipIndex])!;\n\n handlePressDown(currentItem);\n\n if (value.length === 1) {\n dispatchFocusedChipIndex({ type: 'reset' });\n\n break;\n }\n\n if (focusedChipIndex === value.length - 1) {\n dispatchFocusedChipIndex({ type: 'moveLeft' });\n\n break;\n }\n }\n\n break;\n }\n\n case keys.Space: {\n event.preventDefault();\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap);\n\n if (!path[0]) {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n break;\n }\n\n if (!currentItem || currentItem?.disabled) {\n break;\n }\n\n handlePressDown(currentItem);\n\n break;\n }\n\n case keys.Enter: {\n event.preventDefault();\n\n if (Array.isArray(value)) {\n dispatchFocusedChipIndex({ type: 'reset' });\n }\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap)!;\n\n if (currentItem?.disabled) {\n break;\n }\n\n if (!path[0]) {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n break;\n }\n\n if (currentItem?.items) {\n if (path.length > focusedPath.length) {\n dispatchFocusedPath({ type: 'add_focus', value: 0 });\n } else {\n dispatchPath({ type: 'added_next_level', value: currentItem.value.toString() });\n }\n\n break;\n }\n\n handlePressDown(currentItem);\n\n break;\n }\n\n case keys.Tab:\n case keys.Escape: {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n dispatchFocusedChipIndex({ type: 'reset' });\n handleToggle(false);\n\n break;\n }\n\n case keys.Home: {\n if (path[0]) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: 0 });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n\n handleToggle(true);\n }\n\n break;\n }\n\n case keys.End: {\n if (path[0]) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentLength - 1 });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'change_last_focus', value: (pathMap.get('root') || 0) - 1 });\n\n handleToggle(true);\n }\n\n break;\n }\n\n case keys.PageUp: {\n if (!path[0]) {\n break;\n }\n\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n if (currentIndex <= JUMP_SIZE) {\n dispatchFocusedPath({ type: 'change_last_focus', value: 0 });\n } else {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex - JUMP_SIZE });\n }\n\n break;\n }\n\n case keys.PageDown: {\n if (!path[0]) {\n break;\n }\n\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n if (currentLength - currentIndex <= JUMP_SIZE) {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentLength - 1 });\n } else {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex + JUMP_SIZE });\n }\n\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["JUMP_SIZE","keys","Enter","Space","Tab","Escape","Backspace","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown","getFurtherPath","focusedPath","focusedToValueMap","focusedPathAsString","reduce","acc","n","concat","replace","get","useKeyNavigation","_ref","dispatchFocusedPath","path","dispatchPath","pathMap","handleToggle","handlePressDown","focusedChipIndex","dispatchFocusedChipIndex","value","valueToItemMap","multiselect","isTargetAmount","currentIndex","length","currentLength","onKeyDown","event","code","type","Array","isArray","currentItem","items","toString","total","preventDefault","disabled"],"mappings":"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"}
@@ -12,10 +12,10 @@ var usePathMaps = function usePathMaps(items) {
12
12
  var focusedToValueMap = new Map();
13
13
  var valueToCheckedMap = new Map();
14
14
  var valueToItemMap = new Map();
15
- pathMap.set('root', items.length);
15
+ pathMap.set('root', (items === null || items === void 0 ? void 0 : items.length) || 0);
16
16
  var rec = function rec(items) {
17
17
  var prevIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
18
- items.forEach(function (item, index) {
18
+ items === null || items === void 0 || items.forEach(function (item, index) {
19
19
  var value = item.value,
20
20
  innerItems = item.items;
21
21
  var currIndex = "".concat(prevIndex, "/").concat(index).replace(/^(\/)/, '');
@@ -1 +1 @@
1
- {"version":3,"file":"usePathMaps.js","sources":["../../../../src/components/Select/hooks/usePathMaps.ts"],"sourcesContent":["import { isEmpty } from '../../../utils';\nimport { SelectProps } from '../Select.types';\nimport { ItemOptionTransformed } from '../ui/Inner/ui/Item/Item.types';\n\nexport type PathMapType = Map<string | number, number>;\nexport type FocusedToValueMapType = Map<string, ItemOptionTransformed>;\nexport type ValueToCheckedMapType = Map<ItemOptionTransformed['value'], boolean | 'done' | 'dot' | 'indeterminate'>;\nexport type ValueToItemMapType = Map<ItemOptionTransformed['value'], ItemOptionTransformed>;\n\n// Рекурсивно проходим по дереву items и создаем 4 мапы: открытых путей, фокусов, выбранных элементов и айтемов.\nexport const usePathMaps = (items: SelectProps['items']) => {\n const pathMap: PathMapType = new Map();\n const focusedToValueMap: FocusedToValueMapType = new Map();\n const valueToCheckedMap: ValueToCheckedMapType = new Map();\n const valueToItemMap: ValueToItemMapType = new Map();\n\n pathMap.set('root', items.length);\n\n const rec = (items: SelectProps['items'], prevIndex = '') => {\n items.forEach((item: ItemOptionTransformed, index: number) => {\n const { value, items: innerItems } = item;\n\n const currIndex = `${prevIndex}/${index}`.replace(/^(\\/)/, '');\n focusedToValueMap.set(currIndex, item);\n\n valueToCheckedMap.set(value, false);\n\n if (isEmpty(innerItems) || !innerItems) {\n valueToItemMap.set(value, item);\n } else {\n pathMap.set(value, innerItems.length);\n rec(innerItems, currIndex);\n }\n });\n };\n rec(items);\n\n return [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap] as [\n PathMapType,\n FocusedToValueMapType,\n ValueToCheckedMapType,\n ValueToItemMapType,\n ];\n};\n"],"names":["usePathMaps","items","pathMap","Map","focusedToValueMap","valueToCheckedMap","valueToItemMap","set","length","rec","prevIndex","arguments","undefined","forEach","item","index","value","innerItems","currIndex","concat","replace","isEmpty"],"mappings":";;;;;;;;AASA;IACaA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAA2B,EAAK;AACxD,EAAA,IAAMC,OAAoB,GAAG,IAAIC,GAAG,EAAE,CAAA;AACtC,EAAA,IAAMC,iBAAwC,GAAG,IAAID,GAAG,EAAE,CAAA;AAC1D,EAAA,IAAME,iBAAwC,GAAG,IAAIF,GAAG,EAAE,CAAA;AAC1D,EAAA,IAAMG,cAAkC,GAAG,IAAIH,GAAG,EAAE,CAAA;EAEpDD,OAAO,CAACK,GAAG,CAAC,MAAM,EAAEN,KAAK,CAACO,MAAM,CAAC,CAAA;AAEjC,EAAA,IAAMC,GAAG,GAAG,SAANA,GAAGA,CAAIR,KAA2B,EAAqB;AAAA,IAAA,IAAnBS,SAAS,GAAAC,SAAA,CAAAH,MAAA,GAAA,CAAA,IAAAG,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AACpDV,IAAAA,KAAK,CAACY,OAAO,CAAC,UAACC,IAA2B,EAAEC,KAAa,EAAK;AAC1D,MAAA,IAAQC,KAAK,GAAwBF,IAAI,CAAjCE,KAAK;QAASC,UAAU,GAAKH,IAAI,CAA1Bb,KAAK,CAAA;AAEpB,MAAA,IAAMiB,SAAS,GAAG,EAAA,CAAAC,MAAA,CAAGT,SAAS,EAAAS,GAAAA,CAAAA,CAAAA,MAAA,CAAIJ,KAAK,EAAGK,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAC9DhB,MAAAA,iBAAiB,CAACG,GAAG,CAACW,SAAS,EAAEJ,IAAI,CAAC,CAAA;AAEtCT,MAAAA,iBAAiB,CAACE,GAAG,CAACS,KAAK,EAAE,KAAK,CAAC,CAAA;AAEnC,MAAA,IAAIK,eAAO,CAACJ,UAAU,CAAC,IAAI,CAACA,UAAU,EAAE;AACpCX,QAAAA,cAAc,CAACC,GAAG,CAACS,KAAK,EAAEF,IAAI,CAAC,CAAA;AACnC,OAAC,MAAM;QACHZ,OAAO,CAACK,GAAG,CAACS,KAAK,EAAEC,UAAU,CAACT,MAAM,CAAC,CAAA;AACrCC,QAAAA,GAAG,CAACQ,UAAU,EAAEC,SAAS,CAAC,CAAA;AAC9B,OAAA;AACJ,KAAC,CAAC,CAAA;GACL,CAAA;EACDT,GAAG,CAACR,KAAK,CAAC,CAAA;EAEV,OAAO,CAACC,OAAO,EAAEE,iBAAiB,EAAEC,iBAAiB,EAAEC,cAAc,CAAC,CAAA;AAM1E;;;;"}
1
+ {"version":3,"file":"usePathMaps.js","sources":["../../../../src/components/Select/hooks/usePathMaps.ts"],"sourcesContent":["import { isEmpty } from '../../../utils';\nimport { MergedSelectProps } from '../Select.types';\nimport { MergedDropdownNodeTransformed } from '../ui/Inner/ui/Item/Item.types';\n\nexport type PathMapType = Map<string | number, number>;\nexport type FocusedToValueMapType = Map<string, MergedDropdownNodeTransformed>;\nexport type ValueToCheckedMapType = Map<\n MergedDropdownNodeTransformed['value'],\n boolean | 'done' | 'dot' | 'indeterminate'\n>;\nexport type ValueToItemMapType = Map<MergedDropdownNodeTransformed['value'], MergedDropdownNodeTransformed>;\n\n// Рекурсивно проходим по дереву items и создаем 4 мапы: открытых путей, фокусов, выбранных элементов и айтемов.\nexport const usePathMaps = (items: MergedSelectProps['items']) => {\n const pathMap: PathMapType = new Map();\n const focusedToValueMap: FocusedToValueMapType = new Map();\n const valueToCheckedMap: ValueToCheckedMapType = new Map();\n const valueToItemMap: ValueToItemMapType = new Map();\n\n pathMap.set('root', items?.length || 0);\n\n const rec = (items: MergedSelectProps['items'], prevIndex = '') => {\n items?.forEach((item: MergedDropdownNodeTransformed, index: number) => {\n const { value, items: innerItems } = item;\n\n const currIndex = `${prevIndex}/${index}`.replace(/^(\\/)/, '');\n focusedToValueMap.set(currIndex, item);\n\n valueToCheckedMap.set(value, false);\n\n if (isEmpty(innerItems) || !innerItems) {\n valueToItemMap.set(value, item);\n } else {\n pathMap.set(value, innerItems.length);\n rec(innerItems, currIndex);\n }\n });\n };\n rec(items);\n\n return [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap] as [\n PathMapType,\n FocusedToValueMapType,\n ValueToCheckedMapType,\n ValueToItemMapType,\n ];\n};\n"],"names":["usePathMaps","items","pathMap","Map","focusedToValueMap","valueToCheckedMap","valueToItemMap","set","length","rec","prevIndex","arguments","undefined","forEach","item","index","value","innerItems","currIndex","concat","replace","isEmpty"],"mappings":";;;;;;;;AAYA;IACaA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAiC,EAAK;AAC9D,EAAA,IAAMC,OAAoB,GAAG,IAAIC,GAAG,EAAE,CAAA;AACtC,EAAA,IAAMC,iBAAwC,GAAG,IAAID,GAAG,EAAE,CAAA;AAC1D,EAAA,IAAME,iBAAwC,GAAG,IAAIF,GAAG,EAAE,CAAA;AAC1D,EAAA,IAAMG,cAAkC,GAAG,IAAIH,GAAG,EAAE,CAAA;AAEpDD,EAAAA,OAAO,CAACK,GAAG,CAAC,MAAM,EAAE,CAAAN,KAAK,KAALA,IAAAA,IAAAA,KAAK,uBAALA,KAAK,CAAEO,MAAM,KAAI,CAAC,CAAC,CAAA;AAEvC,EAAA,IAAMC,GAAG,GAAG,SAANA,GAAGA,CAAIR,KAAiC,EAAqB;AAAA,IAAA,IAAnBS,SAAS,GAAAC,SAAA,CAAAH,MAAA,GAAA,CAAA,IAAAG,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;IAC1DV,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,IAALA,KAAK,CAAEY,OAAO,CAAC,UAACC,IAAmC,EAAEC,KAAa,EAAK;AACnE,MAAA,IAAQC,KAAK,GAAwBF,IAAI,CAAjCE,KAAK;QAASC,UAAU,GAAKH,IAAI,CAA1Bb,KAAK,CAAA;AAEpB,MAAA,IAAMiB,SAAS,GAAG,EAAA,CAAAC,MAAA,CAAGT,SAAS,EAAAS,GAAAA,CAAAA,CAAAA,MAAA,CAAIJ,KAAK,EAAGK,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAC9DhB,MAAAA,iBAAiB,CAACG,GAAG,CAACW,SAAS,EAAEJ,IAAI,CAAC,CAAA;AAEtCT,MAAAA,iBAAiB,CAACE,GAAG,CAACS,KAAK,EAAE,KAAK,CAAC,CAAA;AAEnC,MAAA,IAAIK,eAAO,CAACJ,UAAU,CAAC,IAAI,CAACA,UAAU,EAAE;AACpCX,QAAAA,cAAc,CAACC,GAAG,CAACS,KAAK,EAAEF,IAAI,CAAC,CAAA;AACnC,OAAC,MAAM;QACHZ,OAAO,CAACK,GAAG,CAACS,KAAK,EAAEC,UAAU,CAACT,MAAM,CAAC,CAAA;AACrCC,QAAAA,GAAG,CAACQ,UAAU,EAAEC,SAAS,CAAC,CAAA;AAC9B,OAAA;AACJ,KAAC,CAAC,CAAA;GACL,CAAA;EACDT,GAAG,CAACR,KAAK,CAAC,CAAA;EAEV,OAAO,CAACC,OAAO,EAAEE,iBAAiB,EAAEC,iBAAiB,EAAEC,cAAc,CAAC,CAAA;AAM1E;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Inner.js","sources":["../../../../../src/components/Select/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\n\nimport { isEmpty } from '../../../../utils';\nimport { Ul, StyledPopover } from '../../Select.styles';\n\nimport type { ItemOptionTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const listId = `tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <StyledPopover\n isOpen={isCurrentListOpen}\n usePortal={false}\n placement=\"right-start\"\n trigger=\"click\"\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n onToggle={handleToggle}\n isFocusTrapped={false}\n preventOverflow={false}\n >\n <Ul role=\"group\" id={listId} isInnerUl listWidth={listWidth}>\n {item.items?.map((innerItem: ItemOptionTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </StyledPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","_ref","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","listId","concat","nextLevel","isEmpty","items","_item$items","React","createElement","StyledPopover","isOpen","usePortal","placement","trigger","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","onToggle","isFocusTrapped","preventOverflow","Ul","role","id","isInnerUl","map","innerItem","innerIndex","key"],"mappings":"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"}
1
+ {"version":3,"file":"Inner.js","sources":["../../../../../src/components/Select/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\n\nimport { isEmpty } from '../../../../utils';\nimport { Ul, StyledPopover } from '../../Select.styles';\n\nimport type { MergedDropdownNodeTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const listId = `tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <StyledPopover\n isOpen={isCurrentListOpen}\n usePortal={false}\n placement=\"right-start\"\n trigger=\"click\"\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n onToggle={handleToggle}\n isFocusTrapped={false}\n preventOverflow={false}\n >\n <Ul role=\"group\" id={listId} isInnerUl listWidth={listWidth}>\n {item.items?.map((innerItem: MergedDropdownNodeTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </StyledPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","_ref","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","listId","concat","nextLevel","isEmpty","items","_item$items","React","createElement","StyledPopover","isOpen","usePortal","placement","trigger","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","onToggle","isFocusTrapped","preventOverflow","Ul","role","id","isInnerUl","map","innerItem","innerIndex","key"],"mappings":"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"}
@@ -87,7 +87,7 @@ var Item = function Item(_ref) {
87
87
  }))), !multiselect && checked.get(item.value) === 'done' && /*#__PURE__*/React.createElement(IconDone.IconDone, {
88
88
  size: sizeToIconSize.sizeToIconSize(size, variant),
89
89
  color: "inherit"
90
- })), contentLeft && /*#__PURE__*/React.createElement(Item_styles.StyledContentLeft, null, contentLeft), /*#__PURE__*/React.createElement(Item_styles.StyledText, null, renderItem && renderItem(value, label) || label), contentRight && /*#__PURE__*/React.createElement(Item_styles.StyledContentRight, null, contentRight), !isEmpty.isEmpty(item.items) && /*#__PURE__*/React.createElement(Item_styles.DisclosureIconWrapper, null, /*#__PURE__*/React.createElement(IconDisclosureRightCentered.IconDisclosureRightCentered, {
90
+ })), contentLeft && /*#__PURE__*/React.createElement(Item_styles.StyledContentLeft, null, contentLeft), /*#__PURE__*/React.createElement(Item_styles.StyledText, null, renderItem && renderItem(value.toString(), label) || label), contentRight && /*#__PURE__*/React.createElement(Item_styles.StyledContentRight, null, contentRight), !isEmpty.isEmpty(item.items) && /*#__PURE__*/React.createElement(Item_styles.DisclosureIconWrapper, null, /*#__PURE__*/React.createElement(IconDisclosureRightCentered.IconDisclosureRightCentered, {
91
91
  size: sizeToIconSize.sizeToIconSize(size, variant),
92
92
  color: "inherit"
93
93
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sources":["../../../../../../../src/components/Select/ui/Inner/ui/Item/Item.tsx"],"sourcesContent":["import React, { useEffect, useRef, FC, useContext } from 'react';\n\nimport { sizeToIconSize } from '../../../../utils';\nimport { classes } from '../../../../Select.tokens';\nimport { cx, isEmpty } from '../../../../../../utils';\nimport { IconDisclosureRightCentered, IconDone } from '../../../../../_Icon';\nimport { Context } from '../../../../Select';\n\nimport { ItemProps } from './Item.types';\nimport {\n StyledContentLeft,\n StyledContentRight,\n StyledText,\n Wrapper,\n DisclosureIconWrapper,\n StyledCheckbox,\n IconWrapper,\n StyledIndicator,\n StyledCheckboxWrapper,\n} from './Item.styles';\n\nexport const Item: FC<ItemProps> = ({\n item,\n path,\n currentLevel,\n index,\n ariaControls,\n ariaExpanded,\n ariaLevel,\n ariaLabel,\n}) => {\n const { value, label, disabled, contentLeft, contentRight } = item;\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n checked,\n multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n } = useContext(Context);\n\n const isDisabledClassName = disabled ? classes.dropdownItemIsDisabled : undefined;\n const focusedClass =\n currentLevel === focusedPath.length - 1 && index === focusedPath?.[currentLevel]\n ? classes.dropdownItemIsFocused\n : undefined;\n const activeClass = value === path?.[currentLevel + 1] ? classes.dropdownItemIsActive : undefined;\n\n useEffect(() => {\n if (focusedClass && ref?.current) {\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }, [focusedClass]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n e.stopPropagation();\n\n handleCheckboxChange(item);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (disabled) return;\n\n handleItemClick(item, e);\n };\n\n return (\n <Wrapper\n className={cx(isDisabledClassName, focusedClass, activeClass)}\n id={value.toString()}\n ref={ref}\n onClick={handleClick}\n variant={variant}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-level={ariaLevel}\n aria-label={ariaLabel}\n role=\"treeitem\"\n >\n <IconWrapper variant={variant}>\n {multiselect && (\n <StyledCheckboxWrapper onClick={(e) => e.stopPropagation()}>\n <StyledCheckbox\n checked={Boolean(checked.get(item.value))}\n indeterminate={checked.get(item.value) === 'indeterminate'}\n onChange={handleChange}\n className={classes.selectItemCheckbox}\n />\n </StyledCheckboxWrapper>\n )}\n\n {!multiselect && checked.get(item.value) === 'dot' && <StyledIndicator size=\"s\" view=\"default\" />}\n\n {!multiselect && checked.get(item.value) === 'done' && (\n <IconDone size={sizeToIconSize(size, variant)} color=\"inherit\" />\n )}\n </IconWrapper>\n\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n\n <StyledText>{(renderItem && renderItem(value, label)) || label}</StyledText>\n\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n\n {!isEmpty(item.items) && (\n <DisclosureIconWrapper>\n <IconDisclosureRightCentered size={sizeToIconSize(size, variant)} color=\"inherit\" />\n </DisclosureIconWrapper>\n )}\n </Wrapper>\n );\n};\n"],"names":["Item","_ref","item","path","currentLevel","index","ariaControls","ariaExpanded","ariaLevel","ariaLabel","value","label","disabled","contentLeft","contentRight","ref","useRef","_useContext","useContext","Context","focusedPath","checked","multiselect","size","handleCheckboxChange","handleItemClick","variant","renderItem","isDisabledClassName","classes","dropdownItemIsDisabled","undefined","focusedClass","length","dropdownItemIsFocused","activeClass","dropdownItemIsActive","useEffect","current","scrollIntoView","behavior","block","inline","handleChange","e","stopPropagation","handleClick","React","createElement","Wrapper","className","cx","id","toString","onClick","role","IconWrapper","StyledCheckboxWrapper","StyledCheckbox","Boolean","get","indeterminate","onChange","selectItemCheckbox","_StyledIndicator","StyledIndicator","view","IconDone","sizeToIconSize","color","StyledContentLeft","StyledText","StyledContentRight","isEmpty","items","DisclosureIconWrapper","IconDisclosureRightCentered"],"mappings":";;;;;;;;;;;;;;;;IAqBaA,IAAmB,GAAG,SAAtBA,IAAmBA,CAAAC,IAAA,EAS1B;AAAA,EAAA,IARFC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IACZC,OAAK,GAAAJ,IAAA,CAALI,KAAK;IACLC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IACZC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,SAAS,GAAAP,IAAA,CAATO,SAAS;IACTC,SAAS,GAAAR,IAAA,CAATQ,SAAS,CAAA;AAET,EAAA,IAAQC,KAAK,GAAiDR,IAAI,CAA1DQ,KAAK;IAAEC,KAAK,GAA0CT,IAAI,CAAnDS,KAAK;IAAEC,QAAQ,GAAgCV,IAAI,CAA5CU,QAAQ;IAAEC,WAAW,GAAmBX,IAAI,CAAlCW,WAAW;IAAEC,YAAY,GAAKZ,IAAI,CAArBY,YAAY,CAAA;AACzD,EAAA,IAAMC,GAAG,GAAGC,YAAM,CAAuB,IAAI,CAAC,CAAA;AAE9C,EAAA,IAAAC,WAAA,GASIC,gBAAU,CAACC,cAAO,CAAC;IARnBC,WAAW,GAAAH,WAAA,CAAXG,WAAW;IACXC,OAAO,GAAAJ,WAAA,CAAPI,OAAO;IACPC,WAAW,GAAAL,WAAA,CAAXK,WAAW;IACXC,IAAI,GAAAN,WAAA,CAAJM,IAAI;IACJC,oBAAoB,GAAAP,WAAA,CAApBO,oBAAoB;IACpBC,eAAe,GAAAR,WAAA,CAAfQ,eAAe;IACfC,OAAO,GAAAT,WAAA,CAAPS,OAAO;IACPC,UAAU,GAAAV,WAAA,CAAVU,UAAU,CAAA;EAGd,IAAMC,mBAAmB,GAAGhB,QAAQ,GAAGiB,qBAAO,CAACC,sBAAsB,GAAGC,SAAS,CAAA;EACjF,IAAMC,YAAY,GACd5B,YAAY,KAAKgB,WAAW,CAACa,MAAM,GAAG,CAAC,IAAI5B,OAAK,MAAKe,WAAW,KAAXA,IAAAA,IAAAA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAGhB,YAAY,CAAC,CAAA,GAC1EyB,qBAAO,CAACK,qBAAqB,GAC7BH,SAAS,CAAA;AACnB,EAAA,IAAMI,WAAW,GAAGzB,KAAK,MAAKP,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAGC,YAAY,GAAG,CAAC,CAAC,CAAA,GAAGyB,qBAAO,CAACO,oBAAoB,GAAGL,SAAS,CAAA;AAEjGM,EAAAA,eAAS,CAAC,YAAM;IACZ,IAAIL,YAAY,IAAIjB,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,IAAAA,GAAG,CAAEuB,OAAO,EAAE;AAC9BvB,MAAAA,GAAG,CAACuB,OAAO,CAACC,cAAc,CAAC;AACvBC,QAAAA,QAAQ,EAAE,QAAQ;AAClBC,QAAAA,KAAK,EAAE,QAAQ;AACfC,QAAAA,MAAM,EAAE,QAAA;AACZ,OAAC,CAAC,CAAA;AACN,KAAA;AACJ,GAAC,EAAE,CAACV,YAAY,CAAC,CAAC,CAAA;AAElB,EAAA,IAAMW,YAAY,GAAG,SAAfA,YAAYA,CAAIC,CAAsC,EAAK;AAC7D,IAAA,IAAIhC,QAAQ,EAAE,OAAA;IAEdgC,CAAC,CAACC,eAAe,EAAE,CAAA;IAEnBrB,oBAAoB,CAACtB,IAAI,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,IAAM4C,WAAW,GAAG,SAAdA,WAAWA,CAAIF,CAAgC,EAAK;AACtD,IAAA,IAAIhC,QAAQ,EAAE,OAAA;AAEda,IAAAA,eAAe,CAACvB,IAAI,EAAE0C,CAAC,CAAC,CAAA;GAC3B,CAAA;AAED,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACC,mBAAO,EAAA;IACJC,SAAS,EAAEC,QAAE,CAACvB,mBAAmB,EAAEI,YAAY,EAAEG,WAAW,CAAE;AAC9DiB,IAAAA,EAAE,EAAE1C,KAAK,CAAC2C,QAAQ,EAAG;AACrBtC,IAAAA,GAAG,EAAEA,GAAI;AACTuC,IAAAA,OAAO,EAAER,WAAY;AACrBpB,IAAAA,OAAO,EAAEA,OAAQ;AACjB,IAAA,eAAA,EAAepB,YAAa;AAC5B,IAAA,eAAA,EAAeC,YAAa;AAC5B,IAAA,YAAA,EAAYC,SAAU;AACtB,IAAA,YAAA,EAAYC,SAAU;AACtB8C,IAAAA,IAAI,EAAC,UAAA;AAAU,GAAA,eAEfR,KAAA,CAAAC,aAAA,CAACQ,uBAAW,EAAA;AAAC9B,IAAAA,OAAO,EAAEA,OAAAA;AAAQ,GAAA,EACzBJ,WAAW,iBACRyB,KAAA,CAAAC,aAAA,CAACS,iCAAqB,EAAA;IAACH,OAAO,EAAE,SAAAA,OAAAA,CAACV,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAACC,eAAe,EAAE,CAAA;AAAA,KAAA;AAAC,GAAA,eACvDE,KAAA,CAAAC,aAAA,CAACU,0BAAc,EAAA;IACXrC,OAAO,EAAEsC,OAAO,CAACtC,OAAO,CAACuC,GAAG,CAAC1D,IAAI,CAACQ,KAAK,CAAC,CAAE;IAC1CmD,aAAa,EAAExC,OAAO,CAACuC,GAAG,CAAC1D,IAAI,CAACQ,KAAK,CAAC,KAAK,eAAgB;AAC3DoD,IAAAA,QAAQ,EAAEnB,YAAa;IACvBO,SAAS,EAAErB,qBAAO,CAACkC,kBAAAA;GACtB,CACkB,CAC1B,EAEA,CAACzC,WAAW,IAAID,OAAO,CAACuC,GAAG,CAAC1D,IAAI,CAACQ,KAAK,CAAC,KAAK,KAAK,KAAAsD,gBAAA,KAAAA,gBAAA,gBAAIjB,KAAA,CAAAC,aAAA,CAACiB,2BAAe,EAAA;AAAC1C,IAAAA,IAAI,EAAC,GAAG;AAAC2C,IAAAA,IAAI,EAAC,SAAA;GAAW,CAAC,IAEhG,CAAC5C,WAAW,IAAID,OAAO,CAACuC,GAAG,CAAC1D,IAAI,CAACQ,KAAK,CAAC,KAAK,MAAM,iBAC/CqC,KAAA,CAAAC,aAAA,CAACmB,iBAAQ,EAAA;AAAC5C,IAAAA,IAAI,EAAE6C,6BAAc,CAAC7C,IAAI,EAAEG,OAAO,CAAE;AAAC2C,IAAAA,KAAK,EAAC,SAAA;AAAS,GAAE,CAE3D,CAAC,EAEbxD,WAAW,iBAAIkC,KAAA,CAAAC,aAAA,CAACsB,6BAAiB,EAAEzD,IAAAA,EAAAA,WAA+B,CAAC,eAEpEkC,KAAA,CAAAC,aAAA,CAACuB,sBAAU,EAAA,IAAA,EAAG5C,UAAU,IAAIA,UAAU,CAACjB,KAAK,EAAEC,KAAK,CAAC,IAAKA,KAAkB,CAAC,EAE3EG,YAAY,iBAAIiC,KAAA,CAAAC,aAAA,CAACwB,8BAAkB,EAAA,IAAA,EAAE1D,YAAiC,CAAC,EAEvE,CAAC2D,eAAO,CAACvE,IAAI,CAACwE,KAAK,CAAC,iBACjB3B,KAAA,CAAAC,aAAA,CAAC2B,iCAAqB,EAClB5B,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAAC4B,uDAA2B,EAAA;AAACrD,IAAAA,IAAI,EAAE6C,6BAAc,CAAC7C,IAAI,EAAEG,OAAO,CAAE;AAAC2C,IAAAA,KAAK,EAAC,SAAA;GAAW,CAChE,CAEtB,CAAC,CAAA;AAElB;;;;"}
1
+ {"version":3,"file":"Item.js","sources":["../../../../../../../src/components/Select/ui/Inner/ui/Item/Item.tsx"],"sourcesContent":["import React, { useEffect, useRef, FC, useContext } from 'react';\n\nimport { sizeToIconSize } from '../../../../utils';\nimport { classes } from '../../../../Select.tokens';\nimport { cx, isEmpty } from '../../../../../../utils';\nimport { IconDisclosureRightCentered, IconDone } from '../../../../../_Icon';\nimport { Context } from '../../../../Select';\n\nimport { ItemProps } from './Item.types';\nimport {\n StyledContentLeft,\n StyledContentRight,\n StyledText,\n Wrapper,\n DisclosureIconWrapper,\n StyledCheckbox,\n IconWrapper,\n StyledIndicator,\n StyledCheckboxWrapper,\n} from './Item.styles';\n\nexport const Item: FC<ItemProps> = ({\n item,\n path,\n currentLevel,\n index,\n ariaControls,\n ariaExpanded,\n ariaLevel,\n ariaLabel,\n}) => {\n const { value, label, disabled, contentLeft, contentRight } = item;\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n checked,\n multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n } = useContext(Context);\n\n const isDisabledClassName = disabled ? classes.dropdownItemIsDisabled : undefined;\n const focusedClass =\n currentLevel === focusedPath.length - 1 && index === focusedPath?.[currentLevel]\n ? classes.dropdownItemIsFocused\n : undefined;\n const activeClass = value === path?.[currentLevel + 1] ? classes.dropdownItemIsActive : undefined;\n\n useEffect(() => {\n if (focusedClass && ref?.current) {\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }, [focusedClass]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n e.stopPropagation();\n\n handleCheckboxChange(item);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (disabled) return;\n\n handleItemClick(item, e);\n };\n\n return (\n <Wrapper\n className={cx(isDisabledClassName, focusedClass, activeClass)}\n id={value.toString()}\n ref={ref}\n onClick={handleClick}\n variant={variant}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-level={ariaLevel}\n aria-label={ariaLabel}\n role=\"treeitem\"\n >\n <IconWrapper variant={variant}>\n {multiselect && (\n <StyledCheckboxWrapper onClick={(e) => e.stopPropagation()}>\n <StyledCheckbox\n checked={Boolean(checked.get(item.value))}\n indeterminate={checked.get(item.value) === 'indeterminate'}\n onChange={handleChange}\n className={classes.selectItemCheckbox}\n />\n </StyledCheckboxWrapper>\n )}\n\n {!multiselect && checked.get(item.value) === 'dot' && <StyledIndicator size=\"s\" view=\"default\" />}\n\n {!multiselect && checked.get(item.value) === 'done' && (\n <IconDone size={sizeToIconSize(size, variant)} color=\"inherit\" />\n )}\n </IconWrapper>\n\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n\n <StyledText>{(renderItem && renderItem(value.toString(), label)) || label}</StyledText>\n\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n\n {!isEmpty(item.items) && (\n <DisclosureIconWrapper>\n <IconDisclosureRightCentered size={sizeToIconSize(size, variant)} color=\"inherit\" />\n </DisclosureIconWrapper>\n )}\n </Wrapper>\n );\n};\n"],"names":["Item","_ref","item","path","currentLevel","index","ariaControls","ariaExpanded","ariaLevel","ariaLabel","value","label","disabled","contentLeft","contentRight","ref","useRef","_useContext","useContext","Context","focusedPath","checked","multiselect","size","handleCheckboxChange","handleItemClick","variant","renderItem","isDisabledClassName","classes","dropdownItemIsDisabled","undefined","focusedClass","length","dropdownItemIsFocused","activeClass","dropdownItemIsActive","useEffect","current","scrollIntoView","behavior","block","inline","handleChange","e","stopPropagation","handleClick","React","createElement","Wrapper","className","cx","id","toString","onClick","role","IconWrapper","StyledCheckboxWrapper","StyledCheckbox","Boolean","get","indeterminate","onChange","selectItemCheckbox","_StyledIndicator","StyledIndicator","view","IconDone","sizeToIconSize","color","StyledContentLeft","StyledText","StyledContentRight","isEmpty","items","DisclosureIconWrapper","IconDisclosureRightCentered"],"mappings":"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"}
@@ -22,7 +22,8 @@ var Target = function Target(_ref) {
22
22
  renderValue = _ref.renderValue,
23
23
  focusedPath = _ref.focusedPath,
24
24
  focusedToValueMap = _ref.focusedToValueMap,
25
- selectProps = _ref.selectProps;
25
+ selectProps = _ref.selectProps,
26
+ separator = _ref.separator;
26
27
  return selectProps.target === 'button-like' ? /*#__PURE__*/React.createElement(Button.Button, {
27
28
  opened: opened,
28
29
  value: value,
@@ -34,7 +35,8 @@ var Target = function Target(_ref) {
34
35
  renderValue: renderValue,
35
36
  focusedPath: focusedPath,
36
37
  focusedToValueMap: focusedToValueMap,
37
- selectProps: selectProps
38
+ selectProps: selectProps,
39
+ separator: separator
38
40
  }) : /*#__PURE__*/React.createElement(Textfield.Textfield, {
39
41
  opened: opened,
40
42
  value: value,
@@ -1 +1 @@
1
- {"version":3,"file":"Target.js","sources":["../../../../../src/components/Select/ui/Target/Target.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { TargetProps } from './Target.types';\nimport { Button, Textfield } from './ui';\n\nexport const Target: React.FC<TargetProps> = ({\n value,\n opened,\n valueToItemMap,\n onChipClick,\n label,\n placeholder,\n onKeyDown,\n focusedChipIndex,\n labelPlacement,\n size,\n contentLeft,\n disabled,\n renderValue,\n focusedPath,\n focusedToValueMap,\n selectProps,\n}) => {\n return selectProps.target === 'button-like' ? (\n <Button\n opened={opened}\n value={value}\n valueToItemMap={valueToItemMap}\n onKeyDown={onKeyDown}\n label={label}\n size={size}\n disabled={disabled}\n renderValue={renderValue}\n focusedPath={focusedPath}\n focusedToValueMap={focusedToValueMap}\n selectProps={selectProps}\n />\n ) : (\n <Textfield\n opened={opened}\n value={value}\n valueToItemMap={valueToItemMap}\n onChipClick={onChipClick}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n focusedChipIndex={focusedChipIndex}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n renderValue={renderValue}\n focusedPath={focusedPath}\n focusedToValueMap={focusedToValueMap}\n selectProps={selectProps}\n />\n );\n};\n"],"names":["Target","_ref","value","opened","valueToItemMap","onChipClick","label","placeholder","onKeyDown","focusedChipIndex","labelPlacement","size","contentLeft","disabled","renderValue","focusedPath","focusedToValueMap","selectProps","target","React","createElement","Button","Textfield"],"mappings":";;;;;;;;IAKaA,MAA6B,GAAG,SAAhCA,MAA6BA,CAAAC,IAAA,EAiBpC;AAAA,EAAA,IAhBFC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,cAAc,GAAAH,IAAA,CAAdG,cAAc;IACdC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,WAAW,GAAAN,IAAA,CAAXM,WAAW;IACXC,SAAS,GAAAP,IAAA,CAATO,SAAS;IACTC,gBAAgB,GAAAR,IAAA,CAAhBQ,gBAAgB;IAChBC,cAAc,GAAAT,IAAA,CAAdS,cAAc;IACdC,IAAI,GAAAV,IAAA,CAAJU,IAAI;IACJC,WAAW,GAAAX,IAAA,CAAXW,WAAW;IACXC,QAAQ,GAAAZ,IAAA,CAARY,QAAQ;IACRC,WAAW,GAAAb,IAAA,CAAXa,WAAW;IACXC,WAAW,GAAAd,IAAA,CAAXc,WAAW;IACXC,iBAAiB,GAAAf,IAAA,CAAjBe,iBAAiB;IACjBC,WAAW,GAAAhB,IAAA,CAAXgB,WAAW,CAAA;EAEX,OAAOA,WAAW,CAACC,MAAM,KAAK,aAAa,gBACvCC,KAAA,CAAAC,aAAA,CAACC,aAAM,EAAA;AACHlB,IAAAA,MAAM,EAAEA,MAAO;AACfD,IAAAA,KAAK,EAAEA,KAAM;AACbE,IAAAA,cAAc,EAAEA,cAAe;AAC/BI,IAAAA,SAAS,EAAEA,SAAU;AACrBF,IAAAA,KAAK,EAAEA,KAAM;AACbK,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,WAAW,EAAEA,WAAAA;AAAY,GAC5B,CAAC,gBAEFE,KAAA,CAAAC,aAAA,CAACE,mBAAS,EAAA;AACNnB,IAAAA,MAAM,EAAEA,MAAO;AACfD,IAAAA,KAAK,EAAEA,KAAM;AACbE,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,WAAW,EAAEA,WAAAA;AAAY,GAC5B,CACJ,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"Target.js","sources":["../../../../../src/components/Select/ui/Target/Target.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { TargetProps } from './Target.types';\nimport { Button, Textfield } from './ui';\n\nexport const Target: React.FC<TargetProps> = ({\n value,\n opened,\n valueToItemMap,\n onChipClick,\n label,\n placeholder,\n onKeyDown,\n focusedChipIndex,\n labelPlacement,\n size,\n contentLeft,\n disabled,\n renderValue,\n focusedPath,\n focusedToValueMap,\n selectProps,\n separator,\n}) => {\n return selectProps.target === 'button-like' ? (\n <Button\n opened={opened}\n value={value}\n valueToItemMap={valueToItemMap}\n onKeyDown={onKeyDown}\n label={label}\n size={size}\n disabled={disabled}\n renderValue={renderValue}\n focusedPath={focusedPath}\n focusedToValueMap={focusedToValueMap}\n selectProps={selectProps}\n separator={separator}\n />\n ) : (\n <Textfield\n opened={opened}\n value={value}\n valueToItemMap={valueToItemMap}\n onChipClick={onChipClick}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n focusedChipIndex={focusedChipIndex}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n renderValue={renderValue}\n focusedPath={focusedPath}\n focusedToValueMap={focusedToValueMap}\n selectProps={selectProps}\n />\n );\n};\n"],"names":["Target","_ref","value","opened","valueToItemMap","onChipClick","label","placeholder","onKeyDown","focusedChipIndex","labelPlacement","size","contentLeft","disabled","renderValue","focusedPath","focusedToValueMap","selectProps","separator","target","React","createElement","Button","Textfield"],"mappings":";;;;;;;;IAKaA,MAA6B,GAAG,SAAhCA,MAA6BA,CAAAC,IAAA,EAkBpC;AAAA,EAAA,IAjBFC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,cAAc,GAAAH,IAAA,CAAdG,cAAc;IACdC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,WAAW,GAAAN,IAAA,CAAXM,WAAW;IACXC,SAAS,GAAAP,IAAA,CAATO,SAAS;IACTC,gBAAgB,GAAAR,IAAA,CAAhBQ,gBAAgB;IAChBC,cAAc,GAAAT,IAAA,CAAdS,cAAc;IACdC,IAAI,GAAAV,IAAA,CAAJU,IAAI;IACJC,WAAW,GAAAX,IAAA,CAAXW,WAAW;IACXC,QAAQ,GAAAZ,IAAA,CAARY,QAAQ;IACRC,WAAW,GAAAb,IAAA,CAAXa,WAAW;IACXC,WAAW,GAAAd,IAAA,CAAXc,WAAW;IACXC,iBAAiB,GAAAf,IAAA,CAAjBe,iBAAiB;IACjBC,WAAW,GAAAhB,IAAA,CAAXgB,WAAW;IACXC,SAAS,GAAAjB,IAAA,CAATiB,SAAS,CAAA;EAET,OAAOD,WAAW,CAACE,MAAM,KAAK,aAAa,gBACvCC,KAAA,CAAAC,aAAA,CAACC,aAAM,EAAA;AACHnB,IAAAA,MAAM,EAAEA,MAAO;AACfD,IAAAA,KAAK,EAAEA,KAAM;AACbE,IAAAA,cAAc,EAAEA,cAAe;AAC/BI,IAAAA,SAAS,EAAEA,SAAU;AACrBF,IAAAA,KAAK,EAAEA,KAAM;AACbK,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GACxB,CAAC,gBAEFE,KAAA,CAAAC,aAAA,CAACE,mBAAS,EAAA;AACNpB,IAAAA,MAAM,EAAEA,MAAO;AACfD,IAAAA,KAAK,EAAEA,KAAM;AACbE,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,WAAW,EAAEA,WAAAA;AAAY,GAC5B,CACJ,CAAA;AACL;;;;"}
@@ -20,7 +20,8 @@ var Button = function Button(_ref) {
20
20
  renderValue = _ref.renderValue,
21
21
  focusedPath = _ref.focusedPath,
22
22
  focusedToValueMap = _ref.focusedToValueMap,
23
- selectProps = _ref.selectProps;
23
+ selectProps = _ref.selectProps,
24
+ separator = _ref.separator;
24
25
  var withArrowInverse = opened ? Select_tokens.classes.arrowInverse : undefined;
25
26
  var getActiveDescendant = function getActiveDescendant() {
26
27
  var _focusedToValueMap$ge;
@@ -50,7 +51,8 @@ var Button = function Button(_ref) {
50
51
  valueToItemMap: valueToItemMap,
51
52
  label: label,
52
53
  renderValue: renderValue,
53
- selectProps: selectProps
54
+ selectProps: selectProps,
55
+ separator: separator
54
56
  }))));
55
57
  };
56
58
 
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../../../../src/components/Select/ui/Target/ui/Button/Button.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cx } from '../../../../../../utils';\nimport { classes } from '../../../../Select.tokens';\nimport { getButtonLabel, sizeToIconSize } from '../../../../utils';\n\nimport { ButtonProps } from './Button.types';\nimport { StyledButton, StyledArrow, Label, ButtonWrapper, IconArrowWrapper } from './Button.styles';\n\nexport const Button: React.FC<ButtonProps> = ({\n opened,\n value,\n valueToItemMap,\n onKeyDown,\n label,\n size,\n disabled,\n renderValue,\n focusedPath,\n focusedToValueMap,\n selectProps,\n}) => {\n const withArrowInverse = opened ? classes.arrowInverse : undefined;\n\n const getActiveDescendant = () => {\n const focusedPathAsString = focusedPath.reduce((acc, n) => `${acc}/${n}`, '').replace(/^(\\/)/, '');\n return focusedToValueMap?.get(focusedPathAsString)?.value.toString();\n };\n\n return (\n <ButtonWrapper>\n <StyledButton\n stretching=\"filled\"\n onKeyDown={onKeyDown}\n className={opened ? classes.selectWithoutBoxShadow : undefined}\n disabled={disabled}\n contentRight={\n <IconArrowWrapper>\n <StyledArrow\n size={sizeToIconSize(size)}\n color=\"inherit\"\n className={cx(classes.selectTargetArrow, withArrowInverse)}\n />\n </IconArrowWrapper>\n }\n role=\"combobox\"\n aria-controls=\"tree_level_1\"\n aria-expanded={opened}\n aria-activedescendant={getActiveDescendant()}\n aria-label={label}\n renderTarget={Boolean(selectProps.renderTarget)}\n >\n {selectProps.renderTarget ? (\n selectProps.renderTarget(value as any)\n ) : (\n <Label>\n {getButtonLabel({\n value,\n valueToItemMap,\n label,\n renderValue,\n selectProps,\n })}\n </Label>\n )}\n </StyledButton>\n </ButtonWrapper>\n );\n};\n"],"names":["Button","_ref","opened","value","valueToItemMap","onKeyDown","label","size","disabled","renderValue","focusedPath","focusedToValueMap","selectProps","withArrowInverse","classes","arrowInverse","undefined","getActiveDescendant","_focusedToValueMap$ge","focusedPathAsString","reduce","acc","n","concat","replace","get","toString","React","createElement","ButtonWrapper","StyledButton","stretching","className","selectWithoutBoxShadow","contentRight","IconArrowWrapper","StyledArrow","sizeToIconSize","color","cx","selectTargetArrow","role","renderTarget","Boolean","Label","getButtonLabel"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../../../../src/components/Select/ui/Target/ui/Button/Button.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cx } from '../../../../../../utils';\nimport { classes } from '../../../../Select.tokens';\nimport { getButtonLabel, sizeToIconSize } from '../../../../utils';\n\nimport { ButtonProps } from './Button.types';\nimport { StyledButton, StyledArrow, Label, ButtonWrapper, IconArrowWrapper } from './Button.styles';\n\nexport const Button: React.FC<ButtonProps> = ({\n opened,\n value,\n valueToItemMap,\n onKeyDown,\n label,\n size,\n disabled,\n renderValue,\n focusedPath,\n focusedToValueMap,\n selectProps,\n separator,\n}) => {\n const withArrowInverse = opened ? classes.arrowInverse : undefined;\n\n const getActiveDescendant = () => {\n const focusedPathAsString = focusedPath.reduce((acc, n) => `${acc}/${n}`, '').replace(/^(\\/)/, '');\n return focusedToValueMap?.get(focusedPathAsString)?.value.toString();\n };\n\n return (\n <ButtonWrapper>\n <StyledButton\n stretching=\"filled\"\n onKeyDown={onKeyDown}\n className={opened ? classes.selectWithoutBoxShadow : undefined}\n disabled={disabled}\n contentRight={\n <IconArrowWrapper>\n <StyledArrow\n size={sizeToIconSize(size)}\n color=\"inherit\"\n className={cx(classes.selectTargetArrow, withArrowInverse)}\n />\n </IconArrowWrapper>\n }\n role=\"combobox\"\n aria-controls=\"tree_level_1\"\n aria-expanded={opened}\n aria-activedescendant={getActiveDescendant()}\n aria-label={label}\n renderTarget={Boolean(selectProps.renderTarget)}\n >\n {selectProps.renderTarget ? (\n selectProps.renderTarget(value as any)\n ) : (\n <Label>\n {getButtonLabel({\n value,\n valueToItemMap,\n label,\n renderValue,\n selectProps,\n separator,\n })}\n </Label>\n )}\n </StyledButton>\n </ButtonWrapper>\n );\n};\n"],"names":["Button","_ref","opened","value","valueToItemMap","onKeyDown","label","size","disabled","renderValue","focusedPath","focusedToValueMap","selectProps","separator","withArrowInverse","classes","arrowInverse","undefined","getActiveDescendant","_focusedToValueMap$ge","focusedPathAsString","reduce","acc","n","concat","replace","get","toString","React","createElement","ButtonWrapper","StyledButton","stretching","className","selectWithoutBoxShadow","contentRight","IconArrowWrapper","StyledArrow","sizeToIconSize","color","cx","selectTargetArrow","role","renderTarget","Boolean","Label","getButtonLabel"],"mappings":"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"}
@@ -19,7 +19,8 @@ var getButtonLabel = function getButtonLabel(_ref3) {
19
19
  valueToItemMap = _ref3.valueToItemMap,
20
20
  label = _ref3.label,
21
21
  renderValue = _ref3.renderValue,
22
- selectProps = _ref3.selectProps;
22
+ selectProps = _ref3.selectProps,
23
+ separator = _ref3.separator;
23
24
  if (isEmpty.isEmpty(value)) {
24
25
  return label || '';
25
26
  }
@@ -33,7 +34,7 @@ var getButtonLabel = function getButtonLabel(_ref3) {
33
34
  valueToItemMap: valueToItemMap,
34
35
  renderValue: renderValue
35
36
  });
36
- }).join(', ');
37
+ }).join(separator || ', ');
37
38
  }
38
39
  return getLabel({
39
40
  renderValue: renderValue,
@@ -1 +1 @@
1
- {"version":3,"file":"getButtonLabel.js","sources":["../../../../src/components/Select/utils/getButtonLabel.ts"],"sourcesContent":["import { GetButtonLabelProps } from '../ui/Target/ui/Button/Button.types';\nimport { isEmpty } from '../../../utils';\n\nconst getLabel = ({\n value,\n valueToItemMap,\n renderValue,\n}: Omit<GetButtonLabelProps, 'label' | 'selectProps'>): string => {\n const { label } = valueToItemMap.get(value?.toString())!;\n\n return renderValue ? renderValue(value as string, label) : label;\n};\n\nexport const getButtonLabel = ({\n value,\n valueToItemMap,\n label,\n renderValue,\n selectProps,\n}: GetButtonLabelProps): string => {\n if (isEmpty(value)) {\n return label || '';\n }\n\n if (selectProps.multiselect && selectProps.isTargetAmount) {\n return `Выбрано: ${value.length}`;\n }\n\n if (selectProps.multiselect && Array.isArray(value)) {\n return value\n ?.map((itemValue) =>\n getLabel({\n value: itemValue,\n valueToItemMap,\n renderValue,\n }),\n )\n .join(', ');\n }\n\n return getLabel({\n renderValue,\n value,\n valueToItemMap,\n });\n};\n"],"names":["getLabel","_ref","value","valueToItemMap","renderValue","_ref2","get","toString","label","getButtonLabel","_ref3","selectProps","isEmpty","multiselect","isTargetAmount","concat","length","Array","isArray","map","itemValue","join"],"mappings":";;;;;;;;AAGA,IAAMA,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAIoD;AAAA,EAAA,IAH9DC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IACdC,WAAW,GAAAH,IAAA,CAAXG,WAAW,CAAA;AAEX,EAAA,IAAAC,KAAA,GAAkBF,cAAc,CAACG,GAAG,CAACJ,KAAK,KAALA,IAAAA,IAAAA,KAAK,uBAALA,KAAK,CAAEK,QAAQ,EAAE,CAAC;IAA/CC,KAAK,GAAAH,KAAA,CAALG,KAAK,CAAA;EAEb,OAAOJ,WAAW,GAAGA,WAAW,CAACF,KAAK,EAAYM,KAAK,CAAC,GAAGA,KAAK,CAAA;AACpE,CAAC,CAAA;IAEYC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,KAAA,EAMQ;AAAA,EAAA,IAL/BR,KAAK,GAAAQ,KAAA,CAALR,KAAK;IACLC,cAAc,GAAAO,KAAA,CAAdP,cAAc;IACdK,KAAK,GAAAE,KAAA,CAALF,KAAK;IACLJ,WAAW,GAAAM,KAAA,CAAXN,WAAW;IACXO,WAAW,GAAAD,KAAA,CAAXC,WAAW,CAAA;AAEX,EAAA,IAAIC,eAAO,CAACV,KAAK,CAAC,EAAE;IAChB,OAAOM,KAAK,IAAI,EAAE,CAAA;AACtB,GAAA;AAEA,EAAA,IAAIG,WAAW,CAACE,WAAW,IAAIF,WAAW,CAACG,cAAc,EAAE;AACvD,IAAA,OAAA,8CAAA,CAAAC,MAAA,CAAmBb,KAAK,CAACc,MAAM,CAAA,CAAA;AACnC,GAAA;EAEA,IAAIL,WAAW,CAACE,WAAW,IAAII,KAAK,CAACC,OAAO,CAAChB,KAAK,CAAC,EAAE;IACjD,OAAOA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CACNiB,GAAG,CAAC,UAACC,SAAS,EAAA;AAAA,MAAA,OACZpB,QAAQ,CAAC;AACLE,QAAAA,KAAK,EAAEkB,SAAS;AAChBjB,QAAAA,cAAc,EAAdA,cAAc;AACdC,QAAAA,WAAW,EAAXA,WAAAA;AACJ,OAAC,CAAC,CAAA;AAAA,KACN,CAAC,CACAiB,IAAI,CAAC,IAAI,CAAC,CAAA;AACnB,GAAA;AAEA,EAAA,OAAOrB,QAAQ,CAAC;AACZI,IAAAA,WAAW,EAAXA,WAAW;AACXF,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,cAAc,EAAdA,cAAAA;AACJ,GAAC,CAAC,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"getButtonLabel.js","sources":["../../../../src/components/Select/utils/getButtonLabel.ts"],"sourcesContent":["import { GetButtonLabelProps } from '../ui/Target/ui/Button/Button.types';\nimport { isEmpty } from '../../../utils';\n\nconst getLabel = ({\n value,\n valueToItemMap,\n renderValue,\n}: Omit<GetButtonLabelProps, 'label' | 'selectProps'>): string => {\n const { label } = valueToItemMap.get(value?.toString())!;\n\n return renderValue ? renderValue(value as string, label) : label;\n};\n\nexport const getButtonLabel = ({\n value,\n valueToItemMap,\n label,\n renderValue,\n selectProps,\n separator,\n}: GetButtonLabelProps): string => {\n if (isEmpty(value)) {\n return label || '';\n }\n\n if (selectProps.multiselect && selectProps.isTargetAmount) {\n return `Выбрано: ${value.length}`;\n }\n\n if (selectProps.multiselect && Array.isArray(value)) {\n return value\n ?.map((itemValue) =>\n getLabel({\n value: itemValue,\n valueToItemMap,\n renderValue,\n }),\n )\n .join(separator || ', ');\n }\n\n return getLabel({\n renderValue,\n value,\n valueToItemMap,\n });\n};\n"],"names":["getLabel","_ref","value","valueToItemMap","renderValue","_ref2","get","toString","label","getButtonLabel","_ref3","selectProps","separator","isEmpty","multiselect","isTargetAmount","concat","length","Array","isArray","map","itemValue","join"],"mappings":";;;;;;;;AAGA,IAAMA,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAIoD;AAAA,EAAA,IAH9DC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IACdC,WAAW,GAAAH,IAAA,CAAXG,WAAW,CAAA;AAEX,EAAA,IAAAC,KAAA,GAAkBF,cAAc,CAACG,GAAG,CAACJ,KAAK,KAALA,IAAAA,IAAAA,KAAK,uBAALA,KAAK,CAAEK,QAAQ,EAAE,CAAC;IAA/CC,KAAK,GAAAH,KAAA,CAALG,KAAK,CAAA;EAEb,OAAOJ,WAAW,GAAGA,WAAW,CAACF,KAAK,EAAYM,KAAK,CAAC,GAAGA,KAAK,CAAA;AACpE,CAAC,CAAA;IAEYC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,KAAA,EAOQ;AAAA,EAAA,IAN/BR,KAAK,GAAAQ,KAAA,CAALR,KAAK;IACLC,cAAc,GAAAO,KAAA,CAAdP,cAAc;IACdK,KAAK,GAAAE,KAAA,CAALF,KAAK;IACLJ,WAAW,GAAAM,KAAA,CAAXN,WAAW;IACXO,WAAW,GAAAD,KAAA,CAAXC,WAAW;IACXC,SAAS,GAAAF,KAAA,CAATE,SAAS,CAAA;AAET,EAAA,IAAIC,eAAO,CAACX,KAAK,CAAC,EAAE;IAChB,OAAOM,KAAK,IAAI,EAAE,CAAA;AACtB,GAAA;AAEA,EAAA,IAAIG,WAAW,CAACG,WAAW,IAAIH,WAAW,CAACI,cAAc,EAAE;AACvD,IAAA,OAAA,8CAAA,CAAAC,MAAA,CAAmBd,KAAK,CAACe,MAAM,CAAA,CAAA;AACnC,GAAA;EAEA,IAAIN,WAAW,CAACG,WAAW,IAAII,KAAK,CAACC,OAAO,CAACjB,KAAK,CAAC,EAAE;IACjD,OAAOA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CACNkB,GAAG,CAAC,UAACC,SAAS,EAAA;AAAA,MAAA,OACZrB,QAAQ,CAAC;AACLE,QAAAA,KAAK,EAAEmB,SAAS;AAChBlB,QAAAA,cAAc,EAAdA,cAAc;AACdC,QAAAA,WAAW,EAAXA,WAAAA;AACJ,OAAC,CAAC,CAAA;AAAA,KACN,CAAC,CACAkB,IAAI,CAACV,SAAS,IAAI,IAAI,CAAC,CAAA;AAChC,GAAA;AAEA,EAAA,OAAOZ,QAAQ,CAAC;AACZI,IAAAA,WAAW,EAAXA,WAAW;AACXF,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,cAAc,EAAdA,cAAAA;AACJ,GAAC,CAAC,CAAA;AACN;;;;"}