'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * Licensed Materials - Property of IBM * IBM Cognos Products: BI Cloud (C) Copyright IBM Corp. 2018 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['../../app/services/SmartNamingSvc', './BoardModuleFactory', '../../common/templates/HtmlTemplates'], function (SmartNamingSvc, BoardModuleFactory, HtmlTemplates) { var DEFAULT_BOARD_MODULES = [{ type: 'legacy', path: 'dashboard-core/js/dashboard/loader/modules/LegacyBoardModule' }, { type: 'react', path: 'dashboard-core/js/dashboard/loader/modules/ReactBoardModule' }]; /** * Helper class used to create the core dashboard services and services registry */ var BoardLoaderHelper = function () { function BoardLoaderHelper(dashboardApi) { _classCallCheck(this, BoardLoaderHelper); this.dashboardApi = dashboardApi; } BoardLoaderHelper.prototype.createBoardServices = function createBoardServices(options) { var services = {}; if (options.widgetRegistry) { services.smartNamingSvc = new SmartNamingSvc(options.widgetRegistry, options.boardModel); this.dashboardApi.registerDashboardSvc('.SmartNamingSvc', services.smartNamingSvc); } return services; }; BoardLoaderHelper.prototype.createBoardModuleFactory = function createBoardModuleFactory() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return new BoardModuleFactory({ modules: options.boardModules || DEFAULT_BOARD_MODULES, logger: this.dashboardApi.getGlassCoreSvc('.Logger') }); }; BoardLoaderHelper.prototype.loadLayoutExtensions = function loadLayoutExtensions(layoutExtensions, boardModuleFactory) { var promises = []; if (layoutExtensions.consumeViews) { Object.keys(layoutExtensions.consumeViews).forEach(function (key) { var module = layoutExtensions.consumeViews[key]; if (typeof module === 'string') { module = { id: key, path: module }; } else { module.id = module.id || key; } var promise = boardModuleFactory.make(module.type || BoardModuleFactory.defaultModuleType).then(function (boardModule) { return boardModule.load(module); }).then(function (result) { result.key = key; return result; }); promises.push(promise); }, this); } return Promise.all(promises); }; BoardLoaderHelper.prototype.registerLayoutExtensions = function registerLayoutExtensions(layoutExtensions) { var layoutExtensionsTemplates = {}; layoutExtensions.forEach(function (layoutExtensions) { if (layoutExtensions.template) { layoutExtensionsTemplates[layoutExtensions.key] = layoutExtensions.template; } }); var htmlTemplates = new HtmlTemplates({ layoutExtensionsTemplates: layoutExtensionsTemplates }); this.dashboardApi.registerDashboardSvc('htmlTemplates', htmlTemplates); }; return BoardLoaderHelper; }(); return BoardLoaderHelper; }); //# sourceMappingURL=BoardLoaderHelper.js.map