@progress/telerik-jquery-report-viewer
Version:
Progress® Telerik® Report Viewer for jQuery
168 lines (163 loc) • 5.39 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var enums = require('./enums.js');
var command = require('./command.js');
var scaleTransitionMap = {};
scaleTransitionMap[enums.ScaleModes.FIT_PAGE] = { scaleMode: enums.ScaleModes.FIT_PAGE_WIDTH };
scaleTransitionMap[enums.ScaleModes.FIT_PAGE_WIDTH] = { scaleMode: enums.ScaleModes.SPECIFIC, scale: 1 };
scaleTransitionMap[enums.ScaleModes.SPECIFIC] = { scaleMode: enums.ScaleModes.FIT_PAGE };
var scaleValues = [0.1, 0.25, 0.5, 0.75, 1, 1.5, 2, 4, 8];
function CommandSet(options) {
var controller = options.controller;
if (!controller) {
throw "No options.controller.";
}
var historyManager = options.history;
if (!historyManager) {
throw "No options.history.";
}
function getDocumentMapVisible() {
var args = {};
controller.getDocumentMapState(args);
return Boolean(args.visible);
}
function getParametersAreaVisible() {
var args = {};
controller.getParametersAreaState(args);
return Boolean(args.visible);
}
function getSideMenuVisible() {
var args = {};
controller.getSideMenuVisible(args);
return Boolean(args.visible);
}
function getSearchDialogVisible() {
var args = {};
controller.getSearchDialogState(args);
return Boolean(args.visible);
}
function getSendEmailDialogVisible() {
var args = {};
controller.getSendEmailDialogState(args);
return Boolean(args.visible);
}
return {
"historyBack": new command.Command(function() {
historyManager.back();
}),
"historyForward": new command.Command(function() {
historyManager.forward();
}),
"stopRendering": new command.Command(function() {
controller.stopRendering();
}),
"goToPrevPage": new command.Command(function() {
controller.navigateToPage(controller.getCurrentPageNumber() - 1);
}),
"goToNextPage": new command.Command(function() {
controller.navigateToPage(controller.getCurrentPageNumber() + 1);
}),
"goToFirstPage": new command.Command(function() {
controller.navigateToPage(1);
}),
"goToLastPage": new command.Command(function() {
controller.navigateToPage(controller.getPageCount());
}),
"goToPage": new command.Command(function(pageNumber) {
if (!isNaN(pageNumber)) {
var pageCount = controller.getPageCount();
if (pageNumber > pageCount) {
pageNumber = pageCount;
} else if (pageNumber < 1) {
pageNumber = 1;
}
controller.navigateToPage(pageNumber);
return pageNumber;
}
}),
"refresh": new command.Command(
function() {
controller.refreshReport(true);
}
),
"export": new command.Command(function(format) {
if (format) {
controller.exportReport(format);
}
}),
"print": new command.Command(function() {
controller.printReport();
}),
"pageMode": new command.Command(function() {
controller.setPageMode(
controller.getPageMode() === enums.PageModes.SINGLE_PAGE ? enums.PageModes.CONTINUOUS_SCROLL : enums.PageModes.SINGLE_PAGE
);
}),
"togglePrintPreview": new command.Command(function() {
controller.setViewMode(
controller.getViewMode() === enums.ViewModes.PRINT_PREVIEW ? enums.ViewModes.INTERACTIVE : enums.ViewModes.PRINT_PREVIEW
);
}),
"toggleDocumentMap": new command.Command(function() {
controller.setDocumentMapVisible({ visible: !getDocumentMapVisible() });
}),
"toggleParametersArea": new command.Command(function() {
controller.setParametersAreaVisible({ visible: !getParametersAreaVisible() });
}),
"zoom": new command.Command(function(scale) {
controller.setScale(scale);
}),
"zoomIn": new command.Command(function() {
zoom(1);
}),
"zoomOut": new command.Command(function() {
zoom(-1);
}),
"toggleSideMenu": new command.Command(function() {
controller.setSideMenuVisible({ visible: !getSideMenuVisible() });
}),
"toggleZoomMode": new command.Command(function(e) {
var scale = controller.getScale();
var scaleMode = controller.getScaleMode();
controller.setScale(scaleTransitionMap[scaleMode].scale || scale);
controller.setScaleMode(scaleTransitionMap[scaleMode].scaleMode);
}),
"toggleSearchDialog": new command.Command(function() {
controller.setSearchDialogVisible({ visible: !getSearchDialogVisible() });
}),
"toggleSendEmailDialog": new command.Command(function() {
controller.setSendEmailDialogVisible({ visible: !getSendEmailDialogVisible() });
})
};
function zoom(step) {
controller.setScale(getZoomScale(controller.getScale(), step));
}
function getZoomScale(scale, steps) {
var pos = -1;
var length = scaleValues.length;
for (var i = 0; i < length; i++) {
var value = scaleValues[i];
if (scale < value) {
pos = i - 0.5;
break;
}
if (scale === value) {
pos = i;
break;
}
}
pos = pos + steps;
if (steps >= 0) {
pos = Math.round(pos - 0.49);
} else {
pos = Math.round(pos + 0.49);
}
if (pos < 0) {
pos = 0;
} else if (pos > length - 1) {
pos = length - 1;
}
return scaleValues[pos];
}
}
exports.CommandSet = CommandSet;
;