UNPKG

@progress/telerik-jquery-report-viewer

Version:

Progress® Telerik® Report Viewer for jQuery

139 lines (135 loc) 4.28 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function PerspectiveManager(dom, controller) { var smallMenu = dom.querySelectorAll ? dom.querySelectorAll(".trv-menu-small")[0] : false; var perspectives = { "small": { documentMapVisible: false, parametersAreaVisible: false, onDocumentMapVisibleChanged: function(e, args) { if (args.visible) { controller.setParametersAreaVisible({ visible: false }); } }, onParameterAreaVisibleChanged: function(e, args) { if (args.visible) { controller.setDocumentMapVisible({ visible: false }); } }, onBeforeLoadReport: function() { controller.setParametersAreaVisible({ visible: false }); controller.setDocumentMapVisible({ visible: false }); }, onNavigateToPage: function() { controller.setParametersAreaVisible({ visible: false }); controller.setDocumentMapVisible({ visible: false }); } }, "large": { documentMapVisible: true, parametersAreaVisible: true } }; var currentPerspective; function init() { currentPerspective = getPerspective(); initStateFromController(perspectives["large"]); } function setPerspective(beforeApplyState) { var perspective = getPerspective(); if (perspective !== currentPerspective) { var oldState = perspectives[currentPerspective]; var newState = perspectives[perspective]; currentPerspective = perspective; if (beforeApplyState) { beforeApplyState.call(void 0, oldState, newState); } applyState(newState); } } function onDocumentMapVisibleChanged(e, args) { dispatch("onDocumentMapVisibleChanged", arguments); } function onParameterAreaVisibleChanged(e, args) { dispatch("onParameterAreaVisibleChanged", arguments); } function onBeforeLoadReport() { dispatch("onBeforeLoadReport", arguments); } function onNavigateToPage() { dispatch("onNavigateToPage", arguments); } function onReportLoadComplete() { dispatch("onReportLoadComplete", arguments); } function onWindowResize() { setPerspective( function(oldState, newState) { initStateFromController(oldState); } ); } function onCssLoaded() { setPerspective(null); } function dispatch(func, args) { var activePerspective = perspectives[currentPerspective]; var handler = activePerspective[func]; if (typeof handler === "function") { handler.apply(activePerspective, args); } } function attach() { window.addEventListener("resize", onWindowResize); controller.setDocumentMapVisible(onDocumentMapVisibleChanged); controller.setParametersAreaVisible(onParameterAreaVisibleChanged); controller.beforeLoadReport(onBeforeLoadReport); controller.navigateToPage(onNavigateToPage); controller.reportLoadComplete(onReportLoadComplete); controller.cssLoaded(onCssLoaded); } function dispose() { window.removeEventListener("resize", onWindowResize); } function getPerspective() { var windowWidthInEm = $(window).width() / parseFloat($("body").css("font-size")); var windowMinWidth = 40.5; return smallMenu && windowWidthInEm <= windowMinWidth ? "small" : "large"; } function initStateFromController(state) { state.documentMapVisible = documentMapVisible(); state.parametersAreaVisible = parametersAreaVisible(); } function applyState(state) { documentMapVisible(state.documentMapVisible); parametersAreaVisible(state.parametersAreaVisible); } function documentMapVisible() { if (arguments.length === 0) { var args1 = {}; controller.getDocumentMapState(args1); return args1.visible; } controller.setDocumentMapVisible({ visible: Boolean(arguments[0]) }); return this; } function parametersAreaVisible() { if (arguments.length === 0) { var args1 = {}; controller.getParametersAreaState(args1); return args1.visible; } controller.setParametersAreaVisible({ visible: Boolean(arguments[0]) }); return this; } init(); return { attach, dispose }; } exports.PerspectiveManager = PerspectiveManager;