{"version":3,"file":"D_l4YZj7.mjs","sources":["../../../../../../node_modules/txstate-utils/lib-esm/util.js"],"sourcesContent":["/**\n * returns a promise that will resolve in the specified number of\n * milliseconds\n */\nexport function sleep(milliseconds = 0) {\n    return new Promise(resolve => setTimeout(resolve, milliseconds));\n}\n/**\n * generates a random string guaranteed to start with an alpha\n * character, which makes it suitable for HTML `id` attribute\n */\nexport function randomid(length = 10) {\n    let ret = String.fromCharCode(97 + Math.floor(Math.random() * 26));\n    while (ret.length < length)\n        ret += Math.random().toString(36).slice(2);\n    return ret.slice(0, length);\n}\n/**\n * useful for checking for empty strings, though in modern javascript\n * optional chaining may be easier: if (!str?.trim().length) ...\n */\nexport function isBlank(str) {\n    return !str || !str.trim || str.trim().length === 0;\n}\n/**\n * useful for checking for empty strings, though in modern javascript\n * optional chaining may be easier: if (str?.trim().length) ...\n */\nexport function isNotBlank(str) {\n    return !isBlank(str);\n}\n/**\n * useful for chaining Array.filter(isTruthy).map when using typescript; the map\n * variable will no longer be marked as optional\n *\n * also see: isNotNull\n */\nexport function isTruthy(str) {\n    return Boolean(str);\n}\n/**\n * undefined and null both treated as null\n */\nexport function isNull(obj) {\n    return obj == null;\n}\n/**\n * undefined and null both treated as null\n */\nexport function isNotNull(obj) {\n    return obj != null;\n}\n/**\n * only checks for valid syntax\n */\nexport function isEmail(email) {\n    return !!email && /^[a-z0-9!#$%&'*+/=?^_‘{|}~-]+(\\.[a-z0-9!#$%&'*+/=?^_‘{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]([a-z0-9-]*[a-z0-9])?$/i.test(email);\n}\nexport function optionalString(str) {\n    return str == null ? undefined : String(str);\n}\nexport function printIf(...args) {\n    if (args.length === 1)\n        return args[0] == null ? '' : String(args[0]);\n    return args[0] && args[1] != null ? String(args[1]) : '';\n}\nexport function roundTo(num, digits = 0) {\n    const conversion = Math.pow(10, digits);\n    return Math.round((num + Number.EPSILON) * conversion) / conversion;\n}\nexport function bytesToHuman(bytes) {\n    if (!bytes)\n        return '0 bytes';\n    const scales = [' bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n    const scale = Math.min(5, Math.floor(Math.log(bytes) / Math.log(1024)));\n    return String(parseFloat((bytes / Math.pow(1024, scale)).toPrecision(3))) + scales[scale];\n}\n"],"names":["randomid","length","ret","isBlank","str","isNotBlank","isNull","obj"],"mappings":"AAWO,SAASA,EAASC,EAAS,GAAI,CAClC,IAAIC,EAAM,OAAO,aAAa,GAAK,KAAK,MAAM,KAAK,SAAW,EAAE,CAAC,EACjE,KAAOA,EAAI,OAASD,GAChBC,GAAO,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAC7C,OAAOA,EAAI,MAAM,EAAGD,CAAM,CAC9B,CAKO,SAASE,EAAQC,EAAK,CACzB,MAAO,CAACA,GAAO,CAACA,EAAI,MAAQA,EAAI,KAAI,EAAG,SAAW,CACtD,CAKO,SAASC,EAAWD,EAAK,CAC5B,MAAO,CAACD,EAAQC,CAAG,CACvB,CAaO,SAASE,EAAOC,EAAK,CACxB,OAAOA,GAAO,IAClB","x_google_ignoreList":[0]}