import {linearish} from "./linear.js"; | |
import number from "./number.js"; | |
export default function identity(domain) { | |
var unknown; | |
function scale(x) { | |
return x == null || isNaN(x = +x) ? unknown : x; | |
} | |
scale.invert = scale; | |
scale.domain = scale.range = function(_) { | |
return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice(); | |
}; | |
scale.unknown = function(_) { | |
return arguments.length ? (unknown = _, scale) : unknown; | |
}; | |
scale.copy = function() { | |
return identity(domain).unknown(unknown); | |
}; | |
domain = arguments.length ? Array.from(domain, number) : [0, 1]; | |
return linearish(scale); | |
} | |