{"version":3,"file":"string.cjs","names":[],"sources":["../../src/utils/string.ts"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nexport const MX_USERNAME_PREFIX = \"@\";\nexport const MX_ROOM_PREFIX = \"#\";\nexport const MX_ALIAS_PREFIX = \"+\";\n\nconst graphemeSegmenter = new Intl.Segmenter();\n\n/**\n * returns the first (non-sigil) character of 'name',\n * converted to uppercase\n * @param {string} name\n * @return {string} the first letter\n */\nexport function getInitialLetter(name: string): string {\n  if (name.length < 1) {\n    return \"\";\n  }\n\n  const initial = name[0];\n  if ([MX_USERNAME_PREFIX, MX_ROOM_PREFIX, MX_ALIAS_PREFIX].includes(initial)) {\n    name = name.substring(1);\n  }\n\n  // rely on a grapheme cluster splitter so that we don't break apart compound emojis\n  const result = graphemeSegmenter.segment(name)[Symbol.iterator]().next();\n  return result.done ? \"\" : result.value.segment;\n}\n"],"mappings":"AAWA,IAAM,oBAAoB,IAAI,KAAK,WAAW;;;;;;;AAQ9C,SAAgB,iBAAiB,MAAsB;AACrD,KAAI,KAAK,SAAS,EAChB,QAAO;CAGT,MAAM,UAAU,KAAK;AACrB,KAAI;;;;EAAqD,CAAC,SAAS,QAAQ,CACzE,QAAO,KAAK,UAAU,EAAE;CAI1B,MAAM,SAAS,kBAAkB,QAAQ,KAAK,CAAC,OAAO,WAAW,CAAC,MAAM;AACxE,QAAO,OAAO,OAAO,KAAK,OAAO,MAAM"}