UNPKG

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