no-nested-ternary fix
diff --git a/.eslintrc.json b/.eslintrc.json
index ebfeaac..3b130c9 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -44,7 +44,6 @@
         "lines-around-directive": "off",
         "no-void": "off",
         "no-redeclare": "off",
-        "no-nested-ternary": "off",
         "prefer-rest-params": "off",
         "no-floating-decimal": "off",
         "object-curly-newline": "off",
diff --git a/player/js/animation/AnimationItem.js b/player/js/animation/AnimationItem.js
index db2d17c..cb6ec93 100644
--- a/player/js/animation/AnimationItem.js
+++ b/player/js/animation/AnimationItem.js
@@ -37,7 +37,12 @@
   if (params.wrapper || params.container) {
     this.wrapper = params.wrapper || params.container;
   }
-  var animType = params.animType ? params.animType : params.renderer ? params.renderer : 'svg';
+  var animType = 'svg';
+  if (params.animType) {
+    animType = params.animType;
+  } else if (params.renderer) {
+    animType = params.renderer;
+  }
   switch (animType) {
     case 'canvas':
       this.renderer = new CanvasRenderer(this, params.rendererSettings);
@@ -88,16 +93,43 @@
 };
 
 AnimationItem.prototype.setData = function (wrapper, animationData) {
+  if (animationData) {
+    if (typeof animationData !== 'object') {
+      animationData = JSON.parse(animationData);
+    }
+  }
   var params = {
     wrapper: wrapper,
-    animationData: animationData ? (typeof animationData === 'object') ? animationData : JSON.parse(animationData) : null,
+    animationData: animationData,
   };
   var wrapperAttributes = wrapper.attributes;
 
-  params.path = wrapperAttributes.getNamedItem('data-animation-path') ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';
-  params.animType = wrapperAttributes.getNamedItem('data-anim-type') ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';
+  params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary
+    ? wrapperAttributes.getNamedItem('data-animation-path').value
+    : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary
+      ? wrapperAttributes.getNamedItem('data-bm-path').value
+      : wrapperAttributes.getNamedItem('bm-path')
+        ? wrapperAttributes.getNamedItem('bm-path').value
+        : '';
+  params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary
+    ? wrapperAttributes.getNamedItem('data-anim-type').value
+    : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary
+      ? wrapperAttributes.getNamedItem('data-bm-type').value
+      : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary
+        ? wrapperAttributes.getNamedItem('bm-type').value
+        : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary
+          ? wrapperAttributes.getNamedItem('data-bm-renderer').value
+          : wrapperAttributes.getNamedItem('bm-renderer')
+            ? wrapperAttributes.getNamedItem('bm-renderer').value
+            : 'canvas';
 
-  var loop = wrapperAttributes.getNamedItem('data-anim-loop') ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';
+  var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary
+    ? wrapperAttributes.getNamedItem('data-anim-loop').value
+    : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary
+      ? wrapperAttributes.getNamedItem('data-bm-loop').value
+      : wrapperAttributes.getNamedItem('bm-loop')
+        ? wrapperAttributes.getNamedItem('bm-loop').value
+        : '';
   if (loop === 'false') {
     params.loop = false;
   } else if (loop === 'true') {
@@ -105,11 +137,29 @@
   } else if (loop !== '') {
     params.loop = parseInt(loop);
   }
-  var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;
+  var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary
+    ? wrapperAttributes.getNamedItem('data-anim-autoplay').value
+    : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary
+      ? wrapperAttributes.getNamedItem('data-bm-autoplay').value
+      : wrapperAttributes.getNamedItem('bm-autoplay')
+        ? wrapperAttributes.getNamedItem('bm-autoplay').value
+        : true;
   params.autoplay = autoplay !== 'false';
 
-  params.name = wrapperAttributes.getNamedItem('data-name') ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';
-  var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';
+  params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary
+    ? wrapperAttributes.getNamedItem('data-name').value
+    : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary
+      ? wrapperAttributes.getNamedItem('data-bm-name').value
+      : wrapperAttributes.getNamedItem('bm-name')
+        ? wrapperAttributes.getNamedItem('bm-name').value
+        : '';
+  var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary
+    ? wrapperAttributes.getNamedItem('data-anim-prerender').value
+    : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary
+      ? wrapperAttributes.getNamedItem('data-bm-prerender').value
+      : wrapperAttributes.getNamedItem('bm-prerender')
+        ? wrapperAttributes.getNamedItem('bm-prerender').value
+        : '';
 
   if (prerender === 'false') {
     params.prerender = false;
diff --git a/player/js/animation/AnimationItemWorkerOverride.js b/player/js/animation/AnimationItemWorkerOverride.js
index be2845c..f46288b 100644
--- a/player/js/animation/AnimationItemWorkerOverride.js
+++ b/player/js/animation/AnimationItemWorkerOverride.js
@@ -2,7 +2,12 @@
   if (params.context) {
     this.context = params.context;
   }
-  var animType = params.animType ? params.animType : params.renderer ? params.renderer : 'svg';
+  var animType = 'svg';
+  if (params.animType) {
+    animType = params.animType;
+  } else if (params.renderer) {
+    animType = params.renderer;
+  }
   switch (animType) {
     case 'canvas':
       this.renderer = new CanvasRenderer(this, params.rendererSettings);
diff --git a/player/js/elements/canvasElements/CVShapeElement.js b/player/js/elements/canvasElements/CVShapeElement.js
index c786849..b110d51 100644
--- a/player/js/elements/canvasElements/CVShapeElement.js
+++ b/player/js/elements/canvasElements/CVShapeElement.js
@@ -433,7 +433,12 @@
       var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));
       var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);
 
-      var percent = itemData.h.v >= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99 : itemData.h.v;
+      var percent = itemData.h.v;
+      if (percent >= 1) {
+        percent = 0.99;
+      } else if (percent <= -1) {
+        percent = -0.99;
+      }
       var dist = rad * percent;
       var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];
       var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];
diff --git a/player/js/elements/helpers/shapes/SVGElementsRenderer.js b/player/js/elements/helpers/shapes/SVGElementsRenderer.js
index a006f1a..89d5429 100644
--- a/player/js/elements/helpers/shapes/SVGElementsRenderer.js
+++ b/player/js/elements/helpers/shapes/SVGElementsRenderer.js
@@ -185,7 +185,12 @@
         }
         var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);
 
-        var percent = itemData.h.v >= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99 : itemData.h.v;
+        var percent = itemData.h.v;
+        if (percent >= 1) {
+          percent = 0.99;
+        } else if (percent <= -1) {
+          percent = -0.99;
+        }
         var dist = rad * percent;
         var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];
         var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];
diff --git a/player/js/utils/bez.js b/player/js/utils/bez.js
index c7b6811..55a9694 100644
--- a/player/js/utils/bez.js
+++ b/player/js/utils/bez.js
@@ -188,7 +188,11 @@
   var bezier_segment_points = createTypedArray('float32', 8);
 
   function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {
-    startPerc = startPerc < 0 ? 0 : startPerc > 1 ? 1 : startPerc;
+    if (startPerc < 0) {
+      startPerc = 0;
+    } else if (startPerc > 1) {
+      startPerc = 1;
+    }
     var t0 = getDistancePerc(startPerc, bezierData);
     endPerc = endPerc > 1 ? 1 : endPerc;
     var t1 = getDistancePerc(endPerc, bezierData);
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index 9356181..eb29c82 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -506,7 +506,11 @@
       } else {
         t = (t - tMin) / (tMax - tMin);
       }
-      t = t > 1 ? 1 : t < 0 ? 0 : t;
+      if (t > 1) {
+        t = 1;
+      } else if (t < 0) {
+        t = 0;
+      }
       var mult = fn(t);
       if ($bm_isInstanceOfArray(val1)) {
         var iKey,
diff --git a/player/js/utils/expressions/ExpressionPropertyDecorator.js b/player/js/utils/expressions/ExpressionPropertyDecorator.js
index 11b6592..51e40dc 100644
--- a/player/js/utils/expressions/ExpressionPropertyDecorator.js
+++ b/player/js/utils/expressions/ExpressionPropertyDecorator.js
@@ -403,7 +403,11 @@
     },
     vectorOnPath: function (perc, time, vectorType) {
       // perc doesn't use triple equality because it can be a Number object as well as a primitive.
-      perc = perc == 1 ? this.v.c ? 0 : 0.999 : perc;
+      if (perc == 1) {
+        perc = this.v.c;
+      } else if (perc == 0) {
+        perc = 0.999;
+      }
       var pt1 = this.pointOnPath(perc, time);
       var pt2 = this.pointOnPath(perc + 0.001, time);
       var xLength = pt2[0] - pt1[0];
diff --git a/player/js/utils/shapes/ShapeProperty.js b/player/js/utils/shapes/ShapeProperty.js
index 6d6e60d..5e86f8c 100644
--- a/player/js/utils/shapes/ShapeProperty.js
+++ b/player/js/utils/shapes/ShapeProperty.js
@@ -141,7 +141,14 @@
     }
     this.lock = true;
     this._mdf = false;
-    var finalValue = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k;
+    var finalValue;
+    if (this.kf) {
+      finalValue = this.pv;
+    } else if (this.data.ks) {
+      finalValue = this.data.ks.k;
+    } else {
+      finalValue = this.data.pt.k;
+    }
     var i,
       len = this.effectsSequence.length;
     for (i = 0; i < len; i += 1) {
diff --git a/player/js/utils/shapes/TrimModifier.js b/player/js/utils/shapes/TrimModifier.js
index 8d33951..b3ab5ba 100644
--- a/player/js/utils/shapes/TrimModifier.js
+++ b/player/js/utils/shapes/TrimModifier.js
@@ -84,8 +84,20 @@
     if (o < 0) {
       o += 1;
     }
-    s = (this.s.v > 1 ? 1 : this.s.v < 0 ? 0 : this.s.v) + o;
-    e = (this.e.v > 1 ? 1 : this.e.v < 0 ? 0 : this.e.v) + o;
+    if (this.s.v > 1) {
+      s = 1 + o;
+    } else if (this.s.v < 0) {
+      s = 0 + o;
+    } else {
+      s = this.s.v + o;
+    }
+    if (this.e.v > 1) {
+      e = 1 + o;
+    } else if (this.e.v < 0) {
+      e = 0 + o;
+    } else {
+      e = this.e.v + o;
+    }
 
     if (s > e) {
       var _s = s;