typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
252 lines (212 loc) • 9 kB
text/typescript
/// <reference path="swipeview.d.ts" />
function demo1() {
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
var
el,
i,
page,
dots = document.querySelectorAll('#nav li'),
slides = [
{
img: 'images/pic01.jpg',
width: 300,
height: 213,
desc: 'Piazza del Duomo, Florence, Italy'
},
{
img: 'images/pic02.jpg',
width: 300,
height: 164,
desc: 'Tuscan Landscape'
}
];
var gallery = new SwipeView('#wrapper', { numberOfPages: slides.length });
// Load initial data
for (i = 0; i < 3; i++) {
page = i == 0 ? slides.length - 1 : i - 1;
el = document.createElement('img');
el.className = 'loading';
el.src = slides[page].img;
el.width = slides[page].width;
el.height = slides[page].height;
el.onload = function () { this.className = ''; }
gallery.masterPages[i].appendChild(el);
el = document.createElement('span');
el.innerHTML = slides[page].desc;
gallery.masterPages[i].appendChild(el)
}
gallery.onFlip(function () {
var el,
upcoming,
i;
for (i = 0; i < 3; i++) {
upcoming = (<any>gallery.masterPages[i].dataset).upcomingPageIndex;
if (upcoming != (<any>gallery.masterPages[i].dataset).pageIndex) {
el = gallery.masterPages[i].querySelector('img');
el.className = 'loading';
el.src = slides[upcoming].img;
el.width = slides[upcoming].width;
el.height = slides[upcoming].height;
el = gallery.masterPages[i].querySelector('span');
el.innerHTML = slides[upcoming].desc;
}
}
});
gallery.onMoveOut(function () {
gallery.masterPages[gallery.currentMasterPage].className = gallery.masterPages[gallery.currentMasterPage].className.replace(/(^|\s)swipeview-active(\s|$)/, '');
});
gallery.onMoveIn(function () {
var className = gallery.masterPages[gallery.currentMasterPage].className;
/(^|\s)swipeview-active(\s|$)/.test(className) || (gallery.masterPages[gallery.currentMasterPage].className = !className ? 'swipeview-active' : className + ' swipeview-active');
});
}
function demo2() {
var carousel: SwipeView,
el,
i,
page,
slides = [
'<strong>Swipe</strong> to know more >>><br>Or scroll down for <em>Lorem Ipsum</em>',
'1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.',
'2. A robot must obey the orders given to it by human beings, except where such orders would conflict with the First Law.',
'3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Laws.'
];
carousel = new SwipeView('#wrapper', {
numberOfPages: slides.length,
hastyPageFlip: true
});
// Load initial data
for (i = 0; i < 3; i++) {
page = i == 0 ? slides.length - 1 : i - 1;
el = document.createElement('span');
el.innerHTML = slides[page];
carousel.masterPages[i].appendChild(el)
}
carousel.onFlip(function () {
var el,
upcoming,
i;
for (i = 0; i < 3; i++) {
upcoming = (<any>carousel.masterPages[i].dataset).upcomingPageIndex;
if (upcoming != (<any>carousel.masterPages[i].dataset).pageIndex) {
el = carousel.masterPages[i].querySelector('span');
el.innerHTML = slides[upcoming];
}
}
});
}
function demo3() {
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
window.addEventListener('load', function () {
var ereader: SwipeView,
el,
i,
pageIndex,
pages = [],
req = new XMLHttpRequest();
ereader = new SwipeView('#wrapper', { hastyPageFlip: true });
// Ajax request
req.open('GET', 'flowers.txt', true);
req.onreadystatechange = function () {
if (req.readyState != 4) return;
paginate(req.status != 200 && (req.status != 304 ? false : <any>req.responseText));
req = null;
}
req.send(null);
function paginate(book) {
var that = this,
container,
helper,
words = [],
segment,
wordCount = 80,
avgWordCount = 0,
progressTotal = 0,
progressCurrent = 0,
progressMaxWidth = document.getElementById('progressbar').clientWidth,
progressToBookRatio = 0,
progressBar = <HTMLElement>document.querySelector('#progressbar > span'),
size;
if (!book) return;
book = book.replace(/\n\n/g, ' <br><br>').replace(/\n/g, ' ');
progressTotal = book.length;
progressToBookRatio = progressMaxWidth / book.length;
container = document.createElement('div');
container.style.visibility = 'hidden';
container.innerHTML = '<div id="ereader-helper"></div>';
ereader.slider.appendChild(container);
helper = document.getElementById('ereader-helper');
helper.innerHTML = '';
var loopy = function () {
words = book.split(' ', wordCount);
segment = words.join(' ');
helper.innerHTML = segment;
if (helper.offsetHeight > ereader.wrapperHeight) {
if (size == -1) {
words.pop();
segment = words.join(' ');
pages.push(segment);
book = book.substr(segment.length);
avgWordCount = Math.round((wordCount + avgWordCount) / 2);
wordCount = avgWordCount;
size = 0;
progressTotal -= segment.length;
} else {
size = 1;
wordCount--;
}
} else {
if (size == 1) {
pages.push(segment);
book = book.substr(segment.length);
avgWordCount = Math.round((wordCount + avgWordCount) / 2);
wordCount = avgWordCount;
size = 0;
progressTotal -= segment.length;
} else {
if (segment == book) {
pages.push(segment);
book = '';
}
size = -1;
wordCount++;
}
}
if (book) {
progressBar.style.width = 150 - Math.round(progressToBookRatio * progressTotal) + 'px';
setTimeout(loopy, 1);
} else {
book = null;
words = null;
segment = null;
helper.innerHTML = '';
ereader.slider.removeChild(container);
ereader.updatePageCount(pages.length);
(<any>ereader.masterPages[0].dataset).pageIndex = pages.length - 1;
(<any>ereader.masterPages[0].dataset).upcomingPageIndex = (<any>ereader.masterPages[0].dataset).pageIndex;
// Load initial data
for (i = 0; i < 3; i++) {
pageIndex = i == 0 ? pages.length - 1 : i - 1;
el = document.createElement('div');
el.innerHTML = pages[pageIndex];
ereader.masterPages[i].appendChild(el)
}
document.getElementById('loading').style.display = 'none';
}
}
loopy();
}
ereader.onFlip(function () {
var el,
upcoming,
i;
for (i = 0; i < 3; i++) {
upcoming = (<any>ereader.masterPages[i].dataset).upcomingPageIndex;
if (upcoming != (<any>ereader.masterPages[i].dataset).pageIndex) {
el = ereader.masterPages[i].querySelector('div');
el.innerHTML = pages[upcoming];
}
}
});
}, false);
}