The widget half of the widget catalogue's later work, ported onto makepad-widgets-core and the family crates. - libs/tween: a dependency-free tween and timeline engine -- nested timelines with positions and labels, stagger, repeat and yoyo, seek and reverse, time scale, a ticker with lag smoothing, a global pause and reduced motion, colour-space interpolation, keyframes and motion paths. The core binds it to the widget tree (tween, a widget's TweenHost), gives script a mod.tween (tween_script) and a live inspector (tween_inspect, tween_inspector). The Animator's Ease now answers from the engine's easing, so the curves have one source; the Animator keeps its states, its keyframe timelines and its own clock. - libs/gizmo and a Gizmo3d / ViewCube widget. - core: the ease editor, the sequencer, diagonal headings, hotkeys, the hotkey editor and keyboard map, the overlay layer host, a conceding row and the width a widget would take without drawing; a theme mix and a person's own theme edits that survive a style reload (theme_mix, set_theme_edit), both taken off by set_base_theme. - the surface material: buttons, check boxes, toggles, sliders and knobs carry the moulded material behind one uniform, a press idiom per sign of material_press, and four sheets that raise it: neumorphic, molded, glossy and milled. - the sheets: a row of fields is one height under every sheet. A sheet line that names a widget the app did not register (a family left out) is skipped when the sheet installs, so the date fields a sheet sizes need the dates family only where it is linked. - extras: the gradient editor, registered with the colour picker it builds on. - tweaker: the designer (a widget's literal located and edited in its source as hunks), the theme lab and the theme builder. The window reads the docked panel's band through the tweaker's hooks. - the panel no longer wears the app's theme (the design surface keeps its own palette), so the worn-theme tests go with it. Five theme builder tests fail here as they do on the branch this comes from (every_built_theme_reads and four more on text contrast); radial_menu's tab_under_an_open_menu_finds_nowhere_to_go fails here as it does on dev.
1828 lines
161 KiB
Rust
1828 lines
161 KiB
Rust
// GENERATED by gsap/emit_rust.js from gsap/out/callbacks.json -- do not edit by hand.
|
|
// GSAP 3.15.0 under Node v22.22.2; generator golden.js; root time after the frame tick: 0.
|
|
// Numbers are the golden doubles (shortest round-trip repr, bit-exact). Tolerances are the test's business
|
|
// (see design/gsap_reconciliation.md D: GSAP rounds written property values to 1e-6, so value columns need 5e-7).
|
|
// fired = callbacks without onUpdate, fired_all = with; "<who>:<callback>"; state = the driven animation after the op (None when no animation existed).
|
|
#![allow(
|
|
dead_code,
|
|
unused_imports,
|
|
clippy::approx_constant,
|
|
clippy::excessive_precision,
|
|
clippy::unreadable_literal
|
|
)]
|
|
use super::common::*;
|
|
|
|
pub const GSAP_VERSION: &str = "3.15.0";
|
|
pub const NOTES: &[&str] = &["fired = ordered callback names (excluding onUpdate) that fired during the op; fired_all includes onUpdate; update_counts counts onUpdate per animation.", "fired_detail[i].time/totalTime = the firing animation's own time()/totalTime() read inside the callback (for call:mark it is the zero-duration delayedCall).", "state = timeline state after the op. values = target values after the op.", "No ticker ever runs: reverse()/play()/restart() only set flags + (restart) jump; subsequent motion is emulated with explicit totalTime() calls."];
|
|
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct Fired {
|
|
pub cb: &'static str,
|
|
pub time: f64,
|
|
pub total_time: f64,
|
|
}
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct State {
|
|
pub time: f64,
|
|
pub total_time: f64,
|
|
pub progress: f64,
|
|
pub total_progress: f64,
|
|
pub iteration: f64,
|
|
pub reversed: bool,
|
|
pub paused: bool,
|
|
}
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct Op {
|
|
pub op: &'static str,
|
|
pub fired: &'static [&'static str],
|
|
pub fired_all: &'static [&'static str],
|
|
pub update_counts: &'static [(&'static str, u32)],
|
|
pub fired_detail: &'static [Fired],
|
|
pub state: Option<State>,
|
|
pub values: Pairs,
|
|
}
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct Trace {
|
|
pub id: &'static str,
|
|
pub description: &'static str,
|
|
pub build: &'static [&'static str],
|
|
pub ops: &'static [Op],
|
|
}
|
|
pub const TRACES: &[Trace] = &[
|
|
Trace { id: "lazy_first_render_progress_1", description: "progress(1) on a fresh main timeline BEFORE entering a ticker frame: b and inner>c have never rendered, so their first render is deferred and their callbacks fire late (compare main_ops_seek_events op \"progress(1)\" which is identical except that a/b/inner were not rendered before either)",
|
|
build: &["tl = gsap.timeline({paused:true, repeat:1, onStart, onUpdate, onRepeat, onComplete, onReverseComplete})", "tl.to(a,{x:1,duration:1,repeat:1,yoyo:true,ease:\"none\", onStart,onUpdate,onRepeat,onComplete,onReverseComplete}) // 0..2", "tl.to(b,{x:1,duration:1,ease:\"none\", onStart,onUpdate,onComplete,onReverseComplete}, \"+=0.5\") // 2.5..3.5", "tl.call(mark, [], 1.25) // \"call:mark\" (delayedCall: same fn is onComplete AND onReverseComplete)", "tl.addLabel(\"mid\", 2)", "inner = gsap.timeline({onStart,onUpdate,onComplete,onReverseComplete}); inner.to(c,{x:1,duration:1,ease:\"none\"}); tl.add(inner, 3) // 3..4", "=> tl.duration()=4, tl.totalDuration()=8"],
|
|
ops: &[
|
|
Op { op: "progress(1) [lazy first render active]", state: Some(State { time: 4.0, total_time: 4.0, progress: 1.0, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart", "a:onRepeat", "a:onComplete", "call:mark", "inner:onStart", "b:onStart", "b:onComplete", "inner:onComplete"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "inner:onStart", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onUpdate", "inner:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 4.0, total_time: 4.0 }, Fired { cb: "a:onStart", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
] },
|
|
Trace { id: "main_ops_as_specified", description: "scripted operations on the main timeline; seek() uses its default (suppressEvents = true)",
|
|
build: &["tl = gsap.timeline({paused:true, repeat:1, onStart, onUpdate, onRepeat, onComplete, onReverseComplete})", "tl.to(a,{x:1,duration:1,repeat:1,yoyo:true,ease:\"none\", onStart,onUpdate,onRepeat,onComplete,onReverseComplete}) // 0..2", "tl.to(b,{x:1,duration:1,ease:\"none\", onStart,onUpdate,onComplete,onReverseComplete}, \"+=0.5\") // 2.5..3.5", "tl.call(mark, [], 1.25) // \"call:mark\" (delayedCall: same fn is onComplete AND onReverseComplete)", "tl.addLabel(\"mid\", 2)", "inner = gsap.timeline({onStart,onUpdate,onComplete,onReverseComplete}); inner.to(c,{x:1,duration:1,ease:\"none\"}); tl.add(inner, 3) // 3..4", "=> tl.duration()=4, tl.totalDuration()=8"],
|
|
ops: &[
|
|
Op { op: "seek(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.125, total_progress: 0.0625, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "progress(1)", state: Some(State { time: 4.0, total_time: 4.0, progress: 1.0, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onComplete", "inner:onStart", "inner:onComplete"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onStart", "inner:onUpdate", "inner:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 4.0, total_time: 4.0 }, Fired { cb: "a:onStart", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "reverse()", state: Some(State { time: 4.0, total_time: 4.0, progress: 1.0, total_progress: 0.5, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "totalTime(3.75)", state: Some(State { time: 3.75, total_time: 3.75, progress: 0.9375, total_progress: 0.46875, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.75))] },
|
|
Op { op: "totalTime(3.5)", state: Some(State { time: 3.5, total_time: 3.5, progress: 0.875, total_progress: 0.4375, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.5))] },
|
|
Op { op: "totalTime(3.25)", state: Some(State { time: 3.25, total_time: 3.25, progress: 0.8125, total_progress: 0.40625, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.75)), ("c", Val::F(0.25))] },
|
|
Op { op: "totalTime(3)", state: Some(State { time: 3.0, total_time: 3.0, progress: 0.75, total_progress: 0.375, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["inner:onReverseComplete"],
|
|
fired_all: &["inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.5)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.75)", state: Some(State { time: 2.75, total_time: 2.75, progress: 0.6875, total_progress: 0.34375, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.25)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.5)", state: Some(State { time: 2.5, total_time: 2.5, progress: 0.625, total_progress: 0.3125, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["b:onReverseComplete"],
|
|
fired_all: &["b:onUpdate", "b:onReverseComplete", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.25)", state: Some(State { time: 2.25, total_time: 2.25, progress: 0.5625, total_progress: 0.28125, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2)", state: Some(State { time: 2.0, total_time: 2.0, progress: 0.5, total_progress: 0.25, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.75)", state: Some(State { time: 1.75, total_time: 1.75, progress: 0.4375, total_progress: 0.21875, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.25)", state: Some(State { time: 1.25, total_time: 1.25, progress: 0.3125, total_progress: 0.15625, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["call:mark"],
|
|
fired_all: &["call:mark", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.25, total_progress: 0.125, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["a:onRepeat"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(1.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.75)", state: Some(State { time: 0.75, total_time: 0.75, progress: 0.1875, total_progress: 0.09375, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.125, total_progress: 0.0625, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.25)", state: Some(State { time: 0.25, total_time: 0.25, progress: 0.0625, total_progress: 0.03125, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["a:onReverseComplete", "tl:onReverseComplete"],
|
|
fired_all: &["a:onUpdate", "a:onReverseComplete", "tl:onUpdate", "tl:onReverseComplete"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "restart()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "play()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.25)", state: Some(State { time: 0.25, total_time: 0.25, progress: 0.0625, total_progress: 0.03125, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.25, total_time: 0.25 }, Fired { cb: "a:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.125, total_progress: 0.0625, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.75)", state: Some(State { time: 0.75, total_time: 0.75, progress: 0.1875, total_progress: 0.09375, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.25, total_progress: 0.125, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(1.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.25)", state: Some(State { time: 1.25, total_time: 1.25, progress: 0.3125, total_progress: 0.15625, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.75, total_time: 1.25 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.75)", state: Some(State { time: 1.75, total_time: 1.75, progress: 0.4375, total_progress: 0.21875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2)", state: Some(State { time: 2.0, total_time: 2.0, progress: 0.5, total_progress: 0.25, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["a:onComplete"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.25)", state: Some(State { time: 2.25, total_time: 2.25, progress: 0.5625, total_progress: 0.28125, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.5)", state: Some(State { time: 2.5, total_time: 2.5, progress: 0.625, total_progress: 0.3125, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.75)", state: Some(State { time: 2.75, total_time: 2.75, progress: 0.6875, total_progress: 0.34375, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["b:onStart"],
|
|
fired_all: &["b:onStart", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.25)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(3)", state: Some(State { time: 3.0, total_time: 3.0, progress: 0.75, total_progress: 0.375, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["b:onUpdate", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.5)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(3.25)", state: Some(State { time: 3.25, total_time: 3.25, progress: 0.8125, total_progress: 0.40625, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["inner:onStart"],
|
|
fired_all: &["b:onUpdate", "inner:onStart", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.75)), ("c", Val::F(0.25))] },
|
|
Op { op: "totalTime(3.5)", state: Some(State { time: 3.5, total_time: 3.5, progress: 0.875, total_progress: 0.4375, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["b:onComplete"],
|
|
fired_all: &["b:onUpdate", "b:onComplete", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.5))] },
|
|
Op { op: "totalTime(3.75)", state: Some(State { time: 3.75, total_time: 3.75, progress: 0.9375, total_progress: 0.46875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.75))] },
|
|
Op { op: "totalTime(4)", state: Some(State { time: 4.0, total_time: 4.0, progress: 1.0, total_progress: 0.5, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["inner:onComplete"],
|
|
fired_all: &["inner:onUpdate", "inner:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "totalTime(4.25)", state: Some(State { time: 0.25, total_time: 4.25, progress: 0.0625, total_progress: 0.53125, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["tl:onRepeat", "a:onStart"],
|
|
fired_all: &["tl:onRepeat", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onRepeat", time: 4.0, total_time: 4.25 }, Fired { cb: "a:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(4.5)", state: Some(State { time: 0.5, total_time: 4.5, progress: 0.125, total_progress: 0.5625, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(4.75)", state: Some(State { time: 0.75, total_time: 4.75, progress: 0.1875, total_progress: 0.59375, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5)", state: Some(State { time: 1.0, total_time: 5.0, progress: 0.25, total_progress: 0.625, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(1.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5.25)", state: Some(State { time: 1.25, total_time: 5.25, progress: 0.3125, total_progress: 0.65625, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.75, total_time: 1.25 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5.5)", state: Some(State { time: 1.5, total_time: 5.5, progress: 0.375, total_progress: 0.6875, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5.75)", state: Some(State { time: 1.75, total_time: 5.75, progress: 0.4375, total_progress: 0.71875, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(6)", state: Some(State { time: 2.0, total_time: 6.0, progress: 0.5, total_progress: 0.75, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["a:onComplete"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(6.25)", state: Some(State { time: 2.25, total_time: 6.25, progress: 0.5625, total_progress: 0.78125, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(6.5)", state: Some(State { time: 2.5, total_time: 6.5, progress: 0.625, total_progress: 0.8125, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(6.75)", state: Some(State { time: 2.75, total_time: 6.75, progress: 0.6875, total_progress: 0.84375, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["b:onStart"],
|
|
fired_all: &["b:onStart", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.25)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(7)", state: Some(State { time: 3.0, total_time: 7.0, progress: 0.75, total_progress: 0.875, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["b:onUpdate", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.5)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(7.25)", state: Some(State { time: 3.25, total_time: 7.25, progress: 0.8125, total_progress: 0.90625, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["inner:onStart"],
|
|
fired_all: &["b:onUpdate", "inner:onStart", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.75)), ("c", Val::F(0.25))] },
|
|
Op { op: "totalTime(7.5)", state: Some(State { time: 3.5, total_time: 7.5, progress: 0.875, total_progress: 0.9375, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["b:onComplete"],
|
|
fired_all: &["b:onUpdate", "b:onComplete", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.5))] },
|
|
Op { op: "totalTime(7.75)", state: Some(State { time: 3.75, total_time: 7.75, progress: 0.9375, total_progress: 0.96875, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.75))] },
|
|
Op { op: "totalTime(8)", state: Some(State { time: 4.0, total_time: 8.0, progress: 1.0, total_progress: 1.0, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["inner:onComplete", "tl:onComplete"],
|
|
fired_all: &["inner:onUpdate", "inner:onComplete", "tl:onUpdate", "tl:onComplete"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onComplete", time: 4.0, total_time: 8.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "time(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat", "tl:onRepeat", "inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat"],
|
|
fired_all: &["inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate", "tl:onRepeat", "inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 2), ("b:onUpdate", 2), ("a:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onRepeat", time: 0.0, total_time: 0.7 }, Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(8)", state: Some(State { time: 4.0, total_time: 8.0, progress: 1.0, total_progress: 1.0, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onComplete", "inner:onStart", "inner:onComplete", "tl:onRepeat"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onStart", "inner:onUpdate", "inner:onComplete", "tl:onUpdate", "tl:onRepeat"],
|
|
update_counts: &[("a:onUpdate", 1), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 4.0, total_time: 8.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "seek(0.7, false)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat", "tl:onRepeat", "inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat"],
|
|
fired_all: &["inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate", "tl:onRepeat", "inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 2), ("b:onUpdate", 2), ("a:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onRepeat", time: 0.0, total_time: 0.7 }, Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(8)", state: Some(State { time: 4.0, total_time: 8.0, progress: 1.0, total_progress: 1.0, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onComplete", "inner:onStart", "inner:onComplete", "tl:onRepeat"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onStart", "inner:onUpdate", "inner:onComplete", "tl:onUpdate", "tl:onRepeat"],
|
|
update_counts: &[("a:onUpdate", 1), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 4.0, total_time: 8.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "seek(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "main_ops_seek_events", description: "same script but every seek(t) is seek(t, false) (callbacks NOT suppressed)",
|
|
build: &["tl = gsap.timeline({paused:true, repeat:1, onStart, onUpdate, onRepeat, onComplete, onReverseComplete})", "tl.to(a,{x:1,duration:1,repeat:1,yoyo:true,ease:\"none\", onStart,onUpdate,onRepeat,onComplete,onReverseComplete}) // 0..2", "tl.to(b,{x:1,duration:1,ease:\"none\", onStart,onUpdate,onComplete,onReverseComplete}, \"+=0.5\") // 2.5..3.5", "tl.call(mark, [], 1.25) // \"call:mark\" (delayedCall: same fn is onComplete AND onReverseComplete)", "tl.addLabel(\"mid\", 2)", "inner = gsap.timeline({onStart,onUpdate,onComplete,onReverseComplete}); inner.to(c,{x:1,duration:1,ease:\"none\"}); tl.add(inner, 3) // 3..4", "=> tl.duration()=4, tl.totalDuration()=8"],
|
|
ops: &[
|
|
Op { op: "seek(0.5, false)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.125, total_progress: 0.0625, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.5, total_time: 0.5 }, Fired { cb: "a:onStart", time: 0.5, total_time: 0.5 }],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(1.5, false)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.5, total_time: 1.5 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(0, false)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["call:mark", "a:onRepeat", "a:onReverseComplete", "tl:onReverseComplete"],
|
|
fired_all: &["call:mark", "a:onUpdate", "a:onRepeat", "a:onReverseComplete", "tl:onUpdate", "tl:onReverseComplete"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "progress(1)", state: Some(State { time: 4.0, total_time: 4.0, progress: 1.0, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onComplete", "inner:onStart", "inner:onComplete"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onStart", "inner:onUpdate", "inner:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 4.0, total_time: 4.0 }, Fired { cb: "a:onStart", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "reverse()", state: Some(State { time: 4.0, total_time: 4.0, progress: 1.0, total_progress: 0.5, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "totalTime(3.75)", state: Some(State { time: 3.75, total_time: 3.75, progress: 0.9375, total_progress: 0.46875, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.75))] },
|
|
Op { op: "totalTime(3.5)", state: Some(State { time: 3.5, total_time: 3.5, progress: 0.875, total_progress: 0.4375, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.5))] },
|
|
Op { op: "totalTime(3.25)", state: Some(State { time: 3.25, total_time: 3.25, progress: 0.8125, total_progress: 0.40625, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.75)), ("c", Val::F(0.25))] },
|
|
Op { op: "totalTime(3)", state: Some(State { time: 3.0, total_time: 3.0, progress: 0.75, total_progress: 0.375, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["inner:onReverseComplete"],
|
|
fired_all: &["inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.5)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.75)", state: Some(State { time: 2.75, total_time: 2.75, progress: 0.6875, total_progress: 0.34375, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.25)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.5)", state: Some(State { time: 2.5, total_time: 2.5, progress: 0.625, total_progress: 0.3125, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["b:onReverseComplete"],
|
|
fired_all: &["b:onUpdate", "b:onReverseComplete", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.25)", state: Some(State { time: 2.25, total_time: 2.25, progress: 0.5625, total_progress: 0.28125, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2)", state: Some(State { time: 2.0, total_time: 2.0, progress: 0.5, total_progress: 0.25, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.75)", state: Some(State { time: 1.75, total_time: 1.75, progress: 0.4375, total_progress: 0.21875, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.25)", state: Some(State { time: 1.25, total_time: 1.25, progress: 0.3125, total_progress: 0.15625, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["call:mark"],
|
|
fired_all: &["call:mark", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.25, total_progress: 0.125, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["a:onRepeat"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(1.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.75)", state: Some(State { time: 0.75, total_time: 0.75, progress: 0.1875, total_progress: 0.09375, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.125, total_progress: 0.0625, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.25)", state: Some(State { time: 0.25, total_time: 0.25, progress: 0.0625, total_progress: 0.03125, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["a:onReverseComplete", "tl:onReverseComplete"],
|
|
fired_all: &["a:onUpdate", "a:onReverseComplete", "tl:onUpdate", "tl:onReverseComplete"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "restart()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "play()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.25)", state: Some(State { time: 0.25, total_time: 0.25, progress: 0.0625, total_progress: 0.03125, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.25, total_time: 0.25 }, Fired { cb: "a:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.125, total_progress: 0.0625, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.75)", state: Some(State { time: 0.75, total_time: 0.75, progress: 0.1875, total_progress: 0.09375, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.25, total_progress: 0.125, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(1.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.25)", state: Some(State { time: 1.25, total_time: 1.25, progress: 0.3125, total_progress: 0.15625, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.75, total_time: 1.25 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.75)", state: Some(State { time: 1.75, total_time: 1.75, progress: 0.4375, total_progress: 0.21875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2)", state: Some(State { time: 2.0, total_time: 2.0, progress: 0.5, total_progress: 0.25, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["a:onComplete"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.25)", state: Some(State { time: 2.25, total_time: 2.25, progress: 0.5625, total_progress: 0.28125, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.5)", state: Some(State { time: 2.5, total_time: 2.5, progress: 0.625, total_progress: 0.3125, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(2.75)", state: Some(State { time: 2.75, total_time: 2.75, progress: 0.6875, total_progress: 0.34375, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["b:onStart"],
|
|
fired_all: &["b:onStart", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.25)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(3)", state: Some(State { time: 3.0, total_time: 3.0, progress: 0.75, total_progress: 0.375, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["b:onUpdate", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.5)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(3.25)", state: Some(State { time: 3.25, total_time: 3.25, progress: 0.8125, total_progress: 0.40625, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["inner:onStart"],
|
|
fired_all: &["b:onUpdate", "inner:onStart", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.75)), ("c", Val::F(0.25))] },
|
|
Op { op: "totalTime(3.5)", state: Some(State { time: 3.5, total_time: 3.5, progress: 0.875, total_progress: 0.4375, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["b:onComplete"],
|
|
fired_all: &["b:onUpdate", "b:onComplete", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.5))] },
|
|
Op { op: "totalTime(3.75)", state: Some(State { time: 3.75, total_time: 3.75, progress: 0.9375, total_progress: 0.46875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.75))] },
|
|
Op { op: "totalTime(4)", state: Some(State { time: 4.0, total_time: 4.0, progress: 1.0, total_progress: 0.5, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["inner:onComplete"],
|
|
fired_all: &["inner:onUpdate", "inner:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "totalTime(4.25)", state: Some(State { time: 0.25, total_time: 4.25, progress: 0.0625, total_progress: 0.53125, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["tl:onRepeat", "a:onStart"],
|
|
fired_all: &["tl:onRepeat", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onRepeat", time: 4.0, total_time: 4.25 }, Fired { cb: "a:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(4.5)", state: Some(State { time: 0.5, total_time: 4.5, progress: 0.125, total_progress: 0.5625, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(4.75)", state: Some(State { time: 0.75, total_time: 4.75, progress: 0.1875, total_progress: 0.59375, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5)", state: Some(State { time: 1.0, total_time: 5.0, progress: 0.25, total_progress: 0.625, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(1.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5.25)", state: Some(State { time: 1.25, total_time: 5.25, progress: 0.3125, total_progress: 0.65625, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.75, total_time: 1.25 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.75)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5.5)", state: Some(State { time: 1.5, total_time: 5.5, progress: 0.375, total_progress: 0.6875, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5.75)", state: Some(State { time: 1.75, total_time: 5.75, progress: 0.4375, total_progress: 0.71875, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.25)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(6)", state: Some(State { time: 2.0, total_time: 6.0, progress: 0.5, total_progress: 0.75, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["a:onComplete"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(6.25)", state: Some(State { time: 2.25, total_time: 6.25, progress: 0.5625, total_progress: 0.78125, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(6.5)", state: Some(State { time: 2.5, total_time: 6.5, progress: 0.625, total_progress: 0.8125, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(6.75)", state: Some(State { time: 2.75, total_time: 6.75, progress: 0.6875, total_progress: 0.84375, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["b:onStart"],
|
|
fired_all: &["b:onStart", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.25)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(7)", state: Some(State { time: 3.0, total_time: 7.0, progress: 0.75, total_progress: 0.875, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["b:onUpdate", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.5)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(7.25)", state: Some(State { time: 3.25, total_time: 7.25, progress: 0.8125, total_progress: 0.90625, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["inner:onStart"],
|
|
fired_all: &["b:onUpdate", "inner:onStart", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onStart", time: 0.25, total_time: 0.25 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(0.75)), ("c", Val::F(0.25))] },
|
|
Op { op: "totalTime(7.5)", state: Some(State { time: 3.5, total_time: 7.5, progress: 0.875, total_progress: 0.9375, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["b:onComplete"],
|
|
fired_all: &["b:onUpdate", "b:onComplete", "inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.5))] },
|
|
Op { op: "totalTime(7.75)", state: Some(State { time: 3.75, total_time: 7.75, progress: 0.9375, total_progress: 0.96875, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["inner:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(0.75))] },
|
|
Op { op: "totalTime(8)", state: Some(State { time: 4.0, total_time: 8.0, progress: 1.0, total_progress: 1.0, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["inner:onComplete", "tl:onComplete"],
|
|
fired_all: &["inner:onUpdate", "inner:onComplete", "tl:onUpdate", "tl:onComplete"],
|
|
update_counts: &[("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onComplete", time: 4.0, total_time: 8.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "time(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat", "tl:onRepeat", "inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat"],
|
|
fired_all: &["inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate", "tl:onRepeat", "inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 2), ("b:onUpdate", 2), ("a:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onRepeat", time: 0.0, total_time: 0.7 }, Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(8)", state: Some(State { time: 4.0, total_time: 8.0, progress: 1.0, total_progress: 1.0, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onComplete", "inner:onStart", "inner:onComplete", "tl:onRepeat"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onStart", "inner:onUpdate", "inner:onComplete", "tl:onUpdate", "tl:onRepeat"],
|
|
update_counts: &[("a:onUpdate", 1), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 4.0, total_time: 8.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "seek(0.7, false)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat", "tl:onRepeat", "inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat"],
|
|
fired_all: &["inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate", "tl:onRepeat", "inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("inner:onUpdate", 2), ("b:onUpdate", 2), ("a:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onRepeat", time: 0.0, total_time: 0.7 }, Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(8)", state: Some(State { time: 4.0, total_time: 8.0, progress: 1.0, total_progress: 1.0, iteration: 2.0, reversed: false, paused: false }),
|
|
fired: &["a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onComplete", "inner:onStart", "inner:onComplete", "tl:onRepeat"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onStart", "inner:onUpdate", "inner:onComplete", "tl:onUpdate", "tl:onRepeat"],
|
|
update_counts: &[("a:onUpdate", 1), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 4.0, total_time: 8.0 }],
|
|
values: &[("a", Val::F(0.0)), ("b", Val::F(1.0)), ("c", Val::F(1.0))] },
|
|
Op { op: "seek(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "setter_time", description: "fresh main timeline; time(t) for t = 0.7, 1.5, 0.2, 5.5 (iteration 2), 0.7",
|
|
build: &["tl = gsap.timeline({paused:true, repeat:1, onStart, onUpdate, onRepeat, onComplete, onReverseComplete})", "tl.to(a,{x:1,duration:1,repeat:1,yoyo:true,ease:\"none\", onStart,onUpdate,onRepeat,onComplete,onReverseComplete}) // 0..2", "tl.to(b,{x:1,duration:1,ease:\"none\", onStart,onUpdate,onComplete,onReverseComplete}, \"+=0.5\") // 2.5..3.5", "tl.call(mark, [], 1.25) // \"call:mark\" (delayedCall: same fn is onComplete AND onReverseComplete)", "tl.addLabel(\"mid\", 2)", "inner = gsap.timeline({onStart,onUpdate,onComplete,onReverseComplete}); inner.to(c,{x:1,duration:1,ease:\"none\"}); tl.add(inner, 3) // 3..4", "=> tl.duration()=4, tl.totalDuration()=8"],
|
|
ops: &[
|
|
Op { op: "time(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.7, total_time: 0.7 }, Fired { cb: "a:onStart", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "time(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.5, total_time: 1.5 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "time(0.2)", state: Some(State { time: 0.2, total_time: 0.2, progress: 0.05, total_progress: 0.025, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["call:mark", "a:onRepeat"],
|
|
fired_all: &["call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.2, total_time: 0.2 }],
|
|
values: &[("a", Val::F(0.2)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "time(5.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.5, total_time: 1.5 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "time(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["call:mark", "a:onRepeat"],
|
|
fired_all: &["call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "setter_seek_false", description: "fresh main timeline; seek(t, false) for t = 0.7, 1.5, 0.2, 5.5 (iteration 2), 0.7",
|
|
build: &["tl = gsap.timeline({paused:true, repeat:1, onStart, onUpdate, onRepeat, onComplete, onReverseComplete})", "tl.to(a,{x:1,duration:1,repeat:1,yoyo:true,ease:\"none\", onStart,onUpdate,onRepeat,onComplete,onReverseComplete}) // 0..2", "tl.to(b,{x:1,duration:1,ease:\"none\", onStart,onUpdate,onComplete,onReverseComplete}, \"+=0.5\") // 2.5..3.5", "tl.call(mark, [], 1.25) // \"call:mark\" (delayedCall: same fn is onComplete AND onReverseComplete)", "tl.addLabel(\"mid\", 2)", "inner = gsap.timeline({onStart,onUpdate,onComplete,onReverseComplete}); inner.to(c,{x:1,duration:1,ease:\"none\"}); tl.add(inner, 3) // 3..4", "=> tl.duration()=4, tl.totalDuration()=8"],
|
|
ops: &[
|
|
Op { op: "seek(0.7, false)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.7, total_time: 0.7 }, Fired { cb: "a:onStart", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(1.5, false)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.5, total_time: 1.5 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(0.2, false)", state: Some(State { time: 0.2, total_time: 0.2, progress: 0.05, total_progress: 0.025, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["call:mark", "a:onRepeat"],
|
|
fired_all: &["call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.2, total_time: 0.2 }],
|
|
values: &[("a", Val::F(0.2)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(5.5, false)", state: Some(State { time: 1.5, total_time: 5.5, progress: 0.375, total_progress: 0.6875, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onComplete", "inner:onStart", "inner:onComplete", "tl:onRepeat", "a:onStart", "a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onStart", "inner:onUpdate", "inner:onComplete", "tl:onUpdate", "tl:onRepeat", "a:onStart", "a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 4.0, total_time: 5.5 }, Fired { cb: "a:onStart", time: 0.5, total_time: 1.5 }, Fired { cb: "a:onRepeat", time: 0.5, total_time: 1.5 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(0.7, false)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["call:mark", "a:onRepeat", "a:onReverseComplete", "tl:onRepeat", "inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat"],
|
|
fired_all: &["call:mark", "a:onUpdate", "a:onRepeat", "a:onReverseComplete", "tl:onUpdate", "tl:onRepeat", "inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("tl:onUpdate", 2), ("inner:onUpdate", 1), ("b:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onRepeat", time: 0.0, total_time: 0.7 }, Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "setter_seek_default", description: "fresh main timeline; seek(t) for t = 0.7, 1.5, 0.2, 5.5 (iteration 2), 0.7",
|
|
build: &["tl = gsap.timeline({paused:true, repeat:1, onStart, onUpdate, onRepeat, onComplete, onReverseComplete})", "tl.to(a,{x:1,duration:1,repeat:1,yoyo:true,ease:\"none\", onStart,onUpdate,onRepeat,onComplete,onReverseComplete}) // 0..2", "tl.to(b,{x:1,duration:1,ease:\"none\", onStart,onUpdate,onComplete,onReverseComplete}, \"+=0.5\") // 2.5..3.5", "tl.call(mark, [], 1.25) // \"call:mark\" (delayedCall: same fn is onComplete AND onReverseComplete)", "tl.addLabel(\"mid\", 2)", "inner = gsap.timeline({onStart,onUpdate,onComplete,onReverseComplete}); inner.to(c,{x:1,duration:1,ease:\"none\"}); tl.add(inner, 3) // 3..4", "=> tl.duration()=4, tl.totalDuration()=8"],
|
|
ops: &[
|
|
Op { op: "seek(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(0.2)", state: Some(State { time: 0.2, total_time: 0.2, progress: 0.05, total_progress: 0.025, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.2)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(5.5)", state: Some(State { time: 1.5, total_time: 5.5, progress: 0.375, total_progress: 0.6875, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "seek(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "setter_totalTime", description: "fresh main timeline; totalTime(t) for t = 0.7, 1.5, 0.2, 5.5 (iteration 2), 0.7",
|
|
build: &["tl = gsap.timeline({paused:true, repeat:1, onStart, onUpdate, onRepeat, onComplete, onReverseComplete})", "tl.to(a,{x:1,duration:1,repeat:1,yoyo:true,ease:\"none\", onStart,onUpdate,onRepeat,onComplete,onReverseComplete}) // 0..2", "tl.to(b,{x:1,duration:1,ease:\"none\", onStart,onUpdate,onComplete,onReverseComplete}, \"+=0.5\") // 2.5..3.5", "tl.call(mark, [], 1.25) // \"call:mark\" (delayedCall: same fn is onComplete AND onReverseComplete)", "tl.addLabel(\"mid\", 2)", "inner = gsap.timeline({onStart,onUpdate,onComplete,onReverseComplete}); inner.to(c,{x:1,duration:1,ease:\"none\"}); tl.add(inner, 3) // 3..4", "=> tl.duration()=4, tl.totalDuration()=8"],
|
|
ops: &[
|
|
Op { op: "totalTime(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.7, total_time: 0.7 }, Fired { cb: "a:onStart", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.5, total_time: 1.5 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.2)", state: Some(State { time: 0.2, total_time: 0.2, progress: 0.05, total_progress: 0.025, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["call:mark", "a:onRepeat"],
|
|
fired_all: &["call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.2, total_time: 0.2 }],
|
|
values: &[("a", Val::F(0.2)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5.5)", state: Some(State { time: 1.5, total_time: 5.5, progress: 0.375, total_progress: 0.6875, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onComplete", "inner:onStart", "inner:onComplete", "tl:onRepeat", "a:onStart", "a:onRepeat", "call:mark"],
|
|
fired_all: &["a:onUpdate", "a:onRepeat", "a:onComplete", "call:mark", "b:onStart", "b:onUpdate", "b:onComplete", "inner:onStart", "inner:onUpdate", "inner:onComplete", "tl:onUpdate", "tl:onRepeat", "a:onStart", "a:onUpdate", "a:onRepeat", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("b:onUpdate", 1), ("inner:onUpdate", 1), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "a:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "a:onComplete", time: 0.0, total_time: 2.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "inner:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 4.0, total_time: 5.5 }, Fired { cb: "a:onStart", time: 0.5, total_time: 1.5 }, Fired { cb: "a:onRepeat", time: 0.5, total_time: 1.5 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.7)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["call:mark", "a:onRepeat", "a:onReverseComplete", "tl:onRepeat", "inner:onReverseComplete", "b:onReverseComplete", "call:mark", "a:onRepeat"],
|
|
fired_all: &["call:mark", "a:onUpdate", "a:onRepeat", "a:onReverseComplete", "tl:onUpdate", "tl:onRepeat", "inner:onUpdate", "inner:onReverseComplete", "b:onUpdate", "b:onReverseComplete", "call:mark", "a:onUpdate", "a:onRepeat", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("tl:onUpdate", 2), ("inner:onUpdate", 1), ("b:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onRepeat", time: 0.0, total_time: 0.7 }, Fired { cb: "inner:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "b:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }, Fired { cb: "a:onRepeat", time: 0.7, total_time: 0.7 }],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "setter_totalTime_suppress", description: "fresh main timeline; totalTime(t, true) for t = 0.7, 1.5, 0.2, 5.5 (iteration 2), 0.7",
|
|
build: &["tl = gsap.timeline({paused:true, repeat:1, onStart, onUpdate, onRepeat, onComplete, onReverseComplete})", "tl.to(a,{x:1,duration:1,repeat:1,yoyo:true,ease:\"none\", onStart,onUpdate,onRepeat,onComplete,onReverseComplete}) // 0..2", "tl.to(b,{x:1,duration:1,ease:\"none\", onStart,onUpdate,onComplete,onReverseComplete}, \"+=0.5\") // 2.5..3.5", "tl.call(mark, [], 1.25) // \"call:mark\" (delayedCall: same fn is onComplete AND onReverseComplete)", "tl.addLabel(\"mid\", 2)", "inner = gsap.timeline({onStart,onUpdate,onComplete,onReverseComplete}); inner.to(c,{x:1,duration:1,ease:\"none\"}); tl.add(inner, 3) // 3..4", "=> tl.duration()=4, tl.totalDuration()=8"],
|
|
ops: &[
|
|
Op { op: "totalTime(0.7, true)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.5, true)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.375, total_progress: 0.1875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.2, true)", state: Some(State { time: 0.2, total_time: 0.2, progress: 0.05, total_progress: 0.025, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.2)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(5.5, true)", state: Some(State { time: 1.5, total_time: 5.5, progress: 0.375, total_progress: 0.6875, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.7, true)", state: Some(State { time: 0.7, total_time: 0.7, progress: 0.175, total_progress: 0.0875, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.7)), ("b", Val::F(0.0)), ("c", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "zero_duration_in_timeline", description: "zero-duration children: tl.set(z,{x:1},1) and tl.to(z,{y:1,duration:0},1.5), plus a 2 s filler tween",
|
|
build: &["tl=gsap.timeline({paused:true,onStart,onComplete,onReverseComplete})", "tl.to(d,{x:1,duration:2,ease:\"none\"},0)", "tl.set(z,{x:1,onStart,onUpdate,onComplete,onReverseComplete},1)", "tl.to(z,{y:1,duration:0,onStart,onUpdate,onComplete,onReverseComplete},1.5)"],
|
|
ops: &[
|
|
Op { op: "created", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z_x", Val::F(0.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.25, total_progress: 0.25, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart"],
|
|
fired_all: &["tl:onStart"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.5, total_time: 0.5 }],
|
|
values: &[("z_x", Val::F(0.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["set:onComplete"],
|
|
fired_all: &["set:onUpdate", "set:onComplete"],
|
|
update_counts: &[("set:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "set:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.2)", state: Some(State { time: 1.2, total_time: 1.2, progress: 0.6, total_progress: 0.6, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["set:onComplete"],
|
|
fired_all: &["set:onUpdate", "set:onComplete"],
|
|
update_counts: &[("set:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "set:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.25, total_progress: 0.25, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z_x", Val::F(0.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.75, total_progress: 0.75, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["set:onComplete", "zero:onComplete"],
|
|
fired_all: &["set:onUpdate", "set:onComplete", "zero:onUpdate", "zero:onComplete"],
|
|
update_counts: &[("set:onUpdate", 1), ("zero:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "set:onComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "zero:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(1.0))] },
|
|
Op { op: "totalTime(2)", state: Some(State { time: 2.0, total_time: 2.0, progress: 1.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onComplete"],
|
|
fired_all: &["tl:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tl:onComplete", time: 2.0, total_time: 2.0 }],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(1.0))] },
|
|
Op { op: "totalTime(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.75, total_progress: 0.75, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["zero:onComplete"],
|
|
fired_all: &["zero:onUpdate", "zero:onComplete"],
|
|
update_counts: &[("zero:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "zero:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(1.0))] },
|
|
Op { op: "totalTime(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["set:onReverseComplete", "tl:onReverseComplete"],
|
|
fired_all: &["set:onUpdate", "set:onReverseComplete", "tl:onReverseComplete"],
|
|
update_counts: &[("set:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "set:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z_x", Val::F(0.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "seek(1.7)", state: Some(State { time: 1.7, total_time: 1.7, progress: 0.85, total_progress: 0.85, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(1.0))] },
|
|
Op { op: "seek(0.2, false)", state: Some(State { time: 0.2, total_time: 0.2, progress: 0.1, total_progress: 0.1, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["zero:onReverseComplete", "set:onReverseComplete"],
|
|
fired_all: &["zero:onUpdate", "zero:onReverseComplete", "set:onUpdate", "set:onReverseComplete"],
|
|
update_counts: &[("zero:onUpdate", 1), ("set:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "zero:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "set:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z_x", Val::F(0.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["set:onComplete"],
|
|
fired_all: &["set:onUpdate", "set:onComplete"],
|
|
update_counts: &[("set:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "set:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(0.0))] },
|
|
Op { op: "totalTime(1, true) then totalTime(1.1)", state: Some(State { time: 1.1, total_time: 1.1, progress: 0.55, total_progress: 0.55, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["set:onComplete"],
|
|
fired_all: &["set:onUpdate", "set:onComplete"],
|
|
update_counts: &[("set:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "set:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z_x", Val::F(1.0)), ("z_y", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "zero_duration_standalone", description: "standalone zero-duration tweens, gsap.set, and a zero-duration tween at t=0 of an empty paused timeline",
|
|
build: &[],
|
|
ops: &[
|
|
Op { op: "gsap.to(z1,{x:5,duration:0,onStart,onUpdate,onComplete}) (root timeline, not paused)", state: None,
|
|
fired: &["z1:onComplete"],
|
|
fired_all: &["z1:onUpdate", "z1:onComplete"],
|
|
update_counts: &[("z1:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "z1:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z1_x", Val::F(5.0))] },
|
|
Op { op: "gsap.to(z2,{x:5,duration:0,paused:true,...cbs})", state: None,
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z2_x", Val::F(0.0))] },
|
|
Op { op: "tw2.totalTime(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["z2:onComplete"],
|
|
fired_all: &["z2:onUpdate", "z2:onComplete"],
|
|
update_counts: &[("z2:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "z2:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z2_x", Val::F(5.0))] },
|
|
Op { op: "tw2.progress(1)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z2_x", Val::F(5.0))] },
|
|
Op { op: "tw2.restart()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z2_x", Val::F(5.0))] },
|
|
Op { op: "gsap.set(z3,{x:7,onComplete})", state: None,
|
|
fired: &["z3:onComplete"],
|
|
fired_all: &["z3:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "z3:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z3_x", Val::F(7.0))] },
|
|
Op { op: "tl4=gsap.timeline({paused:true}); tl4.to(z4,{x:5,duration:0,...cbs},0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z4_x", Val::F(0.0))] },
|
|
Op { op: "tl4.totalTime(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["z4:onComplete"],
|
|
fired_all: &["z4:onUpdate", "z4:onComplete"],
|
|
update_counts: &[("z4:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "z4:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("z4_x", Val::F(5.0))] },
|
|
Op { op: "tl4.totalTime(0, false) [explicit]", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z4_x", Val::F(5.0))] },
|
|
Op { op: "tl4.seek(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z4_x", Val::F(5.0))] },
|
|
Op { op: "tl4.play() (no ticker: nothing advances)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("z4_x", Val::F(5.0))] },
|
|
] },
|
|
Trace { id: "design_t9_timeline_repeat_order", description: "design 12.5 T9: tl {repeat:1} with A 0..1 (a -> 100)",
|
|
build: &["tl=gsap.timeline({paused:true,repeat:1,<5 cbs>})", "tl.to(o,{a:100,duration:1,ease:\"none\",onStart,onUpdate,onComplete,onReverseComplete}) // a"],
|
|
ops: &[
|
|
Op { op: "totalTime(0.9)", state: Some(State { time: 0.9, total_time: 0.9, progress: 0.9, total_progress: 0.45, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.9, total_time: 0.9 }, Fired { cb: "a:onStart", time: 0.9, total_time: 0.9 }],
|
|
values: &[("a", Val::F(90.0))] },
|
|
Op { op: "totalTime(1.1)", state: Some(State { time: 0.1, total_time: 1.1, progress: 0.1, total_progress: 0.55, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["a:onComplete", "tl:onRepeat", "a:onStart"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl:onUpdate", "tl:onRepeat", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 1.0, total_time: 1.1 }, Fired { cb: "a:onStart", time: 0.1, total_time: 0.1 }],
|
|
values: &[("a", Val::F(10.0))] },
|
|
] },
|
|
Trace { id: "design_t9_timeline_repeat_order_yoyo", description: "design 12.5 T9: tl {repeat:1, yoyo:true} with A 0..1 (a -> 100)",
|
|
build: &["tl=gsap.timeline({paused:true,repeat:1,yoyo:true,<5 cbs>})", "tl.to(o,{a:100,duration:1,ease:\"none\",onStart,onUpdate,onComplete,onReverseComplete}) // a"],
|
|
ops: &[
|
|
Op { op: "totalTime(0.9)", state: Some(State { time: 0.9, total_time: 0.9, progress: 0.9, total_progress: 0.45, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.9, total_time: 0.9 }, Fired { cb: "a:onStart", time: 0.9, total_time: 0.9 }],
|
|
values: &[("a", Val::F(90.0))] },
|
|
Op { op: "totalTime(1.1)", state: Some(State { time: 0.9, total_time: 1.1, progress: 0.9, total_progress: 0.55, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["a:onComplete", "tl:onRepeat"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl:onUpdate", "tl:onRepeat", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 1.0, total_time: 1.1 }],
|
|
values: &[("a", Val::F(90.0))] },
|
|
Op { op: "totalTime(2)", state: Some(State { time: 0.0, total_time: 2.0, progress: 0.0, total_progress: 1.0, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["a:onReverseComplete", "tl:onComplete"],
|
|
fired_all: &["a:onUpdate", "a:onReverseComplete", "tl:onUpdate", "tl:onComplete"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onComplete", time: 0.0, total_time: 2.0 }],
|
|
values: &[("a", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "design_t20_repeating_timeline_wrap", description: "design 12.5 T20: tl repeat 2; a 0..1, call at .5, b .9..1.0; stepped by 0.3",
|
|
build: &["tl=gsap.timeline({paused:true,repeat:2,<5 cbs>})", "tl.to(o,{a:100,duration:1,ease:\"none\",cbs},0)", "tl.call(mark,[],0.5)", "tl.to(ob,{b:100,duration:0.1,ease:\"none\",cbs},0.9)"],
|
|
ops: &[
|
|
Op { op: "totalTime(0.3)", state: Some(State { time: 0.3, total_time: 0.3, progress: 0.3, total_progress: 0.09999999999999999, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.3, total_time: 0.3 }, Fired { cb: "a:onStart", time: 0.3, total_time: 0.3 }],
|
|
values: &[("a", Val::F(30.0)), ("b", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.6)", state: Some(State { time: 0.6, total_time: 0.6, progress: 0.6, total_progress: 0.19999999999999998, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["call:mark"],
|
|
fired_all: &["a:onUpdate", "call:mark", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "call:mark", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(60.0)), ("b", Val::F(0.0))] },
|
|
Op { op: "totalTime(0.9)", state: Some(State { time: 0.9, total_time: 0.9, progress: 0.9, total_progress: 0.3, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "b:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("b:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(90.0)), ("b", Val::F(0.0))] },
|
|
Op { op: "totalTime(1.2)", state: Some(State { time: 0.2, total_time: 1.2, progress: 0.2, total_progress: 0.39999999999999997, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["a:onComplete", "b:onStart", "b:onComplete", "tl:onRepeat", "a:onStart"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "b:onStart", "b:onUpdate", "b:onComplete", "tl:onUpdate", "tl:onRepeat", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("b:onUpdate", 1), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "b:onStart", time: 0.1, total_time: 0.1 }, Fired { cb: "b:onComplete", time: 0.1, total_time: 0.1 }, Fired { cb: "tl:onRepeat", time: 1.0, total_time: 1.2 }, Fired { cb: "a:onStart", time: 0.2, total_time: 0.2 }],
|
|
values: &[("a", Val::F(20.0)), ("b", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "design_forward_order", description: "design 12.5 forward_order: a timeline and its only child, both with onStart/onUpdate/onComplete: first frame and last frame",
|
|
build: &["tl=gsap.timeline({paused:true,cbs})", "tl.to(o,{a:1,duration:1,ease:\"none\",cbs})"],
|
|
ops: &[
|
|
Op { op: "totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.5, total_time: 0.5 }, Fired { cb: "a:onStart", time: 0.5, total_time: 0.5 }],
|
|
values: &[("a", Val::F(0.5))] },
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 1.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["a:onComplete", "tl:onComplete"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl:onUpdate", "tl:onComplete"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("a", Val::F(1.0))] },
|
|
Op { op: "totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &["a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("a", Val::F(0.5))] },
|
|
Op { op: "totalTime(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["a:onReverseComplete", "tl:onReverseComplete"],
|
|
fired_all: &["a:onUpdate", "a:onReverseComplete", "tl:onUpdate", "tl:onReverseComplete"],
|
|
update_counts: &[("a:onUpdate", 1), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "a:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(0.0))] },
|
|
] },
|
|
Trace { id: "design_dt_stepping_repeat_counts", description: "design 12.3 repeat_count_is_exact_at_any_dt / T4 played / infinite repeat: a tween x 0->100 (ease none, 1 s) inside a paused root-emulation timeline R stepped with R.totalTime(R.totalTime() + dt) (R rounds to 1e-7 like the engine root) until 0.5 s past the end (or 1000 frames). fired = callbacks of the whole run",
|
|
build: &["R=gsap.timeline({paused:true}); R.to(dummy,{d:1,duration:1000},0) // filler so R never clamps", "tw=gsap.to(o,{x:100,duration:1,ease:\"none\",...vars,onStart,onRepeat,onComplete,onReverseComplete}); R.add(tw,0)", "loop: R.totalTime(R.totalTime() + dt_k)"],
|
|
ops: &[
|
|
Op { op: "step R: repeat 3, repeatDelay .25, dt 1/60", state: Some(State { time: 5.2500105, total_time: 5.2500105, progress: 0.0052500105, total_progress: 0.0052500105, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
fired_all: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tw:onStart", time: 0.0166667, total_time: 0.0166667 }, Fired { cb: "tw:onRepeat", time: 0.0000025, total_time: 1.2500025 }, Fired { cb: "tw:onRepeat", time: 0.000005, total_time: 2.500005 }, Fired { cb: "tw:onRepeat", time: 0.0000075, total_time: 3.7500075 }, Fired { cb: "tw:onComplete", time: 1.0, total_time: 4.75 }],
|
|
values: &[("x", Val::F(100.0)), ("frames", Val::F(315.0)), ("root_total_time", Val::F(5.2500105))] },
|
|
Op { op: "step R: repeat 3, repeatDelay .25, dt 1/7", state: Some(State { time: 5.2857127, total_time: 5.2857127, progress: 0.0052857127, total_progress: 0.0052857127, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
fired_all: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tw:onStart", time: 0.1428571, total_time: 0.1428571 }, Fired { cb: "tw:onRepeat", time: 0.0357139, total_time: 1.2857139 }, Fired { cb: "tw:onRepeat", time: 0.0714278, total_time: 2.5714278 }, Fired { cb: "tw:onRepeat", time: 0.1071417, total_time: 3.8571417 }, Fired { cb: "tw:onComplete", time: 1.0, total_time: 4.75 }],
|
|
values: &[("x", Val::F(100.0)), ("frames", Val::F(37.0)), ("root_total_time", Val::F(5.2857127))] },
|
|
Op { op: "step R: repeat 3, repeatDelay .25, dt 0.37", state: Some(State { time: 5.55, total_time: 5.55, progress: 0.00555, total_progress: 0.00555, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
fired_all: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tw:onStart", time: 0.37, total_time: 0.37 }, Fired { cb: "tw:onRepeat", time: 0.23, total_time: 1.48 }, Fired { cb: "tw:onRepeat", time: 0.09, total_time: 2.59 }, Fired { cb: "tw:onRepeat", time: 0.32, total_time: 4.07 }, Fired { cb: "tw:onComplete", time: 1.0, total_time: 4.75 }],
|
|
values: &[("x", Val::F(100.0)), ("frames", Val::F(15.0)), ("root_total_time", Val::F(5.55))] },
|
|
Op { op: "step R: repeat 3, repeatDelay .25, dt_k = ((k*7919)%97+1)/500", state: Some(State { time: 5.28, total_time: 5.28, progress: 0.00528, total_progress: 0.00528, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
fired_all: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tw:onStart", time: 0.002, total_time: 0.002 }, Fired { cb: "tw:onRepeat", time: 0.16, total_time: 1.41 }, Fired { cb: "tw:onRepeat", time: 0.022, total_time: 2.522 }, Fired { cb: "tw:onRepeat", time: 0.124, total_time: 3.874 }, Fired { cb: "tw:onComplete", time: 1.0, total_time: 4.75 }],
|
|
values: &[("x", Val::F(100.0)), ("frames", Val::F(54.0)), ("root_total_time", Val::F(5.28))] },
|
|
Op { op: "step R: repeat 3, repeatDelay .25, yoyo, dt 1/60", state: Some(State { time: 5.2500105, total_time: 5.2500105, progress: 0.0052500105, total_progress: 0.0052500105, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
fired_all: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tw:onStart", time: 0.0166667, total_time: 0.0166667 }, Fired { cb: "tw:onRepeat", time: 0.9999975, total_time: 1.2500025 }, Fired { cb: "tw:onRepeat", time: 0.000005, total_time: 2.500005 }, Fired { cb: "tw:onRepeat", time: 0.9999925, total_time: 3.7500075 }, Fired { cb: "tw:onComplete", time: 0.0, total_time: 4.75 }],
|
|
values: &[("x", Val::F(0.0)), ("frames", Val::F(315.0)), ("root_total_time", Val::F(5.2500105))] },
|
|
Op { op: "step R: repeat 3, repeatDelay .25, yoyo, dt_k = ((k*7919)%97+1)/500", state: Some(State { time: 5.28, total_time: 5.28, progress: 0.00528, total_progress: 0.00528, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
fired_all: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tw:onStart", time: 0.002, total_time: 0.002 }, Fired { cb: "tw:onRepeat", time: 0.84, total_time: 1.41 }, Fired { cb: "tw:onRepeat", time: 0.022, total_time: 2.522 }, Fired { cb: "tw:onRepeat", time: 0.876, total_time: 3.874 }, Fired { cb: "tw:onComplete", time: 0.0, total_time: 4.75 }],
|
|
values: &[("x", Val::F(0.0)), ("frames", Val::F(54.0)), ("root_total_time", Val::F(5.28))] },
|
|
Op { op: "step R: T4: repeat 2, repeatDelay .5, yoyo, dt 1/60", state: Some(State { time: 4.500009, total_time: 4.500009, progress: 0.004500009, total_progress: 0.004500009, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
fired_all: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tw:onStart", time: 0.0166667, total_time: 0.0166667 }, Fired { cb: "tw:onRepeat", time: 0.999997, total_time: 1.500003 }, Fired { cb: "tw:onRepeat", time: 0.000006, total_time: 3.000006 }, Fired { cb: "tw:onComplete", time: 1.0, total_time: 4.0 }],
|
|
values: &[("x", Val::F(100.0)), ("frames", Val::F(270.0)), ("root_total_time", Val::F(4.500009))] },
|
|
Op { op: "step R: repeat -1, dt 1/60, 1000 frames", state: Some(State { time: 16.6667, total_time: 16.6667, progress: 1.6666699999999998e-9, total_progress: 1.6666699999999998e-9, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat"],
|
|
fired_all: &["tw:onStart", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat", "tw:onRepeat"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tw:onStart", time: 0.0166667, total_time: 0.0166667 }, Fired { cb: "tw:onRepeat", time: 0.000002, total_time: 1.000002 }, Fired { cb: "tw:onRepeat", time: 0.000004, total_time: 2.000004 }, Fired { cb: "tw:onRepeat", time: 0.000006, total_time: 3.000006 }, Fired { cb: "tw:onRepeat", time: 0.000008, total_time: 4.000008 }, Fired { cb: "tw:onRepeat", time: 0.00001, total_time: 5.00001 }, Fired { cb: "tw:onRepeat", time: 0.000012, total_time: 6.000012 }, Fired { cb: "tw:onRepeat", time: 0.000014, total_time: 7.000014 }, Fired { cb: "tw:onRepeat", time: 0.000016, total_time: 8.000016 }, Fired { cb: "tw:onRepeat", time: 0.000018, total_time: 9.000018 }, Fired { cb: "tw:onRepeat", time: 0.00002, total_time: 10.00002 }, Fired { cb: "tw:onRepeat", time: 0.000022, total_time: 11.000022 }, Fired { cb: "tw:onRepeat", time: 0.000024, total_time: 12.000024 }, Fired { cb: "tw:onRepeat", time: 0.000026, total_time: 13.000026 }, Fired { cb: "tw:onRepeat", time: 0.000028, total_time: 14.000028 }, Fired { cb: "tw:onRepeat", time: 0.00003, total_time: 15.00003 }, Fired { cb: "tw:onRepeat", time: 0.000032, total_time: 16.000032 }],
|
|
values: &[("x", Val::F(66.67)), ("frames", Val::F(1000.0)), ("root_total_time", Val::F(16.6667))] },
|
|
] },
|
|
Trace { id: "design_big_dt_crosses_child", description: "design 12.3: one render from 0 to 2.0 over a child 0.5..1.0: Start, Update, Complete, value exact",
|
|
build: &["R=gsap.timeline({paused:true})", "R.to(o,{x:100,duration:0.5,ease:\"none\",cbs},0.5)"],
|
|
ops: &[
|
|
Op { op: "totalTime(2)", state: Some(State { time: 1.0, total_time: 1.0, progress: 1.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["c:onStart", "c:onComplete"],
|
|
fired_all: &["c:onStart", "c:onUpdate", "c:onComplete"],
|
|
update_counts: &[("c:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "c:onStart", time: 0.5, total_time: 0.5 }, Fired { cb: "c:onComplete", time: 0.5, total_time: 0.5 }],
|
|
values: &[("x", Val::F(100.0))] },
|
|
] },
|
|
Trace { id: "design_t11_add_pause", description: "design 12.5 T11: un-paused timeline (root frozen), tween 0..2 s a 0->100, addPause(1, cb); driven with render() (what the parent walk does; totalTime()/seek() would skip the pause)",
|
|
build: &["tl=gsap.timeline({onStart,onUpdate,onComplete})", "tl.to(o,{a:100,duration:2,ease:\"none\"})", "tl.addPause(1, cb)"],
|
|
ops: &[
|
|
Op { op: "render(0.9)", state: Some(State { time: 0.9, total_time: 0.9, progress: 0.45, total_progress: 0.45, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["tl:onStart"],
|
|
fired_all: &["tl:onStart", "tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.9, total_time: 0.9 }],
|
|
values: &[("a", Val::F(45.0))] },
|
|
Op { op: "render(1.1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["pause:cb"],
|
|
fired_all: &["pause:cb", "tl:onUpdate"],
|
|
update_counts: &[("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "pause:cb", time: 0.0, total_time: 0.0 }],
|
|
values: &[("a", Val::F(50.0))] },
|
|
] },
|
|
Trace { id: "design_post_add_behind_playhead", description: "design 12.4: a timeline at time 1 gets tl.to(o,{x:100,duration:0.5},0.2): rendered at once (suppressed): x = 100, nothing fires",
|
|
build: &["tl=gsap.timeline({paused:true}); tl.to(f,{x:1,duration:2}); tl.totalTime(1)"],
|
|
ops: &[
|
|
Op { op: "tl.to(o,{x:100,duration:0.5,cbs},0.2)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(100.0))] },
|
|
] },
|
|
Trace { id: "design_completed_timeline_grows", description: "design 12.4: an un-paused root-level timeline completed (removed from the root) gets a child appended: _postAddChecks re-links it (has_parent) and it is active again",
|
|
build: &["tl=gsap.timeline({onStart,onComplete})", "tl.to(o,{x:1,duration:1,ease:\"none\"})"],
|
|
ops: &[
|
|
Op { op: "totalTime(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 1.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["tl:onStart", "tl:onComplete"],
|
|
fired_all: &["tl:onStart", "tl:onComplete"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[
|
|
("has_parent", Val::F(0.0)), ("is_active", Val::F(0.0)), ("duration", Val::F(1.0)), ("x", Val::F(1.0)), ("x2", Val::F(0.0)),
|
|
] },
|
|
Op { op: "tl.to(o2,{x:1,duration:1})", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[
|
|
("has_parent", Val::F(1.0)), ("is_active", Val::F(1.0)), ("duration", Val::F(2.0)), ("x", Val::F(1.0)), ("x2", Val::F(0.0)),
|
|
] },
|
|
] },
|
|
Trace { id: "design_start_rules", description: "onStart of a repeating TWEEN fires on a jump that starts from time 0 even when it lands in a later iteration or at a yoyo end (GSAP tests !prevTime && tTime && !prevIteration), not only when the new iteration is 0",
|
|
build: &["see op labels; tweens ease none x 0->100 d1"],
|
|
ops: &[
|
|
Op { op: "repeat 2 tween: totalTime(1.5) from 0", state: Some(State { time: 0.5, total_time: 1.5, progress: 0.5, total_progress: 0.5, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["t:onStart", "t:onRepeat"],
|
|
fired_all: &["t:onStart", "t:onUpdate", "t:onRepeat"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onStart", time: 0.5, total_time: 1.5 }, Fired { cb: "t:onRepeat", time: 0.5, total_time: 1.5 }],
|
|
values: &[("x", Val::F(50.0))] },
|
|
Op { op: "repeat 1 yoyo tween: totalTime(2) from 0", state: Some(State { time: 0.0, total_time: 2.0, progress: 0.0, total_progress: 1.0, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["t:onStart", "t:onRepeat", "t:onComplete"],
|
|
fired_all: &["t:onStart", "t:onUpdate", "t:onRepeat", "t:onComplete"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onStart", time: 0.0, total_time: 2.0 }, Fired { cb: "t:onRepeat", time: 0.0, total_time: 2.0 }, Fired { cb: "t:onComplete", time: 0.0, total_time: 2.0 }],
|
|
values: &[("x", Val::F(0.0))] },
|
|
Op { op: "repeat 2 tween at 1.5: totalTime(0.5) (backward across a boundary)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.16666666666666666, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["t:onRepeat"],
|
|
fired_all: &["t:onUpdate", "t:onRepeat"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onRepeat", time: 0.5, total_time: 0.5 }],
|
|
values: &[("x", Val::F(50.0))] },
|
|
Op { op: "repeat 2 timeline: totalTime(1.5) from 0", state: Some(State { time: 0.5, total_time: 1.5, progress: 0.5, total_progress: 0.5, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "a:onStart", "a:onComplete", "tl:onRepeat", "a:onStart"],
|
|
fired_all: &["tl:onStart", "a:onStart", "a:onUpdate", "a:onComplete", "tl:onUpdate", "tl:onRepeat", "a:onStart", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "a:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "a:onComplete", time: 1.0, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 1.0, total_time: 1.5 }, Fired { cb: "a:onStart", time: 0.5, total_time: 0.5 }],
|
|
values: &[("x", Val::F(0.5))] },
|
|
Op { op: "then totalTime(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.16666666666666666, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["a:onReverseComplete", "tl:onRepeat"],
|
|
fired_all: &["a:onUpdate", "a:onReverseComplete", "tl:onUpdate", "tl:onRepeat", "a:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "a:onReverseComplete", time: 0.0, total_time: 0.0 }, Fired { cb: "tl:onRepeat", time: 0.0, total_time: 0.5 }],
|
|
values: &[("x", Val::F(0.5))] },
|
|
] },
|
|
Trace { id: "design_immediate_render_callbacks", description: "which callbacks an immediate render at creation fires: a 0 s to() and gsap.set fire onUpdate + onComplete; fromTo fires onUpdate (through its startAt); from() fires nothing",
|
|
build: &[],
|
|
ops: &[
|
|
Op { op: "gsap.to(o1,{x:5,duration:0,cbs})", state: None,
|
|
fired: &["to0:onComplete"],
|
|
fired_all: &["to0:onUpdate", "to0:onComplete"],
|
|
update_counts: &[("to0:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "to0:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("x", Val::F(5.0))] },
|
|
Op { op: "gsap.set(o2,{x:7,cbs})", state: None,
|
|
fired: &["set:onComplete"],
|
|
fired_all: &["set:onUpdate", "set:onComplete"],
|
|
update_counts: &[("set:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "set:onComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("x", Val::F(7.0))] },
|
|
Op { op: "gsap.fromTo(o3,{x:10},{x:20,duration:1,paused:true,cbs})", state: None,
|
|
fired: &[],
|
|
fired_all: &["fromTo:onUpdate"],
|
|
update_counts: &[("fromTo:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(10.0))] },
|
|
Op { op: "gsap.from(o4,{x:100,duration:1,paused:true,cbs})", state: None,
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(100.0))] },
|
|
] },
|
|
Trace { id: "design_nested_wraps_one_frame", description: "design 12.5 nested_wraps_in_one_frame: tl {repeat:3} holding tl2 {repeat:3} (a 0.25 s tween, tl2 tdur 1): one render of 0.6, then 1.2, then 3.9",
|
|
build: &["tl=gsap.timeline({paused:true,repeat:3,cbs})", "tl2=gsap.timeline({repeat:3,cbs}); tl2.to(o,{x:1,duration:0.25,ease:\"none\",cbs}); tl.add(tl2,0)"],
|
|
ops: &[
|
|
Op { op: "totalTime(0.6)", state: Some(State { time: 0.6, total_time: 0.6, progress: 0.6, total_progress: 0.15, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["tl:onStart", "tl2:onStart", "a:onStart", "a:onComplete", "tl2:onRepeat", "a:onStart"],
|
|
fired_all: &["tl:onStart", "tl2:onStart", "a:onStart", "a:onUpdate", "a:onComplete", "tl2:onUpdate", "tl2:onRepeat", "a:onStart", "a:onUpdate", "tl2:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("tl2:onUpdate", 2), ("tl:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "tl:onStart", time: 0.6, total_time: 0.6 }, Fired { cb: "tl2:onStart", time: 0.25, total_time: 0.25 }, Fired { cb: "a:onStart", time: 0.25, total_time: 0.25 }, Fired { cb: "a:onComplete", time: 0.25, total_time: 0.25 }, Fired { cb: "tl2:onRepeat", time: 0.25, total_time: 0.6 }, Fired { cb: "a:onStart", time: 0.1, total_time: 0.1 }],
|
|
values: &[("x", Val::F(0.4)), ("tl2_total_time", Val::F(0.6)), ("tl2_iteration", Val::F(3.0))] },
|
|
Op { op: "totalTime(1.2)", state: Some(State { time: 0.2, total_time: 1.2, progress: 0.2, total_progress: 0.3, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &["a:onComplete", "tl2:onRepeat", "tl:onRepeat", "tl2:onStart", "a:onStart"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl2:onUpdate", "tl2:onRepeat", "tl:onUpdate", "tl:onRepeat", "tl2:onStart", "a:onStart", "a:onUpdate", "tl2:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 2), ("tl2:onUpdate", 2), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 0.25, total_time: 0.25 }, Fired { cb: "tl2:onRepeat", time: 0.25, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 1.0, total_time: 1.2 }, Fired { cb: "tl2:onStart", time: 0.2, total_time: 0.2 }, Fired { cb: "a:onStart", time: 0.2, total_time: 0.2 }],
|
|
values: &[("x", Val::F(0.8)), ("tl2_total_time", Val::F(0.2)), ("tl2_iteration", Val::F(1.0))] },
|
|
Op { op: "totalTime(3.9)", state: Some(State { time: 0.9, total_time: 3.9, progress: 0.9, total_progress: 0.975, iteration: 4.0, reversed: false, paused: true }),
|
|
fired: &["a:onComplete", "tl2:onRepeat", "tl:onRepeat", "tl2:onStart", "a:onStart", "a:onComplete", "tl2:onRepeat", "a:onStart"],
|
|
fired_all: &["a:onUpdate", "a:onComplete", "tl2:onUpdate", "tl2:onRepeat", "tl:onUpdate", "tl:onRepeat", "tl2:onStart", "a:onStart", "a:onUpdate", "a:onComplete", "tl2:onUpdate", "tl2:onRepeat", "a:onStart", "a:onUpdate", "tl2:onUpdate", "tl:onUpdate"],
|
|
update_counts: &[("a:onUpdate", 3), ("tl2:onUpdate", 3), ("tl:onUpdate", 2)],
|
|
fired_detail: &[Fired { cb: "a:onComplete", time: 0.25, total_time: 0.25 }, Fired { cb: "tl2:onRepeat", time: 0.25, total_time: 1.0 }, Fired { cb: "tl:onRepeat", time: 1.0, total_time: 3.9 }, Fired { cb: "tl2:onStart", time: 0.25, total_time: 0.25 }, Fired { cb: "a:onStart", time: 0.25, total_time: 0.25 }, Fired { cb: "a:onComplete", time: 0.25, total_time: 0.25 }, Fired { cb: "tl2:onRepeat", time: 0.25, total_time: 0.9 }, Fired { cb: "a:onStart", time: 0.15, total_time: 0.15 }],
|
|
values: &[("x", Val::F(0.6)), ("tl2_total_time", Val::F(0.9)), ("tl2_iteration", Val::F(4.0))] },
|
|
] },
|
|
Trace { id: "design_kill_interrupt", description: "kill() fires onInterrupt only when progress() < 1",
|
|
build: &["t=gsap.to(o,{x:1,duration:1,paused:true,onInterrupt,onComplete})"],
|
|
ops: &[
|
|
Op { op: "t1 at 0.5: kill()", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["t1:onInterrupt"],
|
|
fired_all: &["t1:onInterrupt"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "t1:onInterrupt", time: 0.5, total_time: 0.5 }],
|
|
values: &[] },
|
|
Op { op: "t2 at 1 (completed): kill()", state: Some(State { time: 1.0, total_time: 1.0, progress: 1.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[] },
|
|
Op { op: "t3 never rendered: kill()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["t3:onInterrupt"],
|
|
fired_all: &["t3:onInterrupt"],
|
|
update_counts: &[],
|
|
fired_detail: &[Fired { cb: "t3:onInterrupt", time: 0.0, total_time: 0.0 }],
|
|
values: &[] },
|
|
] },
|
|
Trace { id: "design_progress_time_iteration_setters", description: "progress(p) is yoyo-aware; time(v) on a repeating animation lands in the FIRST iteration in 3.15 (bug, the design deviates: current iteration); iteration(k) = totalTime(time + (k-1)*cycle)",
|
|
build: &["see op labels"],
|
|
ops: &[
|
|
Op { op: "yoyo repeat 1 at 1.5: progress(0.25)", state: Some(State { time: 0.25, total_time: 1.75, progress: 0.25, total_progress: 0.875, iteration: 2.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &["t:onUpdate"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(25.0))] },
|
|
Op { op: "repeat 2 at 1.5: time(0.25)", state: Some(State { time: 0.25, total_time: 0.25, progress: 0.25, total_progress: 0.08333333333333333, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["t:onRepeat"],
|
|
fired_all: &["t:onUpdate", "t:onRepeat"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onRepeat", time: 0.25, total_time: 0.25 }],
|
|
values: &[("x", Val::F(25.0))] },
|
|
Op { op: "then iteration(3)", state: Some(State { time: 0.25, total_time: 2.25, progress: 0.25, total_progress: 0.75, iteration: 3.0, reversed: false, paused: true }),
|
|
fired: &["t:onRepeat"],
|
|
fired_all: &["t:onUpdate", "t:onRepeat"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onRepeat", time: 0.25, total_time: 2.25 }],
|
|
values: &[("x", Val::F(25.0))] },
|
|
Op { op: "then time(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 1.0, total_progress: 0.3333333333333333, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["t:onRepeat"],
|
|
fired_all: &["t:onUpdate", "t:onRepeat"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onRepeat", time: 1.0, total_time: 1.0 }],
|
|
values: &[("x", Val::F(100.0))] },
|
|
Op { op: "repeat 2 rd .5 at 2 (iteration 2): time(0.25)", state: Some(State { time: 0.25, total_time: 0.25, progress: 0.25, total_progress: 0.0625, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &["t:onRepeat"],
|
|
fired_all: &["t:onUpdate", "t:onRepeat"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onRepeat", time: 0.25, total_time: 0.25 }],
|
|
values: &[("x", Val::F(25.0))] },
|
|
] },
|
|
Trace { id: "design_labels_directions", description: "currentLabel = previousLabel(time + 1e-8); next/previous are strict; ties (b and c both at 1): the first added wins",
|
|
build: &["tl.to(o,{duration:3},0)", "tl.addLabel(\"a\",0); tl.addLabel(\"b\",1); tl.addLabel(\"c\",1); tl.addLabel(\"d\",2)"],
|
|
ops: &[
|
|
Op { op: "seek(0)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("current", Val::S("a")), ("next", Val::S("b")), ("previous", Val::Null)] },
|
|
Op { op: "seek(0.5)", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.16666666666666666, total_progress: 0.16666666666666666, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("current", Val::S("a")), ("next", Val::S("b")), ("previous", Val::S("a"))] },
|
|
Op { op: "seek(1)", state: Some(State { time: 1.0, total_time: 1.0, progress: 0.3333333333333333, total_progress: 0.3333333333333333, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("current", Val::S("b")), ("next", Val::S("d")), ("previous", Val::S("a"))] },
|
|
Op { op: "seek(1.5)", state: Some(State { time: 1.5, total_time: 1.5, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("current", Val::S("b")), ("next", Val::S("d")), ("previous", Val::S("b"))] },
|
|
Op { op: "seek(2)", state: Some(State { time: 2.0, total_time: 2.0, progress: 0.6666666666666666, total_progress: 0.6666666666666666, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("current", Val::S("d")), ("next", Val::Null), ("previous", Val::S("b"))] },
|
|
Op { op: "seek(3)", state: Some(State { time: 3.0, total_time: 3.0, progress: 1.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("current", Val::S("d")), ("next", Val::Null), ("previous", Val::S("d"))] },
|
|
] },
|
|
Trace { id: "design_restart_reverse_controls", description: "controls on a child of a smooth root emulation R (like the global timeline): restart() suppresses, re-aligns and the next frame fires onStart again; reverse() is a toggle that un-pauses; resume keeps direction; play un-reverses",
|
|
build: &["R=gsap.timeline({paused:true,smoothChildTiming:true})", "t=R.to(o,{x:100,duration:1,delay:0.5,ease:\"none\",cbs}) // t", "u=R.to(o,{x:100,duration:1,ease:\"none\",cbs}) // u (second block, fresh R)"],
|
|
ops: &[
|
|
Op { op: "R +2.0", state: Some(State { time: 1.0, total_time: 1.0, progress: 1.0, total_progress: 1.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["t:onStart", "t:onComplete"],
|
|
fired_all: &["t:onStart", "t:onUpdate", "t:onComplete"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onStart", time: 1.0, total_time: 1.0 }, Fired { cb: "t:onComplete", time: 1.0, total_time: 1.0 }],
|
|
values: &[("x", Val::F(100.0)), ("t_total_time", Val::F(1.0)), ("t_start", Val::F(0.5))] },
|
|
Op { op: "t.restart()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(0.0)), ("t_total_time", Val::F(0.0)), ("t_start", Val::F(1.5))] },
|
|
Op { op: "R +0.3", state: Some(State { time: 0.30000000000000004, total_time: 0.30000000000000004, progress: 0.30000000000000004, total_progress: 0.30000000000000004, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["t:onStart"],
|
|
fired_all: &["t:onStart", "t:onUpdate"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onStart", time: 0.30000000000000004, total_time: 0.30000000000000004 }],
|
|
values: &[("x", Val::F(30.0)), ("t_total_time", Val::F(0.30000000000000004)), ("t_start", Val::F(1.5))] },
|
|
Op { op: "t.restart(true)", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(0.0)), ("t_total_time", Val::F(0.0)), ("t_start", Val::F(2.3))] },
|
|
Op { op: "R +0.3", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(0.0)), ("t_total_time", Val::F(0.0)), ("t_start", Val::F(2.3))] },
|
|
Op { op: "R +0.3", state: Some(State { time: 0.10000000000000009, total_time: 0.10000000000000009, progress: 0.10000000000000009, total_progress: 0.10000000000000009, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["t:onStart"],
|
|
fired_all: &["t:onStart", "t:onUpdate"],
|
|
update_counts: &[("t:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "t:onStart", time: 0.10000000000000009, total_time: 0.10000000000000009 }],
|
|
values: &[("x", Val::F(10.0)), ("t_total_time", Val::F(0.10000000000000009)), ("t_start", Val::F(2.3))] },
|
|
Op { op: "R +0.6", state: Some(State { time: 0.6, total_time: 0.6, progress: 0.6, total_progress: 0.6, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["u:onStart"],
|
|
fired_all: &["u:onStart", "u:onUpdate"],
|
|
update_counts: &[("u:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "u:onStart", time: 0.6, total_time: 0.6 }],
|
|
values: &[("x", Val::F(60.0)), ("u_total_time", Val::F(0.6)), ("reversed", Val::F(0.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "u.reverse()", state: Some(State { time: 0.6, total_time: 0.6, progress: 0.6, total_progress: 0.6, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(60.0)), ("u_total_time", Val::F(0.6)), ("reversed", Val::F(1.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "R +0.1", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["u:onUpdate"],
|
|
update_counts: &[("u:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(50.0)), ("u_total_time", Val::F(0.5)), ("reversed", Val::F(1.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "u.pause()", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: true, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(50.0)), ("u_total_time", Val::F(0.5)), ("reversed", Val::F(1.0)), ("paused", Val::F(1.0))] },
|
|
Op { op: "R +0.1", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: true, paused: true }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(50.0)), ("u_total_time", Val::F(0.5)), ("reversed", Val::F(1.0)), ("paused", Val::F(1.0))] },
|
|
Op { op: "u.resume()", state: Some(State { time: 0.5, total_time: 0.5, progress: 0.5, total_progress: 0.5, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(50.0)), ("u_total_time", Val::F(0.5)), ("reversed", Val::F(1.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "R +0.1", state: Some(State { time: 0.3999999999999999, total_time: 0.3999999999999999, progress: 0.3999999999999999, total_progress: 0.3999999999999999, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &["u:onUpdate"],
|
|
update_counts: &[("u:onUpdate", 1)],
|
|
fired_detail: &[],
|
|
values: &[
|
|
("x", Val::F(40.0)), ("u_total_time", Val::F(0.3999999999999999)), ("reversed", Val::F(1.0)), ("paused", Val::F(0.0)),
|
|
] },
|
|
Op { op: "R +0.6", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &["u:onReverseComplete"],
|
|
fired_all: &["u:onUpdate", "u:onReverseComplete"],
|
|
update_counts: &[("u:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "u:onReverseComplete", time: 0.0, total_time: 0.0 }],
|
|
values: &[("x", Val::F(0.0)), ("u_total_time", Val::F(0.0)), ("reversed", Val::F(1.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "u.reverse()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(0.0)), ("u_total_time", Val::F(0.0)), ("reversed", Val::F(1.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "R +0.1", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(0.0)), ("u_total_time", Val::F(0.0)), ("reversed", Val::F(1.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "u.reverse()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: true, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(0.0)), ("u_total_time", Val::F(0.0)), ("reversed", Val::F(1.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "u.play()", state: Some(State { time: 0.0, total_time: 0.0, progress: 0.0, total_progress: 0.0, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &[],
|
|
fired_all: &[],
|
|
update_counts: &[],
|
|
fired_detail: &[],
|
|
values: &[("x", Val::F(0.0)), ("u_total_time", Val::F(0.0)), ("reversed", Val::F(0.0)), ("paused", Val::F(0.0))] },
|
|
Op { op: "R +0.1", state: Some(State { time: 0.09999999999999987, total_time: 0.09999999999999987, progress: 0.09999999999999987, total_progress: 0.09999999999999987, iteration: 1.0, reversed: false, paused: false }),
|
|
fired: &["u:onStart"],
|
|
fired_all: &["u:onStart", "u:onUpdate"],
|
|
update_counts: &[("u:onUpdate", 1)],
|
|
fired_detail: &[Fired { cb: "u:onStart", time: 0.09999999999999987, total_time: 0.09999999999999987 }],
|
|
values: &[
|
|
("x", Val::F(10.0)), ("u_total_time", Val::F(0.09999999999999987)), ("reversed", Val::F(0.0)), ("paused", Val::F(0.0)),
|
|
] },
|
|
] },
|
|
];
|
|
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct ImmediateRenderCase {
|
|
pub id: &'static str,
|
|
pub gsap_calls: &'static [&'static str],
|
|
pub values: Pairs,
|
|
}
|
|
pub const IMMEDIATE_RENDER: &[ImmediateRenderCase] = &[
|
|
ImmediateRenderCase {
|
|
id: "from_unpaused",
|
|
gsap_calls: &["o={x:0}", "gsap.from(o,{x:100,duration:1})"],
|
|
values: &[("after_create.x", Val::F(100.0))],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "from_paused",
|
|
gsap_calls: &["o={x:0}", "gsap.from(o,{x:100,duration:1,paused:true})"],
|
|
values: &[("after_create.x", Val::F(100.0))],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "from_paused_immediateRender_false",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"t=gsap.from(o,{x:100,duration:1,paused:true,immediateRender:false})",
|
|
"t.totalTime(0)",
|
|
"t.totalTime(0.5)",
|
|
],
|
|
values: &[
|
|
("after_create.x", Val::F(0.0)),
|
|
("after_totalTime_0.x", Val::F(100.0)),
|
|
("after_totalTime_0_5.x", Val::F(25.0)),
|
|
],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "fromTo_paused",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"gsap.fromTo(o,{x:10},{x:20,duration:1,paused:true})",
|
|
],
|
|
values: &[("after_create.x", Val::F(10.0))],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "fromTo_paused_immediateRender_false",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"gsap.fromTo(o,{x:10},{x:20,duration:1,paused:true,immediateRender:false})",
|
|
],
|
|
values: &[("after_create.x", Val::F(0.0))],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "to_paused_immediateRender_true",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"t=gsap.to(o,{x:100,duration:1,ease:\"none\",paused:true,immediateRender:true})",
|
|
"o.x=50 (external change)",
|
|
"t.totalTime(0.5)",
|
|
],
|
|
values: &[
|
|
("after_create.x", Val::F(0.0)),
|
|
("after_external_change_then_totalTime_0_5.x", Val::F(50.0)),
|
|
(
|
|
"after_external_change_then_totalTime_0_5.note",
|
|
Val::S("start value recorded at creation (0): 0 + 0.5*100 = 50"),
|
|
),
|
|
],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "to_paused_default_start_capture",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"t=gsap.to(o,{x:100,duration:1,ease:\"none\",paused:true})",
|
|
"o.x=50 (external change)",
|
|
"t.totalTime(0.5)",
|
|
],
|
|
values: &[
|
|
("after_create.x", Val::F(0.0)),
|
|
("after_external_change_then_totalTime_0_5.x", Val::F(75.0)),
|
|
(
|
|
"after_external_change_then_totalTime_0_5.note",
|
|
Val::S("start value captured at first render (50): 50 + 0.5*50 = 75"),
|
|
),
|
|
],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "timeline_from_at_2",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"tl=gsap.timeline({paused:true})",
|
|
"tl.from(o,{x:100,duration:1},2)",
|
|
"tl.seek(1); tl.seek(2.5); tl.seek(0)",
|
|
],
|
|
values: &[
|
|
("after_create.x", Val::F(100.0)),
|
|
("after_seek_1.x", Val::F(100.0)),
|
|
("after_seek_2_5.x", Val::F(25.0)),
|
|
("after_seek_0.x", Val::F(100.0)),
|
|
],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "timeline_set_at_0",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"tl=gsap.timeline({paused:true})",
|
|
"tl.set(o,{x:5},0)",
|
|
"tl.seek(0)",
|
|
"tl.totalTime(0.01)",
|
|
],
|
|
values: &[
|
|
("after_create.x", Val::F(0.0)),
|
|
("after_seek_0.x", Val::F(5.0)),
|
|
("after_totalTime_0_01.x", Val::F(5.0)),
|
|
],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "timeline_set_at_0_unpaused_root",
|
|
gsap_calls: &["o={x:0}", "tl=gsap.timeline()", "tl.set(o,{x:5},0)"],
|
|
values: &[("after_create.x", Val::F(0.0))],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "gsap_set",
|
|
gsap_calls: &["o={x:0}", "gsap.set(o,{x:5})"],
|
|
values: &[("after_create.x", Val::F(5.0))],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "to_zero_duration_root",
|
|
gsap_calls: &["o={x:0}", "gsap.to(o,{x:5,duration:0})"],
|
|
values: &[("after_create.x", Val::F(5.0))],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "to_zero_duration_paused",
|
|
gsap_calls: &["o={x:0}", "gsap.to(o,{x:5,duration:0,paused:true})"],
|
|
values: &[("after_create.x", Val::F(0.0))],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "two_froms_same_prop",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"tl=gsap.timeline({paused:true})",
|
|
"tl.from(o,{x:100,duration:1,ease:\"none\"})",
|
|
"tl.from(o,{x:50,duration:1,ease:\"none\"})",
|
|
"tl.seek(t) for t in 0,0.25,0.5,0.75,1,1.5,2,0 (in this order)",
|
|
],
|
|
values: &[
|
|
("after_first_create.x", Val::F(100.0)),
|
|
("after_create.x", Val::F(50.0)),
|
|
("seek.len", Val::F(8.0)),
|
|
("seek.0.t", Val::F(0.0)),
|
|
("seek.0.x", Val::F(50.0)),
|
|
("seek.1.t", Val::F(0.25)),
|
|
("seek.1.x", Val::F(75.0)),
|
|
("seek.2.t", Val::F(0.5)),
|
|
("seek.2.x", Val::F(50.0)),
|
|
("seek.3.t", Val::F(0.75)),
|
|
("seek.3.x", Val::F(25.0)),
|
|
("seek.4.t", Val::F(1.0)),
|
|
("seek.4.x", Val::F(50.0)),
|
|
("seek.5.t", Val::F(1.5)),
|
|
("seek.5.x", Val::F(75.0)),
|
|
("seek.6.t", Val::F(2.0)),
|
|
("seek.6.x", Val::F(100.0)),
|
|
("seek.7.t", Val::F(0.0)),
|
|
("seek.7.x", Val::F(100.0)),
|
|
],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "two_froms_same_prop_immediateRender_false_on_second",
|
|
gsap_calls: &[
|
|
"o={x:0}",
|
|
"tl=gsap.timeline({paused:true})",
|
|
"tl.from(o,{x:100,duration:1,ease:\"none\"})",
|
|
"tl.from(o,{x:50,duration:1,ease:\"none\",immediateRender:false})",
|
|
"tl.seek(t)",
|
|
],
|
|
values: &[
|
|
("after_create.x", Val::F(100.0)),
|
|
("seek.len", Val::F(8.0)),
|
|
("seek.0.t", Val::F(0.0)),
|
|
("seek.0.x", Val::F(100.0)),
|
|
("seek.1.t", Val::F(0.25)),
|
|
("seek.1.x", Val::F(75.0)),
|
|
("seek.2.t", Val::F(0.5)),
|
|
("seek.2.x", Val::F(50.0)),
|
|
("seek.3.t", Val::F(0.75)),
|
|
("seek.3.x", Val::F(25.0)),
|
|
("seek.4.t", Val::F(1.0)),
|
|
("seek.4.x", Val::F(50.0)),
|
|
("seek.5.t", Val::F(1.5)),
|
|
("seek.5.x", Val::F(25.0)),
|
|
("seek.6.t", Val::F(2.0)),
|
|
("seek.6.x", Val::F(0.0)),
|
|
("seek.7.t", Val::F(0.0)),
|
|
("seek.7.x", Val::F(100.0)),
|
|
],
|
|
},
|
|
ImmediateRenderCase {
|
|
id: "from_paused_outside_frame_lazy",
|
|
gsap_calls: &[
|
|
"(before the harness frame tick) o={x:0}",
|
|
"gsap.from(o,{x:100,duration:1,paused:true})",
|
|
"gsap.ticker.tick() // the frame flushes lazy renders",
|
|
],
|
|
values: &[
|
|
("after_create.x", Val::F(0.0)),
|
|
("after_frame_tick.x", Val::F(100.0)),
|
|
],
|
|
},
|
|
];
|