Nextrek
@ 1101
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 |
var Component_AnimationExecutor, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, hasProp = {}.hasOwnProperty; Component_AnimationExecutor = (function(superClass) { extend(Component_AnimationExecutor, superClass); /** * An animation-handler component allows a UI game object to execute * a flow of animations. For more information about UI animations, see help-file. * * @module ui * @class Component_AnimationExecutor * @extends gs.Component * @memberof ui * @constructor */ function Component_AnimationExecutor() { Component_AnimationExecutor.__super__.constructor.apply(this, arguments); /** * @property initialized * @type boolean * @protected */ this.initialized = false; /** * @property waitCounter * @type number * @protected */ this.waitCounter = 0; /** * @property pointer * @type number * @protected */ this.pointer = 0; this.repeat = false; } /** * Initializes the animation-handler. * * @method setup */ Component_AnimationExecutor.prototype.setup = function() { this.initialized = true; return null; }; Component_AnimationExecutor.prototype.execute = function(animation, callback) { this.animation = animation; this.callback = callback; this.pointer = 0; return this.waitCounter = 0; }; Component_AnimationExecutor.prototype.stop = function() { return this.animation = null; }; /** * Starts the specified animation. * * @method startAnimation * @param {Object} animation - The animation to start. * @param {gs.Object_Base} target - The target object of the animation. * @protected */ Component_AnimationExecutor.prototype.startAnimation = function(animation, duration, target, animator) { var easing, mask, record, value; switch (animation.type) { case "sound": AudioManager.playSound(animation.sound); break; case "maskTo": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; mask = { value: animation.value, graphic: { name: animation.mask }, vague: animation.vague, sourceType: 0 }; animator.maskTo(mask, duration, easing); break; case "changeImages": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.changeImages(animation.images, duration, easing); break; case "playAnimation": record = RecordManager.animations[animation.animationId]; if (record != null) { animator.playAnimation(record); } break; case "changeTo": value = ui.Component_BindingHandler.fieldValue(target, animation.value); easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.change(value, animation.field, duration, easing); break; case "blendTo": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.blendTo(animation.opacity, duration, easing); break; case "colorTo": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.colorTo(Color.fromArray(animation.color), duration, easing); break; case "tintTo": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.tintTo(Tone.fromArray(animation.tone), duration, easing); break; case "moveTo": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.moveTo(animation.position[0], animation.position[1], duration, easing); break; case "rotate": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.rotate(0, animation.speed, duration, easing); break; case "rotateTo": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.rotateTo(animation.angle, duration, easing); break; case "moveBy": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.moveBy(this.object.dstRect.x + animation.position[0], this.object.dstRect.y + animation.position[1], duration, easing); break; case "zoomTo": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.zoomTo(animation.zoom[0] / 100, animation.zoom[1] / 100, duration, easing); break; case "scroll": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.scroll(animation.speed[0], animation.speed[1], 0, easing); break; case "move": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.move(animation.speed[0], animation.speed[1], duration, easing); break; case "shake": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; return animator.shake({ x: animation.range[0], y: animation.range[1] }, animation.speed, duration, easing); case "appear": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.appear(target.dstRect.x, target.dstRect.y, animation.animation, easing, duration); break; case "disappear": easing = animation.easing ? gs.Easings.fromString(animation.easing) : null; animator.disappear(animation.animation, easing, duration); } if (this.object.visual) { if (duration === 0) { return this.object.visual.update(); } } else if (this.object.behavior) { if (duration === 0) { return this.object.behavior.update(); } } }; /** * Processes the animation flow. * * @method processAnimation * @param {Object} descriptor - The animation-descriptor containing the animation-flow. * @protected */ Component_AnimationExecutor.prototype.processAnimation = function() { var animation, duration; while (this.animation && this.pointer < this.animation.flow.length) { animation = this.animation.flow[this.pointer]; this.pointer++; if (animation.executed) { continue; } if (!this.object.animator) { this.object.animator = new gs.Component_Animator(); this.object.addComponent(this.object.animator); } duration = ui.Component_FormulaHandler.fieldValue(this.object, animation.duration || 0, true); this.startAnimation(animation, duration, this.object, this.object.animator); animation.executed = true; if (animation.wait) { if (animation.type != null) { this.waitCounter = duration; } else { this.waitCounter = animation.wait; } break; } } return null; }; /** * Updates the animations. * * @method updateAnimations */ Component_AnimationExecutor.prototype.updateAnimation = function() { if (this.waitCounter > 0) { this.waitCounter--; return; } if (this.pointer >= this.animation.flow.length) { this.pointer = 0; if (typeof this.callback === "function") { this.callback(this.object); } if (!this.repeat) { this.animation = null; } } if (this.animation) { this.processAnimation(this.animation); } return null; }; /** * Updates the animation-handler. * * @method update */ Component_AnimationExecutor.prototype.update = function() { this.object.needsUpdate = true; if (this.animation) { return this.updateAnimation(); } }; return Component_AnimationExecutor; })(gs.Component); ui.Component_AnimationExecutor = Component_AnimationExecutor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsMkJBQUE7RUFBQTs7O0FBQU07Ozs7QUFDRjs7Ozs7Ozs7Ozs7RUFVYSxxQ0FBQTtJQUNULDhEQUFBLFNBQUE7O0FBRUE7Ozs7O0lBS0EsSUFBQyxDQUFBLFdBQUQsR0FBZTs7QUFFZjs7Ozs7SUFLQSxJQUFDLENBQUEsV0FBRCxHQUFlOztBQUVmOzs7OztJQUtBLElBQUMsQ0FBQSxPQUFELEdBQVc7SUFFWCxJQUFDLENBQUEsTUFBRCxHQUFVO0VBeEJEOzs7QUEwQmI7Ozs7Ozt3Q0FLQSxLQUFBLEdBQU8sU0FBQTtJQUNILElBQUMsQ0FBQSxXQUFELEdBQWU7QUFFZixXQUFPO0VBSEo7O3dDQUtQLE9BQUEsR0FBUyxTQUFDLFNBQUQsRUFBWSxRQUFaO0lBQ0wsSUFBQyxDQUFBLFNBQUQsR0FBYTtJQUNiLElBQUMsQ0FBQSxRQUFELEdBQVk7SUFDWixJQUFDLENBQUEsT0FBRCxHQUFXO1dBQ1gsSUFBQyxDQUFBLFdBQUQsR0FBZTtFQUpWOzt3Q0FNVCxJQUFBLEdBQU0sU0FBQTtXQUNGLElBQUMsQ0FBQSxTQUFELEdBQWE7RUFEWDs7O0FBR047Ozs7Ozs7Ozt3Q0FRQSxjQUFBLEdBQWdCLFNBQUMsU0FBRCxFQUFZLFFBQVosRUFBc0IsTUFBdEIsRUFBOEIsUUFBOUI7QUFDWixRQUFBO0FBQUEsWUFBTyxTQUFTLENBQUMsSUFBakI7QUFBQSxXQUNTLE9BRFQ7UUFFUSxZQUFZLENBQUMsU0FBYixDQUF1QixTQUFTLENBQUMsS0FBakM7QUFEQztBQURULFdBR1MsUUFIVDtRQUlRLE1BQUEsR0FBWSxTQUFTLENBQUMsTUFBYixHQUF5QixFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVgsQ0FBc0IsU0FBUyxDQUFDLE1BQWhDLENBQXpCLEdBQXNFO1FBQy9FLElBQUEsR0FBTztVQUFFLEtBQUEsRUFBTyxTQUFTLENBQUMsS0FBbkI7VUFBMEIsT0FBQSxFQUFT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IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4jXG4jICAgU2NyaXB0OiBDb21wb25lbnRfQW5pbWF0aW9uRXhlY3V0b3JcbiNcbiMgICAkJENPUFlSSUdIVCQkXG4jXG4jID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmNsYXNzIENvbXBvbmVudF9BbmltYXRpb25FeGVjdXRvciBleHRlbmRzIGdzLkNvbXBvbmVudFxuICAgICMjIypcbiAgICAqIEFuIGFuaW1hdGlvbi1oYW5kbGVyIGNvbXBvbmVudCBhbGxvd3MgYSBVSSBnYW1lIG9iamVjdCB0byBleGVjdXRlXG4gICAgKiBhIGZsb3cgb2YgYW5pbWF0aW9ucy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVUkgYW5pbWF0aW9ucywgc2VlIGhlbHAtZmlsZS5cbiAgICAqIFxuICAgICogQG1vZHVsZSB1aVxuICAgICogQGNsYXNzIENvbXBvbmVudF9BbmltYXRpb25FeGVjdXRvclxuICAgICogQGV4dGVuZHMgZ3MuQ29tcG9uZW50XG4gICAgKiBAbWVtYmVyb2YgdWlcbiAgICAqIEBjb25zdHJ1Y3RvclxuICAgICMjI1xuICAgIGNvbnN0cnVjdG9yOiAtPlxuICAgICAgICBzdXBlclxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEBwcm9wZXJ0eSBpbml0aWFsaXplZFxuICAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAgKiBAcHJvdGVjdGVkXG4gICAgICAgICMjI1xuICAgICAgICBAaW5pdGlhbGl6ZWQgPSBub1xuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEBwcm9wZXJ0eSB3YWl0Q291bnRlclxuICAgICAgICAqIEB0eXBlIG51bWJlclxuICAgICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgICAgIyMjXG4gICAgICAgIEB3YWl0Q291bnRlciA9IDBcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBAcHJvcGVydHkgcG9pbnRlclxuICAgICAgICAqIEB0eXBlIG51bWJlclxuICAgICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgICAgIyMjXG4gICAgICAgIEBwb2ludGVyID0gMFxuICAgICAgICBcbiAgICAgICAgQHJlcGVhdCA9IG5vXG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIEluaXRpYWxpemVzIHRoZSBhbmltYXRpb24taGFuZGxlci5cbiAgICAqIFxuICAgICogQG1ldGhvZCBzZXR1cFxuICAgICMjI1xuICAgIHNldHVwOiAtPlxuICAgICAgICBAaW5pdGlhbGl6ZWQgPSB5ZXNcbiAgIFxuICAgICAgICByZXR1cm4gbnVsbFxuICAgIFxuICAgIGV4ZWN1dGU6IChhbmltYXRpb24sIGNhbGxiYWNrKSAtPlxuICAgICAgICBAYW5pbWF0aW9uID0gYW5pbWF0aW9uXG4gICAgICAgIEBjYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgICAgIEBwb2ludGVyID0gMFxuICAgICAgICBAd2FpdENvdW50ZXIgPSAwXG4gICAgICAgIFxuICAgIHN0b3A6IC0+XG4gICAgICAgIEBhbmltYXRpb24gPSBudWxsXG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIFN0YXJ0cyB0aGUgc3BlY2lmaWVkIGFuaW1hdGlvbi5cbiAgICAqIFxuICAgICogQG1ldGhvZCBzdGFydEFuaW1hdGlvblxuICAgICogQHBhcmFtIHtPYmplY3R9IGFuaW1hdGlvbiAtIFRoZSBhbmltYXRpb24gdG8gc3RhcnQuXG4gICAgKiBAcGFyYW0ge2dzLk9iamVjdF9CYXNlfSB0YXJnZXQgLSBUaGUgdGFyZ2V0IG9iamVjdCBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICogQHByb3RlY3RlZFxuICAgICMjIyAgICBcbiAgICBzdGFydEFuaW1hdGlvbjogKGFuaW1hdGlvbiwgZHVyYXRpb24sIHRhcmdldCwgYW5pbWF0b3IpIC0+XG4gICAgICAgIHN3aXRjaCBhbmltYXRpb24udHlwZVxuICAgICAgICAgICAgd2hlbiBcInNvdW5kXCJcbiAgICAgICAgICAgICAgICBBdWRpb01hbmFnZXIucGxheVNvdW5kKGFuaW1hdGlvbi5zb3VuZClcbiAgICAgICAgICAgIHdoZW4gXCJtYXNrVG9cIlxuICAgICAgICAgICAgICAgIGVhc2luZyA9IGlmIGFuaW1hdGlvbi5lYXNpbmcgdGhlbiBncy5FYXNpbmdzLmZyb21TdHJpbmcoYW5pbWF0aW9uLmVhc2luZykgZWxzZSBudWxsXG4gICAgICAgICAgICAgICAgbWFzayA9IHsgdmFsdWU6IGFuaW1hdGlvbi52YWx1ZSwgZ3JhcGhpYzogeyBuYW1lOiBhbmltYXRpb24ubWFzayB9LCB2YWd1ZTogYW5pbWF0aW9uLnZhZ3VlLCBzb3VyY2VUeXBlOiAwIH1cbiAgICAgICAgICAgICAgICBhbmltYXRvci5tYXNrVG8obWFzaywgZHVyYXRpb24sIGVhc2luZylcbiAgICAgICAgICAgIHdoZW4gXCJjaGFuZ2VJbWFnZXNcIlxuICAgICAgICAgICAgICAgIGVhc2luZyA9IGlmIGFuaW1hdGlvbi5lYXNpbmcgdGhlbiBncy5FYXNpbmdzLmZyb21TdHJpbmcoYW5pbWF0aW9uLmVhc2luZykgZWxzZSBudWxsXG4gICAgICAgICAgICAgICAgYW5pbWF0b3IuY2hhbmdlSW1hZ2VzKGFuaW1hdGlvbi5pbWFnZXMsIGR1cmF0aW9uLCBlYXNpbmcpXG4gICAgICAgICAgICB3aGVuIFwicGxheUFuaW1hdGlvblwiXG4gICAgICAgICAgICAgICAgcmVjb3JkID0gUmVjb3JkTWFuYWdlci5hbmltYXRpb25zW2FuaW1hdGlvbi5hbmltYXRpb25JZF1cbiAgICAgICAgICAgICAgICBpZiByZWNvcmQ/XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdG9yLnBsYXlBbmltYXRpb24ocmVjb3JkKVxuICAgICAgICAgICAgd2hlbiBcImNoYW5nZVRvXCJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHVpLkNvbXBvbmVudF9CaW5kaW5nSGFuZGxlci5maWVsZFZhbHVlKHRhcmdldCwgYW5pbWF0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICAgIGVhc2luZyA9IGlmIGFuaW1hdGlvbi5lYXNpbmcgdGhlbiBncy5FYXNpbmdzLmZyb21TdHJpbmcoYW5pbWF0aW9uLmVhc2luZykgZWxzZSBudWxsXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgYW5pbWF0b3IuY2hhbmdlKHZhbHVlLCBhbmltYXRpb24uZmllbGQsIGR1cmF0aW9uLCBlYXNpbmcpXG4gICAgICAgICAgICB3aGVuIFwiYmxlbmRUb1wiXG4gICAgICAgICAgICAgICAgZWFzaW5nID0gaWYgYW5pbWF0aW9uLmVhc2luZyB0aGVuIGdzLkVhc2luZ3MuZnJvbVN0cmluZyhhbmltYXRpb24uZWFzaW5nKSBlbHNlIG51bGxcbiAgICAgICAgICAgICAgICBhbmltYXRvci5ibGVuZFRvKGFuaW1hdGlvbi5vcGFjaXR5LCBkdXJhdGlvbiwgZWFzaW5nKVxuICAgICAgICAgICAgd2hlbiBcImNvbG9yVG9cIlxuICAgICAgICAgICAgICAgIGVhc2luZyA9IGlmIGFuaW1hdGlvbi5lYXNpbmcgdGhlbiBncy5FYXNpbmdzLmZyb21TdHJpbmcoYW5pbWF0aW9uLmVhc2luZykgZWxzZSBudWxsXG4gICAgICAgICAgICAgICAgYW5pbWF0b3IuY29sb3JUbyhDb2xvci5mcm9tQXJyYXkoYW5pbWF0aW9uLmNvbG9yKSwgZHVyYXRpb24sIGVhc2luZykgXG4gICAgICAgICAgICB3aGVuIFwidGludFRvXCJcbiAgICAgICAgICAgICAgICBlYXNpbmcgPSBpZiBhbmltYXRpb24uZWFzaW5nIHRoZW4gZ3MuRWFzaW5ncy5mcm9tU3RyaW5nKGFuaW1hdGlvbi5lYXNpbmcpIGVsc2UgbnVsbFxuICAgICAgICAgICAgICAgIGFuaW1hdG9yLnRpbnRUbyhUb25lLmZyb21BcnJheShhbmltYXRpb24udG9uZSksIGR1cmF0aW9uLCBlYXNpbmcpIFxuICAgICAgICAgICAgd2hlbiBcIm1vdmVUb1wiXG4gICAgICAgICAgICAgICAgZWFzaW5nID0gaWYgYW5pbWF0aW9uLmVhc2luZyB0aGVuIGdzLkVhc2luZ3MuZnJvbVN0cmluZyhhbmltYXRpb24uZWFzaW5nKSBlbHNlIG51bGxcbiAgICAgICAgICAgICAgICBhbmltYXRvci5tb3ZlVG8oYW5pbWF0aW9uLnBvc2l0aW9uWzBdLCBhbmltYXRpb24ucG9zaXRpb25bMV0sIGR1cmF0aW9uLCBlYXNpbmcpXG4gICAgICAgICAgICB3aGVuIFwicm90YXRlXCJcbiAgICAgICAgICAgICAgICBlYXNpbmcgPSBpZiBhbmltYXRpb24uZWFzaW5nIHRoZW4gZ3MuRWFzaW5ncy5mcm9tU3RyaW5nKGFuaW1hdGlvbi5lYXNpbmcpIGVsc2UgbnVsbFxuICAgICAgICAgICAgICAgIGFuaW1hdG9yLnJvdGF0ZSgwLCBhbmltYXRpb24uc3BlZWQsIGR1cmF0aW9uLCBlYXNpbmcpXG4gICAgICAgICAgICB3aGVuIFwicm90YXRlVG9cIlxuICAgICAgICAgICAgICAgIGVhc2luZyA9IGlmIGFuaW1hdGlvbi5lYXNpbmcgdGhlbiBncy5FYXNpbmdzLmZyb21TdHJpbmcoYW5pbWF0aW9uLmVhc2luZykgZWxzZSBudWxsXG4gICAgICAgICAgICAgICAgYW5pbWF0b3Iucm90YXRlVG8oYW5pbWF0aW9uLmFuZ2xlLCBkdXJhdGlvbiwgZWFzaW5nKVxuICAgICAgICAgICAgd2hlbiBcIm1vdmVCeVwiXG4gICAgICAgICAgICAgICAgZWFzaW5nID0gaWYgYW5pbWF0aW9uLmVhc2luZyB0aGVuIGdzLkVhc2luZ3MuZnJvbVN0cmluZyhhbmltYXRpb24uZWFzaW5nKSBlbHNlIG51bGxcbiAgICAgICAgICAgICAgICBhbmltYXRvci5tb3ZlQnkoQG9iamVjdC5kc3RSZWN0LnggKyBhbmltYXRpb24ucG9zaXRpb25bMF0sIEBvYmplY3QuZHN0UmVjdC55ICsgYW5pbWF0aW9uLnBvc2l0aW9uWzFdLCBkdXJhdGlvbiwgZWFzaW5nKVxuICAgICAgICAgICAgd2hlbiBcInpvb21Ub1wiXG4gICAgICAgICAgICAgICAgZWFzaW5nID0gaWYgYW5pbWF0aW9uLmVhc2luZyB0aGVuIGdzLkVhc2luZ3MuZnJvbVN0cmluZyhhbmltYXRpb24uZWFzaW5nKSBlbHNlIG51bGxcbiAgICAgICAgICAgICAgICBhbmltYXRvci56b29tVG8oYW5pbWF0aW9uLnpvb21bMF0gLyAxMDAsIGFuaW1hdGlvbi56b29tWzFdIC8gMTAwLCBkdXJhdGlvbiwgZWFzaW5nKVxuICAgICAgICAgICAgd2hlbiBcInNjcm9sbFwiXG4gICAgICAgICAgICAgICAgZWFzaW5nID0gaWYgYW5pbWF0aW9uLmVhc2luZyB0aGVuIGdzLkVhc2luZ3MuZnJvbVN0cmluZyhhbmltYXRpb24uZWFzaW5nKSBlbHNlIG51bGxcbiAgICAgICAgICAgICAgICBhbmltYXRvci5zY3JvbGwoYW5pbWF0aW9uLnNwZWVkWzBdLCBhbmltYXRpb24uc3BlZWRbMV0sIDAsIGVhc2luZylcbiAgICAgICAgICAgIHdoZW4gXCJtb3ZlXCJcbiAgICAgICAgICAgICAgICBlYXNpbmcgPSBpZiBhbmltYXRpb24uZWFzaW5nIHRoZW4gZ3MuRWFzaW5ncy5mcm9tU3RyaW5nKGFuaW1hdGlvbi5lYXNpbmcpIGVsc2UgbnVsbFxuICAgICAgICAgICAgICAgIGFuaW1hdG9yLm1vdmUoYW5pbWF0aW9uLnNwZWVkWzBdLCBhbmltYXRpb24uc3BlZWRbMV0sIGR1cmF0aW9uLCBlYXNpbmcpXG4gICAgICAgICAgICB3aGVuIFwic2hha2VcIlxuICAgICAgICAgICAgICAgIGVhc2luZyA9IGlmIGFuaW1hdGlvbi5lYXNpbmcgdGhlbiBncy5FYXNpbmdzLmZyb21TdHJpbmcoYW5pbWF0aW9uLmVhc2luZykgZWxzZSBudWxsXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFuaW1hdG9yLnNoYWtlKHsgeDogYW5pbWF0aW9uLnJhbmdlWzBdLCB5OiBhbmltYXRpb24ucmFuZ2VbMV0gfSwgYW5pbWF0aW9uLnNwZWVkLCBkdXJhdGlvbiwgZWFzaW5nKVxuICAgICAgICAgICAgd2hlbiBcImFwcGVhclwiXG4gICAgICAgICAgICAgICAgZWFzaW5nID0gaWYgYW5pbWF0aW9uLmVhc2luZyB0aGVuIGdzLkVhc2luZ3MuZnJvbVN0cmluZyhhbmltYXRpb24uZWFzaW5nKSBlbHNlIG51bGxcbiAgICAgICAgICAgICAgICBhbmltYXRvci5hcHBlYXIodGFyZ2V0LmRzdFJlY3QueCwgdGFyZ2V0LmRzdFJlY3QueSwgYW5pbWF0aW9uLmFuaW1hdGlvbiwgZWFzaW5nLCBkdXJhdGlvbilcbiAgICAgICAgICAgIHdoZW4gXCJkaXNhcHBlYXJcIlxuICAgICAgICAgICAgICAgIGVhc2luZyA9IGlmIGFuaW1hdGlvbi5lYXNpbmcgdGhlbiBncy5FYXNpbmdzLmZyb21TdHJpbmcoYW5pbWF0aW9uLmVhc2luZykgZWxzZSBudWxsXG4gICAgICAgICAgICAgICAgYW5pbWF0b3IuZGlzYXBwZWFyKGFuaW1hdGlvbi5hbmltYXRpb24sIGVhc2luZywgZHVyYXRpb24pXG4gICAgICAgIFxuICAgICAgICBpZiBAb2JqZWN0LnZpc3VhbFxuICAgICAgICAgICAgQG9iamVjdC52aXN1YWwudXBkYXRlKCkgaWYgZHVyYXRpb24gPT0gMFxuICAgICAgICBlbHNlIGlmIEBvYmplY3QuYmVoYXZpb3JcbiAgICAgICAgICAgIEBvYmplY3QuYmVoYXZpb3IudXBkYXRlKCkgaWYgZHVyYXRpb24gPT0gMFxuXG4gICAgIyMjKlxuICAgICogUHJvY2Vzc2VzIHRoZSBhbmltYXRpb24gZmxvdy5cbiAgICAqIFxuICAgICogQG1ldGhvZCBwcm9jZXNzQW5pbWF0aW9uXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGVzY3JpcHRvciAtIFRoZSBhbmltYXRpb24tZGVzY3JpcHRvciBjb250YWluaW5nIHRoZSBhbmltYXRpb24tZmxvdy5cbiAgICAqIEBwcm90ZWN0ZWRcbiAgICAjIyMgXG4gICAgcHJvY2Vzc0FuaW1hdGlvbjogLT5cbiAgICAgICAgd2hpbGUgQGFuaW1hdGlvbiBhbmQgQHBvaW50ZXIgPCBAYW5pbWF0aW9uLmZsb3cubGVuZ3RoXG4gICAgICAgICAgICBhbmltYXRpb24gPSBAYW5pbWF0aW9uLmZsb3dbQHBvaW50ZXJdXG4gICAgICAgICAgICBAcG9pbnRlcisrXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIGFuaW1hdGlvbi5leGVjdXRlZCB0aGVuIGNvbnRpbnVlXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmKCFAb2JqZWN0LmFuaW1hdG9yKVxuICAgICAgICAgICAgICAgIEBvYmplY3QuYW5pbWF0b3IgPSBuZXcgZ3MuQ29tcG9uZW50X0FuaW1hdG9yKClcbiAgICAgICAgICAgICAgICBAb2JqZWN0LmFkZENvbXBvbmVudChAb2JqZWN0LmFuaW1hdG9yKVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgZHVyYXRpb24gPSB1aS5Db21wb25lbnRfRm9ybXVsYUhhbmRsZXIuZmllbGRWYWx1ZShAb2JqZWN0LCBhbmltYXRpb24uZHVyYXRpb24gfHwgMCwgeWVzKVxuICAgICAgICAgICAgQHN0YXJ0QW5pbWF0aW9uKGFuaW1hdGlvbiwgZHVyYXRpb24sIEBvYmplY3QsIEBvYmplY3QuYW5pbWF0b3IpXG4gICAgICAgICAgICBhbmltYXRpb24uZXhlY3V0ZWQgPSB5ZXNcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgYW5pbWF0aW9uLndhaXRcbiAgICAgICAgICAgICAgICBpZiBhbmltYXRpb24udHlwZT9cbiAgICAgICAgICAgICAgICAgICAgQHdhaXRDb3VudGVyID0gZHVyYXRpb25cbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIEB3YWl0Q291bnRlciA9IGFuaW1hdGlvbi53YWl0ICN1aS5Db21wb25lbnRfRm9ybXVsYUhhbmRsZXIuZmllbGRWYWx1ZShAb2JqZWN0LCBhbmltYXRpb24ud2FpdCB8fCAwLCB5ZXMpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBVcGRhdGVzIHRoZSBhbmltYXRpb25zLlxuICAgICogXG4gICAgKiBAbWV0aG9kIHVwZGF0ZUFuaW1hdGlvbnNcbiAgICAjIyNcbiAgICB1cGRhdGVBbmltYXRpb246IC0+XG4gICAgICAgIGlmIEB3YWl0Q291bnRlciA+IDBcbiAgICAgICAgICAgIEB3YWl0Q291bnRlci0tXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgXG4gICAgICAgIGlmIEBwb2ludGVyID49IEBhbmltYXRpb24uZmxvdy5sZW5ndGhcbiAgICAgICAgICAgIEBwb2ludGVyID0gMFxuICAgICAgICAgICAgQGNhbGxiYWNrPyhAb2JqZWN0KVxuICAgICAgICAgICAgaWYgIUByZXBlYXRcbiAgICAgICAgICAgICAgICBAYW5pbWF0aW9uID0gbnVsbFxuICAgICAgICAgICAgXG4gICAgICAgIEBwcm9jZXNzQW5pbWF0aW9uKEBhbmltYXRpb24pIGlmIEBhbmltYXRpb25cbiAgICAgICAgICAgIFxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICBcbiAgICAjIyMqXG4gICAgKiBVcGRhdGVzIHRoZSBhbmltYXRpb24taGFuZGxlci5cbiAgICAqIFxuICAgICogQG1ldGhvZCB1cGRhdGVcbiAgICAjIyMgICBcbiAgICB1cGRhdGU6IC0+XG4gICAgICAgIEBvYmplY3QubmVlZHNVcGRhdGUgPSB5ZXNcbiAgICAgICAgQHVwZGF0ZUFuaW1hdGlvbigpIGlmIEBhbmltYXRpb25cbiAgICAgICAgXG51aS5Db21wb25lbnRfQW5pbWF0aW9uRXhlY3V0b3IgPSBDb21wb25lbnRfQW5pbWF0aW9uRXhlY3V0b3IiXX0= //# sourceURL=Component_AnimationExecutor_140.js |