123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- '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: Dashboard
- *| (C) Copyright IBM Corp. 2018, 2020
- *|
- *| US Government Users Restricted Rights - Use, duplication or disclosure
- *| restricted by GSA ADP Schedule Contract with IBM Corp.
- *+------------------------------------------------------------------------+
- */
- define(['../../../visualizations/recommender/VisRecommenderBindingFallback'], function (VisRecommenderBindingFallback) {
- 'use strict';
- return function () {
- function VisRecommenderDelegator(options) {
- _classCallCheck(this, VisRecommenderDelegator);
- this.logger = options.logger;
- this.visDefinitions = options.visDefinitions;
- }
- VisRecommenderDelegator.prototype.destroy = function destroy() {
- this.logger = null;
- };
- VisRecommenderDelegator.prototype.recommendBindingsForNewColumns = function recommendBindingsForNewColumns(visualization, columnIds) {
- var bindingRecommender = new VisRecommenderBindingFallback(visualization);
- var recommendation = {
- slots: {},
- unbound: columnIds,
- visId: visualization.getDefinition().getId()
- };
- visualization.getSlots().getMappingInfoList().forEach(function (mapping) {
- var cols = recommendation.slots[mapping.slot.getId()];
- if (!cols) {
- cols = [];
- recommendation.slots[mapping.slot.getId()] = cols;
- }
- cols.push(mapping.dataItem.getColumnId());
- });
- bindingRecommender.assignUnboundColumns(recommendation, visualization.getDefinition().getSlotList());
- return Promise.resolve(recommendation);
- };
- VisRecommenderDelegator.prototype._getValidSlotList = function _getValidSlotList(newDefinition) {
- return newDefinition.getSlotList().filter(function (slotDef) {
- return !slotDef.isHidden();
- });
- };
- VisRecommenderDelegator.prototype.recommendBindingsForSelectedViz = function recommendBindingsForSelectedViz(visualization, visId) {
- var newDefinition = this.visDefinitions.getById(visId);
- var bindingRecommender = new VisRecommenderBindingFallback(visualization);
- var recommendation = {
- slots: {},
- unbound: visualization.getSlots().getDataItemList().map(function (dataItem) {
- return dataItem.getColumnId();
- }),
- visId: newDefinition.getId()
- };
- bindingRecommender.assignUnboundColumns(recommendation, this._getValidSlotList(newDefinition));
- return Promise.resolve(recommendation);
- };
- VisRecommenderDelegator.prototype.recommendBestAlternateVisualization = function recommendBestAlternateVisualization(visualization) {
- var mappings = visualization.getSlots().getDataItemList().map(function (dataItem) {
- return dataItem.getColumnId();
- });
- return this.recommendAlternateVisualizations(mappings).then(function (arr) {
- return arr[0];
- });
- };
- VisRecommenderDelegator.prototype.recommendAlternateVisualizations = function recommendAlternateVisualizations(columnIds) {
- var gridDefinition = this.visDefinitions.getByType('List');
- var recommendation = {
- slots: {},
- visId: gridDefinition.getId()
- };
- var mappings = columnIds;
- recommendation.slots[gridDefinition.getSlotList()[0].getId()] = mappings;
- return Promise.resolve([recommendation]);
- };
- VisRecommenderDelegator.prototype.recommendRelatedVisualizations = function recommendRelatedVisualizations() {
- return Promise.resolve([]);
- };
- VisRecommenderDelegator.prototype.recommendCompareVisualizations = function recommendCompareVisualizations() {
- return Promise.resolve([]);
- };
- VisRecommenderDelegator.prototype.recommendVisualizations = function recommendVisualizations() {
- return Promise.resolve([]);
- };
- return VisRecommenderDelegator;
- }();
- });
- //# sourceMappingURL=FallbackRecommender.js.map
|