Add SplitText component
This commit is contained in:
@@ -24,6 +24,30 @@ export const debounce = (func: Function, timeout: number) => {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Split text
|
||||
* @description Split a string into words or characters
|
||||
* @returns string[]
|
||||
*/
|
||||
export const splitText = (text: string, mode: string = 'words'): string[] => {
|
||||
// Split by words
|
||||
if (mode === 'words') {
|
||||
const words = text
|
||||
.replace(/\\n/g, '\n')
|
||||
.replace(/\s+/g, m => m.includes('\n') ? '\n ' : ' ')
|
||||
.trim()
|
||||
.split(' ')
|
||||
|
||||
return words
|
||||
}
|
||||
// Split by chars
|
||||
else if (mode === 'chars') {
|
||||
const chars = Array.from(text).map(char => char === ' ' ? '\xa0' : char)
|
||||
return chars
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Linear Interpolation
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user