Subversion Repository Public Repository

Nextrek

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
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
var Component_MoveAnimation,
  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_MoveAnimation = (function(superClass) {
  extend(Component_MoveAnimation, superClass);


  /**
  * Executes a move-animation on a game-object.
  *
  * @module gs
  * @class Component_MoveAnimation
  * @extends gs.Component_Animation
  * @memberof gs
  * @constructor
   */

  function Component_MoveAnimation(data) {
    Component_MoveAnimation.__super__.constructor.apply(this, arguments);

    /**
    * The easing-object used for the animation.
    * @property easing
    * @type gs.Easing
     */
    this.easing = new gs.Easing(null, data != null ? data.easing : void 0);

    /**
    * The move-animation type (move-in, move-out, etc.).
    * @property animationType
    * @type gs.MoveAnimationType
     */
    this.animationType = (data != null ? data.animationType : void 0) || 0;
  }


  /**
  * Serializes the move-animation into a data-bundle.
  *
  * @method toDataBundle
   */

  Component_MoveAnimation.prototype.toDataBundle = function() {
    return {
      easing: this.easing,
      animationType: this.animationType
    };
  };


  /**
  * Updates the move-animation.
  *
  * @method update
   */

  Component_MoveAnimation.prototype.update = function() {
    Component_MoveAnimation.__super__.update.call(this);
    if (!this.easing.isRunning) {
      return;
    }
    this.easing.updatePosition();
    this.updateCoordinates();
    if (!this.easing.isRunning) {
      if (!this.easing.isEndless) {
        this.object.dstRect.x = Math.round(this.object.dstRect.x);
        this.object.dstRect.y = Math.round(this.object.dstRect.y);
      }
      return typeof this.callback === "function" ? this.callback(this.object, this) : void 0;
    }
  };


  /**
  * Updates the game object's coordinates depending on animation type.
  *
  * @method updateCoordinates
  * @protected
   */

  Component_MoveAnimation.prototype.updateCoordinates = function() {
    switch (this.animationType) {
      case 0:
        this.object.offset.x = Math.floor(this.easing.x);
        return this.object.offset.y = Math.floor(this.easing.y);
      case 1:
        this.object.dstRect.x = Math.floor(this.easing.x);
        return this.object.dstRect.y = Math.floor(this.easing.y);
      case 2:
        this.object.visual.scroll.x = Math.round(this.easing.x);
        return this.object.visual.scroll.y = Math.round(this.easing.y);
    }
  };


  /**
  * Scrolls the game object's content with a specified speed if supported.
  *
  * @method scroll
  * @param {number} speedX The speed on x-axis in pixels per frame.
  * @param {number} speedY The speed on y-axis in pixels per frame.
  * @param {number} duration The duration in frames.
  * @param {Object} easingType The easing-type used for the animation.
  * @param {function} [callback] An optional callback-function called when the animation is finished.
   */

  Component_MoveAnimation.prototype.scroll = function(speedX, speedY, duration, easingType, callback) {
    this.move(speedX, speedY, duration, easingType, callback);
    return this.animationType = 2;
  };


  /**
  * Scrolls the game object to a specified position.
  *
  * @method scrollTo
  * @param {number} x The x-coordinate of the position.
  * @param {number} y The y-coordinate of the position.
  * @param {number} duration The duration in frames.
  * @param {Object} easingType The easing-type.
  * @param {function} [callback] An optional callback-function called when the animation is finished.
   */

  Component_MoveAnimation.prototype.scrollTo = function(x, y, duration, easingType, callback) {
    this.animationType = 2;
    this.callback = callback;
    if (this.object.visual.scroll.x === x && this.object.visual.scroll.y === y) {
      return;
    }
    this.easing.type = easingType || gs.Easings.EASE_LINEAR[gs.EasingTypes.EASE_IN];
    if (duration === 0 || this.isInstantSkip()) {
      this.object.visual.scroll.x = x;
      this.object.visual.scroll.y = y;
      return typeof this.callback === "function" ? this.callback(this.object, this) : void 0;
    } else {
      this.easing.start(this.object.visual.scroll.x, this.object.visual.scroll.y, x, y, duration);
      this.targetX = x;
      return this.targetY = y;
    }
  };


  /**
  * Moves the game object with a specified speed.
  *
  * @method move
  * @param {number} speedX The speed on x-axis in pixels per frame.
  * @param {number} speedY The speed on y-axis in pixels per frame.
  * @param {number} duration The duration in frames.
  * @param {Object} easingType The easing-type used for the animation.
  * @param {function} [callback] An optional callback-function called when the animation is finished.
   */

  Component_MoveAnimation.prototype.move = function(speedX, speedY, duration, easingType, callback) {
    this.animationType = 1;
    this.targetX = duration * speedX;
    this.targetY = duration * speedY;
    this.callback = callback;
    this.easing.type = easingType || gs.Easings.EASE_LINEAR[gs.EasingTypes.EASE_IN];
    if (duration === 0 || this.isInstantSkip()) {
      return this.easing.startEndless(speedX, speedY);
    } else {
      return this.easing.start(this.object.dstRect.x, this.object.dstRect.y, this.targetX, this.targetY, duration);
    }
  };


  /**
  * Moves the game object to a specified position.
  *
  * @method moveTo
  * @param {number} x The x-coordinate of the position.
  * @param {number} y The y-coordinate of the position.
  * @param {number} duration The duration in frames.
  * @param {Object} easingType The easing-type.
  * @param {function} [callback] An optional callback-function called when the animation is finished.
   */

  Component_MoveAnimation.prototype.moveTo = function(x, y, duration, easingType, callback) {
    this.animationType = 1;
    this.callback = callback;
    if (this.object.dstRect.x === x && this.object.dstRect.y === y) {
      return;
    }
    this.easing.type = easingType || gs.Easings.EASE_LINEAR[gs.EasingTypes.EASE_IN];
    if (duration === 0 || this.isInstantSkip()) {
      this.easing.x = x;
      this.easing.y = y;
      return this.updateCoordinates();
    } else {
      this.easing.start(this.object.dstRect.x, this.object.dstRect.y, x, y, duration);
      this.targetX = x;
      return this.targetY = y;
    }
  };


  /**
  * Lets a game object appear on screen from left, top, right or bottom using 
  * a move-animation
  *
  * @method moveIn
  * @param {number} x The x-coordinate of the target-position.
  * @param {number} y The y-coordinate of the target-position.
  * @param {number} type The movement-direction from where the game object should move-in.
  * @param {number} duration The duration in frames.
  * @param {Object} easingType The easing-type.
  * @param {function} [callback] An optional callback-function called when the animation is finished.
   */

  Component_MoveAnimation.prototype.moveIn = function(x, y, type, duration, easing, callback) {
    var height, rect, width;
    this.animationType = 0;
    this.object.offset.x = 0;
    this.object.offset.y = 0;
    if (duration === 0 || this.isInstantSkip()) {
      this.object.update();
      return typeof callback === "function" ? callback(this.object, this) : void 0;
    }
    this.easing.type = easing;
    this.callback = callback;
    rect = this.object.angle != null ? this.object.dstRect.rotate(this.object.angle) : this.object.dstRect;
    width = rect.width * this.object.zoom.x;
    height = rect.height * this.object.zoom.y;
    x = this.object.dstRect.x - (width - rect.width) * this.object.anchor.x;
    y = this.object.dstRect.y - (height - rect.height) * this.object.anchor.y;
    switch (type) {
      case 0:
        this.object.offset.y = 0;
        this.object.offset.x = -(x + width + this.object.origin.x);
        break;
      case 1:
        this.object.offset.y = -(y + height + this.object.origin.y);
        this.object.offset.x = 0;
        break;
      case 2:
        this.object.offset.x = (this.object.viewport || Graphics.viewport).rect.width - x;
        this.object.offset.y = 0;
        break;
      case 3:
        this.object.offset.x = 0;
        this.object.offset.y = (this.object.viewport || Graphics.viewport).rect.height - y;
    }
    this.object.update();
    return this.easing.start(this.object.offset.x, this.object.offset.y, 0, 0, duration);
  };


  /**
  * Lets a game object disappear from screen to the left, top, right or bottom using 
  * a move-animation
  *
  * @method moveOut
  * @param {number} type The movement-direction in which the game object should move-out.
  * @param {number} duration The duration in frames.
  * @param {Object} easingType The easing-type.
  * @param {function} [callback] An optional callback-function called when the animation is finished.
   */

  Component_MoveAnimation.prototype.moveOut = function(type, duration, easing, callback) {
    var height, rect, viewport, width, x, y;
    this.animationType = 0;
    this.easing.type = easing;
    this.callback = callback;
    x = 0;
    y = 0;
    viewport = Graphics.viewport;
    rect = this.object.angle != null ? this.object.dstRect.rotate(this.object.angle) : this.object.dstRect;
    width = rect.width * this.object.zoom.x;
    height = rect.height * this.object.zoom.y;
    x = this.object.dstRect.x - (width - rect.width) * this.object.anchor.x;
    y = this.object.dstRect.y - (height - rect.height) * this.object.anchor.y;
    switch (type) {
      case 0:
        x = -(this.object.origin.x + x + width);
        y = 0;
        break;
      case 1:
        y = -(this.object.origin.y + y + height);
        x = 0;
        break;
      case 2:
        x = (this.object.viewport || Graphics.viewport).rect.width;
        y = 0;
        break;
      case 3:
        y = (this.object.viewport || Graphics.viewport).rect.height;
        x = 0;
    }
    if (duration === 0 || this.isInstantSkip()) {
      this.object.offset.x = x;
      this.object.offset.y = y;
      return typeof this.callback === "function" ? this.callback(this.object, this) : void 0;
    } else {
      return this.easing.start(this.object.offset.x, this.object.offset.y, x, y, duration);
    }
  };

  return Component_MoveAnimation;

})(gs.Component_Animation);

gs.Component_MoveAnimation = Component_MoveAnimation;

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsdUJBQUE7RUFBQTs7O0FBQU07Ozs7QUFDRjs7Ozs7Ozs7OztFQVNhLGlDQUFDLElBQUQ7SUFDVCwwREFBQSxTQUFBOztBQUVBOzs7OztJQUtBLElBQUMsQ0FBQSxNQUFELEdBQWMsSUFBQSxFQUFFLENBQUMsTUFBSCxDQUFVLElBQVYsaUJBQWdCLElBQUksQ0FBRSxlQUF0Qjs7QUFFZDs7Ozs7SUFLQSxJQUFDLENBQUEsYUFBRCxtQkFBaUIsSUFBSSxDQUFFLHVCQUFOLElBQXVCO0VBZi9COzs7QUFpQmI7Ozs7OztvQ0FLQSxZQUFBLEdBQWMsU0FBQTtXQUNWO01BQUEsTUFBQSxFQUFRLElBQUMsQ0FBQSxNQUFUO01BQ0EsYUFBQSxFQUFlLElBQUMsQ0FBQSxhQURoQjs7RUFEVTs7O0FBSWQ7Ozs7OztvQ0FLQSxNQUFBLEdBQVEsU0FBQTtJQUNKLGtEQUFBO0lBQ0EsSUFBRyxDQUFJLElBQUMsQ0FBQSxNQUFNLENBQUMsU0FBZjtBQUE4QixhQUE5Qjs7SUFFQSxJQUFDLENBQUEsTUFBTSxDQUFDLGNBQVIsQ0FBQTtJQUVBLElBQUMsQ0FBQSxpQkFBRCxDQUFBO0lBRUEsSUFBRyxDQUFJLElBQUMsQ0FBQSxNQUFNLENBQUMsU0FBZjtNQUNJLElBQUcsQ0FBSSxJQUFDLENBQUEsTUFBTSxDQUFDLFNBQWY7UUFDSSxJQUFDLENBQUEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFoQixHQUFvQixJQUFJLENBQUMsS0FBTCxDQUFXLElBQUMsQ0FBQSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQTNCO1FBQ3BCLElBQUMsQ0FBQSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQWhCLEdBQW9CLElBQUksQ0FBQyxLQUFMLENBQVcsSUFBQyxDQUFBLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBM0IsRUFGeEI7O21EQUdBLElBQUMsQ0FBQSxTQUFVLElBQUMsQ0FBQSxRQUFR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QUEsYUFBRCxDQUFBLENBQXBCO01BQ0ksSUFBQyxDQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBZixHQUFtQjtNQUNuQixJQUFDLENBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFmLEdBQW1CO21EQUNuQixJQUFDLENBQUEsU0FBVSxJQUFDLENBQUEsUUFBUSxlQUh4QjtLQUFBLE1BQUE7YUFLSSxJQUFDLENBQUEsTUFBTSxDQUFDLEtBQVIsQ0FBYyxJQUFDLENBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUE3QixFQUFnQyxJQUFDLENBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUEvQyxFQUFrRCxDQUFsRCxFQUFxRCxDQUFyRCxFQUF3RCxRQUF4RCxFQUxKOztFQW5DSzs7OztHQXhOeUIsRUFBRSxDQUFDOztBQWtRekMsRUFBRSxDQUFDLHVCQUFILEdBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4jXG4jICAgU2NyaXB0OiBDb21wb25lbnRfTW92ZUFuaW1hdGlvblxuI1xuIyAgICQkQ09QWVJJR0hUJCRcbiNcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuY2xhc3MgQ29tcG9uZW50X01vdmVBbmltYXRpb24gZXh0ZW5kcyBncy5Db21wb25lbnRfQW5pbWF0aW9uXG4gICAgIyMjKlxuICAgICogRXhlY3V0ZXMgYSBtb3ZlLWFuaW1hdGlvbiBvbiBhIGdhbWUtb2JqZWN0LlxuICAgICpcbiAgICAqIEBtb2R1bGUgZ3NcbiAgICAqIEBjbGFzcyBDb21wb25lbnRfTW92ZUFuaW1hdGlvblxuICAgICogQGV4dGVuZHMgZ3MuQ29tcG9uZW50X0FuaW1hdGlvblxuICAgICogQG1lbWJlcm9mIGdzXG4gICAgKiBAY29uc3RydWN0b3JcbiAgICAjIyNcbiAgICBjb25zdHJ1Y3RvcjogKGRhdGEpIC0+XG4gICAgICAgIHN1cGVyXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogVGhlIGVhc2luZy1vYmplY3QgdXNlZCBmb3IgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgKiBAcHJvcGVydHkgZWFzaW5nXG4gICAgICAgICogQHR5cGUgZ3MuRWFzaW5nXG4gICAgICAgICMjI1xuICAgICAgICBAZWFzaW5nID0gbmV3IGdzLkVhc2luZyhudWxsLCBkYXRhPy5lYXNpbmcpXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogVGhlIG1vdmUtYW5pbWF0aW9uIHR5cGUgKG1vdmUtaW4sIG1vdmUtb3V0LCBldGMuKS5cbiAgICAgICAgKiBAcHJvcGVydHkgYW5pbWF0aW9uVHlwZVxuICAgICAgICAqIEB0eXBlIGdzLk1vdmVBbmltYXRpb25UeXBlXG4gICAgICAgICMjI1xuICAgICAgICBAYW5pbWF0aW9uVHlwZSA9IGRhdGE/LmFuaW1hdGlvblR5cGUgfHwgMFxuICAgICBcbiAgICAjIyMqXG4gICAgKiBTZXJpYWxpemVzIHRoZSBtb3ZlLWFuaW1hdGlvbiBpbnRvIGEgZGF0YS1idW5kbGUuXG4gICAgKlxuICAgICogQG1ldGhvZCB0b0RhdGFCdW5kbGVcbiAgICAjIyMgICAgICBcbiAgICB0b0RhdGFCdW5kbGU6IC0+XG4gICAgICAgIGVhc2luZzogQGVhc2luZyxcbiAgICAgICAgYW5pbWF0aW9uVHlwZTogQGFuaW1hdGlvblR5cGVcbiAgICAgXG4gICAgIyMjKlxuICAgICogVXBkYXRlcyB0aGUgbW92ZS1hbmltYXRpb24uXG4gICAgKlxuICAgICogQG1ldGhvZCB1cGRhdGVcbiAgICAjIyMgICAgICBcbiAgICB1cGRhdGU6IC0+XG4gICAgICAgIHN1cGVyKClcbiAgICAgICAgaWYgbm90IEBlYXNpbmcuaXNSdW5uaW5nIHRoZW4gcmV0dXJuXG4gICAgICAgIFxuICAgICAgICBAZWFzaW5nLnVwZGF0ZVBvc2l0aW9uKClcbiAgICAgICAgXG4gICAgICAgIEB1cGRhdGVDb29yZGluYXRlcygpXG4gICAgICAgICAgICBcbiAgICAgICAgaWYgbm90IEBlYXNpbmcuaXNSdW5uaW5nXG4gICAgICAgICAgICBpZiBub3QgQGVhc2luZy5pc0VuZGxlc3NcbiAgICAgICAgICAgICAgICBAb2JqZWN0LmRzdFJlY3QueCA9IE1hdGgucm91bmQoQG9iamVjdC5kc3RSZWN0LngpXG4gICAgICAgICAgICAgICAgQG9iamVjdC5kc3RSZWN0LnkgPSBNYXRoLnJvdW5kKEBvYmplY3QuZHN0UmVjdC55KVxuICAgICAgICAgICAgQGNhbGxiYWNrPyhAb2JqZWN0LCB0aGlzKVxuICAgICBcbiAgICAjIyMqXG4gICAgKiBVcGRhdGVzIHRoZSBnYW1lIG9iamVjdCdzIGNvb3JkaW5hdGVzIGRlcGVuZGluZyBvbiBhbmltYXRpb24gdHlwZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHVwZGF0ZUNvb3JkaW5hdGVzXG4gICAgKiBAcHJvdGVjdGVkXG4gICAgIyMjICAgICBcbiAgICB1cGRhdGVDb29yZGluYXRlczogLT5cbiAgICAgICAgc3dpdGNoIEBhbmltYXRpb25UeXBlXG4gICAgICAgICAgICB3aGVuIDBcbiAgICAgICAgICAgICAgICBAb2JqZWN0Lm9mZnNldC54ID0gTWF0aC5mbG9vcihAZWFzaW5nLngpXG4gICAgICAgICAgICAgICAgQG9iamVjdC5vZmZzZXQueSA9IE1hdGguZmxvb3IoQGVhc2luZy55KVxuICAgICAgICAgICAgd2hlbiAxXG4gICAgICAgICAgICAgICAgQG9iamVjdC5kc3RSZWN0LnggPSBNYXRoLmZsb29yKEBlYXNpbmcueClcbiAgICAgICAgICAgICAgICBAb2JqZWN0LmRzdFJlY3QueSA9IE1hdGguZmxvb3IoQGVhc2luZy55KVxuICAgICAgICAgICAgd2hlbiAyXG4gICAgICAgICAgICAgICAgQG9iamVjdC52aXN1YWwuc2Nyb2xsLnggPSBNYXRoLnJvdW5kKEBlYXNpbmcueClcbiAgICAgICAgICAgICAgICBAb2JqZWN0LnZpc3VhbC5zY3JvbGwueSA9IE1hdGgucm91bmQoQGVhc2luZy55KVxuICAgICAgICAgICAgICAgIFxuICAgICMjIypcbiAgICAqIFNjcm9sbHMgdGhlIGdhbWUgb2JqZWN0J3MgY29udGVudCB3aXRoIGEgc3BlY2lmaWVkIHNwZWVkIGlmIHN1cHBvcnRlZC5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHNjcm9sbFxuICAgICogQHBhcmFtIHtudW1iZXJ9IHNwZWVkWCBUaGUgc3BlZWQgb24geC1heGlzIGluIHBpeGVscyBwZXIgZnJhbWUuXG4gICAgKiBAcGFyYW0ge251bWJlcn0gc3BlZWRZIFRoZSBzcGVlZCBvbiB5LWF4aXMgaW4gcGl4ZWxzIHBlciBmcmFtZS5cbiAgICAqIEBwYXJhbSB7bnVtYmVyfSBkdXJhdGlvbiBUaGUgZHVyYXRpb24gaW4gZnJhbWVzLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGVhc2luZ1R5cGUgVGhlIGVhc2luZy10eXBlIHVzZWQgZm9yIHRoZSBhbmltYXRpb24uXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIEFuIG9wdGlvbmFsIGNhbGxiYWNrLWZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBhbmltYXRpb24gaXMgZmluaXNoZWQuXG4gICAgIyMjICBcbiAgICBzY3JvbGw6IChzcGVlZFgsIHNwZWVkWSwgZHVyYXRpb24sIGVhc2luZ1R5cGUsIGNhbGxiYWNrKSAtPlxuICAgICAgICBAbW92ZShzcGVlZFgsIHNwZWVkWSwgZHVyYXRpb24sIGVhc2luZ1R5cGUsIGNhbGxiYWNrKVxuICAgICAgICBAYW5pbWF0aW9uVHlwZSA9IDJcbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogU2Nyb2xscyB0aGUgZ2FtZSBvYmplY3QgdG8gYSBzcGVjaWZpZWQgcG9zaXRpb24uXG4gICAgKlxuICAgICogQG1ldGhvZCBzY3JvbGxUb1xuICAgICogQHBhcmFtIHtudW1iZXJ9IHggVGhlIHgtY29vcmRpbmF0ZSBvZiB0aGUgcG9zaXRpb24uXG4gICAgKiBAcGFyYW0ge251bWJlcn0geSBUaGUgeS1jb29yZGluYXRlIG9mIHRoZSBwb3NpdGlvbi5cbiAgICAqIEBwYXJhbSB7bnVtYmVyfSBkdXJhdGlvbiBUaGUgZHVyYXRpb24gaW4gZnJhbWVzLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGVhc2luZ1R5cGUgVGhlIGVhc2luZy10eXBlLlxuICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW2NhbGxiYWNrXSBBbiBvcHRpb25hbCBjYWxsYmFjay1mdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgYW5pbWF0aW9uIGlzIGZpbmlzaGVkLlxuICAgICMjIyAgICAgIFxuICAgIHNjcm9sbFRvOiAoeCwgeSwgZHVyYXRpb24sIGVhc2luZ1R5cGUsIGNhbGxiYWNrKSAtPlxuICAgICAgICBAYW5pbWF0aW9uVHlwZSA9IDJcbiAgICAgICAgQGNhbGxiYWNrID0gY2FsbGJhY2tcbiAgICAgICAgaWYgQG9iamVjdC52aXN1YWwuc2Nyb2xsLnggPT0geCBhbmQgQG9iamVjdC52aXN1YWwuc2Nyb2xsLnkgPT0geSB0aGVuIHJldHVyblxuICAgICAgICBcbiAgICAgICAgQGVhc2luZy50eXBlID0gZWFzaW5nVHlwZSB8fCBncy5FYXNpbmdzLkVBU0VfTElORUFSW2dzLkVhc2luZ1R5cGVzLkVBU0VfSU5dXG4gICAgICAgIGlmIGR1cmF0aW9uID09IDAgb3IgQGlzSW5zdGFudFNraXAoKVxuICAgICAgICAgICAgQG9iamVjdC52aXN1YWwuc2Nyb2xsLnggPSB4XG4gICAgICAgICAgICBAb2JqZWN0LnZpc3VhbC5zY3JvbGwueSA9IHlcbiAgICAgICAgICAgIEBjYWxsYmFjaz8oQG9iamVjdCwgdGhpcylcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgQGVhc2luZy5zdGFydChAb2JqZWN0LnZpc3VhbC5zY3JvbGwueCwgQG9iamVjdC52aXN1YWwuc2Nyb2xsLnksIHgsIHksIGR1cmF0aW9uKVxuICAgICAgICAgICAgQHRhcmdldFggPSB4XG4gICAgICAgICAgICBAdGFyZ2V0WSA9IHlcbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogTW92ZXMgdGhlIGdhbWUgb2JqZWN0IHdpdGggYSBzcGVjaWZpZWQgc3BlZWQuXG4gICAgKlxuICAgICogQG1ldGhvZCBtb3ZlXG4gICAgKiBAcGFyYW0ge251bWJlcn0gc3BlZWRYIFRoZSBzcGVlZCBvbiB4LWF4aXMgaW4gcGl4ZWxzIHBlciBmcmFtZS5cbiAgICAqIEBwYXJhbSB7bnVtYmVyfSBzcGVlZFkgVGhlIHNwZWVkIG9uIHktYXhpcyBpbiBwaXhlbHMgcGVyIGZyYW1lLlxuICAgICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uIFRoZSBkdXJhdGlvbiBpbiBmcmFtZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZWFzaW5nVHlwZSBUaGUgZWFzaW5nLXR5cGUgdXNlZCBmb3IgdGhlIGFuaW1hdGlvbi5cbiAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtjYWxsYmFja10gQW4gb3B0aW9uYWwgY2FsbGJhY2stZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGFuaW1hdGlvbiBpcyBmaW5pc2hlZC5cbiAgICAjIyMgICAgICAgIFxuICAgIG1vdmU6IChzcGVlZFgsIHNwZWVkWSwgZHVyYXRpb24sIGVhc2luZ1R5cGUsIGNhbGxiYWNrKSAtPlxuICAgICAgICBAYW5pbWF0aW9uVHlwZSA9IDFcbiAgICAgICAgQHRhcmdldFggPSBkdXJhdGlvbiAqIHNwZWVkWFxuICAgICAgICBAdGFyZ2V0WSA9IGR1cmF0aW9uICogc3BlZWRZXG4gICAgICAgIEBjYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgICAgIFxuICAgICAgICBAZWFzaW5nLnR5cGUgPSBlYXNpbmdUeXBlIHx8IGdzLkVhc2luZ3MuRUFTRV9MSU5FQVJbZ3MuRWFzaW5nVHlwZXMuRUFTRV9JTl1cbiAgICAgICAgaWYgZHVyYXRpb24gPT0gMCBvciBAaXNJbnN0YW50U2tpcCgpXG4gICAgICAgICAgICBAZWFzaW5nLnN0YXJ0RW5kbGVzcyhzcGVlZFgsIHNwZWVkWSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgQGVhc2luZy5zdGFydChAb2JqZWN0LmRzdFJlY3QueCwgQG9iamVjdC5kc3RSZWN0LnksIEB0YXJnZXRYLCBAdGFyZ2V0WSwgZHVyYXRpb24pXG4gICAgXG4gICAgIyMjKlxuICAgICogTW92ZXMgdGhlIGdhbWUgb2JqZWN0IHRvIGEgc3BlY2lmaWVkIHBvc2l0aW9uLlxuICAgICpcbiAgICAqIEBtZXRob2QgbW92ZVRvXG4gICAgKiBAcGFyYW0ge251bWJlcn0geCBUaGUgeC1jb29yZGluYXRlIG9mIHRoZSBwb3NpdGlvbi5cbiAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IFRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHBvc2l0aW9uLlxuICAgICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uIFRoZSBkdXJhdGlvbiBpbiBmcmFtZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZWFzaW5nVHlwZSBUaGUgZWFzaW5nLXR5cGUuXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIEFuIG9wdGlvbmFsIGNhbGxiYWNrLWZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBhbmltYXRpb24gaXMgZmluaXNoZWQuXG4gICAgIyMjICAgICAgXG4gICAgbW92ZVRvOiAoeCwgeSwgZHVyYXRpb24sIGVhc2luZ1R5cGUsIGNhbGxiYWNrKSAtPlxuICAgICAgICBAYW5pbWF0aW9uVHlwZSA9IDFcbiAgICAgICAgQGNhbGxiYWNrID0gY2FsbGJhY2tcbiAgICAgICAgaWYgQG9iamVjdC5kc3RSZWN0LnggPT0geCBhbmQgQG9iamVjdC5kc3RSZWN0LnkgPT0geSB0aGVuIHJldHVyblxuICAgICAgICBcbiAgICAgICAgQGVhc2luZy50eXBlID0gZWFzaW5nVHlwZSB8fCBncy5FYXNpbmdzLkVBU0VfTElORUFSW2dzLkVhc2luZ1R5cGVzLkVBU0VfSU5dXG4gICAgICAgIGlmIGR1cmF0aW9uID09IDAgb3IgQGlzSW5zdGFudFNraXAoKVxuICAgICAgICAgICAgQGVhc2luZy54ID0geFxuICAgICAgICAgICAgQGVhc2luZy55ID0geVxuICAgICAgICAgICAgQHVwZGF0ZUNvb3JkaW5hdGVzKClcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgQGVhc2luZy5zdGFydChAb2JqZWN0LmRzdFJlY3QueCwgQG9iamVjdC5kc3RSZWN0LnksIHgsIHksIGR1cmF0aW9uKVxuICAgICAgICAgICAgQHRhcmdldFggPSB4XG4gICAgICAgICAgICBAdGFyZ2V0WSA9IHlcbiAgICBcbiAgICAjIyMqXG4gICAgKiBMZXRzIGEgZ2FtZSBvYmplY3QgYXBwZWFyIG9uIHNjcmVlbiBmcm9tIGxlZnQsIHRvcCwgcmlnaHQgb3IgYm90dG9tIHVzaW5nIFxuICAgICogYSBtb3ZlLWFuaW1hdGlvblxuICAgICpcbiAgICAqIEBtZXRob2QgbW92ZUluXG4gICAgKiBAcGFyYW0ge251bWJlcn0geCBUaGUgeC1jb29yZGluYXRlIG9mIHRoZSB0YXJnZXQtcG9zaXRpb24uXG4gICAgKiBAcGFyYW0ge251bWJlcn0geSBUaGUgeS1jb29yZGluYXRlIG9mIHRoZSB0YXJnZXQtcG9zaXRpb24uXG4gICAgKiBAcGFyYW0ge251bWJlcn0gdHlwZSBUaGUgbW92ZW1lbnQtZGlyZWN0aW9uIGZyb20gd2hlcmUgdGhlIGdhbWUgb2JqZWN0IHNob3VsZCBtb3ZlLWluLlxuICAgICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uIFRoZSBkdXJhdGlvbiBpbiBmcmFtZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZWFzaW5nVHlwZSBUaGUgZWFzaW5nLXR5cGUuXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIEFuIG9wdGlvbmFsIGNhbGxiYWNrLWZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBhbmltYXRpb24gaXMgZmluaXNoZWQuIFxuICAgICMjIyAgICAgICAgIFxuICAgIG1vdmVJbjogKHgsIHksIHR5cGUsIGR1cmF0aW9uLCBlYXNpbmcsIGNhbGxiYWNrKSAtPlxuICAgICAgICBAYW5pbWF0aW9uVHlwZSA9IDBcbiAgICAgICAgQG9iamVjdC5vZmZzZXQueCA9IDBcbiAgICAgICAgQG9iamVjdC5vZmZzZXQueSA9IDBcbiAgICAgICAgXG4gICAgICAgIGlmIGR1cmF0aW9uID09IDAgb3IgQGlzSW5zdGFudFNraXAoKVxuICAgICAgICAgICAgQG9iamVjdC51cGRhdGUoKVxuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrPyhAb2JqZWN0LCB0aGlzKVxuICAgICAgICBcbiAgICAgICAgQGVhc2luZy50eXBlID0gZWFzaW5nXG4gICAgICAgIEBjYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgICAgIFxuICAgICAgICByZWN0ID0gaWYgQG9iamVjdC5hbmdsZT8gdGhlbiBAb2JqZWN0LmRzdFJlY3Qucm90YXRlKEBvYmplY3QuYW5nbGUpIGVsc2UgQG9iamVjdC5kc3RSZWN0XG4gICAgICAgIHdpZHRoID0gcmVjdC53aWR0aCAqIEBvYmplY3Quem9vbS54XG4gICAgICAgIGhlaWdodCA9IHJlY3QuaGVpZ2h0ICogQG9iamVjdC56b29tLnlcbiAgICAgICAgeCA9IEBvYmplY3QuZHN0UmVjdC54IC0gKHdpZHRoLXJlY3Qud2lkdGgpICogQG9iamVjdC5hbmNob3IueFxuICAgICAgICB5ID0gQG9iamVjdC5kc3RSZWN0LnkgLSAoaGVpZ2h0LXJlY3QuaGVpZ2h0KSAqIEBvYmplY3QuYW5jaG9yLnlcbiAgICAgICAgXG4gICAgICAgIHN3aXRjaCB0eXBlXG4gICAgICAgICAgICB3aGVuIDAgIyBMZWZ0XG4gICAgICAgICAgICAgICAgQG9iamVjdC5vZmZzZXQueSA9IDBcbiAgICAgICAgICAgICAgICBAb2JqZWN0Lm9mZnNldC54ID0gLSh4K3dpZHRoK0BvYmplY3Qub3JpZ2luLngpXG4gICAgICAgICAgICB3aGVuIDEgIyBUb3BcbiAgICAgICAgICAgICAgICBAb2JqZWN0Lm9mZnNldC55ID0gLSh5K2hlaWdodCtAb2JqZWN0Lm9yaWdpbi55KVxuICAgICAgICAgICAgICAgIEBvYmplY3Qub2Zmc2V0LnggPSAwXG4gICAgICAgICAgICB3aGVuIDIgIyBSaWdodFxuICAgICAgICAgICAgICAgIEBvYmplY3Qub2Zmc2V0LnggPSAoQG9iamVjdC52aWV3cG9ydHx8R3JhcGhpY3Mudmlld3BvcnQpLnJlY3Qud2lkdGggLSB4XG4gICAgICAgICAgICAgICAgQG9iamVjdC5vZmZzZXQueSA9IDBcbiAgICAgICAgICAgIHdoZW4gMyAjIEJvdHRvbVxuICAgICAgICAgICAgICAgIEBvYmplY3Qub2Zmc2V0LnggPSAwXG4gICAgICAgICAgICAgICAgQG9iamVjdC5vZmZzZXQueSA9IChAb2JqZWN0LnZpZXdwb3J0fHxHcmFwaGljcy52aWV3cG9ydCkucmVjdC5oZWlnaHQgLSB5XG5cbiAgICAgICAgQG9iamVjdC51cGRhdGUoKVxuICAgICAgICBAZWFzaW5nLnN0YXJ0KEBvYmplY3Qub2Zmc2V0LngsIEBvYmplY3Qub2Zmc2V0LnksIDAsIDAsIGR1cmF0aW9uKVxuICAgICAgIFxuICAgICMjIypcbiAgICAqIExldHMgYSBnYW1lIG9iamVjdCBkaXNhcHBlYXIgZnJvbSBzY3JlZW4gdG8gdGhlIGxlZnQsIHRvcCwgcmlnaHQgb3IgYm90dG9tIHVzaW5nIFxuICAgICogYSBtb3ZlLWFuaW1hdGlvblxuICAgICpcbiAgICAqIEBtZXRob2QgbW92ZU91dFxuICAgICogQHBhcmFtIHtudW1iZXJ9IHR5cGUgVGhlIG1vdmVtZW50LWRpcmVjdGlvbiBpbiB3aGljaCB0aGUgZ2FtZSBvYmplY3Qgc2hvdWxkIG1vdmUtb3V0LlxuICAgICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uIFRoZSBkdXJhdGlvbiBpbiBmcmFtZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZWFzaW5nVHlwZSBUaGUgZWFzaW5nLXR5cGUuXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIEFuIG9wdGlvbmFsIGNhbGxiYWNrLWZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBhbmltYXRpb24gaXMgZmluaXNoZWQuIFxuICAgICMjIyAgICBcbiAgICBtb3ZlT3V0OiAodHlwZSwgZHVyYXRpb24sIGVhc2luZywgY2FsbGJhY2spIC0+XG4gICAgICAgICNpZiBkdXJhdGlvbiA9PSAwIG9yIEBpc0luc3RhbnRTa2lwKClcbiAgICAgICAgIyAgICByZXR1cm4gY2FsbGJhY2s/KEBvYmplY3QsIHRoaXMpXG4gICAgICAgICAgICBcbiAgICAgICAgQGFuaW1hdGlvblR5cGUgPSAwXG4gICAgICAgIEBlYXNpbmcudHlwZSA9IGVhc2luZ1xuICAgICAgICBAY2FsbGJhY2sgPSBjYWxsYmFja1xuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgeCA9IDBcbiAgICAgICAgeSA9IDBcbiAgICAgICAgdmlld3BvcnQgPSBHcmFwaGljcy52aWV3cG9ydFxuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgIHJlY3QgPSBpZiBAb2JqZWN0LmFuZ2xlPyB0aGVuIEBvYmplY3QuZHN0UmVjdC5yb3RhdGUoQG9iamVjdC5hbmdsZSkgZWxzZSBAb2JqZWN0LmRzdFJlY3RcbiAgICAgICAgd2lkdGggPSByZWN0LndpZHRoICogQG9iamVjdC56b29tLnhcbiAgICAgICAgaGVpZ2h0ID0gcmVjdC5oZWlnaHQgKiBAb2JqZWN0Lnpvb20ueVxuICAgICAgICB4ID0gQG9iamVjdC5kc3RSZWN0LnggLSAod2lkdGgtcmVjdC53aWR0aCkgKiBAb2JqZWN0LmFuY2hvci54XG4gICAgICAgIHkgPSBAb2JqZWN0LmRzdFJlY3QueSAtIChoZWlnaHQtcmVjdC5oZWlnaHQpICogQG9iamVjdC5hbmNob3IueVxuICAgICAgICBcbiAgICAgICAgc3dpdGNoIHR5cGVcbiAgICAgICAgICAgIHdoZW4gMCAjIExlZnRcbiAgICAgICAgICAgICAgICB4ID0gLShAb2JqZWN0Lm9yaWdpbi54K3grd2lkdGgpXG4gICAgICAgICAgICAgICAgeSA9IDBcbiAgICAgICAgICAgIHdoZW4gMSAjIFRvcFxuICAgICAgICAgICAgICAgIHkgPSAtKEBvYmplY3Qub3JpZ2luLnkreStoZWlnaHQpXG4gICAgICAgICAgICAgICAgeCA9IDBcbiAgICAgICAgICAgIHdoZW4gMiAjIFJpZ2h0XG4gICAgICAgICAgICAgICAgeCA9IChAb2JqZWN0LnZpZXdwb3J0fHxHcmFwaGljcy52aWV3cG9ydCkucmVjdC53aWR0aFxuICAgICAgICAgICAgICAgIHkgPSAwIFxuICAgICAgICAgICAgd2hlbiAzICMgQm90dG9tXG4gICAgICAgICAgICAgICAgeSA9IChAb2JqZWN0LnZpZXdwb3J0fHxHcmFwaGljcy52aWV3cG9ydCkucmVjdC5oZWlnaHRcbiAgICAgICAgICAgICAgICB4ID0gMFxuICAgICAgICAgICAgICAgIFxuICAgICAgICBpZiBkdXJhdGlvbiA9PSAwIG9yIEBpc0luc3RhbnRTa2lwKClcbiAgICAgICAgICAgIEBvYmplY3Qub2Zmc2V0LnggPSB4XG4gICAgICAgICAgICBAb2JqZWN0Lm9mZnNldC55ID0geVxuICAgICAgICAgICAgQGNhbGxiYWNrPyhAb2JqZWN0LCB0aGlzKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBAZWFzaW5nLnN0YXJ0KEBvYmplY3Qub2Zmc2V0LngsIEBvYmplY3Qub2Zmc2V0LnksIHgsIHksIGR1cmF0aW9uKVxuICAgICAgICBcbmdzLkNvbXBvbmVudF9Nb3ZlQW5pbWF0aW9uID0gQ29tcG9uZW50X01vdmVBbmltYXRpb24iXX0=
//# sourceURL=Component_MoveAnimation_83.js

Commits for Nextrek/s2s/development/Component_MoveAnimation_922103F9K2F40A4605SB7D6E96ACC3F0E72D.js

Diff revisions: vs.
Revision Author Commited Message
1084 MOliva picture MOliva Fri 11 May, 2018 12:41:55 +0000