@@ -8,6 +8,7 @@ import { TimelineManager } from '@/TimelineManager'
88import type { TrackValues } from '@/TimelineManager'
99import { Timeline } from '@/components/Timeline/Timeline'
1010import type {
11+ KeyframeParam ,
1112 TimelineManagerData ,
1213 TimelineManagerKeyframeTrack ,
1314 TimelineManagerTrack ,
@@ -55,10 +56,10 @@ export const WithKeyframes: Story = {
5556 label : 'Visibility' ,
5657 trackType : 'keyframe' ,
5758 keyframes : [
58- { id : 'kf-1' , time : 1000 , valueType : 'boolean' , value : true } ,
59- { id : 'kf-2' , time : 3000 , valueType : 'boolean' , value : false } ,
60- { id : 'kf-3' , time : 5500 , valueType : 'boolean' , value : true } ,
61- { id : 'kf-4' , time : 8000 , valueType : 'boolean' , value : false } ,
59+ { id : 'kf-1' , time : 1000 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
60+ { id : 'kf-2' , time : 3000 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
61+ { id : 'kf-3' , time : 5500 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
62+ { id : 'kf-4' , time : 8000 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
6263 ] ,
6364 } ,
6465 ] ,
@@ -82,19 +83,19 @@ export const WithVectorTrack: Story = {
8283 label : 'X' ,
8384 trackType : 'keyframe' ,
8485 keyframes : [
85- { id : 'kf-px-1' , time : 1000 , valueType : 'number' , value : 0 } ,
86- { id : 'kf-px-2' , time : 5000 , valueType : 'number' , value : 0.75 } ,
87- { id : 'kf-px-3' , time : 9000 , valueType : 'number' , value : - 0.2 } ,
86+ { id : 'kf-px-1' , time : 1000 , valueType : 'number' , value : 0 , nodeType : 'param' } ,
87+ { id : 'kf-px-2' , time : 5000 , valueType : 'number' , value : 0.75 , nodeType : 'param' } ,
88+ { id : 'kf-px-3' , time : 9000 , valueType : 'number' , value : - 0.2 , nodeType : 'param' } ,
8889 ] ,
8990 } ,
9091 {
9192 id : 'track-pos-y' ,
9293 label : 'Y' ,
9394 trackType : 'keyframe' ,
9495 keyframes : [
95- { id : 'kf-py-1' , time : 1500 , valueType : 'number' , value : - 0.25 } ,
96- { id : 'kf-py-2' , time : 4500 , valueType : 'number' , value : 0.5 } ,
97- { id : 'kf-py-3' , time : 8000 , valueType : 'number' , value : 0.1 } ,
96+ { id : 'kf-py-1' , time : 1500 , valueType : 'number' , value : - 0.25 , nodeType : 'param' } ,
97+ { id : 'kf-py-2' , time : 4500 , valueType : 'number' , value : 0.5 , nodeType : 'param' } ,
98+ { id : 'kf-py-3' , time : 8000 , valueType : 'number' , value : 0.1 , nodeType : 'param' } ,
9899 ] ,
99100 } ,
100101 ] ,
@@ -128,19 +129,19 @@ export const Interactive = () => {
128129 label : 'X' ,
129130 trackType : 'keyframe' ,
130131 keyframes : [
131- { id : 'kf-px1' , time : 500 , valueType : 'number' , value : - 0.5 } ,
132- { id : 'kf-px2' , time : 4000 , valueType : 'number' , value : 0.35 } ,
133- { id : 'kf-px3' , time : 7000 , valueType : 'number' , value : 0.8 } ,
132+ { id : 'kf-px1' , time : 500 , valueType : 'number' , value : - 0.5 , nodeType : 'param' } ,
133+ { id : 'kf-px2' , time : 4000 , valueType : 'number' , value : 0.35 , nodeType : 'param' } ,
134+ { id : 'kf-px3' , time : 7000 , valueType : 'number' , value : 0.8 , nodeType : 'param' } ,
134135 ] ,
135136 } ,
136137 {
137138 id : 'track-pos-y' ,
138139 label : 'Y' ,
139140 trackType : 'keyframe' ,
140141 keyframes : [
141- { id : 'kf-py1' , time : 1000 , valueType : 'number' , value : 0.25 } ,
142- { id : 'kf-py2' , time : 5000 , valueType : 'number' , value : - 0.1 } ,
143- { id : 'kf-py3' , time : 8500 , valueType : 'number' , value : 0.55 } ,
142+ { id : 'kf-py1' , time : 1000 , valueType : 'number' , value : 0.25 , nodeType : 'param' } ,
143+ { id : 'kf-py2' , time : 5000 , valueType : 'number' , value : - 0.1 , nodeType : 'param' } ,
144+ { id : 'kf-py3' , time : 8500 , valueType : 'number' , value : 0.55 , nodeType : 'param' } ,
144145 ] ,
145146 } ,
146147 ] ,
@@ -150,31 +151,31 @@ export const Interactive = () => {
150151 label : 'Visibility' ,
151152 trackType : 'keyframe' ,
152153 keyframes : [
153- { id : 'kf-v1' , time : 0 , valueType : 'boolean' , value : true } ,
154- { id : 'kf-v2' , time : 3000 , valueType : 'boolean' , value : false } ,
155- { id : 'kf-v3' , time : 6000 , valueType : 'boolean' , value : true } ,
154+ { id : 'kf-v1' , time : 0 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
155+ { id : 'kf-v2' , time : 3000 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
156+ { id : 'kf-v3' , time : 6000 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
156157 ] ,
157158 } ,
158159 {
159160 id : 'track-2' ,
160161 label : 'Strobe' ,
161162 trackType : 'keyframe' ,
162163 keyframes : [
163- { id : 'kf-s1' , time : 1000 , valueType : 'boolean' , value : true } ,
164- { id : 'kf-s2' , time : 2000 , valueType : 'boolean' , value : false } ,
165- { id : 'kf-s3' , time : 4000 , valueType : 'boolean' , value : true } ,
166- { id : 'kf-s4' , time : 5000 , valueType : 'boolean' , value : false } ,
167- { id : 'kf-s5' , time : 7000 , valueType : 'boolean' , value : true } ,
168- { id : 'kf-s6' , time : 8000 , valueType : 'boolean' , value : false } ,
164+ { id : 'kf-s1' , time : 1000 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
165+ { id : 'kf-s2' , time : 2000 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
166+ { id : 'kf-s3' , time : 4000 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
167+ { id : 'kf-s4' , time : 5000 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
168+ { id : 'kf-s5' , time : 7000 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
169+ { id : 'kf-s6' , time : 8000 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
169170 ] ,
170171 } ,
171172 {
172173 id : 'track-3' ,
173174 label : 'Invert' ,
174175 trackType : 'keyframe' ,
175176 keyframes : [
176- { id : 'kf-i1' , time : 2500 , valueType : 'boolean' , value : true } ,
177- { id : 'kf-i2' , time : 7500 , valueType : 'boolean' , value : false } ,
177+ { id : 'kf-i1' , time : 2500 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
178+ { id : 'kf-i2' , time : 7500 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
178179 ] ,
179180 } ,
180181 ] ,
@@ -255,14 +256,15 @@ export const Interactive = () => {
255256 tracks : prev . tracks . map ( ( track ) => {
256257 const insertKeyframe = ( track : TimelineManagerTrack ) : TimelineManagerTrack => {
257258 if ( track . trackType === 'keyframe' && track . id === trackId ) {
258- const lastKeyframe = track . keyframes [ track . keyframes . length - 1 ]
259+ const lastKeyframe = track . keyframes [ track . keyframes . length - 1 ] as KeyframeParam
259260 const valueType = lastKeyframe ?. valueType ?? 'boolean'
260261 const value =
261262 lastKeyframe ?. value ??
262263 ( valueType === 'number' ? 0 : valueType === 'boolean' ? true : null )
263264
264265 return {
265266 ...track ,
267+ // @ts -ignore -- this is just a story file we don't need to care so much
266268 keyframes : [
267269 ...track . keyframes ,
268270 {
@@ -360,11 +362,11 @@ export const LongDuration: Story = {
360362 label : 'Active' ,
361363 trackType : 'keyframe' ,
362364 keyframes : [
363- { id : 'kf-1' , time : 10000 , valueType : 'boolean' , value : true } ,
364- { id : 'kf-2' , time : 30000 , valueType : 'boolean' , value : false } ,
365- { id : 'kf-3' , time : 60000 , valueType : 'boolean' , value : true } ,
366- { id : 'kf-4' , time : 90000 , valueType : 'boolean' , value : false } ,
367- { id : 'kf-5' , time : 110000 , valueType : 'boolean' , value : true } ,
365+ { id : 'kf-1' , time : 10000 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
366+ { id : 'kf-2' , time : 30000 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
367+ { id : 'kf-3' , time : 60000 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
368+ { id : 'kf-4' , time : 90000 , valueType : 'boolean' , value : false , nodeType : 'param' } ,
369+ { id : 'kf-5' , time : 110000 , valueType : 'boolean' , value : true , nodeType : 'param' } ,
368370 ] ,
369371 } ,
370372 ] ,
0 commit comments