function concatenateScales(scale1, scale2) {
const scale = value => {
if (value < scale1.domain()[1]) {
return scale1(value);
} else if (value >= scale2.domain()[0]) {
return scale2(value);
} else {
throw new Error(`invalid input: ${value}`);
}
};
scale.domain = () => [scale1.domain()[0], scale2.domain()[1]];
scale.range = () => [scale1.range()[0], scale2.domain()[1]];
return scale;
}