{"version":3,"file":"resolveCharacters.mjs","sources":["../../../../src/scene/text-bitmap/utils/resolveCharacters.ts"],"sourcesContent":["/**\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    // Skip unexpected 'empty set' check at end\n    if (chars === '')\n    {\n        return [];\n    }\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            if (item[0].length === 0 || item[1].length === 0)\n            {\n                throw new Error('[BitmapFont]: Invalid character delimiter.');\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        else\n        {\n            result.push(...Array.from(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":["i","j"],"mappings":";AAQO,SAAS,kBAAkB,KAAA,EAClC;AAEI,EAAA,IAAI,UAAU,EAAA,EACd;AACI,IAAA,OAAO,EAAC;AAAA,EACZ;AAGA,EAAA,IAAI,OAAO,UAAU,QAAA,EACrB;AACI,IAAA,KAAA,GAAQ,CAAC,KAAK,CAAA;AAAA,EAClB;AAGA,EAAA,MAAM,SAAmB,EAAC;AAE1B,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,MAAM,MAAA,EAAQ,CAAA,GAAI,GAAG,CAAA,EAAA,EACzC;AACI,IAAA,MAAM,IAAA,GAAO,MAAM,CAAC,CAAA;AAGpB,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EACtB;AACI,MAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EACpB;AACI,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,8DAAA,EAAiE,IAAA,CAAK,MAAM,CAAA,CAAA,CAAG,CAAA;AAAA,MACnG;AACA,MAAA,IAAI,IAAA,CAAK,CAAC,CAAA,CAAE,MAAA,KAAW,KAAK,IAAA,CAAK,CAAC,CAAA,CAAE,MAAA,KAAW,CAAA,EAC/C;AACI,QAAA,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAAA,MAChE;AAEA,MAAA,MAAM,SAAA,GAAY,IAAA,CAAK,CAAC,CAAA,CAAE,WAAW,CAAC,CAAA;AACtC,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,CAAC,CAAA,CAAE,WAAW,CAAC,CAAA;AAEpC,MAAA,IAAI,UAAU,SAAA,EACd;AACI,QAAA,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAAA,MAC5D;AAEA,MAAA,KAAA,IAASA,KAAI,SAAA,EAAWC,EAAAA,GAAI,OAAA,EAASD,EAAAA,IAAKC,IAAGD,EAAAA,EAAAA,EAC7C;AACI,QAAA,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAaA,EAAC,CAAC,CAAA;AAAA,MACtC;AAAA,IACJ,CAAA,MAEA;AACI,MAAA,MAAA,CAAO,IAAA,CAAK,GAAG,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,IACnC;AAAA,EACJ;AAEA,EAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EACtB;AACI,IAAA,MAAM,IAAI,MAAM,oDAAoD,CAAA;AAAA,EACxE;AAEA,EAAA,OAAO,MAAA;AACX;;;;"}