Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
let align: '>' | '<' | '^' | '=' = specifier.align;
let sign: '-' | '+' | '(' | ' ' = specifier.sign;
let symbol: '$' | '#' | '' = specifier.symbol;
let zero: boolean = specifier.zero;
let width: number | undefined = specifier.width;
let comma: boolean = specifier.comma;
let precision: number = specifier.precision;
let type: 'e' | 'f' | 'g' | 'r' | 's' | '%' | 'p' | 'b' | 'o' | 'd' | 'x' | 'X' | 'c' | '' | 'n' = specifier.type;
let formatString: string = specifier.toString();
// ----------------------------------------------------------------------
// Test Precision Suggestors
// ----------------------------------------------------------------------
num = d3Format.precisionFixed(0.0005);
num = d3Format.precisionPrefix(0.0005, 1000);
num = d3Format.precisionRound(0.0005, 3000);
// ----------------------------------------------------------------------
// Test Locale Definition
// ----------------------------------------------------------------------
localeDef = {
decimal: ',',
thousands: '.',
grouping: [3],
currency: ['EUR', '']
};
let sign: '-' | '+' | '(' | ' ' = specifier.sign;
let symbol: '$' | '#' | '' = specifier.symbol;
let zero: boolean = specifier.zero;
let width: number | undefined = specifier.width;
let comma: boolean = specifier.comma;
let precision: number = specifier.precision;
let type: 'e' | 'f' | 'g' | 'r' | 's' | '%' | 'p' | 'b' | 'o' | 'd' | 'x' | 'X' | 'c' | '' | 'n' = specifier.type;
let formatString: string = specifier.toString();
// ----------------------------------------------------------------------
// Test Precision Suggestors
// ----------------------------------------------------------------------
num = d3Format.precisionFixed(0.0005);
num = d3Format.precisionPrefix(0.0005, 1000);
num = d3Format.precisionRound(0.0005, 3000);
// ----------------------------------------------------------------------
// Test Locale Definition
// ----------------------------------------------------------------------
localeDef = {
decimal: ',',
thousands: '.',
grouping: [3],
currency: ['EUR', '']
};
createLegendItems = () => {
const { startValue, endValue, colorScheme } = this.state;
const scale = scaleLinear().domain([startValue, endValue]).rangeRound([0, colorScheme.length]);
const step = (endValue - startValue) / colorScheme.length;
const precision = precisionFixed(step); // https://github.com/d3/d3-format#precisionFixed
const items = colorScheme.map((color, index) => {
const legend = {};
legend.id = generateUid();
legend.startValue = scale.invert(index).toFixed(precision);
legend.endValue = scale.invert(index + 1).toFixed(precision);
legend.color = color;
legend.name = `${legend.startValue} - ${legend.endValue}`;
return legend;
});
this.props.onItemsChange(items);
};
let regularFormat
let lastFormat
if (specifier.type === '%') {
let fullStep = +(step * 100).toFixed(specifier.precision)
let fullMax = +(max * 100).toFixed(specifier.precision)
specifier.precision = precisionFixed(
fullStep - Math.floor(fullStep) || fullMax - Math.floor(fullMax)
)
lastFormat = format(specifier.toString())
specifier.type = 'f'
const regularFormatInner = format(specifier.toString())
regularFormat = value => regularFormatInner(value * 100)
} else if (specifier.type === 's') {
const magnitude = d3Max([max - (min > 0 ? min : 0), min].map(Math.abs))
let pow = formatPow(tLabel, Math.max(0, min) + magnitude / 2)
specifier.precision = precisionFixed(
ticks.reduce(
(precision, value) =>
precision || pow.scale(value) - Math.floor(pow.scale(value)),
0
)
)
lastFormat = sFormat(tLabel, specifier.precision, pow, 'f')
regularFormat = sFormat(
tLabel,
specifier.precision,
{ scale: pow.scale, suffix: '' },
'f'
)
} else {
specifier.precision = d3Max(
const step = (max - min) / 2
const ticks = predefinedTicks || [
min,
min < 0 && max > 0 ? 0 : min + step,
max
]
const format = swissNumbers.format
const specifier = formatSpecifier(numberFormat)
let formatter = getFormat(numberFormat, tLabel)
let regularFormat
let lastFormat
if (specifier.type === '%') {
let fullStep = +(step * 100).toFixed(specifier.precision)
let fullMax = +(max * 100).toFixed(specifier.precision)
specifier.precision = precisionFixed(
fullStep - Math.floor(fullStep) || fullMax - Math.floor(fullMax)
)
lastFormat = format(specifier.toString())
specifier.type = 'f'
const regularFormatInner = format(specifier.toString())
regularFormat = value => regularFormatInner(value * 100)
} else if (specifier.type === 's') {
const magnitude = d3Max([max - (min > 0 ? min : 0), min].map(Math.abs))
let pow = formatPow(tLabel, Math.max(0, min) + magnitude / 2)
specifier.precision = precisionFixed(
ticks.reduce(
(precision, value) =>
precision || pow.scale(value) - Math.floor(pow.scale(value)),
0
)
)
case "s": {
var value = Math.max(Math.abs(start), Math.abs(stop));
if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;
return formatPrefix(specifier, value);
}
case "":
case "e":
case "g":
case "p":
case "r": {
if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
break;
}
case "f":
case "%": {
if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2;
break;
}
}
return format(specifier);
}
ticks.map((tick, i) =>
Math.max(
i && precisionFixed(tick - ticks[i - 1]),
precisionFixed(tick - Math.floor(tick))
)
)
numeric: number => {
const step = number / 7;
const formatNumber =
number > 10
? formatPrefix(`.${precisionPrefix(step, number)}`, number)
: format(`.${precisionFixed(step)}f`);
return n => {
if (n === null) return '---';
if (n === 0) return '0';
return formatNumber(n);
};
},
percent: () => {
ticks.map((tick, i) =>
Math.max(
i && precisionFixed(tick - ticks[i - 1]),
precisionFixed(tick - Math.floor(tick))
)
)
case 's': {
var value = Math.max(Math.abs(range[0]), Math.abs(range[1]));
if (f.precision == null) f.precision = d3_numberF.precisionPrefix(range[2], value);
return numberF.formatPrefix(f, value);
}
case '':
case 'e':
case 'g':
case 'p':
case 'r': {
if (f.precision == null) f.precision = d3_numberF.precisionRound(range[2], Math.max(Math.abs(range[0]), Math.abs(range[1]))) - (f.type === 'e');
break;
}
case 'f':
case '%': {
if (f.precision == null) f.precision = d3_numberF.precisionFixed(range[2]) - 2 * (f.type === '%');
break;
}
}
return numberF.format(f);
}