123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- '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
|