Spaces:
Running
Running
| ; | |
| var __importDefault = (this && this.__importDefault) || function (mod) { | |
| return (mod && mod.__esModule) ? mod : { "default": mod }; | |
| }; | |
| exports.__esModule = true; | |
| exports.RenderUtils = void 0; | |
| var lodash_1 = __importDefault(require("lodash")); | |
| var remotion_1 = require("remotion"); | |
| function levenshteinDistance(str1, str2) { | |
| var dp = Array.from({ length: str1.length + 1 }, function (_, i) { return [i]; }); | |
| for (var j = 1; j <= str2.length; j++) { | |
| dp[0][j] = j; | |
| } | |
| for (var i = 1; i <= str1.length; i++) { | |
| for (var j = 1; j <= str2.length; j++) { | |
| var cost = str1[i - 1] === str2[j - 1] ? 0 : 1; | |
| dp[i][j] = Math.min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + cost); | |
| } | |
| } | |
| return dp[str1.length][str2.length]; | |
| } | |
| var RenderUtils = /** @class */ (function () { | |
| function RenderUtils() { | |
| } | |
| RenderUtils.calculateDisplayMedia = function (item, durationInSeconds, frame, fps) { | |
| var currentDisplayMedia = ((item === null || item === void 0 ? void 0 : item.mediaAbsPaths) || [])[0]; | |
| if (!lodash_1["default"].isEmpty(item === null || item === void 0 ? void 0 : item.mediaAbsPaths)) { | |
| var frameOffest = 0; | |
| for (var i = 0; i < (item === null || item === void 0 ? void 0 : item.mediaAbsPaths.length); i++) { | |
| var media = item.mediaAbsPaths[i]; | |
| if (!media) { | |
| return undefined; | |
| } | |
| media.idx = i; | |
| media.startFrame = frameOffest; | |
| if (media.durationSec == undefined) { | |
| media.durationSec = durationInSeconds / (item === null || item === void 0 ? void 0 : item.mediaAbsPaths.length); | |
| if (i == item.mediaAbsPaths.length - 1) { | |
| media.durationSec = durationInSeconds; | |
| } | |
| } | |
| media.durationFrames = media.durationSec * fps; | |
| media.endFrame = frameOffest + media.durationFrames; | |
| frameOffest = frameOffest + media.durationFrames; | |
| if (frame > media.startFrame && frame < media.endFrame) { | |
| currentDisplayMedia = media; | |
| } | |
| } | |
| } | |
| return currentDisplayMedia; | |
| }; | |
| RenderUtils.tryStaticFile = function (file) { | |
| try { | |
| return (0, remotion_1.staticFile)(file); | |
| } | |
| catch (e) { | |
| var fileName = RenderUtils.getFileName(file); | |
| return (0, remotion_1.staticFile)(fileName); | |
| } | |
| }; | |
| RenderUtils.convertVHToPixels = function (vh) { | |
| return Math.round(window.innerHeight * (parseInt(vh.replace("vh", "")) / 100)); | |
| }; | |
| RenderUtils.convertVWToPixels = function (vw) { | |
| return Math.round(window.innerWidth * (parseInt(vw.replace("vw", "")) / 100)); | |
| }; | |
| RenderUtils.splitWordsIntoGroups = function (words) { | |
| var groups = []; | |
| var currentGroup = []; | |
| for (var _i = 0, words_1 = words; _i < words_1.length; _i++) { | |
| var word = words_1[_i]; | |
| if (currentGroup.length === 0) { | |
| currentGroup.push(word); | |
| } | |
| else if (word.sentence_end) { | |
| currentGroup.push(word); | |
| groups.push(currentGroup); | |
| currentGroup = []; | |
| } | |
| else if (currentGroup.length < 5) { | |
| currentGroup.push(word); | |
| } | |
| else { | |
| groups.push(currentGroup); | |
| currentGroup = [word]; | |
| } | |
| } | |
| if (currentGroup.length > 0) { | |
| groups.push(currentGroup); | |
| } | |
| // Ensure each group has a maximum of 5 words | |
| var finalGroups = []; | |
| for (var _a = 0, groups_1 = groups; _a < groups_1.length; _a++) { | |
| var group = groups_1[_a]; | |
| while (group.length > 5) { | |
| finalGroups.push(group.slice(0, 5)); | |
| group.splice(0, 5); | |
| } | |
| finalGroups.push(group); | |
| } | |
| return finalGroups === null || finalGroups === void 0 ? void 0 : finalGroups.map(function (group) { | |
| return { | |
| words: group, | |
| start: undefined, | |
| end: undefined | |
| }; | |
| }); | |
| }; | |
| RenderUtils.findCurrentGroupByTime = function (timeSec, groups) { | |
| var t = timeSec; | |
| var wds = groups; | |
| for (var i = 0; i < wds.length; i++) { | |
| var x = wds[i]; | |
| if (x.start != undefined && x.end != undefined && (t >= x.start && t < x.end)) { | |
| return x; | |
| } | |
| } | |
| }; | |
| RenderUtils.findCurrentWord = function (timeSec, frames) { | |
| var t = timeSec; | |
| var wds = frames; | |
| for (var i = 0; i < wds.length; i++) { | |
| var x = wds[i]; | |
| if (x.start && x.end && (t >= x.start && t < x.end)) { | |
| return x; | |
| } | |
| } | |
| }; | |
| RenderUtils.randomElement = function (arr, seed) { | |
| return arr[Math.floor((0, remotion_1.random)(seed || 1) * arr.length)]; | |
| }; | |
| RenderUtils.hashCode = function (s) { | |
| return s.split("").reduce(function (a, b) { | |
| a = ((a << 5) - a) + b.charCodeAt(0); | |
| return a & a; | |
| }, 0); | |
| }; | |
| RenderUtils.splitArrayIntoChunks = function (arr, chunkSize) { | |
| var chunkedArr = []; | |
| for (var i = 0; i < arr.length; i += chunkSize) { | |
| chunkedArr.push(arr.slice(i, i + chunkSize)); | |
| } | |
| return chunkedArr; | |
| }; | |
| RenderUtils.splitArray = function (arr, pieces) { | |
| var result = []; | |
| var chunkSize = Math.ceil(arr.length / pieces); | |
| for (var i = 0, j = arr.length; i < j; i += chunkSize) { | |
| result.push(arr.slice(i, i + chunkSize)); | |
| } | |
| return result; | |
| }; | |
| RenderUtils.getFileName = function (filePath, subdirpath) { | |
| if (!filePath) | |
| return undefined; | |
| if (filePath.startsWith("http")) | |
| return filePath; | |
| // Always extract just the filename from any path | |
| var match = filePath.match(/([^\/\\]+)$/); | |
| var filename = match ? match[1] : ''; | |
| if (subdirpath) { | |
| return subdirpath + "/" + filename; | |
| } | |
| else { | |
| return filename; | |
| } | |
| }; | |
| RenderUtils.findMostSimilarString = function (inputString, stringArray) { | |
| var minDistance = Number.MAX_SAFE_INTEGER; | |
| var mostSimilarString = ''; | |
| stringArray.forEach(function (str) { | |
| var distance = levenshteinDistance(inputString, str); | |
| if (distance < minDistance) { | |
| minDistance = distance; | |
| mostSimilarString = str; | |
| } | |
| }); | |
| return mostSimilarString; | |
| }; | |
| return RenderUtils; | |
| }()); | |
| exports.RenderUtils = RenderUtils; | |