| 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); |
| } |
|
|