@consta/uikit 4.31.1 → 4.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/TooltipCanary/index.d.ts +1 -0
  2. package/TooltipCanary/index.js +1 -0
  3. package/__internal__/src/components/BadgeGroup/BadgeGroup.css +1 -1
  4. package/__internal__/src/components/BadgeGroup/BadgeGroup.js +1 -1
  5. package/__internal__/src/components/BadgeGroup/BadgeGroup.js.map +1 -1
  6. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsCanary.js +1 -1
  7. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsCanary.js.map +1 -1
  8. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.css +1 -1
  9. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js +1 -1
  10. package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js.map +1 -1
  11. package/__internal__/src/components/BookmarkTabsCanary/types.d.ts +2 -2
  12. package/__internal__/src/components/BookmarkTabsCanary/types.js.map +1 -1
  13. package/__internal__/src/components/BookmarkTabsCanary/useBookmarkTabs.d.ts +1 -1
  14. package/__internal__/src/components/BookmarkTabsCanary/useBookmarkTabs.js.map +1 -1
  15. package/__internal__/src/components/Combobox/Combobox.js +1 -1
  16. package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
  17. package/__internal__/src/components/Combobox/helpers.d.ts +3 -1
  18. package/__internal__/src/components/Combobox/helpers.js +1 -1
  19. package/__internal__/src/components/Combobox/helpers.js.map +1 -1
  20. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js +1 -1
  21. package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js.map +1 -1
  22. package/__internal__/src/components/ComboboxCanary/helpers.d.ts +3 -1
  23. package/__internal__/src/components/ComboboxCanary/helpers.js +1 -1
  24. package/__internal__/src/components/ComboboxCanary/helpers.js.map +1 -1
  25. package/__internal__/src/components/DragNDropField/DragNDropFieldTooltip/DragNDropFieldTooltip.js +1 -1
  26. package/__internal__/src/components/DragNDropField/DragNDropFieldTooltip/DragNDropFieldTooltip.js.map +1 -1
  27. package/__internal__/src/components/Loader/Loader.css +1 -1
  28. package/__internal__/src/components/Loader/Loader.d.ts +1 -1
  29. package/__internal__/src/components/Loader/Loader.js +1 -1
  30. package/__internal__/src/components/Loader/Loader.js.map +1 -1
  31. package/__internal__/src/components/LoaderCanary/Loader.css +1 -1
  32. package/__internal__/src/components/LoaderCanary/LoaderCanary.d.ts +2 -2
  33. package/__internal__/src/components/LoaderCanary/types.d.ts +1 -1
  34. package/__internal__/src/components/LoaderCanary/types.js +1 -1
  35. package/__internal__/src/components/LoaderCanary/types.js.map +1 -1
  36. package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js +1 -1
  37. package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js.map +1 -1
  38. package/__internal__/src/components/Responses/Responses.css +1 -1
  39. package/__internal__/src/components/Responses/Responses.d.ts +1 -1
  40. package/__internal__/src/components/Responses/Responses.js +1 -1
  41. package/__internal__/src/components/Responses/Responses.js.map +1 -1
  42. package/__internal__/src/components/Responses403/Responses403.js +1 -1
  43. package/__internal__/src/components/Responses403/Responses403.js.map +1 -1
  44. package/__internal__/src/components/Responses500/Responses500.d.ts +2 -2
  45. package/__internal__/src/components/Responses500/Responses500.js +1 -1
  46. package/__internal__/src/components/Responses500/Responses500.js.map +1 -1
  47. package/__internal__/src/components/Responses503/Responses503.d.ts +2 -2
  48. package/__internal__/src/components/Responses503/Responses503.js +1 -1
  49. package/__internal__/src/components/Responses503/Responses503.js.map +1 -1
  50. package/__internal__/src/components/ResponsesConnectionError/ResponsesConnectionError.js +1 -1
  51. package/__internal__/src/components/ResponsesConnectionError/ResponsesConnectionError.js.map +1 -1
  52. package/__internal__/src/components/ResponsesDeleted/ResponsesDeleted.js +1 -1
  53. package/__internal__/src/components/ResponsesDeleted/ResponsesDeleted.js.map +1 -1
  54. package/__internal__/src/components/Select/Select.js +1 -1
  55. package/__internal__/src/components/Select/Select.js.map +1 -1
  56. package/__internal__/src/components/Select/helpers.d.ts +2 -1
  57. package/__internal__/src/components/Select/helpers.js +1 -1
  58. package/__internal__/src/components/Select/helpers.js.map +1 -1
  59. package/__internal__/src/components/SelectCanary/SelectCanary.js +1 -1
  60. package/__internal__/src/components/SelectCanary/SelectCanary.js.map +1 -1
  61. package/__internal__/src/components/SelectCanary/helpers.d.ts +2 -1
  62. package/__internal__/src/components/SelectCanary/helpers.js +1 -1
  63. package/__internal__/src/components/SelectCanary/helpers.js.map +1 -1
  64. package/__internal__/src/components/SelectComponents/Select.css +1 -1
  65. package/__internal__/src/components/SelectComponentsCanary/Select.css +1 -1
  66. package/__internal__/src/components/Slider/SliderPoint/SliderPoint.js +1 -1
  67. package/__internal__/src/components/Slider/SliderPoint/SliderPoint.js.map +1 -1
  68. package/__internal__/src/components/Table/filtering.js +1 -1
  69. package/__internal__/src/components/Table/filtering.js.map +1 -1
  70. package/__internal__/src/components/Table/helpers.js +1 -1
  71. package/__internal__/src/components/Table/helpers.js.map +1 -1
  72. package/__internal__/src/components/Tabs/helpers.js +1 -1
  73. package/__internal__/src/components/Tabs/helpers.js.map +1 -1
  74. package/__internal__/src/components/TabsDeprecated/FitModeScrollWrapper/helpers.js +1 -1
  75. package/__internal__/src/components/TabsDeprecated/FitModeScrollWrapper/helpers.js.map +1 -1
  76. package/__internal__/src/components/Theme/_color/Theme_color_gpnDark.css +1 -1
  77. package/__internal__/src/components/TooltipCanary/Tooltip.css +1 -0
  78. package/__internal__/src/components/TooltipCanary/TooltipCanary.d.ts +4 -0
  79. package/__internal__/src/components/TooltipCanary/TooltipCanary.js +2 -0
  80. package/__internal__/src/components/TooltipCanary/TooltipCanary.js.map +1 -0
  81. package/__internal__/src/components/TooltipCanary/index.d.ts +2 -0
  82. package/__internal__/src/components/TooltipCanary/index.js +2 -0
  83. package/__internal__/src/components/TooltipCanary/index.js.map +1 -0
  84. package/__internal__/src/components/TooltipCanary/types.d.ts +23 -0
  85. package/__internal__/src/components/TooltipCanary/types.js +2 -0
  86. package/__internal__/src/components/TooltipCanary/types.js.map +1 -0
  87. package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
  88. package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
  89. package/__internal__/src/components/UserSelect/helpers.d.ts +3 -1
  90. package/__internal__/src/components/UserSelect/helpers.js +1 -1
  91. package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
  92. package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js +1 -1
  93. package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js.map +1 -1
  94. package/__internal__/src/components/UserSelectCanary/helpers.d.ts +3 -1
  95. package/__internal__/src/components/UserSelectCanary/helpers.js +1 -1
  96. package/__internal__/src/components/UserSelectCanary/helpers.js.map +1 -1
  97. package/__internal__/src/hocs/withTooltip/withTooltip.d.ts +1 -1
  98. package/__internal__/src/hocs/withTooltip/withTooltip.js +1 -1
  99. package/__internal__/src/hocs/withTooltip/withTooltip.js.map +1 -1
  100. package/__internal__/src/hooks/useHideElementsInLineCanary/useHideElementsInLineCanary.js +1 -1
  101. package/__internal__/src/hooks/useHideElementsInLineCanary/useHideElementsInLineCanary.js.map +1 -1
  102. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/TooltipCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/TooltipCanary";
@@ -1 +1 @@
1
- .BadgeGroup_size_l,.BadgeGroup_size_m{--badge-group-gap:var(--space-xs)}.BadgeGroup_size_s,.BadgeGroup_size_xs{--badge-group-gap:var(--space-2xs)}.BadgeGroup_fitMode_wrap{align-items:center;display:inline-flex;flex-wrap:wrap;gap:var(--badge-group-gap);justify-content:flex-start}.BadgeGroup_fitMode_reduction{display:inline-flex}.BadgeGroup_fitMode_reduction>:not(.BadgeGroup-Badge_zero){margin-right:var(--badge-group-gap)}.BadgeGroup_fitMode_reduction>:not(.BadgeGroup-Badge_zero):last-child{margin-right:0}.BadgeGroup-Badge.Badge{position:static}.BadgeGroup-Badge_hidden.Badge{left:-300vw;position:absolute;visibility:hidden}.BadgeGroup-Badge_zero.Badge{display:none}
1
+ .BadgeGroup_size_l,.BadgeGroup_size_m{--badge-group-gap:var(--space-xs)}.BadgeGroup_size_s,.BadgeGroup_size_xs{--badge-group-gap:var(--space-2xs)}.BadgeGroup_fitMode_wrap{align-items:center;display:inline-flex;flex-wrap:wrap;gap:var(--badge-group-gap);justify-content:flex-start}.BadgeGroup_fitMode_reduction{display:inline-flex}.BadgeGroup_fitMode_reduction>:not(.BadgeGroup-Badge_zero){margin-right:var(--badge-group-gap)}.BadgeGroup_fitMode_reduction>:not(.BadgeGroup-Badge_zero):last-child{margin-right:0}.BadgeGroup-Badge.Badge{position:static}.BadgeGroup-Badge_hidden.Badge{left:-300vw;position:absolute;visibility:hidden}
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","fitMode","getItemAs","getItemAttributes","getItemIconLeft","getItemIconRight","getItemKey","getItemLabel","getItemStatus","getItemRef","getItemView","minified","size","form","className","moreRef","moreAttributes"];import"./BadgeGroup.css";import React,{forwardRef}from"react";import{forkRef,useForkRef}from"../../hooks/useForkRef";import{useHideElementsInLine}from"../../hooks/useHideElementsInLine";import{cn}from"../../utils/bem";import{Badge,badgePropFormDefault,badgePropSizeDefault}from"../Badge/Badge";import{withDefaultGetters}from"./helper";var cnBadgeGroup=cn("BadgeGroup"),BadgeGroupRender=function(a,b){var c=withDefaultGetters(a),d=c.items,e=c.fitMode,f=void 0===e?"wrap":e,g=c.getItemAs,h=c.getItemAttributes,i=c.getItemIconLeft,j=c.getItemIconRight,k=c.getItemKey,l=c.getItemLabel,m=c.getItemStatus,n=c.getItemRef,o=c.getItemView,p=c.minified,q=c.size,r=void 0===q?badgePropSizeDefault:q,s=c.form,t=void 0===s?badgePropFormDefault:s,u=c.className,v=c.moreRef,w=c.moreAttributes,x=_objectWithoutProperties(c,_excluded),y=useHideElementsInLine(d),z=y.visibleItems,A=y.itemsRefs,B=y.wrapperRef,C=y.hiddenItems,D=y.moreRef,E=useForkRef([D,v]);return React.createElement("div",Object.assign({ref:useForkRef([b,B]),className:cnBadgeGroup({size:r,fitMode:f},[u])},x),d.map(function(a,b){var c,d=g(a);return React.createElement(Badge,Object.assign({key:k(a),size:r,form:t,minified:p,label:l(a),iconLeft:i(a),iconRight:j(a),as:d,ref:forkRef([A[b],n(a)]),view:o(a),status:m(a),className:cnBadgeGroup("Badge",{hidden:!("reduction"!==f)&&!z[b]})},null!==(c=h(a))&&void 0!==c?c:{}))}),"reduction"===f&&React.createElement(Badge,Object.assign({className:cnBadgeGroup("Badge",{hidden:0>=C.length,zero:0>=C.length}),key:"more",label:"+".concat(C.length),status:"system",form:t,size:r,view:"filled",ref:E},w)))};export var BadgeGroup=forwardRef(BadgeGroupRender);export*from"./types";
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","fitMode","getItemAs","getItemAttributes","getItemIconLeft","getItemIconRight","getItemKey","getItemLabel","getItemStatus","getItemRef","getItemView","minified","size","form","className","moreRef","moreAttributes"];import"./BadgeGroup.css";import React,{forwardRef}from"react";import{forkRef,useForkRef}from"../../hooks/useForkRef";import{useHideElementsInLine}from"../../hooks/useHideElementsInLineCanary";import{cn}from"../../utils/bem";import{Badge,badgePropFormDefault,badgePropSizeDefault}from"../Badge/Badge";import{withDefaultGetters}from"./helper";var cnBadgeGroup=cn("BadgeGroup"),BadgeGroupRender=function(a,b){var c=withDefaultGetters(a),d=c.items,e=c.fitMode,f=void 0===e?"wrap":e,g=c.getItemAs,h=c.getItemAttributes,i=c.getItemIconLeft,j=c.getItemIconRight,k=c.getItemKey,l=c.getItemLabel,m=c.getItemStatus,n=c.getItemRef,o=c.getItemView,p=c.minified,q=c.size,r=void 0===q?badgePropSizeDefault:q,s=c.form,t=void 0===s?badgePropFormDefault:s,u=c.className,v=c.moreRef,w=c.moreAttributes,x=_objectWithoutProperties(c,_excluded),y=d.length+1,z=y-1,A=useHideElementsInLine(y,z,0,[f,t]),B=A.visibleMap,C=A.elementsRefs,D=A.parentRef,E=useForkRef([C[z],v]);return React.createElement("div",Object.assign({ref:useForkRef([b,D]),className:cnBadgeGroup({size:r,fitMode:f},[u])},x),d.map(function(a,b){var c=g(a);return React.createElement(Badge,Object.assign({key:k(a),size:r,form:t,minified:p,label:l(a),iconLeft:i(a),iconRight:j(a),as:c,ref:forkRef([C[b],n(a)]),view:o(a),status:m(a),className:cnBadgeGroup("Badge",{hidden:!("reduction"!==f)&&!B[b]})},h(a)))}),"reduction"===f&&React.createElement(Badge,Object.assign({className:cnBadgeGroup("Badge",{hidden:!B[d.length]}),key:"more",label:"+".concat(B.filter(function(a){return!a}).length),status:"system",form:t,size:r,view:"filled",ref:E},w)))};export var BadgeGroup=forwardRef(BadgeGroupRender);export*from"./types";
2
2
  //# sourceMappingURL=BadgeGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BadgeGroup.js","names":["React","forwardRef","forkRef","useForkRef","useHideElementsInLine","cn","Badge","badgePropFormDefault","badgePropSizeDefault","withDefaultGetters","cnBadgeGroup","BadgeGroupRender","props","ref","items","fitMode","getItemAs","getItemAttributes","getItemIconLeft","getItemIconRight","getItemKey","getItemLabel","getItemStatus","getItemRef","getItemView","minified","size","form","className","moreRefProp","moreRef","moreAttributes","otherProps","visibleItems","itemsRefs","wrapperRef","hiddenItems","hideMoreRef","map","item","index","as","hidden","length","zero","BadgeGroup"],"sources":["../../../../../src/components/BadgeGroup/BadgeGroup.tsx"],"sourcesContent":["import './BadgeGroup.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { forkRef, useForkRef } from '##/hooks/useForkRef';\nimport { useHideElementsInLine } from '##/hooks/useHideElementsInLine';\nimport { cn } from '##/utils/bem';\n\nimport {\n Badge,\n badgePropFormDefault,\n badgePropSizeDefault,\n} from '../Badge/Badge';\nimport { withDefaultGetters } from './helper';\nimport { BadgeGroupComponent, BadgeGroupProps } from './types';\n\nconst cnBadgeGroup = cn('BadgeGroup');\n\nconst BadgeGroupRender = (\n props: BadgeGroupProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n items,\n fitMode = 'wrap',\n getItemAs,\n getItemAttributes,\n getItemIconLeft,\n getItemIconRight,\n getItemKey,\n getItemLabel,\n getItemStatus,\n getItemRef,\n getItemView,\n minified,\n size = badgePropSizeDefault,\n form = badgePropFormDefault,\n className,\n moreRef: moreRefProp,\n moreAttributes,\n ...otherProps\n } = withDefaultGetters(props);\n\n const {\n visibleItems,\n itemsRefs,\n wrapperRef,\n hiddenItems,\n moreRef: hideMoreRef,\n } = useHideElementsInLine(items);\n\n const moreRef = useForkRef([hideMoreRef, moreRefProp]);\n\n return (\n <div\n ref={useForkRef([ref, wrapperRef])}\n className={cnBadgeGroup({ size, fitMode }, [className])}\n {...otherProps}\n >\n {items.map((item, index) => {\n const as = getItemAs(item);\n return (\n <Badge\n key={getItemKey(item)}\n size={size}\n form={form}\n minified={minified}\n label={getItemLabel(item)}\n iconLeft={getItemIconLeft(item)}\n iconRight={getItemIconRight(item)}\n as={as}\n ref={forkRef([itemsRefs[index], getItemRef(item)])}\n view={getItemView(item)}\n status={getItemStatus(item)}\n className={cnBadgeGroup('Badge', {\n hidden: fitMode === 'reduction' ? !visibleItems[index] : false,\n })}\n {...(getItemAttributes(item) ?? {})}\n />\n );\n })}\n {fitMode === 'reduction' && (\n <Badge\n className={cnBadgeGroup('Badge', {\n hidden: hiddenItems.length <= 0,\n zero: hiddenItems.length <= 0,\n })}\n key=\"more\"\n label={`+${hiddenItems.length}`}\n status=\"system\"\n form={form}\n size={size}\n view=\"filled\"\n ref={moreRef}\n {...moreAttributes}\n />\n )}\n </div>\n );\n};\n\nexport const BadgeGroup = forwardRef(BadgeGroupRender) as BadgeGroupComponent;\n\nexport * from './types';\n"],"mappings":"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"}
1
+ {"version":3,"file":"BadgeGroup.js","names":["React","forwardRef","forkRef","useForkRef","useHideElementsInLine","cn","Badge","badgePropFormDefault","badgePropSizeDefault","withDefaultGetters","cnBadgeGroup","BadgeGroupRender","props","ref","items","fitMode","getItemAs","getItemAttributes","getItemIconLeft","getItemIconRight","getItemKey","getItemLabel","getItemStatus","getItemRef","getItemView","minified","size","form","className","moreRefProp","moreRef","moreAttributes","otherProps","length","moreIndex","visibleMap","elementsRefs","parentRef","map","item","index","as","hidden","filter","BadgeGroup"],"sources":["../../../../../src/components/BadgeGroup/BadgeGroup.tsx"],"sourcesContent":["import './BadgeGroup.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { forkRef, useForkRef } from '##/hooks/useForkRef';\nimport { useHideElementsInLine } from '##/hooks/useHideElementsInLineCanary';\nimport { cn } from '##/utils/bem';\n\nimport {\n Badge,\n badgePropFormDefault,\n badgePropSizeDefault,\n} from '../Badge/Badge';\nimport { withDefaultGetters } from './helper';\nimport { BadgeGroupComponent, BadgeGroupProps } from './types';\n\nconst cnBadgeGroup = cn('BadgeGroup');\n\nconst BadgeGroupRender = (\n props: BadgeGroupProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n items,\n fitMode = 'wrap',\n getItemAs,\n getItemAttributes,\n getItemIconLeft,\n getItemIconRight,\n getItemKey,\n getItemLabel,\n getItemStatus,\n getItemRef,\n getItemView,\n minified,\n size = badgePropSizeDefault,\n form = badgePropFormDefault,\n className,\n moreRef: moreRefProp,\n moreAttributes,\n ...otherProps\n } = withDefaultGetters(props);\n\n const length = items.length + 1;\n const moreIndex = length - 1;\n\n const { visibleMap, elementsRefs, parentRef } = useHideElementsInLine(\n length,\n moreIndex,\n 0,\n [fitMode, form],\n );\n\n const moreRef = useForkRef([elementsRefs[moreIndex], moreRefProp]);\n\n return (\n <div\n ref={useForkRef([ref, parentRef])}\n className={cnBadgeGroup({ size, fitMode }, [className])}\n {...otherProps}\n >\n {items.map((item, index) => {\n const as = getItemAs(item);\n return (\n <Badge\n key={getItemKey(item)}\n size={size}\n form={form}\n minified={minified}\n label={getItemLabel(item)}\n iconLeft={getItemIconLeft(item)}\n iconRight={getItemIconRight(item)}\n as={as}\n ref={forkRef([elementsRefs[index], getItemRef(item)])}\n view={getItemView(item)}\n status={getItemStatus(item)}\n className={cnBadgeGroup('Badge', {\n hidden: fitMode === 'reduction' ? !visibleMap[index] : false,\n })}\n {...getItemAttributes(item)}\n />\n );\n })}\n {fitMode === 'reduction' && (\n <Badge\n className={cnBadgeGroup('Badge', {\n hidden: !visibleMap[items.length],\n })}\n key=\"more\"\n label={`+${visibleMap.filter((item) => !item).length}`}\n status=\"system\"\n form={form}\n size={size}\n view=\"filled\"\n ref={moreRef}\n {...moreAttributes}\n />\n )}\n </div>\n );\n};\n\nexport const BadgeGroup = forwardRef(BadgeGroupRender) as BadgeGroupComponent;\n\nexport * from './types';\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["item","attributes","as"],_excluded2=["items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","size","form","view","withNavigationButtons","className","id"];import"./BookmarkTabs.css";import{IconAdd}from"@consta/icons/IconAdd";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useMemo}from"react";import{useComponentSize}from"../../hooks/useComponentSize";import{useForkRef}from"../../hooks/useForkRef";import{cnCanary as cn}from"../../utils/bem";import{Button}from"../Button";import{BookmarkTabsTab}from"./BookmarkTabsTab";import{withDefaultGetters}from"./helper";import{bookmarkTabsPropFormDefault,bookmarkTabsPropSizeDefault,bookmarkTabsPropViewDefault}from"./types";import{useBookmarkTabs}from"./useBookmarkTabs";export var cnBookmarkTabs=cn("BookmarkTabs");var renderItemDefault=function(a){var b=a.item,c=a.attributes,d=void 0===c?{}:c,e=a.as,f=_objectWithoutProperties(a,_excluded);return React.createElement(BookmarkTabsTab,Object.assign({},d,f,{as:e}))},BookmarkTabsRender=function(a,b){var c=withDefaultGetters(a),d=c.items,e=void 0===d?[]:d,f=c.value,g=c.onCreate,h=c.getItemKey,i=c.getItemLabel,j=c.getItemLeftIcon,k=c.getItemRightIcon,l=c.getItemAs,m=c.getItemRef,n=c.getItemAttributes,o=c.getItemFixed,p=c.onChange,q=c.onRemove,r=c.renderItem,s=void 0===r?renderItemDefault:r,t=c.size,u=void 0===t?bookmarkTabsPropSizeDefault:t,v=c.form,w=void 0===v?bookmarkTabsPropFormDefault:v,x=c.view,y=void 0===x?bookmarkTabsPropViewDefault:x,z=c.withNavigationButtons,A=c.className,B=c.id,C=_objectWithoutProperties(c,_excluded2),D=function(a){return!!f&&h(a)===h(f)},E=useBookmarkTabs({items:e,getItemFixed:o,size:u,withNavigationButtons:z,withAddButton:!!g}),F=E.refs,G=E.fixedTabs,H=E.fixedTabsRef,I=E.otherTabs,J=E.otherTabsRef,K=E.showControls,L=E.wrapperRef,M=E.containerRef,N=E.controlsRef,O=E.addButtonRef,P=E.navigate,Q=E.sizes,R=useComponentSize(H),S=R.width,T=function(a,b,c,d,e){var f;return s({item:a,onClick:function onClick(b){return null===p||void 0===p?void 0:p(a,{e:b})},active:D(a),label:i(a),leftIcon:j(a),rightIcon:k(a),as:null!==(f=l(a))&&void 0!==f?f:"button",attributes:n(a),tabRef:m(a),controlRef:c,fixed:b,bordered:d,onClose:q?function(b){return q(a,{e:b})}:void 0,size:u,view:y,form:w,tabWidth:e})},U=useMemo(function(){var a=[].concat(_toConsumableArray(G),_toConsumableArray(I)),b=f?a.indexOf(f):-1;return Array.from(Array(a.length-1).keys()).filter(function(a){return"round"!==w||a!==b&&a!==b-1})},[G,I,f,w]);return React.createElement("div",Object.assign({className:cnBookmarkTabs({size:u,view:y,form:w},[A]),ref:useForkRef([b,M]),id:B},C),K&&React.createElement("div",{ref:N,className:cnBookmarkTabs("ScrollControls")},React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:function onClick(){return P("prev")},iconLeft:IconArrowLeft,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:function onClick(){return P("next")},iconLeft:IconArrowRight,onlyIcon:!0}))),React.createElement("div",{ref:L,className:cnBookmarkTabs("Wrapper")},React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","max-content"),ref:H,className:cnBookmarkTabs("List")},G.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},T(a,!0,F[b],U.includes(b)))})),React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","calc(100% - ".concat(S,"px)")),className:cnBookmarkTabs("List"),ref:J},I.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},T(a,!1,F[G.length+b],U.includes(G.length+b),Q[b]))}))),g&&React.createElement("div",{ref:O,className:cnBookmarkTabs("Button",{type:"add"})},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:g,iconLeft:IconAdd,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Empty")}))};export var BookmarkTabs=forwardRef(BookmarkTabsRender);
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["item","attributes","as"],_excluded2=["items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","size","form","view","withNavigationButtons","onMouseLeave","className","id"];import"./BookmarkTabs.css";import{IconAdd}from"@consta/icons/IconAdd";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useMemo,useState}from"react";import{useComponentSize}from"../../hooks/useComponentSize";import{useForkRef}from"../../hooks/useForkRef";import{cnCanary as cn}from"../../utils/bem";import{Button}from"../Button";import{BookmarkTabsTab}from"./BookmarkTabsTab";import{withDefaultGetters}from"./helper";import{bookmarkTabsPropFormDefault,bookmarkTabsPropSizeDefault,bookmarkTabsPropViewDefault}from"./types";import{useBookmarkTabs}from"./useBookmarkTabs";export var cnBookmarkTabs=cn("BookmarkTabs");var renderItemDefault=function(a){var b=a.item,c=a.attributes,d=void 0===c?{}:c,e=a.as,f=_objectWithoutProperties(a,_excluded);return React.createElement(BookmarkTabsTab,Object.assign({},d,f,{as:e}))},BookmarkTabsRender=function(a,b){var c=withDefaultGetters(a),d=c.items,e=void 0===d?[]:d,f=c.value,g=c.onCreate,h=c.getItemKey,i=c.getItemLabel,j=c.getItemLeftIcon,k=c.getItemRightIcon,l=c.getItemAs,m=c.getItemRef,n=c.getItemAttributes,o=c.getItemFixed,p=c.onChange,q=c.onRemove,r=c.renderItem,s=void 0===r?renderItemDefault:r,t=c.size,u=void 0===t?bookmarkTabsPropSizeDefault:t,v=c.form,w=void 0===v?bookmarkTabsPropFormDefault:v,x=c.view,y=void 0===x?bookmarkTabsPropViewDefault:x,z=c.withNavigationButtons,A=c.onMouseLeave,B=c.className,C=c.id,D=_objectWithoutProperties(c,_excluded2),E=useState(null),F=_slicedToArray(E,2),G=F[0],H=F[1],I=function(a){return!!f&&h(a)===h(f)},J=useBookmarkTabs({items:e,getItemFixed:o,size:u,withNavigationButtons:z,withAddButton:!!g}),K=J.refs,L=J.fixedTabs,M=J.fixedTabsRef,N=J.otherTabs,O=J.otherTabsRef,P=J.showControls,Q=J.wrapperRef,R=J.containerRef,S=J.controlsRef,T=J.addButtonRef,U=J.navigate,V=J.sizes,W=useComponentSize(M),X=W.width,Y=function(a,b,c,d,e,f){var g;return React.createElement("div",{className:cnBookmarkTabs("Tab"),onMouseEnter:function onMouseEnter(){return H(e)},onFocus:function onFocus(){return H(e)},ref:c},s({item:a,onClick:function onClick(b){return null===p||void 0===p?void 0:p(a,{e:b})},active:I(a),label:i(a),leftIcon:j(a),rightIcon:k(a),as:null!==(g=l(a))&&void 0!==g?g:"div",attributes:n(a),tabRef:m(a),fixed:b,bordered:d,onClose:q?function(b){return q(a,{e:b})}:void 0,size:u,view:y,hovered:G===e,form:w,tabWidth:f}))},Z=useMemo(function(){var a=[].concat(_toConsumableArray(L),_toConsumableArray(N)),b=f?a.indexOf(f):-1;return Array.from(Array(a.length-1).keys()).filter(function(a){return"round"!==w||a!==b&&a!==b-1})},[L,N,f,w]);return React.createElement("div",Object.assign({className:cnBookmarkTabs({size:u,view:y,form:w},[B]),ref:useForkRef([b,R]),id:C,onMouseLeave:function onMouseLeave(a){null===A||void 0===A?void 0:A(a),H(null)}},D),P&&React.createElement("div",{ref:S,className:cnBookmarkTabs("ScrollControls")},React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:function onClick(){return U("prev")},iconLeft:IconArrowLeft,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:function onClick(){return U("next")},iconLeft:IconArrowRight,onlyIcon:!0}))),React.createElement("div",{ref:Q,className:cnBookmarkTabs("Wrapper")},React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","max-content"),ref:M,className:cnBookmarkTabs("List")},L.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},Y(a,!0,K[b],Z.includes(b),b))})),React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","calc(100% - ".concat(X,"px)")),className:cnBookmarkTabs("List"),ref:O},N.map(function(a,b){var c=L.length;return React.createElement(React.Fragment,{key:h(a)},Y(a,!1,K[c+b],Z.includes(c+b),c+b,V[b]))}))),g&&React.createElement("div",{ref:T,className:cnBookmarkTabs("Button",{type:"add"})},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:g,iconLeft:IconAdd,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Empty")}))};export var BookmarkTabs=forwardRef(BookmarkTabsRender);
2
2
  //# sourceMappingURL=BookmarkTabsCanary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BookmarkTabsCanary.js","names":["IconAdd","IconArrowLeft","IconArrowRight","React","forwardRef","useMemo","useComponentSize","useForkRef","cnCanary","cn","Button","BookmarkTabsTab","withDefaultGetters","bookmarkTabsPropFormDefault","bookmarkTabsPropSizeDefault","bookmarkTabsPropViewDefault","useBookmarkTabs","cnBookmarkTabs","renderItemDefault","props","_item","item","attributes","as","otherProps","BookmarkTabsRender","ref","items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","renderItemProp","size","form","view","withNavigationButtons","className","id","getItemActive","withAddButton","refs","fixedTabs","fixedTabsRef","otherTabs","otherTabsRef","showControls","wrapperRef","containerRef","controlsRef","addButtonRef","navigate","sizes","fixedWidth","width","fixed","controlRef","bordered","tabWidth","onClick","e","active","label","leftIcon","rightIcon","tabRef","onClose","borderedIndexes","arr","activeIndex","indexOf","Array","from","length","keys","filter","el","map","index","includes","type","BookmarkTabs"],"sources":["../../../../../src/components/BookmarkTabsCanary/BookmarkTabsCanary.tsx"],"sourcesContent":["import './BookmarkTabs.css';\n\nimport { IconAdd } from '@consta/icons/IconAdd';\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef, useMemo } from 'react';\n\nimport { useComponentSize } from '##/hooks/useComponentSize';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnCanary as cn } from '##/utils/bem';\n\nimport { Button } from '../Button';\nimport { BookmarkTabsTab } from './BookmarkTabsTab';\nimport { withDefaultGetters } from './helper';\nimport {\n BookmarkTabsComponent,\n bookmarkTabsPropFormDefault,\n BookmarkTabsProps,\n bookmarkTabsPropSizeDefault,\n bookmarkTabsPropViewDefault,\n BookmarkTabsRenderItemProps,\n} from './types';\nimport { useBookmarkTabs } from './useBookmarkTabs';\n\nexport const cnBookmarkTabs = cn('BookmarkTabs');\n\nconst renderItemDefault = <ITEM,>(\n props: BookmarkTabsRenderItemProps<ITEM>,\n): React.ReactElement => {\n const { item: _item, attributes = {}, as, ...otherProps } = props;\n return <BookmarkTabsTab {...attributes} {...otherProps} as={as} />;\n};\n\nconst BookmarkTabsRender = (\n props: BookmarkTabsProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n items = [],\n value,\n onCreate,\n getItemKey,\n getItemLabel,\n getItemLeftIcon,\n getItemRightIcon,\n getItemAs,\n getItemRef,\n getItemAttributes,\n getItemFixed,\n onChange,\n onRemove,\n renderItem: renderItemProp = renderItemDefault,\n size = bookmarkTabsPropSizeDefault,\n form = bookmarkTabsPropFormDefault,\n view = bookmarkTabsPropViewDefault,\n withNavigationButtons,\n className,\n id,\n ...otherProps\n } = withDefaultGetters(props);\n\n type Item = typeof items[number];\n\n const getItemActive = (item: Item) => {\n return value ? getItemKey(item) === getItemKey(value) : false;\n };\n\n const {\n refs,\n fixedTabs,\n fixedTabsRef,\n otherTabs,\n otherTabsRef,\n showControls,\n wrapperRef,\n containerRef,\n controlsRef,\n addButtonRef,\n navigate,\n sizes,\n } = useBookmarkTabs({\n items,\n getItemFixed,\n size,\n withNavigationButtons,\n withAddButton: !!onCreate,\n });\n\n const { width: fixedWidth } = useComponentSize(fixedTabsRef);\n\n const renderItem = (\n item: Item,\n fixed: boolean,\n controlRef: React.RefObject<HTMLElement>,\n bordered: boolean,\n tabWidth?: string,\n ) =>\n renderItemProp({\n item,\n onClick: (e) => onChange?.(item, { e }),\n active: getItemActive(item),\n label: getItemLabel(item),\n leftIcon: getItemLeftIcon(item),\n rightIcon: getItemRightIcon(item),\n as: getItemAs(item) ?? 'button',\n attributes: getItemAttributes(item),\n tabRef: getItemRef(item),\n controlRef,\n fixed,\n bordered,\n onClose: onRemove ? (e) => onRemove(item, { e }) : undefined,\n size,\n view,\n form,\n tabWidth,\n });\n\n const borderedIndexes = useMemo(() => {\n const arr = [...fixedTabs, ...otherTabs];\n const activeIndex = value ? arr.indexOf(value) : -1;\n return Array.from(Array(arr.length - 1).keys()).filter((el) =>\n form === 'round' ? el !== activeIndex && el !== activeIndex - 1 : true,\n );\n }, [fixedTabs, otherTabs, value, form]);\n\n return (\n <div\n className={cnBookmarkTabs({ size, view, form }, [className])}\n ref={useForkRef([ref, containerRef])}\n id={id}\n {...otherProps}\n >\n {showControls && (\n <div ref={controlsRef} className={cnBookmarkTabs('ScrollControls')}>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={() => navigate('prev')}\n iconLeft={IconArrowLeft}\n onlyIcon\n />\n </div>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={() => navigate('next')}\n iconLeft={IconArrowRight}\n onlyIcon\n />\n </div>\n </div>\n )}\n <div ref={wrapperRef} className={cnBookmarkTabs('Wrapper')}>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `max-content`,\n }}\n ref={fixedTabsRef}\n className={cnBookmarkTabs('List')}\n >\n {fixedTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n true,\n refs[index],\n borderedIndexes.includes(index),\n )}\n </React.Fragment>\n ))}\n </div>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `calc(100% - ${fixedWidth}px)`,\n }}\n className={cnBookmarkTabs('List')}\n ref={otherTabsRef}\n >\n {otherTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n false,\n refs[fixedTabs.length + index],\n borderedIndexes.includes(fixedTabs.length + index),\n sizes[index],\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n {onCreate && (\n <div\n ref={addButtonRef}\n className={cnBookmarkTabs('Button', { type: 'add' })}\n >\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={onCreate}\n iconLeft={IconAdd}\n onlyIcon\n />\n </div>\n )}\n <div className={cnBookmarkTabs('Empty')} />\n </div>\n );\n};\n\nexport const BookmarkTabs = forwardRef(\n BookmarkTabsRender,\n) as BookmarkTabsComponent;\n"],"mappings":"ghBAAA,2BAEA,OAASA,OAAT,KAAwB,uBAAxB,CACA,OAASC,aAAT,KAA8B,6BAA9B,CACA,OAASC,cAAT,KAA+B,8BAA/B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,OAA5B,KAA2C,OAA3C,CAEA,OAASC,gBAAT,oCACA,OAASC,UAAT,8BACA,OAASC,QAAQ,GAAIC,GAArB,uBAEA,OAASC,MAAT,iBACA,OAASC,eAAT,yBACA,OAASC,kBAAT,gBACA,OAEEC,2BAFF,CAIEC,2BAJF,CAKEC,2BALF,eAQA,OAASC,eAAT,yBAEA,MAAO,IAAMC,eAAc,CAAGR,EAAE,CAAC,cAAD,CAAzB,C,GAEDS,kBAAiB,CAAG,SACxBC,CADwB,CAED,CACvB,GAAcC,EAAd,CAA4DD,CAA5D,CAAQE,IAAR,GAA4DF,CAA5D,CAAqBG,UAArB,CAAqBA,CAArB,YAAkC,EAAlC,GAAsCC,CAAtC,CAA4DJ,CAA5D,CAAsCI,EAAtC,CAA6CC,CAA7C,0BAA4DL,CAA5D,YACA,MAAO,qBAAC,eAAD,kBAAqBG,CAArB,CAAqCE,CAArC,EAAiD,EAAE,CAAED,CAArD,GACR,C,CAEKE,kBAAkB,CAAG,SACzBN,CADyB,CAEzBO,CAFyB,CAGtB,OAuBCd,kBAAkB,CAACO,CAAD,CAvBnB,KAEDQ,KAFC,CAEDA,CAFC,YAEO,EAFP,GAGDC,CAHC,GAGDA,KAHC,CAIDC,CAJC,GAIDA,QAJC,CAKDC,CALC,GAKDA,UALC,CAMDC,CANC,GAMDA,YANC,CAODC,CAPC,GAODA,eAPC,CAQDC,CARC,GAQDA,gBARC,CASDC,CATC,GASDA,SATC,CAUDC,CAVC,GAUDA,UAVC,CAWDC,CAXC,GAWDA,iBAXC,CAYDC,CAZC,GAYDA,YAZC,CAaDC,CAbC,GAaDA,QAbC,CAcDC,CAdC,GAcDA,QAdC,KAeDC,UAfC,CAeWC,CAfX,YAe4BvB,iBAf5B,OAgBDwB,IAhBC,CAgBDA,CAhBC,YAgBM5B,2BAhBN,OAiBD6B,IAjBC,CAiBDA,CAjBC,YAiBM9B,2BAjBN,OAkBD+B,IAlBC,CAkBDA,CAlBC,YAkBM7B,2BAlBN,GAmBD8B,CAnBC,GAmBDA,qBAnBC,CAoBDC,CApBC,GAoBDA,SApBC,CAqBDC,CArBC,GAqBDA,EArBC,CAsBEvB,CAtBF,wCA2BGwB,CAAa,CAAG,SAAC3B,CAAD,CAAgB,CACpC,QAAOO,CAAP,EAAeE,CAAU,CAACT,CAAD,CAAV,GAAqBS,CAAU,CAACF,CAAD,CAC/C,CA7BE,GA4CCZ,eAAe,CAAC,CAClBW,KAAK,CAALA,CADkB,CAElBU,YAAY,CAAZA,CAFkB,CAGlBK,IAAI,CAAJA,CAHkB,CAIlBG,qBAAqB,CAArBA,CAJkB,CAKlBI,aAAa,CAAE,CAAC,CAACpB,CALC,CAAD,CA5ChB,CAgCDqB,CAhCC,GAgCDA,IAhCC,CAiCDC,CAjCC,GAiCDA,SAjCC,CAkCDC,CAlCC,GAkCDA,YAlCC,CAmCDC,CAnCC,GAmCDA,SAnCC,CAoCDC,CApCC,GAoCDA,YApCC,CAqCDC,CArCC,GAqCDA,YArCC,CAsCDC,CAtCC,GAsCDA,UAtCC,CAuCDC,CAvCC,GAuCDA,YAvCC,CAwCDC,CAxCC,GAwCDA,WAxCC,CAyCDC,CAzCC,GAyCDA,YAzCC,CA0CDC,CA1CC,GA0CDA,QA1CC,CA2CDC,CA3CC,GA2CDA,KA3CC,GAoD2BvD,gBAAgB,CAAC8C,CAAD,CApD3C,CAoDYU,CApDZ,GAoDKC,KApDL,CAsDGvB,CAAU,CAAG,SACjBnB,CADiB,CAEjB2C,CAFiB,CAGjBC,CAHiB,CAIjBC,CAJiB,CAKjBC,CALiB,cAOjB1B,EAAc,CAAC,CACbpB,IAAI,CAAJA,CADa,CAEb+C,OAAO,CAAE,iBAACC,CAAD,gBAAO/B,CAAP,WAAOA,CAAP,QAAOA,CAAQ,CAAGjB,CAAH,CAAS,CAAEgD,CAAC,CAADA,CAAF,CAAT,CAAf,CAFI,CAGbC,MAAM,CAAEtB,CAAa,CAAC3B,CAAD,CAHR,CAIbkD,KAAK,CAAExC,CAAY,CAACV,CAAD,CAJN,CAKbmD,QAAQ,CAAExC,CAAe,CAACX,CAAD,CALZ,CAMboD,SAAS,CAAExC,CAAgB,CAACZ,CAAD,CANd,CAObE,EAAE,WAAEW,CAAS,CAACb,CAAD,CAAX,gBAAqB,QAPV,CAQbC,UAAU,CAAEc,CAAiB,CAACf,CAAD,CARhB,CASbqD,MAAM,CAAEvC,CAAU,CAACd,CAAD,CATL,CAUb4C,UAAU,CAAVA,CAVa,CAWbD,KAAK,CAALA,CAXa,CAYbE,QAAQ,CAARA,CAZa,CAabS,OAAO,CAAEpC,CAAQ,CAAG,SAAC8B,CAAD,QAAO9B,EAAQ,CAAClB,CAAD,CAAO,CAAEgD,CAAC,CAADA,CAAF,CAAP,CAAf,CAAH,OAbJ,CAcb3B,IAAI,CAAJA,CAda,CAebE,IAAI,CAAJA,CAfa,CAgBbD,IAAI,CAAJA,CAhBa,CAiBbwB,QAAQ,CAARA,CAjBa,CAAD,CAPG,CAtDhB,CAiFGS,CAAe,CAAGvE,OAAO,CAAC,UAAM,IAC9BwE,EAAG,8BAAO1B,CAAP,qBAAqBE,CAArB,EAD2B,CAE9ByB,CAAW,CAAGlD,CAAK,CAAGiD,CAAG,CAACE,OAAJ,CAAYnD,CAAZ,CAAH,CAAwB,CAAC,CAFd,CAGpC,MAAOoD,MAAK,CAACC,IAAN,CAAWD,KAAK,CAACH,CAAG,CAACK,MAAJ,CAAa,CAAd,CAAL,CAAsBC,IAAtB,EAAX,EAAyCC,MAAzC,CAAgD,SAACC,CAAD,QAC5C,OAAT,GAAA1C,CADqD,EAClC0C,CAAE,GAAKP,CAAP,EAAsBO,CAAE,GAAKP,CAAW,CAAG,CADT,CAAhD,CAGR,CAN8B,CAM5B,CAAC3B,CAAD,CAAYE,CAAZ,CAAuBzB,CAAvB,CAA8Be,CAA9B,CAN4B,CAjF5B,CAyFH,MACE,0CACE,SAAS,CAAE1B,cAAc,CAAC,CAAEyB,IAAI,CAAJA,CAAF,CAAQE,IAAI,CAAJA,CAAR,CAAcD,IAAI,CAAJA,CAAd,CAAD,CAAuB,CAACG,CAAD,CAAvB,CAD3B,CAEE,GAAG,CAAEvC,UAAU,CAAC,CAACmB,CAAD,CAAM+B,CAAN,CAAD,CAFjB,CAGE,EAAE,CAAEV,CAHN,EAIMvB,CAJN,EAMG+B,CAAY,EACX,2BAAK,GAAG,CAAEG,CAAV,CAAuB,SAAS,CAAEzC,cAAc,CAAC,gBAAD,CAAhD,EACE,2BAAK,SAAS,CAAEA,cAAc,CAAC,QAAD,CAA9B,EACE,oBAAC,MAAD,EACE,IAAI,CAAC,OADP,CAEE,IAAI,CAAC,IAFP,CAGE,IAAI,CAAC,QAHP,CAIE,OAAO,CAAE,yBAAM2C,EAAQ,CAAC,MAAD,CAAd,CAJX,CAKE,QAAQ,CAAE3D,aALZ,CAME,QAAQ,GANV,EADF,CADF,CAWE,2BAAK,SAAS,CAAEgB,cAAc,CAAC,QAAD,CAA9B,EACE,oBAAC,MAAD,EACE,IAAI,CAAC,OADP,CAEE,IAAI,CAAC,IAFP,CAGE,IAAI,CAAC,QAHP,CAIE,OAAO,CAAE,yBAAM2C,EAAQ,CAAC,MAAD,CAAd,CAJX,CAKE,QAAQ,CAAE1D,cALZ,CAME,QAAQ,GANV,EADF,CAXF,CAPJ,CA8BE,2BAAK,GAAG,CAAEsD,CAAV,CAAsB,SAAS,CAAEvC,cAAc,CAAC,SAAD,CAA/C,EACE,2BACE,KAAK,oBACF,wBADE,eADP,CAIE,GAAG,CAAEmC,CAJP,CAKE,SAAS,CAAEnC,cAAc,CAAC,MAAD,CAL3B,EAOGkC,CAAS,CAACmC,GAAV,CAAc,SAACjE,CAAD,CAAOkE,CAAP,QACb,qBAAC,KAAD,CAAO,QAAP,EAAgB,GAAG,CAAEzD,CAAU,CAACT,CAAD,CAA/B,EACGmB,CAAU,CACTnB,CADS,IAGT6B,CAAI,CAACqC,CAAD,CAHK,CAITX,CAAe,CAACY,QAAhB,CAAyBD,CAAzB,CAJS,CADb,CADa,CAAd,CAPH,CADF,CAmBE,2BACE,KAAK,oBACF,wBADE,uBACkDzB,CADlD,QADP,CAIE,SAAS,CAAE7C,cAAc,CAAC,MAAD,CAJ3B,CAKE,GAAG,CAAEqC,CALP,EAOGD,CAAS,CAACiC,GAAV,CAAc,SAACjE,CAAD,CAAOkE,CAAP,QACb,qBAAC,KAAD,CAAO,QAAP,EAAgB,GAAG,CAAEzD,CAAU,CAACT,CAAD,CAA/B,EACGmB,CAAU,CACTnB,CADS,IAGT6B,CAAI,CAACC,CAAS,CAAC+B,MAAV,CAAmBK,CAApB,CAHK,CAITX,CAAe,CAACY,QAAhB,CAAyBrC,CAAS,CAAC+B,MAAV,CAAmBK,CAA5C,CAJS,CAKT1B,CAAK,CAAC0B,CAAD,CALI,CADb,CADa,CAAd,CAPH,CAnBF,CA9BF,CAqEG1D,CAAQ,EACP,2BACE,GAAG,CAAE8B,CADP,CAEE,SAAS,CAAE1C,cAAc,CAAC,QAAD,CAAW,CAAEwE,IAAI,CAAE,KAAR,CAAX,CAF3B,EAIE,oBAAC,MAAD,EACE,IAAI,CAAC,OADP,CAEE,IAAI,CAAC,IAFP,CAGE,IAAI,CAAC,QAHP,CAIE,OAAO,CAAE5D,CAJX,CAKE,QAAQ,CAAE7B,OALZ,CAME,QAAQ,GANV,EAJF,CAtEJ,CAoFE,2BAAK,SAAS,CAAEiB,cAAc,CAAC,OAAD,CAA9B,EApFF,CAuFH,C,CAED,MAAO,IAAMyE,aAAY,CAAGtF,UAAU,CACpCqB,kBADoC,CAA/B"}
1
+ {"version":3,"file":"BookmarkTabsCanary.js","names":["IconAdd","IconArrowLeft","IconArrowRight","React","forwardRef","useMemo","useState","useComponentSize","useForkRef","cnCanary","cn","Button","BookmarkTabsTab","withDefaultGetters","bookmarkTabsPropFormDefault","bookmarkTabsPropSizeDefault","bookmarkTabsPropViewDefault","useBookmarkTabs","cnBookmarkTabs","renderItemDefault","props","_item","item","attributes","as","otherProps","BookmarkTabsRender","ref","items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","renderItemProp","size","form","view","withNavigationButtons","onMouseLeaveProp","onMouseLeave","className","id","higlightedIndex","setHighlitedIndex","getItemActive","withAddButton","refs","fixedTabs","fixedTabsRef","otherTabs","otherTabsRef","showControls","wrapperRef","containerRef","controlsRef","addButtonRef","navigate","sizes","fixedWidth","width","fixed","controlRef","bordered","index","tabWidth","onClick","e","active","label","leftIcon","rightIcon","tabRef","onClose","hovered","borderedIndexes","arr","activeIndex","indexOf","Array","from","length","keys","filter","el","map","includes","type","BookmarkTabs"],"sources":["../../../../../src/components/BookmarkTabsCanary/BookmarkTabsCanary.tsx"],"sourcesContent":["import './BookmarkTabs.css';\n\nimport { IconAdd } from '@consta/icons/IconAdd';\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef, useMemo, useState } from 'react';\n\nimport { useComponentSize } from '##/hooks/useComponentSize';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnCanary as cn } from '##/utils/bem';\n\nimport { Button } from '../Button';\nimport { BookmarkTabsTab } from './BookmarkTabsTab';\nimport { withDefaultGetters } from './helper';\nimport {\n BookmarkTabsComponent,\n bookmarkTabsPropFormDefault,\n BookmarkTabsProps,\n bookmarkTabsPropSizeDefault,\n bookmarkTabsPropViewDefault,\n BookmarkTabsRenderItemProps,\n} from './types';\nimport { useBookmarkTabs } from './useBookmarkTabs';\n\nexport const cnBookmarkTabs = cn('BookmarkTabs');\n\nconst renderItemDefault = <ITEM,>(\n props: BookmarkTabsRenderItemProps<ITEM>,\n): React.ReactElement => {\n const { item: _item, attributes = {}, as, ...otherProps } = props;\n return <BookmarkTabsTab {...attributes} {...otherProps} as={as} />;\n};\n\nconst BookmarkTabsRender = (\n props: BookmarkTabsProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n items = [],\n value,\n onCreate,\n getItemKey,\n getItemLabel,\n getItemLeftIcon,\n getItemRightIcon,\n getItemAs,\n getItemRef,\n getItemAttributes,\n getItemFixed,\n onChange,\n onRemove,\n renderItem: renderItemProp = renderItemDefault,\n size = bookmarkTabsPropSizeDefault,\n form = bookmarkTabsPropFormDefault,\n view = bookmarkTabsPropViewDefault,\n withNavigationButtons,\n onMouseLeave: onMouseLeaveProp,\n className,\n id,\n ...otherProps\n } = withDefaultGetters(props);\n\n const [higlightedIndex, setHighlitedIndex] = useState<number | null>(null);\n\n type Item = typeof items[number];\n\n const getItemActive = (item: Item) => {\n return value ? getItemKey(item) === getItemKey(value) : false;\n };\n\n const {\n refs,\n fixedTabs,\n fixedTabsRef,\n otherTabs,\n otherTabsRef,\n showControls,\n wrapperRef,\n containerRef,\n controlsRef,\n addButtonRef,\n navigate,\n sizes,\n } = useBookmarkTabs({\n items,\n getItemFixed,\n size,\n withNavigationButtons,\n withAddButton: !!onCreate,\n });\n\n const { width: fixedWidth } = useComponentSize(fixedTabsRef);\n\n const renderItem = (\n item: Item,\n fixed: boolean,\n controlRef: React.RefObject<HTMLDivElement>,\n bordered: boolean,\n index: number,\n tabWidth?: string,\n ) => (\n <div\n className={cnBookmarkTabs('Tab')}\n onMouseEnter={() => setHighlitedIndex(index)}\n onFocus={() => setHighlitedIndex(index)}\n ref={controlRef}\n >\n {renderItemProp({\n item,\n onClick: (e) => onChange?.(item, { e }),\n active: getItemActive(item),\n label: getItemLabel(item),\n leftIcon: getItemLeftIcon(item),\n rightIcon: getItemRightIcon(item),\n as: getItemAs(item) ?? 'div',\n attributes: getItemAttributes(item),\n tabRef: getItemRef(item),\n fixed,\n bordered,\n onClose: onRemove ? (e) => onRemove(item, { e }) : undefined,\n size,\n view,\n hovered: higlightedIndex === index,\n form,\n tabWidth,\n })}\n </div>\n );\n\n const onMouseLeave: React.MouseEventHandler<HTMLDivElement> = (e) => {\n onMouseLeaveProp?.(e);\n setHighlitedIndex(null);\n };\n\n const borderedIndexes = useMemo(() => {\n const arr = [...fixedTabs, ...otherTabs];\n const activeIndex = value ? arr.indexOf(value) : -1;\n return Array.from(Array(arr.length - 1).keys()).filter((el) =>\n form === 'round' ? el !== activeIndex && el !== activeIndex - 1 : true,\n );\n }, [fixedTabs, otherTabs, value, form]);\n\n return (\n <div\n className={cnBookmarkTabs({ size, view, form }, [className])}\n ref={useForkRef([ref, containerRef])}\n id={id}\n onMouseLeave={onMouseLeave}\n {...otherProps}\n >\n {showControls && (\n <div ref={controlsRef} className={cnBookmarkTabs('ScrollControls')}>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={() => navigate('prev')}\n iconLeft={IconArrowLeft}\n onlyIcon\n />\n </div>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={() => navigate('next')}\n iconLeft={IconArrowRight}\n onlyIcon\n />\n </div>\n </div>\n )}\n <div ref={wrapperRef} className={cnBookmarkTabs('Wrapper')}>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `max-content`,\n }}\n ref={fixedTabsRef}\n className={cnBookmarkTabs('List')}\n >\n {fixedTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n true,\n refs[index],\n borderedIndexes.includes(index),\n index,\n )}\n </React.Fragment>\n ))}\n </div>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `calc(100% - ${fixedWidth}px)`,\n }}\n className={cnBookmarkTabs('List')}\n ref={otherTabsRef}\n >\n {otherTabs.map((item, index) => {\n const { length } = fixedTabs;\n return (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n false,\n refs[length + index],\n borderedIndexes.includes(length + index),\n length + index,\n sizes[index],\n )}\n </React.Fragment>\n );\n })}\n </div>\n </div>\n {onCreate && (\n <div\n ref={addButtonRef}\n className={cnBookmarkTabs('Button', { type: 'add' })}\n >\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={onCreate}\n iconLeft={IconAdd}\n onlyIcon\n />\n </div>\n )}\n <div className={cnBookmarkTabs('Empty')} />\n </div>\n );\n};\n\nexport const BookmarkTabs = forwardRef(\n BookmarkTabsRender,\n) as BookmarkTabsComponent;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- .canary--BookmarkTabsTab{--bookmark-tabs-tab-close-size:0px;--bookmark-tabs-tab-right-icon-size:0px;align-items:center;background:none;border:none;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--bookmark-tabs-tab-size);max-height:100%;max-width:200px;min-width:calc(var(--bookmark-tabs-tab-close-size) + var(--bookmark-tabs-tab-right-icon-size) + var(--bookmark-tabs-tab-left-icon-size) + var(--space-3xl) + var(--space-m));overflow:hidden;padding:var(--bookmark-tabs-tab-padding-top) var(--space-xs);position:relative;transition:background-color .3s,box-shadow .3s;width:var(--bookmarks-tab-width)}.canary--BookmarkTabsTab:hover,.canary--BookmarkTabsTab:not(.canary--BookmarkTabsTab_active):focus{--bookmark-tabs-tab-color:var(--color-control-typo-ghost-hover);background-color:var(--color-control-bg-ghost-hover)}.canary--BookmarkTabsTab:not(.canary--BookmarkTabsTab_active){border-bottom:1px solid var(--color-bg-border)}.canary--BookmarkTabsTab:not(.canary--BookmarkTabsTab_withLeftIcon){--bookmark-tabs-tab-left-icon-size:0px}.canary--BookmarkTabsTab_withCloseButton{--bookmark-tabs-tab-close-size:var(--space-2xl)}.canary--BookmarkTabsTab_withRightIcon{--bookmark-tabs-tab-right-icon-size:var(--space-l)}.canary--BookmarkTabsTab_view_ghost{--bookmark-tabs-tab-color:var(--color-typo-primary);background:var(--color-bg-secondary)}.canary--BookmarkTabsTab_view_clear{--bookmark-tabs-tab-color:var(--color-typo-secondary)}.canary--BookmarkTabsTab_size_s{--bookmark-tabs-tab-size:var(--space-2xl);--bookmark-tabs-tab-padding-top:var(--space-2xs);--bookmark-tabs-tab-left-icon-size:var(--space-l)}.canary--BookmarkTabsTab_size_m{--bookmark-tabs-tab-size:var(--space-3xl);--bookmark-tabs-tab-padding-top:var(--space-xs);--bookmark-tabs-tab-left-icon-size:var(--space-2xl)}.canary--BookmarkTabsTab_bordered:after{background:var(--color-bg-border);content:"";height:var(--bookmark-divider-height);position:absolute;right:0;top:var(--bookmark-divider-top);width:1px}.canary--BookmarkTabsTab_form_round{--bookmark-divider-top:calc(var(--space-l)/2);--bookmark-divider-height:calc(100% - var(--space-l));border-radius:var(--space-xs) var(--space-xs) 0 0}.canary--BookmarkTabsTab_form_round.canary--BookmarkTabsTab_active{border-left:1px solid var(--color-bg-border);border-right:1px solid var(--color-bg-border);border-top:1px solid var(--color-bg-border);padding-top:calc(var(--bookmark-tabs-tab-padding-top) - 1px)}.canary--BookmarkTabsTab_form_brick{--bookmark-divider-height:100%;--bookmark-divider-top:0}.canary--BookmarkTabsTab_fixed{--bookmark-tabs-tab-padding-top:var(--space-xs);min-width:var(--bookmark-tabs-tab-size);width:var(--bookmark-tabs-tab-size)}.canary--BookmarkTabsTab_active{--bookmark-tabs-tab-color:var(--color-typo-primary);background:var(--color-bg-default)}.canary--BookmarkTabsTab-Icon_side_left,.canary--BookmarkTabsTab-Label.Text{color:var(--bookmark-tabs-tab-color);transition:color .3s}.canary--BookmarkTabsTab-Icon{display:block;min-width:var(--icon-size)}.canary--BookmarkTabsTab-Label{flex:auto;min-width:var(--space-3xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1
+ .canary--BookmarkTabsTab{--bookmark-tabs-tab-close-size:0px;--bookmark-tabs-tab-right-icon-size:0px;align-items:center;background:none;border:none;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--bookmark-tabs-tab-size);max-height:100%;max-width:200px;min-width:calc(var(--bookmark-tabs-tab-close-size) + var(--bookmark-tabs-tab-right-icon-size) + var(--bookmark-tabs-tab-left-icon-size) + var(--space-3xl) + var(--space-m));overflow:hidden;padding:var(--bookmark-tabs-tab-padding-top) var(--space-xs);position:relative;transition:background-color .3s,box-shadow .3s;width:var(--bookmarks-tab-width)}.canary--BookmarkTabsTab:not(.canary--BookmarkTabsTab_active){border-bottom:1px solid var(--color-bg-border)}.canary--BookmarkTabsTab:not(.canary--BookmarkTabsTab_withLeftIcon){--bookmark-tabs-tab-left-icon-size:0px}.canary--BookmarkTabsTab_withCloseButton{--bookmark-tabs-tab-close-size:var(--space-2xl)}.canary--BookmarkTabsTab_withRightIcon{--bookmark-tabs-tab-right-icon-size:var(--space-l)}.canary--BookmarkTabsTab_view_ghost{--bookmark-tabs-tab-color:var(--color-typo-primary);background:var(--color-bg-secondary)}.canary--BookmarkTabsTab_view_clear{--bookmark-tabs-tab-color:var(--color-typo-secondary)}.canary--BookmarkTabsTab_size_s{--bookmark-tabs-tab-size:var(--space-2xl);--bookmark-tabs-tab-padding-top:var(--space-2xs);--bookmark-tabs-tab-left-icon-size:var(--space-l)}.canary--BookmarkTabsTab_size_m{--bookmark-tabs-tab-size:var(--space-3xl);--bookmark-tabs-tab-padding-top:var(--space-xs);--bookmark-tabs-tab-left-icon-size:var(--space-2xl)}.canary--BookmarkTabsTab_bordered:after{background:var(--color-bg-border);content:"";height:var(--bookmark-divider-height);position:absolute;right:0;top:var(--bookmark-divider-top);width:1px}.canary--BookmarkTabsTab_form_round{--bookmark-divider-top:calc(var(--space-l)/2);--bookmark-divider-height:calc(100% - var(--space-l));border-radius:var(--space-xs) var(--space-xs) 0 0}.canary--BookmarkTabsTab_form_round.canary--BookmarkTabsTab_active{border-left:1px solid var(--color-bg-border);border-right:1px solid var(--color-bg-border);border-top:1px solid var(--color-bg-border);padding-top:calc(var(--bookmark-tabs-tab-padding-top) - 1px)}.canary--BookmarkTabsTab_form_brick{--bookmark-divider-height:100%;--bookmark-divider-top:0}.canary--BookmarkTabsTab_fixed{--bookmark-tabs-tab-padding-top:var(--space-xs);min-width:var(--bookmark-tabs-tab-size);width:var(--bookmark-tabs-tab-size)}.canary--BookmarkTabsTab_hovered[class*=view]{--bookmark-tabs-tab-color:var(--color-control-typo-ghost-hover);background-color:var(--color-control-bg-ghost-hover)}.canary--BookmarkTabsTab_active{--bookmark-tabs-tab-color:var(--color-typo-primary);background:var(--color-bg-default)}.canary--BookmarkTabsTab-Icon_side_left,.canary--BookmarkTabsTab-Label.Text{color:var(--bookmark-tabs-tab-color);transition:color .3s}.canary--BookmarkTabsTab-Icon{display:block;min-width:var(--icon-size)}.canary--BookmarkTabsTab-Label{flex:auto;min-width:var(--space-3xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["label","leftIcon","rightIcon","as","onClick","size","form","active","fixed","tabRef","controlRef","onClose","onKeyDown","view","className","bordered","tabWidth","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./BookmarkTabsTab.css";import{IconClose}from"@consta/icons/IconClose";import React,{forwardRef,useRef}from"react";import{Button}from"../../Button";import{Text}from"../../Text";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixSpace}from"../../../mixs/MixSpace";import{cnCanary as cn}from"../../../utils/bem";export var cnBookmarkTabsTab=cn("BookmarkTabsTab");var BookmarkTabsTabRender=function(a,b){var c=a.label,d=a.leftIcon,e=a.rightIcon,f=a.as,g=void 0===f?"div":f,h=a.onClick,i=a.size,j=a.form,k=a.active,l=a.fixed,m=a.tabRef,n=a.controlRef,o=a.onClose,p=a.onKeyDown,q=a.view,r=a.className,s=a.bordered,t=a.tabWidth,u=void 0===t?"100%":t,v=a.style,w=_objectWithoutProperties(a,_excluded),x=useRef(null),y=useRef(null);return React.createElement(g,Object.assign({className:cnBookmarkTabsTab({size:i,form:j,view:q,active:k,fixed:l,bordered:s,withCloseButton:!!o,withLeftIcon:!!d,withRightIcon:!!e},[r]),role:"button",onClick:h,onKeyDown:function onKeyDown(a){var b=a.code;if(null===p||void 0===p?void 0:p(a),o&&"Enter"===b){var c;a.stopPropagation(),a.preventDefault(),null===(c=x.current)||void 0===c?void 0:c.focus()}},ref:useForkRef([b,m,n,y]),style:_objectSpread(_defineProperty({},"--bookmarks-tab-width",u),v)},w),d&&React.createElement(d,{className:cnBookmarkTabsTab("Icon",{side:"left"},[l?void 0:cnMixSpace({mR:"s"===i?"2xs":"xs"})]),size:i}),!l&&React.createElement(React.Fragment,null,React.createElement(Text,{align:"left",className:cnBookmarkTabsTab("Label"),size:i},c),e&&React.createElement(e,{className:cnBookmarkTabsTab("Icon",{side:"right"},[cnMixSpace({mL:"xs"})]),size:"xs",view:"secondary"}),o&&React.createElement(Button,{size:"xs",onlyIcon:!0,ref:x,type:"button",view:"clear",onKeyDown:function onCloseKeydown(a){var b=a.code;if(a.stopPropagation(),a.preventDefault(),"Tab"===b||"Escape"===b){var c;null===y||void 0===y||null===(c=y.current)||void 0===c?void 0:c.focus()}("Enter"===b||"Space"===b)&&(null===o||void 0===o?void 0:o(a))},tabIndex:-1,className:cnBookmarkTabsTab("Button",[cnMixSpace({mL:"xs"})]),onClick:o,iconLeft:IconClose})))};export var BookmarkTabsTab=forwardRef(BookmarkTabsTabRender);
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["label","leftIcon","rightIcon","as","onClick","size","form","active","fixed","tabRef","hovered","onClose","onKeyDown","view","className","bordered","tabWidth","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./BookmarkTabsTab.css";import{IconClose}from"@consta/icons/IconClose";import React,{forwardRef,useRef}from"react";import{Button}from"../../Button";import{Text}from"../../Text";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixSpace}from"../../../mixs/MixSpace";import{cnCanary as cn}from"../../../utils/bem";export var cnBookmarkTabsTab=cn("BookmarkTabsTab");var BookmarkTabsTabRender=function(a,b){var c=a.label,d=a.leftIcon,e=a.rightIcon,f=a.as,g=void 0===f?"div":f,h=a.onClick,i=a.size,j=a.form,k=a.active,l=a.fixed,m=a.tabRef,n=a.hovered,o=a.onClose,p=a.onKeyDown,q=a.view,r=a.className,s=a.bordered,t=a.tabWidth,u=void 0===t?"100%":t,v=a.style,w=_objectWithoutProperties(a,_excluded),x=useRef(null),y=useRef(null);return React.createElement(g,Object.assign({className:cnBookmarkTabsTab({size:i,form:j,view:q,active:k,hovered:n,fixed:l,bordered:s,withCloseButton:!!o,withLeftIcon:!!d,withRightIcon:!!e},[r]),role:"button",onClick:h,onKeyDown:function onKeyDown(a){var b=a.code;if(null===p||void 0===p?void 0:p(a),o&&"Enter"===b){var c;a.stopPropagation(),a.preventDefault(),null===(c=x.current)||void 0===c?void 0:c.focus()}},ref:useForkRef([b,m,y]),style:_objectSpread(_defineProperty({},"--bookmarks-tab-width",u),v)},w),d&&React.createElement(d,{className:cnBookmarkTabsTab("Icon",{side:"left"},[l?void 0:cnMixSpace({mR:"s"===i?"2xs":"xs"})]),size:i}),!l&&React.createElement(React.Fragment,null,React.createElement(Text,{align:"left",className:cnBookmarkTabsTab("Label"),size:i},c),e&&React.createElement(e,{className:cnBookmarkTabsTab("Icon",{side:"right"},[cnMixSpace({mL:"xs"})]),size:"xs",view:"secondary"}),o&&React.createElement(Button,{size:"xs",onlyIcon:!0,ref:x,type:"button",view:"clear",onKeyDown:function onCloseKeydown(a){var b=a.code;if(a.stopPropagation(),a.preventDefault(),"Tab"===b||"Escape"===b){var c;null===y||void 0===y||null===(c=y.current)||void 0===c?void 0:c.focus()}("Enter"===b||"Space"===b)&&(null===o||void 0===o?void 0:o(a))},tabIndex:-1,className:cnBookmarkTabsTab("Button",[cnMixSpace({mL:"xs"})]),onClick:o,iconLeft:IconClose})))};export var BookmarkTabsTab=forwardRef(BookmarkTabsTabRender);
2
2
  //# sourceMappingURL=BookmarkTabsTab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BookmarkTabsTab.js","names":["IconClose","React","forwardRef","useRef","Button","Text","useForkRef","cnMixSpace","cnCanary","cn","cnBookmarkTabsTab","BookmarkTabsTabRender","props","ref","label","LeftIcon","leftIcon","RightIcon","rightIcon","as","Tag","onClick","size","form","active","fixed","tabRef","controlRef","onClose","onKeyDownProp","onKeyDown","view","className","bordered","tabWidth","style","otherProps","closeButtonRef","tagRef","withCloseButton","withLeftIcon","withRightIcon","e","code","stopPropagation","preventDefault","current","focus","side","mR","mL","onCloseKeydown","BookmarkTabsTab"],"sources":["../../../../../../src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.tsx"],"sourcesContent":["import './BookmarkTabsTab.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { Text } from '##/components/Text';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cnCanary as cn } from '##/utils/bem';\n\nimport { BookmarkTabsTabComponent, BookmarkTabsTabProps } from '../types';\n\nexport const cnBookmarkTabsTab = cn('BookmarkTabsTab');\n\nconst BookmarkTabsTabRender = (\n props: BookmarkTabsTabProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n label,\n leftIcon: LeftIcon,\n rightIcon: RightIcon,\n as: Tag = 'div',\n onClick,\n size,\n form,\n active,\n fixed,\n tabRef,\n controlRef,\n onClose,\n onKeyDown: onKeyDownProp,\n view,\n className,\n bordered,\n tabWidth = '100%',\n style,\n ...otherProps\n } = props;\n\n const closeButtonRef = useRef<HTMLButtonElement>(null);\n const tagRef = useRef<HTMLDivElement>(null);\n\n const onCloseKeydown: React.KeyboardEventHandler = (e) => {\n const { code } = e;\n e.stopPropagation();\n e.preventDefault();\n if (code === 'Tab' || code === 'Escape') {\n tagRef?.current?.focus();\n }\n if (code === 'Enter' || code === 'Space') {\n onClose?.(e);\n }\n };\n\n const onKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (e) => {\n const { code } = e;\n onKeyDownProp?.(e);\n if (onClose && code === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n closeButtonRef.current?.focus();\n }\n };\n\n return (\n <Tag\n className={cnBookmarkTabsTab(\n {\n size,\n form,\n view,\n active,\n fixed,\n bordered,\n withCloseButton: !!onClose,\n withLeftIcon: !!LeftIcon,\n withRightIcon: !!RightIcon,\n },\n [className],\n )}\n role=\"button\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n ref={useForkRef([ref, tabRef, controlRef, tagRef])}\n style={{\n ['--bookmarks-tab-width' as string]: tabWidth,\n ...style,\n }}\n {...otherProps}\n >\n {LeftIcon && (\n <LeftIcon\n className={cnBookmarkTabsTab('Icon', { side: 'left' }, [\n fixed ? undefined : cnMixSpace({ mR: size === 's' ? '2xs' : 'xs' }),\n ])}\n size={size}\n />\n )}\n {!fixed && (\n <>\n <Text align=\"left\" className={cnBookmarkTabsTab('Label')} size={size}>\n {label}\n </Text>\n {RightIcon && (\n <RightIcon\n className={cnBookmarkTabsTab('Icon', { side: 'right' }, [\n cnMixSpace({ mL: 'xs' }),\n ])}\n size=\"xs\"\n view=\"secondary\"\n />\n )}\n {onClose && (\n <Button\n size=\"xs\"\n onlyIcon\n ref={closeButtonRef}\n type=\"button\"\n view=\"clear\"\n onKeyDown={onCloseKeydown}\n tabIndex={-1}\n className={cnBookmarkTabsTab('Button', [\n cnMixSpace({ mL: 'xs' }),\n ])}\n onClick={onClose}\n iconLeft={IconClose}\n />\n )}\n </>\n )}\n </Tag>\n );\n};\n\nexport const BookmarkTabsTab = forwardRef(\n BookmarkTabsTabRender,\n) as BookmarkTabsTabComponent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BookmarkTabsTab.js","names":["IconClose","React","forwardRef","useRef","Button","Text","useForkRef","cnMixSpace","cnCanary","cn","cnBookmarkTabsTab","BookmarkTabsTabRender","props","ref","label","LeftIcon","leftIcon","RightIcon","rightIcon","as","Tag","onClick","size","form","active","fixed","tabRef","hovered","onClose","onKeyDownProp","onKeyDown","view","className","bordered","tabWidth","style","otherProps","closeButtonRef","tagRef","withCloseButton","withLeftIcon","withRightIcon","e","code","stopPropagation","preventDefault","current","focus","side","mR","mL","onCloseKeydown","BookmarkTabsTab"],"sources":["../../../../../../src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.tsx"],"sourcesContent":["import './BookmarkTabsTab.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { Text } from '##/components/Text';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cnCanary as cn } from '##/utils/bem';\n\nimport { BookmarkTabsTabComponent, BookmarkTabsTabProps } from '../types';\n\nexport const cnBookmarkTabsTab = cn('BookmarkTabsTab');\n\nconst BookmarkTabsTabRender = (\n props: BookmarkTabsTabProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n label,\n leftIcon: LeftIcon,\n rightIcon: RightIcon,\n as: Tag = 'div',\n onClick,\n size,\n form,\n active,\n fixed,\n tabRef,\n hovered,\n onClose,\n onKeyDown: onKeyDownProp,\n view,\n className,\n bordered,\n tabWidth = '100%',\n style,\n ...otherProps\n } = props;\n\n const closeButtonRef = useRef<HTMLButtonElement>(null);\n const tagRef = useRef<HTMLDivElement>(null);\n\n const onCloseKeydown: React.KeyboardEventHandler = (e) => {\n const { code } = e;\n e.stopPropagation();\n e.preventDefault();\n if (code === 'Tab' || code === 'Escape') {\n tagRef?.current?.focus();\n }\n if (code === 'Enter' || code === 'Space') {\n onClose?.(e);\n }\n };\n\n const onKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (e) => {\n const { code } = e;\n onKeyDownProp?.(e);\n if (onClose && code === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n closeButtonRef.current?.focus();\n }\n };\n\n return (\n <Tag\n className={cnBookmarkTabsTab(\n {\n size,\n form,\n view,\n active,\n hovered,\n fixed,\n bordered,\n withCloseButton: !!onClose,\n withLeftIcon: !!LeftIcon,\n withRightIcon: !!RightIcon,\n },\n [className],\n )}\n role=\"button\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n ref={useForkRef([ref, tabRef, tagRef])}\n style={{\n ['--bookmarks-tab-width' as string]: tabWidth,\n ...style,\n }}\n {...otherProps}\n >\n {LeftIcon && (\n <LeftIcon\n className={cnBookmarkTabsTab('Icon', { side: 'left' }, [\n fixed ? undefined : cnMixSpace({ mR: size === 's' ? '2xs' : 'xs' }),\n ])}\n size={size}\n />\n )}\n {!fixed && (\n <>\n <Text align=\"left\" className={cnBookmarkTabsTab('Label')} size={size}>\n {label}\n </Text>\n {RightIcon && (\n <RightIcon\n className={cnBookmarkTabsTab('Icon', { side: 'right' }, [\n cnMixSpace({ mL: 'xs' }),\n ])}\n size=\"xs\"\n view=\"secondary\"\n />\n )}\n {onClose && (\n <Button\n size=\"xs\"\n onlyIcon\n ref={closeButtonRef}\n type=\"button\"\n view=\"clear\"\n onKeyDown={onCloseKeydown}\n tabIndex={-1}\n className={cnBookmarkTabsTab('Button', [\n cnMixSpace({ mL: 'xs' }),\n ])}\n onClick={onClose}\n iconLeft={IconClose}\n />\n )}\n </>\n )}\n </Tag>\n );\n};\n\nexport const BookmarkTabsTab = forwardRef(\n BookmarkTabsTabRender,\n) as BookmarkTabsTabComponent;\n"],"mappings":"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"}
@@ -36,6 +36,7 @@ export declare type BookmarkTabsPropOnChange<ITEM> = (value: ITEM, params: {
36
36
  }) => void;
37
37
  export declare type BookmarkTabsRenderItemProps<ITEM> = {
38
38
  item: ITEM;
39
+ hovered?: boolean;
39
40
  onClick: React.MouseEventHandler;
40
41
  active?: boolean;
41
42
  onClose?: React.MouseEventHandler;
@@ -45,7 +46,6 @@ export declare type BookmarkTabsRenderItemProps<ITEM> = {
45
46
  bordered?: boolean;
46
47
  tabWidth?: string;
47
48
  tabRef?: React.RefObject<HTMLElement>;
48
- controlRef?: React.RefObject<HTMLElement>;
49
49
  } & Omit<BookmarkTabsItemDefault, 'key' | 'ref'>;
50
50
  export declare type BookmarkTabsPropRenderItem<ITEM> = (props: BookmarkTabsRenderItemProps<ITEM>) => React.ReactElement | null;
51
51
  export declare type BookmarkTabsProps<ITEM = BookmarkTabsItemDefault> = PropsWithHTMLAttributesAndRef<{
@@ -77,6 +77,7 @@ export declare type BookmarkTabsProps<ITEM = BookmarkTabsItemDefault> = PropsWit
77
77
  });
78
78
  export declare type BookmarkTabsComponent = <ITEM>(props: BookmarkTabsProps<ITEM>) => React.ReactElement | null;
79
79
  export declare type BookmarkTabsTabProps<AS extends AsTags = 'div'> = PropsWithAsAttributes<{
80
+ hovered?: boolean;
80
81
  size: BookmarkTabsPropSize;
81
82
  form: BookmarkTabsPropForm;
82
83
  view: BookmarkTabsPropView;
@@ -84,7 +85,6 @@ export declare type BookmarkTabsTabProps<AS extends AsTags = 'div'> = PropsWithA
84
85
  tabWidth?: string;
85
86
  bordered?: boolean;
86
87
  tabRef?: React.RefObject<HTMLElement>;
87
- controlRef?: React.RefObject<HTMLElement>;
88
88
  fixed?: boolean;
89
89
  onClose?: React.ReactEventHandler;
90
90
  }, AS> & Omit<BookmarkTabsItemDefault, 'key' | 'attributes' | 'ref'>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["bookmarkTabsPropSize","bookmarkTabsPropSizeDefault","bookmarkTabsPropForm","bookmarkTabsPropFormDefault","bookmarkTabsPropView","bookmarkTabsPropViewDefault"],"sources":["../../../../../src/components/BookmarkTabsCanary/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { AsAttributes, AsTags } from '##/utils/types/AsTags';\nimport { PropsWithAsAttributes } from '##/utils/types/PropsWithAsAttributes';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const bookmarkTabsPropSize = ['m', 's'] as const;\nexport type BookmarkTabsPropSize = typeof bookmarkTabsPropSize[number];\nexport const bookmarkTabsPropSizeDefault: BookmarkTabsPropSize =\n bookmarkTabsPropSize[0];\n\nexport const bookmarkTabsPropForm = ['brick', 'round'] as const;\nexport type BookmarkTabsPropForm = typeof bookmarkTabsPropForm[number];\nexport const bookmarkTabsPropFormDefault: BookmarkTabsPropForm =\n bookmarkTabsPropForm[0];\n\nexport const bookmarkTabsPropView = ['ghost', 'clear'] as const;\nexport type BookmarkTabsPropView = typeof bookmarkTabsPropView[number];\nexport const bookmarkTabsPropViewDefault: BookmarkTabsPropView =\n bookmarkTabsPropView[0];\n\nexport type BookmarkTabsItemDefault = {\n key: string | number;\n label?: string | number;\n leftIcon?: IconComponent;\n rightIcon?: IconComponent;\n fixed?: boolean;\n as?: AsTags;\n ref?: React.RefObject<HTMLElement>;\n attributes?: AsAttributes;\n};\n\nexport type BookmarkTabsPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type BookmarkTabsPropGetItemLabel<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type BookmarkTabsPropGetItemLeftIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type BookmarkTabsPropGetItemRightIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type BookmarkTabsPropGetItemFixed<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\nexport type BookmarkTabsPropGetItemAs<ITEM> = (\n item: ITEM,\n) => AsTags | undefined;\nexport type BookmarkTabsPropGetItemRef<ITEM> = (\n item: ITEM,\n) => React.RefObject<HTMLElement> | undefined;\nexport type BookmarkTabsPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => AsAttributes | undefined;\n\nexport type BookmarkTabsPropOnChange<ITEM> = (\n value: ITEM,\n params: {\n e: React.MouseEvent;\n id?: string;\n },\n) => void;\n\nexport type BookmarkTabsRenderItemProps<ITEM> = {\n item: ITEM;\n onClick: React.MouseEventHandler;\n active?: boolean;\n onClose?: React.MouseEventHandler;\n size: BookmarkTabsPropSize;\n form: BookmarkTabsPropForm;\n view: BookmarkTabsPropView;\n bordered?: boolean;\n tabWidth?: string;\n tabRef?: React.RefObject<HTMLElement>;\n controlRef?: React.RefObject<HTMLElement>;\n} & Omit<BookmarkTabsItemDefault, 'key' | 'ref'>;\n\nexport type BookmarkTabsPropRenderItem<ITEM> = (\n props: BookmarkTabsRenderItemProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type BookmarkTabsProps<ITEM = BookmarkTabsItemDefault> =\n PropsWithHTMLAttributesAndRef<\n {\n size?: BookmarkTabsPropSize;\n form?: BookmarkTabsPropForm;\n view?: BookmarkTabsPropView;\n items: ITEM[];\n value?: ITEM | null;\n getItemKey?: BookmarkTabsPropGetItemKey<ITEM>;\n getItemLabel?: BookmarkTabsPropGetItemLabel<ITEM>;\n getItemLeftIcon?: BookmarkTabsPropGetItemLeftIcon<ITEM>;\n getItemRightIcon?: BookmarkTabsPropGetItemRightIcon<ITEM>;\n getItemFixed?: BookmarkTabsPropGetItemFixed<ITEM>;\n getItemAs?: BookmarkTabsPropGetItemAs<ITEM>;\n getItemRef?: BookmarkTabsPropGetItemRef<ITEM>;\n getItemAttributes?: BookmarkTabsPropGetItemAttributes<ITEM>;\n children?: never;\n withNavigationButtons?: boolean;\n onCreate?: React.MouseEventHandler;\n onRemove?: (item: ITEM, params: { e: React.MouseEvent }) => void;\n onChange?: BookmarkTabsPropOnChange<ITEM>;\n renderItem?: BookmarkTabsPropRenderItem<ITEM>;\n },\n HTMLDivElement\n > &\n (ITEM extends { key: string | number }\n ? {}\n : {\n getItemKey: BookmarkTabsPropGetItemKey<ITEM>;\n });\n\nexport type BookmarkTabsComponent = <ITEM>(\n props: BookmarkTabsProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type BookmarkTabsTabProps<AS extends AsTags = 'div'> =\n PropsWithAsAttributes<\n {\n size: BookmarkTabsPropSize;\n form: BookmarkTabsPropForm;\n view: BookmarkTabsPropView;\n active?: boolean;\n tabWidth?: string;\n bordered?: boolean;\n tabRef?: React.RefObject<HTMLElement>;\n controlRef?: React.RefObject<HTMLElement>;\n fixed?: boolean;\n onClose?: React.ReactEventHandler;\n },\n AS\n > &\n Omit<BookmarkTabsItemDefault, 'key' | 'attributes' | 'ref'>;\n\nexport type BookmarkTabsTabComponent = <AS extends AsTags = 'div'>(\n props: BookmarkTabsTabProps<AS>,\n) => React.ReactElement | null;\n"],"mappings":"AAOA,MAAO,IAAMA,qBAAoB,CAAG,CAAC,GAAD,CAAM,GAAN,CAA7B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,oBAAoB,CAAC,CAAD,CADf,CAGP,MAAO,IAAME,qBAAoB,CAAG,CAAC,OAAD,CAAU,OAAV,CAA7B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,oBAAoB,CAAC,CAAD,CADf,CAGP,MAAO,IAAME,qBAAoB,CAAG,CAAC,OAAD,CAAU,OAAV,CAA7B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,oBAAoB,CAAC,CAAD,CADf"}
1
+ {"version":3,"file":"types.js","names":["bookmarkTabsPropSize","bookmarkTabsPropSizeDefault","bookmarkTabsPropForm","bookmarkTabsPropFormDefault","bookmarkTabsPropView","bookmarkTabsPropViewDefault"],"sources":["../../../../../src/components/BookmarkTabsCanary/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { AsAttributes, AsTags } from '##/utils/types/AsTags';\nimport { PropsWithAsAttributes } from '##/utils/types/PropsWithAsAttributes';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const bookmarkTabsPropSize = ['m', 's'] as const;\nexport type BookmarkTabsPropSize = typeof bookmarkTabsPropSize[number];\nexport const bookmarkTabsPropSizeDefault: BookmarkTabsPropSize =\n bookmarkTabsPropSize[0];\n\nexport const bookmarkTabsPropForm = ['brick', 'round'] as const;\nexport type BookmarkTabsPropForm = typeof bookmarkTabsPropForm[number];\nexport const bookmarkTabsPropFormDefault: BookmarkTabsPropForm =\n bookmarkTabsPropForm[0];\n\nexport const bookmarkTabsPropView = ['ghost', 'clear'] as const;\nexport type BookmarkTabsPropView = typeof bookmarkTabsPropView[number];\nexport const bookmarkTabsPropViewDefault: BookmarkTabsPropView =\n bookmarkTabsPropView[0];\n\nexport type BookmarkTabsItemDefault = {\n key: string | number;\n label?: string | number;\n leftIcon?: IconComponent;\n rightIcon?: IconComponent;\n fixed?: boolean;\n as?: AsTags;\n ref?: React.RefObject<HTMLElement>;\n attributes?: AsAttributes;\n};\n\nexport type BookmarkTabsPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type BookmarkTabsPropGetItemLabel<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type BookmarkTabsPropGetItemLeftIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type BookmarkTabsPropGetItemRightIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type BookmarkTabsPropGetItemFixed<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\nexport type BookmarkTabsPropGetItemAs<ITEM> = (\n item: ITEM,\n) => AsTags | undefined;\nexport type BookmarkTabsPropGetItemRef<ITEM> = (\n item: ITEM,\n) => React.RefObject<HTMLElement> | undefined;\nexport type BookmarkTabsPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => AsAttributes | undefined;\n\nexport type BookmarkTabsPropOnChange<ITEM> = (\n value: ITEM,\n params: {\n e: React.MouseEvent;\n id?: string;\n },\n) => void;\n\nexport type BookmarkTabsRenderItemProps<ITEM> = {\n item: ITEM;\n hovered?: boolean;\n onClick: React.MouseEventHandler;\n active?: boolean;\n onClose?: React.MouseEventHandler;\n size: BookmarkTabsPropSize;\n form: BookmarkTabsPropForm;\n view: BookmarkTabsPropView;\n bordered?: boolean;\n tabWidth?: string;\n tabRef?: React.RefObject<HTMLElement>;\n} & Omit<BookmarkTabsItemDefault, 'key' | 'ref'>;\n\nexport type BookmarkTabsPropRenderItem<ITEM> = (\n props: BookmarkTabsRenderItemProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type BookmarkTabsProps<ITEM = BookmarkTabsItemDefault> =\n PropsWithHTMLAttributesAndRef<\n {\n size?: BookmarkTabsPropSize;\n form?: BookmarkTabsPropForm;\n view?: BookmarkTabsPropView;\n items: ITEM[];\n value?: ITEM | null;\n getItemKey?: BookmarkTabsPropGetItemKey<ITEM>;\n getItemLabel?: BookmarkTabsPropGetItemLabel<ITEM>;\n getItemLeftIcon?: BookmarkTabsPropGetItemLeftIcon<ITEM>;\n getItemRightIcon?: BookmarkTabsPropGetItemRightIcon<ITEM>;\n getItemFixed?: BookmarkTabsPropGetItemFixed<ITEM>;\n getItemAs?: BookmarkTabsPropGetItemAs<ITEM>;\n getItemRef?: BookmarkTabsPropGetItemRef<ITEM>;\n getItemAttributes?: BookmarkTabsPropGetItemAttributes<ITEM>;\n children?: never;\n withNavigationButtons?: boolean;\n onCreate?: React.MouseEventHandler;\n onRemove?: (item: ITEM, params: { e: React.MouseEvent }) => void;\n onChange?: BookmarkTabsPropOnChange<ITEM>;\n renderItem?: BookmarkTabsPropRenderItem<ITEM>;\n },\n HTMLDivElement\n > &\n (ITEM extends { key: string | number }\n ? {}\n : {\n getItemKey: BookmarkTabsPropGetItemKey<ITEM>;\n });\n\nexport type BookmarkTabsComponent = <ITEM>(\n props: BookmarkTabsProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type BookmarkTabsTabProps<AS extends AsTags = 'div'> =\n PropsWithAsAttributes<\n {\n hovered?: boolean;\n size: BookmarkTabsPropSize;\n form: BookmarkTabsPropForm;\n view: BookmarkTabsPropView;\n active?: boolean;\n tabWidth?: string;\n bordered?: boolean;\n tabRef?: React.RefObject<HTMLElement>;\n fixed?: boolean;\n onClose?: React.ReactEventHandler;\n },\n AS\n > &\n Omit<BookmarkTabsItemDefault, 'key' | 'attributes' | 'ref'>;\n\nexport type BookmarkTabsTabComponent = <AS extends AsTags = 'div'>(\n props: BookmarkTabsTabProps<AS>,\n) => React.ReactElement | null;\n"],"mappings":"AAOA,MAAO,IAAMA,qBAAoB,CAAG,CAAC,GAAD,CAAM,GAAN,CAA7B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,oBAAoB,CAAC,CAAD,CADf,CAGP,MAAO,IAAME,qBAAoB,CAAG,CAAC,OAAD,CAAU,OAAV,CAA7B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,oBAAoB,CAAC,CAAD,CADf,CAGP,MAAO,IAAME,qBAAoB,CAAG,CAAC,OAAD,CAAU,OAAV,CAA7B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,oBAAoB,CAAC,CAAD,CADf"}
@@ -8,7 +8,7 @@ declare type UseBookmarkTabsProps<ITEM = BookmarkTabsItemDefault> = {
8
8
  size: BookmarkTabsPropSize;
9
9
  };
10
10
  export declare const useBookmarkTabs: <ITEM>(props: UseBookmarkTabsProps<ITEM>) => {
11
- refs: import("react").RefObject<HTMLElement>[];
11
+ refs: import("react").RefObject<HTMLDivElement>[];
12
12
  containerRef: import("react").RefObject<HTMLDivElement>;
13
13
  wrapperRef: import("react").RefObject<HTMLDivElement>;
14
14
  fixedTabsRef: import("react").RefObject<HTMLDivElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"useBookmarkTabs.js","names":["useLayoutEffect","useMemo","useState","useRefs","MAX_TAB_SIZE","useBookmarkTabs","props","items","getItemFixed","withNavigationButtons","refs","length","wrapperRef","containerRef","fixedTabsRef","otherTabsRef","controlsRef","addButtonRef","sizes","setSizes","showControls","setShowControls","fixedTabs","otherTabs","forEach","item","push","ref","resizeObserver","ResizeObserver","containerWidth","current","offsetWidth","fixedWidth","scrollWidth","otherWidth","itemSize","Math","min","Array","from","fill","observe","disconnect","navigate","type","container","i","offsetLeft","scrollLeft","index","node","scrollTo","left","behavior"],"sources":["../../../../../src/components/BookmarkTabsCanary/useBookmarkTabs.ts"],"sourcesContent":["import { useLayoutEffect, useMemo, useState } from 'react';\n\nimport { useRefs } from '##/hooks/useRefs';\n\nimport {\n BookmarkTabsItemDefault,\n BookmarkTabsPropGetItemFixed,\n BookmarkTabsPropSize,\n} from './types';\n\ntype UseBookmarkTabsProps<ITEM = BookmarkTabsItemDefault> = {\n items: ITEM[];\n getItemFixed: BookmarkTabsPropGetItemFixed<ITEM>;\n withNavigationButtons?: boolean;\n withAddButton?: boolean;\n size: BookmarkTabsPropSize;\n};\n\nconst MAX_TAB_SIZE = 200;\n\nexport const useBookmarkTabs = <ITEM>(props: UseBookmarkTabsProps<ITEM>) => {\n const { items, getItemFixed, withNavigationButtons } = props;\n\n const refs = useRefs<HTMLElement>(items.length);\n\n const [\n wrapperRef,\n containerRef,\n fixedTabsRef,\n otherTabsRef,\n controlsRef,\n addButtonRef,\n ] = useRefs<HTMLDivElement>(6);\n\n const [sizes, setSizes] = useState<string[]>([]);\n\n const [showControls, setShowControls] = useState(false);\n\n const { fixedTabs, otherTabs } = useMemo(() => {\n const fixedTabs: ITEM[] = [];\n const otherTabs: ITEM[] = [];\n\n items.forEach((item) => {\n if (getItemFixed(item)) {\n fixedTabs.push(item);\n } else {\n otherTabs.push(item);\n }\n });\n\n return {\n fixedTabs,\n otherTabs,\n };\n }, [items, getItemFixed]);\n\n const navigate = (type: 'next' | 'prev') => {\n const container = wrapperRef.current;\n if (container) {\n for (let i = 0; i < refs.length; i++) {\n const ref = refs[i];\n if (ref.current) {\n if (\n ref.current.offsetLeft >=\n container.offsetLeft + container.scrollLeft\n ) {\n const index = i + (type === 'next' ? 1 : -1);\n const node = refs[index]?.current;\n if (node) {\n container.scrollTo({\n left: node.offsetLeft - container.offsetLeft,\n behavior: 'smooth',\n });\n }\n return;\n }\n }\n }\n }\n };\n\n useLayoutEffect(() => {\n const refs = [\n containerRef,\n fixedTabsRef,\n wrapperRef,\n otherTabsRef,\n controlsRef,\n ];\n const resizeObserver = new ResizeObserver(() => {\n const containerWidth = containerRef.current?.offsetWidth ?? 0;\n const fixedWidth = fixedTabsRef.current?.offsetWidth ?? 0;\n\n const showControls =\n (fixedTabsRef.current?.scrollWidth ?? 0) +\n (otherTabsRef.current?.scrollWidth ?? 0) >\n containerWidth - (addButtonRef.current?.offsetWidth ?? 0) &&\n !!withNavigationButtons;\n\n const otherWidth =\n containerWidth -\n (controlsRef.current?.offsetWidth ?? 0) -\n (addButtonRef.current?.offsetWidth ?? 0) -\n fixedWidth;\n\n const itemSize = `${\n otherWidth\n ? Math.min(otherWidth / otherTabs.length, MAX_TAB_SIZE)\n : MAX_TAB_SIZE\n }px`;\n setSizes(Array.from<string>({ length: otherTabs.length }).fill(itemSize));\n setShowControls(showControls);\n });\n\n for (const ref of refs) {\n ref.current && resizeObserver.observe(ref.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [\n otherTabs.length,\n fixedTabs.length,\n withNavigationButtons,\n wrapperRef.current,\n containerRef.current,\n fixedTabsRef.current,\n controlsRef.current,\n ]);\n\n return {\n refs,\n containerRef,\n wrapperRef,\n fixedTabsRef,\n otherTabsRef,\n showControls,\n fixedTabs,\n otherTabs,\n navigate,\n sizes,\n controlsRef,\n addButtonRef,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useBookmarkTabs.js","names":["useLayoutEffect","useMemo","useState","useRefs","MAX_TAB_SIZE","useBookmarkTabs","props","items","getItemFixed","withNavigationButtons","refs","length","wrapperRef","containerRef","fixedTabsRef","otherTabsRef","controlsRef","addButtonRef","sizes","setSizes","showControls","setShowControls","fixedTabs","otherTabs","forEach","item","push","ref","resizeObserver","ResizeObserver","containerWidth","current","offsetWidth","fixedWidth","scrollWidth","otherWidth","itemSize","Math","min","Array","from","fill","observe","disconnect","navigate","type","container","i","offsetLeft","scrollLeft","index","node","scrollTo","left","behavior"],"sources":["../../../../../src/components/BookmarkTabsCanary/useBookmarkTabs.ts"],"sourcesContent":["import { useLayoutEffect, useMemo, useState } from 'react';\n\nimport { useRefs } from '##/hooks/useRefs';\n\nimport {\n BookmarkTabsItemDefault,\n BookmarkTabsPropGetItemFixed,\n BookmarkTabsPropSize,\n} from './types';\n\ntype UseBookmarkTabsProps<ITEM = BookmarkTabsItemDefault> = {\n items: ITEM[];\n getItemFixed: BookmarkTabsPropGetItemFixed<ITEM>;\n withNavigationButtons?: boolean;\n withAddButton?: boolean;\n size: BookmarkTabsPropSize;\n};\n\nconst MAX_TAB_SIZE = 200;\n\nexport const useBookmarkTabs = <ITEM>(props: UseBookmarkTabsProps<ITEM>) => {\n const { items, getItemFixed, withNavigationButtons } = props;\n\n const refs = useRefs<HTMLDivElement>(items.length);\n\n const [\n wrapperRef,\n containerRef,\n fixedTabsRef,\n otherTabsRef,\n controlsRef,\n addButtonRef,\n ] = useRefs<HTMLDivElement>(6);\n\n const [sizes, setSizes] = useState<string[]>([]);\n\n const [showControls, setShowControls] = useState(false);\n\n const { fixedTabs, otherTabs } = useMemo(() => {\n const fixedTabs: ITEM[] = [];\n const otherTabs: ITEM[] = [];\n\n items.forEach((item) => {\n if (getItemFixed(item)) {\n fixedTabs.push(item);\n } else {\n otherTabs.push(item);\n }\n });\n\n return {\n fixedTabs,\n otherTabs,\n };\n }, [items, getItemFixed]);\n\n const navigate = (type: 'next' | 'prev') => {\n const container = wrapperRef.current;\n if (container) {\n for (let i = 0; i < refs.length; i++) {\n const ref = refs[i];\n if (ref.current) {\n if (\n ref.current.offsetLeft >=\n container.offsetLeft + container.scrollLeft\n ) {\n const index = i + (type === 'next' ? 1 : -1);\n const node = refs[index]?.current;\n if (node) {\n container.scrollTo({\n left: node.offsetLeft - container.offsetLeft,\n behavior: 'smooth',\n });\n }\n return;\n }\n }\n }\n }\n };\n\n useLayoutEffect(() => {\n const refs = [\n containerRef,\n fixedTabsRef,\n wrapperRef,\n otherTabsRef,\n controlsRef,\n ];\n const resizeObserver = new ResizeObserver(() => {\n const containerWidth = containerRef.current?.offsetWidth ?? 0;\n const fixedWidth = fixedTabsRef.current?.offsetWidth ?? 0;\n\n const showControls =\n (fixedTabsRef.current?.scrollWidth ?? 0) +\n (otherTabsRef.current?.scrollWidth ?? 0) >\n containerWidth - (addButtonRef.current?.offsetWidth ?? 0) &&\n !!withNavigationButtons;\n\n const otherWidth =\n containerWidth -\n (controlsRef.current?.offsetWidth ?? 0) -\n (addButtonRef.current?.offsetWidth ?? 0) -\n fixedWidth;\n\n const itemSize = `${\n otherWidth\n ? Math.min(otherWidth / otherTabs.length, MAX_TAB_SIZE)\n : MAX_TAB_SIZE\n }px`;\n setSizes(Array.from<string>({ length: otherTabs.length }).fill(itemSize));\n setShowControls(showControls);\n });\n\n for (const ref of refs) {\n ref.current && resizeObserver.observe(ref.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [\n otherTabs.length,\n fixedTabs.length,\n withNavigationButtons,\n wrapperRef.current,\n containerRef.current,\n fixedTabsRef.current,\n controlsRef.current,\n ]);\n\n return {\n refs,\n containerRef,\n wrapperRef,\n fixedTabsRef,\n otherTabsRef,\n showControls,\n fixedTabs,\n otherTabs,\n navigate,\n sizes,\n controlsRef,\n addButtonRef,\n };\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValue","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","selectAll","isLoading","multiple","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{isNotNil}from"../../utils/type-guards";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{SelectValueTag}from"../SelectComponents/SelectValueTag/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=g.form,t=void 0===s?defaultPropForm:s,u=g.view,v=void 0===u?defaultPropView:u,w=g.size,x=void 0===w?defaultPropSize:w,y=g.dropdownClassName,z=g.name,A=g.groups,B=void 0===A?[]:A,C=g.getItemLabel,D=g.getItemKey,E=g.getItemGroupKey,F=g.getItemDisabled,G=g.getGroupKey,H=g.getGroupLabel,I=g.renderItem,J=g.searchValue,K=g.renderValue,L=g.onCreate,M=g.inputRef,N=g.labelForNotFound,O=void 0===N?defaultlabelForNotFound:N,P=g.labelForCreate,Q=void 0===P?defaultlabelForCreate:P,R=g.labelForEmptyItems,S=void 0===R?defaultLabelForEmptyItems:R,T=g.onInputChange,U=g.searchFunction,V=g.selectAll,W=g.isLoading,X=g.multiple,Y=void 0!==X&&X,Z=g.style,$=g.dropdownForm,_=void 0===$?"default":$,aa=_objectWithoutProperties(g,_excluded),ba=useSelect({items:k,groups:B,value:m,onChange:l,selectAll:V,dropdownRef:c,controlRef:f,disabled:n,getItemLabel:C,getItemKey:D,getGroupKey:G,searchValue:J,getItemGroupKey:E,getItemDisabled:F,multiple:Y,onBlur:i,onFocus:j,onCreate:L,searchFunction:U}),ca=ba.getKeyProps,da=ba.getOptionProps,ea=ba.isOpen,fa=ba.visibleItems,ga=ba.isFocused,ha=ba.handleInputFocus,ia=ba.handleInputBlur,ja=ba.handleToggleDropdown,ka=ba.inputRef,la=ba.handleInputClick,ma=ba.handleInputChange,na=ba.searchValue,oa=ba.clearValue,pa=ba.getHandleRemoveValue,qa=ba.notFound,ra=ba.hasItems,sa=p?"".concat(p,"-input"):p,ta=K||(Y?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:C(b),key:D(b),size:x,disabled:n||F(b),handleRemove:c})}:function renderValueDefaultNotMultiple(a){var b=C(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),ua=useForkRef([ka,M]),va=function(a){ma(a);var b=a.target.value;n||(null===T||void 0===T?void 0:T({e:a,id:p,name:z,value:b||null}))},wa=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ta({item:a,handleRemove:pa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&ta({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!na&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ca(),{type:"text",name:z,id:sa,onFocus:ha,onBlur:ia,"aria-label":o,onChange:va,ref:ua,className:cnSelect("Input",{size:x,hide:!Y&&isNotNil(m),multiple:Y}),value:na,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:ga,disabled:n,size:x,view:v,required:q,form:t,multiple:Y,ref:b,type:"combobox",style:Z,id:sa},aa),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":ea,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:la,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue")},wa()):wa())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:oa,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ja},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},na)),React.createElement(SelectDropdown,{isOpen:ea,size:x,controlRef:f,getOptionProps:da,dropdownRef:useForkRef([r,c]),form:_,className:y,renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(SelectItem,{label:C(b),active:c,hovered:d,multiple:Y,size:x,indent:"round"===_?"increased":"normal",onClick:e,onMouseEnter:f,disabled:F(b)})},getGroupLabel:H,visibleItems:fa,labelForNotFound:O,labelForCreate:Q,isLoading:W,labelForEmptyItems:S,notFound:qa,hasItems:ra,style:"number"==typeof(null===Z||void 0===Z?void 0:Z.zIndex)?{zIndex:Z.zIndex+1}:void 0}))};export var Combobox=forwardRef(ComboboxRender);export*from"./helpers";
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValue","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","selectAll","isLoading","multiple","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClear}from"@consta/icons/IconClear";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{isNotNil}from"../../utils/type-guards";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{SelectValueTag}from"../SelectComponents/SelectValueTag/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{clearSizeMap,iconSizeMap,isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=g.form,t=void 0===s?defaultPropForm:s,u=g.view,v=void 0===u?defaultPropView:u,w=g.size,x=void 0===w?defaultPropSize:w,y=g.dropdownClassName,z=g.name,A=g.groups,B=void 0===A?[]:A,C=g.getItemLabel,D=g.getItemKey,E=g.getItemGroupKey,F=g.getItemDisabled,G=g.getGroupKey,H=g.getGroupLabel,I=g.renderItem,J=g.searchValue,K=g.renderValue,L=g.onCreate,M=g.inputRef,N=g.labelForNotFound,O=void 0===N?defaultlabelForNotFound:N,P=g.labelForCreate,Q=void 0===P?defaultlabelForCreate:P,R=g.labelForEmptyItems,S=void 0===R?defaultLabelForEmptyItems:R,T=g.onInputChange,U=g.searchFunction,V=g.selectAll,W=g.isLoading,X=g.multiple,Y=void 0!==X&&X,Z=g.style,$=g.dropdownForm,_=void 0===$?"default":$,aa=_objectWithoutProperties(g,_excluded),ba=useSelect({items:k,groups:B,value:m,onChange:l,selectAll:V,dropdownRef:c,controlRef:f,disabled:n,getItemLabel:C,getItemKey:D,getGroupKey:G,searchValue:J,getItemGroupKey:E,getItemDisabled:F,multiple:Y,onBlur:i,onFocus:j,onCreate:L,searchFunction:U}),ca=ba.getKeyProps,da=ba.getOptionProps,ea=ba.isOpen,fa=ba.visibleItems,ga=ba.isFocused,ha=ba.handleInputFocus,ia=ba.handleInputBlur,ja=ba.handleToggleDropdown,ka=ba.inputRef,la=ba.handleInputClick,ma=ba.handleInputChange,na=ba.searchValue,oa=ba.clearValue,pa=ba.getHandleRemoveValue,qa=ba.notFound,ra=ba.hasItems,sa=p?"".concat(p,"-input"):p,ta=K||(Y?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:C(b),key:D(b),size:x,disabled:n||F(b),handleRemove:c})}:function renderValueDefaultNotMultiple(a){var b=C(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),ua=useForkRef([ka,M]),va=function(a){ma(a);var b=a.target.value;n||(null===T||void 0===T?void 0:T({e:a,id:p,name:z,value:b||null}))},wa=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ta({item:a,handleRemove:pa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&ta({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!na&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ca(),{type:"text",name:z,id:sa,onFocus:ha,onBlur:ia,"aria-label":o,onChange:va,ref:ua,className:cnSelect("Input",{size:x,hide:!Y&&isNotNil(m),multiple:Y}),value:na,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:ga,disabled:n,size:x,view:v,required:q,form:t,multiple:Y,ref:b,type:"combobox",style:Z,id:sa},aa),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":ea,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:la,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue")},wa()):wa())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:oa,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClear,{size:clearSizeMap[x],className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ja},React.createElement(IconSelect,{size:iconSizeMap[x],className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},na)),React.createElement(SelectDropdown,{isOpen:ea,size:x,controlRef:f,getOptionProps:da,dropdownRef:useForkRef([r,c]),form:_,className:y,renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(SelectItem,{label:C(b),active:c,hovered:d,multiple:Y,size:x,indent:"round"===_?"increased":"normal",onClick:e,onMouseEnter:f,disabled:F(b)})},getGroupLabel:H,visibleItems:fa,labelForNotFound:O,labelForCreate:Q,isLoading:W,labelForEmptyItems:S,notFound:qa,hasItems:ra,style:"number"==typeof(null===Z||void 0===Z?void 0:Z.zIndex)?{zIndex:Z.zIndex+1}:void 0}))};export var Combobox=forwardRef(ComboboxRender);export*from"./helpers";
2
2
  //# sourceMappingURL=Combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","names":["IconClose","IconSelect","React","forwardRef","useRef","isNotNil","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValueProp","searchValue","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","inputId","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","handleChangeValue","e","target","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/Combobox/Combobox.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '../SelectComponents/SelectItem/SelectItem';\nimport { SelectValueTag } from '../SelectComponents/SelectValueTag/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n searchValue: searchValueProp,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n onInputChange,\n searchFunction,\n selectAll,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n selectAll,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n searchValue: searchValueProp,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n disabled={disabled || getItemDisabled(item)}\n handleRemove={handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const handleChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleInputChange(e);\n const { value } = e.target;\n !disabled && onInputChange?.({ e, id, name, value: value || null });\n };\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(value) || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleChangeValue}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n id={inputId}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div className={cnSelect('ControlValue')}>\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.js","names":["IconClear","IconSelect","React","forwardRef","useRef","isNotNil","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","clearSizeMap","iconSizeMap","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValueProp","searchValue","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","inputId","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","handleChangeValue","e","target","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/Combobox/Combobox.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '../SelectComponents/SelectItem/SelectItem';\nimport { SelectValueTag } from '../SelectComponents/SelectValueTag/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n clearSizeMap,\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n iconSizeMap,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n searchValue: searchValueProp,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n onInputChange,\n searchFunction,\n selectAll,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n selectAll,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n searchValue: searchValueProp,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n disabled={disabled || getItemDisabled(item)}\n handleRemove={handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const handleChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleInputChange(e);\n const { value } = e.target;\n !disabled && onInputChange?.({ e, id, name, value: value || null });\n };\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(value) || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleChangeValue}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n id={inputId}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div className={cnSelect('ControlValue')}>\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClear\n size={clearSizeMap[size]}\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size={iconSizeMap[size]}\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { IconComponent } from '@consta/icons/Icon';
1
+ import { IconComponent, IconPropSize } from '@consta/icons/Icon';
2
2
  import React from 'react';
3
3
  import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';
4
4
  import { PropForm, PropSize, PropStatus, PropView, RenderItemProps } from '../SelectComponents/types';
@@ -177,4 +177,6 @@ export declare function withDefaultGetters<ITEM = DefaultItem, GROUP = DefaultGr
177
177
  getGroupLabel: PropGetGroupLabel<DefaultGroup> | PropGetGroupLabel<GROUP>;
178
178
  getGroupKey: PropGetGroupKey<DefaultGroup> | PropGetGroupKey<GROUP>;
179
179
  };
180
+ export declare const clearSizeMap: Record<PropSize, IconPropSize>;
181
+ export declare const iconSizeMap: Record<PropSize, IconPropSize>;
180
182
  export {};
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}export var defaultGetItemKey=function(a){return a.id};export var defaultGetItemLabel=function(a){return a.label};export var defaultGetItemGroupKey=function(a){return a.groupId};export var defaultGetItemDisabled=function(a){return a.disabled};export var defaultGetGroupKey=function(a){return a.id};export var defaultGetGroupLabel=function(a){return a.label};export var isMultipleParams=function(a){return!!a.multiple};export var isNotMultipleParams=function(a){return!a.multiple};export function withDefaultGetters(a){return _objectSpread(_objectSpread({},a),{},{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemKey:a.getItemKey||defaultGetItemKey,getItemGroupKey:a.getItemGroupKey||defaultGetItemGroupKey,getItemDisabled:a.getItemDisabled||defaultGetItemDisabled,getGroupLabel:a.getGroupLabel||defaultGetGroupLabel,getGroupKey:a.getGroupKey||defaultGetGroupKey})}
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}export var defaultGetItemKey=function(a){return a.id};export var defaultGetItemLabel=function(a){return a.label};export var defaultGetItemGroupKey=function(a){return a.groupId};export var defaultGetItemDisabled=function(a){return a.disabled};export var defaultGetGroupKey=function(a){return a.id};export var defaultGetGroupLabel=function(a){return a.label};export var isMultipleParams=function(a){return!!a.multiple};export var isNotMultipleParams=function(a){return!a.multiple};export function withDefaultGetters(a){return _objectSpread(_objectSpread({},a),{},{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemKey:a.getItemKey||defaultGetItemKey,getItemGroupKey:a.getItemGroupKey||defaultGetItemGroupKey,getItemDisabled:a.getItemDisabled||defaultGetItemDisabled,getGroupLabel:a.getGroupLabel||defaultGetGroupLabel,getGroupKey:a.getGroupKey||defaultGetGroupKey})}export var clearSizeMap={xs:"xs",s:"s",m:"s",l:"m"};export var iconSizeMap={xs:"xs",s:"s",m:"m",l:"m"};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey"],"sources":["../../../../../src/components/Combobox/helpers.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n PropForm,\n PropSize,\n PropStatus,\n PropView,\n RenderItemProps,\n} from '../SelectComponents/types';\nimport { TextFieldPropOnChange } from '../TextField/TextField';\n\nexport type DefaultItem = {\n label: string;\n id: string | number;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type DefaultGroup = {\n label: string;\n id: string | number;\n};\n\ntype RenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type PropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type PropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type PropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type PropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type PropGetGroupKey<GROUP> = (group: GROUP) => string | number;\nexport type PropGetGroupLabel<GROUP> = (group: GROUP) => string;\ntype PropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;\ntype PropOnChange<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\ntype PropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type PropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactElement | null;\nexport type PropRenderValue<ITEM> = (\n props: RenderValueProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type ComboboxProps<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n onChange: PropOnChange<ITEM, MULTIPLE>;\n disabled?: boolean;\n form?: PropForm;\n dropdownForm?: 'default' | 'brick' | 'round';\n size?: PropSize;\n view?: PropView;\n placeholder?: string;\n ariaLabel?: string;\n status?: PropStatus;\n isLoading?: boolean;\n dropdownClassName?: string;\n dropdownRef?: React.Ref<HTMLDivElement>;\n name?: string;\n renderItem?: PropRenderItem<ITEM>;\n renderValue?: PropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (props: { e: React.SyntheticEvent; label: string }) => void;\n inputRef?: React.Ref<HTMLInputElement>;\n labelForNotFound?: string;\n required?: boolean;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: PropSearchFunction<ITEM>;\n searchValue?: string;\n multiple?: MULTIPLE;\n value?: PropValue<ITEM, MULTIPLE>;\n groups?: GROUP[];\n onInputChange?: TextFieldPropOnChange;\n getItemLabel?: PropGetItemLabel<ITEM>;\n getItemKey?: PropGetItemKey<ITEM>;\n getItemGroupKey?: PropGetItemGroupKey<ITEM>;\n getItemDisabled?: PropGetItemDisabled<ITEM>;\n getGroupLabel?: PropGetGroupLabel<GROUP>;\n getGroupKey?: PropGetGroupKey<GROUP>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n },\n HTMLDivElement\n> &\n (MULTIPLE extends true\n ? {\n selectAll?: boolean;\n }\n : {\n selectAll?: never;\n }) &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: PropGetItemLabel<ITEM> }) &\n (ITEM extends { id: DefaultItem['id'] }\n ? {}\n : { getItemKey: PropGetItemKey<ITEM> }) &\n (GROUP extends { label: DefaultGroup['label'] }\n ? {}\n : { getGroupLabel: PropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: DefaultGroup['id'] }\n ? {}\n : { getGroupKey: PropGetGroupKey<GROUP> });\n\nexport type ComboboxComponent = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactElement | null;\n\nexport const defaultGetItemKey: PropGetItemKey<DefaultItem> = (item) => item.id;\nexport const defaultGetItemLabel: PropGetItemLabel<DefaultItem> = (item) =>\n item.label;\nexport const defaultGetItemGroupKey: PropGetItemGroupKey<DefaultItem> = (\n item,\n) => item.groupId;\nexport const defaultGetItemDisabled: PropGetItemDisabled<DefaultItem> = (\n item,\n) => item.disabled;\n\nexport const defaultGetGroupKey: PropGetGroupKey<DefaultGroup> = (group) =>\n group.id;\nexport const defaultGetGroupLabel: PropGetGroupLabel<DefaultGroup> = (group) =>\n group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: ComboboxProps<ITEM, GROUP, boolean>,\n): params is ComboboxProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: ComboboxProps<ITEM, GROUP, boolean>,\n): params is ComboboxProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(props: ComboboxProps<ITEM, GROUP, MULTIPLE>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n };\n}\n"],"mappings":"qqBAoIA,MAAO,IAAMA,kBAA8C,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,EAAf,CAAvD,CACP,MAAO,IAAMC,oBAAkD,CAAG,SAACF,CAAD,QAChEA,EAAI,CAACG,KAD2D,CAA3D,CAEP,MAAO,IAAMC,uBAAwD,CAAG,SACtEJ,CADsE,QAEnEA,EAAI,CAACK,OAF8D,CAAjE,CAGP,MAAO,IAAMC,uBAAwD,CAAG,SACtEN,CADsE,QAEnEA,EAAI,CAACO,QAF8D,CAAjE,CAIP,MAAO,IAAMC,mBAAiD,CAAG,SAACC,CAAD,QAC/DA,EAAK,CAACR,EADyD,CAA1D,CAEP,MAAO,IAAMS,qBAAqD,CAAG,SAACD,CAAD,QACnEA,EAAK,CAACN,KAD6D,CAA9D,CAGP,MAAO,IAAMQ,iBAAgB,CAAG,SAC9BC,CAD8B,CAEiB,CAC/C,MAAO,CAAC,CAACA,CAAM,CAACC,QACjB,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SACjCF,CADiC,CAEe,CAChD,MAAO,CAACA,CAAM,CAACC,QAChB,CAJM,CAMP,MAAO,SAASE,mBAAT,CAILC,CAJK,CAIwC,CAC7C,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBf,mBAFtC,CAGEgB,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBnB,iBAHlC,CAIEoB,eAAe,CAAEH,CAAK,CAACG,eAAN,EAAyBf,sBAJ5C,CAKEgB,eAAe,CAAEJ,CAAK,CAACI,eAAN,EAAyBd,sBAL5C,CAMEe,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBX,oBANxC,CAOEY,WAAW,CAAEN,CAAK,CAACM,WAAN,EAAqBd,kBAPpC,EASD"}
1
+ {"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey","clearSizeMap","xs","s","m","l","iconSizeMap"],"sources":["../../../../../src/components/Combobox/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n PropForm,\n PropSize,\n PropStatus,\n PropView,\n RenderItemProps,\n} from '../SelectComponents/types';\nimport { TextFieldPropOnChange } from '../TextField/TextField';\n\nexport type DefaultItem = {\n label: string;\n id: string | number;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type DefaultGroup = {\n label: string;\n id: string | number;\n};\n\ntype RenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type PropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type PropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type PropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type PropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type PropGetGroupKey<GROUP> = (group: GROUP) => string | number;\nexport type PropGetGroupLabel<GROUP> = (group: GROUP) => string;\ntype PropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;\ntype PropOnChange<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\ntype PropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type PropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactElement | null;\nexport type PropRenderValue<ITEM> = (\n props: RenderValueProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type ComboboxProps<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n onChange: PropOnChange<ITEM, MULTIPLE>;\n disabled?: boolean;\n form?: PropForm;\n dropdownForm?: 'default' | 'brick' | 'round';\n size?: PropSize;\n view?: PropView;\n placeholder?: string;\n ariaLabel?: string;\n status?: PropStatus;\n isLoading?: boolean;\n dropdownClassName?: string;\n dropdownRef?: React.Ref<HTMLDivElement>;\n name?: string;\n renderItem?: PropRenderItem<ITEM>;\n renderValue?: PropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (props: { e: React.SyntheticEvent; label: string }) => void;\n inputRef?: React.Ref<HTMLInputElement>;\n labelForNotFound?: string;\n required?: boolean;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: PropSearchFunction<ITEM>;\n searchValue?: string;\n multiple?: MULTIPLE;\n value?: PropValue<ITEM, MULTIPLE>;\n groups?: GROUP[];\n onInputChange?: TextFieldPropOnChange;\n getItemLabel?: PropGetItemLabel<ITEM>;\n getItemKey?: PropGetItemKey<ITEM>;\n getItemGroupKey?: PropGetItemGroupKey<ITEM>;\n getItemDisabled?: PropGetItemDisabled<ITEM>;\n getGroupLabel?: PropGetGroupLabel<GROUP>;\n getGroupKey?: PropGetGroupKey<GROUP>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n },\n HTMLDivElement\n> &\n (MULTIPLE extends true\n ? {\n selectAll?: boolean;\n }\n : {\n selectAll?: never;\n }) &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: PropGetItemLabel<ITEM> }) &\n (ITEM extends { id: DefaultItem['id'] }\n ? {}\n : { getItemKey: PropGetItemKey<ITEM> }) &\n (GROUP extends { label: DefaultGroup['label'] }\n ? {}\n : { getGroupLabel: PropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: DefaultGroup['id'] }\n ? {}\n : { getGroupKey: PropGetGroupKey<GROUP> });\n\nexport type ComboboxComponent = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactElement | null;\n\nexport const defaultGetItemKey: PropGetItemKey<DefaultItem> = (item) => item.id;\nexport const defaultGetItemLabel: PropGetItemLabel<DefaultItem> = (item) =>\n item.label;\nexport const defaultGetItemGroupKey: PropGetItemGroupKey<DefaultItem> = (\n item,\n) => item.groupId;\nexport const defaultGetItemDisabled: PropGetItemDisabled<DefaultItem> = (\n item,\n) => item.disabled;\n\nexport const defaultGetGroupKey: PropGetGroupKey<DefaultGroup> = (group) =>\n group.id;\nexport const defaultGetGroupLabel: PropGetGroupLabel<DefaultGroup> = (group) =>\n group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: ComboboxProps<ITEM, GROUP, boolean>,\n): params is ComboboxProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: ComboboxProps<ITEM, GROUP, boolean>,\n): params is ComboboxProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(props: ComboboxProps<ITEM, GROUP, MULTIPLE>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n };\n}\n\nexport const clearSizeMap: Record<PropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 's',\n l: 'm',\n};\n\nexport const iconSizeMap: Record<PropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 'm',\n l: 'm',\n};\n"],"mappings":"qqBAoIA,MAAO,IAAMA,kBAA8C,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,EAAf,CAAvD,CACP,MAAO,IAAMC,oBAAkD,CAAG,SAACF,CAAD,QAChEA,EAAI,CAACG,KAD2D,CAA3D,CAEP,MAAO,IAAMC,uBAAwD,CAAG,SACtEJ,CADsE,QAEnEA,EAAI,CAACK,OAF8D,CAAjE,CAGP,MAAO,IAAMC,uBAAwD,CAAG,SACtEN,CADsE,QAEnEA,EAAI,CAACO,QAF8D,CAAjE,CAIP,MAAO,IAAMC,mBAAiD,CAAG,SAACC,CAAD,QAC/DA,EAAK,CAACR,EADyD,CAA1D,CAEP,MAAO,IAAMS,qBAAqD,CAAG,SAACD,CAAD,QACnEA,EAAK,CAACN,KAD6D,CAA9D,CAGP,MAAO,IAAMQ,iBAAgB,CAAG,SAC9BC,CAD8B,CAEiB,CAC/C,MAAO,CAAC,CAACA,CAAM,CAACC,QACjB,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SACjCF,CADiC,CAEe,CAChD,MAAO,CAACA,CAAM,CAACC,QAChB,CAJM,CAMP,MAAO,SAASE,mBAAT,CAILC,CAJK,CAIwC,CAC7C,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBf,mBAFtC,CAGEgB,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBnB,iBAHlC,CAIEoB,eAAe,CAAEH,CAAK,CAACG,eAAN,EAAyBf,sBAJ5C,CAKEgB,eAAe,CAAEJ,CAAK,CAACI,eAAN,EAAyBd,sBAL5C,CAMEe,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBX,oBANxC,CAOEY,WAAW,CAAEN,CAAK,CAACM,WAAN,EAAqBd,kBAPpC,EASD,CAED,MAAO,IAAMe,aAA4C,CAAG,CAC1DC,EAAE,CAAE,IADsD,CAE1DC,CAAC,CAAE,GAFuD,CAG1DC,CAAC,CAAE,GAHuD,CAI1DC,CAAC,CAAE,GAJuD,CAArD,CAOP,MAAO,IAAMC,YAA2C,CAAG,CACzDJ,EAAE,CAAE,IADqD,CAEzDC,CAAC,CAAE,GAFsD,CAGzDC,CAAC,CAAE,GAHsD,CAIzDC,CAAC,CAAE,GAJsD,CAApD"}