UNPKG

@progress/telerik-jquery-report-viewer

Version:

Progress® Telerik® Report Viewer for jQuery

168 lines (163 loc) 5.39 kB
'use strict'; 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;