ES6ify /gr-cursor-manager/*
Bug: Issue 6179
Change-Id: Iea62a580dc6014dbb2766a12437db0e1321ab9ca
diff --git a/polygerrit-ui/app/elements/shared/gr-cursor-manager/gr-cursor-manager.js b/polygerrit-ui/app/elements/shared/gr-cursor-manager/gr-cursor-manager.js
index 9bfdcfb..6f03a3e 100644
--- a/polygerrit-ui/app/elements/shared/gr-cursor-manager/gr-cursor-manager.js
+++ b/polygerrit-ui/app/elements/shared/gr-cursor-manager/gr-cursor-manager.js
@@ -14,7 +14,7 @@
(function() {
'use strict';
- var ScrollBehavior = {
+ const ScrollBehavior = {
NEVER: 'never',
KEEP_VISIBLE: 'keep-visible',
};
@@ -25,7 +25,7 @@
properties: {
stops: {
type: Array,
- value: function() {
+ value() {
return [];
},
observer: '_updateIndex',
@@ -76,15 +76,15 @@
},
},
- detached: function() {
+ detached() {
this.unsetCursor();
},
- next: function(opt_condition, opt_getTargetHeight) {
+ next(opt_condition, opt_getTargetHeight) {
this._moveCursor(1, opt_condition, opt_getTargetHeight);
},
- previous: function(opt_condition) {
+ previous(opt_condition) {
this._moveCursor(-1, opt_condition);
},
@@ -94,8 +94,8 @@
* @param {boolean} opt_noScroll prevent any potential scrolling in response
* setting the cursor.
*/
- setCursor: function(element, opt_noScroll) {
- var behavior;
+ setCursor(element, opt_noScroll) {
+ let behavior;
if (opt_noScroll) {
behavior = this.scrollBehavior;
this.scrollBehavior = ScrollBehavior.NEVER;
@@ -109,28 +109,28 @@
if (opt_noScroll) { this.scrollBehavior = behavior; }
},
- unsetCursor: function() {
+ unsetCursor() {
this._unDecorateTarget();
this.index = -1;
this.target = null;
this._targetHeight = null;
},
- isAtStart: function() {
+ isAtStart() {
return this.index === 0;
},
- isAtEnd: function() {
+ isAtEnd() {
return this.index === this.stops.length - 1;
},
- moveToStart: function() {
+ moveToStart() {
if (this.stops.length) {
this.setCursor(this.stops[0]);
}
},
- setCursorAtIndex: function(index, opt_noScroll) {
+ setCursorAtIndex(index, opt_noScroll) {
this.setCursor(this.stops[index], opt_noScroll);
},
@@ -146,7 +146,7 @@
* sometimes different, used by the diff cursor.
* @private
*/
- _moveCursor: function(delta, opt_condition, opt_getTargetHeight) {
+ _moveCursor(delta, opt_condition, opt_getTargetHeight) {
if (!this.stops.length) {
this.unsetCursor();
return;
@@ -154,9 +154,9 @@
this._unDecorateTarget();
- var newIndex = this._getNextindex(delta, opt_condition);
+ const newIndex = this._getNextindex(delta, opt_condition);
- var newTarget = null;
+ let newTarget = null;
if (newIndex != -1) {
newTarget = this.stops[newIndex];
}
@@ -175,13 +175,13 @@
this._decorateTarget();
},
- _decorateTarget: function() {
+ _decorateTarget() {
if (this.target && this.cursorTargetClass) {
this.target.classList.add(this.cursorTargetClass);
}
},
- _unDecorateTarget: function() {
+ _unDecorateTarget() {
if (this.target && this.cursorTargetClass) {
this.target.classList.remove(this.cursorTargetClass);
}
@@ -194,12 +194,12 @@
* @return {Number} the new index.
* @private
*/
- _getNextindex: function(delta, opt_condition) {
+ _getNextindex(delta, opt_condition) {
if (!this.stops.length || this.index === -1) {
return -1;
}
- var newIndex = this.index;
+ let newIndex = this.index;
do {
newIndex = newIndex + delta;
} while (newIndex > 0 &&
@@ -221,13 +221,13 @@
return newIndex;
},
- _updateIndex: function() {
+ _updateIndex() {
if (!this.target) {
this.index = -1;
return;
}
- var newIndex = Array.prototype.indexOf.call(this.stops, this.target);
+ const newIndex = Array.prototype.indexOf.call(this.stops, this.target);
if (newIndex === -1) {
this.unsetCursor();
} else {
@@ -240,9 +240,9 @@
* @param {object} target Target to scroll to.
* @return {number} Distance to top of the target.
*/
- _getTop: function(target) {
- var top = target.offsetTop;
- for (var offsetParent = target.offsetParent;
+ _getTop(target) {
+ let top = target.offsetTop;
+ for (let offsetParent = target.offsetParent;
offsetParent;
offsetParent = offsetParent.offsetParent) {
top += offsetParent.offsetTop;
@@ -253,25 +253,25 @@
/**
* @return {boolean}
*/
- _targetIsVisible: function(top) {
+ _targetIsVisible(top) {
return this.scrollBehavior === ScrollBehavior.KEEP_VISIBLE &&
top > window.pageYOffset &&
top < window.pageYOffset + window.innerHeight;
},
- _calculateScrollToValue: function(top, target) {
+ _calculateScrollToValue(top, target) {
return top - (window.innerHeight / 3) + (target.offsetHeight / 2);
},
- _scrollToTarget: function() {
+ _scrollToTarget() {
if (!this.target || this.scrollBehavior === ScrollBehavior.NEVER) {
return;
}
- var top = this._getTop(this.target);
- var bottomIsVisible = this._targetHeight ?
+ const top = this._getTop(this.target);
+ const bottomIsVisible = this._targetHeight ?
this._targetIsVisible(top + this._targetHeight) : true;
- var scrollToValue = this._calculateScrollToValue(top, this.target);
+ const scrollToValue = this._calculateScrollToValue(top, this.target);
if (this._targetIsVisible(top)) {
// Don't scroll if either the bottom is visible or if the position that
diff --git a/polygerrit-ui/app/elements/shared/gr-cursor-manager/gr-cursor-manager_test.html b/polygerrit-ui/app/elements/shared/gr-cursor-manager/gr-cursor-manager_test.html
index 5d9af80..7ab0088 100644
--- a/polygerrit-ui/app/elements/shared/gr-cursor-manager/gr-cursor-manager_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-cursor-manager/gr-cursor-manager_test.html
@@ -39,23 +39,23 @@
</test-fixture>
<script>
- suite('gr-cursor-manager tests', function() {
- var sandbox;
- var element;
- var list;
+ suite('gr-cursor-manager tests', () => {
+ let sandbox;
+ let element;
+ let list;
- setup(function() {
+ setup(() => {
sandbox = sinon.sandbox.create();
- var fixtureElements = fixture('basic');
+ const fixtureElements = fixture('basic');
element = fixtureElements[0];
list = fixtureElements[1];
});
- teardown(function() {
+ teardown(() => {
sandbox.restore();
});
- test('core cursor functionality', function() {
+ test('core cursor functionality', () => {
// The element is initialized into the proper state.
assert.isArray(element.stops);
assert.equal(element.stops.length, 0);
@@ -111,7 +111,7 @@
assert.isTrue(element.isAtStart());
assert.isTrue(list.children[0].classList.contains('targeted'));
- var newLi = document.createElement('li');
+ const newLi = document.createElement('li');
newLi.textContent = 'Z';
list.insertBefore(newLi, list.children[0]);
element.stops = list.querySelectorAll('li');
@@ -128,12 +128,12 @@
});
- test('_moveCursor', function() {
+ test('_moveCursor', () => {
// Initialize the cursor with its stops.
element.stops = list.querySelectorAll('li');
// Select the first stop.
element.setCursor(list.children[0]);
- var getTargetHeight = sinon.stub();
+ const getTargetHeight = sinon.stub();
// Move the cursor without an optional get target height function.
element._moveCursor(1);
@@ -144,9 +144,9 @@
assert.isTrue(getTargetHeight.called);
});
- test('opt_noScroll', function() {
- sandbox.stub(element, '_targetIsVisible', function() { return false; });
- var scrollStub = sandbox.stub(window, 'scrollTo');
+ test('opt_noScroll', () => {
+ sandbox.stub(element, '_targetIsVisible', () => false);
+ const scrollStub = sandbox.stub(window, 'scrollTo');
element.stops = list.querySelectorAll('li');
element.scrollBehavior = 'keep-visible';
@@ -157,8 +157,8 @@
assert.isTrue(scrollStub.called);
});
- test('_getNextindex', function() {
- var isLetterB = function(row) {
+ test('_getNextindex', () => {
+ const isLetterB = function(row) {
return row.textContent === 'B';
};
element.stops = list.querySelectorAll('li');
@@ -185,9 +185,9 @@
assert.equal(element._getNextindex(-1, isLetterB), 0);
});
- test('focusOnMove prop', function() {
- var listEls = list.querySelectorAll('li');
- for (var i = 0; i < listEls.length; i++) {
+ test('focusOnMove prop', () => {
+ const listEls = list.querySelectorAll('li');
+ for (let i = 0; i < listEls.length; i++) {
sandbox.spy(listEls[i], 'focus');
}
element.stops = listEls;
@@ -202,9 +202,9 @@
assert.isTrue(element.target.focus.called);
});
- suite('_scrollToTarget', function() {
- var scrollStub;
- setup(function() {
+ suite('_scrollToTarget', () => {
+ let scrollStub;
+ setup(() => {
element.stops = list.querySelectorAll('li');
element.scrollBehavior = 'keep-visible';
@@ -215,29 +215,27 @@
window.innerHeight = 60;
});
- test('Called when top and bottom not visible', function() {
- sandbox.stub(element, '_targetIsVisible', function() {
+ test('Called when top and bottom not visible', () => {
+ sandbox.stub(element, '_targetIsVisible', () => {
return false;
});
element._scrollToTarget();
assert.isTrue(scrollStub.called);
});
- test('Not called when top and bottom visible', function() {
- sandbox.stub(element, '_targetIsVisible', function() {
+ test('Not called when top and bottom visible', () => {
+ sandbox.stub(element, '_targetIsVisible', () => {
return true;
});
element._scrollToTarget();
assert.isFalse(scrollStub.called);
});
- test('Called when top is visible, bottom is not, and scroll is lower',
- function() {
- var visibleStub = sandbox.stub(element, '_targetIsVisible', function() {
- return visibleStub.callCount == 2;
- });
+ test('Called when top is visible, bottom is not, scroll is lower', () => {
+ const visibleStub = sandbox.stub(element, '_targetIsVisible',
+ () => visibleStub.callCount === 2);
window.scrollY = 15;
- sandbox.stub(element, '_calculateScrollToValue', function() {
+ sandbox.stub(element, '_calculateScrollToValue', () => {
return 20;
});
element._scrollToTarget();
@@ -245,13 +243,11 @@
assert.equal(visibleStub.callCount, 2);
});
- test('Called when top is visible, bottom is not, and scroll is higher',
- function() {
- var visibleStub = sandbox.stub(element, '_targetIsVisible', function() {
- return visibleStub.callCount == 2;
- });
+ test('Called when top is visible, bottom not, scroll is higher', () => {
+ const visibleStub = sandbox.stub(element, '_targetIsVisible',
+ () => visibleStub.callCount === 2);
window.scrollY = 25;
- sandbox.stub(element, '_calculateScrollToValue', function() {
+ sandbox.stub(element, '_calculateScrollToValue', () => {
return 20;
});
element._scrollToTarget();