Skip to content
cb39a21
72 lines (58 sloc) 1.65 KB
(function() {
"use strict";
var DEFAULT_ROUTE = 'one';
var template = document.querySelector('#t');
template.pages = [
{name: 'Single', hash: 'one'},
{name: 'page', hash: 'two'},
{name: 'app', hash: 'three'},
{name: 'using', hash: 'four'},
{name: 'Polymer', hash: 'five'}
];
template.addEventListener('template-bound', function(e) {
var keys = document.querySelector('#keys');
// Allow selecting pages by num keypad. Dynamically add
// [1, template.pages.length] to key mappings.
var keysToAdd = Array.apply(null, template.pages).map(function(x, i) {
return i + 1;
}).reduce(function(x, y) {
return x + ' ' + y;
});
keys.keys += ' ' + keysToAdd;
this.route = this.route || DEFAULT_ROUTE; // Select initial route.
});
template.keyHandler = function(e, detail, sender) {
var pages = document.querySelector('#pages');
// Select page by num key.
var num = parseInt(detail.key);
if (!isNaN(num) && num <= this.pages.length) {
pages.selectIndex(num - 1);
return;
}
switch (detail.key) {
case 'left':
case 'up':
pages.selectPrevious();
break;
case 'right':
case 'down':
pages.selectNext();
break;
case 'space':
detail.shift ? pages.selectPrevious() : pages.selectNext();
break;
}
};
template.cyclePages = function(e, detail, sender) {
// Click clicks should navigate and not cycle pages.
if (e.path[0].localName == 'a') {
return;
}
e.shiftKey ? sender.selectPrevious(true) : sender.selectNext(true);
};
template.menuItemSelected = function(e, detail, sender) {
if (detail.isSelected) {
document.querySelector('#scaffold').closeDrawer();
}
};
})();
Jump to Line
Something went wrong with that request. Please try again.