UNPKG

@progress/kendo-react-progressbars

Version:

React ProgressBars offer a customizable interface for users to track and display the progress of a task. KendoReact ProgressBars package

9 lines (8 loc) 2.78 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=require("react"),r=require("prop-types"),n=require("@progress/kendo-react-common"),F=require("../common/utils.js"),W=require("../package-metadata.js");function A(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(o,s,i.get?i:{enumerable:!0,get:()=>t[s]})}}return o.default=t,Object.freeze(o)}const e=A(D),k=e.forwardRef((t,o)=>{const s=!n.validatePackage(W.packageMetadata,{component:"ChunkProgressBar"}),{chunkCount:i=l.chunkCount,className:P,disabled:d=l.disabled,orientation:N,min:g=l.min,max:p=l.max,reverse:S=l.reverse,style:x,tabIndex:R,emptyStyle:E,emptyClassName:j,progressStyle:O,progressClassName:w}=t,c=e.useRef(null),q=e.useCallback(()=>{c.current&&c.current.focus()},[]);e.useImperativeHandle(o,()=>({element:c.current,focus:q}));const f=t.value||l.value,y=t.value===null,I=n.useRtl(c,t.dir),m=N==="vertical",M={className:n.classNames("k-progressbar k-chunk-progressbar",{"k-progressbar-horizontal":!m,"k-progressbar-vertical":m,"k-progressbar-reverse":S,"k-progressbar-indeterminate":y,"k-disabled":d},P),ref:c,dir:I,tabIndex:n.getTabIndex(R,d),role:"progressbar","aria-label":t.ariaLabel,"aria-valuemin":g,"aria-valuemax":p,"aria-valuenow":y?void 0:f,"aria-disabled":d,style:x},T=({count:u})=>{const v=[],h=100/u+"%",B=F.calculateRatio(g,p,f),z=Math.floor(B*u),C=Array(u).fill(!1);for(let a=0;a<z;a++)C[a]=!0;for(let a=0;a<u;++a){const b=C[a],L=b?w:j,_={...{width:m?void 0:h,height:m?h:void 0},...b?O:E};v.push(e.createElement("li",{key:a,className:n.classNames("k-progressbar-chunk",{"k-first":a===0,"k-last":a===u-1,"k-selected":b},L),style:_}))}return e.createElement(e.Fragment,null,v)};return e.createElement(e.Fragment,null,e.createElement("div",{...M},e.createElement("ul",{className:"k-progressbar-chunks k-reset"},e.createElement(T,{count:i}))),s&&e.createElement(n.WatermarkOverlay,null))});k.propTypes={chunkCount:r.number,ariaLabel:r.string,disabled:r.bool,reverse:r.bool,max:r.number,min:r.number,value:r.number,tabIndex:r.number,emptyStyle:r.object,emptyClassName:r.string,progressStyle:r.object,progressClassName:r.string};const l={chunkCount:5,min:0,max:100,value:0,disabled:!1,reverse:!1};k.displayName="KendoChunkProgressBar";exports.ChunkProgressBar=k;