{"version":3,"file":"resolveCharacters.mjs","sources":["../../src/utils/resolveCharacters.ts"],"sourcesContent":["import { splitTextToCharacters } from './splitTextToCharacters';\n\n/**\n * Processes the passed character set data and returns a flattened array of all the characters.\n *\n * Ignored because not directly exposed.\n * @ignore\n * @param {string | string[] | string[][] } chars\n * @returns {string[]} the flattened array of characters\n */\nexport function resolveCharacters(chars: string | (string | string[])[]): string[]\n{\n    // Split the chars string into individual characters\n    if (typeof chars === 'string')\n    {\n        chars = [chars];\n    }\n\n    // Handle an array of characters+ranges\n    const result: string[] = [];\n\n    for (let i = 0, j = chars.length; i < j; i++)\n    {\n        const item = chars[i];\n\n        // Handle range delimited by start/end chars\n        if (Array.isArray(item))\n        {\n            if (item.length !== 2)\n            {\n                throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${item.length}.`);\n            }\n\n            const startCode = item[0].charCodeAt(0);\n            const endCode = item[1].charCodeAt(0);\n\n            if (endCode < startCode)\n            {\n                throw new Error('[BitmapFont]: Invalid character range.');\n            }\n\n            for (let i = startCode, j = endCode; i <= j; i++)\n            {\n                result.push(String.fromCharCode(i));\n            }\n        }\n        // Handle a character set string\n        else\n        {\n            result.push(...splitTextToCharacters(item));\n        }\n    }\n\n    if (result.length === 0)\n    {\n        throw new Error('[BitmapFont]: Empty set when resolving characters.');\n    }\n\n    return result;\n}\n"],"names":[],"mappings":";;AAUO,SAAA,iBAAA,CAA2B,KAClC,EAAA;AAEI,EAAI,IAAA,OAAO,UAAU,QACrB,EAAA;AACI,IAAA,KAAA,GAAQ,CAAC,KAAK,CAAA,CAAA;AAAA,GAClB;AAGA,EAAA,MAAM,SAAmB,EAAC,CAAA;AAE1B,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,MAAM,MAAQ,EAAA,CAAA,GAAI,GAAG,CACzC,EAAA,EAAA;AACI,IAAA,MAAM,OAAO,KAAM,CAAA,CAAA,CAAA,CAAA;AAGnB,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CACtB,EAAA;AACI,MAAI,IAAA,IAAA,CAAK,WAAW,CACpB,EAAA;AACI,QAAA,MAAM,IAAI,KAAA,CAAM,CAAiE,8DAAA,EAAA,IAAA,CAAK,MAAS,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,OACnG;AAEA,MAAA,MAAM,SAAY,GAAA,IAAA,CAAK,CAAG,CAAA,CAAA,UAAA,CAAW,CAAC,CAAA,CAAA;AACtC,MAAA,MAAM,OAAU,GAAA,IAAA,CAAK,CAAG,CAAA,CAAA,UAAA,CAAW,CAAC,CAAA,CAAA;AAEpC,MAAA,IAAI,UAAU,SACd,EAAA;AACI,QAAM,MAAA,IAAI,MAAM,wCAAwC,CAAA,CAAA;AAAA,OAC5D;AAEA,MAAA,KAAA,IAAS,KAAI,SAAW,EAAA,EAAA,GAAI,OAAS,EAAA,EAAA,IAAK,IAAG,EAC7C,EAAA,EAAA;AACI,QAAA,MAAA,CAAO,IAAK,CAAA,MAAA,CAAO,YAAa,CAAA,EAAC,CAAC,CAAA,CAAA;AAAA,OACtC;AAAA,KAIJ,MAAA;AACI,MAAA,MAAA,CAAO,IAAK,CAAA,GAAG,qBAAsB,CAAA,IAAI,CAAC,CAAA,CAAA;AAAA,KAC9C;AAAA,GACJ;AAEA,EAAI,IAAA,MAAA,CAAO,WAAW,CACtB,EAAA;AACI,IAAM,MAAA,IAAI,MAAM,oDAAoD,CAAA,CAAA;AAAA,GACxE;AAEA,EAAO,OAAA,MAAA,CAAA;AACX;;;;"}