'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: BI Cloud (C) Copyright IBM Corp. 2019, 2020 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['underscore'], function (_) { return function () { function VisMapColumnsToSlot() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _classCallCheck(this, VisMapColumnsToSlot); this.content = options.content; this.visualization = options.visualization; this.slots = this.visualization.getSlots(); this.transaction = options.transaction; } VisMapColumnsToSlot.prototype.mapColumns = function mapColumns(slotId, droppedColumns) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var transactionToken = arguments[3]; var columns = droppedColumns; var metadataColumns = _.pluck(droppedColumns, 'metadataColumn'); var originalMetadataColumns = _.chain(droppedColumns).pluck('original').compact().pluck('metadataColumn').value(); var slot = this.slots.getSlot(slotId); if (slot) { var position = options.position, bReplace = options.bReplace, activeDataSourceId = options.activeDataSourceId; var canSetLocalFilters = _.isBoolean(options.canSetLocalFilters) ? options.canSetLocalFilters : true; var slotDataItemList = slot.getDataItemList(); var localFilters = this.visualization.getLocalFilters(); var subTransactionToken = this.transaction.startTransaction(transactionToken); // before add data items, ensure the visulization datasource is set. Could fail // in certain conditions, for example if the visualization don't support the datasource. this._setDataSource(metadataColumns, subTransactionToken, activeDataSourceId); if (this.visualization.getDataSource() === null) { this.transaction.endTransaction(subTransactionToken); return; } if (bReplace && slotDataItemList.length) { //Delete local filters associated with this data item so that it will get added to undo/redo stack var filterKey = { itemId: slotDataItemList[position].getColumnId() }; if (localFilters.filterExists(filterKey)) { localFilters.removeFilter(filterKey, subTransactionToken); } var ids = [slotDataItemList[position].getId()]; slot.removeDataItems(ids, subTransactionToken); if (this.visualization.getDataSource() === null) { this._setDataSource(metadataColumns, subTransactionToken, activeDataSourceId); } } var localFltersSpec = []; if (canSetLocalFilters) { var result = this._getLocalFilters({ slot: slot, columns: columns, bReplace: bReplace }, subTransactionToken); localFltersSpec.push.apply(localFltersSpec, result); } metadataColumns = _.pluck(columns, 'metadataColumn'); var columnSpecs = _.map(metadataColumns, function (metadataColumn) { return { columnId: metadataColumn.getId() }; }); if (columnSpecs.length) { var _dataItemList = slot.addDataItems(columnSpecs, position, subTransactionToken); var items = originalMetadataColumns; items && items.forEach(function (item, index) { var navPathId = item.getParent() ? item.getParent().getId() : null; if (navPathId && item.getParent().getObjectType().toLowerCase() === 'drillgroup') { _dataItemList[index].setNavigationPathId(navPathId, subTransactionToken); } }); } var dataItemList = slot.getDataItemList(); localFltersSpec.forEach(function (spec) { //if dataItem is added to slot or visualization, then add filters, // if dataItem is not added due to any reason, do not add filters var dataItem = dataItemList.find(function (dataItem) { return dataItem.getColumnId() === spec.itemContext.itemId; }) || null; if (dataItem) { if (spec.hasFilters) { localFilters.editFilter(spec.itemContext, spec.filterContext, subTransactionToken); } else { localFilters.addFilter(spec.itemContext, spec.filterContext, subTransactionToken); } } }); this.transaction.endTransaction(subTransactionToken); } }; VisMapColumnsToSlot.prototype._setDataSource = function _setDataSource(metadataColumns, transactionToken, activeDataSourceId) { var sourceId = activeDataSourceId; if (!sourceId && metadataColumns.length > 0) { var firstMetadataColumn = metadataColumns[0]; sourceId = firstMetadataColumn.getSourceId(); } this.visualization.setDataSource(sourceId, transactionToken); }; VisMapColumnsToSlot.prototype._getLocalFilters = function _getLocalFilters() { var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var transactionToken = arguments[1]; return this.content.getFeature('VisDnD.utils').addMembersAsLocalFilters({ slotAPI: context.slot, doUpdateFilters: false, columns: context.columns, bReplace: context.bReplace }, transactionToken); }; return VisMapColumnsToSlot; }(); }); //# sourceMappingURL=VisMapColumnsToSlot.js.map