UNPKG

@progress/telerik-jquery-report-viewer

Version:

Progress® Telerik® Report Viewer for jQuery

135 lines (131 loc) 4.41 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function PerspectiveManager(element, controller, notificationService) { var smallMenu = element.querySelectorAll ? element.querySelectorAll(".trv-menu-small")[0] : false; var perspectives = { "small": { documentMapVisible: false, parametersAreaVisible: false, onDocumentMapVisibleChanged: (e, args) => { if (args.visible) { notificationService.setParametersAreaVisible({ visible: false }); } }, onParameterAreaVisibleChanged: (e, args) => { if (args.visible) { notificationService.setDocumentMapVisible({ visible: false }); } }, onBeforeLoadReport: () => { notificationService.setParametersAreaVisible({ visible: false }); notificationService.setDocumentMapVisible({ visible: false }); }, onNavigateToPage: () => { notificationService.setParametersAreaVisible({ visible: false }); notificationService.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((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.onAsync("beforeLoadReport", async () => onBeforeLoadReport()).on("navigateToPage", onNavigateToPage).onAsync("reportLoadComplete", async () => onReportLoadComplete()); notificationService.setDocumentMapVisible(onDocumentMapVisibleChanged); notificationService.setParametersAreaVisible(onParameterAreaVisibleChanged); notificationService.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 = {}; notificationService.getDocumentMapState(args1); return args1.visible; } notificationService.setDocumentMapVisible({ visible: Boolean(arguments[0]) }); return this; } function parametersAreaVisible() { if (arguments.length === 0) { var args1 = {}; notificationService.getParametersAreaState(args1); return args1.visible; } notificationService.setParametersAreaVisible({ visible: Boolean(arguments[0]) }); return this; } init(); return { attach, dispose }; } exports.PerspectiveManager = PerspectiveManager;