UNPKG

@modern-kit/utils

Version:
1 lines 3.12 kB
{"version":3,"file":"index.cjs","sources":["../../../src/common/hexToRgba/utils.ts","../../../src/common/hexToRgba/index.ts"],"sourcesContent":["import { repeatCharacters } from '../../string';\n\nconst FULL_HEX_LENGTH = 6;\nconst REPEAT_COUNT = 2;\n\nexport const getExpandedHex = (hex: string) => {\n const hexString = hex.replace('#', '');\n\n return hexString.length === FULL_HEX_LENGTH\n ? hexString\n : repeatCharacters(hexString, REPEAT_COUNT);\n};\n","import { getExpandedHex } from './utils';\n\nconst HEXADECIMAL = 16;\n\ninterface HexToRgbaReturnType {\n r: number;\n g: number;\n b: number;\n a: number;\n stringifiedValue: string;\n}\n\n/**\n * @description 16진수 색상 값을 RGBA 색상 값으로 변환하는 함수입니다.\n * 변환된 결과는 객체 형태로 반환되며, RGBA 값을 문자열로도 제공합니다.\n *\n * @param {string} hex - 변환할 16진수 색상 값입니다. `#` 기호는 필수 사항이며, 3자리(단축형) 또는 6자리의 16진수 값이어야 합니다.\n * @param {number} [alpha=1] - 색상의 투명도를 나타내는 알파 값입니다. 기본값은 1입니다.\n * @returns {{ r: number; g: number; b: number; a: number; stringifiedValue: string } | null}\n * - 변환된 RGBA 값을 포함하는 객체를 반환합니다. 입력이 유효하지 않을 경우 `null`을 반환합니다.\n *\n * @example\n * hexToRgba('#FF5733', 0.5);\n * // { r: 255, g: 87, b: 51, a: 0.5, stringifiedValue: 'rgba(255,87,51,0.5)' }\n *\n * @example\n * hexToRgba('#1A2', 0.2); // '#1A2' -> 변환: '#11AA22'\n * // { r: 17, g: 170, b: 34, a: 0.2, stringifiedValue: 'rgba(17,170,34,0.2)' }\n */\nexport function hexToRgba(\n hex: string,\n alpha: number = 1\n): HexToRgbaReturnType | null {\n const regex = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;\n\n if (!regex.test(hex)) {\n return null;\n }\n\n const expandedHex = getExpandedHex(hex);\n\n const [r, g, b] = [0, 2, 4].map((offset) => {\n return parseInt(expandedHex.slice(offset, offset + 2), HEXADECIMAL);\n });\n\n return {\n r,\n g,\n b,\n a: alpha,\n stringifiedValue: `rgba(${r},${g},${b},${alpha})`,\n };\n}\n"],"names":["repeatCharacters"],"mappings":";;;;AAEA,MAAM,eAAA,GAAkB,CAAA;AACxB,MAAM,YAAA,GAAe,CAAA;AAEd,MAAM,cAAA,GAAiB,CAAC,GAAA,KAAgB;AAC7C,EAAA,MAAM,SAAA,GAAY,GAAA,CAAI,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA;AAErC,EAAA,OAAO,UAAU,MAAA,KAAW,eAAA,GACxB,SAAA,GACAA,uCAAA,CAAiB,WAAW,YAAY,CAAA;AAC9C,CAAA;;ACTA,MAAM,WAAA,GAAc,EAAA;AA2Bb,SAAS,SAAA,CACd,GAAA,EACA,KAAA,GAAgB,CAAA,EACY;AAC5B,EAAA,MAAM,KAAA,GAAQ,oCAAA;AAEd,EAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA,EAAG;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,WAAA,GAAc,eAAe,GAAG,CAAA;AAEtC,EAAA,MAAM,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,GAAI,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,MAAA,KAAW;AAC1C,IAAA,OAAO,SAAS,WAAA,CAAY,KAAA,CAAM,QAAQ,MAAA,GAAS,CAAC,GAAG,WAAW,CAAA;AAAA,EACpE,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA,EAAG,KAAA;AAAA,IACH,gBAAA,EAAkB,QAAQ,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,CAAC,IAAI,KAAK,CAAA,CAAA;AAAA,GAChD;AACF;;;;"}