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.

56 lines 2.5 kB
"use strict"; 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