| 1 |
export function parseCssClassList(rawValue?: string): string[] { |
| 2 |
if (!rawValue) { |
| 3 |
return [] |
| 4 |
} |
| 5 |
|
| 6 |
const classNamePattern = /^[A-Za-z_-][A-Za-z0-9_-]*$/ |
| 7 |
const uniqueClassNames = new Set<string>() |
| 8 |
|
| 9 |
rawValue |
| 10 |
.split(',') |
| 11 |
.map((entry) => entry.trim()) |
| 12 |
.filter((entry) => entry.length > 0) |
| 13 |
.forEach((entry) => { |
| 14 |
const classTokens = entry.split(/\s+/) |
| 15 |
classTokens.forEach((token) => { |
| 16 |
if (classNamePattern.test(token)) { |
| 17 |
uniqueClassNames.add(token) |
| 18 |
} |
| 19 |
}) |
| 20 |
}) |
| 21 |
|
| 22 |
return Array.from(uniqueClassNames) |
| 23 |
} |
| 24 |
|