Best JavaScript code snippet using playwright-internal
Personage.js
Source:Personage.js  
...19cc.Personage = cc.AnimatedEntity.extend({20  init: function(transfer, parent, callback) {21    this._super(s_Personage, 4, 5, parent, function(){});22    this.m_BroadcastTransfer = transfer;23    this.m_EngineParticles = cc.EntityManager.create(5, cc.EngineParticle.create(), this.getParent(), 23);24    this.m_Shadow = cc.Entity.create(s_Shadow);25    this.m_Shockwave = cc.Entity.create(s_PersonageShockwave, this.getParent());26    this.m_Shockwave.setZOrder(22);27    this.m_Shockwave.m_Power = 1;28    this.setCollideable(true);29    this.setIgnoreSorting(false);30    callback(this);31    if(Connection.isEnabled()) {32      this.m_LoginName = cc.Text.create(Connection._login, 16, this);33    }34    if(Connection.isEnabled() && this.m_BroadcastTransfer) {35      var p = this;36      setInterval(function() {37        Connection.send("update", {38          id: 12,39          session: Connection._sessionId,40          x: p.getCenterX(),41          y: p.getCenterY(),42          i: p.getCurrentFrameIndex(),43          h: p.m_Health44        });45      }, 500);46    }47  },48  reset: function() {49    this.create();50        51    if(this.m_BroadcastTransfer) {52      Connection.send("update", {53        id: 18,54        session: Connection._sessionId55      });56    }57  },58  onCreate: function() {59    this._super();60    this.setCenterPosition(CAMERA_CENTER_X, CAMERA_CENTER_Y - 150);61    this.setMaxHealth(100);62    this.setZOrder(24);63    this.m_CommandMove = [false, false, false, false, false];64    this.m_Speed = 100;65    this.m_Flying = false;66    this.m_AnimationTime = 0.1;67    this.m_AnimationTimeElapsed = 0;68    this.m_AnimationFrameSide = 0;69    this.m_AnimationFrameSideLast = 0;70    this.m_EngineParticlesAnimationTime = 0.3;71    this.m_EngineParticlesAnimationTimeElapsed = 0;72    this.m_EngineParticlesAnimationTime = 0.3;73    this.m_EngineParticlesAnimationTimeElapsed = 0;74    this.m_JetPackPower = 100;75    this.m_JetPackPowerFull = 100;76    this.m_SpacebarLastPushTime = 0;77    this.m_ShockwaveScale = 1.5;78    this.m_IsShouldFire = false;79    this.m_FireVectorX = 0;80    this.m_FireVectorY = 0;81    this.m_FirePower = 20;82    this.m_FireSpeed = 500;83    this.m_FireCount = 1;84    this.m_FireFrame = 0;85    this.m_HealthRegenerationTime = 1.0;86    this.m_HealthRegenerationTimeElapsed = 0;87    this.m_FireTime = 0.45;88    this.m_FireTimeElapsed = 0;89    this.m_ShootPadding = 0;90    this.setCurrentFrameIndex(8);91  },92  onDestroy: function() {93    if(!this.isVisible()) return;94    this._super();95    this.m_Shockwave.destroy();96    this._parent.m_Explosions[1].create();97    this._parent.m_Explosions[1].last().setCenterPosition(this.getCenterX(), this.getCenterY() + this._parent.m_Explosions[1].last().getHeight() / 2 - 30);98    this._parent.shake(1.0, 10.0);99    cc.AudioEngine.getInstance().playEffect(s_PersonageDestroy);100    if(Connection.isEnabled()) {101      if(this.m_BroadcastTransfer) {102        cc.Director.getInstance().pushScene(cc.TransitionFade.create(3.0, cc.GameOver.create()));103      }104    } else {105    cc.Director.getInstance().pushScene(cc.TransitionFade.create(3.0, cc.GameOver.create()));106    }107  },108  setFireCoordinates: function(x, y) {109    this.m_FireVectorX = x;110    this.m_FireVectorY = y;111  },112  move: function(deltaTime) {113    var x = this.getCenterX();114    var y = this.getCenterY();115    for(var i = 0; i < 4; i++) {116      if(!this.m_CommandMove[i]) continue;117      switch(i) {118        case 0:119          y += this.m_Speed * deltaTime;120        break;121        case 1:122          y -= this.m_Speed * deltaTime;123        break;124        case 2:125          x -= this.m_Speed * deltaTime;126        break;127        case 3:128          x += this.m_Speed * deltaTime;129        break;130      }131    }132    133    var pontencialFrame = this.getCurrentFrameIndex() - this.m_AnimationFrameSideLast;134    if(this.m_IsShouldFire) {135      var padding1 = 0;136      var padding2 = 50;137      var padding3 = 100;138      var fcx = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());139      var fcy = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());140      if(fcy > padding1)141      {142        pontencialFrame = 8;143        pontencialFrame += 4;144        if(Math.abs(fcx) > Math.abs(fcy)*2) {145          pontencialFrame -= 4;146        } else if(Math.abs(fcx) > Math.abs(fcy) * 0.75) {147        } else {148          pontencialFrame += 4;149        }150      }151      else if(fcy < padding1)152      {153        pontencialFrame = 8;154        pontencialFrame -= 4;155        if(Math.abs(fcx) > Math.abs(fcy)*2) {156          pontencialFrame += 4;157        } else if(Math.abs(fcx) > Math.abs(fcy) * 0.75) {158        } else {159          pontencialFrame -= 4;160        }161      }162      if(fcx < 0)163      {164        this.setScaleX(1);165      }166      else167      {168        this.setScaleX(-1);169      }170    } else {171      if(this.m_CommandMove[0])172      {173        pontencialFrame = 8;174        pontencialFrame -= 8;175        if(this.m_CommandMove[2] || this.m_CommandMove[3])176        {177          pontencialFrame += 4;178        }179      }180      else if(this.m_CommandMove[1])181      {182        pontencialFrame = 8;183        pontencialFrame += 8;184        if(this.m_CommandMove[2] || this.m_CommandMove[3])185        {186          pontencialFrame -= 4;187        }188      }189      if((this.m_CommandMove[2] || this.m_CommandMove[3]) && !this.m_CommandMove[0] && !this.m_CommandMove[1]) {190        pontencialFrame = 8;191      }192      if(x < this.getCenterX())193      {194        this.setScaleX(1);195      }196      else if(x > this.getCenterX())197      {198        this.setScaleX(-1);199      }200    }201    pontencialFrame += this.m_AnimationFrameSide;202    this.setCurrentFrameIndex(pontencialFrame);203    this.setCenterPosition(x, y);204    this.m_Shockwave.setCenterPosition(x, y - 15);205    this.m_Shadow.setCenterPosition(x, y - 15 - this.getZ());206    if(Connection.isEnabled()) {207      this.m_LoginName.setPosition(this.getWidth() / 2, this.getHeight() / 2 + this.getHeight());208      this.m_LoginName.setScaleX(this.getScaleX());209    }210    this.m_AnimationFrameSideLast = this.m_AnimationFrameSide;211  },212  startFly: function() {213    if(this.m_JetPackPower <= 0) return;214    if(this.getZ() > MIN_Z) return;215    this.m_EngineParticlesAnimationTime = 0.1;216    this.m_FlyDownSpeed = 0;217    this.m_Flying = true;218      cc.AudioEngine.getInstance().playEffect(s_PersonageFlying);219  },220  endFly: function() {221    this.m_EngineParticlesAnimationTime = 0.3;222    this.m_Flying = false;223  },224  damage: function() {225    if(this.getZ() < 10) return;226    //if(!Utils::isOnPizza(this)) return;227    this.endFly();228    this.m_FlyDownSpeed = 20;229    this.getParent().shake(0.8, 4.0);230    cc.AudioEngine.getInstance().playEffect(s_PersonageFlyingDamage);231  },232  update: function(deltaTime) {233    this._super(deltaTime);234    this.m_AnimationTimeElapsed += deltaTime;235    this.m_EngineParticlesAnimationTimeElapsed += deltaTime;236    // Simple animation237    if(this.m_AnimationTimeElapsed >= this.m_AnimationTime)238    {239      this.m_AnimationTimeElapsed = 0;240      if(this.m_AnimationFrameSide == 3) {241        this.m_AnimationFrameSide = 0;242      } else {243        this.m_AnimationFrameSide++;244      }245    }246    // Engine particles animation247    if(this.m_EngineParticlesAnimationTimeElapsed >= this.m_EngineParticlesAnimationTime)248    {249      this.m_EngineParticlesAnimationTimeElapsed = 0;250      //if(!this.mIsOutOfTop && !this.mFall)251      {252        this.m_EngineParticles.create();253        this.m_EngineParticles.last().setCenterPosition(this.getCenterX(), this.getCenterY() - 15);254      }255    }256    // Flying257    if(this.m_Flying) {258      this.addZ(120.0 * deltaTime);259      this.m_JetPackPower = this.m_JetPackPower > 0 ? this.m_JetPackPower - 50 * deltaTime : 0;260      if(this.m_JetPackPower <= 0) {261        this.endFly();262      }263    } else {264      if(this.getZ() > MIN_Z) {265        this.m_EngineParticlesAnimationTime = 1000;266        this.m_FlyDownSpeed += 10 * deltaTime;267        this.removeZ((this.m_FlyDownSpeed * 60) * deltaTime);268      } else {269        this.m_EngineParticlesAnimationTime = 0.3;270        this.m_Flying = false;271        this.m_JetPackPower = this.m_JetPackPower >= this.m_JetPackPowerFull ? this.m_JetPackPowerFull : this.m_JetPackPower + 20 * deltaTime;272        if(this.m_FlyDownSpeed >= 10.0)273        {274          this.m_Shockwave.setScale(0);275          this.m_Shockwave.create();276          this.m_Shockwave.runAction(cc.ScaleTo.create(0.2, this.m_ShockwaveScale));277          this.m_FlyDownSpeed = 0;278          this.m_ShockwaveTimeElapsed = 0;279        }280      }281    }282    // Health Regeneration283    if(this.m_Health < this.m_HealthFull) {284      this.m_HealthRegenerationTimeElapsed += deltaTime;285      if(this.m_HealthRegenerationTimeElapsed >= this.m_HealthRegenerationTime) {286        this.m_HealthRegenerationTimeElapsed = 0287        this.m_Health += 1;288      }289    }290    // Shockwave291    this.m_ShockwaveTimeElapsed += deltaTime;292    if(this.m_ShockwaveTimeElapsed >= 0.2 && this.m_Shockwave.isVisible()) {293      this.m_Shockwave.destroy();294    }295    // Fire Time296    if(this.m_IsShouldFire) {297      this.m_FireTimeElapsed += deltaTime;298      if(this.m_FireTimeElapsed >= this.m_FireTime) {299        this.m_FireTimeElapsed = 0;300        this.fire();301      }302    }303    if(this.m_ShootPadding > 0) {304      var vector = vectorNormalize(this.m_VectorX, this.m_VectorY, this.m_ShootPaddingSpeed * deltaTime);305      this.setCenterPosition(this.getCenterX() + vector[0], this.getCenterY() + vector[1]);306      this.m_ShootPadding -= this.m_ShootPaddingSpeed * deltaTime;307    } else {308      this.move(deltaTime);309    }310  },311  draw: function() {312    this._super();313    if(this.m_JetPackPower < this.m_JetPackPowerFull) {314        var x1;315        var x2;316        var y1;317        var y2;318        var rectangleVerticles1 = [];319        var rectangleVerticles2 = [];320        x1 = (this.getWidth() - this.m_BarWidth) / 2;321        x2 = this.getWidth() - x1 + 1 * 2;322        y1 = -5;323        y2 = y1 - this.m_BarHeight;324        if(this.m_Health < this.m_HealthFull) {325          y1 -= 6;326          y2 -= 6;327        }328        rectangleVerticles1[0] = cc.p(x1, y1);329        rectangleVerticles1[1] = cc.p(x2, y1);330        rectangleVerticles1[2] = cc.p(x2, y2);331        rectangleVerticles1[3] = cc.p(x1, y2);332        x1 = x1 + 1;333        x2 = x1 + (((x2 - x1) - 1) * (this.m_JetPackPower) / this.m_JetPackPowerFull);334        y1 = y1 - 1;335        y2 = y1 - this.m_BarHeight + 1 * 2;336        if(this.getScaleX() < 0)337        {338          var padding = this.m_BarWidth - this.m_BarWidth * (this.m_JetPackPower / this.m_JetPackPowerFull);339          x1 += padding;340          x2 += padding;341        }342        rectangleVerticles2[0] = cc.p(x1, y1);343        rectangleVerticles2[1] = cc.p(x2, y1);344        rectangleVerticles2[2] = cc.p(x2, y2);345        rectangleVerticles2[3] = cc.p(x1, y2);346        cc.drawingUtil.drawSolidPoly(rectangleVerticles1, 4, new cc.Color4F(0, 0, 0, 1));347        cc.drawingUtil.drawSolidPoly(rectangleVerticles2, 4, new cc.Color4F(0/ 255, 200 / 255, 255 / 255, 1));348    }349  },350  onKeyUp: function(e) {351    switch(e) {352      case cc.KEY.up:353      case cc.KEY.w:354        this.m_CommandMove[0] = false;355      break;356      case cc.KEY.down:357      case cc.KEY.s:358        this.m_CommandMove[1] = false;359      break;360      case cc.KEY.left:361      case cc.KEY.a:362        this.m_CommandMove[2] = false;363      break;364      case cc.KEY.right:365      case cc.KEY.d:366        this.m_CommandMove[3] = false;367      break;368      case cc.KEY.space:369        this.m_CommandMove[4] = false;370        this.endFly();371      break;372    }373    if(Connection.isEnabled() && this.m_BroadcastTransfer) {374      Connection.send("update", {375        id: 11,376        session: Connection._sessionId,377        e: e378      });379    }380  },381  onKeyDown: function(e) {382    switch(e) {383      case cc.KEY.up:384      case cc.KEY.w:385        this.m_CommandMove[0] = true;386      break;387      case cc.KEY.down:388      case cc.KEY.s:389        this.m_CommandMove[1] = true;390      break;391      case cc.KEY.left:392      case cc.KEY.a:393        this.m_CommandMove[2] = true;394      break;395      case cc.KEY.right:396      case cc.KEY.d:397        this.m_CommandMove[3] = true;398      break;399      case cc.KEY.space:400        if(this.m_CommandMove[4]) return;401        this.m_CommandMove[4] = true;402        if(new Date().getTime() - this.m_SpacebarLastPushTime < 300) {403            this.damage();404        } else {405          this.startFly();406        }407        this.m_SpacebarLastPushTime = new Date().getTime();408      break;409    }410    if(Connection.isEnabled() && this.m_BroadcastTransfer) {411      Connection.send("update", {412        id: 10,413        session: Connection._sessionId,414        e: e415      });416    }417  },418  onMouseDown: function(e) {419    this.m_IsShouldFire = true;420    if(Connection.isEnabled() && this.m_BroadcastTransfer) {421      Connection.send("update", {422        id: 13,423        session: Connection._sessionId,424        e: e425      });426    }427  },428  onMouseUp: function(e) {429    this.m_IsShouldFire = false;430    if(Connection.isEnabled() && this.m_BroadcastTransfer) {431      Connection.send("update", {432        id: 14,433        session: Connection._sessionId,434        e: e435      });436    }437  },438  onMouseMoved: function(e) {439    if(this.m_BroadcastTransfer) {440      var location = this.getParent().convertToNodeSpace(cc.p(e._point.x, e._point.y));441    } else {442      var location = cc.p(e.location_custom.x, e.location_custom.y);443    }444    this.setFireCoordinates((location.x - CAMERA_CENTER_X), (location.y - CAMERA_CENTER_Y));445    this.m_MouseX = e._point.x + this.getCenterX() - CAMERA_CENTER_X;446    this.m_MouseY = e._point.y + this.getCenterY() - CAMERA_CENTER_Y;447    if(this.m_BroadcastTransfer) {448      e.location_custom = cc.p(location.x, location.y);449    }450    if(Connection.isEnabled() && this.m_BroadcastTransfer) {451      Connection.send("update", {452        id: 15,453        session: Connection._sessionId,454        e: e455      });456    }457  },458  onMouseDragged: function(e) {459    if(this.m_BroadcastTransfer) {460      var location = this.getParent().convertToNodeSpace(cc.p(e._point.x, e._point.y));461    } else {462      var location = cc.p(e.location_custom.x, e.location_custom.y);463    }464    this.setFireCoordinates((location.x - CAMERA_CENTER_X), (location.y - CAMERA_CENTER_Y));465    this.m_MouseX = e._point.x + this.getCenterX() - CAMERA_CENTER_X;466    this.m_MouseY = e._point.y + this.getCenterY() - CAMERA_CENTER_Y;467    if(this.m_BroadcastTransfer) {468      e.location_custom = cc.p(location.x, location.y);469    }470    if(Connection.isEnabled() && this.m_BroadcastTransfer) {471      Connection.send("update", {472        id: 16,473        session: Connection._sessionId,474        e: e475      });476    }477  },478  fire: function(data) {479    if(Connection.isEnabled() && this.m_BroadcastTransfer) {480      Connection.send("update", {481        id: 17,482        session: Connection._sessionId483      });484    }485    if(!this.m_BroadcastTransfer && !data) {486      return;487    }488    if(this.m_FireCount == 1) {489      var x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());490      var y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());491      this.getParent().m_Bullets.create();492      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);493      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);494      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());495      this.getParent().m_Bullets.last().by = "personage";496      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;497      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;498      this.getParent().m_Bullets.last()._sessionId = this._sessionId;499    } else if(this.m_FireCount == 2) {500      var x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());501      var y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());502      this.getParent().m_Bullets.create();503      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);504      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);505      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());506      this.getParent().m_Bullets.last().setCoordinatesPadding(10, 10);507      this.getParent().m_Bullets.last().by = "personage";508      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;509      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;510      this.getParent().m_Bullets.last()._sessionId = this._sessionId;511      x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());512      y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());513      this.getParent().m_Bullets.create();514      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);515      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);516      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());517      this.getParent().m_Bullets.last().setCoordinatesPadding(-10, -10);518      this.getParent().m_Bullets.last().by = "personage";519      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;520      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;521      this.getParent().m_Bullets.last()._sessionId = this._sessionId;522    } else if(this.m_FireCount == 3) {523      var x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());524      var y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());525      this.getParent().m_Bullets.create();526      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);527      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);528      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());529      this.getParent().m_Bullets.last().setCoordinatesPadding(10, 10);530      this.getParent().m_Bullets.last().by = "personage";531      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;532      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;533      this.getParent().m_Bullets.last()._sessionId = this._sessionId;534      x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());535      y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());536      this.getParent().m_Bullets.create();537      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);538      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);539      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());540      this.getParent().m_Bullets.last().setCoordinatesPadding(-10, -10);541      this.getParent().m_Bullets.last().by = "personage";542      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;543      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;544      this.getParent().m_Bullets.last()._sessionId = this._sessionId;545      x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());546      y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());547      this.getParent().m_Bullets.create();548      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);549      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);550      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());551      this.getParent().m_Bullets.last().by = "personage";552      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;553      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;554      this.getParent().m_Bullets.last()._sessionId = this._sessionId;555    } else if(this.m_FireCount == 4) {556      var x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());557      var y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());558      this.getParent().m_Bullets.create();559      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);560      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);561      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());562      this.getParent().m_Bullets.last().setCoordinatesPadding(10, 10);563      this.getParent().m_Bullets.last().by = "personage";564      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;565      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;566      this.getParent().m_Bullets.last()._sessionId = this._sessionId;567      x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());568      y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());569      this.getParent().m_Bullets.create();570      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);571      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);572      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());573      this.getParent().m_Bullets.last().setCoordinatesPadding(-10, -10);574      this.getParent().m_Bullets.last().by = "personage";575      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;576      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;577      this.getParent().m_Bullets.last()._sessionId = this._sessionId;578      x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());579      y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());580      this.getParent().m_Bullets.create();581      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);582      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);583      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());584      this.getParent().m_Bullets.last().setCoordinatesPadding(30, 30);585      this.getParent().m_Bullets.last().by = "personage";586      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;587      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;588      this.getParent().m_Bullets.last()._sessionId = this._sessionId;589      x = this.m_FireVectorX + (CAMERA_CENTER_X - this.getCenterX());590      y = -this.m_FireVectorY - (CAMERA_CENTER_Y - this.getCenterY());591      this.getParent().m_Bullets.create();592      this.getParent().m_Bullets.last().setCurrentFrameIndex(this.m_FireFrame);593      this.getParent().m_Bullets.last().setCoordinates(x, y, this.m_MouseX, this.m_MouseY);594      this.getParent().m_Bullets.last().setCenterPosition(this.getCenterX(), this.getCenterY());595      this.getParent().m_Bullets.last().setCoordinatesPadding(-30, -30);596      this.getParent().m_Bullets.last().by = "personage";597      this.getParent().m_Bullets.last().m_Power = this.m_FirePower;598      this.getParent().m_Bullets.last().m_Speed = this.m_FireSpeed;599      this.getParent().m_Bullets.last()._sessionId = this._sessionId;600    }601    cc.AudioEngine.getInstance().playEffect(s_PersonageShoot[this.m_FireFrame]);602  },603  onCollide: function(object, description) {604    switch(description) {605      case "pickup":606      break;607      case "enemy":608        this._super();609        this.m_Health -= 0.5;610      break;611      case "bullet":612        this._super();613        this.m_VectorX = object.m_VectorX;...b-combo.js
Source:b-combo.js  
...3	$$( ".b-combo__input-text" ).addEvents({4		5	//focus на поле ввода6	focus: function (){7			this.getParent('.b-combo__input').addClass('b-combo__input_current');8            9            // ïðîâåðêà íàëè÷èÿ òðåáóåìûõ ýëåìåíòîâ íà ñòðàíèöå10			if (!this.getNext('.b-combo__label')) return;11            12            this.getNext('.b-combo__label').set('text',this.get('value'));13			//this.getParent('.b-combo__input').getChildren('.b-combo__input-text').set('value','')14			15			//длина блока .b-combo__input16			var input_width = this.getParent('.b-combo__input').getProperty('class').match(/b-combo__input_width_(\d+)/gi);17					input_width=input_width[0].match(/\d+/gi);18					19			//макÑималÑÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° блока .b-combo__input20			var input_max_width = this.getParent('.b-combo__input').getProperty('class').match(/b-combo__input_max-width_(\d+)/gi);21					input_max_width = input_max_width[0].match(/\d+/gi);22			23			if((parseInt(this.getNext('.b-combo__label').getStyle('width')))>input_width){24				if((parseInt(this.getNext('.b-combo__label').getStyle('width')))>input_max_width){25						this.getParent('.b-combo__input').setStyle('width',input_max_width+"px");26					}27					else{28						this.getParent('.b-combo__input').setStyle('width',parseInt(this.getNext('.b-combo__label').getStyle('width'))+5);29					}30				}31		32	},33	34	//Ð½Ð°Ð±Ð¾Ñ ÑекÑÑа Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ35	keyup: function() {36            // ïðîâåðêà íàëè÷èÿ òðåáóåìûõ ýëåìåíòîâ íà ñòðàíèöå37            if (!this.getNext('.b-combo__label')) return;38            39			this.getNext('.b-combo__label').set('text',this.get('value'));40			41			//длина блока .b-combo__input42			var input_width = this.getParent('.b-combo__input').getProperty('class').match(/b-combo__input_width_(\d+)/gi);43					input_width = input_width[0].match(/\d+/gi);44					45			//макÑималÑÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° блока .b-combo__input46			var input_max_width = this.getParent('.b-combo__input').getProperty('class').match(/b-combo__input_max-width_(\d+)/gi);47					input_max_width = input_max_width[0].match(/\d+/gi);48					49					50			if(51				// пÑовеÑÑем Ð´Ð»Ð¸Ð½Ñ label, и еÑли он ÑиÑе блока b-combo__input Ñо ÑвелиÑиваем его52				input_width<=(parseInt(this.getNext('.b-combo__label').getStyle('width')))&&((this.getNext('.b-combo__label').getStyle('width')).toInt())<input_max_width53				){54				this.getParent('.b-combo__input').setStyle('width',this.getNext('.b-combo__label').getStyle('width').toInt());55			}56			//инаÑе, еÑли label коÑоÑе блока .b-combo__input ÑÑÑанавливаем ÐµÐ¼Ñ ÐµÐ³Ð¾ наÑалÑнÑÑ ÑиÑинÑ57			else if((((this.getNext('.b-combo__label').getStyle('width')).toInt())<=input_width)){58				this.getParent('.b-combo__input').setStyle('width',input_width);59				}60		 },61	62	63		//поÑеÑÑ ÑокÑÑа поÑле набоÑа в поле ввода64		blur: function() {65			this.getParent('.b-combo__input').removeClass('b-combo__input_current');66            // ïðîâåðêà íàëè÷èÿ òðåáóåìûõ ýëåìåíòîâ íà ñòðàíèöå67            if (!this.getParent('.b-combo__input').getChildren('.b-combo__input-text') || !this.getNext('.b-combo__label')) return;68            69			this.getParent('.b-combo__input').getChildren('.b-combo__input-text').set('value',this.getNext('.b-combo__label').get('text'));70			this.getNext('.b-combo__label').set('text',this.get('value'));71				72			var input_width = this.getParent('.b-combo__input').getProperty('class').match(/b-combo__input_width_(\d+)/gi);73					input_width=input_width[0].match(/\d+/gi);74			75			if((parseInt(this.getNext('.b-combo__label').getStyle('width')))<input_width){76				this.getParent('.b-combo__input').setStyle('width',input_width+'px');77				}78		}79	})80	81var spec //Ñоздаем пеÑеменнÑÑ, в коÑоÑой бÑдем Ñ
ÑаниÑÑ ÑекÑÑ Ð²ÑбÑаннÑй пÑи клике по левой колонке. ÑÑебÑеÑÑÑ Ð´Ð»Ñ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² инпÑÑе ÑолÑко левого знаÑÐµÐ½Ð¸Ñ (Ñ Ð»ÐµÐ²Ð¾Ð¹ колонки) пÑи изменении  пÑавого (из пÑавой колонки).82	// ÑÐ¾Ð³Ð³Ð»ÐµÑ Ð²ÑпадаÑÑего окна и овеÑлеÑ83	$$('.b-combo__arrow', '.b-combo__arrow-date', '.b-combo__arrow-user').addEvent('click',function(){84	// пÑовеÑка вÑÑоÑÑ Ð²ÑпадаÑÑего окна (пеÑÐ²Ð°Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°) и еÑли оно болÑÑе 300пÑ
, Ñо добавлÑем к Ð½ÐµÐ¼Ñ ÑкÑолл85		if(parseInt(this.getParent('.b-combo__input').getNext('.b-shadow').getElement('.b-combo__body').getStyle('height'))>300){this.getParent('.b-combo__input').getNext('.b-shadow').getElement('.b-combo__body').addClass('b-combo__body_overflow-x_yes');}86		87		if(this.getParent('.b-combo__input').getNext('.b-shadow').hasClass('b-shadow_hide')){88			this.getParent('.b-combo__input').addClass('b-combo__input_current');89			this.getParent('.b-combo__input').getElement('.b-combo__input-text').addClass('b-combo__input-text_color_a7').focus();90			this.getParent('.b-combo__input').getNext('.b-shadow').removeClass('b-shadow_hide');91			92			//добавлÑем овеÑлей93			var overlay=document.createElement('div');94			overlay.className='b-combo__overlay';95			this.getParent('.b-combo').grab(overlay, 'top');96			$$('.b-combo__overlay').addEvent('click',function(){97				//подÑвеÑка ÑÑиÑÑа98				if(this.getParent('.b-combo').getChildren('.b-combo__input-text_color_a7')){99						this.getParent('.b-combo').getElement('.b-combo__input-text').removeClass('b-combo__input-text_color_a7');100					}101					102				//ÑоÑ
Ñанение даннÑÑ
 вÑбÑанÑÑ
 пÑнкÑов в окоÑке, еÑли они Ð²Ð²ÐµÐ´ÐµÐ½Ñ Ð² инпÑÑ103				if((this.getParent('.b-combo').getElement('.b-combo__item_active')&&(this.getParent('.b-combo').getElement('.b-combo__label').get('text')==''))){104					this.getParent('.b-combo').getElement('.b-combo__item_active').removeClass('b-combo__item_active');105					this.getParent('.b-combo').getElement('.b-layout__right').addClass('b-layout__right_hide');106					}107				this.getParent('.b-combo').getElement('.b-shadow').addClass('b-shadow_hide');108				this.dispose();109				});110				111				112				113			// динамика внÑÑÑи вÑпадаÑÑего окоÑка, клик по левой колонке114			$$('.b-layout__left .b-combo__item-inner').addEvent('click',function(){115				116				if(this.getParent('.b-combo').getElement('.b-combo__input-text').hasClass('b-combo__input-text_color_a7')){117					this.getParent('.b-combo').getElement('.b-combo__input-text').removeClass('b-combo__input-text_color_a7');118				}119				//менÑем знаÑение в поле ввода пÑи клике по пÑнкÑам менÑ120				this.getParent('.b-combo').getElement('.b-combo__input-text').setProperty('value', this.get('text')+' â');121				this.getParent('.b-combo').getElement('.b-combo__label').set('text', this.get('text')+' â');122				123				//заноÑим ÑекÑÑ Ð² пеÑеменнÑÑ124				spec = this.getParent('.b-combo').getElement('.b-combo__label').get('text');125				// менÑем Ð´Ð»Ð¸Ð½Ñ Ð¿Ð¾Ð»Ñ Ð²Ð²Ð¾Ð´Ð°126				var input_width = this.getParent('.b-combo').getElement('.b-combo__input').getProperty('class').match(/b-combo__input_width_(\d+)/gi);127						input_width=input_width[0].match(/\d+/gi);128				//макÑималÑÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° блока .b-combo__input129				var input_max_width = this.getParent('.b-combo').getElement('.b-combo__input').getProperty('class').match(/b-combo__input_max-width_(\d+)/gi);130						input_max_width = input_max_width[0].match(/\d+/gi);131						132						133				//ÑвелиÑиваем поле134				if((parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width')))>input_width){135					// еÑли длина болÑÑе, Ñем макÑималÑно допÑÑÑÐ¸Ð¼Ð°Ñ Ð´Ð»Ñ ÑÑого блока, Ñо ÑÑавим макÑималÑно допÑÑÑимÑÑ136					if(parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width'))>input_max_width){137						this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',input_max_width +'px');138						}139					else{140						this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width'))+5);141					}142				}143				else{144						this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',input_width+'px');145					}146				147				148				// Ñама динамика149				this.getParent('.b-combo__list').getChildren('.b-combo__item').removeClass('b-combo__item_active');150				this.getParent('.b-combo__item').addClass('b-combo__item_active');151				this.getParent('.b-layout__table').getElement('.b-layout__right').removeClass('b-layout__right_hide');152					// пÑовеÑка вÑÑоÑÑ Ð²ÑпадаÑÑего окна (вÑоÑÐ°Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°) и еÑли оно болÑÑе 300пÑ
, Ñо добавлÑем к Ð½ÐµÐ¼Ñ ÑкÑолл153					if(parseInt(this.getParent('.b-shadow').getElement('.b-combo__body').getStyle('height'))>300){this.getParent('.b-shadow').getElement('.b-combo__body').addClass('b-combo__body_overflow-x_yes');}154				155				})156				157				//обÑабаÑÑваем клик по ÑлеменÑам пÑавой колонки158				$$('.b-layout__right .b-combo__item-inner').addEvent('click',function(){159					160					//менÑем пÑавое знаÑÐµÐ½Ð¸Ñ Ð² инпÑÑе и label 161					this.getParent('.b-combo').getElement('.b-combo__input-text').setProperty('value',spec+' '+this.get('text'))162					this.getParent('.b-combo').getElement('.b-combo__label').setProperty('text',spec+' '+this.get('text'))163					164					// менÑем Ð´Ð»Ð¸Ð½Ñ Ð¿Ð¾Ð»Ñ Ð²Ð²Ð¾Ð´Ð°165					var input_width = this.getParent('.b-combo').getElement('.b-combo__input').getProperty('class').match(/b-combo__input_width_(\d+)/gi);166							input_width=input_width[0].match(/\d+/gi);167					//макÑималÑÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° блока .b-combo__input168					var input_max_width = this.getParent('.b-combo').getElement('.b-combo__input').getProperty('class').match(/b-combo__input_max-width_(\d+)/gi);169							input_max_width = input_max_width[0].match(/\d+/gi);170							171					//ÑвелиÑиваем поле172					if((parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width')))>input_width){173						// еÑли длина болÑÑе, Ñем макÑималÑно допÑÑÑÐ¸Ð¼Ð°Ñ Ð´Ð»Ñ ÑÑого блока, Ñо ÑÑавим макÑималÑно допÑÑÑимÑÑ174						if(parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width'))>input_max_width){175							this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',input_max_width +'px');176							}177						else{178							this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width'))+5);179						}180					}181					else{182							this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',input_width+'px');183						}184					//ÑвоÑаÑиваем окоÑко185					if(this.getParent('.b-combo').getElement('.b-combo__overlay')) {this.getParent('.b-combo').getElement('.b-combo__overlay').dispose();}186					this.getParent('.b-combo').getElement('.b-combo__input-text').removeClass('b-combo__input-text_color_a7');187					this.getParent('.b-combo').getElement('.b-shadow').addClass('b-shadow_hide');188					});189					190					191				//обÑабаÑÑваем клик по ÑлеменÑам единÑÑвенной колонки192				$$('.b-layout__one .b-combo__item-inner').addEvent('click',function(){193					194					//менÑем  знаÑÐµÐ½Ð¸Ñ Ð² инпÑÑе и label 195					this.getParent('.b-combo').getElement('.b-combo__input-text').setProperty('value',this.get('text'))196					this.getParent('.b-combo').getElement('.b-combo__label').setProperty('text',this.get('text'))197					198					// менÑем Ð´Ð»Ð¸Ð½Ñ Ð¿Ð¾Ð»Ñ Ð²Ð²Ð¾Ð´Ð°199					var input_width = this.getParent('.b-combo').getElement('.b-combo__input').getProperty('class').match(/b-combo__input_width_(\d+)/gi);200							input_width=input_width[0].match(/\d+/gi);201					//макÑималÑÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° блока .b-combo__input202					var input_max_width = this.getParent('.b-combo').getElement('.b-combo__input').getProperty('class').match(/b-combo__input_max-width_(\d+)/gi);203							input_max_width = input_max_width[0].match(/\d+/gi);204							205					//ÑвелиÑиваем поле206					if((parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width')))>input_width){207						// еÑли длина болÑÑе, Ñем макÑималÑно допÑÑÑÐ¸Ð¼Ð°Ñ Ð´Ð»Ñ ÑÑого блока, Ñо ÑÑавим макÑималÑно допÑÑÑимÑÑ208						if(parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width'))>input_max_width){209							this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',input_max_width +'px');210							}211						else{212							this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width'))+5);213						}214					}215					else{216							this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',input_width+'px');217						}218					//ÑвоÑаÑиваем окоÑко219					if(this.getParent('.b-combo').getElement('.b-combo__overlay')) {this.getParent('.b-combo').getElement('.b-combo__overlay').dispose();}220					this.getParent('.b-combo').getElement('.b-combo__input-text').removeClass('b-combo__input-text_color_a7');221					this.getParent('.b-combo').getElement('.b-shadow').addClass('b-shadow_hide');222					});223				224		}225		else{226			this.getParent('.b-combo__input').getNext('.b-shadow').addClass('b-shadow_hide');227				if(this.getParent('.b-combo').getElement('.b-combo__overlay')) {this.getParent('.b-combo').getElement('.b-combo__overlay').dispose();}228			229				if((this.getParent('.b-combo').getElement('.b-combo__item_active')&&(this.getParent('.b-combo').getElement('.b-combo__label').get('text')==''))){230					this.getParent('.b-combo').getElement('.b-combo__item_active').removeClass('b-combo__item_active');231					this.getParent('.b-combo').getElement('.b-layout__right').addClass('b-layout__right_hide');232					}233			}234	})235	$$( ".b-combo__user" ).addEvents({236		237	//focus на поле ввода238	click: function (){239			this.getParent('.b-combo').getElement('.b-combo__label').set('html',this.get('html'));240			this.getParent('.b-combo').getElement('.b-combo__label').addClass('b-combo__label_show');241			this.getParent('.b-combo').getElement('.b-shadow').addClass('b-shadow_hide');242			this.getParent('.b-combo').getElement('.b-combo__overlay').dispose();243			244			//длина блока .b-combo__input245			var input_width = this.getParent('.b-combo').getElement('.b-combo__input').getProperty('class').match(/b-combo__input_width_(\d+)/gi);246					input_width=input_width[0].match(/\d+/gi);247					248			//макÑималÑÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° блока .b-combo__input249			var input_max_width = this.getParent('.b-combo').getElement('.b-combo__input').getProperty('class').match(/b-combo__input_max-width_(\d+)/gi);250					input_max_width = input_max_width[0].match(/\d+/gi);251			252			if((parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width')))>input_width){253				if((parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width')))>input_max_width){254						this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',input_max_width+"px");255					}256					else{257						this.getParent('.b-combo').getElement('.b-combo__input').setStyle('width',parseInt(this.getParent('.b-combo').getElement('.b-combo__label').getStyle('width'))+5);258					}259				}260				261			return false;262		263		}264	265	266	})267	...script.js
Source:script.js  
...10	];11	12	custom_module_id.each(function(el,j){13		if(el) {14			el.getParent().setStyle('display','none');15		}16	});17	18	if(document.id('jform_params_auto_module_id').value === '0') {19		document.id('jform_params_custom_module_id').getParent().setStyle('display','');20	}21	22	document.id('jform_params_auto_module_id').addEvent("change", function(){23		custom_module_id.each(function(el,j){24			el.getParent().setStyle('display','none');25		});26		if(document.id('jform_params_auto_module_id').value === '0') {27			document.id('jform_params_custom_module_id').getParent().setStyle('display','');28		}29	});30	31	document.id('jform_params_auto_module_id').addEvent("blur", function(){32		custom_module_id.each(function(el,j){33			el.getParent().setStyle('display','none');34		});	35		if(document.id('jform_params_auto_module_id').value === '0') {36			document.id('jform_params_custom_module_id').getParent().setStyle('display','');37		}38	});39	40	// Toggle data_source fields41	var data_sources = [42	  document.id('jform_params_catfilter'), 43	  document.id('jformparamscategory_id'), 44	  document.id('jform_params_getChildren'), 45		document.id('jform[params][add_k2_items]_name').getParent(), 46	  document.id('itemsList'),47		document.id('jform_params_k2_tags'),48		document.id('jform_params_exclude_k2_items'),49		document.id('jform_params_FeaturedItems'),50		document.id('jform_params_popularityRange'),51		document.id('jform_params_videosOnly'),52		document.id('jform_params_items_order')53	];54	55	data_sources.each(function(el,j){56		if(el) {57			el.getParent().setStyle('display','none');58		}59	})6061	if(document.id('jform_params_data_source').value === 'k2_categories') {62	  document.id('jform_params_catfilter').getParent().setStyle('display','');63		document.id('jformparamscategory_id').getParent().setStyle('display','');64		document.id('jform_params_getChildren').getParent().setStyle('display','');65		document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');66		document.id('jform_params_FeaturedItems').getParent().setStyle('display','');67		document.id('jform_params_popularityRange').getParent().setStyle('display','');68		document.id('jform_params_videosOnly').getParent().setStyle('display','');69		document.id('jform_params_items_order').getParent().setStyle('display','');70	}71	72	if(document.id('jform_params_data_source').value === 'k2_articles') {73		document.id('jform[params][add_k2_items]_name').getParent().getParent().setStyle('display','');74		document.id('itemsList').getParent().setStyle('display','');75		76	}77	78	if(document.id('jform_params_data_source').value === 'all_k2_articles') {79		document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');80		document.id('jform_params_FeaturedItems').getParent().setStyle('display','');81		document.id('jform_params_popularityRange').getParent().setStyle('display','');82		document.id('jform_params_videosOnly').getParent().setStyle('display','');83		document.id('jform_params_items_order').getParent().setStyle('display','');84	}85	86	if(document.id('jform_params_data_source').value === 'k2_tags') {87		document.id('jform_params_k2_tags').getParent().setStyle('display','');88		document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');89		document.id('jform_params_FeaturedItems').getParent().setStyle('display','');90		document.id('jform_params_popularityRange').getParent().setStyle('display','');91		document.id('jform_params_videosOnly').getParent().setStyle('display','');92		document.id('jform_params_items_order').getParent().setStyle('display','');93	}94	95	document.id('jform_params_data_source').addEvent("change", function(){96		data_sources.each(function(el,j){97			el.getParent().setStyle('display','none');98		});99100		if(document.id('jform_params_data_source').value === 'k2_categories') {101		  document.id('jform_params_catfilter').getParent().setStyle('display','');102			document.id('jformparamscategory_id').getParent().setStyle('display','');103		  document.id('jform_params_getChildren').getParent().setStyle('display','');104		  document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');105			document.id('jform_params_FeaturedItems').getParent().setStyle('display','');106		  document.id('jform_params_popularityRange').getParent().setStyle('display','');107		  document.id('jform_params_videosOnly').getParent().setStyle('display','');108			document.id('jform_params_items_order').getParent().setStyle('display','');109	  }110	111	  if(document.id('jform_params_data_source').value === 'k2_articles') {112		  document.id('jform[params][add_k2_items]_name').getParent().getParent().setStyle('display','');113		  document.id('itemsList').getParent().setStyle('display','');114	  }115	116	  if(document.id('jform_params_data_source').value === 'all_k2_articles') {117		  document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');118			document.id('jform_params_FeaturedItems').getParent().setStyle('display','');119		  document.id('jform_params_popularityRange').getParent().setStyle('display','');120		  document.id('jform_params_videosOnly').getParent().setStyle('display','');121			document.id('jform_params_items_order').getParent().setStyle('display','');122	  }123	124	  if(document.id('jform_params_data_source').value === 'k2_tags') {125		  document.id('jform_params_k2_tags').getParent().setStyle('display','');126		  document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');127			document.id('jform_params_FeaturedItems').getParent().setStyle('display','');128		  document.id('jform_params_popularityRange').getParent().setStyle('display','');129		  document.id('jform_params_videosOnly').getParent().setStyle('display','');130			document.id('jform_params_items_order').getParent().setStyle('display','');131	  }132	133	});134	135	document.id('jform_params_data_source').addEvent("blur", function(){136		data_sources.each(function(el,j){137			el.getParent().setStyle('display','none');138		});139		140		if(document.id('jform_params_data_source').value === 'k2_categories') {141		  document.id('jform_params_catfilter').getParent().setStyle('display','');142			document.id('jformparamscategory_id').getParent().setStyle('display','');143		  document.id('jform_params_getChildren').getParent().setStyle('display','');144		  document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');145			document.id('jform_params_FeaturedItems').getParent().setStyle('display','');146		  document.id('jform_params_popularityRange').getParent().setStyle('display','');147		  document.id('jform_params_videosOnly').getParent().setStyle('display','');148			document.id('jform_params_items_order').getParent().setStyle('display','');149	  }150	151	  if(document.id('jform_params_data_source').value === 'k2_articles') {152		  document.id('jform[params][add_k2_items]_name').getParent().getParent().setStyle('display','');153		  document.id('itemsList').getParent().setStyle('display','');154	  }155	156	  if(document.id('jform_params_data_source').value === 'all_k2_articles') {157		  document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');158			document.id('jform_params_FeaturedItems').getParent().setStyle('display','');159		  document.id('jform_params_popularityRange').getParent().setStyle('display','');160		  document.id('jform_params_videosOnly').getParent().setStyle('display','');161			document.id('jform_params_items_order').getParent().setStyle('display','');162	  }163	164	  if(document.id('jform_params_data_source').value === 'k2_tags') {165		  document.id('jform_params_k2_tags').getParent().setStyle('display','');166		  document.id('jform_params_exclude_k2_items').getParent().setStyle('display','');167			document.id('jform_params_FeaturedItems').getParent().setStyle('display','');168		  document.id('jform_params_popularityRange').getParent().setStyle('display','');169		  document.id('jform_params_videosOnly').getParent().setStyle('display','');170			document.id('jform_params_items_order').getParent().setStyle('display','');171	  }172		173	});174	
...main.js
Source:main.js  
...14	var modblock = $$('div[id^="module-sliders"]')[0];15	var baseW = modblock.getSize().x;16	var minW = 640;17	18	modblock.getParent().setStyle('position','relative');19	20	if(baseW < minW) {21		modblock.setStyles({22			"position": "absolute",23			"background": "white",24			"width": baseW + "px",25			"padding": "5px",26			"border-radius": "3px",27			"-webkit-box-shadow": "-8px 0 15px #aaa",28			"-moz-box-shadow": "-8px 0 15px #aaa",29			"box-shadow": "-8px 0 15px #aaa",30			"-webkit-box-sizing": "border-box",31			"-moz-box-sizing": "border-box",32			"-ms-box-sizing": "border-box",33			"box-sizing": "border-box"34		});35		36		var WidthFX = new Fx.Morph(modblock, {duration: 150});37		var mouseOver = false;38	39		modblock.addEvent('mouseenter', function() {40			mouseOver = true;41			WidthFX.start({42				'width': minW,43				'margin-left': (-1 * (minW - baseW))44			});45		});46		modblock.addEvent('mouseleave', function() {47			mouseOver = false;48			(function() {49				if(!mouseOver) {50					WidthFX.start({51						'width': baseW,52						'margin-left': 053					});54				}55			}).delay(750);56		});57	}58	59	// fix the Joomla! behaviour60	$$('.panel h3.title').each(function(panel) {61		panel.addEvent('click', function(){62			if(panel.hasClass('pane-toggler')) {63				(function(){ 64					panel.getParent().getElement('.pane-slider').setStyle('height', 'auto'); 65				}).delay(750);66				(function() {67					var myFx = new Fx.Scroll(window, { duration: 150 }).toElement(panel);68				}).delay(250);69			}70		});71	});72	//73	//74	//75	if(document.id('jform_params_links_position').value == 'bottom') document.id('jform_params_links_width').getParent().setStyle('display','none');76	else document.id('jform_params_links_width').getParent().setStyle('display','');	77	document.id('jform_params_links_position').addEvent('change', function(){78		if(document.id('jform_params_links_position').value == 'bottom') document.id('jform_params_links_width').getParent().setStyle('display','none');79		else document.id('jform_params_links_width').getParent().setStyle('display','');	80	});81	document.id('jform_params_links_position').addEvent('blur', function(){82		if(document.id('jform_params_links_position').value == 'bottom') document.id('jform_params_links_width').getParent().setStyle('display','none');83		else document.id('jform_params_links_width').getParent().setStyle('display','');84	});85	86	$$('.input-pixels').each(function(el){el.getParent().innerHTML = el.getParent().innerHTML + "<span class=\"unit\">px</span>"});87	$$('.input-percents').each(function(el){el.getParent().innerHTML = el.getParent().innerHTML + "<span class=\"unit\">%</span>"});88	$$('.input-minutes').each(function(el){el.getParent().innerHTML = el.getParent().innerHTML + "<span class=\"unit\">minutes</span>"});89	$$('.input-ms').each(function(el){el.getParent().innerHTML = el.getParent().innerHTML + "<span class=\"unit\">ms</span>"});90	$$('.input-times').each(function(el){ el.getParent().innerHTML = el.getParent().innerHTML + "<span class=\"unit times\">×</span>"});91	92	$$('.text-limit').each(function(el){93		var name = el.get('id') + '_type';94		var parent = el.getParent();95		el.inject(document.id(name),'before');		96        parent.dispose();97	});98	$$('.float').each(function(el){99		var destination = el.getParent().getPrevious().getElement('select');100		var parent = el.getParent();101        el.inject(destination, 'after');102		parent.dispose();	103	});104	$$('.enabler').each(function(el){105		var destination = el.getParent().getPrevious().getElement('select');106		var parent = el.getParent();107		el.inject(destination, 'after');108		parent.dispose();	109	});110	$$('.gk_switch').each(function(el){111		el.setStyle('display','none');112		var style = (el.value == 1) ? 'on' : 'off';113		var switcher = new Element('div',{'class' : 'switcher-'+style});114		switcher.inject(el, 'after');115		switcher.addEvent("click", function(){116			if(el.value == 1){117				switcher.setProperty('class','switcher-off');118				el.value = 0;119			} else {120				switcher.setProperty('class','switcher-on');121				el.value = 1;122			}123		});124	});125	126	var link = new Element('a', { 'class' : 'gkHelpLink', 'href' : 'http://www.gavick.com/news-show-pro-gk5.html', 'target' : '_blank' })127	link.inject($$('div.panel')[$$('div.panel').length-1].getElement('h3'), 'bottom');128	link.addEvent('click', function(e) { e.stopPropagation(); });129	//130	new DataSources();131	new PortalModes();132	new ImageCrop();133	new ArticleLayout();134	135	// option to hide article format related fields136	var article_format = document.id('jform_params_use_own_article_format').get('value');137		138	if(article_format == 1) {139		document.id('jform_params_article_format').getParent().setStyle('display', 'block');140		$$('.article-format-hide').each(function(el, i) {141			el.getParent().setStyle('display', 'none');142		});143	} else {144		document.id('jform_params_article_format').getParent().setStyle('display', 'none');145		$$('.article-format-hide').each(function(el, i) {146			el.getParent().setStyle('display', 'block');147		});148	}149	document.id('jform_params_use_own_article_format').getNext('div').addEvent('click', function() {150		var article_format = document.id('jform_params_use_own_article_format').get('value');151		152		if(article_format == 1) {153			document.id('jform_params_article_format').getParent().setStyle('display', 'block');154			$$('.article-format-hide').each(function(el, i) {155				el.getParent().setStyle('display', 'none');156			});157		} else {158			document.id('jform_params_article_format').getParent().setStyle('display', 'none');159			$$('.article-format-hide').each(function(el, i) {160				el.getParent().setStyle('display', 'block');161			});162		}	163	});164	165	// option to hide js engine related fiels166	var used_js_engine = document.id('jform_params_engine_mode').get('value');167			168	document.id('jform_params_animation_function').getParent().setStyle('display', (used_js_engine == 'mootools') ? 'block' : 'none');169	document.id('jform_params_engine_mode').addEvents({170		'change': function() {171			var used_js_engine = document.id('jform_params_engine_mode').get('value');172			document.id('jform_params_animation_function').getParent().setStyle('display', (used_js_engine == 'mootools') ? 'block' : 'none');173		},174		'blur': function() {175			var used_js_engine = document.id('jform_params_engine_mode').get('value');176			document.id('jform_params_animation_function').getParent().setStyle('display', (used_js_engine == 'mootools') ? 'block' : 'none');177		},178		'focus': function() {179			var used_js_engine = document.id('jform_params_engine_mode').get('value');180			document.id('jform_params_animation_function').getParent().setStyle('display', (used_js_engine == 'mootools') ? 'block' : 'none');181		}182	});183	184	// AMM fix185	document.getElements('#module-sliders .panel').each(function(el, i) {186		if(el.getParent().getProperty('id') == 'module-sliders' && el.getElement('h3').getProperty('id') != 'assignment-options' && el.getElement('h3').getProperty('id') != 'permissions') {187			el.addClass('nspgk5-panel');188		} else if(el.getParent().getProperty('id') == 'module-sliders'){189			el.addClass('non-nspgk5-panel');190		}191	});...b-filter.js
Source:b-filter.js  
1window.addEvent('domready', 2function() {3	$$('.b-filter__body .b-filter__link').addEvent('click',function(){		4		$$('.b-filter__toggle').addClass('b-filter__toggle_hide');5		this.getParent('.b-filter__body').getNext('.b-filter__toggle').removeClass('b-filter__toggle_hide');6		$$('.b-filter').setStyle('z-index','0')7		this.getParent('.b-filter').setStyle('z-index','10')8		var overlay=document.createElement('div');9		overlay.className='b-filter__overlay';10		$$('.overlay-cls').grab(overlay, 'top');11		$$('.b-filter__overlay').addEvent('click',function(){12			$$('.b-filter__toggle').addClass('b-filter__toggle_hide');13			$$('.b-filter__overlay').dispose();14		if (Browser.ie8){15			$$('.b-filter').setStyle('overflow','visible');16			if(this.getParent('.b-filter') != undefined) {17    			this.getParent('.b-filter').setStyle('overflow','hidden');18    			this.getParent('.b-filter').setStyle('overflow','visible');19			}20		}		21			});22		return false;23		})24	25	26	$$('.b-filter__item .b-filter__link').addEvent('click',function(){27		if((this.getParent('.b-filter__item').getChildren('.b-filter__marker').hasClass('b-filter__marker_hide'))){28				this.getParent('.b-filter__list').getChildren('.b-filter__item').getElement('.b-filter__marker').addClass('b-filter__marker_hide').getPrevious('.b-filter__link').removeClass('b-filter__link_no').addClass('b-filter__link_dot_0f71c8');29				this.getParent('.b-filter__item').getChildren('.b-filter__marker').removeClass('b-filter__marker_hide');30				this.removeClass('b-filter__link_dot_0f71c8').addClass('b-filter__link_no');31				this.getParent('.b-filter__toggle').getPrevious('.b-filter__body').getChildren('.b-filter__link').set('text',this.get('text'));32				$$('.b-filter__toggle').addClass('b-filter__toggle_hide');33				$$('.b-filter__overlay').dispose();34		if (Browser.ie8){35			$$('.b-filter').setStyle('overflow','visible');36			if(this.getParent('.b-filter') != undefined) {37    			this.getParent('.b-filter').setStyle('overflow','hidden');38    			this.getParent('.b-filter').setStyle('overflow','visible');39			}40		}		41            this.fireEvent('selected');42			return false;43			}44		});45		46	if($('calcForm') != undefined) sbr_calc($('calcForm'));47});48function setValueInput(name, val, act) {49    if(act == undefined) act = 'update';50    $(name).set('value', val);51    if(act == 'update') sbr_calc($('calcForm'), 'recalc');52}53function checkRole(val) {54    if(val == 1) {55        $('shadow_rez_type').removeClass('b-shadow_right_0');56        57        $('block_calc_emp_text').set('html', 'Ðàáîòîäàòåëü çàïëàòèò');58        $('block_calc_frl_text').set('html', 'Âû ïîëó÷èòå');59        60        var frl_html = $('freelancer_block');61        var emp_html = $('emp_block');62        63        $('first_block').empty()64        $('first_block').grab(frl_html);65        $('second_block').empty()66        $('second_block').grab(emp_html);67        68        $('case_word').set('html', 'ÿâëÿþùèéñÿ');69        $('calc_role').set('html', ' õî÷ó çàêëþ÷èòü ñ ðàáîòîäàòåëåì');70        $('second_block_tooltip').grab($('calc_role'), 'after');71        $('link_role').set('html', 'ñ ðàáîòîäàòåëåì');72    }73    if(val == 2) {74        $('shadow_rez_type').addClass('b-shadow_right_0');75        76        $('block_calc_emp_text').set('html', 'Âû çàïëàòèòå');77        $('block_calc_frl_text').set('html', 'Èñïîëíèòåëü ïîëó÷èò');78        79        var frl_html = $('freelancer_block');80        var emp_html = $('emp_block');81        82        $('first_block').empty();83        $('first_block').grab(emp_html);84        $('second_block').empty();85        $('second_block').grab(frl_html);86        87        88        $('case_word').set('html', 'ÿâëÿþùèìñÿ');89        $('calc_role').set('html', ' õî÷ó çàêëþ÷èòü ñ ôðè-ëàíñåðîì');90        $('first_block_tooltip').grab($('calc_role'), 'after');91        $('link_role').set('html', 'ñ ôðè-ëàíñåðîì');92    }93}94function setBlockScheme(act, u) {95    if(u == undefined) u= 0;96    if($('frl_type').get('value') == 2) {97        act = 1;98    }99    if(act == 1) {100        if(u == 0) $('bank_scheme').fireEvent('click');//click();101        $('bank_scheme').getParent().removeClass('b-filter__item_padbot_10');102        $('block_scheme').getElements('li a').each(function(elm) {103            if(elm.hasClass('b-filter__link_no') == false) {104                elm.getParent().hide();105            } 106        });107    } else if(act == 2) {108        var scheme = $('scheme_type').get('value'); 109        $('bank_scheme').getParent().addClass('b-filter__item_padbot_10');110        $('block_scheme').getElements('li a').each(function(elm) {111            if(elm.hasClass('b-filter__link_no') == false) {112                elm.getParent().show();113            } 114            115            if( (scheme == 1 || scheme == 4) && elm.hasClass('b-filter__pdrd') == true) {116                elm.getParent().hide();117            }118            119            if( (scheme == 2 || scheme == 5 ) && elm.hasClass('b-filter__pskb') == true) {120                elm.getParent().hide();121            }122        });123    } else if(act == 3) {124        $('bank_scheme').fireEvent('click');125        $('bank_scheme').getParent().addClass('b-filter__item_padbot_10');126        $('block_scheme').getElements('li a').each(function(elm) {127            if(elm.hasClass('b-filter__pskb') ==  true) {128                elm.getParent().hide();129            } else {130                elm.getParent().show();131            } 132            if(elm.hasClass('b-filter__pdrd') ==  true) {133                elm.getParent().show();134            } 135        });136    } else if(act == 4) {137        $('bank_scheme').fireEvent('click');138        $('bank_scheme').getParent().addClass('b-filter__item_padbot_10');139        $('block_scheme').getElements('li a').each(function(elm) {140            if(elm.hasClass('b-filter__pskb') ==  true) {141                elm.getParent().show();142            } 143            if(elm.hasClass('b-filter__pdrd') ==  true) {144                elm.getParent().hide();145            } 146        });147    }...PounceAttack.js
Source:PounceAttack.js  
...15    constructor(parentUsername, time, angle) {16        super(parentUsername);17        this._startTime = time;18        this._angle = angle;19        if (this.getParent()) {20            this.getParent()._attackSprite = new PIXI.AnimatedSprite(PounceAttack.ATTACK_TEXTURES, true);21            this.getParent()._attackSprite.anchor.x = 0.5;22            this.getParent()._attackSprite.anchor.y = 0.8;23            this.getParent()._attackSprite.scale.x = 0.5;24            this.getParent()._attackSprite.scale.y = 0.5;25            this.getParent()._attackSprite.animationSpeed = 0.5;26            this.getParent()._attackSprite.loop = false;27            this.getParent()._attackSprite._pounce = true;28            this.getParent()._attackSprite.play();29            this.getParent()._attackSprite.onComplete = () => {30                if (!this.getParent() || !this.getParent()._attackSprite || !this.getParent()._attackSprite._pounce) {31                    return;32                }33                this.getParent()._attackSprite.destroy();34                this.getParent()._attackSprite = null;35            };36            this.getParent()._container.addChild(this.getParent()._attackSprite);37            const position = this.getParent().getPosition(time);38            const howl = PounceAttack.AUDIO_CHOICES[Math.floor(Math.random() * PounceAttack.AUDIO_CHOICES.length)];39            AudioSystem.playSound(howl, position);40        }41        if (this._parentUsername === USERNAME) {42            if (this.getParent()) {43                this.getParent()._velocity[0] = Math.cos(this._angle) * 12;44                this.getParent()._velocity[1] = Math.sin(this._angle) * 12;45                this.getParent()._packetAppendString += this.getPacket();46            }47        }48        this._hit = false;49    }50    update(time) {51        if (this.getParent()) {52            if (time - this._startTime <= 600) {53                if (this._parentUsername === USERNAME) {54                    this.getParent()._velocity[0] += Math.cos(this._angle) * Entity.ACCEL * 2;55                    this.getParent()._velocity[1] += Math.sin(this._angle) * Entity.ACCEL * 2;56                }57            }58            if (Connection.isEddie() && Connection.getEddie()) {59                const dx = this.getParent()._velocity[0];60                const dy = this.getParent()._velocity[1];61                const eddiePosition = Connection.getEddie().getPosition(time);62                const eddiePolygon = Connection.getEddie().getPolygon([0, 0]).map(point => {63                    return [point[0] * 1.8 + eddiePosition[0], point[1] * 1.6 + eddiePosition[1]];64                });65                if (PolygonMath.isPointInPolygon2D(this.getParent().getPosition(time - 500), eddiePolygon)) {66                    this._hit = true;67                    const d = Math.sqrt(dx * dx + dy * dy);68                    const damage = Math.max((d - this.getParent().getMaxSpeed()) * 4, 24);69                    console.log(damage);70                    Connection.getEddie()._health -= damage * Connection._moonratDamageScale;71                    AudioSystem.playEddiePainSound(eddiePosition);72                }73            }74        }75    }76    isActive(time) {77        return time - this._startTime <= 1200 && !this._hit;78    }79    shouldSlow(time) {80        return false;81    }82    getPacket() {...HolyAttack.js
Source:HolyAttack.js  
...24        this._sprite.loop = false;25        this._sprite.play();26        Renderer._container.addChild(this._sprite);27        HolyAttack.AUDIO.play();28        if (this.getParent()) {29            if (this.getParent()._attackSprite) {30                this.getParent()._attackSprite.destroy();31                this.getParent()._attackSprite = null;32            }33            this.getParent()._attackSprite = new PIXI.AnimatedSprite(HolyAttack.ATTACK_TEXTURES, true);34            this.getParent()._attackSprite.anchor.x = 1133/1810;35            this.getParent()._attackSprite.anchor.y = 1118/1317;36            this.getParent()._attackSprite.scale.x = 0.8;37            this.getParent()._attackSprite.scale.y = 0.8;38            this.getParent()._attackSprite.animationSpeed = 0.2;39            this.getParent()._attackSprite.loop = false;40            this.getParent()._attackSprite._holy = true;41            this.getParent()._attackSprite.play();42            this.getParent()._attackSprite.onComplete = () => {43                if (!this.getParent() || !this.getParent()._attackSprite || !this.getParent()._attackSprite._holy) {44                    return;45                }46                this.getParent()._attackSprite.destroy();47                this.getParent()._attackSprite = null;48            };49            this.getParent()._container.addChild(this.getParent()._attackSprite);50        }51        if (this._parentUsername === USERNAME) {52            if (this.getParent()) {53                this.getParent()._packetAppendString += this.getPacket();54            }55        }56        this._launched = false;57    }58    update(time) {59        const duration = Connection.isEddie() ? 3000 : 2000;60        if (time - this._startTime >= duration) {61            this._launched = true;62            const ability = new GroundHolyAttack(this._parentUsername, time, this._position);63            AbilityManager.addAbility(ability);64        }65    }66    isActive(time) {67        return !this._launched;...getParent.test.js
Source:getParent.test.js  
...3  test('getParent using a single key returns the original value', () => {4    const value = {5      foo: 'bar',6    }7    expect(getParent('foo', value)).toBe(value)8    expect(getParent(['foo'], value)).toBe(value)9    expect(getParent('bim', value)).toBe(value)10  })11  test('getParent when access arrays directly returns array', () => {12    const value = ['foobar']13    expect(getParent('[0]', value)).toBe(value)14    expect(getParent([0], value)).toBe(value)15  })16  test('getParent using a undefined returns undefined', () => {17    expect(getParent(undefined, { a: 'b' })).toBe(undefined)18    expect(getParent(undefined, {})).toBe(undefined)19    expect(getParent(undefined, [])).toBe(undefined)20    expect(getParent(undefined, 'foo')).toBe(undefined)21    expect(getParent(undefined, 123)).toBe(undefined)22    expect(getParent(undefined, null)).toBe(undefined)23    expect(getParent(undefined, undefined)).toBe(undefined)24  })25  test('getParent using am empty array returns undefined', () => {26    expect(getParent([], { a: 'b' })).toBe(undefined)27    expect(getParent([], {})).toBe(undefined)28    expect(getParent([], [])).toBe(undefined)29    expect(getParent([], 'foo')).toBe(undefined)30    expect(getParent([], 123)).toBe(undefined)31    expect(getParent([], null)).toBe(undefined)32    expect(getParent([], undefined)).toBe(undefined)33  })34  test('select from a nested Map', () => {35    const value = {36      foo: new Map([37        [38          'bar',39          {40            bim: 'bop',41          },42        ],43      ]),44    }45    expect(getParent('foo.bar.bim', value)).toEqual({46      bim: 'bop',47    })48  })49  test('select from a nested object with getParent method', () => {50    const foo = {51      data: {52        bar: {53          bim: 'bop',54        },55      },56      get(prop) {57        return this.data[prop]58      },59    }60    const value = {61      foo,62    }63    expect(getParent('foo.bar.bim', value)).toBe(foo.data.bar)64  })65  test('converts dot props to paths and gets parent', () => {66    const value = {67      foo: {68        bar: 'foobar',69      },70    }71    expect(getParent('foo.bar', value)).toBe(value.foo)72  })73  test('works with props that have dots', () => {74    const value = {75      'foo.bar': 'foobar',76    }77    expect(getParent(['foo.bar'], value)).toBe(value)78  })79  test('supports array syntax', () => {80    const value = {81      foo: ['foobar'],82    }83    expect(getParent('foo[0]', value)).toBe(value.foo)84  })85  test('curries the getParent method', () => {86    const value = {87      foo: 'bar',88    }89    const getParentFoo = getParent('foo')90    expect(getParentFoo(value)).toBe(value)91  })92  test('dispatches to the getParent method of the last argument', () => {93    const value = {94      getParent(path) {95        return getParent(path, this.props)96      },97      props: {98        foo: 'bar',99      },100    }101    expect(getParent('foo', value)).toEqual({ foo: 'bar' })102  })103  test('dispatches to the getParent method of the last argument when curried', () => {104    const value = {105      getParent: jest.fn(function (path) {106        return getParent(path, this.props)107      }),108      props: {109        foo: {110          bar: 'baz',111        },112      },113    }114    const getParentFooBar = getParent('foo.bar')115    expect(getParentFooBar(value)).toBe(value.props.foo)116    expect(value.getParent).toHaveBeenCalledTimes(1)117    expect(value.getParent).toHaveBeenCalledWith('foo.bar', value)118  })...Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3    const browser = await chromium.launch({ headless: false });4    const page = await browser.newPage();5    const linkHandle = await page.$('text=Docs');6    const parentHandle = await linkHandle.getParent();7    await parentHandle.click();8    await browser.close();9})();10const { chromium } = require('playwright');11(async () => {12    const browser = await chromium.launch({ headless: false });13    const page = await browser.newPage();14    const linkHandle = await page.$('text=Docs');15    const parentHandle = await linkHandle.getParent();16    const grandParentHandle = await parentHandle.getParent();17    await grandParentHandle.click();18    await browser.close();19})();20const { chromium } = require('playwright');21(async () => {22    const browser = await chromium.launch({ headless: false });23    const page = await browser.newPage();24    const linkHandle = await page.$('text=Docs');25    const parentHandle = await linkHandle.getParent();26    const grandParentHandle = await parentHandle.getParent();27    const greatGrandParentHandle = await grandParentHandle.getParent();Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch({ headless: false });4  const page = await browser.newPage();5  const frame = page.mainFrame();6  const frameElement = await frame.$('#frame');7  const childFrame = await frameElement.contentFrame();8  const parentFrame = childFrame.getParent();9  await browser.close();10})();11### **`frame.childFrames()`**12const { chromium } = require('playwright');13(async () => {14  const browser = await chromium.launch({ headless: false });15  const page = await browser.newPage();16  const frame = page.mainFrame();17  const childFrames = frame.childFrames();18  await browser.close();19})();20### **`frame.waitForSelector(selector[, options])`**Using AI Code Generation
1const { chromium } = require('playwright');2const { getParent } = require('playwright/lib/protocol/protocol-helpers');3(async () => {4  const browser = await chromium.launch();5  const page = await browser.newPage();6  const input = await page.$('input[name="q"]');7  const form = getParent(input, 'form');8  console.log(form);9  await browser.close();10})();11ElementHandle {12  _context: BrowserContext {13    _browser: Browser {14      _closedCallback: [Function (anonymous)]15    },16    _options: { viewport: null, ignoreHTTPSErrors: false, javaScriptEnabled: true },17    _timeoutSettings: TimeoutSettings { _timeoutSettings: [TimeoutSettings] },18    _permissions: Map {},19    _screenshotter: Screenshotter {Using AI Code Generation
1const { getTestState } = require('@playwright/test');2let parent = getTestState().parent;3let parentTitle = parent.title();4const { getTestState } = require('@playwright/test');5let parent = getTestState().parent;6let parentTitle = parent.title();7const { test, expect } = require('@playwright/test');8test('Parent Test', async ({ page }) => {9  expect(page.title()).toBe('Playwright');10});11test.describe('Child Test', () => {12  test('Child Test 1', async ({ page }) => {13    expect(page.title()).toBe('Playwright');14  });15});16const { test, expect } = require('@playwright/test');17test('Parent Test', async ({ page }) => {18  expect(page.title()).toBe('Playwright');19});20test.describe('Child Test', () => {21  test('Child Test 1', async ({ page }) => {22    expect(page.title()).toBe('Playwright');23  });24});25const { test, expect } = require('@playwright/test');26test('Parent Test', async ({ page }) => {27  expect(page.title()).toBe('Playwright');28});29test.describe('Child Test', () => {30  test('Child Test 1', async ({ page }) => {31    expect(page.title()).toBe('Playwright');32  });33});34const { test, expect } = require('@playwright/test');35test('Parent Test', async ({ page }) => {36  expect(page.title()).toBe('PlaywrightUsing AI Code Generation
1const { getParent } = require('@playwright/test/lib/utils/utils');2const parent = getParent(context);3console.log(parent);4{ browser:5   { _id: 'browser-1',6      { _browserName: 'chromium',7        _env: {},8        _firefoxUserPrefs: {},9        _webkit: { args: [], extraPrefsFirefox: {} },10        _closeCallback: [Function: closeCallback] },11      { _executablePath: null,12        _env: {},13        _firefoxUserPrefs: {},14        _webkit: { args: [], extraPrefsFirefox: {} },15        _closeCallback: [Function: closeCallback] },16      { _id: 'connection-1',17         { _browserName: 'chromium',18           _env: {},LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
