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.
2021-04-02 02:24:13 +03:00

1 line
2.5 KiB
Plaintext

{"version":3,"sources":["evaluateOnce.js"],"names":["AnimatedValue","createAnimatedSet","set","createAnimatedCall","call","createAnimatedAlways","always","createAnimatedCond","cond","evaluateOnce","node","input","callback","Array","isArray","done","evalNode","i","length","__removeChild","alwaysNode","__detach","__addChild","__attach"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,+BAA1B;AACA,SAASC,iBAAiB,IAAIC,GAA9B,QAAyC,qBAAzC;AACA,SAASC,kBAAkB,IAAIC,IAA/B,QAA2C,sBAA3C;AACA,SAASC,oBAAoB,IAAIC,MAAjC,QAA+C,wBAA/C;AACA,SAASC,kBAAkB,IAAIC,IAA/B,QAA2C,sBAA3C;AAEA;;;;;;;AAOA,OAAO,SAASC,YAAT,CAAsBC,IAAtB,EAA4BC,KAAK,GAAG,EAApC,EAAwCC,QAAxC,EAAkD;AACvD,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAL,EAA2B;AACzBA,IAAAA,KAAK,GAAG,CAACA,KAAD,CAAR;AACD;;AACD,QAAMI,IAAI,GAAG,IAAIf,aAAJ,CAAkB,CAAlB,CAAb;AACA,QAAMgB,QAAQ,GAAGR,IAAI,CACnBO,IADmB,EAEnB,CAFmB,EAGnBX,IAAI,CAAC,CAACM,IAAD,EAAOR,GAAG,CAACa,IAAD,EAAO,CAAP,CAAV,CAAD,EAAuB,MAAM;AAC/BH,IAAAA,QAAQ,IAAIA,QAAQ,EAApB;;AACA,SAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,KAAK,CAACO,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrCN,MAAAA,KAAK,CAACM,CAAD,CAAL,CAASE,aAAT,CAAuBC,UAAvB;;AACAA,MAAAA,UAAU,CAACC,QAAX;AACD;AACF,GANG,CAHe,CAArB;AAWA,QAAMD,UAAU,GAAGd,MAAM,CAACU,QAAD,CAAzB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,KAAK,CAACO,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrCN,IAAAA,KAAK,CAACM,CAAD,CAAL,CAASK,UAAT,CAAoBF,UAApB;;AACAA,IAAAA,UAAU,CAACG,QAAX;AACD;AACF","sourcesContent":["import AnimatedValue from '../core/InternalAnimatedValue';\nimport { createAnimatedSet as set } from '../core/AnimatedSet';\nimport { createAnimatedCall as call } from '../core/AnimatedCall';\nimport { createAnimatedAlways as always } from '../core/AnimatedAlways';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\n\n/**\n * evaluate given node and notify children\n * @param node - node to be evaluated\n * @param input - nodes (or one node) representing values which states input for node.\n * @param callback - after callback\n */\n\nexport function evaluateOnce(node, input = [], callback) {\n if (!Array.isArray(input)) {\n input = [input];\n }\n const done = new AnimatedValue(0);\n const evalNode = cond(\n done,\n 0,\n call([node, set(done, 1)], () => {\n callback && callback();\n for (let i = 0; i < input.length; i++) {\n input[i].__removeChild(alwaysNode);\n alwaysNode.__detach();\n }\n })\n );\n const alwaysNode = always(evalNode);\n for (let i = 0; i < input.length; i++) {\n input[i].__addChild(alwaysNode);\n alwaysNode.__attach();\n }\n}\n"]}