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.2 KiB
Plaintext

{"version":3,"sources":["evaluateOnce.js"],"names":["evaluateOnce","node","input","callback","Array","isArray","done","AnimatedValue","evalNode","i","length","__removeChild","alwaysNode","__detach","__addChild","__attach"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA;;;;;;AAOO,SAASA,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,IAAIC,8BAAJ,CAAkB,CAAlB,CAAb;AACA,QAAMC,QAAQ,GAAG,sCACfF,IADe,EAEf,CAFe,EAGf,sCAAK,CAACL,IAAD,EAAO,oCAAIK,IAAJ,EAAU,CAAV,CAAP,CAAL,EAA2B,MAAM;AAC/BH,IAAAA,QAAQ,IAAIA,QAAQ,EAApB;;AACA,SAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGP,KAAK,CAACQ,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrCP,MAAAA,KAAK,CAACO,CAAD,CAAL,CAASE,aAAT,CAAuBC,UAAvB;;AACAA,MAAAA,UAAU,CAACC,QAAX;AACD;AACF,GAND,CAHe,CAAjB;AAWA,QAAMD,UAAU,GAAG,0CAAOJ,QAAP,CAAnB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGP,KAAK,CAACQ,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrCP,IAAAA,KAAK,CAACO,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"]}