135 lines
3.4 KiB
JavaScript
135 lines
3.4 KiB
JavaScript
module.exports = function (bt) {
|
|
bt.setDefaultView('controls', 'default');
|
|
|
|
bt.match('controls*', function (ctx) {
|
|
var content = [];
|
|
ctx.enableAutoInit();
|
|
|
|
var arrows = ctx.getParam('arrows') || false;
|
|
var zoom = ctx.getParam('zoom') || false;
|
|
var footnotes = ctx.getParam('footnotes') || false;
|
|
var pages = ctx.getParam('pages') || false;
|
|
|
|
ctx.setInitOption('zoom', zoom);
|
|
ctx.setInitOption('footnotes', footnotes);
|
|
ctx.setInitOption('pages', pages);
|
|
ctx.setState('hidden');
|
|
|
|
if (arrows) {
|
|
ctx.setInitOption('arrows', arrows);
|
|
|
|
content.push([
|
|
{
|
|
elem: 'arrow-left',
|
|
disabled: true
|
|
},
|
|
{
|
|
elem: 'arrow-right'
|
|
}
|
|
]);
|
|
}
|
|
|
|
if (zoom || footnotes || pages) {
|
|
|
|
content.push({
|
|
elem: 'menu',
|
|
zoom: zoom,
|
|
footnotes: footnotes,
|
|
pages: pages
|
|
});
|
|
}
|
|
|
|
ctx.setContent(content);
|
|
});
|
|
|
|
bt.match('controls*__menu', function (ctx) {
|
|
ctx.setState('state', 'closed');
|
|
|
|
ctx.setContent([
|
|
{
|
|
elem: 'trigger'
|
|
},
|
|
{
|
|
elem: 'buttons',
|
|
zoom: ctx.getParam('zoom'),
|
|
footnotes: ctx.getParam('footnotes'),
|
|
pages: ctx.getParam('pages')
|
|
}
|
|
]);
|
|
});
|
|
|
|
bt.match(['controls*__arrow-left', 'controls*__arrow-right'], function (ctx) {
|
|
if (ctx.getParam('disabled')) {
|
|
ctx.setState('disabled');
|
|
}
|
|
ctx.setContent({
|
|
elem: 'arrow-inner'
|
|
});
|
|
});
|
|
|
|
bt.match('controls*__buttons', function (ctx) {
|
|
var content = [];
|
|
var baseHeight = 42;
|
|
var items = 0;
|
|
|
|
if (ctx.getParam('zoom')) {
|
|
items += 2;
|
|
|
|
content.push({
|
|
elem: 'plus'
|
|
}, {
|
|
elem: 'minus'
|
|
});
|
|
}
|
|
if (ctx.getParam('footnotes')) {
|
|
items += 1;
|
|
|
|
content.push({
|
|
elem: 'footnotes',
|
|
footnotes: ctx.getParam('footnotes')
|
|
});
|
|
}
|
|
|
|
if (ctx.getParam('pages')) {
|
|
items += 1;
|
|
|
|
content.push({
|
|
elem: 'pages',
|
|
pages: ctx.getParam('pages')
|
|
});
|
|
}
|
|
|
|
ctx.setAttr('style', 'height: ' + baseHeight * items + 'px');
|
|
|
|
ctx.setContent(content);
|
|
});
|
|
|
|
bt.match('controls*__footnotes', function (ctx) {
|
|
ctx.setState('mode', ctx.getParam('footnotes') || 'appendix');
|
|
ctx.setContent([{
|
|
elem: 'footnotes-anchor'
|
|
}, {
|
|
elem: 'footnotes-footnote'
|
|
}
|
|
]);
|
|
});
|
|
bt.match('controls*__footnotes-anchor', function (ctx) {
|
|
ctx.setTag('span');
|
|
ctx.setContent('x');
|
|
});
|
|
bt.match('controls*__footnotes-footnote', function (ctx) {
|
|
ctx.setTag('span');
|
|
ctx.setContent('[x]');
|
|
});
|
|
|
|
bt.match('controls*__pages', function (ctx) {
|
|
ctx.setState('mode', ctx.getParam('pages') || 'auto');
|
|
ctx.setContent([{
|
|
elem: 'pages-one'
|
|
}, {
|
|
elem: 'pages-two'
|
|
}
|
|
]);
|
|
});
|
|
};
|