{"version":3,"file":"getCursorPositionAfterKeystroke.mjs","sources":["../../../../src/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.ts"],"sourcesContent":["import getCountOfSymbolsInSelection from '../getCountOfSymbolsInSelection';\nimport { getDistanceToNextSymbol, getDistanceToPreviousSymbol } from '../getDistanceToSymbol';\n\nconst getCursorPositionAfterActionStroke = (\n  action: string,\n  selectionStart: number,\n  selectionEnd: number,\n  pattern: string,\n  pastedLength: number,\n): number => {\n  let cursorPosition = selectionStart;\n\n  switch (action) {\n    case 'Backspace':\n      // If not multiple delete.\n      if (selectionStart === selectionEnd) {\n        cursorPosition -= getDistanceToPreviousSymbol(selectionStart, pattern);\n        cursorPosition = cursorPosition > 0 ? cursorPosition - 1 : 0;\n      }\n      break;\n\n    case 'Paste':\n      cursorPosition +=\n        pastedLength +\n        getCountOfSymbolsInSelection(selectionStart, selectionStart + pastedLength, pattern) +\n        getDistanceToNextSymbol(selectionStart + pastedLength, pattern);\n      break;\n\n    case 'Cut':\n    case 'Delete':\n      break;\n\n    default:\n      cursorPosition += 1 + getDistanceToNextSymbol(selectionStart, pattern);\n      break;\n  }\n\n  return cursorPosition;\n};\n\nexport default getCursorPositionAfterActionStroke;\n"],"names":["getCursorPositionAfterActionStroke","action","selectionStart","selectionEnd","pattern","pastedLength","cursorPosition","getDistanceToPreviousSymbol","getCountOfSymbolsInSelection","getDistanceToNextSymbol"],"mappings":";;;AAGA,MAAMA,kCAAkC,GAAGA,CACzCC,MAAc,EACdC,cAAsB,EACtBC,YAAoB,EACpBC,OAAe,EACfC,YAAoB,KACV;EACV,IAAIC,cAAc,GAAGJ,cAAc;AAEnC,EAAA,QAAQD,MAAM;AACZ,IAAA,KAAK,WAAW;AACd;MACA,IAAIC,cAAc,KAAKC,YAAY,EAAE;AACnCG,QAAAA,cAAc,IAAIC,2BAA2B,CAACL,cAAc,EAAEE,OAAO,CAAC;QACtEE,cAAc,GAAGA,cAAc,GAAG,CAAC,GAAGA,cAAc,GAAG,CAAC,GAAG,CAAC;AAC9D,MAAA;AACA,MAAA;AAEF,IAAA,KAAK,OAAO;MACVA,cAAc,IACZD,YAAY,GACZG,4BAA4B,CAACN,cAAc,EAAEA,cAAc,GAAGG,YAAY,EAAED,OAAO,CAAC,GACpFK,uBAAuB,CAACP,cAAc,GAAGG,YAAY,EAAED,OAAO,CAAC;AACjE,MAAA;AAEF,IAAA,KAAK,KAAK;AACV,IAAA,KAAK,QAAQ;AACX,MAAA;AAEF,IAAA;MACEE,cAAc,IAAI,CAAC,GAAGG,uBAAuB,CAACP,cAAc,EAAEE,OAAO,CAAC;AACtE,MAAA;AACJ;AAEA,EAAA,OAAOE,cAAc;AACvB;;;;"}