UNPKG

vevet

Version:

Vevet is a JavaScript library for creative development that simplifies crafting rich interactions like split text animations, carousels, marquees, preloading, and more.

42 lines 1.82 kB
var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; import { doc } from '../../../internal/env'; import { wrapLetters } from './wrapLetters'; import { wrapWords } from './wrapWords'; /** * Splits text in the container into words and optionally into letters. */ export function splitBase(_a) { var { container, letterClassName, wordClassName, hasLetters, letterTag, wordTag, ignore } = _a, props = __rest(_a, ["container", "letterClassName", "wordClassName", "hasLetters", "letterTag", "wordTag", "ignore"]); // Prepare the fragment const prepareFragment = doc.createDocumentFragment(); while (container.childNodes[0]) { prepareFragment.appendChild(container.childNodes[0]); } // Wrap the text into words const wordsMeta = wrapWords(Object.assign(Object.assign({}, props), { container: prepareFragment, classname: wordClassName, tagName: wordTag, ignore })); const lettersMeta = []; // If enabled, wrap words into letters if (hasLetters) { const wrappedLetters = wrapLetters({ wordsMeta, classname: letterClassName, tagName: letterTag, ignore, }); lettersMeta.push(...wrappedLetters.lettersMeta); } // Append the prepared fragment container.appendChild(prepareFragment); return { wordsMeta, lettersMeta }; } //# sourceMappingURL=splitBase.js.map