BoardLoaderHelper.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. 'use strict';
  2. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3. /**
  4. * Licensed Materials - Property of IBM
  5. * IBM Cognos Products: BI Cloud (C) Copyright IBM Corp. 2018
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. define(['../../app/services/SmartNamingSvc', './BoardModuleFactory', '../../common/templates/HtmlTemplates'], function (SmartNamingSvc, BoardModuleFactory, HtmlTemplates) {
  9. var DEFAULT_BOARD_MODULES = [{
  10. type: 'legacy',
  11. path: 'dashboard-core/js/dashboard/loader/modules/LegacyBoardModule'
  12. }, {
  13. type: 'react',
  14. path: 'dashboard-core/js/dashboard/loader/modules/ReactBoardModule'
  15. }];
  16. /**
  17. * Helper class used to create the core dashboard services and services registry
  18. */
  19. var BoardLoaderHelper = function () {
  20. function BoardLoaderHelper(dashboardApi) {
  21. _classCallCheck(this, BoardLoaderHelper);
  22. this.dashboardApi = dashboardApi;
  23. }
  24. BoardLoaderHelper.prototype.createBoardServices = function createBoardServices(options) {
  25. var services = {};
  26. if (options.widgetRegistry) {
  27. services.smartNamingSvc = new SmartNamingSvc(options.widgetRegistry, options.boardModel);
  28. this.dashboardApi.registerDashboardSvc('.SmartNamingSvc', services.smartNamingSvc);
  29. }
  30. return services;
  31. };
  32. BoardLoaderHelper.prototype.createBoardModuleFactory = function createBoardModuleFactory() {
  33. var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  34. return new BoardModuleFactory({
  35. modules: options.boardModules || DEFAULT_BOARD_MODULES,
  36. logger: this.dashboardApi.getGlassCoreSvc('.Logger')
  37. });
  38. };
  39. BoardLoaderHelper.prototype.loadLayoutExtensions = function loadLayoutExtensions(layoutExtensions, boardModuleFactory) {
  40. var promises = [];
  41. if (layoutExtensions.consumeViews) {
  42. Object.keys(layoutExtensions.consumeViews).forEach(function (key) {
  43. var module = layoutExtensions.consumeViews[key];
  44. if (typeof module === 'string') {
  45. module = {
  46. id: key,
  47. path: module
  48. };
  49. } else {
  50. module.id = module.id || key;
  51. }
  52. var promise = boardModuleFactory.make(module.type || BoardModuleFactory.defaultModuleType).then(function (boardModule) {
  53. return boardModule.load(module);
  54. }).then(function (result) {
  55. result.key = key;
  56. return result;
  57. });
  58. promises.push(promise);
  59. }, this);
  60. }
  61. return Promise.all(promises);
  62. };
  63. BoardLoaderHelper.prototype.registerLayoutExtensions = function registerLayoutExtensions(layoutExtensions) {
  64. var layoutExtensionsTemplates = {};
  65. layoutExtensions.forEach(function (layoutExtensions) {
  66. if (layoutExtensions.template) {
  67. layoutExtensionsTemplates[layoutExtensions.key] = layoutExtensions.template;
  68. }
  69. });
  70. var htmlTemplates = new HtmlTemplates({
  71. layoutExtensionsTemplates: layoutExtensionsTemplates
  72. });
  73. this.dashboardApi.registerDashboardSvc('htmlTemplates', htmlTemplates);
  74. };
  75. return BoardLoaderHelper;
  76. }();
  77. return BoardLoaderHelper;
  78. });
  79. //# sourceMappingURL=BoardLoaderHelper.js.map