{"version":3,"sources":["../../src/utilities/wordBoundariesRegex.ts"],"sourcesContent":["export const wordBoundariesRegex = (input: string): RegExp => {\n const words = input.split(' ')\n\n // Regex word boundaries that work for cyrillic characters - https://stackoverflow.com/a/47062016/1717697\n const wordBoundaryBefore = '(?:(?:[^\\\\p{L}\\\\p{N}])|^)' // Converted to a non-matching group instead of positive lookbehind for Safari\n const wordBoundaryAfter = '(?=[^\\\\p{L}\\\\p{N}]|$)'\n const regex = words.reduce((pattern, word, i) => {\n const escapedWord = word.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n return `${pattern}(?=.*${wordBoundaryBefore}.*${escapedWord}.*${wordBoundaryAfter})${\n i + 1 === words.length ? '.+' : ''\n }`\n }, '')\n return new RegExp(regex, 'i')\n}\n"],"names":["wordBoundariesRegex","input","words","split","wordBoundaryBefore","wordBoundaryAfter","regex","reduce","pattern","word","i","escapedWord","replace","length","RegExp"],"mappings":"AAAA,OAAO,MAAMA,sBAAsB,CAACC;IAClC,MAAMC,QAAQD,MAAME,KAAK,CAAC;IAE1B,yGAAyG;IACzG,MAAMC,qBAAqB,4BAA4B,8EAA8E;;IACrI,MAAMC,oBAAoB;IAC1B,MAAMC,QAAQJ,MAAMK,MAAM,CAAC,CAACC,SAASC,MAAMC;QACzC,MAAMC,cAAcF,KAAKG,OAAO,CAAC,uBAAuB;QACxD,OAAO,GAAGJ,QAAQ,KAAK,EAAEJ,mBAAmB,EAAE,EAAEO,YAAY,EAAE,EAAEN,kBAAkB,CAAC,EACjFK,IAAI,MAAMR,MAAMW,MAAM,GAAG,OAAO,IAChC;IACJ,GAAG;IACH,OAAO,IAAIC,OAAOR,OAAO;AAC3B,EAAC"}