Renderer.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 Business Analytics (C) Copyright IBM Corp. 2020
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. /**
  9. * @class Renderer
  10. * @hideconstructor
  11. * @classdesc API class that is used to provide a renderer provider extension point
  12. */
  13. define(['../../../lib/@waca/dashboard-common/dist/core/APIFactory', './api/ReactRendererAPI'], function (APIFactory, ReactRendererAPI) {
  14. var TooltipRenderer = function () {
  15. function TooltipRenderer(options) {
  16. _classCallCheck(this, TooltipRenderer);
  17. this._api = APIFactory.createAPI(this, [ReactRendererAPI]);
  18. this._providers = [];
  19. this._features = options.features;
  20. }
  21. TooltipRenderer.prototype.registerProvider = function registerProvider(provider) {
  22. if (this._providers.indexOf(provider) === -1 && typeof provider.getComponent === 'function') {
  23. this._providers.push(provider);
  24. }
  25. };
  26. TooltipRenderer.prototype.deregisterProvider = function deregisterProvider(provider) {
  27. var idx = this._providers.indexOf(provider);
  28. if (idx !== -1) {
  29. this._providers.splice(idx, 1);
  30. }
  31. };
  32. TooltipRenderer.prototype.getAPI = function getAPI() {
  33. return this._api;
  34. };
  35. TooltipRenderer.prototype.canRender = function canRender() {
  36. return this._providers.length > 0;
  37. };
  38. TooltipRenderer.prototype.getComponentList = function getComponentList(state) {
  39. var contentList = [];
  40. if (this._providers.length > 0) {
  41. for (var i = 0; i < this._providers.length; i++) {
  42. var component = void 0;
  43. try {
  44. component = this._providers[i].getComponent(state);
  45. } catch (error) {
  46. this._features['Logger'].error('Renderer error ', error);
  47. }
  48. if (component) {
  49. contentList.push(component);
  50. }
  51. }
  52. }
  53. return contentList;
  54. };
  55. return TooltipRenderer;
  56. }();
  57. return TooltipRenderer;
  58. });
  59. //# sourceMappingURL=Renderer.js.map