FallbackRecommender.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. 'use strict';
  2. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3. /*
  4. *+------------------------------------------------------------------------+
  5. *| Licensed Materials - Property of IBM
  6. *| IBM Cognos Products: Dashboard
  7. *| (C) Copyright IBM Corp. 2018, 2020
  8. *|
  9. *| US Government Users Restricted Rights - Use, duplication or disclosure
  10. *| restricted by GSA ADP Schedule Contract with IBM Corp.
  11. *+------------------------------------------------------------------------+
  12. */
  13. define(['../../../visualizations/recommender/VisRecommenderBindingFallback'], function (VisRecommenderBindingFallback) {
  14. 'use strict';
  15. return function () {
  16. function VisRecommenderDelegator(options) {
  17. _classCallCheck(this, VisRecommenderDelegator);
  18. this.logger = options.logger;
  19. this.visDefinitions = options.visDefinitions;
  20. }
  21. VisRecommenderDelegator.prototype.destroy = function destroy() {
  22. this.logger = null;
  23. };
  24. VisRecommenderDelegator.prototype.recommendBindingsForNewColumns = function recommendBindingsForNewColumns(visualization, columnIds) {
  25. var bindingRecommender = new VisRecommenderBindingFallback(visualization);
  26. var recommendation = {
  27. slots: {},
  28. unbound: columnIds,
  29. visId: visualization.getDefinition().getId()
  30. };
  31. visualization.getSlots().getMappingInfoList().forEach(function (mapping) {
  32. var cols = recommendation.slots[mapping.slot.getId()];
  33. if (!cols) {
  34. cols = [];
  35. recommendation.slots[mapping.slot.getId()] = cols;
  36. }
  37. cols.push(mapping.dataItem.getColumnId());
  38. });
  39. bindingRecommender.assignUnboundColumns(recommendation, visualization.getDefinition().getSlotList());
  40. return Promise.resolve(recommendation);
  41. };
  42. VisRecommenderDelegator.prototype._getValidSlotList = function _getValidSlotList(newDefinition) {
  43. return newDefinition.getSlotList().filter(function (slotDef) {
  44. return !slotDef.isHidden();
  45. });
  46. };
  47. VisRecommenderDelegator.prototype.recommendBindingsForSelectedViz = function recommendBindingsForSelectedViz(visualization, visId) {
  48. var newDefinition = this.visDefinitions.getById(visId);
  49. var bindingRecommender = new VisRecommenderBindingFallback(visualization);
  50. var recommendation = {
  51. slots: {},
  52. unbound: visualization.getSlots().getDataItemList().map(function (dataItem) {
  53. return dataItem.getColumnId();
  54. }),
  55. visId: newDefinition.getId()
  56. };
  57. bindingRecommender.assignUnboundColumns(recommendation, this._getValidSlotList(newDefinition));
  58. return Promise.resolve(recommendation);
  59. };
  60. VisRecommenderDelegator.prototype.recommendBestAlternateVisualization = function recommendBestAlternateVisualization(visualization) {
  61. var mappings = visualization.getSlots().getDataItemList().map(function (dataItem) {
  62. return dataItem.getColumnId();
  63. });
  64. return this.recommendAlternateVisualizations(mappings).then(function (arr) {
  65. return arr[0];
  66. });
  67. };
  68. VisRecommenderDelegator.prototype.recommendAlternateVisualizations = function recommendAlternateVisualizations(columnIds) {
  69. var gridDefinition = this.visDefinitions.getByType('List');
  70. var recommendation = {
  71. slots: {},
  72. visId: gridDefinition.getId()
  73. };
  74. var mappings = columnIds;
  75. recommendation.slots[gridDefinition.getSlotList()[0].getId()] = mappings;
  76. return Promise.resolve([recommendation]);
  77. };
  78. VisRecommenderDelegator.prototype.recommendRelatedVisualizations = function recommendRelatedVisualizations() {
  79. return Promise.resolve([]);
  80. };
  81. VisRecommenderDelegator.prototype.recommendCompareVisualizations = function recommendCompareVisualizations() {
  82. return Promise.resolve([]);
  83. };
  84. VisRecommenderDelegator.prototype.recommendVisualizations = function recommendVisualizations() {
  85. return Promise.resolve([]);
  86. };
  87. return VisRecommenderDelegator;
  88. }();
  89. });
  90. //# sourceMappingURL=FallbackRecommender.js.map