MCPcopy
hub / github.com/microsoft/SandDance / transformer

Function transformer

docs/app/js/sanddance-app.js:127512–127549  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

127510 return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
127511}
127512function transformer() {
127513 var domain = unit, range = unit, interpolate = (0, _d3Interpolate.interpolate), transform, untransform, unknown, clamp = identity, piecewise, output, input;
127514 function rescale() {
127515 var n = Math.min(domain.length, range.length);
127516 if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);
127517 piecewise = n > 2 ? polymap : bimap;
127518 output = input = null;
127519 return scale;
127520 }
127521 function scale(x) {
127522 return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));
127523 }
127524 scale.invert = function(y) {
127525 return clamp(untransform((input || (input = piecewise(range, domain.map(transform), (0, _d3Interpolate.interpolateNumber))))(y)));
127526 };
127527 scale.domain = function(_) {
127528 return arguments.length ? (domain = Array.from(_, (0, _numberJsDefault.default)), rescale()) : domain.slice();
127529 };
127530 scale.range = function(_) {
127531 return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
127532 };
127533 scale.rangeRound = function(_) {
127534 return range = Array.from(_), interpolate = (0, _d3Interpolate.interpolateRound), rescale();
127535 };
127536 scale.clamp = function(_) {
127537 return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;
127538 };
127539 scale.interpolate = function(_) {
127540 return arguments.length ? (interpolate = _, rescale()) : interpolate;
127541 };
127542 scale.unknown = function(_) {
127543 return arguments.length ? (unknown = _, scale) : unknown;
127544 };
127545 return function(t, u) {
127546 transform = t, untransform = u;
127547 return rescale();
127548 };
127549}
127550function continuous() {
127551 return transformer()(identity, identity);
127552}

Callers 10

continuousFunction · 0.70
sequentialFunction · 0.70
sequentialLogFunction · 0.70
sequentialSymlogFunction · 0.70
sequentialPowFunction · 0.70
divergingFunction · 0.70
divergingLogFunction · 0.70
divergingSymlogFunction · 0.70
divergingPowFunction · 0.70
sanddance-app.jsFile · 0.70

Calls 6

clampFunction · 0.70
piecewiseFunction · 0.70
rescaleFunction · 0.70
transformFunction · 0.70
rangeFunction · 0.70
fromMethod · 0.45

Tested by

no test coverage detected