This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.

1 line
3.7 KiB
Plaintext
Raw Normal View History

2021-04-02 02:24:13 +03:00
{"version":3,"sources":["timing.js"],"names":["internalTiming","clock","time","frameTime","position","finished","toValue","duration","nextProgress","progress","newFrameTime","state","config","distanceLeft","fullDistance","startPosition","nextPosition","lastTime","easing"],"mappings":";;;;;;;AAAA;;AAYA,MAAMA,cAAc,GAAG,gBAAK,UAC1BC,KAD0B,EAE1BC,IAF0B,EAG1BC,SAH0B,EAI1BC,QAJ0B,EAK1BC,QAL0B,EAM1BC,OAN0B,EAO1BC,QAP0B,EAQ1BC,YAR0B,EAS1BC,QAT0B,EAU1BC,YAV0B,EAW1B;AACA,QAAMC,KAAK,GAAG;AACZT,IAAAA,IADY;AAEZG,IAAAA,QAFY;AAGZF,IAAAA,SAHY;AAIZC,IAAAA;AAJY,GAAd;AAOA,QAAMQ,MAAM,GAAG;AACbL,IAAAA,QADa;AAEbD,IAAAA;AAFa,GAAf;AAKA,QAAMO,YAAY,GAAG,eAAID,MAAM,CAACN,OAAX,EAAoBK,KAAK,CAACP,QAA1B,CAArB;AACA,QAAMU,YAAY,GAAG,kBAAOD,YAAP,EAAqB,eAAI,CAAJ,EAAOJ,QAAP,CAArB,CAArB;AACA,QAAMM,aAAa,GAAG,eAAIH,MAAM,CAACN,OAAX,EAAoBQ,YAApB,CAAtB;AACA,QAAME,YAAY,GAAG,eAAID,aAAJ,EAAmB,oBAASD,YAAT,EAAuBN,YAAvB,CAAnB,CAArB;AAEA,SAAO,iBAAM,CACX,gBACE,uBAAYE,YAAZ,EAA0BE,MAAM,CAACL,QAAjC,CADF,EAEE,CAAC,eAAII,KAAK,CAACP,QAAV,EAAoBQ,MAAM,CAACN,OAA3B,CAAD,EAAsC,eAAIK,KAAK,CAACN,QAAV,EAAoB,CAApB,CAAtC,CAFF,EAGE,eAAIM,KAAK,CAACP,QAAV,EAAoBY,YAApB,CAHF,CADW,EAMX,eAAIL,KAAK,CAACR,SAAV,EAAqBO,YAArB,CANW,EAOX,eAAIC,KAAK,CAACT,IAAV,EAAgBD,KAAhB,CAPW,CAAN,CAAP;AASD,CAtCsB,CAAvB;;AAwCe,kBAASA,KAAT,EAAgBU,KAAhB,EAAuBC,MAAvB,EAA+B;AAC5C,MAAIA,MAAM,CAACL,QAAP,KAAoB,CAAxB,EAA2B;AACzB;AACA,WAAO,iBAAM,CAAC,eAAII,KAAK,CAACP,QAAV,EAAoBQ,MAAM,CAACN,OAA3B,CAAD,EAAsC,eAAIK,KAAK,CAACN,QAAV,EAAoB,CAApB,CAAtC,CAAN,CAAP;AACD;;AACD,QAAMY,QAAQ,GAAG,gBAAKN,KAAK,CAACT,IAAX,EAAiBS,KAAK,CAACT,IAAvB,EAA6BD,KAA7B,CAAjB;AACA,QAAMS,YAAY,GAAG,eAAIC,KAAK,CAACR,SAAV,EAAqB,eAAIF,KAAJ,EAAWgB,QAAX,CAArB,CAArB;AACA,QAAMT,YAAY,GAAGI,MAAM,CAACM,MAAP,CAAc,kBAAOR,YAAP,EAAqBE,MAAM,CAACL,QAA5B,CAAd,CAArB;AACA,QAAME,QAAQ,GAAGG,MAAM,CAACM,MAAP,CAAc,kBAAOP,KAAK,CAACR,SAAb,EAAwBS,MAAM,CAACL,QAA/B,CAAd,CAAjB;AACA,SAAOP,cAAc,CACnBC,KADmB,EAEnBU,KAAK,CAACT,IAFa,EAGnBS,KAAK,CAACR,SAHa,EAInBQ,KAAK,CAACP,QAJa,EAKnBO,KAAK,CAACN,QALa,EAMnBO,MAAM,CAACN,OANY,EAOnBM,MAAM,CAACL,QAPY,EAQnBC,YARmB,EASnBC,QATmB,EAUnBC,YAVmB,CAArB;AAYD","sourcesContent":["import {\n cond,\n sub,\n divide,\n multiply,\n add,\n block,\n set,\n greaterOrEq,\n proc,\n} from '../base';\n\nconst internalTiming = proc(function(\n clock,\n time,\n frameTime,\n position,\n finished,\n toValue,\n duration,\n nextProgress,\n progress,\n newFrameTime\n) {\n const state = {\n time,\n finished,\n frameTime,\n position,\n };\n\n const config = {\n duration,\n toValue,\n };\n\n const distanceLeft = sub(config.toValue, state.position);\n const fullDistance = divide(distanceLeft, sub(1, progress));\n const startPosition = sub(config.toValue, fullDistance);\n const nextPosition = add(startPosition, multiply(fullDistance, nextProgress));\n\n return block([\n cond(\n greaterOrEq(newFrameTime, config.duration),\n [set(state.position, config.toValue), set(state.finished, 1)],\n set(state.position, nextPosition)\n ),\n set(state.frameTime, newFrameTime),\n set(state.time, clock),\n ]);\n});\n\nexport default function(clock, state, config) {\n if (config.duration === 0) {\n // when duration is zero we end the timing immediately\n return block([set(state.position, config.toValue), set(state.finished, 1)]);\n }\n const lastTime = cond(state.time, state.time, clock);\n const newFrameTime = add(state.frameTime, sub(clock, lastTime));\n const nextProgress = config.easing(divide(newFrameTime, config.duration));\n const progress = config.easing(divide(state.frameTime, config.duration));\n return internalTiming(\n clock,\n state.time,\n state.frameTime,\n state.position,\n state.finished,\n config.toValue,\n config.duration,\n nextProgress,\n progress,\n newFrameTime\n );\n}\n"]}