monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
3 lines (2 loc) • 2.03 kB
JavaScript
import{defineProperty as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import r,{forwardRef as t,useCallback as o}from"react";import{isArrowUpEvent as i,isArrowRightEvent as l,isArrowDownEvent as s,isArrowLeftEvent as a,isPageUpEvent as n,isPageDownEvent as m,isHomeEvent as f,isEndEvent as u}from"../../../utils/dom-event-utils.js";import{useSliderUi as d,useSliderSelection as p,useSliderActions as c}from"../SliderContext.js";import{calcDimensions as v,moveToPx as j,getNearest as b,calculatePageStep as h}from"../SliderHelpers.js";import{useSliderRail as S}from"../SliderHooks.js";import E from"./SliderRail.js";import T from"./SliderTrack.js";import g from"./SliderFilledTrack.js";import k from"./SliderThumb.js";import y from"classnames";import{getStyle as D}from"../../../helpers/typesciptCssModulesHelper.js";import x from"./SliderBase.module.scss.js";var C=t((function(t,C){var H=t.className,z=d(),M=z.color,V=z.disabled,B=z.size,F=z.shapeTestId,K=p(),N=K.min,P=K.max,R=K.ranged,X=K.step,_=K.value,w=c(),I=w.changeThumbValue,q=w.drugThumb,A=w.decreaseValue,G=w.increaseValue,J=S(),L=J.railCoords,O=J.railRef,Q=v(P,N,R,_),U=Q.dimension,W=Q.offset,Y=Q.positions,Z=Q.thumbKeys,$=o((function(e){var r=j(Math.round(e.clientX-L.left),N,P,L,X);q(r)}),[q,N,P,L,X]),ee=o((function(e){var r=j(e.clientX-L.left,N,P,L,X),t=b(r,R,_);I(r,t)}),[I,N,P,L,R,X,_]);return r.createElement("div",{className:y(x.base,e(e(e({},D(x,B),B),D(x,M),M),x.disabled,V),H),"data-testid":F("base"),onKeyDown:function(e){return i(e)||l(e)?G():s(e)||a(e)?A():n(e)?(e.preventDefault(),G(h(P,N,X))):m(e)?(e.preventDefault(),A(h(P,N,X))):f(e)?(e.preventDefault(),I(N)):u(e)?(e.preventDefault(),I(P)):void 0}},r.createElement(E,{onClick:ee,size:B,ref:O},r.createElement(T,{color:M}),O.current&&r.createElement(r.Fragment,null,r.createElement(g,{dimension:U,offset:W,color:M}),Y.map((function(e,t){return r.createElement(k,{key:Z[t],index:t,onMove:$,position:e,color:M,size:B})})))))}));export{C as default};
//# sourceMappingURL=SliderBase.js.map