@consta/uikit 5.9.0 → 5.9.2
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.
- package/__internal__/src/components/ChoiceGroup/ChoiceGroup.css +1 -1
- package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js +1 -1
- package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js.map +1 -1
- package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.d.ts +1 -1
- package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js.map +1 -1
- package/__internal__/src/components/Slider/useSlider/useSlider.js +1 -1
- package/__internal__/src/components/Slider/useSlider/useSlider.js.map +1 -1
- package/__internal__/src/components/TextField/TextField.js +1 -1
- package/__internal__/src/components/TextField/TextField.js.map +1 -1
- package/__internal__/src/components/TextField/helpers.d.ts +1 -2
- package/__internal__/src/components/TextField/helpers.js +1 -1
- package/__internal__/src/components/TextField/helpers.js.map +1 -1
- package/__internal__/src/components/Theme/_size/Theme_size_gpnDefault.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
.ChoiceGroup{--choice-group-bg-color:transparent;--choice-group-border-color:var(--color-control-bg-border-default);background-color:var(--choice-group-bg-color);border-radius:var(--choice-radius);box-shadow:inset 0 0 0 var(--control-border-width) var(--choice-group-border-color);display:inline-flex;position:relative}.ChoiceGroup_truncate{max-width:100%}.ChoiceGroup_view_primary{--choice-bg-color:var(--color-control-bg-primary);--choice-text-color:var(--color-control-typo-primary)}.ChoiceGroup_view_ghost{--choice-bg-color:var(--color-control-bg-ghost);--choice-text-color:var(--color-control-typo-ghost)}.ChoiceGroup_view_secondary{--choice-bg-color:var(--color-control-bg-secondary);--choice-text-color:var(--color-control-typo-secondary)}.ChoiceGroup_view_secondary .ChoiceGroup-Label_checked{box-shadow:inset 0 0 0 1px var(--color-control-bg-border-secondary)}.ChoiceGroup_size_xs{--choice-height:var(--control-height-xs);--choice-font-size:var(--control-text-size-xs);--choice-space:var(--control-space-xs);--choice-space-indent:calc(var(--control-space-xs) + var(--space-3xs))}.ChoiceGroup_size_s{--choice-height:var(--control-height-s);--choice-font-size:var(--control-text-size-s);--choice-space:var(--control-space-s);--choice-space-indent:var(--control-space-m)}.ChoiceGroup_size_m{--choice-height:var(--control-height-m);--choice-font-size:var(--control-text-size-m);--choice-space:var(--control-space-m);--choice-space-indent:var(--control-space-l)}.ChoiceGroup_size_l{--choice-height:var(--control-height-l);--choice-font-size:var(--control-text-size-l);--choice-space:var(--control-space-l);--choice-space-indent:calc(var(--control-space-l) + var(--space-2xs))}.ChoiceGroup_form_brick,.ChoiceGroup_form_default{--divider-width:var(--control-border-width);--divider-height:unset;--divider-scale:0.65;--divider-radius:0;--divider-align-self:unset}.ChoiceGroup_form_default{--choice-radius:var(--control-radius)}.ChoiceGroup_form_brick{--choice-radius:0}.ChoiceGroup_form_round{--choice-radius:99em;--divider-width:4px;--divider-height:4px;--divider-scale:1;--divider-radius:99em;--divider-align-self:center}.ChoiceGroup_form_round .ChoiceGroup-Label{padding-left:var(--choice-space-indent);padding-right:var(--choice-space-indent)}.ChoiceGroup-Label{--choice-group-label-color:var(--color-control-typo-default);--choice-group-label-bg-color:transparent;--choice-group-label-bg-left:0;--choice-helper-bg-disabled:transparent;align-items:center;background-color:var(--choice-group-label-bg-color);border-radius:var(--choice-radius);box-sizing:border-box;color:var(--choice-group-label-color);
|
|
1
|
+
.ChoiceGroup{--choice-group-bg-color:transparent;--choice-group-border-color:var(--color-control-bg-border-default);background-color:var(--choice-group-bg-color);border-radius:var(--choice-radius);box-shadow:inset 0 0 0 var(--control-border-width) var(--choice-group-border-color);display:inline-flex;position:relative}.ChoiceGroup_truncate{max-width:100%}.ChoiceGroup_view_primary{--choice-bg-color:var(--color-control-bg-primary);--choice-text-color:var(--color-control-typo-primary)}.ChoiceGroup_view_ghost{--choice-bg-color:var(--color-control-bg-ghost);--choice-text-color:var(--color-control-typo-ghost)}.ChoiceGroup_view_secondary{--choice-bg-color:var(--color-control-bg-secondary);--choice-text-color:var(--color-control-typo-secondary)}.ChoiceGroup_view_secondary .ChoiceGroup-Label_checked{box-shadow:inset 0 0 0 1px var(--color-control-bg-border-secondary)}.ChoiceGroup_size_xs{--choice-height:var(--control-height-xs);--choice-font-size:var(--control-text-size-xs);--choice-space:var(--control-space-xs);--choice-space-indent:calc(var(--control-space-xs) + var(--space-3xs))}.ChoiceGroup_size_s{--choice-height:var(--control-height-s);--choice-font-size:var(--control-text-size-s);--choice-space:var(--control-space-s);--choice-space-indent:var(--control-space-m)}.ChoiceGroup_size_m{--choice-height:var(--control-height-m);--choice-font-size:var(--control-text-size-m);--choice-space:var(--control-space-m);--choice-space-indent:var(--control-space-l)}.ChoiceGroup_size_l{--choice-height:var(--control-height-l);--choice-font-size:var(--control-text-size-l);--choice-space:var(--control-space-l);--choice-space-indent:calc(var(--control-space-l) + var(--space-2xs))}.ChoiceGroup_form_brick,.ChoiceGroup_form_default{--divider-width:var(--control-border-width);--divider-height:unset;--divider-scale:0.65;--divider-radius:0;--divider-align-self:unset}.ChoiceGroup_form_default{--choice-radius:var(--control-radius)}.ChoiceGroup_form_brick{--choice-radius:0}.ChoiceGroup_form_round{--choice-radius:99em;--divider-width:4px;--divider-height:4px;--divider-scale:1;--divider-radius:99em;--divider-align-self:center}.ChoiceGroup_form_round .ChoiceGroup-Label{padding-left:var(--choice-space-indent);padding-right:var(--choice-space-indent)}.ChoiceGroup-Label{--choice-group-label-color:var(--color-control-typo-default);--choice-group-label-bg-color:transparent;--choice-group-label-bg-left:0;--choice-helper-bg-disabled:transparent;align-items:center;background-color:var(--choice-group-label-bg-color);border-radius:var(--choice-radius);box-sizing:border-box;color:var(--choice-group-label-color);display:flex;flex-grow:1;font-size:var(--choice-font-size);font-weight:var(--font-weight-text-regular);height:var(--choice-height);justify-content:center;line-height:calc(var(--choice-height) - var(--control-border-width)*2);overflow:hidden;padding:0 var(--choice-space) 0 var(--choice-space);position:relative;text-decoration:none;transition:background-color .15s ease,box-shadow .15s ease,color .15s ease,fill .15s ease;z-index:0}.ChoiceGroup-Label:after{background-color:var(--choice-helper-bg-disabled);content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:0}.ChoiceGroup-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;position:absolute}.ChoiceGroup-Label:not(.ChoiceGroup-Label_disabled){cursor:pointer}.ChoiceGroup-Label:not(.ChoiceGroup-Label_checked,.ChoiceGroup-Label_disabled):hover{--choice-group-label-color:var(--color-control-typo-secondary-hover)}.ChoiceGroup-Divider{--divider-bg-color:var(--color-control-bg-border-default);align-self:var(--divider-align-self);background-color:var(--divider-bg-color);border-radius:var(--divider-radius);height:var(--divider-height);min-width:var(--divider-width);transform:scaleY(var(--divider-scale));width:var(--divider-width)}.ChoiceGroup-Divider_checked:not(.ChoiceGroup-Divider_disabled){--divider-bg-color:transparent}.ChoiceGroup-Label_checked{--choice-group-label-color:var(--choice-text-color);--choice-group-label-bg-color:var(--choice-bg-color)}.ChoiceGroup-Label_checked:not(.ChoiceGroup-Label_disabled){--divider-bg-color:transparent}.ChoiceGroup-Label_checked:not(.ChoiceGroup-Label_disabled)+.ChoiceGroup-Divider{--divider-bg-color:transparent}.ChoiceGroup-Text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ChoiceGroup:not(.ChoiceGroup_onlyIcon) .ChoiceGroup-Icon{margin-right:calc(var(--choice-space)*.5)}.ChoiceGroup_onlyIcon .ChoiceGroup-Label{justify-content:center;padding:0;width:var(--choice-height)}.ChoiceGroup_width_full{width:100%}.ChoiceGroup-Label_disabled{--choice-group-label-color:var(--color-control-typo-disable);--choice-group-label-bg-color:var(--color-control-bg-disable)}.ChoiceGroup_disabled{--choice-group-bg-color:var(--color-control-bg-disable);--choice-group-border-color:transparent}.ChoiceGroup_disabled .ChoiceGroup-Label_disabled:not(.ChoiceGroup-Label_checked){--choice-group-label-bg-color:transparent}.ChoiceGroup_disabled .ChoiceGroup-Divider{--divider-bg-color:transparent}.ChoiceGroup:not(.ChoiceGroup_disabled) .ChoiceGroup-Label_disabled.ChoiceGroup-Label_checked:after{--choice-helper-bg-disabled:var(--color-control-bg-disable)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","form","view","width","onlyIcon","iconSize","value","multiple","items","getItemLabel","onChange","getItemIcon","getItemAttributes","getItemRef","getItemDisabled","name","className","disabled","truncate"];import"./ChoiceGroup.css";import React,{forwardRef}from"react";import{useChoiceGroup}from"../../hooks/useChoiceGroup";import{cn}from"../../utils/bem";import{getByMap}from"../../utils/getByMap";import{withDefaultGetters}from"./helper";import{ChoiceGroupItem}from"./Item/ChoiceGroup-Item";import{choiceGroupDefaultForm,choiceGroupDefaultSize,choiceGroupDefaultView,choiceGroupWidthDefault}from"./types";var sizeMap={xs:"xs",s:"xs",m:"s",l:"m"};export var cnChoiceGroup=cn("ChoiceGroup");var ChoiceGroupRender=function(a,b){var c=withDefaultGetters(a),d=c.size,e=void 0===d?choiceGroupDefaultSize:d,f=c.form,g=void 0===f?choiceGroupDefaultForm:f,h=c.view,i=void 0===h?choiceGroupDefaultView:h,j=c.width,k=void 0===j?choiceGroupWidthDefault:j,l=c.onlyIcon,m=c.iconSize,n=c.value,o=void 0===n?null:n,p=c.multiple,q=void 0!==p&&p,r=c.items,s=c.getItemLabel,t=c.onChange,u=c.getItemIcon,v=c.getItemAttributes,w=c.getItemRef,x=c.getItemDisabled,y=c.name,z=c.className,A=c.disabled,B=void 0!==A&&A,C=c.truncate,D=_objectWithoutProperties(c,_excluded),E=useChoiceGroup({value:o,getKey:s,callBack:t,multiple:q}),F=E.getOnChange,G=E.getChecked,H=getByMap(sizeMap,e,m);return React.createElement("div",Object.assign({},D,{ref:b,className:cnChoiceGroup({size:e,form:g,view:i,width:k,onlyIcon:l,disabled:B,truncate:C},[z])}),r.map(function(a,b){var c,d=G(a),e
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","form","view","width","onlyIcon","iconSize","value","multiple","items","getItemLabel","onChange","getItemIcon","getItemAttributes","getItemRef","getItemDisabled","name","className","disabled","truncate"];import"./ChoiceGroup.css";import React,{forwardRef}from"react";import{useChoiceGroup}from"../../hooks/useChoiceGroup";import{cn}from"../../utils/bem";import{getByMap}from"../../utils/getByMap";import{withDefaultGetters}from"./helper";import{ChoiceGroupItem}from"./Item/ChoiceGroup-Item";import{choiceGroupDefaultForm,choiceGroupDefaultSize,choiceGroupDefaultView,choiceGroupWidthDefault}from"./types";var sizeMap={xs:"xs",s:"xs",m:"s",l:"m"};export var cnChoiceGroup=cn("ChoiceGroup");var ChoiceGroupRender=function(a,b){var c=withDefaultGetters(a),d=c.size,e=void 0===d?choiceGroupDefaultSize:d,f=c.form,g=void 0===f?choiceGroupDefaultForm:f,h=c.view,i=void 0===h?choiceGroupDefaultView:h,j=c.width,k=void 0===j?choiceGroupWidthDefault:j,l=c.onlyIcon,m=c.iconSize,n=c.value,o=void 0===n?null:n,p=c.multiple,q=void 0!==p&&p,r=c.items,s=c.getItemLabel,t=c.onChange,u=c.getItemIcon,v=c.getItemAttributes,w=c.getItemRef,x=c.getItemDisabled,y=c.name,z=c.className,A=c.disabled,B=void 0!==A&&A,C=c.truncate,D=_objectWithoutProperties(c,_excluded),E=useChoiceGroup({value:o,getKey:s,callBack:t,multiple:q}),F=E.getOnChange,G=E.getChecked,H=getByMap(sizeMap,e,m);return React.createElement("div",Object.assign({},D,{ref:b,className:cnChoiceGroup({size:e,form:g,view:i,width:k,onlyIcon:l,disabled:B,truncate:C},[z])}),r.map(function(a,b){var c,d=G(a),e=null===x||void 0===x?void 0:x(a),f=null!==(c=v(a))&&void 0!==c?c:{},g=s(a).toString();return React.createElement(React.Fragment,{key:g},0<b&&React.createElement("div",{className:cnChoiceGroup("Divider",{checked:d,disabled:e})}),React.createElement(ChoiceGroupItem,Object.assign({onChange:e?void 0:F(a),checked:d,label:g,icon:u&&u(a),iconSize:H,multiple:q,onlyIcon:l,ref:w(a),name:y,disabled:B||e,title:l||C?g:void 0},f)))}))};export var ChoiceGroup=forwardRef(ChoiceGroupRender);export*from"./types";
|
|
2
2
|
//# sourceMappingURL=ChoiceGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceGroup.js","names":["React","forwardRef","useChoiceGroup","cn","getByMap","withDefaultGetters","ChoiceGroupItem","choiceGroupDefaultForm","choiceGroupDefaultSize","choiceGroupDefaultView","choiceGroupWidthDefault","sizeMap","xs","s","m","l","cnChoiceGroup","ChoiceGroupRender","props","ref","size","form","view","width","onlyIcon","iconSizeProp","iconSize","value","multiple","items","getItemLabel","onChange","getItemIcon","getItemAttributes","getItemRef","getItemDisabled","name","className","disabled","truncate","otherProps","getKey","callBack","getOnChange","getChecked","map","item","index","itemChecked","itemDisabled","attributes","label","toString","checked","ChoiceGroup"],"sources":["../../../../../src/components/ChoiceGroup/ChoiceGroup.tsx"],"sourcesContent":["import './ChoiceGroup.css';\n\nimport { IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef } from 'react';\n\nimport { useChoiceGroup } from '##/hooks/useChoiceGroup';\nimport { cn } from '##/utils/bem';\nimport { getByMap } from '##/utils/getByMap';\n\nimport { withDefaultGetters } from './helper';\nimport { ChoiceGroupItem } from './Item/ChoiceGroup-Item';\nimport {\n ChoiceGroupComponent,\n choiceGroupDefaultForm,\n choiceGroupDefaultSize,\n choiceGroupDefaultView,\n ChoiceGroupPropOnChange,\n ChoiceGroupProps,\n ChoiceGroupPropSize,\n choiceGroupWidthDefault,\n} from './types';\n\nconst sizeMap: Record<ChoiceGroupPropSize, IconPropSize> = {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 'm',\n};\n\nexport const cnChoiceGroup = cn('ChoiceGroup');\n\nconst ChoiceGroupRender = (\n props: ChoiceGroupProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n size = choiceGroupDefaultSize,\n form = choiceGroupDefaultForm,\n view = choiceGroupDefaultView,\n width = choiceGroupWidthDefault,\n onlyIcon,\n iconSize: iconSizeProp,\n value = null,\n multiple = false,\n items,\n getItemLabel,\n onChange,\n getItemIcon,\n getItemAttributes,\n getItemRef,\n getItemDisabled,\n name,\n className,\n disabled = false,\n truncate,\n ...otherProps\n } = withDefaultGetters(props);\n\n type Item = typeof items[number];\n\n const { getOnChange, getChecked } = useChoiceGroup<\n Item,\n React.ChangeEvent<HTMLInputElement>\n >({\n value: value as Item,\n getKey: getItemLabel,\n callBack: onChange as ChoiceGroupPropOnChange<Item, false>,\n multiple: multiple as false,\n // привел к типам из-за того что\n // TS не понимает что параметры для не Multiple и Multiple не могут прийти одновременно\n });\n\n const iconSize = getByMap(sizeMap, size, iconSizeProp);\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnChoiceGroup(\n { size, form, view, width, onlyIcon, disabled, truncate },\n [className],\n )}\n >\n {items.map((item, index) => {\n const itemChecked = getChecked(item);\n const itemDisabled =
|
|
1
|
+
{"version":3,"file":"ChoiceGroup.js","names":["React","forwardRef","useChoiceGroup","cn","getByMap","withDefaultGetters","ChoiceGroupItem","choiceGroupDefaultForm","choiceGroupDefaultSize","choiceGroupDefaultView","choiceGroupWidthDefault","sizeMap","xs","s","m","l","cnChoiceGroup","ChoiceGroupRender","props","ref","size","form","view","width","onlyIcon","iconSizeProp","iconSize","value","multiple","items","getItemLabel","onChange","getItemIcon","getItemAttributes","getItemRef","getItemDisabled","name","className","disabled","truncate","otherProps","getKey","callBack","getOnChange","getChecked","map","item","index","itemChecked","itemDisabled","attributes","label","toString","checked","ChoiceGroup"],"sources":["../../../../../src/components/ChoiceGroup/ChoiceGroup.tsx"],"sourcesContent":["import './ChoiceGroup.css';\n\nimport { IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef } from 'react';\n\nimport { useChoiceGroup } from '##/hooks/useChoiceGroup';\nimport { cn } from '##/utils/bem';\nimport { getByMap } from '##/utils/getByMap';\n\nimport { withDefaultGetters } from './helper';\nimport { ChoiceGroupItem } from './Item/ChoiceGroup-Item';\nimport {\n ChoiceGroupComponent,\n choiceGroupDefaultForm,\n choiceGroupDefaultSize,\n choiceGroupDefaultView,\n ChoiceGroupPropOnChange,\n ChoiceGroupProps,\n ChoiceGroupPropSize,\n choiceGroupWidthDefault,\n} from './types';\n\nconst sizeMap: Record<ChoiceGroupPropSize, IconPropSize> = {\n xs: 'xs',\n s: 'xs',\n m: 's',\n l: 'm',\n};\n\nexport const cnChoiceGroup = cn('ChoiceGroup');\n\nconst ChoiceGroupRender = (\n props: ChoiceGroupProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n size = choiceGroupDefaultSize,\n form = choiceGroupDefaultForm,\n view = choiceGroupDefaultView,\n width = choiceGroupWidthDefault,\n onlyIcon,\n iconSize: iconSizeProp,\n value = null,\n multiple = false,\n items,\n getItemLabel,\n onChange,\n getItemIcon,\n getItemAttributes,\n getItemRef,\n getItemDisabled,\n name,\n className,\n disabled = false,\n truncate,\n ...otherProps\n } = withDefaultGetters(props);\n\n type Item = typeof items[number];\n\n const { getOnChange, getChecked } = useChoiceGroup<\n Item,\n React.ChangeEvent<HTMLInputElement>\n >({\n value: value as Item,\n getKey: getItemLabel,\n callBack: onChange as ChoiceGroupPropOnChange<Item, false>,\n multiple: multiple as false,\n // привел к типам из-за того что\n // TS не понимает что параметры для не Multiple и Multiple не могут прийти одновременно\n });\n\n const iconSize = getByMap(sizeMap, size, iconSizeProp);\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnChoiceGroup(\n { size, form, view, width, onlyIcon, disabled, truncate },\n [className],\n )}\n >\n {items.map((item, index) => {\n const itemChecked = getChecked(item);\n const itemDisabled = getItemDisabled?.(item);\n const attributes = getItemAttributes(item) ?? {};\n const label = getItemLabel(item).toString();\n\n return (\n <React.Fragment key={label}>\n {index > 0 && (\n <div\n className={cnChoiceGroup('Divider', {\n checked: itemChecked,\n disabled: itemDisabled,\n })}\n />\n )}\n <ChoiceGroupItem\n onChange={!itemDisabled ? getOnChange(item) : undefined}\n checked={itemChecked}\n label={label}\n icon={getItemIcon && getItemIcon(item)}\n iconSize={iconSize}\n multiple={multiple}\n onlyIcon={onlyIcon}\n ref={getItemRef(item)}\n name={name}\n disabled={disabled || itemDisabled}\n title={onlyIcon || truncate ? label : undefined}\n {...attributes}\n />\n </React.Fragment>\n );\n })}\n </div>\n );\n};\n\nexport const ChoiceGroup = forwardRef(\n ChoiceGroupRender,\n) as ChoiceGroupComponent;\n\nexport * from './types';\n"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export declare const ChoiceGroupItem: React.ForwardRefExoticComponent<{
|
|
|
6
6
|
iconSize?: "s" | "m" | "xs" | "l" | undefined;
|
|
7
7
|
label: string;
|
|
8
8
|
name: string;
|
|
9
|
-
onChange
|
|
9
|
+
onChange?: React.ChangeEventHandler<HTMLInputElement> | undefined;
|
|
10
10
|
checked: boolean;
|
|
11
11
|
multiple: boolean;
|
|
12
12
|
disabled?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceGroup-Item.js","names":["React","forwardRef","useFlag","cnMixFocus","cnChoiceGroup","ChoiceGroupItem","props","ref","label","onChange","checked","multiple","Icon","icon","onlyIcon","name","iconSize","disabled","className","otherProps","focus","setFocus","on","off"],"sources":["../../../../../../src/components/ChoiceGroup/Item/ChoiceGroup-Item.tsx"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef } from 'react';\n\nimport { useFlag } from '##/hooks/useFlag';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { cnMixFocus } from '../../../mixs/MixFocus/MixFocus';\nimport { cnChoiceGroup } from '../ChoiceGroup';\n\ntype Props = PropsWithHTMLAttributes<\n {\n icon?: IconComponent;\n onlyIcon?: boolean;\n iconSize?: IconPropSize;\n label: string;\n name: string;\n onChange
|
|
1
|
+
{"version":3,"file":"ChoiceGroup-Item.js","names":["React","forwardRef","useFlag","cnMixFocus","cnChoiceGroup","ChoiceGroupItem","props","ref","label","onChange","checked","multiple","Icon","icon","onlyIcon","name","iconSize","disabled","className","otherProps","focus","setFocus","on","off"],"sources":["../../../../../../src/components/ChoiceGroup/Item/ChoiceGroup-Item.tsx"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef } from 'react';\n\nimport { useFlag } from '##/hooks/useFlag';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { cnMixFocus } from '../../../mixs/MixFocus/MixFocus';\nimport { cnChoiceGroup } from '../ChoiceGroup';\n\ntype Props = PropsWithHTMLAttributes<\n {\n icon?: IconComponent;\n onlyIcon?: boolean;\n iconSize?: IconPropSize;\n label: string;\n name: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n checked: boolean;\n multiple: boolean;\n disabled?: boolean;\n },\n HTMLLabelElement\n>;\n\nexport const ChoiceGroupItem = forwardRef<HTMLLabelElement, Props>(\n (props, ref) => {\n const {\n label,\n onChange,\n checked,\n multiple,\n icon: Icon,\n onlyIcon,\n name,\n iconSize,\n disabled = false,\n className,\n ...otherProps\n } = props;\n const [focus, setFocus] = useFlag();\n\n return (\n <label\n {...otherProps}\n className={cnChoiceGroup('Label', { focus, checked, disabled }, [\n cnMixFocus(),\n className,\n ])}\n ref={ref}\n >\n <input\n type={multiple ? 'checkbox' : 'radio'}\n className={cnChoiceGroup('Input')}\n checked={checked}\n onFocus={setFocus.on}\n onBlur={setFocus.off}\n value={`${name}-${label}`}\n onChange={onChange}\n name={name}\n disabled={disabled}\n />\n {Icon && <Icon className={cnChoiceGroup('Icon')} size={iconSize} />}\n {!onlyIcon && <span className={cnChoiceGroup('Text')}>{label}</span>}\n </label>\n );\n },\n);\n"],"mappings":"yQACA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,OAAT,8BAGA,OAASC,UAAT,uCACA,OAASC,aAAT,sBAiBA,MAAO,IAAMC,gBAAe,CAAGJ,UAAU,CACvC,SAACK,CAAD,CAAQC,CAAR,CAAgB,IAEZC,EAFY,CAaVF,CAbU,CAEZE,KAFY,CAGZC,CAHY,CAaVH,CAbU,CAGZG,QAHY,CAIZC,CAJY,CAaVJ,CAbU,CAIZI,OAJY,CAKZC,CALY,CAaVL,CAbU,CAKZK,QALY,CAMNC,CANM,CAaVN,CAbU,CAMZO,IANY,CAOZC,CAPY,CAaVR,CAbU,CAOZQ,QAPY,CAQZC,CARY,CAaVT,CAbU,CAQZS,IARY,CASZC,CATY,CAaVV,CAbU,CASZU,QATY,GAaVV,CAbU,CAUZW,QAVY,CAUZA,CAVY,eAWZC,CAXY,CAaVZ,CAbU,CAWZY,SAXY,CAYTC,CAZS,0BAaVb,CAbU,cAcYJ,OAAO,EAdnB,uBAcPkB,CAdO,MAcAC,CAdA,MAgBd,MACE,8CACMF,CADN,EAEE,SAAS,CAAEf,aAAa,CAAC,OAAD,CAAU,CAAEgB,KAAK,CAALA,CAAF,CAASV,OAAO,CAAPA,CAAT,CAAkBO,QAAQ,CAARA,CAAlB,CAAV,CAAwC,CAC9Dd,UAAU,EADoD,CAE9De,CAF8D,CAAxC,CAF1B,CAME,GAAG,CAAEX,CANP,GAQE,6BACE,IAAI,CAAEI,CAAQ,CAAG,UAAH,CAAgB,OADhC,CAEE,SAAS,CAAEP,aAAa,CAAC,OAAD,CAF1B,CAGE,OAAO,CAAEM,CAHX,CAIE,OAAO,CAAEW,CAAQ,CAACC,EAJpB,CAKE,MAAM,CAAED,CAAQ,CAACE,GALnB,CAME,KAAK,WAAKR,CAAL,aAAaP,CAAb,CANP,CAOE,QAAQ,CAAEC,CAPZ,CAQE,IAAI,CAAEM,CARR,CASE,QAAQ,CAAEE,CATZ,EARF,CAmBGL,CAAI,EAAI,oBAAC,CAAD,EAAM,SAAS,CAAER,aAAa,CAAC,MAAD,CAA9B,CAAwC,IAAI,CAAEY,CAA9C,EAnBX,CAoBG,CAACF,CAAD,EAAa,4BAAM,SAAS,CAAEV,aAAa,CAAC,MAAD,CAA9B,EAAyCI,CAAzC,CApBhB,CAuBH,CAzCsC,CAAlC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useComponentSize}from"../../../hooks/useComponentSize/useComponentSize";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{getActiveValue,getNewValue,getValidValue,getValueByPosition,isNotRangeParams,isRangeParams,trackPosition,valueToSring}from"./helper";export var COUNT_STEPS=250;export function useSlider(a){var b=a.disabled,c=a.range,d=a.value,f=a.min,g=a.max,h=a.step,i=void 0===h?1:h,j=a.onChange,k=a.onAfterChange,l=a.sliderRef,m=a.containerRef,n=a.buttonRefs,o=g>f?f:0,p=g>f?g:100,q=useMemo(function(){if(!Array.isArray(i)&&1<=i){var a=Math.abs((p-o)/COUNT_STEPS);return a>i?a-a%i:Math.max(a,i)}return i},[g,f,i]),r=useState(d),s=_slicedToArray(r,2),t=s[0],u=s[1],v=useState(null),w=_slicedToArray(v,2),x=w[0],y=w[1],z=useState(null),A=_slicedToArray(z,2),B=A[0],C=A[1],D=useState(null),E=_slicedToArray(D,2),F=E[0],G=E[1],H=useRef(null),I=useComponentSize(l),J=useMutableRef(t),K=useMutableRef(j),L=useMutableRef(k);useClickOutside({isActive:!0,ignoreClicksInsideRefs:[m],handler:function handler(){G(null),H.current=null}}),useEffect(function(){b&&M("remove")},[b]);var M=function(a){var b="add"===a?"addEventListener":"removeEventListener";document[b]("mouseup",R),document[b]("touchend",R),document[b]("mousemove",Q),document[b]("touchmove",Q)};useEffect(function(){Array.isArray(t)?(O(t[0],0),O(t[1],1)):O(t,0)},[t]),useEffect(function(){valueToSring(d)!==valueToSring(t)&&(
|
|
1
|
+
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useComponentSize}from"../../../hooks/useComponentSize/useComponentSize";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{getActiveValue,getNewValue,getValidValue,getValueByPosition,isNotRangeParams,isRangeParams,trackPosition,valueToSring}from"./helper";export var COUNT_STEPS=250;export function useSlider(a){var b=a.disabled,c=a.range,d=a.value,f=a.min,g=a.max,h=a.step,i=void 0===h?1:h,j=a.onChange,k=a.onAfterChange,l=a.sliderRef,m=a.containerRef,n=a.buttonRefs,o=g>f?f:0,p=g>f?g:100,q=useMemo(function(){if(!Array.isArray(i)&&1<=i){var a=Math.abs((p-o)/COUNT_STEPS);return a>i?a-a%i:Math.max(a,i)}return i},[g,f,i]),r=useState(d),s=_slicedToArray(r,2),t=s[0],u=s[1],v=useState(null),w=_slicedToArray(v,2),x=w[0],y=w[1],z=useState(null),A=_slicedToArray(z,2),B=A[0],C=A[1],D=useState(null),E=_slicedToArray(D,2),F=E[0],G=E[1],H=useRef(null),I=useComponentSize(l),J=useMutableRef(t),K=useMutableRef(j),L=useMutableRef(k);useClickOutside({isActive:!0,ignoreClicksInsideRefs:[m],handler:function handler(){G(null),H.current=null}}),useEffect(function(){b&&M("remove")},[b]);var M=function(a){var b="add"===a?"addEventListener":"removeEventListener";document[b]("mouseup",R),document[b]("touchend",R),document[b]("mousemove",Q),document[b]("touchmove",Q)};useEffect(function(){Array.isArray(t)?(O(t[0],0),O(t[1],1)):O(t,0)},[t]),useEffect(function(){valueToSring(d)!==valueToSring(t)&&(u(d),O(getActiveValue(d,H.current),0),G(null),H.current=null)},[d]),useEffect(function(){var a=Array.isArray(t)?[getNewValue(t[0],t[0],i,f,g,0),getNewValue(t[1],t[1],i,f,g,1)]:getNewValue(t,t,i,f,g,0);if(valueToSring(a)!==valueToSring(t)){var b;null===(b=K.current)||void 0===b?void 0:b.call(K,a,{})}},[i]),useEffect(function(){if("undefined"!=typeof d){var b=isRangeParams(a)?[getValidValue(a.value[0],f,g,i),getValidValue(a.value[1],f,g,i)]:getValidValue(a.value,f,g,i);u(b)}},[c,typeof d]),useEffect(function(){if(isRangeParams(a)&&a.value[0]>a.value[1]){var b,c=[a.value[1],a.value[1]];null===(b=K.current)||void 0===b?void 0:b.call(K,c,{})}},[]);var N=useCallback(function(a,c){if(!b&&"number"==typeof c&&"undefined"!=typeof t){a.preventDefault(),a.stopPropagation();var d=Array.isArray(i)?1:i||1,e=!1,h=getActiveValue(t,c);switch(a.key){case"ArrowUp":case"ArrowRight":case"+":e=!0;break;case"ArrowLeft":case"ArrowDown":case"-":e=!0,d*=-1;break;default:}if(e){var j;Array.isArray(i)&&i.forEach(function(a,b){"number"==typeof c&&h===a&&(0<=d?0===b?d=i[1]-o:d=("undefined"==typeof i[b+1]?p:i[b+1])-a:0===b?d=o-i[1]:d=("undefined"==typeof i[b-1]?o:i[b-1])-a)});var k=getNewValue(h+d,t,i,f,g,c);u(k),O(getActiveValue(k,c),c),null===(j=K.current)||void 0===j?void 0:j.call(K,k,{e:a})}}},[t,i,f,g]),O=function(a,b){if(l.current&&"number"==typeof b){var c=n[b].current||l.current,d=l.current.getBoundingClientRect(),e=d.x,f=d.width,g={y:c.offsetTop+c.offsetHeight+50,x:e+Math.abs((a-o)/(p-o))*f};0===b?y(g):C(g)}},P=function(a){if("number"!=typeof H.current)return d;var b=trackPosition(a),c=getValueByPosition(b,l,o,p,i);return getNewValue(c,t,q,f,g,H.current)},Q=function(a,b){var c=b||H.current;if("number"==typeof c){var d=P(a),e=getActiveValue(t,c),f=getActiveValue(d,c);if(u(d),valueToSring(e)!==valueToSring(f)){var g;null===(g=L.current)||void 0===g?void 0:g.call(L,d,{e:a})}}};useEffect(function(){if(isRangeParams(a)){var b;null===(b=a.value)||void 0===b?void 0:b.forEach(function(a,b){O(getActiveValue(a,H.current),0===b?0:1)})}isNotRangeParams(a)&&O(getActiveValue(d,H.current),0),H.current=null},[I,typeof d]);var R=useCallback(function(b){if(M("remove"),isRangeParams(a)&&Array.isArray(J.current)){var c,d=_toConsumableArray(J.current).sort(function(c,a){return+c-+a});null===(c=K.current)||void 0===c?void 0:c.call(K,d,{e:b})}if(isNotRangeParams(a)&&"number"==typeof J.current){var e;null===(e=K.current)||void 0===e?void 0:e.call(K,J.current,{e:b})}G(null),H.current=null},[d,Q]),S=useCallback(function(a){b||(G(a),H.current=a,M("add"))},[t,d,Q,b]);return{onKeyPress:N,onFocus:function onFocus(a,b){G(b),H.current=b},handlePress:S,onSliderClick:function onSliderClick(b){if(isNotRangeParams(a)){var c=getValueByPosition({x:b.pageX,y:b.pageY},l,o,p,i),e=getNewValue(c,t,q,f,g,H.current);if(e!==d){var h;u(e),O(getActiveValue(e,0),0),null===(h=K.current)||void 0===h?void 0:h.call(K,e,{e:b})}}},activeButton:F,popoverPosition:[x,B],currentValue:Array.isArray(t)?t:[t]}}
|
|
2
2
|
//# sourceMappingURL=useSlider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlider.js","names":["useCallback","useEffect","useMemo","useRef","useState","useClickOutside","useComponentSize","useMutableRef","getActiveValue","getNewValue","getValidValue","getValueByPosition","isNotRangeParams","isRangeParams","trackPosition","valueToSring","COUNT_STEPS","useSlider","props","disabled","range","value","min","max","step","onChange","onAfterChange","sliderRef","containerRef","buttonRefs","minValue","maxValue","dragStepValue","Array","isArray","val","Math","abs","currentValue","setCurrentValue","leftPopover","setLeftPopover","rightPopover","setRightPopover","currentButton","setCurrentButton","activeButton","sizeSlider","currentValueRef","onChangeRef","onAfterChangeRef","isActive","ignoreClicksInsideRefs","handler","current","controlListeners","type","method","document","handleRelease","handleTouchMove","setTooltipPosition","indexOf","newValue","targetValue","onKeyPress","event","typeButton","preventDefault","stopPropagation","stepIncrement","validKeyCode","changedValue","key","forEach","stepPoint","index","e","position","button","getBoundingClientRect","x","width","newPosition","y","offsetTop","offsetHeight","changePosition","positionValue","oldValue","copyValues","sort","a","b","handlePress","onFocus","onSliderClick","pageX","pageY","popoverPosition"],"sources":["../../../../../../src/components/Slider/useSlider/useSlider.ts"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useComponentSize } from '##/hooks/useComponentSize/useComponentSize';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\n\nimport { SliderValue, TrackPosition } from '../helper';\nimport {\n ActiveButton,\n getActiveValue,\n getNewValue,\n getValidValue,\n getValueByPosition,\n isNotRangeParams,\n isRangeParams,\n trackPosition,\n UseSliderProps,\n UseSliderValues,\n valueToSring,\n} from './helper';\n\nexport const COUNT_STEPS = 250;\n\nexport function useSlider<RANGE extends boolean>(\n props: UseSliderProps<RANGE>,\n): UseSliderValues {\n const {\n disabled,\n range,\n value,\n min,\n max,\n step = 1,\n onChange,\n onAfterChange,\n sliderRef,\n containerRef,\n buttonRefs,\n } = props;\n\n const minValue = max > min ? min : 0;\n const maxValue = max > min ? max : 100;\n\n const dragStepValue = useMemo(() => {\n if (!Array.isArray(step)) {\n if (step >= 1) {\n const val = Math.abs((maxValue - minValue) / COUNT_STEPS);\n if (val > step) {\n return val - (val % step);\n }\n return Math.max(val, step);\n }\n }\n return step;\n }, [max, min, step]);\n\n const [currentValue, setCurrentValue] = useState<number | [number, number]>(\n value,\n );\n const [leftPopover, setLeftPopover] = useState<TrackPosition>(null);\n const [rightPopover, setRightPopover] = useState<TrackPosition>(null);\n const [currentButton, setCurrentButton] = useState<ActiveButton | null>(null);\n\n const activeButton: MutableRefObject<ActiveButton | null> = useRef(null);\n\n const sizeSlider = useComponentSize(sliderRef);\n\n const currentValueRef = useMutableRef(currentValue);\n const onChangeRef = useMutableRef(onChange);\n const onAfterChangeRef = useMutableRef(onAfterChange);\n\n useClickOutside({\n isActive: true,\n ignoreClicksInsideRefs: [containerRef],\n handler: () => {\n setCurrentButton(null);\n activeButton.current = null;\n },\n });\n\n useEffect(() => {\n if (disabled) {\n controlListeners('remove');\n }\n }, [disabled]);\n\n const controlListeners = (type: 'add' | 'remove') => {\n const method = type === 'add' ? 'addEventListener' : 'removeEventListener';\n document[method]('mouseup', handleRelease);\n document[method]('touchend', handleRelease);\n document[method]('mousemove', handleTouchMove);\n document[method]('touchmove', handleTouchMove);\n };\n\n useEffect(() => {\n if (Array.isArray(currentValue)) {\n setTooltipPosition(currentValue[0], 0);\n setTooltipPosition(currentValue[1], 1);\n } else {\n setTooltipPosition(currentValue, 0);\n }\n }, [currentValue]);\n\n useEffect(() => {\n if (valueToSring(value) !== valueToSring(currentValue)) {\n if (Array.isArray(value) && Array.isArray(currentValue)) {\n if (\n !(\n currentValue.indexOf(value[0]) !== -1 &&\n currentValue.indexOf(value[1]) !== -1\n )\n ) {\n setCurrentValue(value);\n setTooltipPosition(getActiveValue(value, activeButton.current), 0);\n }\n } else {\n setCurrentValue(value);\n setTooltipPosition(getActiveValue(value, activeButton.current), 0);\n }\n setCurrentButton(null);\n activeButton.current = null;\n }\n }, [value]);\n\n useEffect(() => {\n const newValue = Array.isArray(currentValue)\n ? ([\n getNewValue(currentValue[0], currentValue[0], step, min, max, 0),\n getNewValue(currentValue[1], currentValue[1], step, min, max, 1),\n ] as SliderValue<RANGE>)\n : (getNewValue(\n currentValue,\n currentValue,\n step,\n min,\n max,\n 0,\n ) as SliderValue<RANGE>);\n if (valueToSring(newValue) !== valueToSring(currentValue)) {\n onChangeRef.current?.(newValue, {});\n }\n }, [step]);\n\n useEffect(() => {\n if (typeof value !== 'undefined') {\n const targetValue = isRangeParams(props)\n ? ([\n getValidValue(props.value[0], min, max, step),\n getValidValue(props.value[1], min, max, step),\n ] as [number, number])\n : getValidValue(props.value as number, min, max, step);\n setCurrentValue(targetValue);\n }\n }, [range, typeof value]);\n\n useEffect(() => {\n if (isRangeParams(props) && props.value[0] > props.value[1]) {\n const newValue: SliderValue<true> = [props.value[1], props.value[1]];\n onChangeRef.current?.(newValue as SliderValue<RANGE>, {});\n }\n }, []);\n\n const onSliderClick = (e: React.MouseEvent) => {\n if (isNotRangeParams(props)) {\n const positionValue = getValueByPosition(\n { x: e.pageX, y: e.pageY },\n sliderRef,\n minValue,\n maxValue,\n step,\n );\n const newValue = getNewValue(\n positionValue,\n currentValue,\n dragStepValue,\n min,\n max,\n activeButton.current,\n ) as SliderValue<RANGE>;\n if (newValue !== value) {\n setCurrentValue(newValue);\n setTooltipPosition(getActiveValue(newValue, 0), 0);\n onChangeRef.current?.(newValue, {\n e,\n });\n }\n }\n };\n\n const onKeyPress = useCallback(\n (event: React.KeyboardEvent, typeButton: ActiveButton) => {\n if (\n !disabled &&\n typeof typeButton === 'number' &&\n typeof currentValue !== 'undefined'\n ) {\n event.preventDefault();\n event.stopPropagation();\n let stepIncrement = !Array.isArray(step) ? step || 1 : 1;\n let validKeyCode = false;\n const changedValue = getActiveValue(currentValue, typeButton);\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowRight':\n case '+':\n validKeyCode = true;\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n case '-':\n validKeyCode = true;\n stepIncrement *= -1;\n break;\n default:\n break;\n }\n if (validKeyCode) {\n if (Array.isArray(step)) {\n step.forEach((stepPoint, index) => {\n if (\n typeof typeButton === 'number' &&\n changedValue === stepPoint\n ) {\n if (stepIncrement >= 0) {\n if (index === 0) {\n stepIncrement = step[1] - minValue;\n } else {\n stepIncrement =\n (typeof step[index + 1] !== 'undefined'\n ? step[index + 1]\n : maxValue) - stepPoint;\n }\n } else if (index === 0) {\n stepIncrement = minValue - step[1];\n } else {\n stepIncrement =\n (typeof step[index - 1] !== 'undefined'\n ? step[index - 1]\n : minValue) - stepPoint;\n }\n }\n });\n }\n const newValue = getNewValue(\n changedValue + stepIncrement,\n currentValue,\n step,\n min,\n max,\n typeButton,\n ) as SliderValue<RANGE>;\n setCurrentValue(newValue);\n setTooltipPosition(getActiveValue(newValue, typeButton), typeButton);\n onChangeRef.current?.(newValue, {\n e: event,\n });\n }\n }\n },\n [currentValue, step, min, max],\n );\n\n const setTooltipPosition = (value: number, position: ActiveButton) => {\n if (sliderRef.current && typeof position === 'number') {\n const button = buttonRefs[position].current || sliderRef.current;\n const { x, width } = sliderRef.current.getBoundingClientRect();\n const newPosition = {\n y: button.offsetTop + button.offsetHeight + 50,\n x: x + Math.abs((value - minValue) / (maxValue - minValue)) * width,\n };\n if (position === 0) {\n setLeftPopover(newPosition);\n } else {\n setRightPopover(newPosition);\n }\n }\n };\n\n const changePosition = (event: Event) => {\n const nativeEvent = event as MouseEvent | TouchEvent;\n if (typeof activeButton.current !== 'number') {\n return value;\n }\n const position = trackPosition(nativeEvent);\n const positionValue = getValueByPosition(\n position,\n sliderRef,\n minValue,\n maxValue,\n step,\n );\n return getNewValue(\n positionValue,\n currentValue,\n dragStepValue,\n min,\n max,\n activeButton.current,\n );\n };\n\n const onFocus = (\n e: React.FocusEvent | React.MouseEvent,\n button: ActiveButton,\n ) => {\n setCurrentButton(button);\n activeButton.current = button;\n };\n\n const handleTouchMove = (\n event: MouseEvent | TouchEvent | Event,\n typeButton?: ActiveButton,\n ) => {\n const button = typeButton || activeButton.current;\n if (typeof button === 'number') {\n const position = changePosition(event) as SliderValue<RANGE>;\n const oldValue: number = getActiveValue(currentValue, button);\n const newValue: number = getActiveValue(position, button);\n setCurrentValue(position);\n if (valueToSring(oldValue) !== valueToSring(newValue)) {\n onAfterChangeRef.current?.(position, { e: event });\n }\n }\n };\n\n useEffect(() => {\n if (isRangeParams(props)) {\n props.value?.forEach((val, index) => {\n setTooltipPosition(\n getActiveValue(val, activeButton.current),\n index === 0 ? 0 : 1,\n );\n });\n }\n if (isNotRangeParams(props)) {\n setTooltipPosition(getActiveValue(value, activeButton.current), 0);\n }\n activeButton.current = null;\n }, [sizeSlider, typeof value]);\n\n const handleRelease = useCallback(\n (e: MouseEvent | TouchEvent | Event) => {\n controlListeners('remove');\n if (isRangeParams(props) && Array.isArray(currentValueRef.current)) {\n const copyValues = [...currentValueRef.current].sort(\n (a, b) => Number(a) - Number(b),\n ) as SliderValue<true>;\n onChangeRef.current?.(copyValues as SliderValue<RANGE>, { e });\n }\n if (\n isNotRangeParams(props) &&\n typeof currentValueRef.current === 'number'\n ) {\n onChangeRef.current?.(currentValueRef.current as SliderValue<RANGE>, {\n e,\n });\n }\n setCurrentButton(null);\n activeButton.current = null;\n },\n [value, handleTouchMove],\n );\n\n const handlePress = useCallback(\n (typeButton: ActiveButton) => {\n if (!disabled) {\n setCurrentButton(typeButton);\n activeButton.current = typeButton;\n controlListeners('add');\n }\n },\n [currentValue, value, handleTouchMove, disabled],\n );\n\n return {\n onKeyPress,\n onFocus,\n handlePress,\n onSliderClick,\n activeButton: currentButton,\n popoverPosition: [leftPopover, rightPopover],\n currentValue: Array.isArray(currentValue) ? currentValue : [currentValue],\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSlider.js","names":["useCallback","useEffect","useMemo","useRef","useState","useClickOutside","useComponentSize","useMutableRef","getActiveValue","getNewValue","getValidValue","getValueByPosition","isNotRangeParams","isRangeParams","trackPosition","valueToSring","COUNT_STEPS","useSlider","props","disabled","range","value","min","max","step","onChange","onAfterChange","sliderRef","containerRef","buttonRefs","minValue","maxValue","dragStepValue","Array","isArray","val","Math","abs","currentValue","setCurrentValue","leftPopover","setLeftPopover","rightPopover","setRightPopover","currentButton","setCurrentButton","activeButton","sizeSlider","currentValueRef","onChangeRef","onAfterChangeRef","isActive","ignoreClicksInsideRefs","handler","current","controlListeners","type","method","document","handleRelease","handleTouchMove","setTooltipPosition","newValue","targetValue","onKeyPress","event","typeButton","preventDefault","stopPropagation","stepIncrement","validKeyCode","changedValue","key","forEach","stepPoint","index","e","position","button","getBoundingClientRect","x","width","newPosition","y","offsetTop","offsetHeight","changePosition","positionValue","oldValue","copyValues","sort","a","b","handlePress","onFocus","onSliderClick","pageX","pageY","popoverPosition"],"sources":["../../../../../../src/components/Slider/useSlider/useSlider.ts"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useComponentSize } from '##/hooks/useComponentSize/useComponentSize';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\n\nimport { SliderValue, TrackPosition } from '../helper';\nimport {\n ActiveButton,\n getActiveValue,\n getNewValue,\n getValidValue,\n getValueByPosition,\n isNotRangeParams,\n isRangeParams,\n trackPosition,\n UseSliderProps,\n UseSliderValues,\n valueToSring,\n} from './helper';\n\nexport const COUNT_STEPS = 250;\n\nexport function useSlider<RANGE extends boolean>(\n props: UseSliderProps<RANGE>,\n): UseSliderValues {\n const {\n disabled,\n range,\n value,\n min,\n max,\n step = 1,\n onChange,\n onAfterChange,\n sliderRef,\n containerRef,\n buttonRefs,\n } = props;\n\n const minValue = max > min ? min : 0;\n const maxValue = max > min ? max : 100;\n\n const dragStepValue = useMemo(() => {\n if (!Array.isArray(step)) {\n if (step >= 1) {\n const val = Math.abs((maxValue - minValue) / COUNT_STEPS);\n if (val > step) {\n return val - (val % step);\n }\n return Math.max(val, step);\n }\n }\n return step;\n }, [max, min, step]);\n\n const [currentValue, setCurrentValue] = useState<number | [number, number]>(\n value,\n );\n const [leftPopover, setLeftPopover] = useState<TrackPosition>(null);\n const [rightPopover, setRightPopover] = useState<TrackPosition>(null);\n const [currentButton, setCurrentButton] = useState<ActiveButton | null>(null);\n\n const activeButton: MutableRefObject<ActiveButton | null> = useRef(null);\n\n const sizeSlider = useComponentSize(sliderRef);\n\n const currentValueRef = useMutableRef(currentValue);\n const onChangeRef = useMutableRef(onChange);\n const onAfterChangeRef = useMutableRef(onAfterChange);\n\n useClickOutside({\n isActive: true,\n ignoreClicksInsideRefs: [containerRef],\n handler: () => {\n setCurrentButton(null);\n activeButton.current = null;\n },\n });\n\n useEffect(() => {\n if (disabled) {\n controlListeners('remove');\n }\n }, [disabled]);\n\n const controlListeners = (type: 'add' | 'remove') => {\n const method = type === 'add' ? 'addEventListener' : 'removeEventListener';\n document[method]('mouseup', handleRelease);\n document[method]('touchend', handleRelease);\n document[method]('mousemove', handleTouchMove);\n document[method]('touchmove', handleTouchMove);\n };\n\n useEffect(() => {\n if (Array.isArray(currentValue)) {\n setTooltipPosition(currentValue[0], 0);\n setTooltipPosition(currentValue[1], 1);\n } else {\n setTooltipPosition(currentValue, 0);\n }\n }, [currentValue]);\n\n useEffect(() => {\n if (valueToSring(value) !== valueToSring(currentValue)) {\n setCurrentValue(value);\n setTooltipPosition(getActiveValue(value, activeButton.current), 0);\n setCurrentButton(null);\n activeButton.current = null;\n }\n }, [value]);\n\n useEffect(() => {\n const newValue = Array.isArray(currentValue)\n ? ([\n getNewValue(currentValue[0], currentValue[0], step, min, max, 0),\n getNewValue(currentValue[1], currentValue[1], step, min, max, 1),\n ] as SliderValue<RANGE>)\n : (getNewValue(\n currentValue,\n currentValue,\n step,\n min,\n max,\n 0,\n ) as SliderValue<RANGE>);\n if (valueToSring(newValue) !== valueToSring(currentValue)) {\n onChangeRef.current?.(newValue, {});\n }\n }, [step]);\n\n useEffect(() => {\n if (typeof value !== 'undefined') {\n const targetValue = isRangeParams(props)\n ? ([\n getValidValue(props.value[0], min, max, step),\n getValidValue(props.value[1], min, max, step),\n ] as [number, number])\n : getValidValue(props.value as number, min, max, step);\n\n setCurrentValue(targetValue);\n }\n }, [range, typeof value]);\n\n useEffect(() => {\n if (isRangeParams(props) && props.value[0] > props.value[1]) {\n const newValue: SliderValue<true> = [props.value[1], props.value[1]];\n onChangeRef.current?.(newValue as SliderValue<RANGE>, {});\n }\n }, []);\n\n const onSliderClick = (e: React.MouseEvent) => {\n if (isNotRangeParams(props)) {\n const positionValue = getValueByPosition(\n { x: e.pageX, y: e.pageY },\n sliderRef,\n minValue,\n maxValue,\n step,\n );\n const newValue = getNewValue(\n positionValue,\n currentValue,\n dragStepValue,\n min,\n max,\n activeButton.current,\n ) as SliderValue<RANGE>;\n if (newValue !== value) {\n setCurrentValue(newValue);\n setTooltipPosition(getActiveValue(newValue, 0), 0);\n onChangeRef.current?.(newValue, {\n e,\n });\n }\n }\n };\n\n const onKeyPress = useCallback(\n (event: React.KeyboardEvent, typeButton: ActiveButton) => {\n if (\n !disabled &&\n typeof typeButton === 'number' &&\n typeof currentValue !== 'undefined'\n ) {\n event.preventDefault();\n event.stopPropagation();\n let stepIncrement = !Array.isArray(step) ? step || 1 : 1;\n let validKeyCode = false;\n const changedValue = getActiveValue(currentValue, typeButton);\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowRight':\n case '+':\n validKeyCode = true;\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n case '-':\n validKeyCode = true;\n stepIncrement *= -1;\n break;\n default:\n break;\n }\n if (validKeyCode) {\n if (Array.isArray(step)) {\n step.forEach((stepPoint, index) => {\n if (\n typeof typeButton === 'number' &&\n changedValue === stepPoint\n ) {\n if (stepIncrement >= 0) {\n if (index === 0) {\n stepIncrement = step[1] - minValue;\n } else {\n stepIncrement =\n (typeof step[index + 1] !== 'undefined'\n ? step[index + 1]\n : maxValue) - stepPoint;\n }\n } else if (index === 0) {\n stepIncrement = minValue - step[1];\n } else {\n stepIncrement =\n (typeof step[index - 1] !== 'undefined'\n ? step[index - 1]\n : minValue) - stepPoint;\n }\n }\n });\n }\n const newValue = getNewValue(\n changedValue + stepIncrement,\n currentValue,\n step,\n min,\n max,\n typeButton,\n ) as SliderValue<RANGE>;\n\n setCurrentValue(newValue);\n setTooltipPosition(getActiveValue(newValue, typeButton), typeButton);\n onChangeRef.current?.(newValue, {\n e: event,\n });\n }\n }\n },\n [currentValue, step, min, max],\n );\n\n const setTooltipPosition = (value: number, position: ActiveButton) => {\n if (sliderRef.current && typeof position === 'number') {\n const button = buttonRefs[position].current || sliderRef.current;\n const { x, width } = sliderRef.current.getBoundingClientRect();\n const newPosition = {\n y: button.offsetTop + button.offsetHeight + 50,\n x: x + Math.abs((value - minValue) / (maxValue - minValue)) * width,\n };\n if (position === 0) {\n setLeftPopover(newPosition);\n } else {\n setRightPopover(newPosition);\n }\n }\n };\n\n const changePosition = (event: Event) => {\n const nativeEvent = event as MouseEvent | TouchEvent;\n if (typeof activeButton.current !== 'number') {\n return value;\n }\n const position = trackPosition(nativeEvent);\n const positionValue = getValueByPosition(\n position,\n sliderRef,\n minValue,\n maxValue,\n step,\n );\n return getNewValue(\n positionValue,\n currentValue,\n dragStepValue,\n min,\n max,\n activeButton.current,\n );\n };\n\n const onFocus = (\n e: React.FocusEvent | React.MouseEvent,\n button: ActiveButton,\n ) => {\n setCurrentButton(button);\n activeButton.current = button;\n };\n\n const handleTouchMove = (\n event: MouseEvent | TouchEvent | Event,\n typeButton?: ActiveButton,\n ) => {\n const button = typeButton || activeButton.current;\n if (typeof button === 'number') {\n const position = changePosition(event) as SliderValue<RANGE>;\n const oldValue: number = getActiveValue(currentValue, button);\n const newValue: number = getActiveValue(position, button);\n setCurrentValue(position);\n if (valueToSring(oldValue) !== valueToSring(newValue)) {\n onAfterChangeRef.current?.(position, { e: event });\n }\n }\n };\n\n useEffect(() => {\n if (isRangeParams(props)) {\n props.value?.forEach((val, index) => {\n setTooltipPosition(\n getActiveValue(val, activeButton.current),\n index === 0 ? 0 : 1,\n );\n });\n }\n if (isNotRangeParams(props)) {\n setTooltipPosition(getActiveValue(value, activeButton.current), 0);\n }\n activeButton.current = null;\n }, [sizeSlider, typeof value]);\n\n const handleRelease = useCallback(\n (e: MouseEvent | TouchEvent | Event) => {\n controlListeners('remove');\n if (isRangeParams(props) && Array.isArray(currentValueRef.current)) {\n const copyValues = [...currentValueRef.current].sort(\n (a, b) => Number(a) - Number(b),\n ) as SliderValue<true>;\n onChangeRef.current?.(copyValues as SliderValue<RANGE>, { e });\n }\n if (\n isNotRangeParams(props) &&\n typeof currentValueRef.current === 'number'\n ) {\n onChangeRef.current?.(currentValueRef.current as SliderValue<RANGE>, {\n e,\n });\n }\n setCurrentButton(null);\n activeButton.current = null;\n },\n [value, handleTouchMove],\n );\n\n const handlePress = useCallback(\n (typeButton: ActiveButton) => {\n if (!disabled) {\n setCurrentButton(typeButton);\n activeButton.current = typeButton;\n controlListeners('add');\n }\n },\n [currentValue, value, handleTouchMove, disabled],\n );\n\n return {\n onKeyPress,\n onFocus,\n handlePress,\n onSliderClick,\n activeButton: currentButton,\n popoverPosition: [leftPopover, rightPopover],\n currentValue: Array.isArray(currentValue) ? currentValue : [currentValue],\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","type","value","defaultValue","onChange","id","name","rows","cols","minRows","maxRows","inputRef","maxLength","disabled","size","view","form","state","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSize","focused","onClick","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onClear"];import"./TextField.css";import{IconClear}from"@consta/icons/IconClear";import{IconEye}from"@consta/icons/IconEye";import{IconEyeClose}from"@consta/icons/IconEyeClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useCallback,useEffect}from"react";import TextAreaAutoSize from"react-textarea-autosize";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption/FieldCaption";import{FieldLabel}from"../FieldLabel/FieldLabel";import{useFlag}from"../../hooks/useFlag/useFlag";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useMutableRef}from"../../hooks/useMutableRef/useMutableRef";import{useSortSteps}from"../../hooks/useSortSteps/useSortSteps";import{cn}from"../../utils/bem";import{getByMap}from"../../utils/getByMap";import{isString}from"../../utils/type-guards";import{
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","type","value","defaultValue","onChange","id","name","rows","cols","minRows","maxRows","inputRef","maxLength","disabled","size","view","form","state","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSize","focused","onClick","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onClear"];import"./TextField.css";import{IconClear}from"@consta/icons/IconClear";import{IconEye}from"@consta/icons/IconEye";import{IconEyeClose}from"@consta/icons/IconEyeClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useCallback,useEffect}from"react";import TextAreaAutoSize from"react-textarea-autosize";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption/FieldCaption";import{FieldLabel}from"../FieldLabel/FieldLabel";import{useFlag}from"../../hooks/useFlag/useFlag";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useKeys}from"../../hooks/useKeys";import{useMutableRef}from"../../hooks/useMutableRef/useMutableRef";import{useSortSteps}from"../../hooks/useSortSteps/useSortSteps";import{cn}from"../../utils/bem";import{getByMap}from"../../utils/getByMap";import{isString}from"../../utils/type-guards";import{getTypeForRender,getValueByStep,inputValue,sizeMap,stepIsActive}from"./helpers";import{textFieldPropFormDefault,textFieldPropSizeDefault,textFieldPropViewDefault}from"./types";export var COMPONENT_NAME="TextField";export var cnTextField=cn("TextField");export var TextFieldRender=function(a,b){var c,d,e=React.useRef(null),f=React.useRef(null),g=usePropsHandler(COMPONENT_NAME,a,e),h=g.className,i=g.type,j=void 0===i?"text":i,k=g.value,l=g.defaultValue,m=g.onChange,n=g.id,o=g.name,p=g.rows,q=g.cols,r=g.minRows,s=g.maxRows,t=g.inputRef,u=g.maxLength,v=g.disabled,w=g.size,x=void 0===w?textFieldPropSizeDefault:w,y=g.view,z=void 0===y?textFieldPropViewDefault:y,A=g.form,B=void 0===A?textFieldPropFormDefault:A,C=g.state,D=g.status,E=g.onBlur,F=g.onFocus,G=g.autoFocus,H=void 0!==G&&G,I=g.placeholder,J=g.leftSide,K=g.rightSide,L=g.autoComplete,M=g.withClearButton,N=g.incrementButtons,O=g.max,P=g.min,Q=g.readOnly,R=g.required,S=g.step,T=void 0===S?1:S,U=g.tabIndex,V=g.ariaLabel,W=g.label,X=g.labelIcon,Y=g.inputContainerRef,Z=g.labelPosition,$=void 0===Z?"top":Z,_=g.caption,aa=g.iconSize,ba=g.focused,ca=g.onClick,da=g.onKeyDown,ea=g.onKeyDownCapture,fa=g.onKeyPress,ga=g.onKeyPressCapture,ha=g.onKeyUp,ia=g.onKeyUpCapture,ja=g.onClear,ka=_objectWithoutProperties(g,_excluded),la="number"===j&&(void 0===N||N),ma=useFlag(H),na=_slicedToArray(ma,2),oa=na[0],pa=na[1],qa=useFlag(),ra=_slicedToArray(qa,2),sa=ra[0],ta=ra[1],ua=useFlag(),va=_slicedToArray(ua,2),wa=va[0],xa=va[1],ya=useMutableRef(ca),za=useMutableRef(m),Aa=useCallback(function(a){var b;a.stopPropagation(),ta.toggle(),null===(b=f.current)||void 0===b?void 0:b.focus()},[]),Ba=J,Ca=K,Da=isString(J),Ea=isString(K),Fa=getByMap(sizeMap,x,aa),Ga=useSortSteps({step:T,min:+P,max:+O}),Ha=useCallback(function(a){var b;v||(null===(b=za.current)||void 0===b?void 0:b.call(za,a.target.value||null,{e:a,id:n,name:o})),a.target.value?xa.on():xa.off()},[n,o,v]),Ia=function(a){pa.on(),null===F||void 0===F?void 0:F(a)},Ja={className:cnTextField("Input"),value:inputValue(k),defaultValue:inputValue(l),onChange:Ha,maxLength:u,disabled:v,onBlur:function handleBlur(a){pa.off(),null===E||void 0===E?void 0:E(a)},onFocus:Ia,autoFocus:H,placeholder:I,autoComplete:L,readOnly:Q,tabIndex:U,name:o,onKeyDownCapture:ea,onKeyPress:fa,onKeyPressCapture:ga,onKeyUp:ha,onKeyUpCapture:ia,id:n?n.toString():void 0,"aria-label":V},Ka=sa?IconEyeClose:IconEye,La=useKeys({isActive:!0,keys:{ArrowUp:function ArrowUp(a){if(a.preventDefault(),stepIsActive(T,j,v)){var b,c,d=getValueByStep(Ga,null===(b=f.current)||void 0===b?void 0:b.value,!0,P,O);null===(c=za.current)||void 0===c?void 0:c.call(za,d,{e:a,id:n,name:o}),f.current&&(f.current.value=d,xa.on())}},ArrowDown:function ArrowDown(a){if(a.preventDefault(),stepIsActive(T,j,v)){var b,c,d=getValueByStep(Ga,null===(b=f.current)||void 0===b?void 0:b.value,!1,P,O);null===(c=za.current)||void 0===c?void 0:c.call(za,d,{e:a,id:n,name:o}),f.current&&(f.current.value=d,xa.on())}}},onEvent:da}),Ma={rows:p,cols:q,minRows:r||p,maxRows:s||p,ref:useForkRef([f,t])},Na={type:getTypeForRender(j,sa),max:O,min:P,step:Array.isArray(Ga)?0:Ga,onKeyDown:La,ref:useForkRef([f,t])},Oa=useCallback(function(a){var b;null===(b=za.current)||void 0===b?void 0:b.call(za,null,{e:a,id:n,name:o}),f.current&&(f.current.value="",xa.off())},[]),Pa=function(a){var b,c,d=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],e=getValueByStep(Ga,null===(b=f.current)||void 0===b?void 0:b.value,d,P,O);null===(c=za.current)||void 0===c?void 0:c.call(za,e,{e:a,id:n,name:o}),f.current&&(f.current.value=e,xa.on())},Qa={onClick:useCallback(function(a){var b,c;null===(b=f.current)||void 0===b?void 0:b.focus(),null===(c=ya.current)||void 0===c?void 0:c.call(ya,a)},[])};return useEffect(function(){var a;xa[null!==(a=f.current)&&void 0!==a&&a.value?"on":"off"]()},[null===(c=f.current)||void 0===c?void 0:c.value]),React.createElement("div",Object.assign({className:cnTextField({labelPosition:$,size:x,view:z},[h]),ref:useForkRef([b,e])},Qa,ka),W&&React.createElement(FieldLabel,{as:"label",htmlFor:null===n||void 0===n?void 0:n.toString(),icon:X,required:R,className:cnTextField("Label",{labelPosition:$}),size:x},W),React.createElement("div",{className:cnTextField("Body")},React.createElement("div",{ref:Y,className:cnTextField("InputContainer",{view:z,form:B,status:D||C,disabled:v,type:j,focus:oa||ba,withValue:wa,incrementButtons:"number"===j&&la})},Ba&&React.createElement("div",{className:cnTextField("Side",{position:"left",type:Da?"string":"icon"}),title:"string"==typeof J?J:void 0},Da?J:React.createElement(Ba,{className:cnTextField("Icon"),size:Fa})),"textarea"===j?React.createElement(TextAreaAutoSize,Object.assign({},Ja,Ma)):React.createElement("input",Object.assign({},Ja,Na)),la&&stepIsActive(T,j,v)&&React.createElement("div",{className:cnTextField("Counter")},React.createElement("button",{className:cnTextField("CounterButton",{fn:"increment"}),onFocus:Ia,onClick:function(a){return Pa(a,!0)},type:"button"},React.createElement(IconSelect,{size:"xs"})),React.createElement("button",{className:cnTextField("CounterButton"),onFocus:Ia,onClick:function(a){return Pa(a,!1)},type:"button"},React.createElement(IconSelect,{size:"xs"}))),!la&&wa&&M&&!v&&React.createElement("button",{type:"button",disabled:v,tabIndex:-1,onClick:ja||Oa,className:cnTextField("ClearButton")},React.createElement(IconClear,{size:sizeMap[x],className:cnTextField("ClearButtonIcon")})),"password"===j&&(null===(d=f.current)||void 0===d?void 0:d.value)&&React.createElement("button",{className:cnTextField("ClearButton"),type:"button",onClick:Aa},React.createElement(Ka,{className:cnTextField("Icon"),size:Fa})),Ca&&!la&&"password"!==j&&React.createElement("div",{className:cnTextField("Side",{position:"right",type:Ea?"string":"icon"}),title:"string"==typeof K?K:void 0},Ea?K:React.createElement(Ca,{className:cnTextField("Icon"),size:Fa}))),_&&React.createElement(FieldCaption,{className:cnTextField("Caption"),status:D||C},_)))};export var TextField=forwardRef(TextFieldRender);export*from"./types";
|
|
2
2
|
//# sourceMappingURL=TextField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","names":["IconClear","IconEye","IconEyeClose","IconSelect","React","forwardRef","useCallback","useEffect","TextAreaAutoSize","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useMutableRef","useSortSteps","cn","getByMap","isString","getIncrementFlag","getTypeForRender","getValueByStep","inputValue","sizeMap","textFieldPropFormDefault","textFieldPropSizeDefault","textFieldPropViewDefault","COMPONENT_NAME","cnTextField","TextFieldRender","props","ref","textFieldRef","useRef","inputRef","className","type","value","defaultValue","onChange","id","name","rows","cols","minRows","maxRows","inputRefProp","maxLength","disabled","size","view","form","state","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSizeProp","iconSize","focused","onClick","onKeyDownProp","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onClear","otherProps","focus","setFocus","passwordVisible","setPasswordVisuble","withValue","setWithValue","onClickRef","onChangeRef","handleEyeClick","e","stopPropagation","toggle","current","LeftIcon","RightIcon","leftSideIsString","rightSideIsString","sortedSteps","handleChange","target","on","off","handleFocus","commonProps","handleBlur","toString","Eye","textareaProps","inputProps","Array","isArray","flag","preventDefault","newValue","handleClear","changeNumberValue","isIncrement","rootProps","position","fn","TextField"],"sources":["../../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import './TextField.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconEye } from '@consta/icons/IconEye';\nimport { IconEyeClose } from '@consta/icons/IconEyeClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useCallback, useEffect } from 'react';\nimport TextAreaAutoSize from 'react-textarea-autosize';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef/useForkRef';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { useSortSteps } from '##/hooks/useSortSteps/useSortSteps';\nimport { cn } from '##/utils/bem';\nimport { getByMap } from '##/utils/getByMap';\nimport { isString } from '##/utils/type-guards';\n\nimport {\n getIncrementFlag,\n getTypeForRender,\n getValueByStep,\n inputValue,\n sizeMap,\n} from './helpers';\nimport {\n TextFieldComponent,\n textFieldPropFormDefault,\n TextFieldProps,\n textFieldPropSizeDefault,\n textFieldPropViewDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'TextField' as const;\nexport const cnTextField = cn(COMPONENT_NAME);\n\nexport const TextFieldRender = <TYPE extends string>(\n props: TextFieldProps<TYPE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const textFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\n const {\n className,\n type = 'text',\n value,\n defaultValue,\n onChange,\n id,\n name,\n rows,\n cols,\n minRows,\n maxRows,\n inputRef: inputRefProp,\n maxLength,\n disabled,\n size = textFieldPropSizeDefault,\n view = textFieldPropViewDefault,\n form = textFieldPropFormDefault,\n state,\n status,\n onBlur,\n onFocus,\n autoFocus = false,\n placeholder,\n leftSide,\n rightSide,\n autoComplete,\n withClearButton,\n incrementButtons: incrementButtonsProp = true,\n max,\n min,\n readOnly,\n required,\n step = 1,\n tabIndex,\n ariaLabel,\n label,\n labelIcon,\n inputContainerRef,\n labelPosition = 'top',\n caption,\n iconSize: iconSizeProp,\n focused,\n onClick,\n // onkey props\n onKeyDown: onKeyDownProp,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n onClear,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, textFieldRef);\n\n const incrementButtons = type === 'number' ? incrementButtonsProp : false;\n\n const [focus, setFocus] = useFlag(autoFocus);\n const [passwordVisible, setPasswordVisuble] = useFlag();\n const [withValue, setWithValue] = useFlag();\n\n const onClickRef = useMutableRef(onClick);\n const onChangeRef = useMutableRef(onChange);\n\n const handleEyeClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n e.stopPropagation();\n setPasswordVisuble.toggle();\n inputRef.current?.focus();\n },\n [],\n );\n\n const textarea = type === 'textarea';\n const LeftIcon = leftSide;\n const RightIcon = rightSide;\n const leftSideIsString = isString(leftSide);\n const rightSideIsString = isString(rightSide);\n const iconSize = getByMap(sizeMap, size, iconSizeProp);\n\n const sortedSteps = useSortSteps({\n step,\n min: Number(min),\n max: Number(max),\n });\n\n const handleChange: React.ChangeEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n > = useCallback(\n (e) => {\n !disabled &&\n onChangeRef.current?.(e.target.value || null, {\n e,\n id,\n name,\n });\n\n if (e.target.value) {\n setWithValue.on();\n } else {\n setWithValue.off();\n }\n },\n [id, name, disabled],\n );\n\n const handleBlur: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.off();\n onBlur?.(e);\n };\n\n const handleFocus: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.on();\n onFocus?.(e);\n };\n\n const commonProps = {\n 'className': cnTextField('Input'),\n 'value': inputValue(value),\n 'defaultValue': inputValue(defaultValue),\n 'onChange': handleChange,\n maxLength,\n disabled,\n 'onBlur': handleBlur,\n 'onFocus': handleFocus,\n autoFocus,\n placeholder,\n autoComplete,\n readOnly,\n tabIndex,\n name,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n 'id': id ? id.toString() : undefined,\n 'aria-label': ariaLabel,\n };\n\n const Eye = passwordVisible ? IconEyeClose : IconEye;\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n const flag = getIncrementFlag(e);\n onKeyDownProp?.(e);\n if (type === 'number' && typeof flag === 'boolean' && !disabled) {\n e.preventDefault();\n\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n flag,\n min,\n max,\n );\n\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n }\n };\n\n const textareaProps = {\n rows,\n cols,\n minRows: minRows || rows,\n maxRows: maxRows || rows,\n ref: useForkRef([inputRef, inputRefProp]) as (\n node: HTMLTextAreaElement,\n ) => void,\n };\n\n const inputProps = {\n type: getTypeForRender(type, passwordVisible),\n max,\n min,\n step: !Array.isArray(sortedSteps) ? sortedSteps : 0,\n onKeyDown,\n ref: useForkRef([\n inputRef,\n inputRefProp,\n ]) as React.RefCallback<HTMLInputElement>,\n };\n\n const handleClear = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n onChangeRef.current?.(null, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = '';\n setWithValue.off();\n }\n }, []);\n\n const changeNumberValue = (\n e: React.MouseEvent<HTMLButtonElement>,\n isIncrement = true,\n ) => {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n isIncrement,\n min,\n max,\n );\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n };\n\n const rootProps = {\n onClick: useCallback((e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n inputRef.current?.focus();\n onClickRef.current?.(e);\n }, []),\n };\n\n useEffect(() => {\n setWithValue[inputRef.current?.value ? 'on' : 'off']();\n }, [inputRef.current?.value]);\n\n return (\n <div\n className={cnTextField({ labelPosition, size, view }, [className])}\n ref={useForkRef([ref, textFieldRef])}\n {...rootProps}\n {...otherProps}\n >\n {label && (\n <FieldLabel\n as=\"label\"\n htmlFor={id?.toString()}\n icon={labelIcon}\n required={required}\n className={cnTextField('Label', { labelPosition })}\n size={size}\n >\n {label}\n </FieldLabel>\n )}\n <div className={cnTextField('Body')}>\n <div\n ref={inputContainerRef}\n className={cnTextField('InputContainer', {\n view,\n form,\n status: status || state,\n disabled,\n type,\n focus: focus || focused,\n withValue,\n incrementButtons: type === 'number' && incrementButtons,\n })}\n >\n {LeftIcon && (\n <div\n className={cnTextField('Side', {\n position: 'left',\n type: leftSideIsString ? 'string' : 'icon',\n })}\n title={typeof leftSide === 'string' ? leftSide : undefined}\n >\n {leftSideIsString ? (\n leftSide\n ) : (\n <LeftIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n {textarea ? (\n <TextAreaAutoSize {...commonProps} {...textareaProps} />\n ) : (\n <input {...commonProps} {...inputProps} />\n )}\n\n {incrementButtons && !disabled && (\n <div className={cnTextField('Counter')}>\n <button\n className={cnTextField('CounterButton', { fn: 'increment' })}\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, true)}\n type=\"button\"\n >\n <IconSelect size=\"xs\" />\n </button>\n <button\n className={cnTextField('CounterButton')}\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, false)}\n type=\"button\"\n >\n <IconSelect size=\"xs\" />\n </button>\n </div>\n )}\n\n {!incrementButtons && withValue && withClearButton && !disabled && (\n <button\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n onClick={onClear || handleClear}\n className={cnTextField('ClearButton')}\n >\n <IconClear\n size={sizeMap[size]}\n className={cnTextField('ClearButtonIcon')}\n />\n </button>\n )}\n\n {type === 'password' && inputRef.current?.value && (\n <button\n className={cnTextField('ClearButton')}\n type=\"button\"\n onClick={handleEyeClick}\n >\n <Eye className={cnTextField('Icon')} size={iconSize} />\n </button>\n )}\n\n {RightIcon && !incrementButtons && type !== 'password' && (\n <div\n className={cnTextField('Side', {\n position: 'right',\n type: rightSideIsString ? 'string' : 'icon',\n })}\n title={typeof rightSide === 'string' ? rightSide : undefined}\n >\n {rightSideIsString ? (\n rightSide\n ) : (\n <RightIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption\n className={cnTextField('Caption')}\n status={status || state}\n >\n {caption}\n </FieldCaption>\n )}\n </div>\n </div>\n );\n};\n\nexport const TextField = forwardRef(TextFieldRender) as TextFieldComponent;\nexport * from './types';\n"],"mappings":"+sBAAA,wBAEA,OAASA,SAAT,KAA0B,yBAA1B,CACA,OAASC,OAAT,KAAwB,uBAAxB,CACA,OAASC,YAAT,KAA6B,4BAA7B,CACA,OAASC,UAAT,KAA2B,0BAA3B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,WAA5B,CAAyCC,SAAzC,KAA0D,OAA1D,CACA,MAAOC,iBAAP,KAA6B,yBAA7B,CAEA,OAASC,eAAT,2CACA,OAASC,YAAT,oCACA,OAASC,UAAT,gCACA,OAASC,OAAT,mCACA,OAASC,UAAT,yCACA,OAASC,aAAT,+CACA,OAASC,YAAT,6CACA,OAASC,EAAT,uBACA,OAASC,QAAT,4BACA,OAASC,QAAT,+BAEA,OACEC,gBADF,CAEEC,gBAFF,CAGEC,cAHF,CAIEC,UAJF,CAKEC,OALF,iBAOA,OAEEC,wBAFF,CAIEC,wBAJF,CAKEC,wBALF,eAQA,MAAO,IAAMC,eAAc,CAAG,WAAvB,CACP,MAAO,IAAMC,YAAW,CAAGZ,EAAE,aAAtB,CAEP,MAAO,IAAMa,gBAAe,CAAG,SAC7BC,CAD6B,CAE7BC,CAF6B,CAG1B,SACGC,CAAY,CAAG5B,KAAK,CAAC6B,MAAN,CAA6B,IAA7B,CADlB,CAEGC,CAAQ,CAAG9B,KAAK,CAAC6B,MAAN,CAAqD,IAArD,CAFd,GAyDCxB,eAAe,CAACkB,cAAD,CAAiBG,CAAjB,CAAwBE,CAAxB,CAzDhB,CAKDG,CALC,GAKDA,SALC,KAMDC,IANC,CAMDA,CANC,YAMM,MANN,GAODC,CAPC,GAODA,KAPC,CAQDC,CARC,GAQDA,YARC,CASDC,CATC,GASDA,QATC,CAUDC,CAVC,GAUDA,EAVC,CAWDC,CAXC,GAWDA,IAXC,CAYDC,CAZC,GAYDA,IAZC,CAaDC,CAbC,GAaDA,IAbC,CAcDC,CAdC,GAcDA,OAdC,CAeDC,CAfC,GAeDA,OAfC,CAgBSC,CAhBT,GAgBDZ,QAhBC,CAiBDa,CAjBC,GAiBDA,SAjBC,CAkBDC,CAlBC,GAkBDA,QAlBC,KAmBDC,IAnBC,CAmBDA,CAnBC,YAmBMxB,wBAnBN,OAoBDyB,IApBC,CAoBDA,CApBC,YAoBMxB,wBApBN,OAqBDyB,IArBC,CAqBDA,CArBC,YAqBM3B,wBArBN,GAsBD4B,CAtBC,GAsBDA,KAtBC,CAuBDC,CAvBC,GAuBDA,MAvBC,CAwBDC,CAxBC,GAwBDA,MAxBC,CAyBDC,CAzBC,GAyBDA,OAzBC,KA0BDC,SA1BC,CA0BDA,CA1BC,eA2BDC,CA3BC,GA2BDA,WA3BC,CA4BDC,CA5BC,GA4BDA,QA5BC,CA6BDC,CA7BC,GA6BDA,SA7BC,CA8BDC,CA9BC,GA8BDA,YA9BC,CA+BDC,CA/BC,GA+BDA,eA/BC,KAgCDC,gBAhCC,CAiCDC,CAjCC,GAiCDA,GAjCC,CAkCDC,CAlCC,GAkCDA,GAlCC,CAmCDC,CAnCC,GAmCDA,QAnCC,CAoCDC,CApCC,GAoCDA,QApCC,KAqCDC,IArCC,CAqCDA,CArCC,YAqCM,CArCN,GAsCDC,CAtCC,GAsCDA,QAtCC,CAuCDC,CAvCC,GAuCDA,SAvCC,CAwCDC,CAxCC,GAwCDA,KAxCC,CAyCDC,CAzCC,GAyCDA,SAzCC,CA0CDC,CA1CC,GA0CDA,iBA1CC,KA2CDC,aA3CC,CA2CDA,CA3CC,YA2Ce,KA3Cf,GA4CDC,CA5CC,GA4CDA,OA5CC,CA6CSC,EA7CT,GA6CDC,QA7CC,CA8CDC,EA9CC,GA8CDA,OA9CC,CA+CDC,EA/CC,GA+CDA,OA/CC,CAiDUC,EAjDV,GAiDDC,SAjDC,CAkDDC,EAlDC,GAkDDA,gBAlDC,CAmDDC,EAnDC,GAmDDA,UAnDC,CAoDDC,EApDC,GAoDDA,iBApDC,CAqDDC,EArDC,GAqDDA,OArDC,CAsDDC,EAtDC,GAsDDA,cAtDC,CAuDDC,EAvDC,GAuDDA,OAvDC,CAwDEC,EAxDF,uCA2DGzB,EAAgB,CAAY,QAAT,GAAA1B,CAAH,iBA3DnB,IA6DuBxB,OAAO,CAAC4C,CAAD,CA7D9B,yBA6DIgC,EA7DJ,OA6DWC,EA7DX,UA8D2C7E,OAAO,EA9DlD,yBA8DI8E,EA9DJ,OA8DqBC,EA9DrB,UA+D+B/E,OAAO,EA/DtC,yBA+DIgF,EA/DJ,OA+DeC,EA/Df,OAiEGC,EAAU,CAAGhF,aAAa,CAACgE,EAAD,CAjE7B,CAkEGiB,EAAW,CAAGjF,aAAa,CAACyB,CAAD,CAlE9B,CAoEGyD,EAAc,CAAG1F,WAAW,CAChC,SAAC2F,CAAD,CAAwD,OACtDA,CAAC,CAACC,eAAF,EADsD,CAEtDP,EAAkB,CAACQ,MAAnB,EAFsD,WAGtDjE,CAAQ,CAACkE,OAH6C,qBAGtD,EAAkBZ,KAAlB,EACD,CAL+B,CAMhC,EANgC,CApE/B,CA8EGa,EAAQ,CAAG3C,CA9Ed,CA+EG4C,EAAS,CAAG3C,CA/Ef,CAgFG4C,EAAgB,CAAGrF,QAAQ,CAACwC,CAAD,CAhF9B,CAiFG8C,EAAiB,CAAGtF,QAAQ,CAACyC,CAAD,CAjF/B,CAkFGiB,EAAQ,CAAG3D,QAAQ,CAACM,OAAD,CAAU0B,CAAV,CAAgB0B,EAAhB,CAlFtB,CAoFG8B,EAAW,CAAG1F,YAAY,CAAC,CAC/BoD,IAAI,CAAJA,CAD+B,CAE/BH,GAAG,EAASA,CAFmB,CAG/BD,GAAG,EAASA,CAHmB,CAAD,CApF7B,CA0FG2C,EAEL,CAAGpG,WAAW,CACb,SAAC2F,CAAD,CAAO,OACJjD,CAAD,aACE+C,EAAW,CAACK,OADd,qBACE,OAAAL,EAAW,CAAWE,CAAC,CAACU,MAAF,CAAStE,KAAT,EAAkB,IAA7B,CAAmC,CAC5C4D,CAAC,CAADA,CAD4C,CAE5CzD,EAAE,CAAFA,CAF4C,CAG5CC,IAAI,CAAJA,CAH4C,CAAnC,CADb,CADK,CAQDwD,CAAC,CAACU,MAAF,CAAStE,KARR,CASHwD,EAAY,CAACe,EAAb,EATG,CAWHf,EAAY,CAACgB,GAAb,EAEH,CAdY,CAeb,CAACrE,CAAD,CAAKC,CAAL,CAAWO,CAAX,CAfa,CA5FZ,CAmHG8D,EAAiD,CAAG,SAACb,CAAD,CAAO,CAC/DR,EAAQ,CAACmB,EAAT,EAD+D,QAE/DrD,CAF+D,WAE/DA,CAF+D,QAE/DA,CAAO,CAAG0C,CAAH,CACR,CAtHE,CAwHGc,EAAW,CAAG,CAClB,UAAanF,WAAW,CAAC,OAAD,CADN,CAElB,MAASN,UAAU,CAACe,CAAD,CAFD,CAGlB,aAAgBf,UAAU,CAACgB,CAAD,CAHR,CAIlB,SAAYoE,EAJM,CAKlB3D,SAAS,CAATA,CALkB,CAMlBC,QAAQ,CAARA,CANkB,CAOlB,OAjBuD,QAAnDgE,WAAmD,CAACf,CAAD,CAAO,CAC9DR,EAAQ,CAACoB,GAAT,EAD8D,QAE9DvD,CAF8D,WAE9DA,CAF8D,QAE9DA,CAAM,CAAG2C,CAAH,CACP,CAOmB,CAQlB,QAAWa,EARO,CASlBtD,SAAS,CAATA,CATkB,CAUlBC,WAAW,CAAXA,CAVkB,CAWlBG,YAAY,CAAZA,CAXkB,CAYlBK,QAAQ,CAARA,CAZkB,CAalBG,QAAQ,CAARA,CAbkB,CAclB3B,IAAI,CAAJA,CAdkB,CAelBwC,gBAAgB,CAAhBA,EAfkB,CAgBlBC,UAAU,CAAVA,EAhBkB,CAiBlBC,iBAAiB,CAAjBA,EAjBkB,CAkBlBC,OAAO,CAAPA,EAlBkB,CAmBlBC,cAAc,CAAdA,EAnBkB,CAoBlB,GAAM7C,CAAE,CAAGA,CAAE,CAACyE,QAAH,EAAH,OApBU,CAqBlB,aAAc5C,CArBI,CAxHjB,CAgJG6C,EAAG,CAAGxB,EAAe,CAAGxF,YAAH,CAAkBD,OAhJ1C,CA6KGkH,EAAa,CAAG,CACpBzE,IAAI,CAAJA,CADoB,CAEpBC,IAAI,CAAJA,CAFoB,CAGpBC,OAAO,CAAEA,CAAO,EAAIF,CAHA,CAIpBG,OAAO,CAAEA,CAAO,EAAIH,CAJA,CAKpBX,GAAG,CAAElB,UAAU,CAAC,CAACqB,CAAD,CAAWY,CAAX,CAAD,CALK,CA7KnB,CAuLGsE,EAAU,CAAG,CACjBhF,IAAI,CAAEhB,gBAAgB,CAACgB,CAAD,CAAOsD,EAAP,CADL,CAEjB3B,GAAG,CAAHA,CAFiB,CAGjBC,GAAG,CAAHA,CAHiB,CAIjBG,IAAI,CAAGkD,KAAK,CAACC,OAAN,CAAcb,EAAd,CAAD,CAA4C,CAA5C,CAA8BA,EAJnB,CAKjBzB,SAAS,CA1CO,QAAZA,UAAY,CAACiB,CAAD,CAA4B,CAC5C,GAAMsB,EAAI,CAAGpG,gBAAgB,CAAC8E,CAAD,CAA7B,CAEA,UADAlB,EACA,WADAA,EACA,QADAA,EAAa,CAAGkB,CAAH,CACb,CAAa,QAAT,GAAA7D,CAAI,EAAiC,SAAhB,QAAOmF,EAA5B,EAAkD,CAACvE,CAAvD,CAAiE,SAC/DiD,CAAC,CAACuB,cAAF,EAD+D,CAG/D,GAAMC,EAAQ,CAAGpG,cAAc,CAC7BoF,EAD6B,WAE7BvE,CAAQ,CAACkE,OAFoB,qBAE7B,EAAkB/D,KAFW,CAG7BkF,CAH6B,CAI7BvD,CAJ6B,CAK7BD,CAL6B,CAA/B,CAH+D,UAW/DgC,EAAW,CAACK,OAXmD,qBAW/D,OAAAL,EAAW,CAAW0B,CAAX,CAAqB,CAC9BxB,CAAC,CAADA,CAD8B,CAE9BzD,EAAE,CAAFA,CAF8B,CAG9BC,IAAI,CAAJA,CAH8B,CAArB,CAXoD,CAiB3DP,CAAQ,CAACkE,OAjBkD,GAkB7DlE,CAAQ,CAACkE,OAAT,CAAiB/D,KAAjB,CAAyBoF,CAlBoC,CAmB7D5B,EAAY,CAACe,EAAb,EAnB6D,CAqBhE,CACF,CAYkB,CAMjB7E,GAAG,CAAElB,UAAU,CAAC,CACdqB,CADc,CAEdY,CAFc,CAAD,CANE,CAvLhB,CAmMG4E,EAAW,CAAGpH,WAAW,CAAC,SAAC2F,CAAD,CAA4C,iBAC1EF,EAAW,CAACK,OAD8D,qBAC1E,OAAAL,EAAW,CAAW,IAAX,CAAiB,CAC1BE,CAAC,CAADA,CAD0B,CAE1BzD,EAAE,CAAFA,CAF0B,CAG1BC,IAAI,CAAJA,CAH0B,CAAjB,CAD+D,CAOtEP,CAAQ,CAACkE,OAP6D,GAQxElE,CAAQ,CAACkE,OAAT,CAAiB/D,KAAjB,CAAyB,EAR+C,CASxEwD,EAAY,CAACgB,GAAb,EATwE,CAW3E,CAX8B,CAW5B,EAX4B,CAnM5B,CAgNGc,EAAiB,CAAG,SACxB1B,CADwB,CAGrB,SADH2B,CACG,4DACGH,CAAQ,CAAGpG,cAAc,CAC7BoF,EAD6B,WAE7BvE,CAAQ,CAACkE,OAFoB,qBAE7B,EAAkB/D,KAFW,CAG7BuF,CAH6B,CAI7B5D,CAJ6B,CAK7BD,CAL6B,CAD5B,WAQHgC,EAAW,CAACK,OART,qBAQH,OAAAL,EAAW,CAAW0B,CAAX,CAAqB,CAC9BxB,CAAC,CAADA,CAD8B,CAE9BzD,EAAE,CAAFA,CAF8B,CAG9BC,IAAI,CAAJA,CAH8B,CAArB,CARR,CAaCP,CAAQ,CAACkE,OAbV,GAcDlE,CAAQ,CAACkE,OAAT,CAAiB/D,KAAjB,CAAyBoF,CAdxB,CAeD5B,EAAY,CAACe,EAAb,EAfC,CAiBJ,CApOE,CAsOGiB,EAAS,CAAG,CAChB/C,OAAO,CAAExE,WAAW,CAAC,SAAC2F,CAAD,CAAqD,mBACxE/D,CAAQ,CAACkE,OAD+D,qBACxE,EAAkBZ,KAAlB,EADwE,WAExEM,EAAU,CAACM,OAF6D,qBAExE,OAAAN,EAAU,CAAWG,CAAX,CACX,CAHmB,CAGjB,EAHiB,CADJ,CAtOf,CAiPH,MAJA1F,UAAS,CAAC,UAAM,OACdsF,EAAY,CAAC,UAAA3D,CAAQ,CAACkE,OAAT,iBAAkB/D,KAAlB,CAA0B,IAA1B,CAAiC,KAAlC,CAAZ,EACD,CAFQ,CAEN,WAACH,CAAQ,CAACkE,OAAV,qBAAC,EAAkB/D,KAAnB,CAFM,CAIT,CACE,yCACE,SAAS,CAAET,WAAW,CAAC,CAAE6C,aAAa,CAAbA,CAAF,CAAiBxB,IAAI,CAAJA,CAAjB,CAAuBC,IAAI,CAAJA,CAAvB,CAAD,CAAgC,CAACf,CAAD,CAAhC,CADxB,CAEE,GAAG,CAAEtB,UAAU,CAAC,CAACkB,CAAD,CAAMC,CAAN,CAAD,CAFjB,EAGM6F,EAHN,CAIMtC,EAJN,EAMGjB,CAAK,EACJ,oBAAC,UAAD,EACE,EAAE,CAAC,OADL,CAEE,OAAO,QAAE9B,CAAF,WAAEA,CAAF,QAAEA,CAAE,CAAEyE,QAAJ,EAFX,CAGE,IAAI,CAAE1C,CAHR,CAIE,QAAQ,CAAEL,CAJZ,CAKE,SAAS,CAAEtC,WAAW,CAAC,OAAD,CAAU,CAAE6C,aAAa,CAAbA,CAAF,CAAV,CALxB,CAME,IAAI,CAAExB,CANR,EAQGqB,CARH,CAPJ,CAkBE,2BAAK,SAAS,CAAE1C,WAAW,CAAC,MAAD,CAA3B,EACE,2BACE,GAAG,CAAE4C,CADP,CAEE,SAAS,CAAE5C,WAAW,CAAC,gBAAD,CAAmB,CACvCsB,IAAI,CAAJA,CADuC,CAEvCC,IAAI,CAAJA,CAFuC,CAGvCE,MAAM,CAAEA,CAAM,EAAID,CAHqB,CAIvCJ,QAAQ,CAARA,CAJuC,CAKvCZ,IAAI,CAAJA,CALuC,CAMvCoD,KAAK,CAAEA,EAAK,EAAIX,EANuB,CAOvCe,SAAS,CAATA,EAPuC,CAQvC9B,gBAAgB,CAAW,QAAT,GAAA1B,CAAI,EAAiB0B,EARA,CAAnB,CAFxB,EAaGuC,EAAQ,EACP,2BACE,SAAS,CAAEzE,WAAW,CAAC,MAAD,CAAS,CAC7BkG,QAAQ,CAAE,MADmB,CAE7B1F,IAAI,CAAEmE,EAAgB,CAAG,QAAH,CAAc,MAFP,CAAT,CADxB,CAKE,KAAK,CAAsB,QAApB,QAAO7C,EAAP,CAA+BA,CAA/B,OALT,EAOG6C,EAAgB,CACf7C,CADe,CAGf,oBAAC,EAAD,EAAU,SAAS,CAAE9B,WAAW,CAAC,MAAD,CAAhC,CAA0C,IAAI,CAAEgD,EAAhD,EAVJ,CAdJ,CAxLoB,UAAT,GAAAxC,CAoNR,CACC,oBAAC,gBAAD,kBAAsB2E,EAAtB,CAAuCI,EAAvC,EADD,CAGC,6CAAWJ,EAAX,CAA4BK,EAA5B,EA/BJ,CAkCGtD,EAAgB,EAAI,CAACd,CAArB,EACC,2BAAK,SAAS,CAAEpB,WAAW,CAAC,SAAD,CAA3B,EACE,8BACE,SAAS,CAAEA,WAAW,CAAC,eAAD,CAAkB,CAAEmG,EAAE,CAAE,WAAN,CAAlB,CADxB,CAEE,OAAO,CAAEjB,EAFX,CAGE,OAAO,CAAE,SAACb,CAAD,QAAO0B,GAAiB,CAAC1B,CAAD,IAAxB,CAHX,CAIE,IAAI,CAAC,QAJP,EAME,oBAAC,UAAD,EAAY,IAAI,CAAC,IAAjB,EANF,CADF,CASE,8BACE,SAAS,CAAErE,WAAW,CAAC,eAAD,CADxB,CAEE,OAAO,CAAEkF,EAFX,CAGE,OAAO,CAAE,SAACb,CAAD,QAAO0B,GAAiB,CAAC1B,CAAD,IAAxB,CAHX,CAIE,IAAI,CAAC,QAJP,EAME,oBAAC,UAAD,EAAY,IAAI,CAAC,IAAjB,EANF,CATF,CAnCJ,CAuDG,CAACnC,EAAD,EAAqB8B,EAArB,EAAkC/B,CAAlC,EAAqD,CAACb,CAAtD,EACC,8BACE,IAAI,CAAC,QADP,CAEE,QAAQ,CAAEA,CAFZ,CAGE,QAAQ,CAAE,CAAC,CAHb,CAIE,OAAO,CAAEsC,EAAO,EAAIoC,EAJtB,CAKE,SAAS,CAAE9F,WAAW,CAAC,aAAD,CALxB,EAOE,oBAAC,SAAD,EACE,IAAI,CAAEL,OAAO,CAAC0B,CAAD,CADf,CAEE,SAAS,CAAErB,WAAW,CAAC,iBAAD,CAFxB,EAPF,CAxDJ,CAsEY,UAAT,GAAAQ,CAAI,aAAmBF,CAAQ,CAACkE,OAA5B,qBAAmB,EAAkB/D,KAArC,CAAJ,EACC,8BACE,SAAS,CAAET,WAAW,CAAC,aAAD,CADxB,CAEE,IAAI,CAAC,QAFP,CAGE,OAAO,CAAEoE,EAHX,EAKE,oBAAC,EAAD,EAAK,SAAS,CAAEpE,WAAW,CAAC,MAAD,CAA3B,CAAqC,IAAI,CAAEgD,EAA3C,EALF,CAvEJ,CAgFG0B,EAAS,EAAI,CAACxC,EAAd,EAA2C,UAAT,GAAA1B,CAAlC,EACC,2BACE,SAAS,CAAER,WAAW,CAAC,MAAD,CAAS,CAC7BkG,QAAQ,CAAE,OADmB,CAE7B1F,IAAI,CAAEoE,EAAiB,CAAG,QAAH,CAAc,MAFR,CAAT,CADxB,CAKE,KAAK,CAAuB,QAArB,QAAO7C,EAAP,CAAgCA,CAAhC,OALT,EAOG6C,EAAiB,CAChB7C,CADgB,CAGhB,oBAAC,EAAD,EAAW,SAAS,CAAE/B,WAAW,CAAC,MAAD,CAAjC,CAA2C,IAAI,CAAEgD,EAAjD,EAVJ,CAjFJ,CADF,CAiGGF,CAAO,EACN,oBAAC,YAAD,EACE,SAAS,CAAE9C,WAAW,CAAC,SAAD,CADxB,CAEE,MAAM,CAAEyB,CAAM,EAAID,CAFpB,EAIGsB,CAJH,CAlGJ,CAlBF,CA8HH,CAnXM,CAqXP,MAAO,IAAMsD,UAAS,CAAG3H,UAAU,CAACwB,eAAD,CAA5B,CACP"}
|
|
1
|
+
{"version":3,"file":"TextField.js","names":["IconClear","IconEye","IconEyeClose","IconSelect","React","forwardRef","useCallback","useEffect","TextAreaAutoSize","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useKeys","useMutableRef","useSortSteps","cn","getByMap","isString","getTypeForRender","getValueByStep","inputValue","sizeMap","stepIsActive","textFieldPropFormDefault","textFieldPropSizeDefault","textFieldPropViewDefault","COMPONENT_NAME","cnTextField","TextFieldRender","props","ref","textFieldRef","useRef","inputRef","className","type","value","defaultValue","onChange","id","name","rows","cols","minRows","maxRows","inputRefProp","maxLength","disabled","size","view","form","state","status","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSizeProp","iconSize","focused","onClick","onKeyDownProp","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onClear","otherProps","focus","setFocus","passwordVisible","setPasswordVisuble","withValue","setWithValue","onClickRef","onChangeRef","handleEyeClick","e","stopPropagation","toggle","current","LeftIcon","RightIcon","leftSideIsString","rightSideIsString","sortedSteps","handleChange","target","on","off","handleFocus","commonProps","handleBlur","toString","Eye","isActive","keys","ArrowUp","preventDefault","newValue","ArrowDown","onEvent","textareaProps","inputProps","Array","isArray","handleClear","changeNumberValue","isIncrement","rootProps","position","fn","TextField"],"sources":["../../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import './TextField.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconEye } from '@consta/icons/IconEye';\nimport { IconEyeClose } from '@consta/icons/IconEyeClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useCallback, useEffect } from 'react';\nimport TextAreaAutoSize from 'react-textarea-autosize';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef/useForkRef';\nimport { useKeys } from '##/hooks/useKeys';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { useSortSteps } from '##/hooks/useSortSteps/useSortSteps';\nimport { cn } from '##/utils/bem';\nimport { getByMap } from '##/utils/getByMap';\nimport { isString } from '##/utils/type-guards';\n\nimport {\n getTypeForRender,\n getValueByStep,\n inputValue,\n sizeMap,\n stepIsActive,\n} from './helpers';\nimport {\n TextFieldComponent,\n textFieldPropFormDefault,\n TextFieldProps,\n textFieldPropSizeDefault,\n textFieldPropViewDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'TextField' as const;\nexport const cnTextField = cn(COMPONENT_NAME);\n\nexport const TextFieldRender = <TYPE extends string>(\n props: TextFieldProps<TYPE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const textFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\n const {\n className,\n type = 'text',\n value,\n defaultValue,\n onChange,\n id,\n name,\n rows,\n cols,\n minRows,\n maxRows,\n inputRef: inputRefProp,\n maxLength,\n disabled,\n size = textFieldPropSizeDefault,\n view = textFieldPropViewDefault,\n form = textFieldPropFormDefault,\n state,\n status,\n onBlur,\n onFocus,\n autoFocus = false,\n placeholder,\n leftSide,\n rightSide,\n autoComplete,\n withClearButton,\n incrementButtons: incrementButtonsProp = true,\n max,\n min,\n readOnly,\n required,\n step = 1,\n tabIndex,\n ariaLabel,\n label,\n labelIcon,\n inputContainerRef,\n labelPosition = 'top',\n caption,\n iconSize: iconSizeProp,\n focused,\n onClick,\n // onkey props\n onKeyDown: onKeyDownProp,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n onClear,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, textFieldRef);\n\n const incrementButtons = type === 'number' ? incrementButtonsProp : false;\n\n const [focus, setFocus] = useFlag(autoFocus);\n const [passwordVisible, setPasswordVisuble] = useFlag();\n const [withValue, setWithValue] = useFlag();\n\n const onClickRef = useMutableRef(onClick);\n const onChangeRef = useMutableRef(onChange);\n\n const handleEyeClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n e.stopPropagation();\n setPasswordVisuble.toggle();\n inputRef.current?.focus();\n },\n [],\n );\n\n const textarea = type === 'textarea';\n const LeftIcon = leftSide;\n const RightIcon = rightSide;\n const leftSideIsString = isString(leftSide);\n const rightSideIsString = isString(rightSide);\n const iconSize = getByMap(sizeMap, size, iconSizeProp);\n\n const sortedSteps = useSortSteps({\n step,\n min: Number(min),\n max: Number(max),\n });\n\n const handleChange: React.ChangeEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n > = useCallback(\n (e) => {\n !disabled &&\n onChangeRef.current?.(e.target.value || null, {\n e,\n id,\n name,\n });\n\n if (e.target.value) {\n setWithValue.on();\n } else {\n setWithValue.off();\n }\n },\n [id, name, disabled],\n );\n\n const handleBlur: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.off();\n onBlur?.(e);\n };\n\n const handleFocus: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.on();\n onFocus?.(e);\n };\n\n const commonProps = {\n 'className': cnTextField('Input'),\n 'value': inputValue(value),\n 'defaultValue': inputValue(defaultValue),\n 'onChange': handleChange,\n maxLength,\n disabled,\n 'onBlur': handleBlur,\n 'onFocus': handleFocus,\n autoFocus,\n placeholder,\n autoComplete,\n readOnly,\n tabIndex,\n name,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n 'id': id ? id.toString() : undefined,\n 'aria-label': ariaLabel,\n };\n\n const Eye = passwordVisible ? IconEyeClose : IconEye;\n\n const onKeyDown = useKeys({\n isActive: true,\n keys: {\n ArrowUp: (e) => {\n e.preventDefault();\n if (stepIsActive(step, type, disabled)) {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n true,\n min,\n max,\n );\n\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n }\n },\n ArrowDown: (e) => {\n e.preventDefault();\n if (stepIsActive(step, type, disabled)) {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n false,\n min,\n max,\n );\n\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n }\n },\n },\n onEvent: onKeyDownProp,\n });\n\n const textareaProps = {\n rows,\n cols,\n minRows: minRows || rows,\n maxRows: maxRows || rows,\n ref: useForkRef([inputRef, inputRefProp]) as (\n node: HTMLTextAreaElement,\n ) => void,\n };\n\n const inputProps = {\n type: getTypeForRender(type, passwordVisible),\n max,\n min,\n step: !Array.isArray(sortedSteps) ? sortedSteps : 0,\n onKeyDown,\n ref: useForkRef([\n inputRef,\n inputRefProp,\n ]) as React.RefCallback<HTMLInputElement>,\n };\n\n const handleClear = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n onChangeRef.current?.(null, {\n e,\n id,\n name,\n });\n\n if (inputRef.current) {\n inputRef.current.value = '';\n setWithValue.off();\n }\n }, []);\n\n const changeNumberValue = (\n e: React.MouseEvent<HTMLButtonElement>,\n isIncrement = true,\n ) => {\n const newValue = getValueByStep(\n sortedSteps,\n inputRef.current?.value,\n isIncrement,\n min,\n max,\n );\n onChangeRef.current?.(newValue, {\n e,\n id,\n name,\n });\n if (inputRef.current) {\n inputRef.current.value = newValue;\n setWithValue.on();\n }\n };\n\n const rootProps = {\n onClick: useCallback((e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n inputRef.current?.focus();\n onClickRef.current?.(e);\n }, []),\n };\n\n useEffect(() => {\n setWithValue[inputRef.current?.value ? 'on' : 'off']();\n }, [inputRef.current?.value]);\n\n return (\n <div\n className={cnTextField({ labelPosition, size, view }, [className])}\n ref={useForkRef([ref, textFieldRef])}\n {...rootProps}\n {...otherProps}\n >\n {label && (\n <FieldLabel\n as=\"label\"\n htmlFor={id?.toString()}\n icon={labelIcon}\n required={required}\n className={cnTextField('Label', { labelPosition })}\n size={size}\n >\n {label}\n </FieldLabel>\n )}\n <div className={cnTextField('Body')}>\n <div\n ref={inputContainerRef}\n className={cnTextField('InputContainer', {\n view,\n form,\n status: status || state,\n disabled,\n type,\n focus: focus || focused,\n withValue,\n incrementButtons: type === 'number' && incrementButtons,\n })}\n >\n {LeftIcon && (\n <div\n className={cnTextField('Side', {\n position: 'left',\n type: leftSideIsString ? 'string' : 'icon',\n })}\n title={typeof leftSide === 'string' ? leftSide : undefined}\n >\n {leftSideIsString ? (\n leftSide\n ) : (\n <LeftIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n {textarea ? (\n <TextAreaAutoSize {...commonProps} {...textareaProps} />\n ) : (\n <input {...commonProps} {...inputProps} />\n )}\n\n {incrementButtons && stepIsActive(step, type, disabled) && (\n <div className={cnTextField('Counter')}>\n <button\n className={cnTextField('CounterButton', { fn: 'increment' })}\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, true)}\n type=\"button\"\n >\n <IconSelect size=\"xs\" />\n </button>\n <button\n className={cnTextField('CounterButton')}\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, false)}\n type=\"button\"\n >\n <IconSelect size=\"xs\" />\n </button>\n </div>\n )}\n\n {!incrementButtons && withValue && withClearButton && !disabled && (\n <button\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n onClick={onClear || handleClear}\n className={cnTextField('ClearButton')}\n >\n <IconClear\n size={sizeMap[size]}\n className={cnTextField('ClearButtonIcon')}\n />\n </button>\n )}\n\n {type === 'password' && inputRef.current?.value && (\n <button\n className={cnTextField('ClearButton')}\n type=\"button\"\n onClick={handleEyeClick}\n >\n <Eye className={cnTextField('Icon')} size={iconSize} />\n </button>\n )}\n\n {RightIcon && !incrementButtons && type !== 'password' && (\n <div\n className={cnTextField('Side', {\n position: 'right',\n type: rightSideIsString ? 'string' : 'icon',\n })}\n title={typeof rightSide === 'string' ? rightSide : undefined}\n >\n {rightSideIsString ? (\n rightSide\n ) : (\n <RightIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption\n className={cnTextField('Caption')}\n status={status || state}\n >\n {caption}\n </FieldCaption>\n )}\n </div>\n </div>\n );\n};\n\nexport const TextField = forwardRef(TextFieldRender) as TextFieldComponent;\nexport * from './types';\n"],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { IconPropSize } from '@consta/icons/Icon';
|
|
2
|
-
import React from 'react';
|
|
3
2
|
import { TextFieldPropSize, TextFieldPropValue } from './types';
|
|
4
3
|
export declare const sizeMap: Record<TextFieldPropSize, IconPropSize>;
|
|
5
4
|
export declare const getValueByStepArray: (steps: number[], value: string | null | undefined, min: number | string | undefined, max: number | string | undefined, isIncrement: boolean) => number;
|
|
6
5
|
export declare const getValueByStepNumber: (step: number | string, value: string | null | undefined, min: number | string | undefined, max: number | string | undefined, isIncrement: boolean) => number;
|
|
7
|
-
export declare const getIncrementFlag: (event: React.KeyboardEvent) => boolean | null;
|
|
8
6
|
export declare const getTypeForRender: (type: string, passwordVible: boolean) => string;
|
|
9
7
|
export declare const getValueByStep: (steps: number | number[], value: string | null | undefined, isIncrement: boolean, min?: number | string, max?: number | string) => string;
|
|
10
8
|
export declare const inputValue: (value?: TextFieldPropValue) => string | undefined;
|
|
9
|
+
export declare const stepIsActive: (step: number | string | number[], type: string, disabled?: boolean) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var sizeMap={xs:"xs",s:"s",m:"s",l:"m"};export var getValueByStepArray=function(a,b,c,d,e){var f=+(null!==b&&void 0!==b?b:c);if("string"!=typeof b)return"undefined"==typeof c?0:+c;if(f<a[0])return a[0];if(f>a[a.length-1])return a[a.length-1];if(!e&&f===a[0]||e&&f===a[a.length-1])return f;for(var g=0;g<a.length;g++)if(f===a[g]||a[g]<f&&a[g+1]>f)return a[g+(e?1:-1)];return 0};export var getValueByStepNumber=function(a,b,c,d,e){var f,g=+c,h=+d,i=("string"==typeof b?+b:0)+ +a*(e?1:-1);return!Number.isNaN(g)&&i<=g?g:!Number.isNaN(h)&&i>=h?h:+i.toFixed(+(null===(f=(+a).toString().split(".")[1])||void 0===f?void 0:f.length)||0)};export var
|
|
1
|
+
export var sizeMap={xs:"xs",s:"s",m:"s",l:"m"};export var getValueByStepArray=function(a,b,c,d,e){var f=+(null!==b&&void 0!==b?b:c);if("string"!=typeof b)return"undefined"==typeof c?0:+c;if(f<a[0])return a[0];if(f>a[a.length-1])return a[a.length-1];if(!e&&f===a[0]||e&&f===a[a.length-1])return f;for(var g=0;g<a.length;g++)if(f===a[g]||a[g]<f&&a[g+1]>f)return a[g+(e?1:-1)];return 0};export var getValueByStepNumber=function(a,b,c,d,e){var f,g=+c,h=+d,i=("string"==typeof b?+b:0)+ +a*(e?1:-1);return!Number.isNaN(g)&&i<=g?g:!Number.isNaN(h)&&i>=h?h:+i.toFixed(+(null===(f=(+a).toString().split(".")[1])||void 0===f?void 0:f.length)||0)};export var getTypeForRender=function(a,b){return"password"===a?b?"text":"password":a};export var getValueByStep=function(a,b,c,d,e){return(Array.isArray(a)?getValueByStepArray(a,b,d,e,c):getValueByStepNumber(a,b,d,e,c)).toString()};export var inputValue=function(a){return null===a?"":a};export var stepIsActive=function(a,b){var c=!!(2<arguments.length&&arguments[2]!==void 0)&&arguments[2];return!("number"!==b||c)&&("number"==typeof a&&0<a||"string"==typeof a&&0<+a||Array.isArray(a)&&!!a.length)};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["sizeMap","xs","s","m","l","getValueByStepArray","steps","value","min","max","isIncrement","currentValue","length","i","getValueByStepNumber","step","minValue","maxValue","Number","isNaN","toFixed","toString","split","
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["sizeMap","xs","s","m","l","getValueByStepArray","steps","value","min","max","isIncrement","currentValue","length","i","getValueByStepNumber","step","minValue","maxValue","Number","isNaN","toFixed","toString","split","getTypeForRender","type","passwordVible","getValueByStep","Array","isArray","inputValue","stepIsActive","disabled"],"sources":["../../../../../src/components/TextField/helpers.ts"],"sourcesContent":["import { IconPropSize } from '@consta/icons/Icon';\n\nimport { TextFieldPropSize, TextFieldPropValue } from './types';\n\nexport const sizeMap: Record<TextFieldPropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 's',\n l: 'm',\n};\n\nexport const getValueByStepArray = (\n steps: number[],\n value: string | null | undefined,\n min: number | string | undefined,\n max: number | string | undefined,\n isIncrement: boolean,\n): number => {\n const currentValue = Number(value ?? min);\n const minValue = Number(min);\n if (typeof value !== 'string') {\n return typeof min !== 'undefined' ? minValue : 0;\n }\n if (currentValue < steps[0]) {\n return steps[0];\n }\n if (currentValue > steps[steps.length - 1]) {\n return steps[steps.length - 1];\n }\n if (\n (!isIncrement && currentValue === steps[0]) ||\n (isIncrement && currentValue === steps[steps.length - 1])\n ) {\n return currentValue;\n }\n for (let i = 0; i < steps.length; i++) {\n if (\n currentValue === steps[i] ||\n (steps[i] < currentValue && steps[i + 1] > currentValue)\n ) {\n return steps[i + (isIncrement ? 1 : -1)];\n }\n }\n return 0;\n};\n\nexport const getValueByStepNumber = (\n step: number | string,\n value: string | null | undefined,\n min: number | string | undefined,\n max: number | string | undefined,\n isIncrement: boolean,\n): number => {\n const minValue = Number(min);\n const maxValue = Number(max);\n const currentValue: number =\n (typeof value === 'string' ? Number(value) : 0) +\n Number(step) * (isIncrement ? 1 : -1);\n if (!Number.isNaN(minValue) && currentValue <= minValue) {\n return minValue;\n }\n if (!Number.isNaN(maxValue) && currentValue >= maxValue) {\n return maxValue;\n }\n return Number(\n currentValue.toFixed(\n Number(\n /* Необходимо для того, чтобы избежать ситуации, когда по нажатию\nна кнопку прибавляется число с погрешностью.\nЗдесь мы берем разрядность дробной части шага и ограничиваем\nрезультирующее число этой разрядностью */\n Number(step).toString().split('.')[1]?.length,\n ) || 0,\n ),\n );\n};\n\nexport const getTypeForRender = (type: string, passwordVible: boolean) => {\n if (type !== 'password') {\n return type;\n }\n if (passwordVible) {\n return 'text';\n }\n return 'password';\n};\n\nexport const getValueByStep = (\n steps: number | number[],\n value: string | null | undefined,\n isIncrement: boolean,\n min?: number | string,\n max?: number | string,\n) => {\n return (\n Array.isArray(steps)\n ? getValueByStepArray(steps, value, min, max, isIncrement)\n : getValueByStepNumber(steps, value, min, max, isIncrement)\n ).toString();\n};\n\nexport const inputValue = (value?: TextFieldPropValue) =>\n value === null ? '' : value;\n\nexport const stepIsActive = (\n step: number | string | number[],\n type: string,\n disabled: boolean = false,\n) => {\n if (type !== 'number' || disabled) {\n return false;\n }\n\n return (\n (typeof step === 'number' && step > 0) ||\n (typeof step === 'string' && Number(step) > 0) ||\n (Array.isArray(step) && !!step.length)\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.Theme_size_gpnDefault{--size-text-2xs:10px;--size-text-xs:12px;--size-text-s:14px;--size-text-m:16px;--size-text-l:18px;--size-text-xl:20px;--size-text-2xl:24px;--size-text-3xl:32px;--size-text-4xl:48px;--size-text-5xl:72px;--size-text-6xl:96px;--line-height-text-2xs:1.1em;--line-height-text-xs:1.2em;--line-height-text-s:1.4em;--line-height-text-m:1.5em;--line-height-text-l:1.6em;--font-weight-text-thin:100;--font-weight-text-extralight:
|
|
1
|
+
.Theme_size_gpnDefault{--size-text-2xs:10px;--size-text-xs:12px;--size-text-s:14px;--size-text-m:16px;--size-text-l:18px;--size-text-xl:20px;--size-text-2xl:24px;--size-text-3xl:32px;--size-text-4xl:48px;--size-text-5xl:72px;--size-text-6xl:96px;--line-height-text-2xs:1.1em;--line-height-text-xs:1.2em;--line-height-text-s:1.4em;--line-height-text-m:1.5em;--line-height-text-l:1.6em;--font-weight-text-thin:100;--font-weight-text-extralight:200;--font-weight-text-light:300;--font-weight-text-regular:normal;--font-weight-text-medium:500;--font-weight-text-semibold:600;--font-weight-text-bold:bold;--font-weight-text-extrabold:800;--font-weight-text-black:900}
|