{"version":3,"file":"useDataId-RYy8A803-chunk.js","sources":["../../../src/utils/hooks/useDataId.ts"],"sourcesContent":["import { useMemo } from \"react\";\n\n/**\n * useDataId : Centralises the creation of a data-qa attribute naming scheme\n * @param defaultId : Required - Default identity to be assigned\n * @param options : Object : useDataIdOptions { prefix, suffix }\n * @returns string\n */\nexport type useDataIdOptions = {\n\tprefix?: string;\n\tsuffix?: string;\n};\n\n/**\n * Assign some default options to manage a merge props\n */\nconst defaultOptions: useDataIdOptions = {\n\tprefix: \"\",\n\tsuffix: \"\"\n};\n\nconst useDataId = (defaultId: string, options?: useDataIdOptions) => {\n\tconst mergedOptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\n\tconst { prefix, suffix } = mergedOptions;\n\n\tconst dataQAId = useMemo(\n\t\t() =>\n\t\t\t[prefix!.trim(), defaultId, suffix!.trim()]\n\t\t\t\t.filter((v) => v !== \"\")\n\t\t\t\t.join(\"-\")\n\t\t\t\t.replace(/\\s/g, \"-\")\n\t\t\t\t.trim()\n\t\t\t\t.toLocaleLowerCase(),\n\t\t[defaultId, prefix, suffix]\n\t);\n\n\treturn dataQAId;\n};\n\nexport { useDataId };\n"],"names":["defaultOptions","useDataId","defaultId","options","mergedOptions","prefix","suffix","useMemo","v"],"mappings":"uCAgBA,MAAMA,EAAmC,CACxC,OAAQ,GACR,OAAQ,EACT,EAEMC,EAAY,CAACC,EAAmBC,IAA+B,CACpE,MAAMC,EAAgB,CACrB,GAAGJ,EACH,GAAGG,CACJ,EAEM,CAAE,OAAAE,EAAQ,OAAAC,CAAA,EAAWF,EAapB,OAXUG,EAAA,QAChB,IACC,CAACF,EAAQ,KAAK,EAAGH,EAAWI,EAAQ,KAAM,CAAA,EACxC,OAAQE,GAAMA,IAAM,EAAE,EACtB,KAAK,GAAG,EACR,QAAQ,MAAO,GAAG,EAClB,KAAK,EACL,kBAAkB,EACrB,CAACN,EAAWG,EAAQC,CAAM,CAC3B,CAGD"}