UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

54 lines (40 loc) 1.23 kB
import { linearish } from './linear.js'; import { identity, transformer, copy } from './continuous.js'; import { initRange } from './init.js'; function transformPow(exponent) { return function(x) { return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent); }; } function transformSqrt(x) { return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x); } function transformSquare(x) { return x < 0 ? -x * x : x * x; } function powish(transform) { var scale = transform(identity, identity), exponent = 1; function rescale() { return exponent === 1 ? transform(identity, identity) : exponent === 0.5 ? transform(transformSqrt, transformSquare) : transform(transformPow(exponent), transformPow(1 / exponent)); } scale.exponent = function(_) { return arguments.length ? (exponent = +_, rescale()) : exponent; }; return linearish(scale); } function pow() { var scale = powish(transformer()); scale.copy = function() { return copy(scale, pow()).exponent(scale.exponent()); }; initRange.apply(scale, arguments); return scale; } function sqrt() { return pow.apply(null, arguments).exponent(0.5); } export { pow as default, powish, sqrt }; //# sourceMappingURL=pow.js.map