{"version":3,"sources":["../../../src/lib/cutText.ts"],"names":[],"mappings":";;;;;;AAAA,IAAM,sBAAyB,GAAA,4CAAA;AASxB,SAAS,OAAA,CAAQ,KAAa,MAAgB,EAAA;AACpD,EAAI,IAAA,GAAA,CAAI,MAAU,IAAA,MAAA,EAAe,OAAA,GAAA;AAEjC,EAAM,MAAA,UAAA,GAAa,CAAC,GAAG,GAAG,CAAA;AAC1B,EAAI,IAAA,UAAA,CAAW,MAAU,IAAA,MAAA,EAAe,OAAA,GAAA;AAExC,EAAA,IAAI,aAAgB,GAAA,MAAA;AACpB,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,MAAA,EAAQ,EAAE,CAAG,EAAA;AAChC,IAAA,IAAI,sBAAuB,CAAA,IAAA,CAAK,UAAW,CAAA,CAAC,CAAC,CAAG,EAAA;AAC/C,MAAgB,aAAA,GAAA,CAAA;AAAA;AACjB;AAGD,EAAA,MAAM,kBAAqB,GAAA,aAAA,KAAkB,MAAS,GAAA,MAAA,GAAS,CAAI,GAAA,aAAA;AACnE,EAAO,OAAA,UAAA,CAAW,MAAM,CAAG,EAAA,kBAAkB,EAAE,MAAO,CAAA,QAAG,CAAE,CAAA,IAAA,CAAK,EAAE,CAAA;AACnE;AAfgB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"cutText.cjs","sourcesContent":["const WordSeparatorCharacter = /[\\p{Separator}\\p{Punctuation}\\p{Control}]/u;\n\n/**\n * Split a text by its latest space character in a range from the character 0 to the selected one.\n * @param str The text to split.\n * @param length The length of the desired string.\n * @copyright 2019 Aura Román\n * @license Apache-2.0\n */\nexport function cutText(str: string, length: number) {\n\tif (str.length <= length) return str;\n\n\tconst codepoints = [...str];\n\tif (codepoints.length <= length) return str;\n\n\tlet lastSeparator = length;\n\tfor (let i = 0; i < length; ++i) {\n\t\tif (WordSeparatorCharacter.test(codepoints[i])) {\n\t\t\tlastSeparator = i;\n\t\t}\n\t}\n\n\tconst lastCharacterIndex = lastSeparator === length ? length - 1 : lastSeparator;\n\treturn codepoints.slice(0, lastCharacterIndex).concat('…').join('');\n}\n"]}