@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 1.69 kB
Source Map (JSON)
{"version":3,"file":"get-box-mod.cjs","names":[],"sources":["../../../../src/core/Box/get-box-mod/get-box-mod.ts"],"sourcesContent":["function transformModKey(key: string) {\n const cleanKey = key.startsWith('data-') ? key.slice(5) : key;\n const kebabKey = cleanKey.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n return `data-${kebabKey}`;\n}\n\nexport function getMod(props: Record<string, any>) {\n return Object.keys(props).reduce<Record<string, any>>((acc, key) => {\n const value = props[key];\n\n if (value === undefined || value === '' || value === false || value === null) {\n return acc;\n }\n\n acc[transformModKey(key)] = props[key];\n return acc;\n }, {});\n}\n\nexport function getBoxMod(mod?: any): Record<string, any> | null {\n if (!mod) {\n return null;\n }\n\n if (typeof mod === 'string') {\n return { [transformModKey(mod)]: true };\n }\n\n if (Array.isArray(mod)) {\n return [...mod].reduce<Record<`data-${string}`, any>>(\n (acc, value) => ({ ...acc, ...getBoxMod(value) }),\n {}\n );\n }\n\n return getMod(mod);\n}\n"],"mappings":";;AAAA,SAAS,gBAAgB,KAAa;AAGpC,QAAO,SAFU,IAAI,WAAW,QAAQ,GAAG,IAAI,MAAM,EAAE,GAAG,KAChC,QAAQ,mBAAmB,QAAQ,CAAC,aAAa;;AAI7E,SAAgB,OAAO,OAA4B;AACjD,QAAO,OAAO,KAAK,MAAM,CAAC,QAA6B,KAAK,QAAQ;EAClE,MAAM,QAAQ,MAAM;AAEpB,MAAI,UAAU,KAAA,KAAa,UAAU,MAAM,UAAU,SAAS,UAAU,KACtE,QAAO;AAGT,MAAI,gBAAgB,IAAI,IAAI,MAAM;AAClC,SAAO;IACN,EAAE,CAAC;;AAGR,SAAgB,UAAU,KAAuC;AAC/D,KAAI,CAAC,IACH,QAAO;AAGT,KAAI,OAAO,QAAQ,SACjB,QAAO,GAAG,gBAAgB,IAAI,GAAG,MAAM;AAGzC,KAAI,MAAM,QAAQ,IAAI,CACpB,QAAO,CAAC,GAAG,IAAI,CAAC,QACb,KAAK,WAAW;EAAE,GAAG;EAAK,GAAG,UAAU,MAAM;EAAE,GAChD,EAAE,CACH;AAGH,QAAO,OAAO,IAAI"}