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