@canutin/svelte-currency-input
Version:
A fully-featured currency input component for Svelte 5 that handles formatting, localization, and validation
19 lines (18 loc) • 805 B
JavaScript
export const repositionCursor = ({ selectionStart, value, lastKeyStroke, stateValue, groupSeparator }) => {
let cursorPosition = selectionStart;
let modifiedValue = value;
if (stateValue && cursorPosition) {
const splitValue = value.split('');
if (lastKeyStroke === 'Backspace' && stateValue[cursorPosition] === groupSeparator) {
splitValue.splice(cursorPosition - 1, 1);
cursorPosition -= 1;
}
if (lastKeyStroke === 'Delete' && stateValue[cursorPosition] === groupSeparator) {
splitValue.splice(cursorPosition, 1);
cursorPosition += 1;
}
modifiedValue = splitValue.join('');
return { modifiedValue, cursorPosition };
}
return { modifiedValue, cursorPosition: selectionStart };
};