@consta/uikit 5.28.5 → 5.29.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 (99) hide show
  1. package/TextAreaAutoSize/index.d.ts +1 -0
  2. package/TextAreaAutoSize/index.js +1 -0
  3. package/__internal__/src/components/AutoComplete/AutoComplete.js +1 -1
  4. package/__internal__/src/components/AutoComplete/AutoComplete.js.map +1 -1
  5. package/__internal__/src/components/AutoComplete/helpers.d.ts +1 -0
  6. package/__internal__/src/components/AutoComplete/types.d.ts +1 -0
  7. package/__internal__/src/components/AutoComplete/types.js.map +1 -1
  8. package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeText/AutoCompleteTypeText.js +1 -1
  9. package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeText/AutoCompleteTypeText.js.map +1 -1
  10. package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeTextArray/AutoCompleteTypeTextArray.js +1 -1
  11. package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeTextArray/AutoCompleteTypeTextArray.js.map +1 -1
  12. package/__internal__/src/components/AutoCompleteCanary/helpers.d.ts +1 -0
  13. package/__internal__/src/components/AutoCompleteCanary/types.d.ts +1 -0
  14. package/__internal__/src/components/AutoCompleteCanary/types.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.map +1 -1
  19. package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js +1 -1
  20. package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js.map +1 -1
  21. package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js +1 -1
  22. package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js.map +1 -1
  23. package/__internal__/src/components/ContextMenu/helpers.d.ts +4 -2
  24. package/__internal__/src/components/ContextMenu/types.d.ts +2 -0
  25. package/__internal__/src/components/ContextMenu/types.js.map +1 -1
  26. package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.d.ts +1 -0
  27. package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js +1 -1
  28. package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js.map +1 -1
  29. package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
  30. package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js.map +1 -1
  31. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js +1 -1
  32. package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
  33. package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js +1 -1
  34. package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js.map +1 -1
  35. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
  36. package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
  37. package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js +1 -1
  38. package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js.map +1 -1
  39. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +1 -1
  40. package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
  41. package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js +1 -1
  42. package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js.map +1 -1
  43. package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js +1 -1
  44. package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js.map +1 -1
  45. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js +1 -1
  46. package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
  47. package/__internal__/src/components/DatePicker/types.d.ts +1 -0
  48. package/__internal__/src/components/DatePicker/types.js.map +1 -1
  49. package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js +1 -1
  50. package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js.map +1 -1
  51. package/__internal__/src/components/FieldComponents/FieldControlLayout/helpers.js +1 -1
  52. package/__internal__/src/components/FieldComponents/FieldControlLayout/helpers.js.map +1 -1
  53. package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.d.ts +1 -0
  54. package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js +1 -1
  55. package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js.map +1 -1
  56. package/__internal__/src/components/FlatSelect/types.d.ts +1 -0
  57. package/__internal__/src/components/FlatSelect/types.js.map +1 -1
  58. package/__internal__/src/components/Select/Select.js +1 -1
  59. package/__internal__/src/components/Select/Select.js.map +1 -1
  60. package/__internal__/src/components/Select/helpers.d.ts +3 -1
  61. package/__internal__/src/components/Select/helpers.js.map +1 -1
  62. package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.d.ts +1 -0
  63. package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.js.map +1 -1
  64. package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.js +1 -1
  65. package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.js.map +1 -1
  66. package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.d.ts +1 -0
  67. package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.js.map +1 -1
  68. package/__internal__/src/components/SelectCanary/SelectSingle/SelectSingle.js +1 -1
  69. package/__internal__/src/components/SelectCanary/SelectSingle/SelectSingle.js.map +1 -1
  70. package/__internal__/src/components/SelectCanary/helpers.d.ts +2 -1
  71. package/__internal__/src/components/SelectCanary/types.d.ts +1 -0
  72. package/__internal__/src/components/SelectCanary/types.js.map +1 -1
  73. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.d.ts +1 -0
  74. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +1 -1
  75. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js.map +1 -1
  76. package/__internal__/src/components/TagBase/TagBase.d.ts +1 -1
  77. package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.css +1 -0
  78. package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.d.ts +11 -0
  79. package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.js +2 -0
  80. package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.js.map +1 -0
  81. package/__internal__/src/components/TextAreaAutoSize/index.d.ts +1 -0
  82. package/__internal__/src/components/TextAreaAutoSize/index.js +2 -0
  83. package/__internal__/src/components/TextAreaAutoSize/index.js.map +1 -0
  84. package/__internal__/src/components/TextField/TextField.js +1 -1
  85. package/__internal__/src/components/TextField/TextField.js.map +1 -1
  86. package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.css +1 -1
  87. package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.js +1 -1
  88. package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.js.map +1 -1
  89. package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
  90. package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
  91. package/__internal__/src/components/UserSelect/helpers.d.ts +3 -1
  92. package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
  93. package/__internal__/src/utils/objectCompare.d.ts +7 -0
  94. package/__internal__/src/utils/objectCompare.js +2 -0
  95. package/__internal__/src/utils/objectCompare.js.map +1 -0
  96. package/__internal__/src/utils/state/index.d.ts +3 -0
  97. package/__internal__/src/utils/state/index.js +1 -1
  98. package/__internal__/src/utils/state/index.js.map +1 -1
  99. package/package.json +1 -1
@@ -0,0 +1,11 @@
1
+ import './TextAreaAutoSize.css';
2
+ import React from 'react';
3
+ export declare const cnTextAreaAutoSize: import("@bem-react/classname").ClassNameFormatter;
4
+ export type TextAreaAutoSizeProps = {
5
+ minRows?: number;
6
+ maxRows?: number;
7
+ } & React.TextareaHTMLAttributes<HTMLTextAreaElement>;
8
+ export declare const TextAreaAutoSize: React.ForwardRefExoticComponent<{
9
+ minRows?: number;
10
+ maxRows?: number;
11
+ } & React.TextareaHTMLAttributes<HTMLTextAreaElement> & React.RefAttributes<HTMLTextAreaElement>>;
@@ -0,0 +1,2 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["minRows","maxRows","onChange","style","className"];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"./TextAreaAutoSize.css";import{useAction,useAtom,useUpdate}from"@reatom/npm-react";import React,{forwardRef}from"react";import{createPortal}from"react-dom";import{useForkRef}from"../../hooks/useForkRef";import{cn}from"../../utils/bem";import{deepEqual}from"../../utils/objectCompare";import{useCreateAtom,useRefAtom,useResizeObservedAtom,useSendToAtom,withCtx}from"../../utils/state";export var cnTextAreaAutoSize=cn("TextAreaAutoSize");export var TextAreaAutoSize=withCtx(forwardRef(function(a,b){var c=a.minRows,d=void 0===c?1:c,e=a.maxRows,f=a.onChange,g=a.style,h=a.className,i=_objectWithoutProperties(a,_excluded),j=useRefAtom(),k=_slicedToArray(j,2),l=k[0],m=k[1],n=useRefAtom(),o=_slicedToArray(n,2),p=o[0],q=o[1],r=useAtom({}),s=_slicedToArray(r,3),t=s[0],u=s[2],v=useAtom({}),w=_slicedToArray(v,3),x=w[0],y=w[2],z=useSendToAtom(a),A=useAction(function(a){var b=a.get(l),c=a.get(p);if(b&&c){var f=getComputedStyle(b),g={minHeight:f.minHeight,maxHeight:f.maxHeight,width:f.width,padding:f.padding,paddingBottom:f.paddingBottom,paddingTop:f.paddingTop,paddingLeft:f.paddingLeft,paddingRight:f.paddingRight,margin:f.margin,border:f.border,borderTop:f.borderTop,borderBottom:f.borderBottom,borderLeft:f.borderLeft,borderRight:f.borderRight,fontFamily:f.fontFamily,fontSize:f.fontSize,lineHeight:f.lineHeight,tabSize:f.tabSize,textIndent:f.textIndent,textRendering:f.textRendering,textTransform:f.textTransform,display:f.display,whiteSpace:f.whiteSpace,wordBreak:f.wordBreak};deepEqual(g,a.get(y))||y(a,g);var h=getComputedStyle(c),i=parseFloat(h.lineHeight),j=parseFloat(h.paddingTop),k=parseFloat(h.paddingBottom),m=parseFloat(h.borderTopWidth),n=parseFloat(h.borderBottomWidth),o=j+k+m+n,q=c.scrollHeight,r=e?e*i+o:1/0,s=Math.min(Math.max(q,d*i+o),r);if(!isNaN(s)){var t={height:"".concat(s,"px"),overflowY:e&&q>r?"scroll":"hidden"};deepEqual(t,a.get(u))||u(a,t)}}}),B=useAction(function(a,b){var c,d;null===(c=(d=a.get(z)).onChange)||void 0===c?void 0:c.call(d,b);var e=a.get(p);e&&(e.value=b.target.value),A()});return useUpdate(A,[d,e,p,l]),useResizeObservedAtom(useCreateAtom(function(a){return[a.spy(l),a.get(p)]}),A),useCreateAtom(function(a){var b=a.spy(p),c=a.spy(l);b&&c&&(b.value=c.value,A())}),React.createElement(React.Fragment,null,React.createElement("textarea",Object.assign({},i,{ref:useForkRef([m,b]),onChange:B,style:_objectSpread(_objectSpread({},g),t),className:cnTextAreaAutoSize(null,[h])})),createPortal(React.createElement("textarea",{ref:q,style:x,className:cnTextAreaAutoSize("Fake"),id:cnTextAreaAutoSize("Fake",{id:i.id,name:i.name})}),document.body))}));
2
+ //# sourceMappingURL=TextAreaAutoSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextAreaAutoSize.js","names":["useAction","useAtom","useUpdate","React","forwardRef","createPortal","useForkRef","cn","deepEqual","useCreateAtom","useRefAtom","useResizeObservedAtom","useSendToAtom","withCtx","cnTextAreaAutoSize","TextAreaAutoSize","props","ref","minRows","maxRows","onChange","style","className","restProps","textAreaElementAtom","textAreaRef","fakeElementAtom","fakeRef","textareaStyles","textareaStylesAtom","fakeStyles","fakeStylesAtom","propsAtom","calculateHeight","ctx","textAreaElement","get","fakeElement","textAreaStyles","getComputedStyle","newFakeStyles","minHeight","maxHeight","width","padding","paddingBottom","paddingTop","paddingLeft","paddingRight","margin","border","borderTop","borderBottom","borderLeft","borderRight","fontFamily","fontSize","lineHeight","tabSize","textIndent","textRendering","textTransform","display","whiteSpace","wordBreak","computedStyle","parseFloat","borderTopWidth","borderBottomWidth","gap","newHeight","scrollHeight","finalHeight","Math","min","max","isNaN","newTextareaStyles","height","overflowY","handleChange","e","value","target","spy","id","name","document","body"],"sources":["../../../../../src/components/TextAreaAutoSize/TextAreaAutoSize.tsx"],"sourcesContent":["import './TextAreaAutoSize.css';\n\nimport { useAction, useAtom, useUpdate } from '@reatom/npm-react';\nimport React, { forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cn } from '##/utils/bem';\nimport { deepEqual } from '##/utils/objectCompare';\nimport {\n useCreateAtom,\n useRefAtom,\n useResizeObservedAtom,\n useSendToAtom,\n withCtx,\n} from '##/utils/state';\n\nexport const cnTextAreaAutoSize = cn('TextAreaAutoSize');\n\nexport type TextAreaAutoSizeProps = {\n minRows?: number;\n maxRows?: number;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const TextAreaAutoSize = withCtx(\n forwardRef<HTMLTextAreaElement, TextAreaAutoSizeProps>((props, ref) => {\n const {\n minRows = 1,\n maxRows,\n onChange,\n style,\n className,\n ...restProps\n } = props;\n\n const [textAreaElementAtom, textAreaRef] =\n useRefAtom<HTMLTextAreaElement>();\n const [fakeElementAtom, fakeRef] = useRefAtom<HTMLTextAreaElement>();\n\n const [textareaStyles, , textareaStylesAtom] = useAtom<React.CSSProperties>(\n {},\n );\n const [fakeStyles, , fakeStylesAtom] = useAtom<React.CSSProperties>({});\n\n const propsAtom = useSendToAtom(props);\n\n const calculateHeight = useAction((ctx) => {\n const textAreaElement = ctx.get(textAreaElementAtom);\n const fakeElement = ctx.get(fakeElementAtom);\n\n if (!textAreaElement || !fakeElement) return;\n const textAreaStyles = getComputedStyle(textAreaElement);\n\n const newFakeStyles = {\n minHeight: textAreaStyles.minHeight,\n maxHeight: textAreaStyles.maxHeight,\n width: textAreaStyles.width,\n padding: textAreaStyles.padding,\n paddingBottom: textAreaStyles.paddingBottom,\n paddingTop: textAreaStyles.paddingTop,\n paddingLeft: textAreaStyles.paddingLeft,\n paddingRight: textAreaStyles.paddingRight,\n margin: textAreaStyles.margin,\n border: textAreaStyles.border,\n borderTop: textAreaStyles.borderTop,\n borderBottom: textAreaStyles.borderBottom,\n borderLeft: textAreaStyles.borderLeft,\n borderRight: textAreaStyles.borderRight,\n fontFamily: textAreaStyles.fontFamily,\n fontSize: textAreaStyles.fontSize,\n lineHeight: textAreaStyles.lineHeight,\n tabSize: textAreaStyles.tabSize,\n textIndent: textAreaStyles.textIndent,\n textRendering: textAreaStyles.textRendering,\n textTransform: textAreaStyles.textTransform,\n display: textAreaStyles.display,\n whiteSpace: textAreaStyles.whiteSpace,\n wordBreak: textAreaStyles.wordBreak,\n } as React.CSSProperties;\n\n if (!deepEqual(newFakeStyles, ctx.get(fakeStylesAtom))) {\n fakeStylesAtom(ctx, newFakeStyles);\n }\n\n const computedStyle = getComputedStyle(fakeElement);\n const lineHeight = parseFloat(computedStyle.lineHeight);\n\n const paddingTop = parseFloat(computedStyle.paddingTop);\n const paddingBottom = parseFloat(computedStyle.paddingBottom);\n const borderTop = parseFloat(computedStyle.borderTopWidth);\n const borderBottom = parseFloat(computedStyle.borderBottomWidth);\n\n const gap = paddingTop + paddingBottom + borderTop + borderBottom;\n\n const newHeight = fakeElement.scrollHeight;\n\n const minHeight = minRows * lineHeight + gap;\n const maxHeight = maxRows ? maxRows * lineHeight + gap : Infinity;\n\n const finalHeight = Math.min(Math.max(newHeight, minHeight), maxHeight);\n\n if (isNaN(finalHeight)) {\n return;\n }\n\n const newTextareaStyles: React.CSSProperties = {\n height: `${finalHeight}px`,\n overflowY: maxRows && newHeight > maxHeight ? 'scroll' : 'hidden',\n };\n\n if (!deepEqual(newTextareaStyles, ctx.get(textareaStylesAtom))) {\n textareaStylesAtom(ctx, newTextareaStyles);\n }\n });\n\n const handleChange: React.ChangeEventHandler<HTMLTextAreaElement> =\n useAction((ctx, e) => {\n ctx.get(propsAtom).onChange?.(e);\n const fakeElement = ctx.get(fakeElementAtom);\n if (fakeElement) {\n fakeElement.value = e.target.value;\n }\n calculateHeight();\n });\n\n useUpdate(calculateHeight, [\n minRows,\n maxRows,\n fakeElementAtom,\n textAreaElementAtom,\n ]);\n\n useResizeObservedAtom(\n useCreateAtom((ctx) => [\n ctx.spy(textAreaElementAtom),\n ctx.get(fakeElementAtom),\n ]),\n calculateHeight,\n );\n\n useCreateAtom((ctx) => {\n const fakeElement = ctx.spy(fakeElementAtom);\n const textAreaElement = ctx.spy(textAreaElementAtom);\n if (fakeElement && textAreaElement) {\n fakeElement.value = textAreaElement.value;\n calculateHeight();\n }\n });\n\n return (\n <>\n <textarea\n {...restProps}\n ref={useForkRef([textAreaRef, ref])}\n onChange={handleChange}\n style={{ ...style, ...textareaStyles }}\n className={cnTextAreaAutoSize(null, [className])}\n />\n {createPortal(\n <textarea\n ref={fakeRef}\n style={fakeStyles}\n className={cnTextAreaAutoSize('Fake')}\n id={cnTextAreaAutoSize('Fake', {\n id: restProps.id,\n name: restProps.name,\n })}\n />,\n document.body,\n )}\n </>\n );\n }),\n);\n"],"mappings":"83BAAA,+BAEA,OAASA,SAAT,CAAoBC,OAApB,CAA6BC,SAA7B,KAA8C,mBAA9C,CACA,MAAOC,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CACA,OAASC,YAAT,KAA6B,WAA7B,CAEA,OAASC,UAAT,8BACA,OAASC,EAAT,uBACA,OAASC,SAAT,iCACA,OACEC,aADF,CAEEC,UAFF,CAGEC,qBAHF,CAIEC,aAJF,CAKEC,OALF,yBAQA,MAAO,IAAMC,mBAAkB,CAAGP,EAAE,CAAC,kBAAD,CAA7B,CAOP,MAAO,IAAMQ,iBAAgB,CAAGF,OAAO,CACrCT,UAAU,CAA6C,SAACY,CAAD,CAAQC,CAAR,CAAgB,OAQjED,CARiE,CAEnEE,OAFmE,CAEnEA,CAFmE,YAEzD,CAFyD,GAGnEC,CAHmE,CAQjEH,CARiE,CAGnEG,OAHmE,CAInEC,CAJmE,CAQjEJ,CARiE,CAInEI,QAJmE,CAKnEC,CALmE,CAQjEL,CARiE,CAKnEK,KALmE,CAMnEC,CANmE,CAQjEN,CARiE,CAMnEM,SANmE,CAOhEC,CAPgE,0BAQjEP,CARiE,cAWnEN,UAAU,EAXyD,uBAU9Dc,CAV8D,MAUzCC,CAVyC,QAYlCf,UAAU,EAZwB,uBAY9DgB,CAZ8D,MAY7CC,CAZ6C,QActB1B,OAAO,CACpD,EADoD,CAde,uBAc9D2B,CAd8D,MAc5CC,CAd4C,QAiB9B5B,OAAO,CAAsB,EAAtB,CAjBuB,uBAiB9D6B,CAjB8D,MAiBhDC,CAjBgD,MAmB/DC,CAAS,CAAGpB,aAAa,CAACI,CAAD,CAnBsC,CAqB/DiB,CAAe,CAAGjC,SAAS,CAAC,SAACkC,CAAD,CAAS,IACnCC,EAAe,CAAGD,CAAG,CAACE,GAAJ,CAAQZ,CAAR,CADiB,CAEnCa,CAAW,CAAGH,CAAG,CAACE,GAAJ,CAAQV,CAAR,CAFqB,CAIzC,GAAKS,CAAD,EAAqBE,CAAzB,KACMC,EAAc,CAAGC,gBAAgB,CAACJ,CAAD,CADvC,CAGMK,CAAa,CAAG,CACpBC,SAAS,CAAEH,CAAc,CAACG,SADN,CAEpBC,SAAS,CAAEJ,CAAc,CAACI,SAFN,CAGpBC,KAAK,CAAEL,CAAc,CAACK,KAHF,CAIpBC,OAAO,CAAEN,CAAc,CAACM,OAJJ,CAKpBC,aAAa,CAAEP,CAAc,CAACO,aALV,CAMpBC,UAAU,CAAER,CAAc,CAACQ,UANP,CAOpBC,WAAW,CAAET,CAAc,CAACS,WAPR,CAQpBC,YAAY,CAAEV,CAAc,CAACU,YART,CASpBC,MAAM,CAAEX,CAAc,CAACW,MATH,CAUpBC,MAAM,CAAEZ,CAAc,CAACY,MAVH,CAWpBC,SAAS,CAAEb,CAAc,CAACa,SAXN,CAYpBC,YAAY,CAAEd,CAAc,CAACc,YAZT,CAapBC,UAAU,CAAEf,CAAc,CAACe,UAbP,CAcpBC,WAAW,CAAEhB,CAAc,CAACgB,WAdR,CAepBC,UAAU,CAAEjB,CAAc,CAACiB,UAfP,CAgBpBC,QAAQ,CAAElB,CAAc,CAACkB,QAhBL,CAiBpBC,UAAU,CAAEnB,CAAc,CAACmB,UAjBP,CAkBpBC,OAAO,CAAEpB,CAAc,CAACoB,OAlBJ,CAmBpBC,UAAU,CAAErB,CAAc,CAACqB,UAnBP,CAoBpBC,aAAa,CAAEtB,CAAc,CAACsB,aApBV,CAqBpBC,aAAa,CAAEvB,CAAc,CAACuB,aArBV,CAsBpBC,OAAO,CAAExB,CAAc,CAACwB,OAtBJ,CAuBpBC,UAAU,CAAEzB,CAAc,CAACyB,UAvBP,CAwBpBC,SAAS,CAAE1B,CAAc,CAAC0B,SAxBN,CAHtB,CA8BKxD,SAAS,CAACgC,CAAD,CAAgBN,CAAG,CAACE,GAAJ,CAAQL,CAAR,CAAhB,CA9Bd,EA+BEA,CAAc,CAACG,CAAD,CAAMM,CAAN,CA/BhB,IAkCMyB,EAAa,CAAG1B,gBAAgB,CAACF,CAAD,CAlCtC,CAmCMoB,CAAU,CAAGS,UAAU,CAACD,CAAa,CAACR,UAAf,CAnC7B,CAqCMX,CAAU,CAAGoB,UAAU,CAACD,CAAa,CAACnB,UAAf,CArC7B,CAsCMD,CAAa,CAAGqB,UAAU,CAACD,CAAa,CAACpB,aAAf,CAtChC,CAuCMM,CAAS,CAAGe,UAAU,CAACD,CAAa,CAACE,cAAf,CAvC5B,CAwCMf,CAAY,CAAGc,UAAU,CAACD,CAAa,CAACG,iBAAf,CAxC/B,CA0CMC,CAAG,CAAGvB,CAAU,CAAGD,CAAb,CAA6BM,CAA7B,CAAyCC,CA1CrD,CA4CMkB,CAAS,CAAGjC,CAAW,CAACkC,YA5C9B,CA+CM7B,CAAS,CAAGvB,CAAO,CAAGA,CAAO,CAAGsC,CAAV,CAAuBY,CAA1B,IA/CzB,CAiDMG,CAAW,CAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASL,CAAT,CAHXpD,CAAO,CAAGuC,CAAV,CAAuBY,CAGZ,CAAT,CAAyC3B,CAAzC,CAjDpB,CAmDA,IAAIkC,KAAK,CAACJ,CAAD,CAAT,EAIA,GAAMK,EAAsC,CAAG,CAC7CC,MAAM,WAAKN,CAAL,MADuC,CAE7CO,SAAS,CAAE5D,CAAO,EAAImD,CAAS,CAAG5B,CAAvB,CAAmC,QAAnC,CAA8C,QAFZ,CAA/C,CAKKlC,SAAS,CAACqE,CAAD,CAAoB3C,CAAG,CAACE,GAAJ,CAAQP,CAAR,CAApB,CATd,EAUEA,CAAkB,CAACK,CAAD,CAAM2C,CAAN,CAVpB,CAnDA,CA+DD,CAnEgC,CArBoC,CA0F/DG,CAA2D,CAC/DhF,SAAS,CAAC,SAACkC,CAAD,CAAM+C,CAAN,CAAY,mBACpB,GAAA/C,CAAG,CAACE,GAAJ,CAAQJ,CAAR,GAAmBZ,QADC,qBACpB,SAA8B6D,CAA9B,CADoB,CAEpB,GAAM5C,EAAW,CAAGH,CAAG,CAACE,GAAJ,CAAQV,CAAR,CAApB,CACIW,CAHgB,GAIlBA,CAAW,CAAC6C,KAAZ,CAAoBD,CAAC,CAACE,MAAF,CAASD,KAJX,EAMpBjD,CAAe,EAChB,CAPQ,CA3F0D,CA4HrE,MAxBA/B,UAAS,CAAC+B,CAAD,CAAkB,CACzBf,CADyB,CAEzBC,CAFyB,CAGzBO,CAHyB,CAIzBF,CAJyB,CAAlB,CAwBT,CAjBAb,qBAAqB,CACnBF,aAAa,CAAC,SAACyB,CAAD,QAAS,CACrBA,CAAG,CAACkD,GAAJ,CAAQ5D,CAAR,CADqB,CAErBU,CAAG,CAACE,GAAJ,CAAQV,CAAR,CAFqB,CAAT,CAAD,CADM,CAKnBO,CALmB,CAiBrB,CATAxB,aAAa,CAAC,SAACyB,CAAD,CAAS,IACfG,EAAW,CAAGH,CAAG,CAACkD,GAAJ,CAAQ1D,CAAR,CADC,CAEfS,CAAe,CAAGD,CAAG,CAACkD,GAAJ,CAAQ5D,CAAR,CAFH,CAGjBa,CAAW,EAAIF,CAHE,GAInBE,CAAW,CAAC6C,KAAZ,CAAoB/C,CAAe,CAAC+C,KAJjB,CAKnBjD,CAAe,EALI,CAOtB,CAPY,CASb,CACE,wCACE,gDACMV,CADN,EAEE,GAAG,CAAEjB,UAAU,CAAC,CAACmB,CAAD,CAAcR,CAAd,CAAD,CAFjB,CAGE,QAAQ,CAAE+D,CAHZ,CAIE,KAAK,gCAAO3D,CAAP,EAAiBO,CAAjB,CAJP,CAKE,SAAS,CAAEd,kBAAkB,CAAC,IAAD,CAAO,CAACQ,CAAD,CAAP,CAL/B,GADF,CAQGjB,YAAY,CACX,gCACE,GAAG,CAAEsB,CADP,CAEE,KAAK,CAAEG,CAFT,CAGE,SAAS,CAAEhB,kBAAkB,CAAC,MAAD,CAH/B,CAIE,EAAE,CAAEA,kBAAkB,CAAC,MAAD,CAAS,CAC7BuE,EAAE,CAAE9D,CAAS,CAAC8D,EADe,CAE7BC,IAAI,CAAE/D,CAAS,CAAC+D,IAFa,CAAT,CAJxB,EADW,CAUXC,QAAQ,CAACC,IAVE,CARf,CAsBH,CAnJS,CAD2B,CAAhC"}
@@ -0,0 +1 @@
1
+ export * from './TextAreaAutoSize';
@@ -0,0 +1,2 @@
1
+ export*from"./TextAreaAutoSize";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/TextAreaAutoSize/index.ts"],"sourcesContent":["export * from './TextAreaAutoSize';\n"],"mappings":"AAAA"}
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","type","value","defaultValue","onChange","id","name","rows","cols","minRows","maxRows","inputRef","maxLength","disabled","size","view","form","state","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSize","focused","onClick","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onClear","onWheel"];import"./TextField.css";import{IconClear}from"@consta/icons/IconClear";import{IconEye}from"@consta/icons/IconEye";import{IconEyeClose}from"@consta/icons/IconEyeClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useCallback,useEffect}from"react";import TextAreaAutoSize from"react-textarea-autosize";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption/FieldCaption";import{FieldLabel}from"../FieldLabel/FieldLabel";import{useFlag}from"../../hooks/useFlag/useFlag";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useKeys}from"../../hooks/useKeys";import{useMutableRef}from"../../hooks/useMutableRef/useMutableRef";import{useSortSteps}from"../../hooks/useSortSteps/useSortSteps";import{cn}from"../../utils/bem";import{getByMap}from"../../utils/getByMap";import{isString}from"../../utils/type-guards";import{getTypeForRender,getValueByStep,inputValue,sizeMap,stepIsActive}from"./helpers";import{textFieldPropFormDefault,textFieldPropSizeDefault,textFieldPropViewDefault}from"./types";export var COMPONENT_NAME="TextField";export var cnTextField=cn("TextField");export var TextFieldRender=function(a,b){var c,d,e=React.useRef(null),f=React.useRef(null),g=usePropsHandler(COMPONENT_NAME,a,e),h=g.className,i=g.type,j=void 0===i?"text":i,k=g.value,l=g.defaultValue,m=g.onChange,n=g.id,o=g.name,p=g.rows,q=g.cols,r=g.minRows,s=g.maxRows,t=g.inputRef,u=g.maxLength,v=g.disabled,w=g.size,x=void 0===w?textFieldPropSizeDefault:w,y=g.view,z=void 0===y?textFieldPropViewDefault:y,A=g.form,B=void 0===A?textFieldPropFormDefault:A,C=g.state,D=g.status,E=g.onBlur,F=g.onFocus,G=g.autoFocus,H=void 0!==G&&G,I=g.placeholder,J=g.leftSide,K=g.rightSide,L=g.autoComplete,M=g.withClearButton,N=g.incrementButtons,O=g.max,P=g.min,Q=g.readOnly,R=g.required,S=g.step,T=void 0===S?1:S,U=g.tabIndex,V=g.ariaLabel,W=g.label,X=g.labelIcon,Y=g.inputContainerRef,Z=g.labelPosition,$=void 0===Z?"top":Z,_=g.caption,aa=g.iconSize,ba=g.focused,ca=g.onClick,da=g.onKeyDown,ea=g.onKeyDownCapture,fa=g.onKeyPress,ga=g.onKeyPressCapture,ha=g.onKeyUp,ia=g.onKeyUpCapture,ja=g.onClear,ka=g.onWheel,la=_objectWithoutProperties(g,_excluded),ma="number"===j&&(void 0===N||N),na=useFlag(H),oa=_slicedToArray(na,2),pa=oa[0],qa=oa[1],ra=useFlag(),sa=_slicedToArray(ra,2),ta=sa[0],ua=sa[1],va=useFlag(),wa=_slicedToArray(va,2),xa=wa[0],ya=wa[1],za=useMutableRef(ca),Aa=useMutableRef(m),Ba=useCallback(function(a){var b;a.stopPropagation(),ua.toggle(),null===(b=f.current)||void 0===b?void 0:b.focus()},[]),Ca=J,Da=K,Ea=isString(J),Fa=isString(K),Ga=getByMap(sizeMap,x,aa),Ha=useSortSteps({step:T,min:+P,max:+O}),Ia=useCallback(function(a){var b;v||(null===(b=Aa.current)||void 0===b?void 0:b.call(Aa,a.target.value||null,{e:a,id:n,name:o})),a.target.value?ya.on():ya.off()},[n,o,v]),Ja=function(a){qa.on(),null===F||void 0===F?void 0:F(a)},Ka={className:cnTextField("Input"),value:inputValue(k),defaultValue:inputValue(l),onChange:Ia,maxLength:u,disabled:v,onBlur:function handleBlur(a){qa.off(),null===E||void 0===E?void 0:E(a)},onFocus:Ja,autoFocus:H,placeholder:I,autoComplete:L,readOnly:Q,tabIndex:U,name:o,onKeyDownCapture:ea,onKeyPress:fa,onKeyPressCapture:ga,onKeyUp:ha,onKeyUpCapture:ia,id:n?n.toString():void 0,"aria-label":V},La=ta?IconEyeClose:IconEye,Ma=useKeys({isActive:!0,keys:{ArrowUp:function ArrowUp(a){if(a.preventDefault(),stepIsActive(T,j,v)){var b,c,d=getValueByStep(Ha,null===(b=f.current)||void 0===b?void 0:b.value,!0,P,O);null===(c=Aa.current)||void 0===c?void 0:c.call(Aa,d,{e:a,id:n,name:o}),f.current&&(f.current.value=d,ya.on())}},ArrowDown:function ArrowDown(a){if(a.preventDefault(),stepIsActive(T,j,v)){var b,c,d=getValueByStep(Ha,null===(b=f.current)||void 0===b?void 0:b.value,!1,P,O);null===(c=Aa.current)||void 0===c?void 0:c.call(Aa,d,{e:a,id:n,name:o}),f.current&&(f.current.value=d,ya.on())}}},onEvent:da}),Na={rows:p,cols:q,minRows:r||p,maxRows:s||p,ref:useForkRef([f,t])},Oa={type:getTypeForRender(j,ta),max:O,min:P,step:Array.isArray(Ha)?0:Ha,onKeyDown:Ma,onWheel:function onWheel(a){if(ka)ka(a);else if("number"===j){var b;null===(b=f.current)||void 0===b?void 0:b.blur()}},ref:useForkRef([f,t])},Pa=useCallback(function(a){var b;null===(b=Aa.current)||void 0===b?void 0:b.call(Aa,null,{e:a,id:n,name:o}),f.current&&(f.current.value="",ya.off())},[]),Qa=function(a){var b,c,d=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],e=getValueByStep(Ha,null===(b=f.current)||void 0===b?void 0:b.value,d,P,O);null===(c=Aa.current)||void 0===c?void 0:c.call(Aa,e,{e:a,id:n,name:o}),f.current&&(f.current.value=e,ya.on())},Ra={onClick:useCallback(function(a){var b,c;null===(b=f.current)||void 0===b?void 0:b.focus(),null===(c=za.current)||void 0===c?void 0:c.call(za,a)},[])};return useEffect(function(){var a;ya[null!==(a=f.current)&&void 0!==a&&a.value?"on":"off"]()},[null===(c=f.current)||void 0===c?void 0:c.value]),React.createElement("div",Object.assign({className:cnTextField({labelPosition:$,size:x,view:z},[h]),ref:useForkRef([b,e])},Ra,la),W&&React.createElement(FieldLabel,{as:"label",htmlFor:null===n||void 0===n?void 0:n.toString(),icon:X,required:R,className:cnTextField("Label",{labelPosition:$}),size:x},W),React.createElement("div",{className:cnTextField("Body")},React.createElement("div",{ref:Y,className:cnTextField("InputContainer",{view:z,form:B,status:D||C,disabled:v,type:j,focus:pa||ba,withValue:xa,incrementButtons:"number"===j&&ma})},Ca&&React.createElement("div",{className:cnTextField("Side",{position:"left",type:Ea?"string":"icon"}),title:"string"==typeof J?J:void 0},Ea?J:React.createElement(Ca,{className:cnTextField("Icon"),size:Ga})),"textarea"===j?React.createElement(TextAreaAutoSize,Object.assign({},Ka,Na)):React.createElement("input",Object.assign({},Ka,Oa)),ma&&stepIsActive(T,j,v)&&React.createElement("div",{className:cnTextField("Counter")},React.createElement("button",{className:cnTextField("CounterButton",{fn:"increment"}),onFocus:Ja,onClick:function(a){return Qa(a,!0)},type:"button"},React.createElement(IconSelect,{size:"xs"})),React.createElement("button",{className:cnTextField("CounterButton"),onFocus:Ja,onClick:function(a){return Qa(a,!1)},type:"button"},React.createElement(IconSelect,{size:"xs"}))),!ma&&xa&&M&&!v&&React.createElement("button",{type:"button",disabled:v,tabIndex:-1,onClick:ja||Pa,className:cnTextField("ClearButton")},React.createElement(IconClear,{size:sizeMap[x],className:cnTextField("ClearButtonIcon")})),"password"===j&&(null===(d=f.current)||void 0===d?void 0:d.value)&&React.createElement("button",{className:cnTextField("ClearButton"),type:"button",onClick:Ba},React.createElement(La,{className:cnTextField("Icon"),size:Ga})),Da&&!ma&&"password"!==j&&React.createElement("div",{className:cnTextField("Side",{position:"right",type:Fa?"string":"icon"}),title:"string"==typeof K?K:void 0},Fa?K:React.createElement(Da,{className:cnTextField("Icon"),size:Ga}))),_&&React.createElement(FieldCaption,{className:cnTextField("Caption"),status:D||C},_)))};export var TextField=forwardRef(TextFieldRender);export*from"./types";
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","type","value","defaultValue","onChange","id","name","rows","cols","minRows","maxRows","inputRef","maxLength","disabled","size","view","form","state","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSize","focused","onClick","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onClear","onWheel"];import"./TextField.css";import{IconClear}from"@consta/icons/IconClear";import{IconEye}from"@consta/icons/IconEye";import{IconEyeClose}from"@consta/icons/IconEyeClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useCallback,useEffect}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption/FieldCaption";import{FieldLabel}from"../FieldLabel/FieldLabel";import{TextAreaAutoSize}from"../TextAreaAutoSize";import{useFlag}from"../../hooks/useFlag/useFlag";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useKeys}from"../../hooks/useKeys";import{useMutableRef}from"../../hooks/useMutableRef/useMutableRef";import{useSortSteps}from"../../hooks/useSortSteps/useSortSteps";import{cn}from"../../utils/bem";import{getByMap}from"../../utils/getByMap";import{isString}from"../../utils/type-guards";import{getTypeForRender,getValueByStep,inputValue,sizeMap,stepIsActive}from"./helpers";import{textFieldPropFormDefault,textFieldPropSizeDefault,textFieldPropViewDefault}from"./types";export var COMPONENT_NAME="TextField";export var cnTextField=cn("TextField");export var TextFieldRender=function(a,b){var c,d,e=React.useRef(null),f=React.useRef(null),g=usePropsHandler(COMPONENT_NAME,a,e),h=g.className,i=g.type,j=void 0===i?"text":i,k=g.value,l=g.defaultValue,m=g.onChange,n=g.id,o=g.name,p=g.rows,q=g.cols,r=g.minRows,s=g.maxRows,t=g.inputRef,u=g.maxLength,v=g.disabled,w=g.size,x=void 0===w?textFieldPropSizeDefault:w,y=g.view,z=void 0===y?textFieldPropViewDefault:y,A=g.form,B=void 0===A?textFieldPropFormDefault:A,C=g.state,D=g.status,E=g.onBlur,F=g.onFocus,G=g.autoFocus,H=void 0!==G&&G,I=g.placeholder,J=g.leftSide,K=g.rightSide,L=g.autoComplete,M=g.withClearButton,N=g.incrementButtons,O=g.max,P=g.min,Q=g.readOnly,R=g.required,S=g.step,T=void 0===S?1:S,U=g.tabIndex,V=g.ariaLabel,W=g.label,X=g.labelIcon,Y=g.inputContainerRef,Z=g.labelPosition,$=void 0===Z?"top":Z,_=g.caption,aa=g.iconSize,ba=g.focused,ca=g.onClick,da=g.onKeyDown,ea=g.onKeyDownCapture,fa=g.onKeyPress,ga=g.onKeyPressCapture,ha=g.onKeyUp,ia=g.onKeyUpCapture,ja=g.onClear,ka=g.onWheel,la=_objectWithoutProperties(g,_excluded),ma="number"===j&&(void 0===N||N),na=useFlag(H),oa=_slicedToArray(na,2),pa=oa[0],qa=oa[1],ra=useFlag(),sa=_slicedToArray(ra,2),ta=sa[0],ua=sa[1],va=useFlag(),wa=_slicedToArray(va,2),xa=wa[0],ya=wa[1],za=useMutableRef(ca),Aa=useMutableRef(m),Ba=useCallback(function(a){var b;a.stopPropagation(),ua.toggle(),null===(b=f.current)||void 0===b?void 0:b.focus()},[]),Ca=J,Da=K,Ea=isString(J),Fa=isString(K),Ga=getByMap(sizeMap,x,aa),Ha=useSortSteps({step:T,min:+P,max:+O}),Ia=useCallback(function(a){var b;v||(null===(b=Aa.current)||void 0===b?void 0:b.call(Aa,a.target.value||null,{e:a,id:n,name:o})),a.target.value?ya.on():ya.off()},[n,o,v]),Ja=function(a){qa.on(),null===F||void 0===F?void 0:F(a)},Ka={className:cnTextField("Input"),value:inputValue(k),defaultValue:inputValue(l),onChange:Ia,maxLength:u,disabled:v,onBlur:function handleBlur(a){qa.off(),null===E||void 0===E?void 0:E(a)},onFocus:Ja,autoFocus:H,placeholder:I,autoComplete:L,readOnly:Q,tabIndex:U,name:o,onKeyDownCapture:ea,onKeyPress:fa,onKeyPressCapture:ga,onKeyUp:ha,onKeyUpCapture:ia,id:n?n.toString():void 0,"aria-label":V},La=ta?IconEyeClose:IconEye,Ma=useKeys({isActive:!0,keys:{ArrowUp:function ArrowUp(a){if(a.preventDefault(),stepIsActive(T,j,v)){var b,c,d=getValueByStep(Ha,null===(b=f.current)||void 0===b?void 0:b.value,!0,P,O);null===(c=Aa.current)||void 0===c?void 0:c.call(Aa,d,{e:a,id:n,name:o}),f.current&&(f.current.value=d,ya.on())}},ArrowDown:function ArrowDown(a){if(a.preventDefault(),stepIsActive(T,j,v)){var b,c,d=getValueByStep(Ha,null===(b=f.current)||void 0===b?void 0:b.value,!1,P,O);null===(c=Aa.current)||void 0===c?void 0:c.call(Aa,d,{e:a,id:n,name:o}),f.current&&(f.current.value=d,ya.on())}}},onEvent:da}),Na={rows:p,cols:q,minRows:r||p,maxRows:s||p,ref:useForkRef([f,t])},Oa={type:getTypeForRender(j,ta),max:O,min:P,step:Array.isArray(Ha)?0:Ha,onKeyDown:Ma,onWheel:function onWheel(a){if(ka)ka(a);else if("number"===j){var b;null===(b=f.current)||void 0===b?void 0:b.blur()}},ref:useForkRef([f,t])},Pa=useCallback(function(a){var b;null===(b=Aa.current)||void 0===b?void 0:b.call(Aa,null,{e:a,id:n,name:o}),f.current&&(f.current.value="",ya.off())},[]),Qa=function(a){var b,c,d=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],e=getValueByStep(Ha,null===(b=f.current)||void 0===b?void 0:b.value,d,P,O);null===(c=Aa.current)||void 0===c?void 0:c.call(Aa,e,{e:a,id:n,name:o}),f.current&&(f.current.value=e,ya.on())},Ra={onClick:useCallback(function(a){var b,c;null===(b=f.current)||void 0===b?void 0:b.focus(),null===(c=za.current)||void 0===c?void 0:c.call(za,a)},[])};return useEffect(function(){var a;ya[null!==(a=f.current)&&void 0!==a&&a.value?"on":"off"]()},[null===(c=f.current)||void 0===c?void 0:c.value]),React.createElement("div",Object.assign({className:cnTextField({labelPosition:$,size:x,view:z},[h]),ref:useForkRef([b,e])},Ra,la),W&&React.createElement(FieldLabel,{as:"label",htmlFor:null===n||void 0===n?void 0:n.toString(),icon:X,required:R,className:cnTextField("Label",{labelPosition:$}),size:x},W),React.createElement("div",{className:cnTextField("Body")},React.createElement("div",{ref:Y,className:cnTextField("InputContainer",{view:z,form:B,status:D||C,disabled:v,type:j,focus:pa||ba,withValue:xa,incrementButtons:"number"===j&&ma})},Ca&&React.createElement("div",{className:cnTextField("Side",{position:"left",type:Ea?"string":"icon"}),title:"string"==typeof J?J:void 0},Ea?J:React.createElement(Ca,{className:cnTextField("Icon"),size:Ga})),"textarea"===j?React.createElement(TextAreaAutoSize,Object.assign({},Ka,Na)):React.createElement("input",Object.assign({},Ka,Oa)),ma&&stepIsActive(T,j,v)&&React.createElement("div",{className:cnTextField("Counter")},React.createElement("button",{className:cnTextField("CounterButton",{fn:"increment"}),onFocus:Ja,onClick:function(a){return Qa(a,!0)},type:"button"},React.createElement(IconSelect,{size:"xs"})),React.createElement("button",{className:cnTextField("CounterButton"),onFocus:Ja,onClick:function(a){return Qa(a,!1)},type:"button"},React.createElement(IconSelect,{size:"xs"}))),!ma&&xa&&M&&!v&&React.createElement("button",{type:"button",disabled:v,tabIndex:-1,onClick:ja||Pa,className:cnTextField("ClearButton")},React.createElement(IconClear,{size:sizeMap[x],className:cnTextField("ClearButtonIcon")})),"password"===j&&(null===(d=f.current)||void 0===d?void 0:d.value)&&React.createElement("button",{className:cnTextField("ClearButton"),type:"button",onClick:Ba},React.createElement(La,{className:cnTextField("Icon"),size:Ga})),Da&&!ma&&"password"!==j&&React.createElement("div",{className:cnTextField("Side",{position:"right",type:Fa?"string":"icon"}),title:"string"==typeof K?K:void 0},Fa?K:React.createElement(Da,{className:cnTextField("Icon"),size:Ga}))),_&&React.createElement(FieldCaption,{className:cnTextField("Caption"),status:D||C},_)))};export var TextField=forwardRef(TextFieldRender);export*from"./types";
2
2
  //# sourceMappingURL=TextField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","names":["IconClear","IconEye","IconEyeClose","IconSelect","React","forwardRef","useCallback","useEffect","TextAreaAutoSize","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useKeys","useMutableRef","useSortSteps","cn","getByMap","isString","getTypeForRender","getValueByStep","inputValue","sizeMap","stepIsActive","textFieldPropFormDefault","textFieldPropSizeDefault","textFieldPropViewDefault","COMPONENT_NAME","cnTextField","TextFieldRender","props","ref","textFieldRef","useRef","inputRef","className","type","value","defaultValue","onChange","id","name","rows","cols","minRows","maxRows","inputRefProp","maxLength","disabled","size","view","form","state","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSizeProp","iconSize","focused","onClick","onKeyDownProp","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onClear","onWheelProp","onWheel","otherProps","focus","setFocus","passwordVisible","setPasswordVisible","withValue","setWithValue","onClickRef","onChangeRef","handleEyeClick","e","stopPropagation","toggle","current","LeftIcon","RightIcon","leftSideIsString","rightSideIsString","sortedSteps","handleChange","target","on","off","handleFocus","commonProps","handleBlur","toString","Eye","isActive","keys","ArrowUp","preventDefault","newValue","ArrowDown","onEvent","textareaProps","inputProps","Array","isArray","blur","handleClear","changeNumberValue","isIncrement","rootProps","position","fn","TextField"],"sources":["../../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import './TextField.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconEye } from '@consta/icons/IconEye';\nimport { IconEyeClose } from '@consta/icons/IconEyeClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useCallback, useEffect } from 'react';\nimport TextAreaAutoSize from 'react-textarea-autosize';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef/useForkRef';\nimport { useKeys } from '##/hooks/useKeys';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { useSortSteps } from '##/hooks/useSortSteps/useSortSteps';\nimport { cn } from '##/utils/bem';\nimport { getByMap } from '##/utils/getByMap';\nimport { isString } from '##/utils/type-guards';\n\nimport {\n getTypeForRender,\n getValueByStep,\n inputValue,\n sizeMap,\n stepIsActive,\n} from './helpers';\nimport {\n TextFieldComponent,\n textFieldPropFormDefault,\n TextFieldProps,\n textFieldPropSizeDefault,\n textFieldPropViewDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'TextField' as const;\nexport const cnTextField = cn(COMPONENT_NAME);\n\nexport const TextFieldRender = <TYPE extends string>(\n props: TextFieldProps<TYPE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const textFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\n const {\n className,\n type = 'text',\n value,\n defaultValue,\n onChange,\n id,\n name,\n rows,\n cols,\n minRows,\n maxRows,\n inputRef: inputRefProp,\n maxLength,\n disabled,\n size = textFieldPropSizeDefault,\n view = textFieldPropViewDefault,\n form = textFieldPropFormDefault,\n state,\n status,\n onBlur,\n onFocus,\n autoFocus = false,\n placeholder,\n leftSide,\n rightSide,\n autoComplete,\n withClearButton,\n incrementButtons: incrementButtonsProp = true,\n max,\n min,\n readOnly,\n required,\n step = 1,\n tabIndex,\n ariaLabel,\n label,\n labelIcon,\n inputContainerRef,\n labelPosition = 'top',\n caption,\n iconSize: iconSizeProp,\n focused,\n onClick,\n // onKey props\n onKeyDown: onKeyDownProp,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n onClear,\n onWheel: onWheelProp,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, textFieldRef);\n\n const incrementButtons = type === 'number' ? incrementButtonsProp : false;\n\n const [focus, setFocus] = useFlag(autoFocus);\n const [passwordVisible, setPasswordVisible] = useFlag();\n const [withValue, setWithValue] = useFlag();\n\n const onClickRef = useMutableRef(onClick);\n const onChangeRef = useMutableRef(onChange);\n\n const handleEyeClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n e.stopPropagation();\n setPasswordVisible.toggle();\n inputRef.current?.focus();\n },\n [],\n );\n\n const textarea = type === 'textarea';\n const LeftIcon = leftSide;\n const RightIcon = rightSide;\n const leftSideIsString = isString(leftSide);\n const rightSideIsString = isString(rightSide);\n const iconSize = getByMap(sizeMap, size, iconSizeProp);\n\n const sortedSteps = useSortSteps({\n step,\n min: Number(min),\n max: Number(max),\n });\n\n const handleChange: React.ChangeEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n > = useCallback(\n (e) => {\n !disabled &&\n onChangeRef.current?.(e.target.value || null, {\n e,\n id,\n name,\n });\n\n if (e.target.value) {\n setWithValue.on();\n } else {\n setWithValue.off();\n }\n },\n [id, name, disabled],\n );\n\n const handleBlur: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.off();\n onBlur?.(e);\n };\n\n const handleFocus: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.on();\n onFocus?.(e);\n };\n\n const commonProps = {\n 'className': cnTextField('Input'),\n 'value': inputValue(value),\n 'defaultValue': inputValue(defaultValue),\n 'onChange': handleChange,\n maxLength,\n disabled,\n 'onBlur': handleBlur,\n 'onFocus': handleFocus,\n autoFocus,\n placeholder,\n autoComplete,\n readOnly,\n tabIndex,\n name,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n 'id': id ? id.toString() : undefined,\n 'aria-label': ariaLabel,\n };\n\n const Eye = passwordVisible ? IconEyeClose : IconEye;\n\n const onKeyDown = useKeys({\n isActive: true,\n keys: {\n ArrowUp: (e) => {\n e.preventDefault();\n if (stepIsActive(step, type, disabled)) {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n true,\n min,\n max,\n );\n\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n }\n },\n ArrowDown: (e) => {\n e.preventDefault();\n if (stepIsActive(step, type, disabled)) {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n false,\n min,\n max,\n );\n\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n }\n },\n },\n onEvent: onKeyDownProp,\n });\n\n const onWheel = (e: React.WheelEvent<HTMLInputElement>) => {\n if (onWheelProp) {\n onWheelProp(e);\n } else if (type === 'number') {\n inputRef.current?.blur();\n }\n };\n\n const textareaProps = {\n rows,\n cols,\n minRows: minRows || rows,\n maxRows: maxRows || rows,\n ref: useForkRef([inputRef, inputRefProp]) as (\n node: HTMLTextAreaElement,\n ) => void,\n };\n\n const inputProps = {\n type: getTypeForRender(type, passwordVisible),\n max,\n min,\n step: !Array.isArray(sortedSteps) ? sortedSteps : 0,\n onKeyDown,\n onWheel,\n ref: useForkRef([\n inputRef,\n inputRefProp,\n ]) as React.RefCallback<HTMLInputElement>,\n };\n\n const handleClear = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n onChangeRef.current?.(null, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = '';\n setWithValue.off();\n }\n }, []);\n\n const changeNumberValue = (\n e: React.MouseEvent<HTMLButtonElement>,\n isIncrement = true,\n ) => {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n isIncrement,\n min,\n max,\n );\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n };\n\n const rootProps = {\n onClick: useCallback((e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n inputRef.current?.focus();\n onClickRef.current?.(e);\n }, []),\n };\n\n useEffect(() => {\n setWithValue[inputRef.current?.value ? 'on' : 'off']();\n }, [inputRef.current?.value]);\n\n return (\n <div\n className={cnTextField({ labelPosition, size, view }, [className])}\n ref={useForkRef([ref, textFieldRef])}\n {...rootProps}\n {...otherProps}\n >\n {label && (\n <FieldLabel\n as=\"label\"\n htmlFor={id?.toString()}\n icon={labelIcon}\n required={required}\n className={cnTextField('Label', { labelPosition })}\n size={size}\n >\n {label}\n </FieldLabel>\n )}\n <div className={cnTextField('Body')}>\n <div\n ref={inputContainerRef}\n className={cnTextField('InputContainer', {\n view,\n form,\n status: status || state,\n disabled,\n type,\n focus: focus || focused,\n withValue,\n incrementButtons: type === 'number' && incrementButtons,\n })}\n >\n {LeftIcon && (\n <div\n className={cnTextField('Side', {\n position: 'left',\n type: leftSideIsString ? 'string' : 'icon',\n })}\n title={typeof leftSide === 'string' ? leftSide : undefined}\n >\n {leftSideIsString ? (\n leftSide\n ) : (\n <LeftIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n {textarea ? (\n <TextAreaAutoSize {...commonProps} {...textareaProps} />\n ) : (\n <input {...commonProps} {...inputProps} />\n )}\n\n {incrementButtons && stepIsActive(step, type, disabled) && (\n <div className={cnTextField('Counter')}>\n <button\n className={cnTextField('CounterButton', { fn: 'increment' })}\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, true)}\n type=\"button\"\n >\n <IconSelect size=\"xs\" />\n </button>\n <button\n className={cnTextField('CounterButton')}\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, false)}\n type=\"button\"\n >\n <IconSelect size=\"xs\" />\n </button>\n </div>\n )}\n\n {!incrementButtons && withValue && withClearButton && !disabled && (\n <button\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n onClick={onClear || handleClear}\n className={cnTextField('ClearButton')}\n >\n <IconClear\n size={sizeMap[size]}\n className={cnTextField('ClearButtonIcon')}\n />\n </button>\n )}\n\n {type === 'password' && inputRef.current?.value && (\n <button\n className={cnTextField('ClearButton')}\n type=\"button\"\n onClick={handleEyeClick}\n >\n <Eye className={cnTextField('Icon')} size={iconSize} />\n </button>\n )}\n\n {RightIcon && !incrementButtons && type !== 'password' && (\n <div\n className={cnTextField('Side', {\n position: 'right',\n type: rightSideIsString ? 'string' : 'icon',\n })}\n title={typeof rightSide === 'string' ? rightSide : undefined}\n >\n {rightSideIsString ? (\n rightSide\n ) : (\n <RightIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption\n className={cnTextField('Caption')}\n status={status || state}\n >\n {caption}\n </FieldCaption>\n )}\n </div>\n </div>\n );\n};\n\nexport const TextField = forwardRef(TextFieldRender) as TextFieldComponent;\nexport * from './types';\n"],"mappings":"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"}
1
+ {"version":3,"file":"TextField.js","names":["IconClear","IconEye","IconEyeClose","IconSelect","React","forwardRef","useCallback","useEffect","usePropsHandler","FieldCaption","FieldLabel","TextAreaAutoSize","useFlag","useForkRef","useKeys","useMutableRef","useSortSteps","cn","getByMap","isString","getTypeForRender","getValueByStep","inputValue","sizeMap","stepIsActive","textFieldPropFormDefault","textFieldPropSizeDefault","textFieldPropViewDefault","COMPONENT_NAME","cnTextField","TextFieldRender","props","ref","textFieldRef","useRef","inputRef","className","type","value","defaultValue","onChange","id","name","rows","cols","minRows","maxRows","inputRefProp","maxLength","disabled","size","view","form","state","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSizeProp","iconSize","focused","onClick","onKeyDownProp","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onClear","onWheelProp","onWheel","otherProps","focus","setFocus","passwordVisible","setPasswordVisible","withValue","setWithValue","onClickRef","onChangeRef","handleEyeClick","e","stopPropagation","toggle","current","LeftIcon","RightIcon","leftSideIsString","rightSideIsString","sortedSteps","handleChange","target","on","off","handleFocus","commonProps","handleBlur","toString","Eye","isActive","keys","ArrowUp","preventDefault","newValue","ArrowDown","onEvent","textareaProps","inputProps","Array","isArray","blur","handleClear","changeNumberValue","isIncrement","rootProps","position","fn","TextField"],"sources":["../../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import './TextField.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconEye } from '@consta/icons/IconEye';\nimport { IconEyeClose } from '@consta/icons/IconEyeClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useCallback, useEffect } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel/FieldLabel';\nimport { TextAreaAutoSize } from '##/components/TextAreaAutoSize';\nimport { useFlag } from '##/hooks/useFlag/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef/useForkRef';\nimport { useKeys } from '##/hooks/useKeys';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { useSortSteps } from '##/hooks/useSortSteps/useSortSteps';\nimport { cn } from '##/utils/bem';\nimport { getByMap } from '##/utils/getByMap';\nimport { isString } from '##/utils/type-guards';\n\nimport {\n getTypeForRender,\n getValueByStep,\n inputValue,\n sizeMap,\n stepIsActive,\n} from './helpers';\nimport {\n TextFieldComponent,\n textFieldPropFormDefault,\n TextFieldProps,\n textFieldPropSizeDefault,\n textFieldPropViewDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'TextField' as const;\nexport const cnTextField = cn(COMPONENT_NAME);\n\nexport const TextFieldRender = <TYPE extends string>(\n props: TextFieldProps<TYPE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const textFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\n const {\n className,\n type = 'text',\n value,\n defaultValue,\n onChange,\n id,\n name,\n rows,\n cols,\n minRows,\n maxRows,\n inputRef: inputRefProp,\n maxLength,\n disabled,\n size = textFieldPropSizeDefault,\n view = textFieldPropViewDefault,\n form = textFieldPropFormDefault,\n state,\n status,\n onBlur,\n onFocus,\n autoFocus = false,\n placeholder,\n leftSide,\n rightSide,\n autoComplete,\n withClearButton,\n incrementButtons: incrementButtonsProp = true,\n max,\n min,\n readOnly,\n required,\n step = 1,\n tabIndex,\n ariaLabel,\n label,\n labelIcon,\n inputContainerRef,\n labelPosition = 'top',\n caption,\n iconSize: iconSizeProp,\n focused,\n onClick,\n // onKey props\n onKeyDown: onKeyDownProp,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n onClear,\n onWheel: onWheelProp,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, textFieldRef);\n\n const incrementButtons = type === 'number' ? incrementButtonsProp : false;\n\n const [focus, setFocus] = useFlag(autoFocus);\n const [passwordVisible, setPasswordVisible] = useFlag();\n const [withValue, setWithValue] = useFlag();\n\n const onClickRef = useMutableRef(onClick);\n const onChangeRef = useMutableRef(onChange);\n\n const handleEyeClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n e.stopPropagation();\n setPasswordVisible.toggle();\n inputRef.current?.focus();\n },\n [],\n );\n\n const textarea = type === 'textarea';\n const LeftIcon = leftSide;\n const RightIcon = rightSide;\n const leftSideIsString = isString(leftSide);\n const rightSideIsString = isString(rightSide);\n const iconSize = getByMap(sizeMap, size, iconSizeProp);\n\n const sortedSteps = useSortSteps({\n step,\n min: Number(min),\n max: Number(max),\n });\n\n const handleChange: React.ChangeEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n > = useCallback(\n (e) => {\n !disabled &&\n onChangeRef.current?.(e.target.value || null, {\n e,\n id,\n name,\n });\n\n if (e.target.value) {\n setWithValue.on();\n } else {\n setWithValue.off();\n }\n },\n [id, name, disabled],\n );\n\n const handleBlur: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.off();\n onBlur?.(e);\n };\n\n const handleFocus: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.on();\n onFocus?.(e);\n };\n\n const commonProps = {\n 'className': cnTextField('Input'),\n 'value': inputValue(value),\n 'defaultValue': inputValue(defaultValue),\n 'onChange': handleChange,\n maxLength,\n disabled,\n 'onBlur': handleBlur,\n 'onFocus': handleFocus,\n autoFocus,\n placeholder,\n autoComplete,\n readOnly,\n tabIndex,\n name,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n 'id': id ? id.toString() : undefined,\n 'aria-label': ariaLabel,\n };\n\n const Eye = passwordVisible ? IconEyeClose : IconEye;\n\n const onKeyDown = useKeys({\n isActive: true,\n keys: {\n ArrowUp: (e) => {\n e.preventDefault();\n if (stepIsActive(step, type, disabled)) {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n true,\n min,\n max,\n );\n\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n }\n },\n ArrowDown: (e) => {\n e.preventDefault();\n if (stepIsActive(step, type, disabled)) {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n false,\n min,\n max,\n );\n\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n }\n },\n },\n onEvent: onKeyDownProp,\n });\n\n const onWheel = (e: React.WheelEvent<HTMLInputElement>) => {\n if (onWheelProp) {\n onWheelProp(e);\n } else if (type === 'number') {\n inputRef.current?.blur();\n }\n };\n\n const textareaProps = {\n rows,\n cols,\n minRows: minRows || rows,\n maxRows: maxRows || rows,\n ref: useForkRef([inputRef, inputRefProp]) as (\n node: HTMLTextAreaElement,\n ) => void,\n };\n\n const inputProps = {\n type: getTypeForRender(type, passwordVisible),\n max,\n min,\n step: !Array.isArray(sortedSteps) ? sortedSteps : 0,\n onKeyDown,\n onWheel,\n ref: useForkRef([\n inputRef,\n inputRefProp,\n ]) as React.RefCallback<HTMLInputElement>,\n };\n\n const handleClear = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n onChangeRef.current?.(null, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = '';\n setWithValue.off();\n }\n }, []);\n\n const changeNumberValue = (\n e: React.MouseEvent<HTMLButtonElement>,\n isIncrement = true,\n ) => {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n isIncrement,\n min,\n max,\n );\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n };\n\n const rootProps = {\n onClick: useCallback((e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n inputRef.current?.focus();\n onClickRef.current?.(e);\n }, []),\n };\n\n useEffect(() => {\n setWithValue[inputRef.current?.value ? 'on' : 'off']();\n }, [inputRef.current?.value]);\n\n return (\n <div\n className={cnTextField({ labelPosition, size, view }, [className])}\n ref={useForkRef([ref, textFieldRef])}\n {...rootProps}\n {...otherProps}\n >\n {label && (\n <FieldLabel\n as=\"label\"\n htmlFor={id?.toString()}\n icon={labelIcon}\n required={required}\n className={cnTextField('Label', { labelPosition })}\n size={size}\n >\n {label}\n </FieldLabel>\n )}\n <div className={cnTextField('Body')}>\n <div\n ref={inputContainerRef}\n className={cnTextField('InputContainer', {\n view,\n form,\n status: status || state,\n disabled,\n type,\n focus: focus || focused,\n withValue,\n incrementButtons: type === 'number' && incrementButtons,\n })}\n >\n {LeftIcon && (\n <div\n className={cnTextField('Side', {\n position: 'left',\n type: leftSideIsString ? 'string' : 'icon',\n })}\n title={typeof leftSide === 'string' ? leftSide : undefined}\n >\n {leftSideIsString ? (\n leftSide\n ) : (\n <LeftIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n {textarea ? (\n <TextAreaAutoSize {...commonProps} {...textareaProps} />\n ) : (\n <input {...commonProps} {...inputProps} />\n )}\n\n {incrementButtons && stepIsActive(step, type, disabled) && (\n <div className={cnTextField('Counter')}>\n <button\n className={cnTextField('CounterButton', { fn: 'increment' })}\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, true)}\n type=\"button\"\n >\n <IconSelect size=\"xs\" />\n </button>\n <button\n className={cnTextField('CounterButton')}\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, false)}\n type=\"button\"\n >\n <IconSelect size=\"xs\" />\n </button>\n </div>\n )}\n\n {!incrementButtons && withValue && withClearButton && !disabled && (\n <button\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n onClick={onClear || handleClear}\n className={cnTextField('ClearButton')}\n >\n <IconClear\n size={sizeMap[size]}\n className={cnTextField('ClearButtonIcon')}\n />\n </button>\n )}\n\n {type === 'password' && inputRef.current?.value && (\n <button\n className={cnTextField('ClearButton')}\n type=\"button\"\n onClick={handleEyeClick}\n >\n <Eye className={cnTextField('Icon')} size={iconSize} />\n </button>\n )}\n\n {RightIcon && !incrementButtons && type !== 'password' && (\n <div\n className={cnTextField('Side', {\n position: 'right',\n type: rightSideIsString ? 'string' : 'icon',\n })}\n title={typeof rightSide === 'string' ? rightSide : undefined}\n >\n {rightSideIsString ? (\n rightSide\n ) : (\n <RightIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption\n className={cnTextField('Caption')}\n status={status || state}\n >\n {caption}\n </FieldCaption>\n )}\n </div>\n </div>\n );\n};\n\nexport const TextField = forwardRef(TextFieldRender) as TextFieldComponent;\nexport * from './types';\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  .TextFieldTypeTextArea{--text-field-textarea-padding-right:calc((var(--field-control-layout-right-slots-length))*var(--field-control-layout-space) + var(--field-control-layout-right-slot-contents-width) + var(--field-control-layout-padding-right));--text-field-textarea-vertical-padding:calc((var(--field-control-layout-slot-height) - var(--field-control-layout-text-line-height))/2);--text-field-textarea-control-height:var(
2
2
  --text-field-height,var(--field-control-layout-height)
3
- );--text-field-textarea-height-calc:calc(var(--text-field-textarea-control-height) - var(--field-control-layout-border-width)*2);--text-field-textarea-min-height:var(--text-field-textarea-height-calc)}.TextFieldTypeTextArea_resize{--text-field-textarea-resize:vertical;overflow:hidden}.TextFieldTypeTextArea_resize_auto{--text-field-textarea-height:var(--text-field-textarea-height-calc)}.TextFieldTypeTextArea-TextArea{height:var(--text-field-textarea-height,auto);line-height:var(--field-control-layout-text-line-height);min-height:var(--text-field-textarea-min-height);padding-bottom:var(--text-field-textarea-vertical-padding);padding-right:var(--text-field-textarea-padding-right,0);padding-top:var(--text-field-textarea-vertical-padding);resize:var(--text-field-textarea-resize,none);width:calc(100% + var(--text-field-textarea-padding-right))}
3
+ );--text-field-textarea-height-calc:calc(var(--text-field-textarea-control-height) - var(--field-control-layout-border-width)*2);--text-field-textarea-min-height:var(--text-field-textarea-height-calc);overflow:hidden}.TextFieldTypeTextArea_resize{--text-field-textarea-resize:vertical}.TextFieldTypeTextArea-TextArea{height:auto;min-height:var(--text-field-textarea-min-height);padding-bottom:var(--text-field-textarea-vertical-padding);padding-right:var(--text-field-textarea-padding-right,0);padding-top:var(--text-field-textarea-vertical-padding);resize:var(--text-field-textarea-resize,none);width:calc(100% + var(--text-field-textarea-padding-right))}.TextFieldTypeTextArea-TextArea,.TextFieldTypeTextArea-TextArea.TextAreaAutoSize{line-height:var(--field-control-layout-text-line-height)}
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","value","defaultValue","onChange","id","name","inputRef","maxLength","minLength","disabled","size","view","form","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","clearButton","readOnly","type","tabIndex","ariaLabel","iconSize","onClick","resize","rows","minRows","maxRows","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onClear","onWheel","iconClear"];import"./TextFieldTypeTextArea.css";import React,{forwardRef}from"react";import TextAreaAutoSize from"react-textarea-autosize";import{cnFieldInput,FieldClearButton,FieldControlLayout,renderSide}from"../../FieldComponents";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixScrollBar}from"../../../mixs/MixScrollBar";import{cn}from"../../../utils/bem";import{useTextField}from"../useTextField";export var cnTextFieldTypeTextArea=cn("TextFieldTypeTextArea");export var TextFieldTypeTextArea=forwardRef(function(a,b){var c=a.className,d=a.value,e=a.defaultValue,f=a.onChange,g=a.id,h=a.name,i=a.inputRef,j=a.maxLength,k=a.minLength,l=a.disabled,m=a.size,n=void 0===m?"m":m,o=a.view,p=void 0===o?"default":o,q=a.form,r=a.status,s=a.onBlur,t=a.onFocus,u=a.autoFocus,v=a.placeholder,w=a.leftSide,x=a.rightSide,y=a.autoComplete,z=a.clearButton,A=a.readOnly,B=a.type,C=a.tabIndex,D=a.ariaLabel,E=a.iconSize,F=a.onClick,G=a.resize,H=a.rows,I=a.minRows,J=a.maxRows,K=a.onKeyDown,L=a.onKeyDownCapture,M=a.onKeyUp,N=a.onKeyUpCapture,O=a.onCopy,P=a.onCopyCapture,Q=a.onCut,R=a.onCutCapture,S=a.onPaste,T=a.onPasteCapture,U=a.onClear,V=a.onWheel,W=a.iconClear,X=_objectWithoutProperties(a,_excluded),Y=useTextField({onClick:F,onChange:f,onBlur:s,onFocus:t,disabled:l,onClear:U}),Z=Y.handleBlur,$=Y.handleChange,_=Y.handleClear,aa=Y.handleFocus,ba=Y.focused,ca=Y.withValue,da=Y.ref,ea=Y.inputRef,fa=Y.handleClick,ga={className:cnTextFieldTypeTextArea("TextArea",[cnFieldInput(),cnMixScrollBar({size:"xs",trackSize:"native"})]),placeholder:v,autoComplete:y,onBlur:Z,onChange:$,onFocus:aa,defaultValue:e||void 0,value:null===d?"":d,ref:useForkRef([i,ea]),readOnly:A,tabIndex:C,"aria-label":D,onKeyDown:K,onKeyDownCapture:L,onKeyUp:M,onKeyUpCapture:N,maxLength:j,minLength:k,disabled:l,id:g,name:h,autoFocus:u,onCopy:O,onCopyCapture:P,onCut:Q,onCutCapture:R,onPaste:S,onPasteCapture:T,onWheel:V};return React.createElement(FieldControlLayout,Object.assign({},X,{className:cnTextFieldTypeTextArea({resize:G},[c]),form:q,status:r,size:n,leftSide:renderSide(w,n,E),rightSide:[z&&!l&&ca&&React.createElement(FieldClearButton,{size:n,onClick:_,icon:W}),renderSide(x,n,E)],focused:ba,view:p,ref:useForkRef([b,da]),disabled:l,onClick:fa}),"auto"===G?React.createElement(TextAreaAutoSize,Object.assign({},ga,{minRows:I||H,maxRows:J||H})):React.createElement("textarea",Object.assign({},ga,{rows:H})))});
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","value","defaultValue","onChange","id","name","inputRef","maxLength","minLength","disabled","size","view","form","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","clearButton","readOnly","type","tabIndex","ariaLabel","iconSize","onClick","resize","rows","minRows","maxRows","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onClear","onWheel","iconClear"];import"./TextFieldTypeTextArea.css";import React,{forwardRef}from"react";import{cnFieldInput,FieldClearButton,FieldControlLayout,renderSide}from"../../FieldComponents";import{TextAreaAutoSize}from"../../TextAreaAutoSize";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixScrollBar}from"../../../mixs/MixScrollBar";import{cn}from"../../../utils/bem";import{useTextField}from"../useTextField";export var cnTextFieldTypeTextArea=cn("TextFieldTypeTextArea");export var TextFieldTypeTextArea=forwardRef(function(a,b){var c=a.className,d=a.value,e=a.defaultValue,f=a.onChange,g=a.id,h=a.name,i=a.inputRef,j=a.maxLength,k=a.minLength,l=a.disabled,m=a.size,n=void 0===m?"m":m,o=a.view,p=void 0===o?"default":o,q=a.form,r=a.status,s=a.onBlur,t=a.onFocus,u=a.autoFocus,v=a.placeholder,w=a.leftSide,x=a.rightSide,y=a.autoComplete,z=a.clearButton,A=a.readOnly,B=a.type,C=a.tabIndex,D=a.ariaLabel,E=a.iconSize,F=a.onClick,G=a.resize,H=a.rows,I=a.minRows,J=a.maxRows,K=a.onKeyDown,L=a.onKeyDownCapture,M=a.onKeyUp,N=a.onKeyUpCapture,O=a.onCopy,P=a.onCopyCapture,Q=a.onCut,R=a.onCutCapture,S=a.onPaste,T=a.onPasteCapture,U=a.onClear,V=a.onWheel,W=a.iconClear,X=_objectWithoutProperties(a,_excluded),Y=useTextField({onClick:F,onChange:f,onBlur:s,onFocus:t,disabled:l,onClear:U}),Z=Y.handleBlur,$=Y.handleChange,_=Y.handleClear,aa=Y.handleFocus,ba=Y.focused,ca=Y.withValue,da=Y.ref,ea=Y.inputRef,fa=Y.handleClick,ga={className:cnTextFieldTypeTextArea("TextArea",[cnFieldInput(),cnMixScrollBar({size:"xs",trackSize:"native"})]),placeholder:v,autoComplete:y,onBlur:Z,onChange:$,onFocus:aa,defaultValue:e||void 0,value:null===d?"":d,ref:useForkRef([i,ea]),readOnly:A,tabIndex:C,"aria-label":D,onKeyDown:K,onKeyDownCapture:L,onKeyUp:M,onKeyUpCapture:N,maxLength:j,minLength:k,disabled:l,id:g,name:h,autoFocus:u,onCopy:O,onCopyCapture:P,onCut:Q,onCutCapture:R,onPaste:S,onPasteCapture:T,onWheel:V};return React.createElement(FieldControlLayout,Object.assign({},X,{className:cnTextFieldTypeTextArea({resize:G},[c]),form:q,status:r,size:n,leftSide:renderSide(w,n,E),rightSide:[z&&!l&&ca&&React.createElement(FieldClearButton,{size:n,onClick:_,icon:W}),renderSide(x,n,E)],focused:ba,view:p,ref:useForkRef([b,da]),disabled:l,onClick:fa}),"auto"===G?React.createElement(TextAreaAutoSize,Object.assign({},ga,{minRows:I||H,maxRows:J||H})):React.createElement("textarea",Object.assign({},ga,{rows:H})))});
2
2
  //# sourceMappingURL=TextFieldTypeTextArea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextFieldTypeTextArea.js","names":["React","forwardRef","TextAreaAutoSize","cnFieldInput","FieldClearButton","FieldControlLayout","renderSide","useForkRef","cnMixScrollBar","cn","useTextField","cnTextFieldTypeTextArea","TextFieldTypeTextArea","props","componentRef","className","value","defaultValue","onChange","id","name","inputRefProp","inputRef","maxLength","minLength","disabled","size","view","form","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","clearButton","readOnly","type","tabIndex","ariaLabel","iconSize","onClick","resize","rows","minRows","maxRows","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onClear","onWheel","iconClear","otherProps","handleBlur","handleChange","handleClear","handleFocus","focused","withValue","ref","handleClick","textareaProps","trackSize"],"sources":["../../../../../../src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.tsx"],"sourcesContent":["import './TextFieldTypeTextArea.css';\n\nimport React, { forwardRef } from 'react';\nimport TextAreaAutoSize from 'react-textarea-autosize';\n\nimport {\n cnFieldInput,\n FieldClearButton,\n FieldControlLayout,\n renderSide,\n} from '##/components/FieldComponents';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cn } from '##/utils/bem';\n\nimport { TextFieldTypeComponent } from '../types';\nimport { useTextField } from '../useTextField';\n\nexport const cnTextFieldTypeTextArea = cn('TextFieldTypeTextArea');\n\nexport const TextFieldTypeTextArea: TextFieldTypeComponent<'textarea'> =\n forwardRef((props, componentRef) => {\n const {\n className,\n value,\n defaultValue,\n onChange,\n id,\n name,\n inputRef: inputRefProp,\n maxLength,\n minLength,\n disabled,\n size = 'm',\n view = 'default',\n form,\n status,\n onBlur,\n onFocus,\n autoFocus,\n placeholder,\n leftSide,\n rightSide,\n autoComplete,\n clearButton,\n readOnly,\n type,\n tabIndex,\n ariaLabel,\n iconSize,\n onClick,\n resize,\n rows,\n minRows,\n maxRows,\n\n // onKey props\n onKeyDown,\n onKeyDownCapture,\n onKeyUp,\n onKeyUpCapture,\n onCopy,\n onCopyCapture,\n onCut,\n onCutCapture,\n onPaste,\n onPasteCapture,\n onClear,\n onWheel,\n iconClear,\n ...otherProps\n } = props;\n\n const {\n handleBlur,\n handleChange,\n handleClear,\n handleFocus,\n focused,\n withValue,\n ref,\n inputRef,\n handleClick,\n } = useTextField<HTMLTextAreaElement>({\n onClick,\n onChange,\n onBlur,\n onFocus,\n disabled,\n onClear,\n });\n\n const textareaProps = {\n 'className': cnTextFieldTypeTextArea('TextArea', [\n cnFieldInput(),\n cnMixScrollBar({ size: 'xs', trackSize: 'native' }),\n ]),\n placeholder,\n autoComplete,\n 'onBlur': handleBlur,\n 'onChange': handleChange,\n 'onFocus': handleFocus,\n 'defaultValue': defaultValue || undefined,\n 'value': value === null ? '' : value,\n 'ref': useForkRef([inputRefProp, inputRef]),\n readOnly,\n tabIndex,\n 'aria-label': ariaLabel,\n onKeyDown,\n onKeyDownCapture,\n onKeyUp,\n onKeyUpCapture,\n maxLength,\n minLength,\n disabled,\n id,\n name,\n autoFocus,\n onCopy,\n onCopyCapture,\n onCut,\n onCutCapture,\n onPaste,\n onPasteCapture,\n onWheel,\n };\n\n const textAreaNoAutoSizeProps = {\n rows,\n };\n\n const textAreaAutoSizeProps = {\n minRows: minRows || rows,\n maxRows: maxRows || rows,\n };\n\n return (\n <FieldControlLayout\n {...otherProps}\n className={cnTextFieldTypeTextArea({ resize }, [className])}\n form={form}\n status={status}\n size={size}\n leftSide={renderSide(leftSide, size, iconSize)}\n rightSide={[\n clearButton && !disabled && withValue && (\n <FieldClearButton\n size={size}\n onClick={handleClear}\n icon={iconClear}\n />\n ),\n renderSide(rightSide, size, iconSize),\n ]}\n focused={focused}\n view={view}\n ref={useForkRef([componentRef, ref])}\n disabled={disabled}\n onClick={handleClick}\n >\n {resize === 'auto' ? (\n <TextAreaAutoSize {...textareaProps} {...textAreaAutoSizeProps} />\n ) : (\n <textarea {...textareaProps} {...textAreaNoAutoSizeProps} />\n )}\n </FieldControlLayout>\n );\n });\n"],"mappings":"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"}
1
+ {"version":3,"file":"TextFieldTypeTextArea.js","names":["React","forwardRef","cnFieldInput","FieldClearButton","FieldControlLayout","renderSide","TextAreaAutoSize","useForkRef","cnMixScrollBar","cn","useTextField","cnTextFieldTypeTextArea","TextFieldTypeTextArea","props","componentRef","className","value","defaultValue","onChange","id","name","inputRefProp","inputRef","maxLength","minLength","disabled","size","view","form","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","clearButton","readOnly","type","tabIndex","ariaLabel","iconSize","onClick","resize","rows","minRows","maxRows","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onClear","onWheel","iconClear","otherProps","handleBlur","handleChange","handleClear","handleFocus","focused","withValue","ref","handleClick","textareaProps","trackSize"],"sources":["../../../../../../src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.tsx"],"sourcesContent":["import './TextFieldTypeTextArea.css';\n\nimport React, { forwardRef } from 'react';\n\nimport {\n cnFieldInput,\n FieldClearButton,\n FieldControlLayout,\n renderSide,\n} from '##/components/FieldComponents';\nimport { TextAreaAutoSize } from '##/components/TextAreaAutoSize';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cn } from '##/utils/bem';\n\nimport { TextFieldTypeComponent } from '../types';\nimport { useTextField } from '../useTextField';\n\nexport const cnTextFieldTypeTextArea = cn('TextFieldTypeTextArea');\n\nexport const TextFieldTypeTextArea: TextFieldTypeComponent<'textarea'> =\n forwardRef((props, componentRef) => {\n const {\n className,\n value,\n defaultValue,\n onChange,\n id,\n name,\n inputRef: inputRefProp,\n maxLength,\n minLength,\n disabled,\n size = 'm',\n view = 'default',\n form,\n status,\n onBlur,\n onFocus,\n autoFocus,\n placeholder,\n leftSide,\n rightSide,\n autoComplete,\n clearButton,\n readOnly,\n type,\n tabIndex,\n ariaLabel,\n iconSize,\n onClick,\n resize,\n rows,\n minRows,\n maxRows,\n\n // onKey props\n onKeyDown,\n onKeyDownCapture,\n onKeyUp,\n onKeyUpCapture,\n onCopy,\n onCopyCapture,\n onCut,\n onCutCapture,\n onPaste,\n onPasteCapture,\n onClear,\n onWheel,\n iconClear,\n ...otherProps\n } = props;\n\n const {\n handleBlur,\n handleChange,\n handleClear,\n handleFocus,\n focused,\n withValue,\n ref,\n inputRef,\n handleClick,\n } = useTextField<HTMLTextAreaElement>({\n onClick,\n onChange,\n onBlur,\n onFocus,\n disabled,\n onClear,\n });\n\n const textareaProps = {\n 'className': cnTextFieldTypeTextArea('TextArea', [\n cnFieldInput(),\n cnMixScrollBar({ size: 'xs', trackSize: 'native' }),\n ]),\n placeholder,\n autoComplete,\n 'onBlur': handleBlur,\n 'onChange': handleChange,\n 'onFocus': handleFocus,\n 'defaultValue': defaultValue || undefined,\n 'value': value === null ? '' : value,\n 'ref': useForkRef([inputRefProp, inputRef]),\n readOnly,\n tabIndex,\n 'aria-label': ariaLabel,\n onKeyDown,\n onKeyDownCapture,\n onKeyUp,\n onKeyUpCapture,\n maxLength,\n minLength,\n disabled,\n id,\n name,\n autoFocus,\n onCopy,\n onCopyCapture,\n onCut,\n onCutCapture,\n onPaste,\n onPasteCapture,\n onWheel,\n };\n\n const textAreaNoAutoSizeProps = {\n rows,\n };\n\n const textAreaAutoSizeProps = {\n minRows: minRows || rows,\n maxRows: maxRows || rows,\n };\n\n return (\n <FieldControlLayout\n {...otherProps}\n className={cnTextFieldTypeTextArea({ resize }, [className])}\n form={form}\n status={status}\n size={size}\n leftSide={renderSide(leftSide, size, iconSize)}\n rightSide={[\n clearButton && !disabled && withValue && (\n <FieldClearButton\n size={size}\n onClick={handleClear}\n icon={iconClear}\n />\n ),\n renderSide(rightSide, size, iconSize),\n ]}\n focused={focused}\n view={view}\n ref={useForkRef([componentRef, ref])}\n disabled={disabled}\n onClick={handleClick}\n >\n {resize === 'auto' ? (\n <TextAreaAutoSize {...textareaProps} {...textAreaAutoSizeProps} />\n ) : (\n <textarea {...textareaProps} {...textAreaNoAutoSizeProps} />\n )}\n </FieldControlLayout>\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","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponents/Select.css";import{IconClear}from"@consta/icons/IconClear";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultLabelForCreate,defaultLabelForEmptyItems,defaultLabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{useSelect}from"../SelectComponents/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{cnMixFocus}from"../../mixs/MixFocus";import{isNotNil}from"../../utils/type-guards";import{clearSizeMap,iconSizeMap,isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=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.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultLabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultLabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=g.onScrollToBottom,ca=g.onSearchValueChange,da=g.onDropdownOpen,ea=g.virtualScroll,fa=g.dropdownOpen,ga=g.ignoreOutsideClicksRefs,ha=_objectWithoutProperties(g,_excluded),ia=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))},onSearchValueChange:ca,onDropdownOpen:da,dropdownOpen:fa,ignoreOutsideClicksRefs:ga}),ja=ia.getKeyProps,ka=ia.getOptionProps,la=ia.isOpen,ma=ia.visibleItems,na=ia.isFocused,oa=ia.handleInputFocus,pa=ia.handleInputBlur,qa=ia.handleToggleDropdown,ra=ia.inputRef,sa=ia.handleInputClick,ta=ia.handleInputChange,ua=ia.searchValue,va=ia.clearValue,wa=ia.getHandleRemoveValue,xa=ia.notFound,ya=ia.hasItems,za=ia.optionsRefs,Aa=p?"".concat(p,"-input"):p,Ba=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},Ca=useForkRef([ra,Q]),Da=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 Ba({item:a,handleRemove:wa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&Ba({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!ua&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ja(),{type:"text",name:C,id:Aa,onFocus:oa,onBlur:pa,"aria-label":o,onChange:ta,ref:Ca,className:cnSelect("Input",{size:z,hide:!Y&&isNotNil(m),multiple:Y,isUserSelect:!0}),value:ua,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:na,disabled:n,size:z,required:r,id:Aa,view:x,type:"userselect",form:v,multiple:!0,ref:b,style:$},ha),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":la,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:sa,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue",{isUserSelect:!0})},Da()):Da())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:va,tabIndex:-1,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClear,{size:clearSizeMap[z],className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:qa},React.createElement(IconSelect,{size:iconSizeMap[z],className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},ua)),React.createElement(SelectDropdown,{isOpen:la,size:z,controlRef:f,getOptionProps:ka,dropdownRef:t,form:aa,isLoading:q,className:A,renderItem:N||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(UserSelectItem,{label:G(b),subLabel:H(b),avatarUrl:I(b),active:c,hovered:d,size:z,indent:"round"===aa?"increased":"normal",onClick:e,onMouseEnter:f,disable:K(b),multiple:Y,ref:g})},getGroupLabel:M,visibleItems:ma,labelForNotFound:S,labelForCreate:U,notFound:xa,hasItems:ya,labelForEmptyItems:W,itemsRefs:za,onScrollToBottom:ba,virtualScroll:ea,style:"number"==typeof(null===$||void 0===$?void 0:$.zIndex)?{zIndex:$.zIndex+1}:void 0}))};export var UserSelect=forwardRef(UserSelectRender);export*from"./helpers";
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","dropdownViewportRef"];import"../SelectComponents/Select.css";import{IconClear}from"@consta/icons/IconClear";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultLabelForCreate,defaultLabelForEmptyItems,defaultLabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{useSelect}from"../SelectComponents/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{cnMixFocus}from"../../mixs/MixFocus";import{isNotNil}from"../../utils/type-guards";import{clearSizeMap,iconSizeMap,isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=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.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultLabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultLabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=g.onScrollToBottom,ca=g.onSearchValueChange,da=g.onDropdownOpen,ea=g.virtualScroll,fa=g.dropdownOpen,ga=g.ignoreOutsideClicksRefs,ha=g.dropdownViewportRef,ia=_objectWithoutProperties(g,_excluded),ja=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))},onSearchValueChange:ca,onDropdownOpen:da,dropdownOpen:fa,ignoreOutsideClicksRefs:ga}),ka=ja.getKeyProps,la=ja.getOptionProps,ma=ja.isOpen,na=ja.visibleItems,oa=ja.isFocused,pa=ja.handleInputFocus,qa=ja.handleInputBlur,ra=ja.handleToggleDropdown,sa=ja.inputRef,ta=ja.handleInputClick,ua=ja.handleInputChange,va=ja.searchValue,wa=ja.clearValue,xa=ja.getHandleRemoveValue,ya=ja.notFound,za=ja.hasItems,Aa=ja.optionsRefs,Ba=p?"".concat(p,"-input"):p,Ca=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},Da=useForkRef([sa,Q]),Ea=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 Ca({item:a,handleRemove:xa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&Ca({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!va&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ka(),{type:"text",name:C,id:Ba,onFocus:pa,onBlur:qa,"aria-label":o,onChange:ua,ref:Da,className:cnSelect("Input",{size:z,hide:!Y&&isNotNil(m),multiple:Y,isUserSelect:!0}),value:va,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:oa,disabled:n,size:z,required:r,id:Ba,view:x,type:"userselect",form:v,multiple:!0,ref:b,style:$},ia),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":ma,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:ta,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue",{isUserSelect:!0})},Ea()):Ea())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:wa,tabIndex:-1,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClear,{size:clearSizeMap[z],className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ra},React.createElement(IconSelect,{size:iconSizeMap[z],className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},va)),React.createElement(SelectDropdown,{isOpen:ma,size:z,controlRef:f,getOptionProps:la,dropdownRef:t,form:aa,isLoading:q,className:A,renderItem:N||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(UserSelectItem,{label:G(b),subLabel:H(b),avatarUrl:I(b),active:c,hovered:d,size:z,indent:"round"===aa?"increased":"normal",onClick:e,onMouseEnter:f,disable:K(b),multiple:Y,ref:g})},getGroupLabel:M,visibleItems:na,labelForNotFound:S,labelForCreate:U,notFound:ya,hasItems:za,labelForEmptyItems:W,itemsRefs:Aa,onScrollToBottom:ba,virtualScroll:ea,viewportRef:ha,style:"number"==typeof(null===$||void 0===$?void 0:$.zIndex)?{zIndex:$.zIndex+1}:void 0}))};export var UserSelect=forwardRef(UserSelectRender);export*from"./helpers";
2
2
  //# sourceMappingURL=UserSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserSelect.js","names":["IconClear","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultLabelForCreate","defaultLabelForEmptyItems","defaultLabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","cnMixFocus","isNotNil","clearSizeMap","iconSizeMap","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","inputId","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelect/UserSelect.tsx"],"sourcesContent":["import '##/components/SelectComponents/Select.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponents/cnSelect';\nimport {\n defaultLabelForCreate,\n defaultLabelForEmptyItems,\n defaultLabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponents/helpers';\nimport { SelectContainer } from '##/components/SelectComponents/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponents/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponents/types';\nimport { useSelect } from '##/components/SelectComponents/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixFocus } from '##/mixs/MixFocus';\nimport { isNotNil } from '##/utils/type-guards';\n\nimport {\n clearSizeMap,\n iconSizeMap,\n isMultipleParams,\n isNotMultipleParams,\n searchCompare,\n UserSelectComponent,\n UserSelectGroupDefault,\n UserSelectItemDefault,\n UserSelectPropRenderItem,\n UserSelectPropRenderValue,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<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 isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultLabelForNotFound,\n labelForCreate = defaultLabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n onScrollToBottom,\n onSearchValueChange,\n onDropdownOpen,\n virtualScroll,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\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 optionsRefs,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n onSearchValueChange,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: UserSelectPropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n ref={ref}\n />\n );\n };\n\n const renderValueDefault: UserSelectPropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\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={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n isUserSelect: true,\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 required={required}\n id={inputId}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\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\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\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 tabIndex={-1}\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={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n itemsRefs={optionsRefs}\n onScrollToBottom={onScrollToBottom}\n virtualScroll={virtualScroll}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
1
+ {"version":3,"file":"UserSelect.js","names":["IconClear","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultLabelForCreate","defaultLabelForEmptyItems","defaultLabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","cnMixFocus","isNotNil","clearSizeMap","iconSizeMap","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","dropdownViewportRef","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","inputId","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelect/UserSelect.tsx"],"sourcesContent":["import '##/components/SelectComponents/Select.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponents/cnSelect';\nimport {\n defaultLabelForCreate,\n defaultLabelForEmptyItems,\n defaultLabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponents/helpers';\nimport { SelectContainer } from '##/components/SelectComponents/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponents/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponents/types';\nimport { useSelect } from '##/components/SelectComponents/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixFocus } from '##/mixs/MixFocus';\nimport { isNotNil } from '##/utils/type-guards';\n\nimport {\n clearSizeMap,\n iconSizeMap,\n isMultipleParams,\n isNotMultipleParams,\n searchCompare,\n UserSelectComponent,\n UserSelectGroupDefault,\n UserSelectItemDefault,\n UserSelectPropRenderItem,\n UserSelectPropRenderValue,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<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 isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultLabelForNotFound,\n labelForCreate = defaultLabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n onScrollToBottom,\n onSearchValueChange,\n onDropdownOpen,\n virtualScroll,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n dropdownViewportRef,\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\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 optionsRefs,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n onSearchValueChange,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: UserSelectPropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n ref={ref}\n />\n );\n };\n\n const renderValueDefault: UserSelectPropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\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={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n isUserSelect: true,\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 required={required}\n id={inputId}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\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\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\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 tabIndex={-1}\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={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n itemsRefs={optionsRefs}\n onScrollToBottom={onScrollToBottom}\n virtualScroll={virtualScroll}\n viewportRef={dropdownViewportRef}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
@@ -83,6 +83,7 @@ export type UserSelectProps<ITEM = UserSelectItemDefault, GROUP = UserSelectGrou
83
83
  onDropdownOpen?: (isOpen: boolean) => void;
84
84
  dropdownOpen?: boolean;
85
85
  ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
86
+ dropdownViewportRef?: React.RefObject<HTMLElement>;
86
87
  }, HTMLDivElement> & (ITEM extends {
87
88
  label: UserSelectItemDefault['label'];
88
89
  } ? {} : {
@@ -161,7 +162,8 @@ export declare function withDefaultGetters<ITEM = UserSelectItemDefault, GROUP =
161
162
  onDropdownOpen?: (isOpen: boolean) => void;
162
163
  dropdownOpen?: boolean;
163
164
  ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
164
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "onFocus" | "onBlur" | "onChange" | "size" | "view" | "form" | "status" | "caption" | "label" | "name" | "disabled" | "value" | "multiple" | "placeholder" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelIcon" | "labelPosition" | "onScrollToBottom" | "labelForCreate" | "searchFunction" | "searchValue" | "onDropdownOpen" | "onSearchValueChange" | "dropdownOpen" | "ignoreOutsideClicksRefs" | "labelForNotFound" | "virtualScroll" | "onCreate" | "getItemSubLabel" | "getItemAvatarUrl"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
165
+ dropdownViewportRef?: React.RefObject<HTMLElement>;
166
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "onFocus" | "onBlur" | "onChange" | "size" | "view" | "form" | "status" | "caption" | "label" | "name" | "disabled" | "value" | "multiple" | "placeholder" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelIcon" | "labelPosition" | "onScrollToBottom" | "labelForCreate" | "searchFunction" | "searchValue" | "onDropdownOpen" | "onSearchValueChange" | "dropdownOpen" | "ignoreOutsideClicksRefs" | "labelForNotFound" | "virtualScroll" | "dropdownViewportRef" | "onCreate" | "getItemSubLabel" | "getItemAvatarUrl"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
165
167
  label: UserSelectItemDefault["label"];
166
168
  } ? {} : {
167
169
  getItemLabel: UserSelectPropGetItemLabel<ITEM>;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemSubLabel","subLabel","defaultGetItemAvatarUrl","avatarUrl","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey","getItemSubLabel","getItemAvatarUrl","searchCompare","searchValue","compare","toLocaleLowerCase","indexOf","clearSizeMap","xs","s","m","l","iconSizeMap"],"sources":["../../../../../src/components/UserSelect/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';\n\nexport type UserSelectItemDefault = {\n label: string;\n id: string | number;\n subLabel?: string;\n avatarUrl?: string;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type UserSelectGroupDefault = {\n label: string;\n id: string | number;\n};\n\ntype UserSelectRenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type UserSelectPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type UserSelectPropGetItemSubLabel<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type UserSelectPropGetItemAvatarUrl<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type UserSelectPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type UserSelectPropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type UserSelectPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\nexport type UserSelectPropGetGroupKey<GROUP> = (\n group: GROUP,\n) => string | number;\nexport type UserSelectPropGetGroupLabel<GROUP> = (group: GROUP) => string;\n\nexport type UserSelectPropSearchFunction<ITEM> = (\n item: ITEM,\n searchValue: string,\n) => boolean;\ntype UserSelectPropOnChange<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\ntype UserSelectPropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type UserSelectPropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactNode | null;\nexport type UserSelectPropRenderValue<ITEM> = (\n props: UserSelectRenderValueProps<ITEM>,\n) => React.ReactNode | null;\n\nexport type UserSelectProps<\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n disabled?: boolean;\n form?: PropForm;\n size?: Exclude<PropSize, 'xs'>;\n view?: PropView;\n dropdownForm?: 'default' | 'brick' | 'round';\n placeholder?: string;\n ariaLabel?: string;\n dropdownClassName?: string;\n status?: PropStatus;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n items: ITEM[];\n required?: boolean;\n isLoading?: boolean;\n renderItem?: UserSelectPropRenderItem<ITEM>;\n renderValue?: UserSelectPropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (label: string, props: { e: React.SyntheticEvent }) => void;\n inputRef?: React.RefObject<HTMLInputElement>;\n labelForNotFound?: string;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: UserSelectPropSearchFunction<ITEM>;\n searchValue?: string;\n multiple?: MULTIPLE;\n value?: UserSelectPropValue<ITEM, MULTIPLE>;\n onChange: UserSelectPropOnChange<ITEM, MULTIPLE>;\n groups?: GROUP[];\n getItemLabel?: UserSelectPropGetItemLabel<ITEM>;\n getItemSubLabel?: UserSelectPropGetItemSubLabel<ITEM>;\n getItemAvatarUrl?: UserSelectPropGetItemAvatarUrl<ITEM>;\n getItemKey?: UserSelectPropGetItemKey<ITEM>;\n getItemGroupKey?: UserSelectPropGetItemGroupKey<ITEM>;\n getItemDisabled?: UserSelectPropGetItemDisabled<ITEM>;\n getGroupLabel?: UserSelectPropGetGroupLabel<GROUP>;\n getGroupKey?: UserSelectPropGetGroupKey<GROUP>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n virtualScroll?: boolean;\n onScrollToBottom?: (length: number) => void;\n onSearchValueChange?: (value: string) => void;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: UserSelectItemDefault['label'] }\n ? {}\n : { getItemLabel: UserSelectPropGetItemLabel<ITEM> }) &\n (ITEM extends { id: UserSelectItemDefault['id'] }\n ? {}\n : { getItemKey: UserSelectPropGetItemKey<ITEM> }) &\n (GROUP extends { label: UserSelectGroupDefault['label'] }\n ? {}\n : { getGroupLabel: UserSelectPropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: UserSelectGroupDefault['id'] }\n ? {}\n : { getGroupKey: UserSelectPropGetGroupKey<GROUP> });\n\nexport type UserSelectComponent = <\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactNode | null;\n\nexport const defaultGetItemKey: UserSelectPropGetItemKey<\n UserSelectItemDefault\n> = (item) => item.id;\nexport const defaultGetItemLabel: UserSelectPropGetItemLabel<\n UserSelectItemDefault\n> = (item) => item.label;\nexport const defaultGetItemSubLabel: UserSelectPropGetItemSubLabel<\n UserSelectItemDefault\n> = (item) => item.subLabel;\nexport const defaultGetItemAvatarUrl: UserSelectPropGetItemAvatarUrl<\n UserSelectItemDefault\n> = (item) => item.avatarUrl;\nexport const defaultGetItemGroupKey: UserSelectPropGetItemGroupKey<\n UserSelectItemDefault\n> = (item) => item.groupId;\nexport const defaultGetItemDisabled: UserSelectPropGetItemDisabled<\n UserSelectItemDefault\n> = (item) => item.disabled;\n\nexport const defaultGetGroupKey: UserSelectPropGetGroupKey<\n UserSelectGroupDefault\n> = (group) => group.id;\nexport const defaultGetGroupLabel: UserSelectPropGetGroupLabel<\n UserSelectGroupDefault\n> = (group) => group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(props: UserSelectProps<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 getItemSubLabel: props.getItemSubLabel || defaultGetItemSubLabel,\n getItemAvatarUrl: props.getItemAvatarUrl || defaultGetItemAvatarUrl,\n };\n}\n\nexport const searchCompare = (\n searchValue: string,\n compare?: string,\n): boolean => {\n if (!compare) {\n return false;\n }\n\n return (\n compare.toLocaleLowerCase().indexOf(searchValue.toLocaleLowerCase()) !== -1\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":"qqBAqJA,MAAO,IAAMA,kBAEZ,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,EAAf,CAFG,CAGP,MAAO,IAAMC,oBAEZ,CAAG,SAACF,CAAD,QAAUA,EAAI,CAACG,KAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACJ,CAAD,QAAUA,EAAI,CAACK,QAAf,CAFG,CAGP,MAAO,IAAMC,wBAEZ,CAAG,SAACN,CAAD,QAAUA,EAAI,CAACO,SAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACR,CAAD,QAAUA,EAAI,CAACS,OAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACV,CAAD,QAAUA,EAAI,CAACW,QAAf,CAFG,CAIP,MAAO,IAAMC,mBAEZ,CAAG,SAACC,CAAD,QAAWA,EAAK,CAACZ,EAAjB,CAFG,CAGP,MAAO,IAAMa,qBAEZ,CAAG,SAACD,CAAD,QAAWA,EAAK,CAACV,KAAjB,CAFG,CAIP,MAAO,IAAMY,iBAAgB,CAAG,SAC9BC,CAD8B,CAEmB,CACjD,MAAO,CAAC,CAACA,CAAM,CAACC,QACjB,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SACjCF,CADiC,CAEiB,CAClD,MAAO,CAACA,CAAM,CAACC,QAChB,CAJM,CAMP,MAAO,SAASE,mBAAT,CAILC,CAJK,CAI0C,CAC/C,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBnB,mBAFtC,CAGEoB,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBvB,iBAHlC,CAIEwB,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,CAQEe,eAAe,CAAEP,CAAK,CAACO,eAAN,EAAyBvB,sBAR5C,CASEwB,gBAAgB,CAAER,CAAK,CAACQ,gBAAN,EAA0BtB,uBAT9C,EAWD,CAED,MAAO,IAAMuB,cAAa,CAAG,SAC3BC,CAD2B,CAE3BC,CAF2B,CAGf,SACPA,CADO,EAM+D,CAAC,CAA1E,GAAAA,CAAO,CAACC,iBAAR,GAA4BC,OAA5B,CAAoCH,CAAW,CAACE,iBAAZ,EAApC,CAEH,CAXM,CAaP,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"}
1
+ {"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemSubLabel","subLabel","defaultGetItemAvatarUrl","avatarUrl","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey","getItemSubLabel","getItemAvatarUrl","searchCompare","searchValue","compare","toLocaleLowerCase","indexOf","clearSizeMap","xs","s","m","l","iconSizeMap"],"sources":["../../../../../src/components/UserSelect/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';\n\nexport type UserSelectItemDefault = {\n label: string;\n id: string | number;\n subLabel?: string;\n avatarUrl?: string;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type UserSelectGroupDefault = {\n label: string;\n id: string | number;\n};\n\ntype UserSelectRenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type UserSelectPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type UserSelectPropGetItemSubLabel<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type UserSelectPropGetItemAvatarUrl<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type UserSelectPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type UserSelectPropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type UserSelectPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\nexport type UserSelectPropGetGroupKey<GROUP> = (\n group: GROUP,\n) => string | number;\nexport type UserSelectPropGetGroupLabel<GROUP> = (group: GROUP) => string;\n\nexport type UserSelectPropSearchFunction<ITEM> = (\n item: ITEM,\n searchValue: string,\n) => boolean;\ntype UserSelectPropOnChange<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\ntype UserSelectPropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type UserSelectPropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactNode | null;\nexport type UserSelectPropRenderValue<ITEM> = (\n props: UserSelectRenderValueProps<ITEM>,\n) => React.ReactNode | null;\n\nexport type UserSelectProps<\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n disabled?: boolean;\n form?: PropForm;\n size?: Exclude<PropSize, 'xs'>;\n view?: PropView;\n dropdownForm?: 'default' | 'brick' | 'round';\n placeholder?: string;\n ariaLabel?: string;\n dropdownClassName?: string;\n status?: PropStatus;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n items: ITEM[];\n required?: boolean;\n isLoading?: boolean;\n renderItem?: UserSelectPropRenderItem<ITEM>;\n renderValue?: UserSelectPropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (label: string, props: { e: React.SyntheticEvent }) => void;\n inputRef?: React.RefObject<HTMLInputElement>;\n labelForNotFound?: string;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: UserSelectPropSearchFunction<ITEM>;\n searchValue?: string;\n multiple?: MULTIPLE;\n value?: UserSelectPropValue<ITEM, MULTIPLE>;\n onChange: UserSelectPropOnChange<ITEM, MULTIPLE>;\n groups?: GROUP[];\n getItemLabel?: UserSelectPropGetItemLabel<ITEM>;\n getItemSubLabel?: UserSelectPropGetItemSubLabel<ITEM>;\n getItemAvatarUrl?: UserSelectPropGetItemAvatarUrl<ITEM>;\n getItemKey?: UserSelectPropGetItemKey<ITEM>;\n getItemGroupKey?: UserSelectPropGetItemGroupKey<ITEM>;\n getItemDisabled?: UserSelectPropGetItemDisabled<ITEM>;\n getGroupLabel?: UserSelectPropGetGroupLabel<GROUP>;\n getGroupKey?: UserSelectPropGetGroupKey<GROUP>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n virtualScroll?: boolean;\n onScrollToBottom?: (length: number) => void;\n onSearchValueChange?: (value: string) => void;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n dropdownViewportRef?: React.RefObject<HTMLElement>;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: UserSelectItemDefault['label'] }\n ? {}\n : { getItemLabel: UserSelectPropGetItemLabel<ITEM> }) &\n (ITEM extends { id: UserSelectItemDefault['id'] }\n ? {}\n : { getItemKey: UserSelectPropGetItemKey<ITEM> }) &\n (GROUP extends { label: UserSelectGroupDefault['label'] }\n ? {}\n : { getGroupLabel: UserSelectPropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: UserSelectGroupDefault['id'] }\n ? {}\n : { getGroupKey: UserSelectPropGetGroupKey<GROUP> });\n\nexport type UserSelectComponent = <\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactNode | null;\n\nexport const defaultGetItemKey: UserSelectPropGetItemKey<\n UserSelectItemDefault\n> = (item) => item.id;\nexport const defaultGetItemLabel: UserSelectPropGetItemLabel<\n UserSelectItemDefault\n> = (item) => item.label;\nexport const defaultGetItemSubLabel: UserSelectPropGetItemSubLabel<\n UserSelectItemDefault\n> = (item) => item.subLabel;\nexport const defaultGetItemAvatarUrl: UserSelectPropGetItemAvatarUrl<\n UserSelectItemDefault\n> = (item) => item.avatarUrl;\nexport const defaultGetItemGroupKey: UserSelectPropGetItemGroupKey<\n UserSelectItemDefault\n> = (item) => item.groupId;\nexport const defaultGetItemDisabled: UserSelectPropGetItemDisabled<\n UserSelectItemDefault\n> = (item) => item.disabled;\n\nexport const defaultGetGroupKey: UserSelectPropGetGroupKey<\n UserSelectGroupDefault\n> = (group) => group.id;\nexport const defaultGetGroupLabel: UserSelectPropGetGroupLabel<\n UserSelectGroupDefault\n> = (group) => group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(props: UserSelectProps<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 getItemSubLabel: props.getItemSubLabel || defaultGetItemSubLabel,\n getItemAvatarUrl: props.getItemAvatarUrl || defaultGetItemAvatarUrl,\n };\n}\n\nexport const searchCompare = (\n searchValue: string,\n compare?: string,\n): boolean => {\n if (!compare) {\n return false;\n }\n\n return (\n compare.toLocaleLowerCase().indexOf(searchValue.toLocaleLowerCase()) !== -1\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":"qqBAsJA,MAAO,IAAMA,kBAEZ,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,EAAf,CAFG,CAGP,MAAO,IAAMC,oBAEZ,CAAG,SAACF,CAAD,QAAUA,EAAI,CAACG,KAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACJ,CAAD,QAAUA,EAAI,CAACK,QAAf,CAFG,CAGP,MAAO,IAAMC,wBAEZ,CAAG,SAACN,CAAD,QAAUA,EAAI,CAACO,SAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACR,CAAD,QAAUA,EAAI,CAACS,OAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACV,CAAD,QAAUA,EAAI,CAACW,QAAf,CAFG,CAIP,MAAO,IAAMC,mBAEZ,CAAG,SAACC,CAAD,QAAWA,EAAK,CAACZ,EAAjB,CAFG,CAGP,MAAO,IAAMa,qBAEZ,CAAG,SAACD,CAAD,QAAWA,EAAK,CAACV,KAAjB,CAFG,CAIP,MAAO,IAAMY,iBAAgB,CAAG,SAC9BC,CAD8B,CAEmB,CACjD,MAAO,CAAC,CAACA,CAAM,CAACC,QACjB,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SACjCF,CADiC,CAEiB,CAClD,MAAO,CAACA,CAAM,CAACC,QAChB,CAJM,CAMP,MAAO,SAASE,mBAAT,CAILC,CAJK,CAI0C,CAC/C,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBnB,mBAFtC,CAGEoB,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBvB,iBAHlC,CAIEwB,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,CAQEe,eAAe,CAAEP,CAAK,CAACO,eAAN,EAAyBvB,sBAR5C,CASEwB,gBAAgB,CAAER,CAAK,CAACQ,gBAAN,EAA0BtB,uBAT9C,EAWD,CAED,MAAO,IAAMuB,cAAa,CAAG,SAC3BC,CAD2B,CAE3BC,CAF2B,CAGf,SACPA,CADO,EAM+D,CAAC,CAA1E,GAAAA,CAAO,CAACC,iBAAR,GAA4BC,OAA5B,CAAoCH,CAAW,CAACE,iBAAZ,EAApC,CAEH,CAXM,CAaP,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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Функция для глубокого сравнения двух объектов
3
+ * @param obj1 Первый объект для сравнения
4
+ * @param obj2 Второй объект для сравнения
5
+ * @returns true, если объекты равны, иначе false
6
+ */
7
+ export declare function deepEqual(obj1: any, obj2: any): boolean;
@@ -0,0 +1,2 @@
1
+ export function deepEqual(a,b){if(a===b)return!0;if(null==a||null==b)return a===b;if(typeof a!=typeof b)return!1;if(a instanceof Date&&b instanceof Date)return a.getTime()===b.getTime();if(Array.isArray(a)&&Array.isArray(b)){if(a.length!==b.length)return!1;for(var h=0;h<a.length;h++)if(!deepEqual(a[h],b[h]))return!1;return!0}if("object"==typeof a&&"object"==typeof b){var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(var e,f=0,g=c;f<g.length;f++){if(e=g[f],!d.includes(e))return!1;if(!deepEqual(a[e],b[e]))return!1}return!0}return a===b}
2
+ //# sourceMappingURL=objectCompare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectCompare.js","names":["deepEqual","obj1","obj2","Date","getTime","Array","isArray","length","i","keys1","Object","keys","keys2","key","includes"],"sources":["../../../../src/utils/objectCompare.ts"],"sourcesContent":["/**\n * Функция для глубокого сравнения двух объектов\n * @param obj1 Первый объект для сравнения\n * @param obj2 Второй объект для сравнения\n * @returns true, если объекты равны, иначе false\n */\nexport function deepEqual(obj1: any, obj2: any): boolean {\n // Проверка на строгое равенство (включая примитивы и одну и ту же ссылку)\n if (obj1 === obj2) {\n return true;\n }\n\n // Проверка на null или undefined\n if (obj1 == null || obj2 == null) {\n return obj1 === obj2;\n }\n\n // Проверка на разные типы\n if (typeof obj1 !== typeof obj2) {\n return false;\n }\n\n // Проверка на даты\n if (obj1 instanceof Date && obj2 instanceof Date) {\n return obj1.getTime() === obj2.getTime();\n }\n\n // Проверка на массивы\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return false;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (!deepEqual(obj1[i], obj2[i])) {\n return false;\n }\n }\n return true;\n }\n\n // Проверка на объекты\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n // Проверка на одинаковое количество свойств\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n // Рекурсивное сравнение всех свойств\n for (const key of keys1) {\n if (!keys2.includes(key)) {\n return false;\n }\n if (!deepEqual(obj1[key], obj2[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Для примитивов, которые не прошли строгую проверку равенства\n return obj1 === obj2;\n}\n"],"mappings":"AAMA,MAAO,SAASA,UAAT,CAAmBC,CAAnB,CAA8BC,CAA9B,CAAkD,CAEvD,GAAID,CAAI,GAAKC,CAAb,CACE,SAIF,GAAY,IAAR,EAAAD,CAAI,EAAoB,IAAR,EAAAC,CAApB,CACE,MAAOD,EAAI,GAAKC,CAAhB,CAIF,GAAI,MAAOD,EAAP,EAAgB,MAAOC,EAA3B,CACE,SAIF,GAAID,CAAI,WAAYE,KAAhB,EAAwBD,CAAI,WAAYC,KAA5C,CACE,MAAOF,EAAI,CAACG,OAAL,KAAmBF,CAAI,CAACE,OAAL,EAA1B,CAIF,GAAIC,KAAK,CAACC,OAAN,CAAcL,CAAd,GAAuBI,KAAK,CAACC,OAAN,CAAcJ,CAAd,CAA3B,CAAgD,CAC9C,GAAID,CAAI,CAACM,MAAL,GAAgBL,CAAI,CAACK,MAAzB,CACE,SAEF,IAAK,GAAIC,EAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGP,CAAI,CAACM,MAAzB,CAAiCC,CAAC,EAAlC,CACE,GAAI,CAACR,SAAS,CAACC,CAAI,CAACO,CAAD,CAAL,CAAUN,CAAI,CAACM,CAAD,CAAd,CAAd,CACE,SAGJ,QACD,CAGD,GAAoB,QAAhB,QAAOP,EAAP,EAA4C,QAAhB,QAAOC,EAAvC,CAA0D,IAClDO,EAAK,CAAGC,MAAM,CAACC,IAAP,CAAYV,CAAZ,CAD0C,CAElDW,CAAK,CAAGF,MAAM,CAACC,IAAP,CAAYT,CAAZ,CAF0C,CAKxD,GAAIO,CAAK,CAACF,MAAN,GAAiBK,CAAK,CAACL,MAA3B,CACE,SAIF,OAAWM,EAAX,OAAkBJ,CAAlB,gBAAyB,CACvB,GADSI,CACT,MAAI,CAACD,CAAK,CAACE,QAAN,CAAeD,CAAf,CAAL,CACE,SAEF,GAAI,CAACb,SAAS,CAACC,CAAI,CAACY,CAAD,CAAL,CAAYX,CAAI,CAACW,CAAD,CAAhB,CAAd,CACE,QAEH,CACD,QACD,CAGD,MAAOZ,EAAI,GAAKC,CACjB"}