@consta/uikit 5.26.0 → 5.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/__internal__/src/components/Banner/Banner.d.ts +20 -8
  2. package/__internal__/src/components/Banner/Banner.js +1 -1
  3. package/__internal__/src/components/Banner/Banner.js.map +1 -1
  4. package/__internal__/src/components/FieldComponents/FieldWrapper/FieldWrapper.js +1 -1
  5. package/__internal__/src/components/FieldComponents/FieldWrapper/FieldWrapper.js.map +1 -1
  6. package/__internal__/src/components/FieldComponents/FieldWrapper/types.d.ts +1 -0
  7. package/__internal__/src/components/FieldComponents/FieldWrapper/types.js.map +1 -1
  8. package/__internal__/src/components/Modal/Modal.css +1 -1
  9. package/__internal__/src/components/Modal/Modal.d.ts +8 -13
  10. package/__internal__/src/components/Modal/Modal.js +1 -1
  11. package/__internal__/src/components/Modal/Modal.js.map +1 -1
  12. package/__internal__/src/components/Modal/ModalHeader/ModalHeader.css +1 -0
  13. package/__internal__/src/components/Modal/ModalHeader/ModalHeader.d.ts +14 -0
  14. package/__internal__/src/components/Modal/ModalHeader/ModalHeader.js +2 -0
  15. package/__internal__/src/components/Modal/ModalHeader/ModalHeader.js.map +1 -0
  16. package/__internal__/src/components/Modal/ModalHeader/index.d.ts +1 -0
  17. package/__internal__/src/components/Modal/ModalHeader/index.js +2 -0
  18. package/__internal__/src/components/Modal/ModalHeader/index.js.map +1 -0
  19. package/__internal__/src/components/Modal/ModalLayout/ModalLayout.css +5 -0
  20. package/__internal__/src/components/Modal/ModalLayout/ModalLayout.d.ts +10 -0
  21. package/__internal__/src/components/Modal/ModalLayout/ModalLayout.js +2 -0
  22. package/__internal__/src/components/Modal/ModalLayout/ModalLayout.js.map +1 -0
  23. package/__internal__/src/components/Modal/ModalLayout/index.d.ts +1 -0
  24. package/__internal__/src/components/Modal/ModalLayout/index.js +2 -0
  25. package/__internal__/src/components/Modal/ModalLayout/index.js.map +1 -0
  26. package/__internal__/src/components/Modal/index.d.ts +3 -0
  27. package/__internal__/src/components/Modal/index.js +1 -1
  28. package/__internal__/src/components/Modal/index.js.map +1 -1
  29. package/__internal__/src/components/Modal/types.d.ts +23 -0
  30. package/__internal__/src/components/Modal/types.js +2 -0
  31. package/__internal__/src/components/Modal/types.js.map +1 -0
  32. package/__internal__/src/components/Modal/useModal.d.ts +20 -0
  33. package/__internal__/src/components/Modal/useModal.js +2 -0
  34. package/__internal__/src/components/Modal/useModal.js.map +1 -0
  35. package/__internal__/src/components/PortalWithTheme/PortalWithTheme.js +1 -1
  36. package/__internal__/src/components/PortalWithTheme/PortalWithTheme.js.map +1 -1
  37. package/__internal__/src/components/RadioGroup/RadioGroup.js +1 -1
  38. package/__internal__/src/components/RadioGroup/RadioGroup.js.map +1 -1
  39. package/__internal__/src/components/Sidebar/Sidebar.css +1 -1
  40. package/__internal__/src/components/Sidebar/Sidebar.d.ts +1 -36
  41. package/__internal__/src/components/Sidebar/Sidebar.js +1 -1
  42. package/__internal__/src/components/Sidebar/Sidebar.js.map +1 -1
  43. package/__internal__/src/components/Sidebar/index.d.ts +1 -0
  44. package/__internal__/src/components/Sidebar/index.js +1 -1
  45. package/__internal__/src/components/Sidebar/index.js.map +1 -1
  46. package/__internal__/src/components/Sidebar/types.d.ts +47 -0
  47. package/__internal__/src/components/Sidebar/types.js +2 -0
  48. package/__internal__/src/components/Sidebar/types.js.map +1 -0
  49. package/__internal__/src/components/Sidebar/useAnimateTimeout.d.ts +2 -0
  50. package/__internal__/src/components/Sidebar/useAnimateTimeout.js +2 -0
  51. package/__internal__/src/components/Sidebar/useAnimateTimeout.js.map +1 -0
  52. package/__internal__/src/components/Slider/Slider.js +1 -1
  53. package/__internal__/src/components/Slider/Slider.js.map +1 -1
  54. package/__internal__/src/components/Slider/useSlider/useSlider.js +1 -1
  55. package/__internal__/src/components/Slider/useSlider/useSlider.js.map +1 -1
  56. package/__internal__/src/hooks/useComponentSize/useComponentSize.d.ts +1 -1
  57. package/__internal__/src/hooks/useComponentSize/useComponentSize.js +1 -1
  58. package/__internal__/src/hooks/useComponentSize/useComponentSize.js.map +1 -1
  59. package/__internal__/src/mixs/MixFlex/MixFlex.d.ts +2 -2
  60. package/__internal__/src/mixs/MixFlex/MixFlex.js.map +1 -1
  61. package/__internal__/src/mixs/MixSpace/MixSpace.d.ts +1 -1
  62. package/__internal__/src/mixs/MixSpace/MixSpace.js +1 -1
  63. package/__internal__/src/mixs/MixSpace/MixSpace.js.map +1 -1
  64. package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.d.ts +4 -0
  65. package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.js +2 -0
  66. package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.js.map +1 -0
  67. package/__internal__/src/utils/state/useComponentSizeAtom/index.d.ts +3 -0
  68. package/__internal__/src/utils/state/useComponentSizeAtom/index.js +2 -0
  69. package/__internal__/src/utils/state/useComponentSizeAtom/index.js.map +1 -0
  70. package/__internal__/src/utils/state/useComponentSizeAtom/types.d.ts +4 -0
  71. package/__internal__/src/utils/state/useComponentSizeAtom/types.js +2 -0
  72. package/__internal__/src/utils/state/useComponentSizeAtom/types.js.map +1 -0
  73. package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.d.ts +2 -0
  74. package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.js +2 -0
  75. package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.js.map +1 -0
  76. package/__internal__/src/utils/state/useResizeObservedAtom/index.d.ts +1 -0
  77. package/__internal__/src/utils/state/useResizeObservedAtom/index.js +2 -0
  78. package/__internal__/src/utils/state/useResizeObservedAtom/index.js.map +1 -0
  79. package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.d.ts +2 -0
  80. package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.js +2 -0
  81. package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.js.map +1 -0
  82. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"PortalWithTheme.js","names":["React","useEffect","useRef","useState","ReactDOM","useForkRef","Theme","PortalWithThemeProvider","usePortalContext","getZIndex","contextZIndex","propZIndex","isRef","ref","current","HTMLElement","getElement","PortalWithTheme","forwardRef","children","container","window","document","body","styleProp","style","rest","addRefs","zIndexContext","zIndex","portalContainer","setPortalContainer","themeRef","themeRefForked","createPortal"],"sources":["../../../../../src/components/PortalWithTheme/PortalWithTheme.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { Theme, ThemeProps } from '../Theme/Theme';\nimport {\n PortalWithThemeProvider,\n usePortalContext,\n} from './PortalWithThemeContext/PortalWithThemeContext';\n\nexport { usePortalContext };\n\ntype Props = {\n container?: Element | React.RefObject<HTMLElement>;\n} & ThemeProps;\n\nconst getZIndex = (contextZIndex?: number, propZIndex?: number | string) => {\n if (typeof propZIndex === 'number') {\n return propZIndex;\n }\n\n if (contextZIndex) {\n return contextZIndex + 1;\n }\n\n return undefined;\n};\n\nconst isRef = (\n ref: React.RefObject<HTMLElement> | Element | undefined,\n): ref is React.RefObject<HTMLElement> =>\n !!ref && 'current' in ref && ref.current instanceof HTMLElement;\n\nconst getElement = (ref: React.RefObject<HTMLElement> | Element) =>\n isRef(ref) ? ref.current : ref;\n\nexport const PortalWithTheme = React.forwardRef<HTMLDivElement, Props>(\n (\n { children, container = window.document.body, style: styleProp, ...rest },\n ref,\n ) => {\n const { addRefs, zIndex: zIndexContext } = usePortalContext();\n const [portalContainer, setPortalContainer] = useState<Element | null>(\n getElement(container),\n );\n\n const themeRef = useRef(null);\n\n const zIndex = getZIndex(zIndexContext, styleProp?.zIndex);\n\n const themeRefForked = useForkRef([themeRef, ref]);\n\n useEffect(() => {\n addRefs && addRefs([themeRef]);\n }, [themeRef]);\n\n useEffect(() => {\n setPortalContainer(getElement(container));\n }, [getElement(container)]);\n\n if (!portalContainer) {\n return null;\n }\n\n return ReactDOM.createPortal(\n <PortalWithThemeProvider zIndex={zIndex}>\n <Theme\n {...rest}\n ref={themeRefForked}\n style={{\n ...styleProp,\n zIndex,\n }}\n >\n {children}\n </Theme>\n </PortalWithThemeProvider>,\n portalContainer,\n );\n },\n);\n"],"mappings":"02BAAA,MAAOA,MAAP,EAAgBC,SAAhB,CAA2BC,MAA3B,CAAmCC,QAAnC,KAAmD,OAAnD,CACA,MAAOC,SAAP,KAAqB,WAArB,CAEA,OAASC,UAAT,yCACA,OAASC,KAAT,sBACA,OACEC,uBADF,CAEEC,gBAFF,uDAKA,OAASA,gBAAT,E,GAMMC,UAAS,CAAG,SAACC,CAAD,CAAyBC,CAAzB,CAA0D,OAChD,QAAtB,QAAOA,EAD+D,CAEjEA,CAFiE,CAKtED,CALsE,CAMjEA,CAAa,CAAG,CANiD,OAU3E,C,CAEKE,KAAK,CAAG,SACZC,CADY,QAGZ,CAAC,CAACA,CAAF,EAAS,WAAaA,EAAtB,EAA6BA,CAAG,CAACC,OAAJ,WAAuBC,YAHxC,C,CAKRC,UAAU,CAAG,SAACH,CAAD,QACjBD,MAAK,CAACC,CAAD,CAAL,CAAaA,CAAG,CAACC,OAAjB,CAA2BD,CADV,C,CAGnB,MAAO,IAAMI,gBAAe,CAAGjB,KAAK,CAACkB,UAAN,CAC7B,WAEEL,CAFF,CAGK,IAFDM,EAEC,GAFDA,QAEC,KAFSC,SAET,CAFSA,CAET,YAFqBC,MAAM,CAACC,QAAP,CAAgBC,IAErC,GAFkDC,CAElD,GAF2CC,KAE3C,CAFgEC,CAEhE,yCACwClB,gBAAgB,EADxD,CACKmB,CADL,GACKA,OADL,CACsBC,CADtB,GACcC,MADd,GAE2C1B,QAAQ,CACpDa,UAAU,CAACI,CAAD,CAD0C,CAFnD,uBAEIU,CAFJ,MAEqBC,CAFrB,MAMGC,CAAQ,CAAG9B,MAAM,CAAC,IAAD,CANpB,CAQG2B,CAAM,CAAGpB,SAAS,CAACmB,CAAD,QAAgBJ,CAAhB,WAAgBA,CAAhB,QAAgBA,CAAS,CAAEK,MAA3B,CARrB,CAUGI,CAAc,CAAG5B,UAAU,CAAC,CAAC2B,CAAD,CAAWnB,CAAX,CAAD,CAV9B,OAYHZ,UAAS,CAAC,UAAM,CACd0B,CAAO,EAAIA,CAAO,CAAC,CAACK,CAAD,CAAD,CACnB,CAFQ,CAEN,CAACA,CAAD,CAFM,CAZN,CAgBH/B,SAAS,CAAC,UAAM,CACd8B,CAAkB,CAACf,UAAU,CAACI,CAAD,CAAX,CACnB,CAFQ,CAEN,CAACJ,UAAU,CAACI,CAAD,CAAX,CAFM,CAhBN,CAoBEU,CApBF,CAwBI1B,QAAQ,CAAC8B,YAAT,CACL,oBAAC,uBAAD,EAAyB,MAAM,CAAEL,CAAjC,EACE,oBAAC,KAAD,kBACMH,CADN,EAEE,GAAG,CAAEO,CAFP,CAGE,KAAK,gCACAT,CADA,MAEHK,MAAM,CAANA,CAFG,EAHP,GAQGV,CARH,CADF,CADK,CAaLW,CAbK,CAxBJ,CAqBM,IAkBV,CA3C4B,CAAxB"}
1
+ {"version":3,"file":"PortalWithTheme.js","names":["React","useEffect","useRef","useState","ReactDOM","useForkRef","Theme","PortalWithThemeProvider","usePortalContext","getZIndex","contextZIndex","propZIndex","isRef","ref","getElement","current","PortalWithTheme","forwardRef","children","container","window","document","body","styleProp","style","rest","addRefs","zIndexContext","zIndex","portalContainer","setPortalContainer","themeRef","themeRefForked","createPortal"],"sources":["../../../../../src/components/PortalWithTheme/PortalWithTheme.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { Theme, ThemeProps } from '../Theme/Theme';\nimport {\n PortalWithThemeProvider,\n usePortalContext,\n} from './PortalWithThemeContext/PortalWithThemeContext';\n\nexport { usePortalContext };\n\ntype Props = {\n container?: Element | React.RefObject<HTMLElement>;\n} & ThemeProps;\n\nconst getZIndex = (contextZIndex?: number, propZIndex?: number | string) => {\n if (typeof propZIndex === 'number') {\n return propZIndex;\n }\n\n if (contextZIndex) {\n return contextZIndex + 1;\n }\n\n return undefined;\n};\n\nconst isRef = (\n ref: React.RefObject<HTMLElement> | Element | undefined,\n): ref is React.RefObject<HTMLElement> => !!ref && 'current' in ref;\n\nconst getElement = (ref: React.RefObject<HTMLElement> | Element) =>\n isRef(ref) ? ref.current : ref;\n\nexport const PortalWithTheme = React.forwardRef<HTMLDivElement, Props>(\n (\n { children, container = window.document.body, style: styleProp, ...rest },\n ref,\n ) => {\n const { addRefs, zIndex: zIndexContext } = usePortalContext();\n const [portalContainer, setPortalContainer] = useState<Element | null>(\n getElement(container),\n );\n\n const themeRef = useRef(null);\n\n const zIndex = getZIndex(zIndexContext, styleProp?.zIndex);\n\n const themeRefForked = useForkRef([themeRef, ref]);\n\n useEffect(() => {\n addRefs && addRefs([themeRef]);\n }, [themeRef]);\n\n useEffect(() => {\n setPortalContainer(getElement(container));\n }, [getElement(container)]);\n\n if (!portalContainer) {\n return null;\n }\n\n return ReactDOM.createPortal(\n <PortalWithThemeProvider zIndex={zIndex}>\n <Theme\n {...rest}\n ref={themeRefForked}\n style={{\n ...styleProp,\n zIndex,\n }}\n >\n {children}\n </Theme>\n </PortalWithThemeProvider>,\n portalContainer,\n );\n },\n);\n"],"mappings":"02BAAA,MAAOA,MAAP,EAAgBC,SAAhB,CAA2BC,MAA3B,CAAmCC,QAAnC,KAAmD,OAAnD,CACA,MAAOC,SAAP,KAAqB,WAArB,CAEA,OAASC,UAAT,yCACA,OAASC,KAAT,sBACA,OACEC,uBADF,CAEEC,gBAFF,uDAKA,OAASA,gBAAT,E,GAMMC,UAAS,CAAG,SAACC,CAAD,CAAyBC,CAAzB,CAA0D,OAChD,QAAtB,QAAOA,EAD+D,CAEjEA,CAFiE,CAKtED,CALsE,CAMjEA,CAAa,CAAG,CANiD,OAU3E,C,CAEKE,KAAK,CAAG,SACZC,CADY,QAE4B,CAAC,CAACA,CAAF,EAAS,WAAaA,EAFlD,C,CAIRC,UAAU,CAAG,SAACD,CAAD,QACjBD,MAAK,CAACC,CAAD,CAAL,CAAaA,CAAG,CAACE,OAAjB,CAA2BF,CADV,C,CAGnB,MAAO,IAAMG,gBAAe,CAAGhB,KAAK,CAACiB,UAAN,CAC7B,WAEEJ,CAFF,CAGK,IAFDK,EAEC,GAFDA,QAEC,KAFSC,SAET,CAFSA,CAET,YAFqBC,MAAM,CAACC,QAAP,CAAgBC,IAErC,GAFkDC,CAElD,GAF2CC,KAE3C,CAFgEC,CAEhE,yCACwCjB,gBAAgB,EADxD,CACKkB,CADL,GACKA,OADL,CACsBC,CADtB,GACcC,MADd,GAE2CzB,QAAQ,CACpDW,UAAU,CAACK,CAAD,CAD0C,CAFnD,uBAEIU,CAFJ,MAEqBC,CAFrB,MAMGC,CAAQ,CAAG7B,MAAM,CAAC,IAAD,CANpB,CAQG0B,CAAM,CAAGnB,SAAS,CAACkB,CAAD,QAAgBJ,CAAhB,WAAgBA,CAAhB,QAAgBA,CAAS,CAAEK,MAA3B,CARrB,CAUGI,CAAc,CAAG3B,UAAU,CAAC,CAAC0B,CAAD,CAAWlB,CAAX,CAAD,CAV9B,OAYHZ,UAAS,CAAC,UAAM,CACdyB,CAAO,EAAIA,CAAO,CAAC,CAACK,CAAD,CAAD,CACnB,CAFQ,CAEN,CAACA,CAAD,CAFM,CAZN,CAgBH9B,SAAS,CAAC,UAAM,CACd6B,CAAkB,CAAChB,UAAU,CAACK,CAAD,CAAX,CACnB,CAFQ,CAEN,CAACL,UAAU,CAACK,CAAD,CAAX,CAFM,CAhBN,CAoBEU,CApBF,CAwBIzB,QAAQ,CAAC6B,YAAT,CACL,oBAAC,uBAAD,EAAyB,MAAM,CAAEL,CAAjC,EACE,oBAAC,KAAD,kBACMH,CADN,EAEE,GAAG,CAAEO,CAFP,CAGE,KAAK,gCACAT,CADA,MAEHK,MAAM,CAANA,CAFG,EAHP,GAQGV,CARH,CADF,CADK,CAaLW,CAbK,CAxBJ,CAqBM,IAkBV,CA3C4B,CAAxB"}
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["value","items","getItemLabel","getItemKey","getItemDisabled","onChange","name","direction","size","view","align","disabled","className"];import"./RadioGroup.css";import React,{forwardRef}from"react";import{useChoiceGroup}from"../../hooks/useChoiceGroup/useChoiceGroup";import{cn}from"../../utils/bem";import{Radio}from"../Radio/Radio";import{withDefaultGetters}from"./helper";import{radioGroupDefaultDirection,radioGroupDefaultSize,radioGroupDefaultView,radioGroupPropAlignDefault}from"./types";export var cnRadioGroup=cn("RadioGroup");var RadioGroupRender=function(a,b){var c=withDefaultGetters(a),d=c.value,e=void 0===d?null:d,f=c.items,g=c.getItemLabel,h=c.getItemKey,i=c.getItemDisabled,j=c.onChange,k=c.name,l=c.direction,m=void 0===l?radioGroupDefaultDirection:l,n=c.size,o=void 0===n?radioGroupDefaultSize:n,p=c.view,q=void 0===p?radioGroupDefaultView:p,r=c.align,s=void 0===r?radioGroupPropAlignDefault:r,t=c.disabled,u=c.className,v=_objectWithoutProperties(c,_excluded),w=useChoiceGroup({value:e,getKey:function getKey(a){var b;return null!==(b=h(a))&&void 0!==b?b:g(a)},callBack:j,multiple:!1}),x=w.getOnChange,y=w.getChecked;return React.createElement("div",Object.assign({},v,{ref:b,className:cnRadioGroup({direction:m,size:o,view:q},[u])}),f.map(function(a){var b;return React.createElement(Radio,{align:s,key:null!==(b=h(a))&&void 0!==b?b:g(a),label:g(a),size:o,view:q,name:k,disabled:void 0!==t&&t||!!i&&i(a),checked:y(a),onChange:x(a),className:cnRadioGroup("Item")})}))};export var RadioGroup=forwardRef(RadioGroupRender);export*from"./types";
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["value","items","getItemLabel","getItemKey","getItemDisabled","onChange","name","direction","size","view","align","disabled","className","id"];import"./RadioGroup.css";import React,{forwardRef}from"react";import{useChoiceGroup}from"../../hooks/useChoiceGroup/useChoiceGroup";import{cn}from"../../utils/bem";import{Radio}from"../Radio/Radio";import{withDefaultGetters}from"./helper";import{radioGroupDefaultDirection,radioGroupDefaultSize,radioGroupDefaultView,radioGroupPropAlignDefault}from"./types";export var cnRadioGroup=cn("RadioGroup");var RadioGroupRender=function(a,b){var c=withDefaultGetters(a),d=c.value,e=void 0===d?null:d,f=c.items,g=c.getItemLabel,h=c.getItemKey,i=c.getItemDisabled,j=c.onChange,k=c.name,l=c.direction,m=void 0===l?radioGroupDefaultDirection:l,n=c.size,o=void 0===n?radioGroupDefaultSize:n,p=c.view,q=void 0===p?radioGroupDefaultView:p,r=c.align,s=void 0===r?radioGroupPropAlignDefault:r,t=c.disabled,u=c.className,v=c.id,w=_objectWithoutProperties(c,_excluded),x=useChoiceGroup({value:e,getKey:function getKey(a){var b;return null!==(b=h(a))&&void 0!==b?b:g(a)},callBack:j,multiple:!1}),y=x.getOnChange,z=x.getChecked;return React.createElement("div",Object.assign({},w,{ref:b,className:cnRadioGroup({direction:m,size:o,view:q},[u])}),f.map(function(a){var b;return React.createElement(Radio,{align:s,key:null!==(b=h(a))&&void 0!==b?b:g(a),label:g(a),size:o,view:q,name:k,disabled:void 0!==t&&t||!!i&&i(a),checked:z(a),onChange:y(a),className:cnRadioGroup("Item")})}))};export var RadioGroup=forwardRef(RadioGroupRender);export*from"./types";
2
2
  //# sourceMappingURL=RadioGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","names":["React","forwardRef","useChoiceGroup","cn","Radio","withDefaultGetters","radioGroupDefaultDirection","radioGroupDefaultSize","radioGroupDefaultView","radioGroupPropAlignDefault","cnRadioGroup","RadioGroupRender","props","ref","value","items","getItemLabel","getItemKey","getItemDisabled","onChange","name","direction","size","view","align","disabled","className","otherProps","getKey","item","callBack","multiple","getOnChange","getChecked","map","RadioGroup"],"sources":["../../../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import './RadioGroup.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { useChoiceGroup } from '../../hooks/useChoiceGroup/useChoiceGroup';\nimport { cn } from '../../utils/bem';\nimport { Radio } from '../Radio/Radio';\nimport { withDefaultGetters } from './helper';\nimport {\n RadioGroupComponent,\n radioGroupDefaultDirection,\n radioGroupDefaultSize,\n radioGroupDefaultView,\n radioGroupPropAlignDefault,\n RadioGroupProps,\n} from './types';\n\nexport const cnRadioGroup = cn('RadioGroup');\n\nconst RadioGroupRender = (\n props: RadioGroupProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n value = null,\n items,\n getItemLabel,\n getItemKey,\n getItemDisabled,\n onChange,\n name,\n direction = radioGroupDefaultDirection,\n size = radioGroupDefaultSize,\n view = radioGroupDefaultView,\n align = radioGroupPropAlignDefault,\n disabled = false,\n className,\n ...otherProps\n } = withDefaultGetters(props);\n\n const { getOnChange, getChecked } = useChoiceGroup({\n value,\n getKey: (item) => getItemKey(item) ?? getItemLabel(item),\n callBack: onChange,\n multiple: false,\n });\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnRadioGroup({ direction, size, view }, [className])}\n >\n {items.map((item) => (\n <Radio\n align={align}\n key={getItemKey(item) ?? getItemLabel(item)}\n label={getItemLabel(item)}\n size={size}\n view={view}\n name={name}\n disabled={disabled || (!!getItemDisabled && getItemDisabled(item))}\n checked={getChecked(item)}\n onChange={getOnChange(item)}\n className={cnRadioGroup('Item')}\n />\n ))}\n </div>\n );\n};\n\nexport const RadioGroup = forwardRef(RadioGroupRender) as RadioGroupComponent;\n\nexport * from './types';\n"],"mappings":"8OAAA,yBAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,cAAT,iDACA,OAASC,EAAT,uBACA,OAASC,KAAT,sBACA,OAASC,kBAAT,gBACA,OAEEC,0BAFF,CAGEC,qBAHF,CAIEC,qBAJF,CAKEC,0BALF,eASA,MAAO,IAAMC,aAAY,CAAGP,EAAE,CAAC,YAAD,CAAvB,CAEP,GAAMQ,iBAAgB,CAAG,SACvBC,CADuB,CAEvBC,CAFuB,CAGpB,OAgBCR,kBAAkB,CAACO,CAAD,CAhBnB,KAEDE,KAFC,CAEDA,CAFC,YAEO,IAFP,GAGDC,CAHC,GAGDA,KAHC,CAIDC,CAJC,GAIDA,YAJC,CAKDC,CALC,GAKDA,UALC,CAMDC,CANC,GAMDA,eANC,CAODC,CAPC,GAODA,QAPC,CAQDC,CARC,GAQDA,IARC,KASDC,SATC,CASDA,CATC,YASWf,0BATX,OAUDgB,IAVC,CAUDA,CAVC,YAUMf,qBAVN,OAWDgB,IAXC,CAWDA,CAXC,YAWMf,qBAXN,OAYDgB,KAZC,CAYDA,CAZC,YAYOf,0BAZP,OAaDgB,QAbC,CAcDC,CAdC,GAcDA,SAdC,CAeEC,CAfF,yCAkBiCzB,cAAc,CAAC,CACjDY,KAAK,CAALA,CADiD,CAEjDc,MAAM,CAAE,gBAACC,CAAD,yBAAUZ,CAAU,CAACY,CAAD,CAApB,gBAA8Bb,CAAY,CAACa,CAAD,CAA1C,CAFyC,CAGjDC,QAAQ,CAAEX,CAHuC,CAIjDY,QAAQ,GAJyC,CAAD,CAlB/C,CAkBKC,CAlBL,GAkBKA,WAlBL,CAkBkBC,CAlBlB,GAkBkBA,UAlBlB,CAyBH,MACE,4CACMN,CADN,EAEE,GAAG,CAAEd,CAFP,CAGE,SAAS,CAAEH,YAAY,CAAC,CAAEW,SAAS,CAATA,CAAF,CAAaC,IAAI,CAAJA,CAAb,CAAmBC,IAAI,CAAJA,CAAnB,CAAD,CAA4B,CAACG,CAAD,CAA5B,CAHzB,GAKGX,CAAK,CAACmB,GAAN,CAAU,SAACL,CAAD,cACT,qBAAC,KAAD,EACE,KAAK,CAAEL,CADT,CAEE,GAAG,WAAEP,CAAU,CAACY,CAAD,CAAZ,gBAAsBb,CAAY,CAACa,CAAD,CAFvC,CAGE,KAAK,CAAEb,CAAY,CAACa,CAAD,CAHrB,CAIE,IAAI,CAAEP,CAJR,CAKE,IAAI,CAAEC,CALR,CAME,IAAI,CAAEH,CANR,CAOE,QAAQ,CAAE,eAAa,CAAC,CAACF,CAAF,EAAqBA,CAAe,CAACW,CAAD,CAP7D,CAQE,OAAO,CAAEI,CAAU,CAACJ,CAAD,CARrB,CASE,QAAQ,CAAEG,CAAW,CAACH,CAAD,CATvB,CAUE,SAAS,CAAEnB,YAAY,CAAC,MAAD,CAVzB,EADS,CAAV,CALH,CAqBH,CAlDD,CAoDA,MAAO,IAAMyB,WAAU,CAAGlC,UAAU,CAACU,gBAAD,CAA7B,CAEP"}
1
+ {"version":3,"file":"RadioGroup.js","names":["React","forwardRef","useChoiceGroup","cn","Radio","withDefaultGetters","radioGroupDefaultDirection","radioGroupDefaultSize","radioGroupDefaultView","radioGroupPropAlignDefault","cnRadioGroup","RadioGroupRender","props","ref","value","items","getItemLabel","getItemKey","getItemDisabled","onChange","name","direction","size","view","align","disabled","className","id","otherProps","getKey","item","callBack","multiple","getOnChange","getChecked","map","RadioGroup"],"sources":["../../../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import './RadioGroup.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { useChoiceGroup } from '../../hooks/useChoiceGroup/useChoiceGroup';\nimport { cn } from '../../utils/bem';\nimport { Radio } from '../Radio/Radio';\nimport { withDefaultGetters } from './helper';\nimport {\n RadioGroupComponent,\n radioGroupDefaultDirection,\n radioGroupDefaultSize,\n radioGroupDefaultView,\n radioGroupPropAlignDefault,\n RadioGroupProps,\n} from './types';\n\nexport const cnRadioGroup = cn('RadioGroup');\n\nconst RadioGroupRender = (\n props: RadioGroupProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n value = null,\n items,\n getItemLabel,\n getItemKey,\n getItemDisabled,\n onChange,\n name,\n direction = radioGroupDefaultDirection,\n size = radioGroupDefaultSize,\n view = radioGroupDefaultView,\n align = radioGroupPropAlignDefault,\n disabled = false,\n className,\n id,\n ...otherProps\n } = withDefaultGetters(props);\n\n const { getOnChange, getChecked } = useChoiceGroup({\n value,\n getKey: (item) => getItemKey(item) ?? getItemLabel(item),\n callBack: onChange,\n multiple: false,\n });\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnRadioGroup({ direction, size, view }, [className])}\n >\n {items.map((item) => (\n <Radio\n align={align}\n key={getItemKey(item) ?? getItemLabel(item)}\n label={getItemLabel(item)}\n size={size}\n view={view}\n name={name}\n disabled={disabled || (!!getItemDisabled && getItemDisabled(item))}\n checked={getChecked(item)}\n onChange={getOnChange(item)}\n className={cnRadioGroup('Item')}\n />\n ))}\n </div>\n );\n};\n\nexport const RadioGroup = forwardRef(RadioGroupRender) as RadioGroupComponent;\n\nexport * from './types';\n"],"mappings":"mPAAA,yBAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,cAAT,iDACA,OAASC,EAAT,uBACA,OAASC,KAAT,sBACA,OAASC,kBAAT,gBACA,OAEEC,0BAFF,CAGEC,qBAHF,CAIEC,qBAJF,CAKEC,0BALF,eASA,MAAO,IAAMC,aAAY,CAAGP,EAAE,CAAC,YAAD,CAAvB,CAEP,GAAMQ,iBAAgB,CAAG,SACvBC,CADuB,CAEvBC,CAFuB,CAGpB,OAiBCR,kBAAkB,CAACO,CAAD,CAjBnB,KAEDE,KAFC,CAEDA,CAFC,YAEO,IAFP,GAGDC,CAHC,GAGDA,KAHC,CAIDC,CAJC,GAIDA,YAJC,CAKDC,CALC,GAKDA,UALC,CAMDC,CANC,GAMDA,eANC,CAODC,CAPC,GAODA,QAPC,CAQDC,CARC,GAQDA,IARC,KASDC,SATC,CASDA,CATC,YASWf,0BATX,OAUDgB,IAVC,CAUDA,CAVC,YAUMf,qBAVN,OAWDgB,IAXC,CAWDA,CAXC,YAWMf,qBAXN,OAYDgB,KAZC,CAYDA,CAZC,YAYOf,0BAZP,OAaDgB,QAbC,CAcDC,CAdC,GAcDA,SAdC,CAeDC,CAfC,GAeDA,EAfC,CAgBEC,CAhBF,yCAmBiC1B,cAAc,CAAC,CACjDY,KAAK,CAALA,CADiD,CAEjDe,MAAM,CAAE,gBAACC,CAAD,yBAAUb,CAAU,CAACa,CAAD,CAApB,gBAA8Bd,CAAY,CAACc,CAAD,CAA1C,CAFyC,CAGjDC,QAAQ,CAAEZ,CAHuC,CAIjDa,QAAQ,GAJyC,CAAD,CAnB/C,CAmBKC,CAnBL,GAmBKA,WAnBL,CAmBkBC,CAnBlB,GAmBkBA,UAnBlB,CA0BH,MACE,4CACMN,CADN,EAEE,GAAG,CAAEf,CAFP,CAGE,SAAS,CAAEH,YAAY,CAAC,CAAEW,SAAS,CAATA,CAAF,CAAaC,IAAI,CAAJA,CAAb,CAAmBC,IAAI,CAAJA,CAAnB,CAAD,CAA4B,CAACG,CAAD,CAA5B,CAHzB,GAKGX,CAAK,CAACoB,GAAN,CAAU,SAACL,CAAD,cACT,qBAAC,KAAD,EACE,KAAK,CAAEN,CADT,CAEE,GAAG,WAAEP,CAAU,CAACa,CAAD,CAAZ,gBAAsBd,CAAY,CAACc,CAAD,CAFvC,CAGE,KAAK,CAAEd,CAAY,CAACc,CAAD,CAHrB,CAIE,IAAI,CAAER,CAJR,CAKE,IAAI,CAAEC,CALR,CAME,IAAI,CAAEH,CANR,CAOE,QAAQ,CAAE,eAAa,CAAC,CAACF,CAAF,EAAqBA,CAAe,CAACY,CAAD,CAP7D,CAQE,OAAO,CAAEI,CAAU,CAACJ,CAAD,CARrB,CASE,QAAQ,CAAEG,CAAW,CAACH,CAAD,CATvB,CAUE,SAAS,CAAEpB,YAAY,CAAC,MAAD,CAVzB,EADS,CAAV,CALH,CAqBH,CAnDD,CAqDA,MAAO,IAAM0B,WAAU,CAAGnC,UAAU,CAACU,gBAAD,CAA7B,CAEP"}
@@ -1 +1 @@
1
- .Sidebar{--sidebar-size-s:260px;--sidebar-size-m:320px;--sidebar-size-l:480px;--sidebar-size-1-of-4:25;--sidebar-size-3-of-4:75;--sidebar-size-1-of-2:50;--sidebar-size-1-of-3:33.33333;--sidebar-size-2-of-3:66.66667;--sidebar-size-full:100;bottom:0;display:flex;left:0;overflow:hidden;position:fixed;right:0;top:0}.Sidebar:not(.Sidebar_hasOverlay){pointer-events:none}.Sidebar_position_top{flex-direction:column}.Sidebar_position_bottom{flex-direction:column;justify-content:flex-end}.Sidebar_position_right{justify-content:flex-end}.Sidebar-Overlay{background:var(--color-bg-tone);border:none;bottom:0;left:0;padding:0;position:absolute;right:0;top:0}.Sidebar-Overlay_animate_exited,.Sidebar-Overlay_animate_exiting{opacity:0}.Sidebar-Overlay_animate_entered,.Sidebar-Overlay_animate_entering{opacity:1}.Sidebar-Overlay_animate_entered,.Sidebar-Overlay_animate_entering,.Sidebar-Overlay_animate_exited,.Sidebar-Overlay_animate_exiting{transition:opacity .24s ease}.Sidebar-Window{background-color:var(--color-bg-default);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;pointer-events:auto;position:absolute}.Sidebar-Window_position_right{--sidebar-transform:translate3d(100%,0,0);height:100vh;width:var(--sidebar-width)}.Sidebar-Window_position_bottom{--sidebar-transform:translate3d(0,100%,0);height:var(--sidebar-height);width:100vw}.Sidebar-Window_position_left{--sidebar-transform:translate3d(-100%,0,0);height:100vh;width:var(--sidebar-width)}.Sidebar-Window_position_top{--sidebar-transform:translate3d(0,-100%,0);height:var(--sidebar-height);width:100vw}.Sidebar-Window_size_s{--sidebar-width:var(--sidebar-size-s);--sidebar-height:var(--sidebar-size-s)}.Sidebar-Window_size_m{--sidebar-width:var(--sidebar-size-m);--sidebar-height:var(--sidebar-size-m)}.Sidebar-Window_size_l{--sidebar-width:var(--sidebar-size-l);--sidebar-height:var(--sidebar-size-l)}.Sidebar-Window_size_full{--sidebar-width:calc(var(--sidebar-size-full)*1vw);--sidebar-height:calc(var(--sidebar-size-full)*1vh)}.Sidebar-Window_size_1\/4{--sidebar-width:calc(var(--sidebar-size-1-of-4)*1vw);--sidebar-height:calc(var(--sidebar-size-1-of-4)*1vh)}.Sidebar-Window_size_3\/4{--sidebar-width:calc(var(--sidebar-size-3-of-4)*1vw);--sidebar-height:calc(var(--sidebar-size-3-of-4)*1vh)}.Sidebar-Window_size_1\/2{--sidebar-width:calc(var(--sidebar-size-1-of-2)*1vw);--sidebar-height:calc(var(--sidebar-size-1-of-2)*1vh)}.Sidebar-Window_size_1\/3{--sidebar-width:calc(var(--sidebar-size-1-of-3)*1vw);--sidebar-height:calc(var(--sidebar-size-1-of-3)*1vh)}.Sidebar-Window_size_2\/3{--sidebar-width:calc(var(--sidebar-size-2-of-3)*1vw);--sidebar-height:calc(var(--sidebar-size-2-of-3)*1vh)}.Sidebar-Window_animate_exited,.Sidebar-Window_animate_exiting{transform:var(--sidebar-transform)}.Sidebar-Window_animate_entered,.Sidebar-Window_animate_entering{transform:translateZ(0)}.Sidebar-Window_animate_entered,.Sidebar-Window_animate_entering,.Sidebar-Window_animate_exited,.Sidebar-Window_animate_exiting{transition:transform .24s ease}.Sidebar-Content{flex:1;overflow:auto}.Sidebar-Actions{border-top:1px solid var(--color-bg-border);flex-shrink:0}
1
+ .Sidebar{bottom:0;box-sizing:border-box;display:flex;left:0;overflow:hidden;position:fixed;right:0;top:0}.Sidebar:not(.Sidebar_hasOverlay){pointer-events:none}.Sidebar_position_top{flex-direction:column}.Sidebar_position_bottom{flex-direction:column;justify-content:flex-end}.Sidebar_position_right{justify-content:flex-end}.Sidebar-Overlay{background:var(--color-bg-tone);border:none;bottom:0;left:0;padding:0;position:absolute;right:0;top:0}.Sidebar-Overlay_animate_exited,.Sidebar-Overlay_animate_exiting{opacity:0}.Sidebar-Overlay_animate_entered,.Sidebar-Overlay_animate_entering{opacity:1}.Sidebar-Overlay_animate_entered,.Sidebar-Overlay_animate_entering,.Sidebar-Overlay_animate_exited,.Sidebar-Overlay_animate_exiting{transition:opacity var(--sidebar-animate-timeout) ease}.Sidebar-Window{--sidebar-border:none;background-color:var(--color-bg-default);box-shadow:var(--sidebar-modal-shadow);display:flex;flex-direction:column;max-height:100%;max-width:100%;pointer-events:auto;position:absolute}.Sidebar-Window_border{--sidebar-border:1px solid var(--color-bg-border)}.Sidebar-Window_position_right{--sidebar-transform:translate3d(100%,0,0);border-left:var(--sidebar-border);height:100%;width:var(--sidebar-size)}.Sidebar-Window_position_bottom{--sidebar-transform:translate3d(0,100%,0);border-top:var(--sidebar-border);height:var(--sidebar-size);width:100%}.Sidebar-Window_position_left{--sidebar-transform:translate3d(-100%,0,0);border-right:var(--sidebar-border);height:100%;width:var(--sidebar-size)}.Sidebar-Window_position_top{--sidebar-transform:translate3d(0,-100%,0);border-bottom:var(--sidebar-border);height:var(--sidebar-size);width:100%}.Sidebar-Window_size_s{--sidebar-size:260px}.Sidebar-Window_size_m{--sidebar-size:320px}.Sidebar-Window_size_l{--sidebar-size:480px}.Sidebar-Window_size_full{--sidebar-size:100%}.Sidebar-Window_size_1\/4{--sidebar-size:25%}.Sidebar-Window_size_3\/4{--sidebar-size:75%}.Sidebar-Window_size_1\/2{--sidebar-size:50%}.Sidebar-Window_size_1\/3{--sidebar-size:33.33333%}.Sidebar-Window_size_2\/3{--sidebar-size:66.66667%}.Sidebar-Window_animate_exited,.Sidebar-Window_animate_exiting{--sidebar-modal-shadow:0 0 0 transparent,0 0 0 transparent;transform:var(--sidebar-transform)}.Sidebar-Window_animate_entered,.Sidebar-Window_animate_entering{--sidebar-modal-shadow:var(--shadow-modal);transform:translateZ(0)}.Sidebar-Window_animate_entered,.Sidebar-Window_animate_entering,.Sidebar-Window_animate_exited,.Sidebar-Window_animate_exiting{transition:transform var(--sidebar-animate-timeout),box-shadow var(--sidebar-animate-timeout) ease-in}.Sidebar-Content,.Sidebar-Scroll{display:flex;flex:1;flex-direction:column}.Sidebar-Scroll{height:100%;overflow:auto}.Sidebar-Actions{border-top:1px solid var(--color-bg-border);flex-shrink:0}
@@ -1,39 +1,4 @@
1
1
  import './Sidebar.css';
2
- import React from 'react';
3
- import { AsTagAttribute } from '../../utils/types/AsTags';
4
- import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';
5
- declare const sidebarPropPosition: readonly ["right", "bottom", "left", "top"];
6
- type SidebarPropPosition = typeof sidebarPropPosition[number];
7
- export declare const sidebarPropSize: readonly ["s", "m", "l", "full", "1/2", "1/3", "1/4", "2/3", "3/4"];
8
- export type SidebarPropSize = typeof sidebarPropSize[number];
9
- export type SidebarProps = PropsWithHTMLAttributes<{
10
- isOpen?: boolean;
11
- onClose?: () => void;
12
- onOpen?: () => void;
13
- hasOverlay?: boolean;
14
- onClickOutside?: (event: MouseEvent) => void;
15
- onEsc?: (event: KeyboardEvent) => void;
16
- position?: SidebarPropPosition;
17
- size?: SidebarPropSize;
18
- rootClassName?: string;
19
- children?: React.ReactNode;
20
- container?: HTMLDivElement | undefined;
21
- afterClose?: () => void;
22
- }, HTMLDivElement>;
23
- type SidebarContentProps = {
24
- className?: string;
25
- children: React.ReactNode;
26
- };
27
- type SidebarActionsProps = {
28
- className?: string;
29
- children: React.ReactNode;
30
- };
2
+ import { SidebarComponent } from './types';
31
3
  export declare const cnSidebar: import("@bem-react/classname").ClassNameFormatter;
32
- declare const SidebarContent: React.FC<SidebarContentProps>;
33
- declare const SidebarActions: React.FC<SidebarActionsProps>;
34
- interface SidebarComponent extends React.FC<SidebarProps>, AsTagAttribute<'div'> {
35
- Content: typeof SidebarContent;
36
- Actions: typeof SidebarActions;
37
- }
38
4
  export declare const Sidebar: SidebarComponent;
39
- export {};
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","children"],_excluded2=["className","children"],_excluded3=["isOpen","onClose","onOpen","hasOverlay","onClickOutside","onEsc","position","size","className","children","container","style","rootClassName","afterClose"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Sidebar.css";import React,{useEffect,useRef}from"react";import{Transition}from"react-transition-group";import{PortalWithTheme,PortalWithThemeConsumer}from"../PortalWithTheme";import{useTheme}from"../Theme/Theme";import{useGlobalKeys}from"../../hooks/useGlobalKeys";import{cnMixScrollBar}from"../../mixs/MixScrollBar";import{cn}from"../../utils/bem";var sidebarPropPosition=["right","bottom","left","top"],sidebarPropPositionDefault=sidebarPropPosition[0];export var sidebarPropSize=["s","m","l","full","1/2","1/3","1/4","2/3","3/4"];var sidebarPropSizeDefault=sidebarPropSize[1];export var cnSidebar=cn("Sidebar");var SidebarContent=function(a){var b=a.className,c=a.children,d=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({className:cnSidebar("Content",[b,cnMixScrollBar()])},d),c)},SidebarActions=function(a){var b=a.className,c=a.children,d=_objectWithoutProperties(a,_excluded2);return React.createElement("div",Object.assign({className:cnSidebar("Actions",[b])},d),c)};export var Sidebar=function(a){var b=a.isOpen,c=a.onClose,d=a.onOpen,e=a.hasOverlay,f=void 0===e||e,g=a.onClickOutside,h=a.onEsc,i=a.position,j=void 0===i?sidebarPropPositionDefault:i,k=a.size,l=void 0===k?sidebarPropSizeDefault:k,m=a.className,n=a.children,o=a.container,p=void 0===o?window.document.body:o,q=a.style,r=a.rootClassName,s=a.afterClose,t=_objectWithoutProperties(a,_excluded3),u=useRef(null),v=useRef(null),w=useTheme(),x=w.theme;return useEffect(function(){b?null===d||void 0===d?void 0:d():null===c||void 0===c?void 0:c()},[b]),useGlobalKeys({Escape:function Escape(a){return b&&h&&h(a)}}),React.createElement(Transition,{in:b,unmountOnExit:!0,timeout:240,nodeRef:v,onExiting:s},function(a){return React.createElement(PortalWithTheme,{preset:x,ref:v,container:p,className:cnSidebar({position:j,hasOverlay:f},[r]),style:"number"==typeof(null===q||void 0===q?void 0:q.zIndex)?{zIndex:q.zIndex}:void 0},f&&React.createElement("div",{className:cnSidebar("Overlay",{animate:a}),"aria-label":"Overlay"}),React.createElement("div",Object.assign({},t,{style:_objectSpread(_objectSpread({},q),{},{zIndex:void 0}),className:cnSidebar("Window",{size:l,position:j,animate:a},[m]),ref:u}),React.createElement(PortalWithThemeConsumer,{onClickOutside:g,ignoreClicksInsideRefs:[u]},n)))})};Sidebar.Content=SidebarContent,Sidebar.Actions=SidebarActions;
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","children"],_excluded2=["className","children"],_excluded3=["isOpen","onClose","onOpen","hasOverlay","onClickOutside","onEsc","position","size","className","children","container","style","rootClassName","afterClose","ignoreOutsideClicksRefs","border"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Sidebar.css";import React,{forwardRef}from"react";import{Transition}from"react-transition-group";import{useModal}from"../Modal/useModal";import{PortalWithTheme,PortalWithThemeConsumer}from"../PortalWithTheme";import{cnMixScrollBar}from"../../mixs/MixScrollBar";import{cn}from"../../utils/bem";import{withCtx}from"../../utils/state";import{useAnimateTimeout}from"./useAnimateTimeout";export var cnSidebar=cn("Sidebar");var SidebarContent=function(a){var b=a.className,c=a.children,d=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({className:cnSidebar("Content",[b,cnMixScrollBar()])},d),c)},SidebarActions=function(a){var b=a.className,c=a.children,d=_objectWithoutProperties(a,_excluded2);return React.createElement("div",Object.assign({className:cnSidebar("Actions",[b])},d),c)};export var Sidebar=withCtx(forwardRef(function(a,b){var c=a.isOpen,d=a.onClose,e=a.onOpen,f=a.hasOverlay,g=!(void 0!==f)||f,h=a.onClickOutside,i=a.onEsc,j=a.position,k=void 0===j?"right":j,l=a.size,m=void 0===l?"m":l,n=a.className,o=a.children,p=a.container,q=void 0===p?window.document.body:p,r=a.style,s=a.rootClassName,t=a.afterClose,u=a.ignoreOutsideClicksRefs,v=a.border,w=_objectWithoutProperties(a,_excluded3),x=useModal({ref:b,isOpen:c,onEsc:i,onOpen:e,onClose:d,ignoreOutsideClicksRefs:u}),y=x.shadowHeader,z=x.shadowFooter,A=x.scrollable,B=x.theme,C=x.portalRef,D=x.windowRef,E=x.contentRef,F=x.scrollRef,G=x.ignoreOutsideClicksRefs,H=x.windowElAtom,I=useAnimateTimeout(H,k);return React.createElement(Transition,{in:c,unmountOnExit:!0,timeout:I,nodeRef:C,onExiting:t},function(a){return React.createElement(PortalWithTheme,{preset:B,ref:C,container:q,className:cnSidebar({position:k,hasOverlay:g},[s]),style:_objectSpread(_objectSpread(_objectSpread(_objectSpread({},(null===r||void 0===r?void 0:r.zIndex)&&{zIndex:r.zIndex}),{},_defineProperty({},"--sidebar-animate-timeout","".concat(I,"ms")),y&&_defineProperty({},"--modal-layout-header-color-shadow","var(--color-shadow-group-2)")),z&&_defineProperty({},"--modal-layout-footer-color-shadow","var(--color-shadow-group-2)")),(null===r||void 0===r?void 0:r.zIndex)&&_defineProperty({},"--modal-layout-z-index-for-fixed-slot",r.zIndex))},g&&React.createElement("div",{className:cnSidebar("Overlay",{animate:a}),"aria-label":"Overlay"}),React.createElement("div",Object.assign({},w,{style:_objectSpread(_objectSpread({},r),{},{zIndex:void 0}),className:cnSidebar("Window",{size:m,position:k,animate:a,scrollable:A,border:v},[n]),ref:D}),React.createElement("div",{className:cnSidebar("Scroll",cnMixScrollBar({size:"s"})),ref:F},React.createElement("div",{className:cnSidebar("Content"),ref:E},React.createElement(PortalWithThemeConsumer,{onClickOutside:h,ignoreClicksInsideRefs:G},o)))))})}));Sidebar.Actions=SidebarActions,Sidebar.Content=SidebarContent;
2
2
  //# sourceMappingURL=Sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","names":["React","useEffect","useRef","Transition","PortalWithTheme","PortalWithThemeConsumer","useTheme","useGlobalKeys","cnMixScrollBar","cn","sidebarPropPosition","sidebarPropPositionDefault","sidebarPropSize","sidebarPropSizeDefault","cnSidebar","SidebarContent","className","children","rest","SidebarActions","Sidebar","props","isOpen","onClose","onOpen","hasOverlay","onClickOutside","onEsc","position","size","container","window","document","body","style","rootClassName","afterClose","otherProps","ref","portalRef","theme","Escape","e","animate","zIndex","Content","Actions"],"sources":["../../../../../src/components/Sidebar/Sidebar.tsx"],"sourcesContent":["import './Sidebar.css';\n\nimport React, { useEffect, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport {\n PortalWithTheme,\n PortalWithThemeConsumer,\n} from '##/components/PortalWithTheme';\nimport { useTheme } from '##/components/Theme/Theme';\nimport { useGlobalKeys } from '##/hooks/useGlobalKeys';\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cn } from '##/utils/bem';\nimport { AsTagAttribute } from '##/utils/types/AsTags';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nconst sidebarPropPosition = ['right', 'bottom', 'left', 'top'] as const;\ntype SidebarPropPosition = typeof sidebarPropPosition[number];\nconst sidebarPropPositionDefault: SidebarPropPosition = sidebarPropPosition[0];\n\nexport const sidebarPropSize = [\n 's',\n 'm',\n 'l',\n 'full',\n '1/2',\n '1/3',\n '1/4',\n '2/3',\n '3/4',\n] as const;\n\nexport type SidebarPropSize = typeof sidebarPropSize[number];\nconst sidebarPropSizeDefault: SidebarPropSize = sidebarPropSize[1];\n\nexport type SidebarProps = PropsWithHTMLAttributes<\n {\n isOpen?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n hasOverlay?: boolean;\n onClickOutside?: (event: MouseEvent) => void;\n onEsc?: (event: KeyboardEvent) => void;\n position?: SidebarPropPosition;\n size?: SidebarPropSize;\n rootClassName?: string;\n children?: React.ReactNode;\n container?: HTMLDivElement | undefined;\n afterClose?: () => void;\n },\n HTMLDivElement\n>;\n\ntype SidebarContentProps = {\n className?: string;\n children: React.ReactNode;\n};\n\ntype SidebarActionsProps = {\n className?: string;\n children: React.ReactNode;\n};\n\nexport const cnSidebar = cn('Sidebar');\n\nconst SidebarContent: React.FC<SidebarContentProps> = ({\n className,\n children,\n ...rest\n}) => (\n <div\n className={cnSidebar('Content', [className, cnMixScrollBar()])}\n {...rest}\n >\n {children}\n </div>\n);\n\nconst SidebarActions: React.FC<SidebarActionsProps> = ({\n className,\n children,\n ...rest\n}) => (\n <div className={cnSidebar('Actions', [className])} {...rest}>\n {children}\n </div>\n);\n\ninterface SidebarComponent\n extends React.FC<SidebarProps>,\n AsTagAttribute<'div'> {\n Content: typeof SidebarContent;\n Actions: typeof SidebarActions;\n}\n\nexport const Sidebar: SidebarComponent = (props) => {\n const {\n isOpen,\n onClose,\n onOpen,\n hasOverlay = true,\n onClickOutside,\n onEsc,\n position = sidebarPropPositionDefault,\n size = sidebarPropSizeDefault,\n className,\n children,\n container = window.document.body,\n style,\n rootClassName,\n afterClose,\n ...otherProps\n } = props;\n\n const ref = useRef<HTMLDivElement | null>(null);\n\n const portalRef = useRef<HTMLDivElement>(null);\n\n const { theme } = useTheme();\n\n useEffect(() => {\n if (isOpen) {\n onOpen?.();\n } else {\n onClose?.();\n }\n }, [isOpen]);\n\n useGlobalKeys({\n Escape: (e) => isOpen && onEsc && onEsc(e),\n });\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n timeout={240}\n nodeRef={portalRef}\n onExiting={afterClose}\n >\n {(animate) => (\n <PortalWithTheme\n preset={theme}\n ref={portalRef}\n container={container}\n className={cnSidebar({ position, hasOverlay }, [rootClassName])}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex }\n : undefined\n }\n >\n {hasOverlay && (\n <div\n className={cnSidebar('Overlay', { animate })}\n aria-label=\"Overlay\"\n />\n )}\n <div\n {...otherProps}\n style={{\n ...style,\n zIndex: undefined,\n }}\n className={cnSidebar('Window', { size, position, animate }, [\n className,\n ])}\n ref={ref}\n >\n <PortalWithThemeConsumer\n onClickOutside={onClickOutside}\n ignoreClicksInsideRefs={[ref]}\n >\n {children}\n </PortalWithThemeConsumer>\n </div>\n </PortalWithTheme>\n )}\n </Transition>\n );\n};\n\nSidebar.Content = SidebarContent;\nSidebar.Actions = SidebarActions;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Sidebar.js","names":["React","forwardRef","Transition","useModal","PortalWithTheme","PortalWithThemeConsumer","cnMixScrollBar","cn","withCtx","useAnimateTimeout","cnSidebar","SidebarContent","className","children","rest","SidebarActions","Sidebar","props","ref","isOpen","onClose","onOpen","hasOverlay","onClickOutside","onEsc","position","size","container","window","document","body","style","rootClassName","afterClose","ignoreOutsideClicksRefsProp","ignoreOutsideClicksRefs","border","otherProps","shadowHeader","shadowFooter","scrollable","theme","portalRef","windowRef","contentRef","scrollRef","windowElAtom","animateTimeout","animate","zIndex","Actions","Content"],"sources":["../../../../../src/components/Sidebar/Sidebar.tsx"],"sourcesContent":["import './Sidebar.css';\n\nimport React, { forwardRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { useModal } from '##/components/Modal/useModal';\nimport {\n PortalWithTheme,\n PortalWithThemeConsumer,\n} from '##/components/PortalWithTheme';\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cn } from '##/utils/bem';\nimport { withCtx } from '##/utils/state';\n\nimport {\n SidebarActionsProps,\n SidebarComponent,\n SidebarContentProps,\n SidebarProps,\n} from './types';\nimport { useAnimateTimeout } from './useAnimateTimeout';\n\nexport const cnSidebar = cn('Sidebar');\n\nconst SidebarContent: React.FC<SidebarContentProps> = ({\n className,\n children,\n ...rest\n}) => (\n <div\n className={cnSidebar('Content', [className, cnMixScrollBar()])}\n {...rest}\n >\n {children}\n </div>\n);\n\nconst SidebarActions: React.FC<SidebarActionsProps> = ({\n className,\n children,\n ...rest\n}) => (\n <div className={cnSidebar('Actions', [className])} {...rest}>\n {children}\n </div>\n);\n\nexport const Sidebar = withCtx(\n forwardRef<HTMLDivElement, SidebarProps>((props, ref) => {\n const {\n isOpen,\n onClose,\n onOpen,\n hasOverlay = true,\n onClickOutside,\n onEsc,\n position = 'right',\n size = 'm',\n className,\n children,\n container = window.document.body,\n style,\n rootClassName,\n afterClose,\n ignoreOutsideClicksRefs: ignoreOutsideClicksRefsProp,\n border,\n ...otherProps\n } = props;\n\n const {\n shadowHeader,\n shadowFooter,\n scrollable,\n theme,\n portalRef,\n windowRef,\n contentRef,\n scrollRef,\n ignoreOutsideClicksRefs,\n windowElAtom,\n } = useModal({\n ref,\n isOpen,\n onEsc,\n onOpen,\n onClose,\n ignoreOutsideClicksRefs: ignoreOutsideClicksRefsProp,\n });\n\n const animateTimeout = useAnimateTimeout(windowElAtom, position);\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n timeout={animateTimeout}\n nodeRef={portalRef}\n onExiting={afterClose}\n >\n {(animate) => (\n <PortalWithTheme\n preset={theme}\n ref={portalRef}\n container={container}\n className={cnSidebar({ position, hasOverlay }, [rootClassName])}\n style={{\n ...(style?.zIndex && {\n zIndex: style.zIndex,\n }),\n ['--sidebar-animate-timeout' as string]: `${animateTimeout}ms`,\n ...(shadowHeader && {\n ['--modal-layout-header-color-shadow' as string]:\n 'var(--color-shadow-group-2)',\n }),\n ...(shadowFooter && {\n ['--modal-layout-footer-color-shadow' as string]:\n 'var(--color-shadow-group-2)',\n }),\n ...(style?.zIndex && {\n ['--modal-layout-z-index-for-fixed-slot' as string]:\n style.zIndex,\n }),\n }}\n >\n {hasOverlay && (\n <div\n className={cnSidebar('Overlay', { animate })}\n aria-label=\"Overlay\"\n />\n )}\n <div\n {...otherProps}\n style={{\n ...style,\n zIndex: undefined,\n }}\n className={cnSidebar(\n 'Window',\n {\n size,\n position,\n animate,\n scrollable,\n border,\n },\n [className],\n )}\n ref={windowRef}\n >\n <div\n className={cnSidebar('Scroll', cnMixScrollBar({ size: 's' }))}\n ref={scrollRef}\n >\n <div className={cnSidebar('Content')} ref={contentRef}>\n <PortalWithThemeConsumer\n onClickOutside={onClickOutside}\n ignoreClicksInsideRefs={ignoreOutsideClicksRefs}\n >\n {children}\n </PortalWithThemeConsumer>\n </div>\n </div>\n </div>\n </PortalWithTheme>\n )}\n </Transition>\n );\n }),\n) as SidebarComponent;\n/**\n * @deprecated use actions\n */\nSidebar.Actions = SidebarActions;\n\n/**\n * @deprecated use actions\n */\nSidebar.Content = SidebarContent;\n"],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export * from './Sidebar';
2
+ export * from './types';
@@ -1,2 +1,2 @@
1
- export*from"./Sidebar";
1
+ export*from"./Sidebar";export*from"./types";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/Sidebar/index.ts"],"sourcesContent":["export * from './Sidebar';\n"],"mappings":"AAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/Sidebar/index.ts"],"sourcesContent":["export * from './Sidebar';\nexport * from './types';\n"],"mappings":"AAAA,uBACA"}
@@ -0,0 +1,47 @@
1
+ import { AsTagAttribute } from '../../utils/types/AsTags';
2
+ import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';
3
+ declare const sidebarPropPosition: readonly ["right", "bottom", "left", "top"];
4
+ export type SidebarPropPosition = typeof sidebarPropPosition[number];
5
+ export declare const sidebarPropSize: readonly ["s", "m", "l", "full", "none", "1/2", "1/3", "1/4", "2/3", "3/4"];
6
+ export type SidebarPropSize = typeof sidebarPropSize[number];
7
+ export type SidebarProps = PropsWithHTMLAttributes<{
8
+ isOpen?: boolean;
9
+ onClose?: () => void;
10
+ onOpen?: () => void;
11
+ hasOverlay?: boolean;
12
+ onClickOutside?: (event: MouseEvent) => void;
13
+ onEsc?: (event: KeyboardEvent) => void;
14
+ position?: SidebarPropPosition;
15
+ size?: SidebarPropSize;
16
+ rootClassName?: string;
17
+ children?: React.ReactNode;
18
+ container?: HTMLDivElement | React.RefObject<HTMLDivElement>;
19
+ afterClose?: () => void;
20
+ ignoreOutsideClicksRefs?: React.RefObject<HTMLElement>[];
21
+ border?: boolean;
22
+ }, HTMLDivElement>;
23
+ /**
24
+ * @deprecated
25
+ */
26
+ export type SidebarContentProps = {
27
+ className?: string;
28
+ children: React.ReactNode;
29
+ };
30
+ /**
31
+ * @deprecated
32
+ */
33
+ export type SidebarActionsProps = {
34
+ className?: string;
35
+ children: React.ReactNode;
36
+ };
37
+ export interface SidebarComponent extends React.ForwardRefExoticComponent<SidebarProps>, AsTagAttribute<'div'> {
38
+ /**
39
+ * @deprecated
40
+ */
41
+ Content: React.FC<SidebarContentProps>;
42
+ /**
43
+ * @deprecated
44
+ */
45
+ Actions: React.FC<SidebarActionsProps>;
46
+ }
47
+ export {};
@@ -0,0 +1,2 @@
1
+ var sidebarPropPosition=["right","bottom","left","top"];export var sidebarPropSize=["s","m","l","full","none","1/2","1/3","1/4","2/3","3/4"];
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":["sidebarPropPosition","sidebarPropSize"],"sources":["../../../../../src/components/Sidebar/types.ts"],"sourcesContent":["import { AsTagAttribute } from '##/utils/types/AsTags';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nconst sidebarPropPosition = ['right', 'bottom', 'left', 'top'] as const;\nexport type SidebarPropPosition = typeof sidebarPropPosition[number];\n\nexport const sidebarPropSize = [\n 's',\n 'm',\n 'l',\n 'full',\n 'none',\n '1/2',\n '1/3',\n '1/4',\n '2/3',\n '3/4',\n] as const;\n\nexport type SidebarPropSize = typeof sidebarPropSize[number];\n\nexport type SidebarProps = PropsWithHTMLAttributes<\n {\n isOpen?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n hasOverlay?: boolean;\n onClickOutside?: (event: MouseEvent) => void;\n onEsc?: (event: KeyboardEvent) => void;\n position?: SidebarPropPosition;\n size?: SidebarPropSize;\n rootClassName?: string;\n children?: React.ReactNode;\n container?: HTMLDivElement | React.RefObject<HTMLDivElement>;\n afterClose?: () => void;\n ignoreOutsideClicksRefs?: React.RefObject<HTMLElement>[];\n border?: boolean;\n },\n HTMLDivElement\n>;\n\n/**\n * @deprecated\n */\nexport type SidebarContentProps = {\n className?: string;\n children: React.ReactNode;\n};\n\n/**\n * @deprecated\n */\nexport type SidebarActionsProps = {\n className?: string;\n children: React.ReactNode;\n};\n\nexport interface SidebarComponent\n extends React.ForwardRefExoticComponent<SidebarProps>,\n AsTagAttribute<'div'> {\n /**\n * @deprecated\n */\n Content: React.FC<SidebarContentProps>;\n /**\n * @deprecated\n */\n Actions: React.FC<SidebarActionsProps>;\n}\n"],"mappings":"AAGA,GAAMA,oBAAmB,CAAG,CAAC,OAAD,CAAU,QAAV,CAAoB,MAApB,CAA4B,KAA5B,CAA5B,CAGA,MAAO,IAAMC,gBAAe,CAAG,CAC7B,GAD6B,CAE7B,GAF6B,CAG7B,GAH6B,CAI7B,MAJ6B,CAK7B,MAL6B,CAM7B,KAN6B,CAO7B,KAP6B,CAQ7B,KAR6B,CAS7B,KAT6B,CAU7B,KAV6B,CAAxB"}
@@ -0,0 +1,2 @@
1
+ import { AtomMut } from '@reatom/core';
2
+ export declare const useAnimateTimeout: (windowElAtom: AtomMut<HTMLDivElement | null>, position: "right" | "bottom" | "left" | "top") => number;
@@ -0,0 +1,2 @@
1
+ import{useAtom}from"@reatom/npm-react";import{getElementSize}from"../../hooks/useResizeObserved";import{useCreateAtom}from"../../utils/state/useCreateAtom";import{useResizeObservedAtom}from"../../utils/state/useResizeObservedAtom";import{useSendToAtom}from"../../utils/state/useSendToAtom";var coefficient=60;export var useAnimateTimeout=function(a,b){var c=useResizeObservedAtom(useCreateAtom(function(b){return[b.spy(a)]}),getElementSize),d=useSendToAtom(b),e=useCreateAtom(function(a){var b=a.spy(c)[0]||{width:0,height:0},e=a.spy(d),f="right"===e||"left"===e?b.width:b.height,g=Math.ceil(f/100*coefficient);return 150>g?150:Math.min(g,400)});return useAtom(e)[0]};
2
+ //# sourceMappingURL=useAnimateTimeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnimateTimeout.js","names":["useAtom","getElementSize","useCreateAtom","useResizeObservedAtom","useSendToAtom","coefficient","useAnimateTimeout","windowElAtom","position","dimensionsAtom","ctx","spy","positionAtom","useAnimateTimeoutAtom","dimensions","width","height","size","timeout","Math","ceil","min"],"sources":["../../../../../src/components/Sidebar/useAnimateTimeout.ts"],"sourcesContent":["import { AtomMut } from '@reatom/core';\nimport { useAtom } from '@reatom/npm-react';\n\nimport { getElementSize } from '##/hooks/useResizeObserved';\nimport { useCreateAtom } from '##/utils/state/useCreateAtom';\nimport { useResizeObservedAtom } from '##/utils/state/useResizeObservedAtom';\nimport { useSendToAtom } from '##/utils/state/useSendToAtom';\n\nconst coefficient = 60;\n\nexport const useAnimateTimeout = (\n windowElAtom: AtomMut<HTMLDivElement | null>,\n position: 'right' | 'bottom' | 'left' | 'top',\n) => {\n const dimensionsAtom = useResizeObservedAtom(\n useCreateAtom((ctx) => [ctx.spy(windowElAtom)]),\n getElementSize,\n );\n\n const positionAtom = useSendToAtom(position);\n\n const useAnimateTimeoutAtom = useCreateAtom((ctx) => {\n const dimensions = ctx.spy(dimensionsAtom)[0] || { width: 0, height: 0 };\n const position = ctx.spy(positionAtom);\n\n const size =\n position === 'right' || position === 'left'\n ? dimensions.width\n : dimensions.height;\n\n const timeout = Math.ceil((size / 100) * coefficient);\n\n return timeout < 150 ? 150 : Math.min(timeout, 400);\n });\n\n return useAtom(useAnimateTimeoutAtom)[0];\n};\n"],"mappings":"AACA,OAASA,OAAT,KAAwB,mBAAxB,CAEA,OAASC,cAAT,qCACA,OAASC,aAAT,uCACA,OAASC,qBAAT,+CACA,OAASC,aAAT,uCAEA,GAAMC,YAAW,CAAG,EAApB,CAEA,MAAO,IAAMC,kBAAiB,CAAG,SAC/BC,CAD+B,CAE/BC,CAF+B,CAG5B,IACGC,EAAc,CAAGN,qBAAqB,CAC1CD,aAAa,CAAC,SAACQ,CAAD,QAAS,CAACA,CAAG,CAACC,GAAJ,CAAQJ,CAAR,CAAD,CAAT,CAAD,CAD6B,CAE1CN,cAF0C,CADzC,CAMGW,CAAY,CAAGR,aAAa,CAACI,CAAD,CAN/B,CAQGK,CAAqB,CAAGX,aAAa,CAAC,SAACQ,CAAD,CAAS,IAC7CI,EAAU,CAAGJ,CAAG,CAACC,GAAJ,CAAQF,CAAR,EAAwB,CAAxB,GAA8B,CAAEM,KAAK,CAAE,CAAT,CAAYC,MAAM,CAAE,CAApB,CADE,CAE7CR,CAAQ,CAAGE,CAAG,CAACC,GAAJ,CAAQC,CAAR,CAFkC,CAI7CK,CAAI,CACK,OAAb,GAAAT,CAAQ,EAA6B,MAAb,GAAAA,CAAxB,CACIM,CAAU,CAACC,KADf,CAEID,CAAU,CAACE,MAPkC,CAS7CE,CAAO,CAAGC,IAAI,CAACC,IAAL,CAAWH,CAAI,CAAG,GAAR,CAAeZ,WAAzB,CATmC,CAWnD,MAAiB,IAAV,CAAAa,CAAO,CAAS,GAAT,CAAeC,IAAI,CAACE,GAAL,CAASH,CAAT,CAAkB,GAAlB,CAC9B,CAZ0C,CARxC,CAsBH,MAAOlB,QAAO,CAACa,CAAD,CAAP,CAA+B,CAA/B,CACR,CA1BM"}
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["min","max","onChange","onAfterChange","value","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style"];import"./Slider.css";import React,{forwardRef,useRef,useState}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption";import{FieldLabel}from"../FieldLabel";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{useSortSteps}from"../../hooks/useSortSteps";import{cn}from"../../utils/bem";import{defaultTooltipFormatter,getIcon,getMaxForStartField,getMinForEndField,getOnChangeForInput,getValidStep,getValueForInput,isRangeParams,sliderPropSizeDefault}from"./helper";import{SliderInput}from"./SliderInput/SliderInput";import{SliderLine}from"./SliderLine/SliderLine";import{SliderPoint}from"./SliderPoint/SliderPoint";import{useSlider}from"./useSlider/useSlider";import{useSliderStationing}from"./useSliderStationing";var cnSlider=cn("Slider"),sizeMap={xs:"xs",s:"s",m:"m",l:"m"};export var COMPONENT_NAME="Slider";var SliderRender=function(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,a,c),e=d.min,f=void 0===e?0:e,g=d.max,h=void 0===g?100:g,i=d.onChange,j=d.onAfterChange,k=d.value,l=d.step,m=d.disabled,n=void 0!==m&&m,o=d.size,p=void 0===o?sliderPropSizeDefault:o,q=d.view,r=void 0===q?"default":q,s=d.leftSide,t=d.rightSide,u=d.withTooltip,v=d.range,w=void 0!==v&&v,x=d.label,y=d.tooltipDirection,z=d.tooltipPossibleDirections,A=d.labelIcon,B=d.status,C=d.caption,D=d.tooltipFormatter,E=void 0===D?defaultTooltipFormatter:D,F=d.className,G=d.style,H=_objectWithoutProperties(d,_excluded),I=useState(),J=_slicedToArray(I,2),K=J[0],L=J[1],M=useFlag(!1),N=_slicedToArray(M,2),O=N[0],P=N[1],Q=P.on,R=P.off,S=useRef(null),T=useRef(null),U=useRef(null),V=useSortSteps({step:getValidStep(f,h,l),min:f,max:h}),W=l?V:Math.abs((h-f)/100),X=getIcon(t),Y=getIcon(s),Z=sizeMap[p],$=useSlider({disabled:n,range:w,value:k,min:f,max:h,step:W,onChange:i,onAfterChange:j,sliderRef:c,containerRef:S,buttonRefs:[T,U]}),_=$.onKeyPress,aa=$.onFocus,ba=$.handlePress,ca=$.onSliderClick,da=$.popoverPosition,ea=$.activeButton,fa=$.currentValue,ga=useSliderStationing(1===fa.length?fa[0]:fa,f,h,r,w,W,[T,U],c),ha=ga.lineSizes,ia=ga.buttonPositions,ja={role:"button",tabIndex:0,className:cnSlider("Control"),ref:c,onClick:ca},ka=function(a){a?Q():R()};return React.createElement("div",Object.assign({ref:useForkRef([b,S]),className:cnSlider({size:p},[F]),style:G},H),x&&React.createElement(FieldLabel,{icon:A,className:cnSlider("Label"),size:p},x),React.createElement("div",{className:cnSlider("Container")},("input"===s||Y)&&React.createElement("div",{className:cnSlider("Side",{position:"left"})},"input"===s&&React.createElement(SliderInput,{value:getValueForInput(a,0),onFocus:function(){return L(0)},onBlur:function onBlur(){return L(void 0)},onChange:getOnChangeForInput(a,0),size:p,min:f,inputMode:"numeric",max:getMaxForStartField(a),status:B,step:W,disabled:n}),Y&&React.createElement(Y,{size:null!==Z&&void 0!==Z?Z:void 0,view:"secondary"})),React.createElement("div",ja,React.createElement(SliderLine,{hovered:O||"number"==typeof ea,onHover:ka,lines:ha,disabled:n,view:r}),fa.map(function(a,b){var c=1<fa.length&&fa[0]===fa[1]&&a===h&&0===b;return React.createElement(SliderPoint,{hovered:O||"number"==typeof ea,buttonRef:T,popoverPosition:da[b],onKeyPress:_,onFocus:aa,tooltipDirection:y,tooltipPossibleDirections:z,handlePress:ba,disabled:n,active:c,position:ia[b],focused:ea===b||K===b,buttonLabel:b,withTooltip:u,onHover:ka,tooltipFormatter:E,value:a,role:"slider","aria-valuemin":f,"aria-valuemax":h,"aria-valuenow":a,tooltipZIndex:"number"==typeof(null===G||void 0===G?void 0:G.zIndex)?G.zIndex+1:void 0,key:cnSlider("Point",{index:b})})})),("input"===t||X)&&React.createElement("div",{className:cnSlider("Side",{position:"right"})},"input"===t&&React.createElement(SliderInput,{value:getValueForInput(a,1),onChange:getOnChangeForInput(a,1),onBlur:function onBlur(){return L(void 0)},size:p,min:getMinForEndField(a),max:h,onFocus:function(){return L(isRangeParams(a)?1:0)},inputMode:"numeric",status:B,step:W,disabled:n}),X&&React.createElement(X,{size:Z,view:"secondary"}))),C&&React.createElement(FieldCaption,{className:cnSlider("Caption"),status:B},C))};export var Slider=forwardRef(SliderRender);
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["min","max","onChange","onAfterChange","value","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style"];import"./Slider.css";import React,{forwardRef,useRef,useState}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption";import{FieldLabel}from"../FieldLabel";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{useSortSteps}from"../../hooks/useSortSteps";import{cn}from"../../utils/bem";import{defaultTooltipFormatter,getIcon,getMaxForStartField,getMinForEndField,getOnChangeForInput,getValidStep,getValueForInput,isRangeParams,sliderPropSizeDefault}from"./helper";import{SliderInput}from"./SliderInput/SliderInput";import{SliderLine}from"./SliderLine/SliderLine";import{SliderPoint}from"./SliderPoint/SliderPoint";import{useSlider}from"./useSlider/useSlider";import{useSliderStationing}from"./useSliderStationing";var cnSlider=cn("Slider"),sizeMap={xs:"xs",s:"s",m:"m",l:"m"};export var COMPONENT_NAME="Slider";var SliderRender=function(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,a,c),e=d.min,f=void 0===e?0:e,g=d.max,h=void 0===g?100:g,i=d.onChange,j=d.onAfterChange,k=d.value,l=d.step,m=d.disabled,n=void 0!==m&&m,o=d.size,p=void 0===o?sliderPropSizeDefault:o,q=d.view,r=void 0===q?"default":q,s=d.leftSide,t=d.rightSide,u=d.withTooltip,v=d.range,w=void 0!==v&&v,x=d.label,y=d.tooltipDirection,z=d.tooltipPossibleDirections,A=d.labelIcon,B=d.status,C=d.caption,D=d.tooltipFormatter,E=void 0===D?defaultTooltipFormatter:D,F=d.className,G=d.style,H=_objectWithoutProperties(d,_excluded),I=useState(),J=_slicedToArray(I,2),K=J[0],L=J[1],M=useFlag(!1),N=_slicedToArray(M,2),O=N[0],P=N[1],Q=P.on,R=P.off,S=useRef(null),T=useRef(null),U=useRef(null),V=useSortSteps({step:getValidStep(f,h,l),min:f,max:h}),W=l?V:Math.abs((h-f)/100),X=getIcon(t),Y=getIcon(s),Z=sizeMap[p],$=useSlider({disabled:n,range:w,value:k,min:f,max:h,step:W,onChange:i,onAfterChange:j,sliderRef:c,containerRef:S,buttonRefs:[T,U]}),_=$.onKeyPress,aa=$.onFocus,ba=$.handlePress,ca=$.onSliderClick,da=$.popoverPosition,ea=$.activeButton,fa=$.currentValue,ga=useSliderStationing(1===fa.length?fa[0]:fa,f,h,r,w,W,[T,U],c),ha=ga.lineSizes,ia=ga.buttonPositions,ja={role:"button",tabIndex:-1,className:cnSlider("Control"),ref:c,onClick:ca},ka=function(a){a?Q():R()};return React.createElement("div",Object.assign({ref:useForkRef([b,S]),className:cnSlider({size:p},[F]),style:G},H),x&&React.createElement(FieldLabel,{icon:A,className:cnSlider("Label"),size:p},x),React.createElement("div",{className:cnSlider("Container")},("input"===s||Y)&&React.createElement("div",{className:cnSlider("Side",{position:"left"})},"input"===s&&React.createElement(SliderInput,{value:getValueForInput(a,0),onFocus:function(){return L(0)},onBlur:function onBlur(){return L(void 0)},onChange:getOnChangeForInput(a,0),size:p,min:f,inputMode:"numeric",max:getMaxForStartField(a),status:B,step:W,disabled:n}),Y&&React.createElement(Y,{size:null!==Z&&void 0!==Z?Z:void 0,view:"secondary"})),React.createElement("div",ja,React.createElement(SliderLine,{hovered:O||"number"==typeof ea,onHover:ka,lines:ha,disabled:n,view:r}),fa.map(function(a,b){var c=1<fa.length&&fa[0]===fa[1]&&a===h&&0===b;return React.createElement(SliderPoint,{hovered:O||"number"==typeof ea,buttonRef:T,popoverPosition:da[b],onKeyPress:_,onFocus:aa,tooltipDirection:y,tooltipPossibleDirections:z,handlePress:ba,disabled:n,active:c,position:ia[b],focused:ea===b||K===b,buttonLabel:b,withTooltip:u,onHover:ka,tooltipFormatter:E,value:a,role:"slider","aria-valuemin":f,"aria-valuemax":h,"aria-valuenow":a,tooltipZIndex:"number"==typeof(null===G||void 0===G?void 0:G.zIndex)?G.zIndex+1:void 0,key:cnSlider("Point",{index:b})})})),("input"===t||X)&&React.createElement("div",{className:cnSlider("Side",{position:"right"})},"input"===t&&React.createElement(SliderInput,{value:getValueForInput(a,1),onChange:getOnChangeForInput(a,1),onBlur:function onBlur(){return L(void 0)},size:p,min:getMinForEndField(a),max:h,onFocus:function(){return L(isRangeParams(a)?1:0)},inputMode:"numeric",status:B,step:W,disabled:n}),X&&React.createElement(X,{size:Z,view:"secondary"}))),C&&React.createElement(FieldCaption,{className:cnSlider("Caption"),status:B},C))};export var Slider=forwardRef(SliderRender);
2
2
  //# sourceMappingURL=Slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","names":["React","forwardRef","useRef","useState","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useSortSteps","cn","defaultTooltipFormatter","getIcon","getMaxForStartField","getMinForEndField","getOnChangeForInput","getValidStep","getValueForInput","isRangeParams","sliderPropSizeDefault","SliderInput","SliderLine","SliderPoint","useSlider","useSliderStationing","cnSlider","sizeMap","xs","s","m","l","COMPONENT_NAME","SliderRender","props","ref","sliderRef","min","max","onChange","onAfterChange","value","stepProp","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style","otherProps","focusIndex","setFocusIndex","isHovered","on","off","containerRef","leftButtonRef","rightButtonRef","sortedSteps","Math","abs","IconRight","IconLeft","iconSize","buttonRefs","onKeyPress","onFocus","handlePress","onSliderClick","popoverPosition","activeButton","currentValue","length","lineSizes","buttonPositions","containerProps","role","tabIndex","onClick","changeHovered","position","map","val","index","topLayer","zIndex","Slider"],"sources":["../../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import './Slider.css';\n\nimport { IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useSortSteps } from '##/hooks/useSortSteps';\nimport { cn } from '##/utils/bem';\n\nimport {\n defaultTooltipFormatter,\n getIcon,\n getMaxForStartField,\n getMinForEndField,\n getOnChangeForInput,\n getValidStep,\n getValueForInput,\n isRangeParams,\n SliderComponent,\n SliderProps,\n SliderPropSize,\n sliderPropSizeDefault,\n} from './helper';\nimport { SliderInput } from './SliderInput/SliderInput';\nimport { SliderLine } from './SliderLine/SliderLine';\nimport { SliderPoint } from './SliderPoint/SliderPoint';\nimport { ActiveButton } from './useSlider/helper';\nimport { useSlider } from './useSlider/useSlider';\nimport { useSliderStationing } from './useSliderStationing';\n\nconst cnSlider = cn('Slider');\n\nconst sizeMap: Record<SliderPropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 'm',\n l: 'm',\n};\n\nexport const COMPONENT_NAME = 'Slider' as const;\n\nconst SliderRender = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const sliderRef = useRef<HTMLDivElement>(null);\n\n const {\n min = 0,\n max = 100,\n onChange,\n onAfterChange,\n value,\n step: stepProp,\n disabled = false,\n size = sliderPropSizeDefault,\n view = 'default',\n leftSide,\n rightSide,\n withTooltip,\n range = false,\n label,\n tooltipDirection,\n tooltipPossibleDirections,\n labelIcon,\n status,\n caption,\n tooltipFormatter = defaultTooltipFormatter,\n className,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, sliderRef);\n\n const [focusIndex, setFocusIndex] = useState<number | undefined>();\n const [isHovered, { on, off }] = useFlag(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const leftButtonRef = useRef<HTMLButtonElement>(null);\n const rightButtonRef = useRef<HTMLButtonElement>(null);\n const sortedSteps = useSortSteps({\n step: getValidStep(min, max, stepProp),\n min,\n max,\n });\n const step = stepProp ? sortedSteps : Math.abs((max - min) / 100);\n const IconRight = getIcon(rightSide);\n const IconLeft = getIcon(leftSide);\n const iconSize = sizeMap[size];\n\n const {\n onKeyPress,\n onFocus,\n handlePress,\n onSliderClick,\n popoverPosition,\n activeButton,\n currentValue,\n } = useSlider({\n disabled,\n range,\n value,\n min,\n max,\n step,\n onChange,\n onAfterChange,\n sliderRef,\n containerRef,\n buttonRefs: [leftButtonRef, rightButtonRef],\n });\n\n const { lineSizes, buttonPositions } = useSliderStationing(\n currentValue.length === 1 ? currentValue[0] : currentValue,\n min,\n max,\n view,\n range,\n step,\n [leftButtonRef, rightButtonRef],\n sliderRef,\n );\n\n const containerProps = {\n role: 'button',\n tabIndex: 0,\n className: cnSlider('Control'),\n ref: sliderRef,\n onClick: onSliderClick,\n };\n\n const changeHovered = (status: boolean) => {\n if (status) on();\n else off();\n };\n\n return (\n <div\n ref={useForkRef([ref, containerRef])}\n className={cnSlider({ size }, [className])}\n style={style}\n {...otherProps}\n >\n {label && (\n <FieldLabel icon={labelIcon} className={cnSlider('Label')} size={size}>\n {label}\n </FieldLabel>\n )}\n <div className={cnSlider('Container')}>\n {(leftSide === 'input' || IconLeft) && (\n <div className={cnSlider('Side', { position: 'left' })}>\n {leftSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 0)}\n onFocus={() => setFocusIndex(0)}\n onBlur={() => setFocusIndex(undefined)}\n onChange={getOnChangeForInput(props, 0)}\n size={size}\n min={min}\n inputMode=\"numeric\"\n max={getMaxForStartField(props)}\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconLeft && (\n <IconLeft size={iconSize ?? undefined} view=\"secondary\" />\n )}\n </div>\n )}\n <div {...containerProps}>\n <SliderLine\n hovered={isHovered || typeof activeButton === 'number'}\n onHover={changeHovered}\n lines={lineSizes}\n disabled={disabled}\n view={view}\n />\n {currentValue.map((val, index) => {\n const topLayer =\n currentValue.length > 1 &&\n currentValue[0] === currentValue[1] &&\n val === max &&\n index === 0;\n return (\n <SliderPoint\n hovered={isHovered || typeof activeButton === 'number'}\n buttonRef={leftButtonRef}\n popoverPosition={popoverPosition[index]}\n onKeyPress={onKeyPress}\n onFocus={onFocus}\n tooltipDirection={tooltipDirection}\n tooltipPossibleDirections={tooltipPossibleDirections}\n handlePress={handlePress}\n disabled={disabled}\n active={topLayer}\n position={buttonPositions[index]}\n focused={activeButton === index || focusIndex === index}\n buttonLabel={index as ActiveButton}\n withTooltip={withTooltip}\n onHover={changeHovered}\n tooltipFormatter={tooltipFormatter}\n value={val}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={val}\n tooltipZIndex={\n typeof style?.zIndex === 'number'\n ? style.zIndex + 1\n : undefined\n }\n key={cnSlider('Point', { index })}\n />\n );\n })}\n </div>\n {(rightSide === 'input' || IconRight) && (\n <div className={cnSlider('Side', { position: 'right' })}>\n {rightSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 1)}\n onChange={getOnChangeForInput(props, 1)}\n onBlur={() => setFocusIndex(undefined)}\n size={size}\n min={getMinForEndField(props)}\n max={max}\n onFocus={() => setFocusIndex(isRangeParams(props) ? 1 : 0)}\n inputMode=\"numeric\"\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconRight && <IconRight size={iconSize} view=\"secondary\" />}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption className={cnSlider('Caption')} status={status}>\n {caption}\n </FieldCaption>\n )}\n </div>\n );\n};\n\nexport const Slider = forwardRef(SliderRender) as SliderComponent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","names":["React","forwardRef","useRef","useState","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useSortSteps","cn","defaultTooltipFormatter","getIcon","getMaxForStartField","getMinForEndField","getOnChangeForInput","getValidStep","getValueForInput","isRangeParams","sliderPropSizeDefault","SliderInput","SliderLine","SliderPoint","useSlider","useSliderStationing","cnSlider","sizeMap","xs","s","m","l","COMPONENT_NAME","SliderRender","props","ref","sliderRef","min","max","onChange","onAfterChange","value","stepProp","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style","otherProps","focusIndex","setFocusIndex","isHovered","on","off","containerRef","leftButtonRef","rightButtonRef","sortedSteps","Math","abs","IconRight","IconLeft","iconSize","buttonRefs","onKeyPress","onFocus","handlePress","onSliderClick","popoverPosition","activeButton","currentValue","length","lineSizes","buttonPositions","containerProps","role","tabIndex","onClick","changeHovered","position","map","val","index","topLayer","zIndex","Slider"],"sources":["../../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import './Slider.css';\n\nimport { IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useSortSteps } from '##/hooks/useSortSteps';\nimport { cn } from '##/utils/bem';\n\nimport {\n defaultTooltipFormatter,\n getIcon,\n getMaxForStartField,\n getMinForEndField,\n getOnChangeForInput,\n getValidStep,\n getValueForInput,\n isRangeParams,\n SliderComponent,\n SliderProps,\n SliderPropSize,\n sliderPropSizeDefault,\n} from './helper';\nimport { SliderInput } from './SliderInput/SliderInput';\nimport { SliderLine } from './SliderLine/SliderLine';\nimport { SliderPoint } from './SliderPoint/SliderPoint';\nimport { ActiveButton } from './useSlider/helper';\nimport { useSlider } from './useSlider/useSlider';\nimport { useSliderStationing } from './useSliderStationing';\n\nconst cnSlider = cn('Slider');\n\nconst sizeMap: Record<SliderPropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 'm',\n l: 'm',\n};\n\nexport const COMPONENT_NAME = 'Slider' as const;\n\nconst SliderRender = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const sliderRef = useRef<HTMLDivElement>(null);\n\n const {\n min = 0,\n max = 100,\n onChange,\n onAfterChange,\n value,\n step: stepProp,\n disabled = false,\n size = sliderPropSizeDefault,\n view = 'default',\n leftSide,\n rightSide,\n withTooltip,\n range = false,\n label,\n tooltipDirection,\n tooltipPossibleDirections,\n labelIcon,\n status,\n caption,\n tooltipFormatter = defaultTooltipFormatter,\n className,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, sliderRef);\n\n const [focusIndex, setFocusIndex] = useState<number | undefined>();\n const [isHovered, { on, off }] = useFlag(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const leftButtonRef = useRef<HTMLButtonElement>(null);\n const rightButtonRef = useRef<HTMLButtonElement>(null);\n const sortedSteps = useSortSteps({\n step: getValidStep(min, max, stepProp),\n min,\n max,\n });\n const step = stepProp ? sortedSteps : Math.abs((max - min) / 100);\n const IconRight = getIcon(rightSide);\n const IconLeft = getIcon(leftSide);\n const iconSize = sizeMap[size];\n\n const {\n onKeyPress,\n onFocus,\n handlePress,\n onSliderClick,\n popoverPosition,\n activeButton,\n currentValue,\n } = useSlider({\n disabled,\n range,\n value,\n min,\n max,\n step,\n onChange,\n onAfterChange,\n sliderRef,\n containerRef,\n buttonRefs: [leftButtonRef, rightButtonRef],\n });\n\n const { lineSizes, buttonPositions } = useSliderStationing(\n currentValue.length === 1 ? currentValue[0] : currentValue,\n min,\n max,\n view,\n range,\n step,\n [leftButtonRef, rightButtonRef],\n sliderRef,\n );\n\n const containerProps = {\n role: 'button',\n tabIndex: -1,\n className: cnSlider('Control'),\n ref: sliderRef,\n onClick: onSliderClick,\n };\n\n const changeHovered = (status: boolean) => {\n if (status) on();\n else off();\n };\n\n return (\n <div\n ref={useForkRef([ref, containerRef])}\n className={cnSlider({ size }, [className])}\n style={style}\n {...otherProps}\n >\n {label && (\n <FieldLabel icon={labelIcon} className={cnSlider('Label')} size={size}>\n {label}\n </FieldLabel>\n )}\n <div className={cnSlider('Container')}>\n {(leftSide === 'input' || IconLeft) && (\n <div className={cnSlider('Side', { position: 'left' })}>\n {leftSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 0)}\n onFocus={() => setFocusIndex(0)}\n onBlur={() => setFocusIndex(undefined)}\n onChange={getOnChangeForInput(props, 0)}\n size={size}\n min={min}\n inputMode=\"numeric\"\n max={getMaxForStartField(props)}\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconLeft && (\n <IconLeft size={iconSize ?? undefined} view=\"secondary\" />\n )}\n </div>\n )}\n <div {...containerProps}>\n <SliderLine\n hovered={isHovered || typeof activeButton === 'number'}\n onHover={changeHovered}\n lines={lineSizes}\n disabled={disabled}\n view={view}\n />\n {currentValue.map((val, index) => {\n const topLayer =\n currentValue.length > 1 &&\n currentValue[0] === currentValue[1] &&\n val === max &&\n index === 0;\n return (\n <SliderPoint\n hovered={isHovered || typeof activeButton === 'number'}\n buttonRef={leftButtonRef}\n popoverPosition={popoverPosition[index]}\n onKeyPress={onKeyPress}\n onFocus={onFocus}\n tooltipDirection={tooltipDirection}\n tooltipPossibleDirections={tooltipPossibleDirections}\n handlePress={handlePress}\n disabled={disabled}\n active={topLayer}\n position={buttonPositions[index]}\n focused={activeButton === index || focusIndex === index}\n buttonLabel={index as ActiveButton}\n withTooltip={withTooltip}\n onHover={changeHovered}\n tooltipFormatter={tooltipFormatter}\n value={val}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={val}\n tooltipZIndex={\n typeof style?.zIndex === 'number'\n ? style.zIndex + 1\n : undefined\n }\n key={cnSlider('Point', { index })}\n />\n );\n })}\n </div>\n {(rightSide === 'input' || IconRight) && (\n <div className={cnSlider('Side', { position: 'right' })}>\n {rightSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 1)}\n onChange={getOnChangeForInput(props, 1)}\n onBlur={() => setFocusIndex(undefined)}\n size={size}\n min={getMinForEndField(props)}\n max={max}\n onFocus={() => setFocusIndex(isRangeParams(props) ? 1 : 0)}\n inputMode=\"numeric\"\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconRight && <IconRight size={iconSize} view=\"secondary\" />}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption className={cnSlider('Caption')} status={status}>\n {caption}\n </FieldCaption>\n )}\n </div>\n );\n};\n\nexport const Slider = forwardRef(SliderRender) as SliderComponent;\n"],"mappings":"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"}
@@ -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,valueToString}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(){valueToString(d)!==valueToString(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(valueToString(a)!==valueToString(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),valueToString(e)!==valueToString(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(c){if(isNotRangeParams(a)&&!b){var e=getValueByPosition({x:c.pageX,y:c.pageY},l,o,p,i),h=getNewValue(e,t,q,f,g,H.current);if(h!==d){var j;u(h),O(getActiveValue(h,0),0),null===(j=K.current)||void 0===j?void 0:j.call(K,h,{e:c})}}},activeButton:F,popoverPosition:[x,B],currentValue:Array.isArray(t)?t:[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,valueToString}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(){valueToString(d)!==valueToString(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(valueToString(a)!==valueToString(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){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;a.preventDefault(),a.stopPropagation(),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),valueToString(e)!==valueToString(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(c){if(isNotRangeParams(a)&&!b){var e=getValueByPosition({x:c.pageX,y:c.pageY},l,o,p,i),h=getNewValue(e,t,q,f,g,H.current);if(h!==d){var j;u(h),O(getActiveValue(h,0),0),null===(j=K.current)||void 0===j?void 0:j.call(K,h,{e:c})}}},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","valueToString","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 valueToString,\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 (valueToString(value) !== valueToString(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 (valueToString(newValue) !== valueToString(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) && !disabled) {\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 (valueToString(oldValue) !== valueToString(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","valueToString","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","stepIncrement","validKeyCode","changedValue","key","preventDefault","stopPropagation","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 valueToString,\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 (valueToString(value) !== valueToString(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 (valueToString(newValue) !== valueToString(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) && !disabled) {\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 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 event.preventDefault();\n event.stopPropagation();\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 (valueToString(oldValue) !== valueToString(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
1
  import { ComponentSize } from './types';
2
- export declare const useComponentSize: (ref: React.RefObject<HTMLElement | SVGGraphicsElement>) => ComponentSize;
2
+ export declare const useComponentSize: (ref: React.RefObject<HTMLElement | SVGGraphicsElement>, deps?: unknown[]) => ComponentSize;
@@ -1,2 +1,2 @@
1
- import{useMemo}from"react";import{getElementSize,useResizeObserved}from"../useResizeObserved";export var useComponentSize=function(a){return useResizeObserved(useMemo(function(){return[a]},[a.current]),getElementSize)[0]};
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import{useMemo}from"react";import{getElementSize,useResizeObserved}from"../useResizeObserved";export var useComponentSize=function(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:[];return useResizeObserved(useMemo(function(){return[a]},[a.current].concat(_toConsumableArray(b))),getElementSize)[0]};
2
2
  //# sourceMappingURL=useComponentSize.js.map