From 44b9c67df1409e042027ed544b1f8d75d968b66b Mon Sep 17 00:00:00 2001 From: Andrey Belokopytov Date: Mon, 25 Nov 2024 12:48:03 +0300 Subject: [PATCH] fix: mirror symbols only if mask changes in postfix-postprocessor --- .../kit/src/lib/processors/postfix-postprocessor.ts | 3 +-- projects/kit/src/lib/utils/extract-affixes.ts | 13 +++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/projects/kit/src/lib/processors/postfix-postprocessor.ts b/projects/kit/src/lib/processors/postfix-postprocessor.ts index c3f378075..61d1b62b8 100644 --- a/projects/kit/src/lib/processors/postfix-postprocessor.ts +++ b/projects/kit/src/lib/processors/postfix-postprocessor.ts @@ -26,8 +26,7 @@ export function maskitoPostfixPostprocessorGenerator( '', ); const postfixWasModified = - !value.endsWith(postfix) && - initialElementState.selection[1] >= initialValueBeforePostfix.length; + initialElementState.selection[1] > initialValueBeforePostfix.length; const alreadyExistedValueBeforePostfix = findCommonBeginningSubstr( initialValueBeforePostfix, value, diff --git a/projects/kit/src/lib/utils/extract-affixes.ts b/projects/kit/src/lib/utils/extract-affixes.ts index 4acfacd31..af3569ec1 100644 --- a/projects/kit/src/lib/utils/extract-affixes.ts +++ b/projects/kit/src/lib/utils/extract-affixes.ts @@ -14,7 +14,16 @@ export function extractAffixes( const [extractedPrefix = ''] = value.match(prefixRegExp) ?? []; const [extractedPostfix = ''] = value.match(postfixRegExp) ?? []; - const cleanValue = value.replace(prefixRegExp, '').replace(postfixRegExp, ''); + if (extractedPrefix || extractedPostfix) { + return { + extractedPrefix, + extractedPostfix, + cleanValue: value.slice( + extractedPrefix.length, + extractedPostfix.length ? -extractedPostfix.length : Infinity, + ), + }; + } - return {extractedPrefix, extractedPostfix, cleanValue}; + return {extractedPrefix, extractedPostfix, cleanValue: value}; }