vevet
Version:
Vevet is a JavaScript library for creative development that simplifies crafting rich interactions like split text animations, carousels, marquees, preloading, and more.
56 lines • 2.5 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
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;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.splitBase = splitBase;
var env_1 = require("../../../internal/env");
var wrapLetters_1 = require("./wrapLetters");
var wrapWords_1 = require("./wrapWords");
/**
* Splits text in the container into words and optionally into letters.
*/
function splitBase(_a) {
var container = _a.container, letterClassName = _a.letterClassName, wordClassName = _a.wordClassName, hasLetters = _a.hasLetters, letterTag = _a.letterTag, wordTag = _a.wordTag, ignore = _a.ignore, props = __rest(_a, ["container", "letterClassName", "wordClassName", "hasLetters", "letterTag", "wordTag", "ignore"]);
// Prepare the fragment
var prepareFragment = env_1.doc.createDocumentFragment();
while (container.childNodes[0]) {
prepareFragment.appendChild(container.childNodes[0]);
}
// Wrap the text into words
var wordsMeta = (0, wrapWords_1.wrapWords)(__assign(__assign({}, props), { container: prepareFragment, classname: wordClassName, tagName: wordTag, ignore: ignore }));
var lettersMeta = [];
// If enabled, wrap words into letters
if (hasLetters) {
var wrappedLetters = (0, wrapLetters_1.wrapLetters)({
wordsMeta: wordsMeta,
classname: letterClassName,
tagName: letterTag,
ignore: ignore,
});
lettersMeta.push.apply(lettersMeta, wrappedLetters.lettersMeta);
}
// Append the prepared fragment
container.appendChild(prepareFragment);
return { wordsMeta: wordsMeta, lettersMeta: lettersMeta };
}
//# sourceMappingURL=splitBase.js.map