@remotion/studio
Version:
APIs for interacting with the Remotion Studio
28 lines (27 loc) • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTimelineSequenceSequenceSortKey = void 0;
const getTimelineSequenceSequenceSortKey = (track, tracks, sameHashes = {}, nonceRanks = new Map()) => {
var _a;
const firstSequenceWithSameHash = tracks.find((t) => sameHashes[track.hash].includes(t.sequence.id));
const sequenceId = firstSequenceWithSameHash.sequence.id;
const rank = (_a = nonceRanks.get(sequenceId)) !== null && _a !== void 0 ? _a : 0;
const id = String(rank).padStart(6, '0');
if (!track.sequence.parent) {
return id;
}
const parent = tracks.find((t) => t.sequence.id === track.sequence.parent);
if (!parent) {
// Due to effects and conditional `showInTimeline`, a parent
// may not exist in the `allTracks` array.
return id;
}
const firstParentWithSameHash = tracks.find((a) => {
return sameHashes[parent.hash].includes(a.sequence.id);
});
if (!firstParentWithSameHash) {
throw new Error('could not find parent: ' + track.sequence.parent);
}
return `${(0, exports.getTimelineSequenceSequenceSortKey)(firstParentWithSameHash, tracks, sameHashes, nonceRanks)}-${id}`;
};
exports.getTimelineSequenceSequenceSortKey = getTimelineSequenceSequenceSortKey;