@web3r/flowerkit
Version:
Tree-shakable JavaScript and TypeScript utility library for frontend/browser apps: DOM, events, arrays, objects, strings, date, JSON, and network helpers (ESM/CJS, SSR-friendly).
1 lines • 2.32 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["import { getCSSValue } from \"../getCSSValue/index.ts\";\r\n\r\nexport type TGetCSSVarArgs = Parameters<typeof getCSSVar>;\r\n\r\nexport type TGetCSSVarReturn = ReturnType<typeof getCSSVar>;\r\n\r\n/**\r\n * Gets value of CSS variable\r\n * @param el{HTMLElement} source DOM element\r\n * @param variable{String} variable name\r\n * @param isNumberFormat{Boolean=} whether to return a number rather than a string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties\r\n * @returns {string|number}\r\n * @throws {TypeError} getCSSVar: el must be an HTMLElement\r\n * @throws {TypeError} getCSSVar: variable must be a non-empty string\r\n * @throws {TypeError} getCSSVar: isNumberFormat must be a boolean\r\n * @example\r\n * // How to get CSS3 variable value from an element?\r\n * const block = document.querySelector(\"#myBlock\"); // <div id=\"myBlock\" style=\"--myVar: value;\">\r\n * getCSSVar(block, \"--myVar\"); // or just \"myVar\"\r\n */\r\nexport const getCSSVar = (el: HTMLElement, variable: string, isNumberFormat: boolean | undefined = false): string | number => {\r\n if (!el || typeof (el as any).style !== \"object\") {\r\n throw new TypeError(\"getCSSVar: el must be an HTMLElement\");\r\n }\r\n if (typeof variable !== \"string\" || variable.length === 0) {\r\n throw new TypeError(\"getCSSVar: variable must be a non-empty string\");\r\n }\r\n if (typeof isNumberFormat !== \"boolean\") {\r\n throw new TypeError(\"getCSSVar: isNumberFormat must be a boolean\");\r\n }\r\n const prefix = \"--\";\r\n const prop = variable.startsWith(prefix) ? variable : prefix + variable;\r\n const value = getCSSValue(el, prop);\r\n return isNumberFormat ? parseFloat(value) : value;\r\n};\r\n"],"names":["getCSSVar","el","variable","isNumberFormat","style","TypeError","length","prefix","prop","startsWith","value","getCSSValue","parseFloat"],"mappings":";;;;;;;;;;;;;;;GAqBO,MAAMA,UAAYA,CAACC,GAAiBC,SAAkBC,eAAsC,SACjG,IAAKF,WAAcA,GAAWG,QAAU,SACtC,MAAM,IAAIC,UAAU,wCAEtB,UAAWH,WAAa,UAAYA,SAASI,SAAW,EACtD,MAAM,IAAID,UAAU,kDAEtB,UAAWF,iBAAmB,UAC5B,MAAM,IAAIE,UAAU,+CAEtB,MAAME,OAAS,KACf,MAAMC,KAAON,SAASO,WAAWF,QAAUL,SAAWK,OAASL,SAC/D,MAAMQ,MAAQC,MAAAA,YAAYV,GAAIO,MAC9B,OAAOL,eAAiBS,WAAWF,OAASA"}