@progress/kendo-react-inputs
Version:
React Inputs offer a customizable interface for users to enter and pick different information. KendoReact Input package
9 lines (8 loc) • 1.95 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),a=require("./utils/svg-calc.js"),p=require("./utils/color-parser.js");function S(l){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const r in l)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(l,r);Object.defineProperty(e,r,o.get?o:{enumerable:!0,get:()=>l[r]})}}return e.default=l,Object.freeze(e)}const f=S(b),C=4.5,m=7,h=16;class A extends f.Component{renderSvgCurveLine(){const e=this.props.metrics,r=(i,u,s,t,n)=>{const g=(s+t)/2,v=Object.assign({},this.props.hsva,{s:u/e.width,v:1-g/e.height}),c=p.getContrastFromTwoRGBAs(p.getRGBA(p.getColorFromHSV(v)),p.getRGBA(this.props.backgroundColor||""));return s+.5>t?c<i+1&&c>i-1?g:null:n(c,i)?r(i,u,s,t-(t-s)/2,n):r(i,u,s+(t-s)/2,t,n)},o=(i,u,s=!1)=>{const t=[];for(let n=0;n<=e.width;n+=e.width/u){const g=r(i,n,0,e.height,s?(v,c)=>v<c:(v,c)=>v>c);g!==null&&t.push([n,g])}return t},d=a.bezierCommand(a.controlPoint(a.line));return a.svgPath(o(C,h),d)+a.svgPath(o(C,h,!0),d)+a.svgPath(o(m,h),d)+a.svgPath(o(m,h,!0),d)}shouldComponentUpdate(e){return!(e.hsva.h===this.props.hsva.h&&e.hsva.a===this.props.hsva.a&&this.props.backgroundColor===e.backgroundColor&&e.metrics===this.props.metrics)}render(){return f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"k-color-contrast-svg",dangerouslySetInnerHTML:{__html:this.renderSvgCurveLine()},style:{position:"absolute",overflow:"visible",pointerEvents:"none",left:0,top:0,zIndex:3}})}}exports.ColorContrastSvg=A;