@consta/uikit 4.10.0 → 4.11.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 (70) hide show
  1. package/__internal__/src/components/Combobox/Combobox.js +1 -1
  2. package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
  3. package/__internal__/src/components/Combobox/helpers.d.ts +3 -1
  4. package/__internal__/src/components/Combobox/helpers.js.map +1 -1
  5. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.d.ts +1 -1
  6. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js +1 -1
  7. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js.map +1 -1
  8. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.d.ts +13 -4
  9. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js +1 -1
  10. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js.map +1 -1
  11. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +1 -1
  12. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js +1 -1
  13. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js.map +1 -1
  14. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.d.ts +16 -4
  15. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js +1 -1
  16. package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js.map +1 -1
  17. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.d.ts +1 -1
  18. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js +1 -1
  19. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js.map +1 -1
  20. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.d.ts +13 -4
  21. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js +1 -1
  22. package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js.map +1 -1
  23. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +1 -1
  24. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js +1 -1
  25. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js.map +1 -1
  26. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.d.ts +16 -4
  27. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js +1 -1
  28. package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js.map +1 -1
  29. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.d.ts +1 -1
  30. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js +1 -1
  31. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js.map +1 -1
  32. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.d.ts +13 -1
  33. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js +1 -1
  34. package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js.map +1 -1
  35. package/__internal__/src/components/ProgressStepBar/ProgressStepBar.css +1 -1
  36. package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js +1 -1
  37. package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js.map +1 -1
  38. package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.css +1 -1
  39. package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js +1 -1
  40. package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js.map +1 -1
  41. package/__internal__/src/components/ProgressStepBar/ProgressStepBarLine/ProgressStepBarLine.css +1 -1
  42. package/__internal__/src/components/ProgressStepBar/ProgressStepBarLine/ProgressStepBarLine.js +1 -1
  43. package/__internal__/src/components/ProgressStepBar/ProgressStepBarLine/ProgressStepBarLine.js.map +1 -1
  44. package/__internal__/src/components/ProgressStepBar/helpers.d.ts +2 -0
  45. package/__internal__/src/components/ProgressStepBar/helpers.js +1 -1
  46. package/__internal__/src/components/ProgressStepBar/helpers.js.map +1 -1
  47. package/__internal__/src/components/SelectComponents/SelectItem/SelectItem.js +1 -1
  48. package/__internal__/src/components/SelectComponents/SelectItem/SelectItem.js.map +1 -1
  49. package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.css +1 -1
  50. package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.d.ts +1 -0
  51. package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.js +1 -1
  52. package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.js.map +1 -1
  53. package/__internal__/src/components/TextField/TextField.css +1 -1
  54. package/__internal__/src/components/TextField/index.d.ts +1 -0
  55. package/__internal__/src/components/TextField/index.js +1 -1
  56. package/__internal__/src/components/TextField/index.js.map +1 -1
  57. package/__internal__/src/components/TextField/useIMask.d.ts +15 -0
  58. package/__internal__/src/components/TextField/useIMask.js +2 -0
  59. package/__internal__/src/components/TextField/useIMask.js.map +1 -0
  60. package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
  61. package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
  62. package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.css +1 -1
  63. package/__internal__/src/components/UserSelect/UserSelectValue/UserSelectValue.css +1 -1
  64. package/__internal__/src/components/UserSelect/UserSelectValue/UserSelectValue.js +1 -1
  65. package/__internal__/src/components/UserSelect/UserSelectValue/UserSelectValue.js.map +1 -1
  66. package/__internal__/src/components/UserSelect/helpers.d.ts +3 -1
  67. package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
  68. package/__internal__/src/hooks/useSelect/useSelect.js +1 -1
  69. package/__internal__/src/hooks/useSelect/useSelect.js.map +1 -1
  70. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","isLoading","multiple","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{SelectValueTag}from"../SelectComponents/SelectValueTag/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=void 0===r?c:r,t=g.form,u=void 0===t?defaultPropForm:t,v=g.view,w=void 0===v?defaultPropView:v,x=g.size,y=void 0===x?defaultPropSize:x,z=g.dropdownClassName,A=g.name,B=g.groups,C=void 0===B?[]:B,D=g.getItemLabel,E=g.getItemKey,F=g.getItemGroupKey,G=g.getItemDisabled,H=g.getGroupKey,I=g.getGroupLabel,J=g.renderItem,K=g.renderValue,L=g.onCreate,M=g.inputRef,N=g.labelForNotFound,O=void 0===N?defaultlabelForNotFound:N,P=g.labelForCreate,Q=void 0===P?defaultlabelForCreate:P,R=g.labelForEmptyItems,S=void 0===R?defaultLabelForEmptyItems:R,T=g.onInputChange,U=g.searchFunction,V=g.isLoading,W=g.multiple,X=void 0!==W&&W,Y=g.style,Z=g.dropdownForm,$=void 0===Z?"default":Z,_=_objectWithoutProperties(g,_excluded),aa=useSelect({items:k,groups:C,value:m,onChange:l,dropdownRef:s,controlRef:f,disabled:n,getItemLabel:D,getItemKey:E,getGroupKey:H,getItemGroupKey:F,getItemDisabled:G,multiple:X,onBlur:i,onFocus:j,onCreate:L,searchFunction:U}),ba=aa.getKeyProps,ca=aa.getOptionProps,da=aa.isOpen,ea=aa.visibleItems,fa=aa.isFocused,ga=aa.handleInputFocus,ha=aa.handleInputBlur,ia=aa.handleToggleDropdown,ja=aa.inputRef,ka=aa.handleInputClick,la=aa.handleInputChange,ma=aa.searchValue,na=aa.clearValue,oa=aa.getHandleRemoveValue,pa=aa.notFound,qa=aa.hasItems,ra=K||(X?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:D(b),key:E(b),size:y,handleRemove:n?void 0:c})}:function renderValueDefaultNotMultiple(a){var b=D(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),sa=useForkRef([ja,M]),ta=function(a){la(a);var b=a.target.value;n||(null===T||void 0===T?void 0:T({e:a,id:p,name:A,value:b||null}))},ua=function(){var b=X?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ra({item:a,handleRemove:oa(a)})}),isNotMultipleParams(a)&&a.value&&ra({item:a.value}),(!m||Array.isArray(m)&&0===m.length)&&!ma&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ba(),{type:"text",name:A,onFocus:ga,onBlur:ha,"aria-label":o,onChange:ta,ref:sa,className:cnSelect("Input",{size:y,hide:!X&&!!m,multiple:X}),value:ma,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:fa,disabled:n,size:y,view:w,required:q,form:u,multiple:X,ref:b,type:"combobox",style:Y},_),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":da,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:ka,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},X?React.createElement("div",{className:cnSelect("ControlValue")},ua()):ua())),React.createElement("span",{className:cnSelect("Indicators")},m&&React.createElement("button",{type:"button",onClick:na,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ia},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},ma)),React.createElement(SelectDropdown,{isOpen:da,size:y,controlRef:f,getOptionProps:ca,dropdownRef:s,form:$,className:z,renderItem:J||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(SelectItem,{label:D(b),active:c,hovered:d,multiple:X,size:y,indent:"round"===$?"increased":"normal",onClick:e,onMouseEnter:f,disabled:G(b)})},getGroupLabel:I,visibleItems:ea,labelForNotFound:O,labelForCreate:Q,isLoading:V,labelForEmptyItems:S,notFound:pa,hasItems:qa,style:"number"==typeof(null===Y||void 0===Y?void 0:Y.zIndex)?{zIndex:Y.zIndex+1}:void 0}))};export var Combobox=forwardRef(ComboboxRender);export*from"./helpers";
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValue","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","isLoading","multiple","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{SelectValueTag}from"../SelectComponents/SelectValueTag/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=void 0===r?c:r,t=g.form,u=void 0===t?defaultPropForm:t,v=g.view,w=void 0===v?defaultPropView:v,x=g.size,y=void 0===x?defaultPropSize:x,z=g.dropdownClassName,A=g.name,B=g.groups,C=void 0===B?[]:B,D=g.getItemLabel,E=g.getItemKey,F=g.getItemGroupKey,G=g.getItemDisabled,H=g.getGroupKey,I=g.getGroupLabel,J=g.renderItem,K=g.searchValue,L=g.renderValue,M=g.onCreate,N=g.inputRef,O=g.labelForNotFound,P=void 0===O?defaultlabelForNotFound:O,Q=g.labelForCreate,R=void 0===Q?defaultlabelForCreate:Q,S=g.labelForEmptyItems,T=void 0===S?defaultLabelForEmptyItems:S,U=g.onInputChange,V=g.searchFunction,W=g.isLoading,X=g.multiple,Y=void 0!==X&&X,Z=g.style,$=g.dropdownForm,_=void 0===$?"default":$,aa=_objectWithoutProperties(g,_excluded),ba=useSelect({items:k,groups:C,value:m,onChange:l,dropdownRef:s,controlRef:f,disabled:n,getItemLabel:D,getItemKey:E,getGroupKey:H,searchValue:K,getItemGroupKey:F,getItemDisabled:G,multiple:Y,onBlur:i,onFocus:j,onCreate:M,searchFunction:V}),ca=ba.getKeyProps,da=ba.getOptionProps,ea=ba.isOpen,fa=ba.visibleItems,ga=ba.isFocused,ha=ba.handleInputFocus,ia=ba.handleInputBlur,ja=ba.handleToggleDropdown,ka=ba.inputRef,la=ba.handleInputClick,ma=ba.handleInputChange,na=ba.searchValue,oa=ba.clearValue,pa=ba.getHandleRemoveValue,qa=ba.notFound,ra=ba.hasItems,sa=L||(Y?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:D(b),key:E(b),size:y,disabled:n||G(b),handleRemove:c})}:function renderValueDefaultNotMultiple(a){var b=D(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),ta=useForkRef([ka,N]),ua=function(a){ma(a);var b=a.target.value;n||(null===U||void 0===U?void 0:U({e:a,id:p,name:A,value:b||null}))},va=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 sa({item:a,handleRemove:pa(a)})}),isNotMultipleParams(a)&&a.value&&sa({item:a.value}),(!m||Array.isArray(m)&&0===m.length)&&!na&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ca(),{type:"text",name:A,onFocus:ha,onBlur:ia,"aria-label":o,onChange:ua,ref:ta,className:cnSelect("Input",{size:y,hide:!Y&&!!m,multiple:Y}),value:na,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:ga,disabled:n,size:y,view:w,required:q,form:u,multiple:Y,ref:b,type:"combobox",style:Z},aa),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":ea,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:la,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue")},va()):va())),React.createElement("span",{className:cnSelect("Indicators")},m&&React.createElement("button",{type:"button",onClick:oa,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ja},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},na)),React.createElement(SelectDropdown,{isOpen:ea,size:y,controlRef:f,getOptionProps:da,dropdownRef:s,form:_,className:z,renderItem:J||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(SelectItem,{label:D(b),active:c,hovered:d,multiple:Y,size:y,indent:"round"===_?"increased":"normal",onClick:e,onMouseEnter:f,disabled:G(b)})},getGroupLabel:I,visibleItems:fa,labelForNotFound:P,labelForCreate:R,isLoading:W,labelForEmptyItems:T,notFound:qa,hasItems:ra,style:"number"==typeof(null===Z||void 0===Z?void 0:Z.zIndex)?{zIndex:Z.zIndex+1}:void 0}))};export var Combobox=forwardRef(ComboboxRender);export*from"./helpers";
2
2
  //# sourceMappingURL=Combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","names":["IconClose","IconSelect","React","forwardRef","useRef","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","isLoading","multiple","style","dropdownForm","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","searchValue","clearValue","getHandleRemoveValue","notFound","hasItems","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","handleChangeValue","e","target","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/Combobox/Combobox.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '../SelectComponents/SelectItem/SelectItem';\nimport { SelectValueTag } from '../SelectComponents/SelectValueTag/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n onInputChange,\n searchFunction,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n });\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={disabled ? undefined : handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const handleChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleInputChange(e);\n const { value } = e.target;\n !disabled && onInputChange?.({ e, id, name, value: value || null });\n };\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!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 onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleChangeValue}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div className={cnSelect('ControlValue')}>\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n\nexport * from './helpers';\n"],"mappings":"siBAAA,uCAEA,OAASA,SAAT,KAA0B,yBAA1B,CACA,OAASC,UAAT,KAA2B,0BAA3B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,MAA5B,KAA0C,OAA1C,CAEA,OAASC,UAAT,yCACA,OAASC,SAAT,uCACA,OAASC,UAAT,oCACA,OAASC,eAAT,2CACA,OAASC,QAAT,oCACA,OACEC,qBADF,CAEEC,yBAFF,CAGEC,uBAHF,CAIEC,aAJF,mCAMA,OAASC,eAAT,2DACA,OAASC,cAAT,yDACA,OAASC,UAAT,iDACA,OAASC,cAAT,yDACA,OACEC,eADF,CAEEC,eAFF,CAGEC,eAHF,iCAKA,OAKEC,gBALF,CAMEC,mBANF,CASEC,kBATF,iBAYA,MAAO,IAAMC,eAAc,CAAG,UAAvB,CAEP,GAAMC,eAAc,CAAG,SAKrBC,CALqB,CAMrBC,CANqB,CAOlB,IACGC,EAAkB,CAAGxB,MAAM,CAAwB,IAAxB,CAD9B,CAEGyB,CAAe,CAAGzB,MAAM,CAAiB,IAAjB,CAF3B,CAGG0B,CAAsB,CAAG1B,MAAM,CAAiB,IAAjB,CAHlC,CAIG2B,CAAU,CAAG3B,MAAM,CAAwB,IAAxB,CAJtB,GA4CCI,eAAe,CAACgB,cAAD,CAAiBD,kBAAkB,CAACG,CAAD,CAAnC,CAA4CK,CAA5C,CA5ChB,CAODC,CAPC,GAODA,WAPC,CAQDC,CARC,GAQDA,MARC,CASDC,CATC,GASDA,OATC,CAUDC,CAVC,GAUDA,KAVC,CAWDC,CAXC,GAWDA,QAXC,CAYDC,CAZC,GAYDA,KAZC,CAaDC,CAbC,GAaDA,QAbC,CAcDC,CAdC,GAcDA,SAdC,CAeDC,CAfC,GAeDA,EAfC,CAgBDC,CAhBC,GAgBDA,QAhBC,KAiBDC,WAjBC,CAiBDA,CAjBC,YAiBad,CAjBb,OAkBDe,IAlBC,CAkBDA,CAlBC,YAkBMzB,eAlBN,OAmBD0B,IAnBC,CAmBDA,CAnBC,YAmBMxB,eAnBN,OAoBDyB,IApBC,CAoBDA,CApBC,YAoBM1B,eApBN,GAqBD2B,CArBC,GAqBDA,iBArBC,CAsBDC,CAtBC,GAsBDA,IAtBC,KAuBDC,MAvBC,CAuBDA,CAvBC,YAuBQ,EAvBR,GAwBDC,CAxBC,GAwBDA,YAxBC,CAyBDC,CAzBC,GAyBDA,UAzBC,CA0BDC,CA1BC,GA0BDA,eA1BC,CA2BDC,CA3BC,GA2BDA,eA3BC,CA4BDC,CA5BC,GA4BDA,WA5BC,CA6BDC,CA7BC,GA6BDA,aA7BC,CA8BDC,CA9BC,GA8BDA,UA9BC,CA+BYC,CA/BZ,GA+BDC,WA/BC,CAgCDC,CAhCC,GAgCDA,QAhCC,CAiCSC,CAjCT,GAiCDC,QAjCC,KAkCDC,gBAlCC,CAkCDA,CAlCC,YAkCkBjD,uBAlClB,OAmCDkD,cAnCC,CAmCDA,CAnCC,YAmCgBpD,qBAnChB,OAoCDqD,kBApCC,CAoCDA,CApCC,YAoCoBpD,yBApCpB,GAqCDqD,CArCC,GAqCDA,aArCC,CAsCDC,CAtCC,GAsCDA,cAtCC,CAuCDC,CAvCC,GAuCDA,SAvCC,KAwCDC,QAxCC,CAwCDA,CAxCC,eAyCDC,CAzCC,GAyCDA,KAzCC,KA0CDC,YA1CC,CA0CDA,CA1CC,YA0Cc,SA1Cd,GA2CEC,CA3CF,0CA+DChE,SAAS,CAAC,CACZ6B,KAAK,CAALA,CADY,CAEZa,MAAM,CAANA,CAFY,CAGZX,KAAK,CAALA,CAHY,CAIZD,QAAQ,CAARA,CAJY,CAKZM,WAAW,CAAXA,CALY,CAMZX,UAAU,CAAVA,CANY,CAOZO,QAAQ,CAARA,CAPY,CAQZW,YAAY,CAAZA,CARY,CASZC,UAAU,CAAVA,CATY,CAUZG,WAAW,CAAXA,CAVY,CAWZF,eAAe,CAAfA,CAXY,CAYZC,eAAe,CAAfA,CAZY,CAaZe,QAAQ,CAARA,CAbY,CAcZlC,MAAM,CAANA,CAdY,CAeZC,OAAO,CAAPA,CAfY,CAgBZwB,QAAQ,CAARA,CAhBY,CAiBZO,cAAc,CAAdA,CAjBY,CAAD,CA/DV,CA+CDM,EA/CC,IA+CDA,WA/CC,CAgDDC,EAhDC,IAgDDA,cAhDC,CAiDDC,EAjDC,IAiDDA,MAjDC,CAkDDC,EAlDC,IAkDDA,YAlDC,CAmDDC,EAnDC,IAmDDA,SAnDC,CAoDDC,EApDC,IAoDDA,gBApDC,CAqDDC,EArDC,IAqDDA,eArDC,CAsDDC,EAtDC,IAsDDA,oBAtDC,CAuDDlB,EAvDC,IAuDDA,QAvDC,CAwDDmB,EAxDC,IAwDDA,gBAxDC,CAyDDC,EAzDC,IAyDDA,iBAzDC,CA0DDC,EA1DC,IA0DDA,WA1DC,CA2DDC,EA3DC,IA2DDA,UA3DC,CA4DDC,EA5DC,IA4DDA,oBA5DC,CA6DDC,EA7DC,IA6DDA,QA7DC,CA8DDC,EA9DC,IA8DDA,QA9DC,CA6HG5B,EAAW,CACfD,CAAe,GACdW,CAAQ,CA1B+C,QAApDmB,2BAAoD,GAGpD,IAFJC,EAEI,GAFJA,IAEI,CADJC,CACI,GADJA,YACI,CACJ,MACE,qBAAC,cAAD,EACE,KAAK,CAAEvC,CAAY,CAACsC,CAAD,CADrB,CAEE,GAAG,CAAErC,CAAU,CAACqC,CAAD,CAFjB,CAGE,IAAI,CAAE1C,CAHR,CAIE,YAAY,CAAEP,CAAQ,QAAekD,CAJvC,EAOH,CAcU,CAZkD,QAAvDC,8BAAuD,CAAC/D,CAAD,CAAW,CACtE,GAAMgE,EAAU,CAAGzC,CAAY,CAACvB,CAAK,CAAC6D,IAAP,CAA/B,CAEA,MACE,6BAAM,SAAS,CAAE9E,QAAQ,CAAC,cAAD,CAAzB,CAA2C,KAAK,CAAEiF,CAAlD,EACGA,CADH,CAIH,CAGgB,CA9Hd,CAiIGC,EAAiB,CAAGtF,UAAU,CAAC,CAACuD,EAAD,CAAWD,CAAX,CAAD,CAjIjC,CAmIGiC,EAAiB,CAAG,SAACC,CAAD,CAA4C,CACpEb,EAAiB,CAACa,CAAD,CADmD,CAEpE,GAAQxD,EAAR,CAAkBwD,CAAC,CAACC,MAApB,CAAQzD,KAAR,CACCC,CAAD,UAAa0B,CAAb,WAAaA,CAAb,QAAaA,CAAa,CAAG,CAAE6B,CAAC,CAADA,CAAF,CAAKrD,EAAE,CAAFA,CAAL,CAASO,IAAI,CAAJA,CAAT,CAAeV,KAAK,CAAEA,CAAK,EAAI,IAA/B,CAAH,CAA1B,CACD,CAvIE,CAyIG0D,EAAkB,CAAG,UAAM,CAC/B,GAAMC,EAAK,CAAG7B,CAAQ,CAClBtD,aAAa,CAACgB,CAAD,CAAkBC,CAAlB,CADK,OAAtB,CAGA,MACE,yCACGT,gBAAgB,CAACK,CAAD,CAAhB,EACCuE,KAAK,CAACC,OAAN,CAAcxE,CAAK,CAACW,KAApB,CADD,EAECX,CAAK,CAACW,KAAN,CAAY8D,GAAZ,CAAgB,SAACZ,CAAD,QACd9B,GAAW,CAAC,CAAE8B,IAAI,CAAJA,CAAF,CAAQC,YAAY,CAAEL,EAAoB,CAACI,CAAD,CAA1C,CAAD,CADG,CAAhB,CAHJ,CAMGjE,mBAAmB,CAACI,CAAD,CAAnB,EACCA,CAAK,CAACW,KADP,EAECoB,EAAW,CAAC,CAAE8B,IAAI,CAAE7D,CAAK,CAACW,KAAd,CAAD,CARf,CASG,CAAC,CAACA,CAAD,EAAW4D,KAAK,CAACC,OAAN,CAAc7D,CAAd,GAAyC,CAAjB,GAAAA,CAAK,CAAC+D,MAA1C,GACC,CAACnB,EADF,EAECjD,CAFD,EAGG,4BAAM,SAAS,CAAEvB,QAAQ,CAAC,aAAD,CAAzB,CAA0C,KAAK,CAAC,aAAhD,EACGuB,CADH,CAZN,CAgBE,6CACMuC,EAAW,EADjB,EAEE,IAAI,CAAC,MAFP,CAGE,IAAI,CAAExB,CAHR,CAIE,OAAO,CAAE6B,EAJX,CAKE,MAAM,CAAEC,EALV,CAME,aAAYtC,CANd,CAOE,QAAQ,CAAEqD,EAPZ,CAQE,GAAG,CAAED,EARP,CASE,SAAS,CAAElF,QAAQ,CAAC,OAAD,CAAU,CAC3BoC,IAAI,CAAJA,CAD2B,CAE3BwD,IAAI,CAAE,CAAClC,CAAD,EAAa,CAAC,CAAC9B,CAFM,CAG3B8B,QAAQ,CAARA,CAH2B,CAAV,CATrB,CAcE,KAAK,CAAEc,EAdT,CAeE,KAAK,CAAE,CAAEe,KAAK,CAALA,CAAF,CAfT,GAhBF,CAmCH,CAjLE,CAmLH,MACE,yCACE,oBAAC,eAAD,gBACE,OAAO,CAAErB,EADX,CAEE,QAAQ,CAAErC,CAFZ,CAGE,IAAI,CAAEO,CAHR,CAIE,IAAI,CAAED,CAJR,CAKE,QAAQ,CAAEH,CALZ,CAME,IAAI,CAAEE,CANR,CAOE,QAAQ,CAAEwB,CAPZ,CAQE,GAAG,CAAExC,CARP,CASE,IAAI,CAAC,UATP,CAUE,KAAK,CAAEyC,CAVT,EAWME,CAXN,EAaE,2BACE,SAAS,CAAE7D,QAAQ,CAAC,SAAD,CAAY,CAAE6F,QAAQ,GAAV,CAAZ,CADrB,CAEE,GAAG,CAAEvE,CAFP,CAGE,gBAAe0C,EAHjB,CAIE,gBAAc,SAJhB,CAKE,EAAE,CAAEjC,CALN,EAOE,2BACE,SAAS,CAAE/B,QAAQ,CAAC,cAAD,CADrB,CAEE,OAAO,CAAEsE,EAFX,CAGE,IAAI,CAAC,QAHP,CAIE,GAAG,CAAElD,CAJP,CAKE,cAAY,MALd,EAOE,2BAAK,SAAS,CAAEpB,QAAQ,CAAC,uBAAD,CAAxB,EACG0D,CAAQ,CACP,2BAAK,SAAS,CAAE1D,QAAQ,CAAC,cAAD,CAAxB,EACGsF,EAAkB,EADrB,CADO,CAKPA,EAAkB,EANtB,CAPF,CAPF,CAwBE,4BAAM,SAAS,CAAEtF,QAAQ,CAAC,YAAD,CAAzB,EACG4B,CAAK,EACJ,8BACE,IAAI,CAAC,QADP,CAEE,OAAO,CAAE6C,EAFX,CAGE,SAAS,CAAEzE,QAAQ,CAAC,gBAAD,CAAmB,CAACF,UAAU,EAAX,CAAnB,CAHrB,EAKE,oBAAC,SAAD,EACE,IAAI,CAAC,IADP,CAEE,SAAS,CAAEE,QAAQ,CAAC,oBAAD,CAFrB,EALF,CAFJ,CAaE,4BAAM,SAAS,CAAEA,QAAQ,CAAC,WAAD,CAAzB,EAbF,CAcE,8BACE,IAAI,CAAC,QADP,CAEE,SAAS,CAAEA,QAAQ,CAAC,oBAAD,CAFrB,CAGE,QAAQ,CAAE,CAAC,CAHb,CAIE,OAAO,CAAEqE,EAJX,EAME,oBAAC,UAAD,EACE,IAAI,CAAC,IADP,CAEE,SAAS,CAAErE,QAAQ,CAAC,uBAAD,CAFrB,EANF,CAdF,CAxBF,CAbF,CAgEE,2BACE,SAAS,CAAEA,QAAQ,CAAC,wBAAD,CADrB,CAEE,GAAG,CAAEqB,CAFP,EAIGmD,EAJH,CAhEF,CADF,CAwEE,oBAAC,cAAD,EACE,MAAM,CAAER,EADV,CAEE,IAAI,CAAE5B,CAFR,CAGE,UAAU,CAAEd,CAHd,CAIE,cAAc,CAAEyC,EAJlB,CAKE,WAAW,CAAE9B,CALf,CAME,IAAI,CAAE2B,CANR,CAOE,SAAS,CAAEvB,CAPb,CAQE,UAAU,CAAES,CAAU,EAjLoB,QAA1CgD,kBAA0C,CAAC7E,CAAD,CAAW,CACzD,GAAQ6D,EAAR,CAAyD7D,CAAzD,CAAQ6D,IAAR,CAAciB,CAAd,CAAyD9E,CAAzD,CAAc8E,MAAd,CAAsBC,CAAtB,CAAyD/E,CAAzD,CAAsB+E,OAAtB,CAA+BC,CAA/B,CAAyDhF,CAAzD,CAA+BgF,OAA/B,CAAwCC,CAAxC,CAAyDjF,CAAzD,CAAwCiF,YAAxC,CAEA,MACE,qBAAC,UAAD,EACE,KAAK,CAAE1D,CAAY,CAACsC,CAAD,CADrB,CAEE,MAAM,CAAEiB,CAFV,CAGE,OAAO,CAAEC,CAHX,CAIE,QAAQ,CAAEtC,CAJZ,CAKE,IAAI,CAAEtB,CALR,CAME,MAAM,CAAmB,OAAjB,GAAAwB,CAAY,CAAe,WAAf,CAA6B,QANnD,CAOE,OAAO,CAAEqC,CAPX,CAQE,YAAY,CAAEC,CARhB,CASE,QAAQ,CAAEvD,CAAe,CAACmC,CAAD,CAT3B,EAYH,CAyJG,CASE,aAAa,CAAEjC,CATjB,CAUE,YAAY,CAAEoB,EAVhB,CAWE,gBAAgB,CAAEb,CAXpB,CAYE,cAAc,CAAEC,CAZlB,CAaE,SAAS,CAAEI,CAbb,CAcE,kBAAkB,CAAEH,CAdtB,CAeE,QAAQ,CAAEqB,EAfZ,CAgBE,QAAQ,CAAEC,EAhBZ,CAiBE,KAAK,CACsB,QAAzB,gBAAOjB,CAAP,WAAOA,CAAP,QAAOA,CAAK,CAAEwC,MAAd,EACI,CAAEA,MAAM,CAAExC,CAAK,CAACwC,MAAN,CAAe,CAAzB,CADJ,OAlBJ,EAxEF,CAiGH,CA5RD,CA8RA,MAAO,IAAMC,SAAQ,CAAG1G,UAAU,CAACsB,cAAD,CAA3B,CAEP"}
1
+ {"version":3,"file":"Combobox.js","names":["IconClose","IconSelect","React","forwardRef","useRef","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValueProp","searchValue","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","isLoading","multiple","style","dropdownForm","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","handleChangeValue","e","target","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/Combobox/Combobox.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '../SelectComponents/SelectItem/SelectItem';\nimport { SelectValueTag } from '../SelectComponents/SelectValueTag/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n searchValue: searchValueProp,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n onInputChange,\n searchFunction,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n searchValue: searchValueProp,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n });\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n disabled={disabled || getItemDisabled(item)}\n handleRemove={handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const handleChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleInputChange(e);\n const { value } = e.target;\n !disabled && onInputChange?.({ e, id, name, value: value || null });\n };\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!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 onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleChangeValue}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div className={cnSelect('ControlValue')}>\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
@@ -59,6 +59,7 @@ export declare type ComboboxProps<ITEM = DefaultItem, GROUP = DefaultGroup, MULT
59
59
  labelForCreate?: string;
60
60
  labelForEmptyItems?: string;
61
61
  searchFunction?: PropSearchFunction<ITEM>;
62
+ searchValue?: string;
62
63
  multiple?: MULTIPLE;
63
64
  value?: PropValue<ITEM, MULTIPLE>;
64
65
  groups?: GROUP[];
@@ -127,6 +128,7 @@ export declare function withDefaultGetters<ITEM = DefaultItem, GROUP = DefaultGr
127
128
  labelForCreate?: string | undefined;
128
129
  labelForEmptyItems?: string | undefined;
129
130
  searchFunction?: PropSearchFunction<ITEM> | undefined;
131
+ searchValue?: string | undefined;
130
132
  multiple?: MULTIPLE | undefined;
131
133
  value?: PropValue<ITEM, MULTIPLE>;
132
134
  groups?: GROUP[] | undefined;
@@ -140,7 +142,7 @@ export declare function withDefaultGetters<ITEM = DefaultItem, GROUP = DefaultGr
140
142
  label?: string | undefined;
141
143
  caption?: string | undefined;
142
144
  labelPosition?: "left" | "top" | undefined;
143
- } & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "size" | "caption" | "form" | "label" | "view" | "status" | "name" | "disabled" | "value" | "multiple" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelPosition" | "searchFunction" | "labelForCreate" | "labelForNotFound" | "onCreate" | "onInputChange"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
145
+ } & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "size" | "caption" | "form" | "label" | "view" | "status" | "name" | "disabled" | "value" | "multiple" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelPosition" | "searchFunction" | "searchValue" | "labelForCreate" | "labelForNotFound" | "onCreate" | "onInputChange"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
144
146
  label: string;
145
147
  } ? {} : {
146
148
  getItemLabel: PropGetItemLabel<ITEM>;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey"],"sources":["../../../../../src/components/Combobox/helpers.ts"],"sourcesContent":["import React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n PropForm,\n PropSize,\n PropStatus,\n PropView,\n RenderItemProps,\n} from '../SelectComponents/types';\nimport { TextFieldPropOnChange } from '../TextField/TextField';\n\nexport type DefaultItem = {\n label: string;\n id: string | number;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type DefaultGroup = {\n label: string;\n id: string | number;\n};\n\ntype RenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type PropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type PropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type PropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type PropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type PropGetGroupKey<GROUP> = (group: GROUP) => string | number;\nexport type PropGetGroupLabel<GROUP> = (group: GROUP) => string;\ntype PropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;\ntype PropOnChange<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\ntype PropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type PropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactElement | null;\nexport type PropRenderValue<ITEM> = (\n props: RenderValueProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type ComboboxProps<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n onChange: PropOnChange<ITEM, MULTIPLE>;\n disabled?: boolean;\n form?: PropForm;\n dropdownForm?: 'default' | 'brick' | 'round';\n size?: Exclude<PropSize, 'xs'>;\n view?: PropView;\n placeholder?: string;\n ariaLabel?: string;\n status?: PropStatus;\n isLoading?: boolean;\n dropdownClassName?: string;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n renderItem?: PropRenderItem<ITEM>;\n renderValue?: PropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (props: { e: React.SyntheticEvent; label: string }) => void;\n inputRef?: React.RefObject<HTMLInputElement>;\n labelForNotFound?: string;\n required?: boolean;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: PropSearchFunction<ITEM>;\n multiple?: MULTIPLE;\n value?: PropValue<ITEM, MULTIPLE>;\n groups?: GROUP[];\n onInputChange?: TextFieldPropOnChange;\n getItemLabel?: PropGetItemLabel<ITEM>;\n getItemKey?: PropGetItemKey<ITEM>;\n getItemGroupKey?: PropGetItemGroupKey<ITEM>;\n getItemDisabled?: PropGetItemDisabled<ITEM>;\n getGroupLabel?: PropGetGroupLabel<GROUP>;\n getGroupKey?: PropGetGroupKey<GROUP>;\n label?: string;\n caption?: string;\n labelPosition?: 'top' | 'left';\n },\n HTMLDivElement\n> &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: PropGetItemLabel<ITEM> }) &\n (ITEM extends { id: DefaultItem['id'] }\n ? {}\n : { getItemKey: PropGetItemKey<ITEM> }) &\n (GROUP extends { label: DefaultGroup['label'] }\n ? {}\n : { getGroupLabel: PropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: DefaultGroup['id'] }\n ? {}\n : { getGroupKey: PropGetGroupKey<GROUP> });\n\nexport type ComboboxComponent = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactElement | null;\n\nexport const defaultGetItemKey: PropGetItemKey<DefaultItem> = (item) => item.id;\nexport const defaultGetItemLabel: PropGetItemLabel<DefaultItem> = (item) =>\n item.label;\nexport const defaultGetItemGroupKey: PropGetItemGroupKey<DefaultItem> = (\n item,\n) => item.groupId;\nexport const defaultGetItemDisabled: PropGetItemDisabled<DefaultItem> = (\n item,\n) => item.disabled;\n\nexport const defaultGetGroupKey: PropGetGroupKey<DefaultGroup> = (group) =>\n group.id;\nexport const defaultGetGroupLabel: PropGetGroupLabel<DefaultGroup> = (group) =>\n group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: ComboboxProps<ITEM, GROUP, boolean>,\n): params is ComboboxProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: ComboboxProps<ITEM, GROUP, boolean>,\n): params is ComboboxProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(props: ComboboxProps<ITEM, GROUP, MULTIPLE>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n };\n}\n"],"mappings":"qqBA0HA,MAAO,IAAMA,kBAA8C,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,EAAf,CAAvD,CACP,MAAO,IAAMC,oBAAkD,CAAG,SAACF,CAAD,QAChEA,EAAI,CAACG,KAD2D,CAA3D,CAEP,MAAO,IAAMC,uBAAwD,CAAG,SACtEJ,CADsE,QAEnEA,EAAI,CAACK,OAF8D,CAAjE,CAGP,MAAO,IAAMC,uBAAwD,CAAG,SACtEN,CADsE,QAEnEA,EAAI,CAACO,QAF8D,CAAjE,CAIP,MAAO,IAAMC,mBAAiD,CAAG,SAACC,CAAD,QAC/DA,EAAK,CAACR,EADyD,CAA1D,CAEP,MAAO,IAAMS,qBAAqD,CAAG,SAACD,CAAD,QACnEA,EAAK,CAACN,KAD6D,CAA9D,CAGP,MAAO,IAAMQ,iBAAgB,CAAG,SAC9BC,CAD8B,CAEiB,CAC/C,MAAO,CAAC,CAACA,CAAM,CAACC,QACjB,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SACjCF,CADiC,CAEe,CAChD,MAAO,CAACA,CAAM,CAACC,QAChB,CAJM,CAMP,MAAO,SAASE,mBAAT,CAILC,CAJK,CAIwC,CAC7C,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBf,mBAFtC,CAGEgB,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBnB,iBAHlC,CAIEoB,eAAe,CAAEH,CAAK,CAACG,eAAN,EAAyBf,sBAJ5C,CAKEgB,eAAe,CAAEJ,CAAK,CAACI,eAAN,EAAyBd,sBAL5C,CAMEe,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBX,oBANxC,CAOEY,WAAW,CAAEN,CAAK,CAACM,WAAN,EAAqBd,kBAPpC,EASD"}
1
+ {"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey"],"sources":["../../../../../src/components/Combobox/helpers.ts"],"sourcesContent":["import React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n PropForm,\n PropSize,\n PropStatus,\n PropView,\n RenderItemProps,\n} from '../SelectComponents/types';\nimport { TextFieldPropOnChange } from '../TextField/TextField';\n\nexport type DefaultItem = {\n label: string;\n id: string | number;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type DefaultGroup = {\n label: string;\n id: string | number;\n};\n\ntype RenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type PropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type PropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type PropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type PropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type PropGetGroupKey<GROUP> = (group: GROUP) => string | number;\nexport type PropGetGroupLabel<GROUP> = (group: GROUP) => string;\ntype PropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;\ntype PropOnChange<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\ntype PropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type PropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactElement | null;\nexport type PropRenderValue<ITEM> = (\n props: RenderValueProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type ComboboxProps<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n onChange: PropOnChange<ITEM, MULTIPLE>;\n disabled?: boolean;\n form?: PropForm;\n dropdownForm?: 'default' | 'brick' | 'round';\n size?: Exclude<PropSize, 'xs'>;\n view?: PropView;\n placeholder?: string;\n ariaLabel?: string;\n status?: PropStatus;\n isLoading?: boolean;\n dropdownClassName?: string;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n renderItem?: PropRenderItem<ITEM>;\n renderValue?: PropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (props: { e: React.SyntheticEvent; label: string }) => void;\n inputRef?: React.RefObject<HTMLInputElement>;\n labelForNotFound?: string;\n required?: boolean;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: PropSearchFunction<ITEM>;\n searchValue?: string;\n multiple?: MULTIPLE;\n value?: PropValue<ITEM, MULTIPLE>;\n groups?: GROUP[];\n onInputChange?: TextFieldPropOnChange;\n getItemLabel?: PropGetItemLabel<ITEM>;\n getItemKey?: PropGetItemKey<ITEM>;\n getItemGroupKey?: PropGetItemGroupKey<ITEM>;\n getItemDisabled?: PropGetItemDisabled<ITEM>;\n getGroupLabel?: PropGetGroupLabel<GROUP>;\n getGroupKey?: PropGetGroupKey<GROUP>;\n label?: string;\n caption?: string;\n labelPosition?: 'top' | 'left';\n },\n HTMLDivElement\n> &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: PropGetItemLabel<ITEM> }) &\n (ITEM extends { id: DefaultItem['id'] }\n ? {}\n : { getItemKey: PropGetItemKey<ITEM> }) &\n (GROUP extends { label: DefaultGroup['label'] }\n ? {}\n : { getGroupLabel: PropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: DefaultGroup['id'] }\n ? {}\n : { getGroupKey: PropGetGroupKey<GROUP> });\n\nexport type ComboboxComponent = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactElement | null;\n\nexport const defaultGetItemKey: PropGetItemKey<DefaultItem> = (item) => item.id;\nexport const defaultGetItemLabel: PropGetItemLabel<DefaultItem> = (item) =>\n item.label;\nexport const defaultGetItemGroupKey: PropGetItemGroupKey<DefaultItem> = (\n item,\n) => item.groupId;\nexport const defaultGetItemDisabled: PropGetItemDisabled<DefaultItem> = (\n item,\n) => item.disabled;\n\nexport const defaultGetGroupKey: PropGetGroupKey<DefaultGroup> = (group) =>\n group.id;\nexport const defaultGetGroupLabel: PropGetGroupLabel<DefaultGroup> = (group) =>\n group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: ComboboxProps<ITEM, GROUP, boolean>,\n): params is ComboboxProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: ComboboxProps<ITEM, GROUP, boolean>,\n): params is ComboboxProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(props: ComboboxProps<ITEM, GROUP, MULTIPLE>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n };\n}\n"],"mappings":"qqBA2HA,MAAO,IAAMA,kBAA8C,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,EAAf,CAAvD,CACP,MAAO,IAAMC,oBAAkD,CAAG,SAACF,CAAD,QAChEA,EAAI,CAACG,KAD2D,CAA3D,CAEP,MAAO,IAAMC,uBAAwD,CAAG,SACtEJ,CADsE,QAEnEA,EAAI,CAACK,OAF8D,CAAjE,CAGP,MAAO,IAAMC,uBAAwD,CAAG,SACtEN,CADsE,QAEnEA,EAAI,CAACO,QAF8D,CAAjE,CAIP,MAAO,IAAMC,mBAAiD,CAAG,SAACC,CAAD,QAC/DA,EAAK,CAACR,EADyD,CAA1D,CAEP,MAAO,IAAMS,qBAAqD,CAAG,SAACD,CAAD,QACnEA,EAAK,CAACN,KAD6D,CAA9D,CAGP,MAAO,IAAMQ,iBAAgB,CAAG,SAC9BC,CAD8B,CAEiB,CAC/C,MAAO,CAAC,CAACA,CAAM,CAACC,QACjB,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SACjCF,CADiC,CAEe,CAChD,MAAO,CAACA,CAAM,CAACC,QAChB,CAJM,CAMP,MAAO,SAASE,mBAAT,CAILC,CAJK,CAIwC,CAC7C,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBf,mBAFtC,CAGEgB,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBnB,iBAHlC,CAIEoB,eAAe,CAAEH,CAAK,CAACG,eAAN,EAAyBf,sBAJ5C,CAKEgB,eAAe,CAAEJ,CAAK,CAACI,eAAN,EAAyBd,sBAL5C,CAMEe,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBX,oBANxC,CAOEY,WAAW,CAAEN,CAAK,CAACM,WAAN,EAAqBd,kBAPpC,EASD"}
@@ -6,7 +6,7 @@ export declare const DatePickerFieldTypeDate: React.ForwardRefExoticComponent<{
6
6
  e: Event;
7
7
  value: Date | null;
8
8
  }) => void) | undefined;
9
- onError?: import("../types").DatePickerPropOnError | undefined;
9
+ onError?: import("..").DatePickerPropOnError | undefined;
10
10
  id?: string | undefined;
11
11
  name?: string | undefined;
12
12
  disabled?: boolean | undefined;
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef"];import{format,isValid,isWithinInterval,parse}from"date-fns";import React,{useCallback,useEffect,useRef,useState}from"react";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{TextField}from"../../TextField/TextField";import{datePickerPropFormatTypeDate,datePickerPropPlaceholderTypeDate,datePickerPropSeparatorDefault,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";import{useImask}from"./helpers";export var DatePickerFieldTypeDate=React.forwardRef(function(a,b){var c=a.format,d=void 0===c?datePickerPropFormatTypeDate:c,e=a.separator,f=void 0===e?datePickerPropSeparatorDefault:e,g=a.placeholder,h=void 0===g?datePickerPropPlaceholderTypeDate:g,i=a.onChange,j=a.onError,k=a.minDate,l=void 0===k?minDateDefault:k,m=a.maxDate,n=void 0===m?maxDateDefault:m,o=a.value,p=a.inputRef,q=_objectWithoutProperties(a,_excluded),r=useRef(null),s=useMutableRef(i),t=useState(o&&isValid(o)?format(o,d):null),u=_slicedToArray(t,2),v=u[0],w=u[1],x=useMutableRef(v),y=useMutableRef(o),z=useMutableRef(j),A=useCallback(function(a){var b=a.e,c=a.value;if(x.current!==c){w(c);var e=s.current,g=y.current;if(e){if(!c)return void(g&&e({e:b,value:null}));var h=getPartsDate(c,d,f,!1,["dd","MM","yyyy"]),i=_slicedToArray(h,3),j=i[0],k=i[1],m=i[2];if(j&&k&&m){var p=parse("".concat(j).concat(datePickerPropSeparatorDefault).concat(k).concat(datePickerPropSeparatorDefault).concat(m),datePickerPropFormatTypeDate,new Date);if(!isWithinInterval(p,{start:l,end:n})){var o;return null===(o=z.current)||void 0===o?void 0:o.call(z,{type:datePickerErrorTypes[0],stringValue:c,dd:j,MM:k,yyyy:m,date:p}),void(g&&e({e:b,value:null}))}e({e:b,value:p})}else g&&e({e:b,value:null})}}},[null===l||void 0===l?void 0:l.getTime(),null===n||void 0===n?void 0:n.getTime(),d,f]);return useImask(d,f,r,v,j,A),useEffect(function(){o&&isValid(o)?w(format(o,d)):(null===v||void 0===v?void 0:v.length)===d.length&&w("")},[null===o||void 0===o?void 0:o.getTime()]),React.createElement(TextField,Object.assign({},q,{onChange:A,type:"text",inputContainerRef:b,inputRef:useForkRef([r,p]),value:v,placeholder:h}))});
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef"];import React from"react";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{TextField}from"../../TextField/TextField";import{datePickerPropFormatTypeDate,datePickerPropPlaceholderTypeDate,datePickerPropSeparatorDefault}from"../helpers";import{usePicker}from"./helpers";export var DatePickerFieldTypeDate=React.forwardRef(function(a,b){var c=a.format,d=void 0===c?datePickerPropFormatTypeDate:c,e=a.separator,f=void 0===e?datePickerPropSeparatorDefault:e,g=a.placeholder,h=void 0===g?datePickerPropPlaceholderTypeDate:g,i=a.onChange,j=a.onError,k=a.minDate,l=void 0===k?minDateDefault:k,m=a.maxDate,n=void 0===m?maxDateDefault:m,o=a.value,p=a.inputRef,q=_objectWithoutProperties(a,_excluded),r=usePicker({format:d,separator:f,onChange:i,onError:j,value:o,minDate:l,maxDate:n}),s=r.stringValue,t=r.inputRef;return React.createElement(TextField,Object.assign({},q,{type:"text",inputContainerRef:b,inputRef:useForkRef([t,p]),value:s,placeholder:h}))});
2
2
  //# sourceMappingURL=DatePickerFieldTypeDate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerFieldTypeDate.js","names":["format","isValid","isWithinInterval","parse","React","useCallback","useEffect","useRef","useState","useForkRef","useMutableRef","maxDateDefault","minDateDefault","TextField","datePickerPropFormatTypeDate","datePickerPropPlaceholderTypeDate","datePickerPropSeparatorDefault","getPartsDate","datePickerErrorTypes","useImask","DatePickerFieldTypeDate","forwardRef","props","ref","formatProp","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRefProp","inputRef","otherProps","onChangeRef","stringValue","setStringValue","stringValueRef","valueRef","onErrorRef","handleChange","e","current","dd","MM","yyyy","date","Date","start","end","type","getTime","length"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.tsx"],"sourcesContent":["import { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport { useMutableRef } from '../../../hooks/useMutableRef/useMutableRef';\nimport { maxDateDefault, minDateDefault } from '../../../utils/date';\nimport { TextField, TextFieldPropOnChange } from '../../TextField/TextField';\nimport {\n datePickerPropFormatTypeDate,\n datePickerPropPlaceholderTypeDate,\n datePickerPropSeparatorDefault,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes } from '../types';\nimport { DatePickerFieldTypeDateProps, useImask } from './helpers';\n\nexport const DatePickerFieldTypeDate = React.forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeDateProps\n>((props, ref) => {\n const {\n format: formatProp = datePickerPropFormatTypeDate,\n separator = datePickerPropSeparatorDefault,\n placeholder = datePickerPropPlaceholderTypeDate,\n onChange,\n onError,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n value,\n inputRef: inputRefProp,\n ...otherProps\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const onChangeRef = useMutableRef(onChange);\n\n const [stringValue, setStringValue] = useState<string | null>(\n value && isValid(value) ? format(value, formatProp) : null,\n );\n\n const stringValueRef = useMutableRef(stringValue);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const handleChange = useCallback(\n ({ e, value: stringValue }: { e: Event; value: string | null }) => {\n if (stringValueRef.current === stringValue) {\n return;\n }\n\n setStringValue(stringValue);\n\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange({ e, value: null });\n }\n return;\n }\n\n const [dd, MM, yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['dd', 'MM', 'yyyy'],\n );\n\n if (dd && MM && yyyy) {\n const date = parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${yyyy}`,\n datePickerPropFormatTypeDate,\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n });\n if (value) {\n onChange({ e, value: null });\n }\n\n return;\n }\n onChange({ e, value: date });\n } else if (value) {\n onChange({ e, value: null });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n useImask(formatProp, separator, inputRef, stringValue, onError, handleChange);\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n } else if (stringValue?.length === formatProp.length) {\n // если количество введенных символов меньше чем в формате маски\n // то не нужно мешать вводу с клавиатуры\n // если дата была введена полностью и value пришел null,\n // то можно считать что поле нуждается в очистке\n setStringValue('');\n }\n }, [value?.getTime()]);\n\n return (\n <TextField\n {...otherProps}\n onChange={handleChange as unknown as TextFieldPropOnChange}\n type=\"text\"\n inputContainerRef={ref}\n inputRef={useForkRef([inputRef, inputRefProp])}\n value={stringValue}\n placeholder={placeholder}\n />\n );\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerFieldTypeDate.js","names":["React","useForkRef","maxDateDefault","minDateDefault","TextField","datePickerPropFormatTypeDate","datePickerPropPlaceholderTypeDate","datePickerPropSeparatorDefault","usePicker","DatePickerFieldTypeDate","forwardRef","props","ref","format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRefProp","inputRef","otherProps","stringValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport { maxDateDefault, minDateDefault } from '../../../utils/date';\nimport { TextField } from '../../TextField/TextField';\nimport {\n datePickerPropFormatTypeDate,\n datePickerPropPlaceholderTypeDate,\n datePickerPropSeparatorDefault,\n} from '../helpers';\nimport { DatePickerFieldTypeDateProps, usePicker } from './helpers';\n\nexport const DatePickerFieldTypeDate = React.forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeDateProps\n>((props, ref) => {\n const {\n format = datePickerPropFormatTypeDate,\n separator = datePickerPropSeparatorDefault,\n placeholder = datePickerPropPlaceholderTypeDate,\n onChange,\n onError,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n value,\n inputRef: inputRefProp,\n ...otherProps\n } = props;\n\n const { stringValue, inputRef } = usePicker({\n format,\n separator,\n onChange,\n onError,\n value,\n minDate,\n maxDate,\n });\n\n return (\n <TextField\n {...otherProps}\n type=\"text\"\n inputContainerRef={ref}\n inputRef={useForkRef([inputRef, inputRefProp])}\n value={stringValue}\n placeholder={placeholder}\n />\n );\n});\n"],"mappings":"oMAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,UAAT,4CACA,OAASC,cAAT,CAAyBC,cAAzB,2BACA,OAASC,SAAT,iCACA,OACEC,4BADF,CAEEC,iCAFF,CAGEC,8BAHF,kBAKA,OAAuCC,SAAvC,iBAEA,MAAO,IAAMC,wBAAuB,CAAGT,KAAK,CAACU,UAAN,CAGrC,SAACC,CAAD,CAAQC,CAAR,CAAgB,OAYZD,CAZY,CAEdE,MAFc,CAEdA,CAFc,YAELR,4BAFK,KAYZM,CAZY,CAGdG,SAHc,CAGdA,CAHc,YAGFP,8BAHE,KAYZI,CAZY,CAIdI,WAJc,CAIdA,CAJc,YAIAT,iCAJA,GAKdU,CALc,CAYZL,CAZY,CAKdK,QALc,CAMdC,CANc,CAYZN,CAZY,CAMdM,OANc,GAYZN,CAZY,CAOdO,OAPc,CAOdA,CAPc,YAOJf,cAPI,KAYZQ,CAZY,CAQdQ,OARc,CAQdA,CARc,YAQJjB,cARI,GASdkB,CATc,CAYZT,CAZY,CASdS,KATc,CAUJC,CAVI,CAYZV,CAZY,CAUdW,QAVc,CAWXC,CAXW,0BAYZZ,CAZY,cAckBH,SAAS,CAAC,CAC1CK,MAAM,CAANA,CAD0C,CAE1CC,SAAS,CAATA,CAF0C,CAG1CE,QAAQ,CAARA,CAH0C,CAI1CC,OAAO,CAAPA,CAJ0C,CAK1CG,KAAK,CAALA,CAL0C,CAM1CF,OAAO,CAAPA,CAN0C,CAO1CC,OAAO,CAAPA,CAP0C,CAAD,CAd3B,CAcRK,CAdQ,GAcRA,WAdQ,CAcKF,CAdL,GAcKA,QAdL,CAwBhB,MACE,qBAAC,SAAD,kBACMC,CADN,EAEE,IAAI,CAAC,MAFP,CAGE,iBAAiB,CAAEX,CAHrB,CAIE,QAAQ,CAAEX,UAAU,CAAC,CAACqB,CAAD,CAAWD,CAAX,CAAD,CAJtB,CAKE,KAAK,CAAEG,CALT,CAME,WAAW,CAAET,CANf,GASH,CArCsC,CAAhC"}
@@ -43,8 +43,17 @@ export declare type DatePickerFieldTypeDateProps = PropsWithHTMLAttributes<{
43
43
  labelPosition?: 'top' | 'left';
44
44
  withClearButton?: boolean;
45
45
  }, HTMLDivElement>;
46
- export declare const useImask: (formatProp: string, separator: string, inputRef: React.RefObject<HTMLInputElement>, stringValue: string | null, onError: DatePickerPropOnError | undefined, handleChanhe: (props: {
47
- e: Event;
48
- value: string | null;
49
- }) => void) => void;
46
+ declare type UsePickerProps = {
47
+ value?: Date | null;
48
+ onChange?: DatePickerFieldTypeDatePropOnChange;
49
+ onError?: DatePickerPropOnError;
50
+ format: string;
51
+ separator: string;
52
+ minDate: Date;
53
+ maxDate: Date;
54
+ };
55
+ export declare const usePicker: (props: UsePickerProps) => {
56
+ stringValue: string | null;
57
+ inputRef: import("react").RefObject<HTMLInputElement>;
58
+ };
50
59
  export {};
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,parse as _parse}from"date-fns";import IMask from"imask";import{useCallback,useEffect,useRef}from"react";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{leapYear}from"../../../utils/date";import{datePickerPropFormatTypeDate,datePickerPropSeparatorDefault,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";export var useImask=function(a,b,c,d,e,f){var g=useRef(null),h=useMutableRef(e),i=useMutableRef(f);useEffect(function(){c.current&&(g.current=IMask(c.current,{mask:Date,pattern:a,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12},dd:{mask:IMask.MaskedRange,from:1,to:31}},lazy:!0,autofix:!0,format:function format(b){return _format(b,a)},parse:function parse(b){return _parse(b,a,new Date)},validate:function validate(c){var d=getPartsDate(c,a,b,!1,["dd","MM","yyyy"]),e=_slicedToArray(d,3),f=e[0],g=e[1],i=e[2];if(f&&g&&!isValid(_parse("".concat(f).concat(datePickerPropSeparatorDefault).concat(g).concat(datePickerPropSeparatorDefault).concat(leapYear),datePickerPropFormatTypeDate,new Date))){var j;return null===(j=h.current)||void 0===j?void 0:j.call(h,{type:datePickerErrorTypes[1],stringValue:c,dd:f,MM:g,yyyy:i}),!1}if(f&&g&&i&&!isValid(_parse("".concat(f).concat(datePickerPropSeparatorDefault).concat(g).concat(datePickerPropSeparatorDefault).concat(i),datePickerPropFormatTypeDate,new Date))){var k;return null===(k=h.current)||void 0===k?void 0:k.call(h,{type:datePickerErrorTypes[1],stringValue:c,dd:f,MM:g,yyyy:i}),!1}return!0}}))},[a,b]);var j=useCallback(function(a){var b;i.current({e:a,value:(null===(b=g.current)||void 0===b?void 0:b.value)||null})},[]);useEffect(function(){var a;return null===(a=g.current)||void 0===a?void 0:a.on("accept",j),function(){var a;null===(a=g.current)||void 0===a?void 0:a.off("accept",j)}},[]),useEffect(function(){var a;null===(a=g.current)||void 0===a?void 0:a.updateValue()},[d])};
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import IMask from"imask";import{useCallback,useEffect,useMemo,useState}from"react";import{useIMask}from"../../TextField";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{leapYear}from"../../../utils/date";import{datePickerPropFormatTypeDate,datePickerPropSeparatorDefault,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=useMutableRef(c),k=useMutableRef(b),l=useMutableRef(d),m=useState(b&&isValid(b)?_format(b,f):null),n=_slicedToArray(m,2),o=n[0],p=n[1],q=useMutableRef(o),r=useCallback(function(a){var b=a.e,c=a.value;if(q.current!==c){p(c);var d=j.current,e=k.current;if(d){if(!c)return void(e&&d({e:b,value:null}));var m=getPartsDate(c,f,g,!1,["dd","MM","yyyy"]),n=_slicedToArray(m,3),o=n[0],r=n[1],s=n[2];if(o&&r&&s){var u=_parse("".concat(o).concat(datePickerPropSeparatorDefault).concat(r).concat(datePickerPropSeparatorDefault).concat(s),datePickerPropFormatTypeDate,new Date);if(!isWithinInterval(u,{start:i,end:h})){var t;return null===(t=l.current)||void 0===t?void 0:t.call(l,{type:datePickerErrorTypes[0],stringValue:c,dd:o,MM:r,yyyy:s,date:u}),void(e&&d({e:b,value:null}))}d({e:b,value:u})}else e&&d({e:b,value:null})}}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),s=useMemo(function(){return{mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12},dd:{mask:IMask.MaskedRange,from:1,to:31}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getPartsDate(a,f,g,!1,["dd","MM","yyyy"]),c=_slicedToArray(b,3),d=c[0],e=c[1],h=c[2];if(d&&e&&!isValid(_parse("".concat(d).concat(datePickerPropSeparatorDefault).concat(e).concat(datePickerPropSeparatorDefault).concat(leapYear),datePickerPropFormatTypeDate,new Date))){var i;return null===(i=l.current)||void 0===i?void 0:i.call(l,{type:datePickerErrorTypes[1],stringValue:a,dd:d,MM:e,yyyy:h}),!1}if(d&&e&&h&&!isValid(_parse("".concat(d).concat(datePickerPropSeparatorDefault).concat(e).concat(datePickerPropSeparatorDefault).concat(h),datePickerPropFormatTypeDate,new Date))){var j;return null===(j=l.current)||void 0===j?void 0:j.call(l,{type:datePickerErrorTypes[1],stringValue:a,dd:d,MM:e,yyyy:h}),!1}return!0}}},[f,g]),t=useIMask({value:o,onChange:function(a,b){return null===r||void 0===r?void 0:r(b)},maskOptions:s}),u=t.inputRef;return useEffect(function(){b&&isValid(b)?p(_format(b,f)):(null===o||void 0===o?void 0:o.length)===f.length&&p("")},[null===b||void 0===b?void 0:b.getTime()]),{stringValue:o,inputRef:u}};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["format","isValid","parse","IMask","useCallback","useEffect","useRef","useMutableRef","leapYear","datePickerPropFormatTypeDate","datePickerPropSeparatorDefault","getPartsDate","datePickerErrorTypes","useImask","formatProp","separator","inputRef","stringValue","onError","handleChanhe","imaskRef","onErrorRef","handleChanheRef","current","mask","Date","pattern","blocks","yyyy","MaskedRange","from","to","MM","dd","lazy","autofix","date","string","validate","type","onAcept","e","value","on","off","updateValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDate/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, parse } from 'date-fns';\nimport IMask from 'imask';\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { useMutableRef } from '../../../hooks/useMutableRef/useMutableRef';\nimport { leapYear } from '../../../utils/date';\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n TextFieldPropWidth,\n} from '../../TextField/TextField';\nimport {\n datePickerPropFormatTypeDate,\n datePickerPropSeparatorDefault,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDatePropOnChange = (props: {\n e: Event;\n value: Date | null;\n}) => void;\n\nexport type DatePickerFieldTypeDateProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDatePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n width?: TextFieldPropWidth;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\nexport const useImask = (\n formatProp: string,\n separator: string,\n inputRef: React.RefObject<HTMLInputElement>,\n stringValue: string | null,\n onError: DatePickerPropOnError | undefined,\n handleChanhe: (props: { e: Event; value: string | null }) => void,\n) => {\n const imaskRef = useRef<IMask.InputMask<IMask.MaskedDateOptions> | null>(\n null,\n );\n const onErrorRef = useMutableRef(onError);\n const handleChanheRef = useMutableRef(handleChanhe);\n\n // задаем маску и сохраняем обьект маски в ref\n // обнавляем при смене формата\n useEffect(() => {\n if (inputRef.current) {\n imaskRef.current = IMask(inputRef.current, {\n mask: Date,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n },\n lazy: true,\n autofix: true,\n format: (date) => format(date, formatProp),\n parse: (string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const [dd, MM, yyyy] = getPartsDate(\n string,\n formatProp,\n separator,\n false,\n ['dd', 'MM', 'yyyy'],\n );\n\n if (\n dd &&\n MM &&\n !isValid(\n parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${leapYear}`,\n datePickerPropFormatTypeDate,\n new Date(),\n ),\n )\n ) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n });\n\n return false;\n }\n\n if (\n dd &&\n MM &&\n yyyy &&\n !isValid(\n parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${yyyy}`,\n datePickerPropFormatTypeDate,\n new Date(),\n ),\n )\n ) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n });\n\n return false;\n }\n\n return true;\n },\n // проблема в типах IMask\n }) as unknown as IMask.InputMask<IMask.MaskedDateOptions>;\n }\n }, [formatProp, separator]);\n\n // Нужно для синхранизации value c Imask,\n // так как value мы можем задать через пропс без самого ввода,\n // и Imask требует ручной синхронихации в этом случае\n const onAcept = useCallback((e: Event) => {\n handleChanheRef.current({ e, value: imaskRef.current?.value || null });\n }, []);\n\n useEffect(() => {\n imaskRef.current?.on('accept', onAcept);\n return () => {\n imaskRef.current?.off('accept', onAcept);\n };\n }, []);\n\n useEffect(() => {\n imaskRef.current?.updateValue();\n }, [stringValue]);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","IMask","useCallback","useEffect","useMemo","useState","useIMask","useMutableRef","leapYear","datePickerPropFormatTypeDate","datePickerPropSeparatorDefault","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","stringValue","setStringValue","stringValueRef","handleChange","e","current","dd","MM","yyyy","date","Date","start","end","type","getTime","options","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","_val","params","maskOptions","inputRef","length"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDate/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport IMask from 'imask';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { useIMask } from '##/components/TextField';\n\nimport { useMutableRef } from '../../../hooks/useMutableRef/useMutableRef';\nimport { leapYear } from '../../../utils/date';\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n TextFieldPropWidth,\n} from '../../TextField/TextField';\nimport {\n datePickerPropFormatTypeDate,\n datePickerPropSeparatorDefault,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDatePropOnChange = (props: {\n e: Event;\n value: Date | null;\n}) => void;\n\nexport type DatePickerFieldTypeDateProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDatePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n width?: TextFieldPropWidth;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeDatePropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const [stringValue, setStringValue] = useState<string | null>(\n value && isValid(value) ? format(value, formatProp) : null,\n );\n const stringValueRef = useMutableRef(stringValue);\n\n const handleChange = useCallback(\n ({ e, value: stringValue }: { e: Event; value: string | null }) => {\n if (stringValueRef.current === stringValue) {\n return;\n }\n setStringValue(stringValue);\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange({ e, value: null });\n }\n return;\n }\n const [dd, MM, yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['dd', 'MM', 'yyyy'],\n );\n if (dd && MM && yyyy) {\n const date = parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${yyyy}`,\n datePickerPropFormatTypeDate,\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n });\n if (value) {\n onChange({ e, value: null });\n }\n\n return;\n }\n onChange({ e, value: date });\n } else if (value) {\n onChange({ e, value: null });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const options: IMask.InputMask<IMask.MaskedDateOptions> = useMemo(\n () =>\n ({\n mask: Date,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const [dd, MM, yyyy] = getPartsDate(\n string,\n formatProp,\n separator,\n false,\n ['dd', 'MM', 'yyyy'],\n );\n if (\n dd &&\n MM &&\n !isValid(\n parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${leapYear}`,\n datePickerPropFormatTypeDate,\n new Date(),\n ),\n )\n ) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n });\n return false;\n }\n if (\n dd &&\n MM &&\n yyyy &&\n !isValid(\n parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${yyyy}`,\n datePickerPropFormatTypeDate,\n new Date(),\n ),\n )\n ) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n });\n return false;\n }\n return true;\n },\n // проблема в типах IMask\n } as unknown as IMask.InputMask<IMask.MaskedDateOptions>),\n [formatProp, separator],\n );\n\n const { inputRef } = useIMask({\n value: stringValue,\n onChange: (_val, params) => handleChange?.(params),\n maskOptions: options,\n });\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n } else if (stringValue?.length === formatProp.length) {\n // если количество введенных символов меньше чем в формате маски\n // то не нужно мешать вводу с клавиатуры\n // если дата была введена полностью и value пришел null,\n // то можно считать что поле нуждается в очистке\n setStringValue('');\n }\n }, [value?.getTime()]);\n\n return {\n stringValue,\n inputRef,\n };\n};\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare const DatePickerFieldTypeDateTime: React.ForwardRefExoticComponen
6
6
  e: Event;
7
7
  value: Date | null;
8
8
  }) => void) | undefined;
9
- onError?: import("../types").DatePickerPropOnError | undefined;
9
+ onError?: import("..").DatePickerPropOnError | undefined;
10
10
  id?: string | undefined;
11
11
  name?: string | undefined;
12
12
  disabled?: boolean | undefined;
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","multiplicityHours","multiplicitySeconds","multiplicityMinutes"];import{format,isValid,isWithinInterval,parse}from"date-fns";import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{TextField}from"../../TextField/TextField";import{datePickerPropFormatTypeDateTime,datePickerPropPlaceholderTypeDateTime,datePickerPropSeparatorDefault,getParts,getPartsDate}from"../helpers";import{datePickerErrorTypes}from"../types";import{useImask}from"./helpers";export var DatePickerFieldTypeDateTime=React.forwardRef(function(a,b){var c=a.format,d=void 0===c?datePickerPropFormatTypeDateTime:c,e=a.separator,f=void 0===e?datePickerPropSeparatorDefault:e,g=a.placeholder,h=void 0===g?datePickerPropPlaceholderTypeDateTime:g,i=a.onChange,j=a.onError,k=a.minDate,l=void 0===k?minDateDefault:k,m=a.maxDate,n=void 0===m?maxDateDefault:m,o=a.value,p=a.inputRef,q=a.multiplicityHours,r=a.multiplicitySeconds,s=a.multiplicityMinutes,t=_objectWithoutProperties(a,_excluded),u=useRef(null),v=useMutableRef(i),w=useState(o&&isValid(o)?format(o,d):null),x=_slicedToArray(w,2),y=x[0],z=x[1],A=useMutableRef(y),B=useMutableRef(o),C=useMutableRef(j),D=useMemo(function(){return getParts(d,f,!0)},[d,f]),E=useCallback(function(a){var b=a.e,c=a.value;if(A.current!==c){z(c);var e=v.current,g=B.current;if(e){if(!c)return void(g&&e({e:b,value:null}));var h=getPartsDate(c,d,f,!0,["dd","MM","yyyy","HH","mm","ss"]),i=_slicedToArray(h,6),j=i[0],k=i[1],m=i[2],o=i[3],p=i[4],q=i[5];if(h.filter(function(a){return!!a}).length===D.length){var s=parse("".concat(j).concat(datePickerPropSeparatorDefault).concat(k).concat(datePickerPropSeparatorDefault).concat(m," ").concat(o||"00",":").concat(p||"00",":").concat(q||"00"),datePickerPropFormatTypeDateTime,new Date);if(!isWithinInterval(s,{start:l,end:n})){var r;return null===(r=C.current)||void 0===r?void 0:r.call(C,{type:datePickerErrorTypes[0],stringValue:c,dd:j,MM:k,yyyy:m,date:s,HH:o,mm:p,ss:q}),void(g&&e({e:b,value:null}))}e({e:b,value:s})}else g&&e({e:b,value:null})}}},[null===l||void 0===l?void 0:l.getTime(),null===n||void 0===n?void 0:n.getTime(),d,f]);return useImask(d,f,q,r,s,u,y,j,E),useEffect(function(){o&&isValid(o)?z(format(o,d)):(null===y||void 0===y?void 0:y.length)===d.length&&z("")},[null===o||void 0===o?void 0:o.getTime()]),React.createElement(TextField,Object.assign({},t,{type:"text",onChange:E,inputContainerRef:b,inputRef:useForkRef([u,p]),value:y,placeholder:h}))});
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","multiplicityHours","multiplicitySeconds","multiplicityMinutes"];import React from"react";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{TextField}from"../../TextField/TextField";import{datePickerPropFormatTypeDateTime,datePickerPropPlaceholderTypeDateTime,datePickerPropSeparatorDefault}from"../helpers";import{usePicker}from"./helpers";export var DatePickerFieldTypeDateTime=React.forwardRef(function(a,b){var c=a.format,d=void 0===c?datePickerPropFormatTypeDateTime:c,e=a.separator,f=void 0===e?datePickerPropSeparatorDefault:e,g=a.placeholder,h=void 0===g?datePickerPropPlaceholderTypeDateTime:g,i=a.onChange,j=a.onError,k=a.minDate,l=void 0===k?minDateDefault:k,m=a.maxDate,n=void 0===m?maxDateDefault:m,o=a.value,p=a.inputRef,q=a.multiplicityHours,r=a.multiplicitySeconds,s=a.multiplicityMinutes,t=_objectWithoutProperties(a,_excluded),u=usePicker({onChange:i,value:o,onError:j,maxDate:n,minDate:l,multiplicityHours:q,multiplicityMinutes:s,multiplicitySeconds:r,separator:f,format:d}),v=u.stringValue,w=u.inputRef;return React.createElement(TextField,Object.assign({},t,{type:"text",inputContainerRef:b,inputRef:useForkRef([w,p]),value:v,placeholder:h}))});
2
2
  //# sourceMappingURL=DatePickerFieldTypeDateTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerFieldTypeDateTime.js","names":["format","isValid","isWithinInterval","parse","React","useCallback","useEffect","useMemo","useRef","useState","useForkRef","useMutableRef","maxDateDefault","minDateDefault","TextField","datePickerPropFormatTypeDateTime","datePickerPropPlaceholderTypeDateTime","datePickerPropSeparatorDefault","getParts","getPartsDate","datePickerErrorTypes","useImask","DatePickerFieldTypeDateTime","forwardRef","props","ref","formatProp","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRefProp","inputRef","multiplicityHours","multiplicitySeconds","multiplicityMinutes","otherProps","onChangeRef","stringValue","setStringValue","stringValueRef","valueRef","onErrorRef","formatParts","handleChange","e","current","partsDate","dd","MM","yyyy","HH","mm","ss","filter","item","length","date","Date","start","end","type","getTime"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.tsx"],"sourcesContent":["import { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport { useMutableRef } from '../../../hooks/useMutableRef/useMutableRef';\nimport { maxDateDefault, minDateDefault } from '../../../utils/date';\nimport { TextField, TextFieldPropOnChange } from '../../TextField/TextField';\nimport {\n datePickerPropFormatTypeDateTime,\n datePickerPropPlaceholderTypeDateTime,\n datePickerPropSeparatorDefault,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes } from '../types';\nimport { DatePickerFieldTypeDateTimeProps, useImask } from './helpers';\n\nexport const DatePickerFieldTypeDateTime = React.forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeDateTimeProps\n>((props, ref) => {\n const {\n format: formatProp = datePickerPropFormatTypeDateTime,\n separator = datePickerPropSeparatorDefault,\n placeholder = datePickerPropPlaceholderTypeDateTime,\n onChange,\n onError,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n value,\n inputRef: inputRefProp,\n multiplicityHours,\n multiplicitySeconds,\n multiplicityMinutes,\n ...otherProps\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const onChangeRef = useMutableRef(onChange);\n\n const [stringValue, setStringValue] = useState<string | null>(\n value && isValid(value) ? format(value, formatProp) : null,\n );\n\n const stringValueRef = useMutableRef(stringValue);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const formatParts = useMemo(\n () => getParts(formatProp, separator, true),\n [formatProp, separator],\n );\n\n const handleChange = useCallback(\n ({ e, value: stringValue }: { e: Event; value: string | null }) => {\n if (stringValueRef.current === stringValue) {\n return;\n }\n\n setStringValue(stringValue);\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange({ e, value: null });\n }\n return;\n }\n\n const partsDate = getPartsDate(\n stringValue,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n const [dd, MM, yyyy, HH, mm, ss] = partsDate;\n\n if (partsDate.filter((item) => !!item).length === formatParts.length) {\n const date = parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${yyyy} ${\n HH || '00'\n }:${mm || '00'}:${ss || '00'}`,\n datePickerPropFormatTypeDateTime,\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange({ e, value: null });\n }\n return;\n }\n onChange({ e, value: date });\n } else if (value) {\n onChange({ e, value: null });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n useImask(\n formatProp,\n separator,\n multiplicityHours,\n multiplicitySeconds,\n multiplicityMinutes,\n inputRef,\n stringValue,\n onError,\n handleChange,\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n } else if (stringValue?.length === formatProp.length) {\n // если количество введенных символов меньше чем в формате маски\n // то не нужно мешать вводу с клавиатуры\n // если дата была введена полностью и value пришел null,\n // то можно считать что поле нуждается в очистке\n setStringValue('');\n }\n }, [value?.getTime()]);\n\n return (\n <TextField\n {...otherProps}\n type=\"text\"\n onChange={handleChange as unknown as TextFieldPropOnChange}\n inputContainerRef={ref}\n inputRef={useForkRef([inputRef, inputRefProp])}\n value={stringValue}\n placeholder={placeholder}\n />\n );\n});\n"],"mappings":"qUAAA,OAASA,MAAT,CAAiBC,OAAjB,CAA0BC,gBAA1B,CAA4CC,KAA5C,KAAyD,UAAzD,CACA,MAAOC,MAAP,EACEC,WADF,CAEEC,SAFF,CAGEC,OAHF,CAIEC,MAJF,CAKEC,QALF,KAMO,OANP,CAQA,OAASC,UAAT,4CACA,OAASC,aAAT,kDACA,OAASC,cAAT,CAAyBC,cAAzB,2BACA,OAASC,SAAT,iCACA,OACEC,gCADF,CAEEC,qCAFF,CAGEC,8BAHF,CAIEC,QAJF,CAKEC,YALF,kBAOA,OAASC,oBAAT,gBACA,OAA2CC,QAA3C,iBAEA,MAAO,IAAMC,4BAA2B,CAAGlB,KAAK,CAACmB,UAAN,CAGzC,SAACC,CAAD,CAAQC,CAAR,CAAgB,OAeZD,CAfY,CAEdxB,MAFc,CAEN0B,CAFM,YAEOX,gCAFP,KAeZS,CAfY,CAGdG,SAHc,CAGdA,CAHc,YAGFV,8BAHE,KAeZO,CAfY,CAIdI,WAJc,CAIdA,CAJc,YAIAZ,qCAJA,GAKda,CALc,CAeZL,CAfY,CAKdK,QALc,CAMdC,CANc,CAeZN,CAfY,CAMdM,OANc,GAeZN,CAfY,CAOdO,OAPc,CAOdA,CAPc,YAOJlB,cAPI,KAeZW,CAfY,CAQdQ,OARc,CAQdA,CARc,YAQJpB,cARI,GASdqB,CATc,CAeZT,CAfY,CASdS,KATc,CAUJC,CAVI,CAeZV,CAfY,CAUdW,QAVc,CAWdC,CAXc,CAeZZ,CAfY,CAWdY,iBAXc,CAYdC,CAZc,CAeZb,CAfY,CAYda,mBAZc,CAadC,CAbc,CAeZd,CAfY,CAadc,mBAbc,CAcXC,CAdW,0BAeZf,CAfY,YAiBVW,CAAQ,CAAG3B,MAAM,CAAmB,IAAnB,CAjBP,CAkBVgC,CAAW,CAAG7B,aAAa,CAACkB,CAAD,CAlBjB,GAoBsBpB,QAAQ,CAC5CwB,CAAK,EAAIhC,OAAO,CAACgC,CAAD,CAAhB,CAA0BjC,MAAM,CAACiC,CAAD,CAAQP,CAAR,CAAhC,CAAsD,IADV,CApB9B,uBAoBTe,CApBS,MAoBIC,CApBJ,MAwBVC,CAAc,CAAGhC,aAAa,CAAC8B,CAAD,CAxBpB,CAyBVG,CAAQ,CAAGjC,aAAa,CAACsB,CAAD,CAzBd,CA0BVY,CAAU,CAAGlC,aAAa,CAACmB,CAAD,CA1BhB,CA4BVgB,CAAW,CAAGvC,OAAO,CACzB,iBAAMW,SAAQ,CAACQ,CAAD,CAAaC,CAAb,IAAd,CADyB,CAEzB,CAACD,CAAD,CAAaC,CAAb,CAFyB,CA5BX,CAiCVoB,CAAY,CAAG1C,WAAW,CAC9B,WAAmE,IAAhE2C,EAAgE,GAAhEA,CAAgE,CAAtDP,CAAsD,GAA7DR,KAA6D,CACjE,GAAIU,CAAc,CAACM,OAAf,GAA2BR,CAA/B,EAIAC,CAAc,CAACD,CAAD,CAJd,IAKMZ,EAAQ,CAAGW,CAAW,CAACS,OAL7B,CAMMhB,CAAK,CAAGW,CAAQ,CAACK,OANvB,CAQA,GAAIpB,CAAJ,CAAc,CACZ,GAAI,CAACY,CAAL,CAIE,YAHIR,CAGJ,EAFEJ,CAAQ,CAAC,CAAEmB,CAAC,CAADA,CAAF,CAAKf,KAAK,CAAE,IAAZ,CAAD,CAEV,EALU,GAQNiB,EAAS,CAAG/B,YAAY,CAC5BsB,CAD4B,CAE5Bf,CAF4B,CAG5BC,CAH4B,IAK5B,CAAC,IAAD,CAAO,IAAP,CAAa,MAAb,CAAqB,IAArB,CAA2B,IAA3B,CAAiC,IAAjC,CAL4B,CARlB,kBAgBuBuB,CAhBvB,IAgBLC,CAhBK,MAgBDC,CAhBC,MAgBGC,CAhBH,MAgBSC,CAhBT,MAgBaC,CAhBb,MAgBiBC,CAhBjB,MAkBZ,GAAIN,CAAS,CAACO,MAAV,CAAiB,SAACC,CAAD,QAAU,CAAC,CAACA,CAAZ,CAAjB,EAAmCC,MAAnC,GAA8Cb,CAAW,CAACa,MAA9D,CAAsE,CACpE,GAAMC,EAAI,CAAGzD,KAAK,WACbgD,CADa,SACRlC,8BADQ,SACyBmC,CADzB,SAC8BnC,8BAD9B,SAC+DoC,CAD/D,aAEdC,CAAE,EAAI,IAFQ,aAGZC,CAAE,EAAI,IAHM,aAGEC,CAAE,EAAI,IAHR,EAIhBzC,gCAJgB,CAKhB,GAAI8C,KALY,CAAlB,CAOA,GAAI,CAAC3D,gBAAgB,CAAC0D,CAAD,CAAO,CAAEE,KAAK,CAAE/B,CAAT,CAAkBgC,GAAG,CAAE/B,CAAvB,CAAP,CAArB,CAA+D,OAgB7D,iBAfAa,CAAU,CAACI,OAeX,qBAfA,OAAAJ,CAAU,CAAW,CACnBmB,IAAI,CAAE5C,oBAAoB,CAAC,CAAD,CADP,CAEnBqB,WAAW,CAAXA,CAFmB,CAGnBU,EAAE,CAAFA,CAHmB,CAInBC,EAAE,CAAFA,CAJmB,CAKnBC,IAAI,CAAJA,CALmB,CAMnBO,IAAI,CAAJA,CANmB,CAOnBN,EAAE,CAAFA,CAPmB,CAQnBC,EAAE,CAAFA,CARmB,CASnBC,EAAE,CAAFA,CATmB,CAAX,CAeV,MAHIvB,CAGJ,EAFEJ,CAAQ,CAAC,CAAEmB,CAAC,CAADA,CAAF,CAAKf,KAAK,CAAE,IAAZ,CAAD,CAEV,CACD,CACDJ,CAAQ,CAAC,CAAEmB,CAAC,CAADA,CAAF,CAAKf,KAAK,CAAE2B,CAAZ,CAAD,CACT,CA3BD,IA2BW3B,EA3BX,EA4BEJ,CAAQ,CAAC,CAAEmB,CAAC,CAADA,CAAF,CAAKf,KAAK,CAAE,IAAZ,CAAD,CAEX,CAxDD,CAyDD,CA3D6B,CA4D9B,QAACF,CAAD,WAACA,CAAD,QAACA,CAAO,CAAEkC,OAAT,EAAD,QAAqBjC,CAArB,WAAqBA,CAArB,QAAqBA,CAAO,CAAEiC,OAAT,EAArB,CAAyCvC,CAAzC,CAAqDC,CAArD,CA5D8B,CAjChB,CAyHhB,MAzBAN,SAAQ,CACNK,CADM,CAENC,CAFM,CAGNS,CAHM,CAINC,CAJM,CAKNC,CALM,CAMNH,CANM,CAONM,CAPM,CAQNX,CARM,CASNiB,CATM,CAyBR,CAZAzC,SAAS,CAAC,UAAM,CACV2B,CAAK,EAAIhC,OAAO,CAACgC,CAAD,CADN,CAEZS,CAAc,CAAC1C,MAAM,CAACiC,CAAD,CAAQP,CAAR,CAAP,CAFF,CAGH,QAAAe,CAAW,WAAXA,CAAA,QAAAA,CAAW,CAAEkB,MAAb,IAAwBjC,CAAU,CAACiC,MAHhC,EAQZjB,CAAc,CAAC,EAAD,CAEjB,CAVQ,CAUN,QAACT,CAAD,WAACA,CAAD,QAACA,CAAK,CAAEgC,OAAP,EAAD,CAVM,CAYT,CACE,oBAAC,SAAD,kBACM1B,CADN,EAEE,IAAI,CAAC,MAFP,CAGE,QAAQ,CAAEQ,CAHZ,CAIE,iBAAiB,CAAEtB,CAJrB,CAKE,QAAQ,CAAEf,UAAU,CAAC,CAACyB,CAAD,CAAWD,CAAX,CAAD,CALtB,CAME,KAAK,CAAEO,CANT,CAOE,WAAW,CAAEb,CAPf,GAUH,CAvI0C,CAApC"}
1
+ {"version":3,"file":"DatePickerFieldTypeDateTime.js","names":["React","useForkRef","maxDateDefault","minDateDefault","TextField","datePickerPropFormatTypeDateTime","datePickerPropPlaceholderTypeDateTime","datePickerPropSeparatorDefault","usePicker","DatePickerFieldTypeDateTime","forwardRef","props","ref","format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRefProp","inputRef","multiplicityHours","multiplicitySeconds","multiplicityMinutes","otherProps","stringValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport { maxDateDefault, minDateDefault } from '../../../utils/date';\nimport { TextField } from '../../TextField/TextField';\nimport {\n datePickerPropFormatTypeDateTime,\n datePickerPropPlaceholderTypeDateTime,\n datePickerPropSeparatorDefault,\n} from '../helpers';\nimport { DatePickerFieldTypeDateTimeProps, usePicker } from './helpers';\n\nexport const DatePickerFieldTypeDateTime = React.forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeDateTimeProps\n>((props, ref) => {\n const {\n format = datePickerPropFormatTypeDateTime,\n separator = datePickerPropSeparatorDefault,\n placeholder = datePickerPropPlaceholderTypeDateTime,\n onChange,\n onError,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n value,\n inputRef: inputRefProp,\n multiplicityHours,\n multiplicitySeconds,\n multiplicityMinutes,\n ...otherProps\n } = props;\n\n const { stringValue, inputRef } = usePicker({\n onChange,\n value,\n onError,\n maxDate,\n minDate,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n separator,\n format,\n });\n\n return (\n <TextField\n {...otherProps}\n type=\"text\"\n inputContainerRef={ref}\n inputRef={useForkRef([inputRef, inputRefProp])}\n value={stringValue}\n placeholder={placeholder}\n />\n );\n});\n"],"mappings":"oQAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,UAAT,4CACA,OAASC,cAAT,CAAyBC,cAAzB,2BACA,OAASC,SAAT,iCACA,OACEC,gCADF,CAEEC,qCAFF,CAGEC,8BAHF,kBAKA,OAA2CC,SAA3C,iBAEA,MAAO,IAAMC,4BAA2B,CAAGT,KAAK,CAACU,UAAN,CAGzC,SAACC,CAAD,CAAQC,CAAR,CAAgB,OAeZD,CAfY,CAEdE,MAFc,CAEdA,CAFc,YAELR,gCAFK,KAeZM,CAfY,CAGdG,SAHc,CAGdA,CAHc,YAGFP,8BAHE,KAeZI,CAfY,CAIdI,WAJc,CAIdA,CAJc,YAIAT,qCAJA,GAKdU,CALc,CAeZL,CAfY,CAKdK,QALc,CAMdC,CANc,CAeZN,CAfY,CAMdM,OANc,GAeZN,CAfY,CAOdO,OAPc,CAOdA,CAPc,YAOJf,cAPI,KAeZQ,CAfY,CAQdQ,OARc,CAQdA,CARc,YAQJjB,cARI,GASdkB,CATc,CAeZT,CAfY,CASdS,KATc,CAUJC,CAVI,CAeZV,CAfY,CAUdW,QAVc,CAWdC,CAXc,CAeZZ,CAfY,CAWdY,iBAXc,CAYdC,CAZc,CAeZb,CAfY,CAYda,mBAZc,CAadC,CAbc,CAeZd,CAfY,CAadc,mBAbc,CAcXC,CAdW,0BAeZf,CAfY,cAiBkBH,SAAS,CAAC,CAC1CQ,QAAQ,CAARA,CAD0C,CAE1CI,KAAK,CAALA,CAF0C,CAG1CH,OAAO,CAAPA,CAH0C,CAI1CE,OAAO,CAAPA,CAJ0C,CAK1CD,OAAO,CAAPA,CAL0C,CAM1CK,iBAAiB,CAAjBA,CAN0C,CAO1CE,mBAAmB,CAAnBA,CAP0C,CAQ1CD,mBAAmB,CAAnBA,CAR0C,CAS1CV,SAAS,CAATA,CAT0C,CAU1CD,MAAM,CAANA,CAV0C,CAAD,CAjB3B,CAiBRc,CAjBQ,GAiBRA,WAjBQ,CAiBKL,CAjBL,GAiBKA,QAjBL,CA8BhB,MACE,qBAAC,SAAD,kBACMI,CADN,EAEE,IAAI,CAAC,MAFP,CAGE,iBAAiB,CAAEd,CAHrB,CAIE,QAAQ,CAAEX,UAAU,CAAC,CAACqB,CAAD,CAAWD,CAAX,CAAD,CAJtB,CAKE,KAAK,CAAEM,CALT,CAME,WAAW,CAAEZ,CANf,GASH,CA3C0C,CAApC"}
@@ -46,8 +46,20 @@ export declare type DatePickerFieldTypeDateTimeProps = PropsWithHTMLAttributes<{
46
46
  labelPosition?: 'top' | 'left';
47
47
  withClearButton?: boolean;
48
48
  }, HTMLDivElement>;
49
- export declare const useImask: (formatProp: string, separator: string, multiplicityHours: number | undefined, multiplicitySeconds: number | undefined, multiplicityMinutes: number | undefined, inputRef: React.RefObject<HTMLInputElement>, stringValue: string | null, onError: DatePickerPropOnError | undefined, handleChanhe: (props: {
50
- e: Event;
51
- value: string | null;
52
- }) => void) => void;
49
+ declare type UsePickerProps = {
50
+ value?: Date | null;
51
+ onChange?: DatePickerFieldTypeDateTimePropOnChange;
52
+ onError?: DatePickerPropOnError;
53
+ format: string;
54
+ separator: string;
55
+ minDate: Date;
56
+ maxDate: Date;
57
+ multiplicityHours: number | undefined;
58
+ multiplicitySeconds: number | undefined;
59
+ multiplicityMinutes: number | undefined;
60
+ };
61
+ export declare const usePicker: (props: UsePickerProps) => {
62
+ stringValue: string | null;
63
+ inputRef: React.RefObject<HTMLInputElement>;
64
+ };
53
65
  export {};
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{addHours,addMinutes,addSeconds,format as _format,isValid,parse as _parse,startOfDay,startOfHour,startOfMinute}from"date-fns";import IMask from"imask";import{useCallback,useEffect,useRef}from"react";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{leapYear}from"../../../utils/date";import{getLabelHours,getLabelMinutes,getLabelSeconds}from"../../DateTime/helpers";import{datePickerPropFormatTypeDate,datePickerPropSeparatorDefault,getPartsDate,getTimeEnum}from"../helpers";import{datePickerErrorTypes}from"../types";export var useImask=function(a,b,c,d,e,f,g,h,i){var j=useRef(null),k=useMutableRef(h),l=useMutableRef(i);useEffect(function(){f.current&&(j.current=IMask(f.current,{mask:Date,pattern:a,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12},dd:{mask:IMask.MaskedRange,from:1,to:31},HH:c&&1<c?{mask:IMask.MaskedEnum,enum:getTimeEnum(24,c,startOfDay,addHours,getLabelHours)}:{mask:IMask.MaskedRange,from:0,to:23},mm:e&&1<e?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,e,startOfHour,addMinutes,getLabelMinutes)}:{mask:IMask.MaskedRange,from:0,to:59},ss:d&&1<d?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,d,startOfMinute,addSeconds,getLabelSeconds)}:{mask:IMask.MaskedRange,from:0,to:59}},lazy:!0,autofix:!0,format:function format(b){return _format(b,a)},parse:function parse(b){return _parse(b,a,new Date)},validate:function validate(c){var d=getPartsDate(c,a,b,!0,["dd","MM","yyyy","HH","mm","ss"]),e=_slicedToArray(d,6),f=e[0],g=e[1],h=e[2],i=e[3],j=e[4],l=e[5];if(f&&g&&!isValid(_parse("".concat(f).concat(datePickerPropSeparatorDefault).concat(g).concat(datePickerPropSeparatorDefault).concat(leapYear),datePickerPropFormatTypeDate,new Date))){var m;return null===(m=k.current)||void 0===m?void 0:m.call(k,{type:datePickerErrorTypes[1],stringValue:c,dd:f,MM:g,yyyy:h,HH:i,mm:j,ss:l}),!1}if(f&&g&&h&&!isValid(_parse("".concat(f).concat(datePickerPropSeparatorDefault).concat(g).concat(datePickerPropSeparatorDefault).concat(h),datePickerPropFormatTypeDate,new Date))){var n;return null===(n=k.current)||void 0===n?void 0:n.call(k,{type:datePickerErrorTypes[1],stringValue:c,dd:f,MM:g,yyyy:h,HH:i,mm:j,ss:l}),!1}return!0}}))},[a,b,c,d,e]);var m=useCallback(function(a){var b;l.current({e:a,value:(null===(b=j.current)||void 0===b?void 0:b.value)||null})},[]);useEffect(function(){var a;return null===(a=j.current)||void 0===a?void 0:a.on("accept",m),function(){var a;null===(a=j.current)||void 0===a?void 0:a.off("accept",m)}},[]),useEffect(function(){var a;null===(a=j.current)||void 0===a?void 0:a.updateValue()},[g])};
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{addHours,addMinutes,addSeconds,format as _format,isValid,isWithinInterval,parse as _parse,startOfDay,startOfHour,startOfMinute}from"date-fns";import IMask from"imask";import{useCallback,useEffect,useMemo,useState}from"react";import{useIMask}from"../../TextField";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{leapYear}from"../../../utils/date";import{getLabelHours,getLabelMinutes,getLabelSeconds}from"../../DateTime/helpers";import{datePickerPropFormatTypeDate,datePickerPropFormatTypeDateTime,datePickerPropSeparatorDefault,getParts,getPartsDate,getTimeEnum}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=a.multiplicityHours,k=a.multiplicityMinutes,l=a.multiplicitySeconds,m=useMutableRef(c),n=useMutableRef(b),o=useMutableRef(d),p=useState(b&&isValid(b)?_format(b,f):null),q=_slicedToArray(p,2),r=q[0],s=q[1],t=useMutableRef(r),u=useMemo(function(){return getParts(f,g,!0)},[f,g]),v=useCallback(function(a){var b=a.e,c=a.value;if(t.current!==c){s(c);var d=m.current,e=n.current;if(d){if(!c)return void(e&&d({e:b,value:null}));var j=getPartsDate(c,f,g,!0,["dd","MM","yyyy","HH","mm","ss"]),k=_slicedToArray(j,6),l=k[0],p=k[1],q=k[2],r=k[3],v=k[4],w=k[5];if(j.filter(function(a){return!!a}).length===u.length){var y=_parse("".concat(l).concat(datePickerPropSeparatorDefault).concat(p).concat(datePickerPropSeparatorDefault).concat(q," ").concat(r||"00",":").concat(v||"00",":").concat(w||"00"),datePickerPropFormatTypeDateTime,new Date);if(!isWithinInterval(y,{start:i,end:h})){var x;return null===(x=o.current)||void 0===x?void 0:x.call(o,{type:datePickerErrorTypes[0],stringValue:c,dd:l,MM:p,yyyy:q,date:y,HH:r,mm:v,ss:w}),void(e&&d({e:b,value:null}))}d({e:b,value:y})}else e&&d({e:b,value:null})}}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),w=useMemo(function(){return{mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999},MM:{mask:IMask.MaskedRange,from:1,to:12},dd:{mask:IMask.MaskedRange,from:1,to:31},HH:j&&1<j?{mask:IMask.MaskedEnum,enum:getTimeEnum(24,j,startOfDay,addHours,getLabelHours)}:{mask:IMask.MaskedRange,from:0,to:23},mm:k&&1<k?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,k,startOfHour,addMinutes,getLabelMinutes)}:{mask:IMask.MaskedRange,from:0,to:59},ss:l&&1<l?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,l,startOfMinute,addSeconds,getLabelSeconds)}:{mask:IMask.MaskedRange,from:0,to:59}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getPartsDate(a,f,g,!0,["dd","MM","yyyy","HH","mm","ss"]),c=_slicedToArray(b,6),d=c[0],e=c[1],h=c[2],i=c[3],j=c[4],k=c[5];if(d&&e&&!isValid(_parse("".concat(d).concat(datePickerPropSeparatorDefault).concat(e).concat(datePickerPropSeparatorDefault).concat(leapYear),datePickerPropFormatTypeDate,new Date))){var l;return null===(l=o.current)||void 0===l?void 0:l.call(o,{type:datePickerErrorTypes[1],stringValue:a,dd:d,MM:e,yyyy:h,HH:i,mm:j,ss:k}),!1}if(d&&e&&h&&!isValid(_parse("".concat(d).concat(datePickerPropSeparatorDefault).concat(e).concat(datePickerPropSeparatorDefault).concat(h),datePickerPropFormatTypeDate,new Date))){var m;return null===(m=o.current)||void 0===m?void 0:m.call(o,{type:datePickerErrorTypes[1],stringValue:a,dd:d,MM:e,yyyy:h,HH:i,mm:j,ss:k}),!1}return!0}}},[f,g,j,l,k]),x=useIMask({value:r,onChange:function(a,b){return null===v||void 0===v?void 0:v(b)},maskOptions:w}),y=x.inputRef;return useEffect(function(){b&&isValid(b)?s(_format(b,f)):(null===r||void 0===r?void 0:r.length)===f.length&&s("")},[null===b||void 0===b?void 0:b.getTime()]),{stringValue:r,inputRef:y}};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","parse","startOfDay","startOfHour","startOfMinute","IMask","useCallback","useEffect","useRef","useMutableRef","leapYear","getLabelHours","getLabelMinutes","getLabelSeconds","datePickerPropFormatTypeDate","datePickerPropSeparatorDefault","getPartsDate","getTimeEnum","datePickerErrorTypes","useImask","formatProp","separator","multiplicityHours","multiplicitySeconds","multiplicityMinutes","inputRef","stringValue","onError","handleChanhe","imaskRef","onErrorRef","handleChanheRef","current","mask","Date","pattern","blocks","yyyy","MaskedRange","from","to","MM","dd","HH","MaskedEnum","mm","ss","lazy","autofix","date","string","validate","type","onAcept","e","value","on","off","updateValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport IMask from 'imask';\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nimport { useMutableRef } from '../../../hooks/useMutableRef/useMutableRef';\nimport { leapYear } from '../../../utils/date';\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '../../DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n TextFieldPropWidth,\n} from '../../TextField/TextField';\nimport {\n datePickerPropFormatTypeDate,\n datePickerPropSeparatorDefault,\n getPartsDate,\n getTimeEnum,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDateTimePropOnChange = (props: {\n e: Event;\n value: Date | null;\n}) => void;\n\nexport type DatePickerFieldTypeDateTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n width?: TextFieldPropWidth;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\nexport const useImask = (\n formatProp: string,\n separator: string,\n multiplicityHours: number | undefined,\n multiplicitySeconds: number | undefined,\n multiplicityMinutes: number | undefined,\n inputRef: React.RefObject<HTMLInputElement>,\n stringValue: string | null,\n onError: DatePickerPropOnError | undefined,\n handleChanhe: (props: { e: Event; value: string | null }) => void,\n) => {\n const imaskRef = useRef<IMask.InputMask<IMask.MaskedDateOptions> | null>(\n null,\n );\n const onErrorRef = useMutableRef(onError);\n const handleChanheRef = useMutableRef(handleChanhe);\n\n // задаем маску и сохраняем обьект маски в ref\n // обнавляем при смене формата\n useEffect(() => {\n if (!inputRef.current) {\n return;\n }\n\n imaskRef.current = IMask(inputRef.current, {\n mask: Date,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date) => format(date, formatProp),\n parse: (string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n string,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n if (\n dd &&\n MM &&\n !isValid(\n parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${leapYear}`,\n datePickerPropFormatTypeDate,\n new Date(),\n ),\n )\n ) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n HH,\n mm,\n ss,\n });\n\n return false;\n }\n\n if (\n dd &&\n MM &&\n yyyy &&\n !isValid(\n parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${yyyy}`,\n datePickerPropFormatTypeDate,\n new Date(),\n ),\n )\n ) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n HH,\n mm,\n ss,\n });\n\n return false;\n }\n\n return true;\n },\n // проблема в типах IMask\n }) as unknown as IMask.InputMask<IMask.MaskedDateOptions>;\n }, [\n formatProp,\n separator,\n multiplicityHours,\n multiplicitySeconds,\n multiplicityMinutes,\n ]);\n\n // Нужно для синхранизации value c Imask,\n // так как value мы можем задать через пропс без самого ввода,\n // и Imask требует ручной синхронихации в этом случае\n const onAcept = useCallback((e: Event) => {\n handleChanheRef.current({ e, value: imaskRef.current?.value || null });\n }, []);\n\n useEffect(() => {\n imaskRef.current?.on('accept', onAcept);\n return () => {\n imaskRef.current?.off('accept', onAcept);\n };\n }, []);\n\n useEffect(() => {\n imaskRef.current?.updateValue();\n }, [stringValue]);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","isWithinInterval","parse","startOfDay","startOfHour","startOfMinute","IMask","useCallback","useEffect","useMemo","useState","useIMask","useMutableRef","leapYear","getLabelHours","getLabelMinutes","getLabelSeconds","datePickerPropFormatTypeDate","datePickerPropFormatTypeDateTime","datePickerPropSeparatorDefault","getParts","getPartsDate","getTimeEnum","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","multiplicityHours","multiplicityMinutes","multiplicitySeconds","onChangeRef","valueRef","onErrorRef","stringValue","setStringValue","stringValueRef","formatParts","handleChange","e","current","partsDate","dd","MM","yyyy","HH","mm","ss","filter","item","length","date","Date","start","end","type","getTime","options","mask","pattern","blocks","MaskedRange","from","to","MaskedEnum","lazy","autofix","string","validate","_val","params","maskOptions","inputRef"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n isWithinInterval,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport IMask from 'imask';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { useIMask } from '##/components/TextField';\n\nimport { useMutableRef } from '../../../hooks/useMutableRef/useMutableRef';\nimport { leapYear } from '../../../utils/date';\nimport { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '../../DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n TextFieldPropWidth,\n} from '../../TextField/TextField';\nimport {\n datePickerPropFormatTypeDate,\n datePickerPropFormatTypeDateTime,\n datePickerPropSeparatorDefault,\n getParts,\n getPartsDate,\n getTimeEnum,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDateTimePropOnChange = (props: {\n e: Event;\n value: Date | null;\n}) => void;\n\nexport type DatePickerFieldTypeDateTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n width?: TextFieldPropWidth;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n multiplicityHours: number | undefined;\n multiplicitySeconds: number | undefined;\n multiplicityMinutes: number | undefined;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const [stringValue, setStringValue] = useState<string | null>(\n value && isValid(value) ? format(value, formatProp) : null,\n );\n const stringValueRef = useMutableRef(stringValue);\n\n const formatParts = useMemo(\n () => getParts(formatProp, separator, true),\n [formatProp, separator],\n );\n\n const handleChange = useCallback(\n ({ e, value: stringValue }: { e: Event; value: string | null }) => {\n if (stringValueRef.current === stringValue) {\n return;\n }\n\n setStringValue(stringValue);\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (onChange) {\n if (!stringValue) {\n if (value) {\n onChange({ e, value: null });\n }\n return;\n }\n\n const partsDate = getPartsDate(\n stringValue,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n const [dd, MM, yyyy, HH, mm, ss] = partsDate;\n\n if (partsDate.filter((item) => !!item).length === formatParts.length) {\n const date = parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${yyyy} ${\n HH || '00'\n }:${mm || '00'}:${ss || '00'}`,\n datePickerPropFormatTypeDateTime,\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange({ e, value: null });\n }\n return;\n }\n onChange({ e, value: date });\n } else if (value) {\n onChange({ e, value: null });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const options: IMask.InputMask<IMask.MaskedDateOptions> = useMemo(\n () =>\n ({\n mask: Date,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n string,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n if (\n dd &&\n MM &&\n !isValid(\n parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${leapYear}`,\n datePickerPropFormatTypeDate,\n new Date(),\n ),\n )\n ) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n HH,\n mm,\n ss,\n });\n return false;\n }\n if (\n dd &&\n MM &&\n yyyy &&\n !isValid(\n parse(\n `${dd}${datePickerPropSeparatorDefault}${MM}${datePickerPropSeparatorDefault}${yyyy}`,\n datePickerPropFormatTypeDate,\n new Date(),\n ),\n )\n ) {\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n HH,\n mm,\n ss,\n });\n return false;\n }\n return true;\n },\n // проблема в типах IMask\n } as unknown as IMask.InputMask<IMask.MaskedDateOptions>),\n [\n formatProp,\n separator,\n multiplicityHours,\n multiplicitySeconds,\n multiplicityMinutes,\n ],\n );\n\n const { inputRef } = useIMask({\n value: stringValue,\n onChange: (_val, params) => handleChange?.(params),\n maskOptions: options,\n });\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n } else if (stringValue?.length === formatProp.length) {\n // если количество введенных символов меньше чем в формате маски\n // то не нужно мешать вводу с клавиатуры\n // если дата была введена полностью и value пришел null,\n // то можно считать что поле нуждается в очистке\n setStringValue('');\n }\n }, [value?.getTime()]);\n\n return {\n stringValue,\n inputRef,\n };\n};\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare const DatePickerFieldTypeMonth: React.ForwardRefExoticComponent<{
6
6
  e: Event;
7
7
  value: Date | null;
8
8
  }) => void) | undefined;
9
- onError?: import("../types").DatePickerPropOnError | undefined;
9
+ onError?: import("..").DatePickerPropOnError | undefined;
10
10
  id?: string | undefined;
11
11
  name?: string | undefined;
12
12
  disabled?: boolean | undefined;