UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

78 lines (77 loc) 2.42 kB
"use client"; //#region packages/@mantine/core/src/components/RollingNumber/get-render-slots.ts function padLeft(arr, length) { return [...Array(length - arr.length).fill(null), ...arr]; } function padRight(arr, length) { return [...arr, ...Array(length - arr.length).fill(null)]; } function getRenderSlots({ current, previous, prefix, suffix, decimalSeparator = ".", thousandSeparator }) { const maxIntLen = Math.max(current.intDigits.length, previous.intDigits.length); const maxFracLen = Math.max(current.fracDigits.length, previous.fracDigits.length); const currIntPadded = padLeft(current.intDigits, maxIntLen); const prevIntPadded = padLeft(previous.intDigits, maxIntLen); const currFracPadded = padRight(current.fracDigits, maxFracLen); const prevFracPadded = padRight(previous.fracDigits, maxFracLen); const sep = thousandSeparator ? typeof thousandSeparator === "string" ? thousandSeparator : "," : null; const slots = []; if (prefix) for (let i = 0; i < prefix.length; i++) slots.push({ type: "char", key: `prefix-${i}`, char: prefix[i], empty: false }); if (current.negative || previous.negative) slots.push({ type: "char", key: "sign", char: "-", empty: !current.negative }); for (let i = 0; i < maxIntLen; i++) { const posFromRight = maxIntLen - 1 - i; const currDigit = currIntPadded[i]; const prevDigit = prevIntPadded[i]; const isEmpty = currDigit === null; slots.push({ type: "digit", key: `int-${posFromRight}`, digit: currDigit ?? "0", previousDigit: prevDigit, empty: isEmpty }); if (sep && posFromRight > 0 && posFromRight % 3 === 0) slots.push({ type: "char", key: `sep-${posFromRight}`, char: sep, empty: isEmpty }); } if (current.hasDecimal || previous.hasDecimal) slots.push({ type: "char", key: "dec", char: decimalSeparator, empty: !current.hasDecimal }); for (let i = 0; i < maxFracLen; i++) { const currDigit = currFracPadded[i]; const prevDigit = prevFracPadded[i]; const isEmpty = currDigit === null; slots.push({ type: "digit", key: `frac-${i}`, digit: currDigit ?? "0", previousDigit: prevDigit, empty: isEmpty }); } if (suffix) for (let i = 0; i < suffix.length; i++) slots.push({ type: "char", key: `suffix-${i}`, char: suffix[i], empty: false }); return slots; } //#endregion exports.getRenderSlots = getRenderSlots; //# sourceMappingURL=get-render-slots.cjs.map