UNPKG

@cran/vue.use

Version:

Cranberry Vue Use Utilities

30 lines (29 loc) 864 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTimeline = void 0; const runtime_dom_1 = require("@vue/runtime-dom"); function useTimeline(sequence, initial, { loop = false, }) { const container = (0, runtime_dom_1.ref)(initial); const length = sequence.length; let index = 0; let v = null; function resume() { if (loop || index < length) { const [delay, value,] = sequence[(++index) % length]; v = setTimeout(function onNext() { container.value = value; resume(); }, delay); } } function pause() { if (v) { clearTimeout(v); --index; v = null; } } resume(); return Object.assign(container, { pause, resume, }); } exports.useTimeline = useTimeline;