LiveContentProvider.js 2.2 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 LiveContentProvider
  10. * @hideconstructor
  11. * @classdesc API provider class to create LiveWidget ContentAPI instances
  12. */
  13. define(['../../../lib/@waca/dashboard-common/dist/core/APIFactory', '../../../lib/@waca/dashboard-common/dist/api/ContentProviderAPI'], function (APIFactory, ContentProviderAPI) {
  14. var LiveContentProvider = function () {
  15. function LiveContentProvider(options) {
  16. _classCallCheck(this, LiveContentProvider);
  17. this._api = APIFactory.createAPI(this, [ContentProviderAPI]);
  18. this.base = options.features['BaseContentProvider'];
  19. this.datasources = options.features['DataSources'];
  20. options.features['ContentFactory'].registerProvider(this._api);
  21. }
  22. LiveContentProvider.prototype.getAPI = function getAPI() {
  23. return this._api;
  24. };
  25. LiveContentProvider.prototype.getTypeList = function getTypeList() {
  26. return ['widget.live'];
  27. };
  28. LiveContentProvider.prototype.addModel = function addModel(content, extra, options) {
  29. var _base;
  30. var widgetSpec = content && content.spec;
  31. if (widgetSpec) {
  32. this._addDataSource(widgetSpec, options);
  33. }
  34. return (_base = this.base).addModel.apply(_base, arguments);
  35. };
  36. LiveContentProvider.prototype.createContent = function createContent() {
  37. var _base2;
  38. return (_base2 = this.base).createContent.apply(_base2, arguments);
  39. };
  40. LiveContentProvider.prototype._addDataSource = function _addDataSource(widget, options) {
  41. var _this = this;
  42. var data = widget && widget.data;
  43. if (data && data.dataViews && data.dataViews.length) {
  44. data.dataViews.forEach(function (view) {
  45. if (view.model) {
  46. view.modelRef = _this.datasources.addDataSource(view.model, false, options);
  47. delete view.model;
  48. }
  49. });
  50. }
  51. };
  52. return LiveContentProvider;
  53. }();
  54. return LiveContentProvider;
  55. });
  56. //# sourceMappingURL=LiveContentProvider.js.map