monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
3 lines (2 loc) • 1.96 kB
JavaScript
import{defineProperty as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useRef as t,useEffect as n}from"react";import{DialogPosition as a}from"../../../constants/positions.js";import{NOOP as r}from"../../../utils/function-utils.js";import i from"../../Tooltip/Tooltip.js";import{TOOLTIP_SHOW_DELAY as l}from"../SliderConstants.js";import{useSliderSelection as s,useSliderUi as u,useSliderActions as m}from"../SliderContext.js";import c from"classnames";import d from"./SliderThumb.module.scss.js";import{getStyle as p}from"../../../helpers/typesciptCssModulesHelper.js";var f=a.TOP,v=function(a){var v=a.className,b=a.index,g=void 0===b?0:b,h=a.onMove,j=void 0===h?r:h,x=a.position,E=void 0===x?0:x,L=a.size,T=a.color,y=s(),P=y.max,w=y.min,D=y.ranged,C=y.value,N=y.valueText,S=D?C[g]:C,B=D?N[g]:N,F=u(),H=F.active,I=F.ariaLabel,M=F.ariaLabelledby,_=F.disabled,z=F.dragging,A=F.focused,O=F.shapeTestId,V=F.showValue,k=m(),q=k.setActive,G=k.setFocused,J=k.setDragging,K=t(null);function Q(){J(null),document.removeEventListener("pointermove",j),document.removeEventListener("pointerup",Q)}return n((function(){A===g&&K&&K.current&&K.current.focus()}),[A,g]),o.createElement(i,{open:H===g||z===g,content:V?null:B,position:f,showDelay:l},o.createElement("div",{"aria-label":I,"aria-labelledby":M,"aria-valuemax":P,"aria-valuemin":w,"aria-valuenow":S,"aria-valuetext":B,"aria-disabled":_,className:c(d.thumb,p(d,T),p(d,L),e(e(e({},d.dragging,z===g),d.focused,A),d.notDisabledThumb,!_),v),"data-testid":O("thumb-".concat(g)),onFocus:function(){G(g),q(g)},onBlur:function(){G(null),q(null)},onPointerDown:function(e){e.stopPropagation(),J(g),document.addEventListener("pointermove",j),document.addEventListener("pointerup",Q)},onPointerLeave:function(){q(null)},ref:K,role:"slider",style:{left:"".concat(E,"%")},tabIndex:_?-1:0},V&&o.createElement("label",{className:d.label},B)))};export{v as default};
//# sourceMappingURL=SliderThumb.js.map