'use strict'; /* *+------------------------------------------------------------------------+ *| Licensed Materials - Property of IBM *| IBM Cognos Products: Dashboard *| (C) Copyright IBM Corp. 2017, 2019 *| *| US Government Users Restricted Rights - Use, duplication or disclosure *| restricted by GSA ADP Schedule Contract with IBM Corp. *+------------------------------------------------------------------------+ */ define(['../../../../lib/@waca/core-client/js/core-client/ui/core/Class', '../../query/QueryService', '../../query/CommonQueryHelper', '../../../../dataSources/utils/DatasourceUtil', 'underscore'], function (Class, QueryService, CommonQueryHelper, DatasourceUtil, _) { 'use strict'; /** * @classdesc provides public APIs to access widget metaddata. */ var VisMetadataManager = Class.extend({ /** * @constructs * @public * @param {Object} params - Mandatory: parameters to initialize the VisMetadataManager. * @param {Object} params.widgetModel - Mandatory. */ init: function init(params) { VisMetadataManager.inherited('init', this, arguments); this.dashboardApi = params.dashboardApi; this.widgetModel = params.widgetModel; this.visualizationFeature = params.visualizationFeature; _.each(_.keys(params), function (key) { this[key] = params[key]; }.bind(this)); }, getModule: function getModule() { var module = null; var dataSource = this.visualizationFeature.getDataSource(); if (dataSource) { var deprecatedDataSources = this.dashboardApi.getFeature('dataSources.deprecated'); if (deprecatedDataSources) { var legacyDataSourcesCollection = deprecatedDataSources.getSourcesCollection(); var sourceModelAPI = legacyDataSourcesCollection.getSource(dataSource.getId()); module = sourceModelAPI.getModuleAPI(); } } return module; }, getMetadataColumn: function getMetadataColumn(columnId, sourceId, logNotFound) { if (DatasourceUtil.isMultiMeasuresSeriesOrValue(columnId)) { return this._getMultiMeasuresSeriesMetadataColumn(columnId); } var module = this.getModule(sourceId); return module ? module.getMetadataColumn(columnId, logNotFound) : null; }, _getMultiMeasuresSeriesMetadataColumn: function _getMultiMeasuresSeriesMetadataColumn(columnId) { return { getId: function getId() { return columnId; }, getType: function getType() { return 'attribute'; }, isHidden: function isHidden() { return false; } }; }, /** * Returns an array of metadataColumn object for each dataItem in the model * @param {string} optViewIdx Optional * @return {[MetadataColumn]} */ getMetadataColumns: function getMetadataColumns() { var metadataColumns = []; if (this.widgetModel && this.widgetModel.get('data')) { var dataItems = this.widgetModel.get('data').getDataItemsOfAllViewsAsCollection(); if (dataItems) { var module = this.getModule(); if (module) { dataItems.forEach(function (dataItem) { if (!DatasourceUtil.isMultiMeasuresSeriesOrValue(dataItem.id)) { var metadataColumn = module.getMetadataColumn(dataItem.itemId); if (metadataColumn) { metadataColumns.push(metadataColumn); } else { metadataColumns.push({ status: 'notFound', getId: function getId() { return dataItem.itemId; }, getLabel: function getLabel() { return dataItem.itemLabel; }, getSourceCategory: function getSourceCategory() { return null; }, isMissing: function isMissing() { return true; } }); } } }.bind(this)); } } } return metadataColumns; }, destroy: function destroy() { VisMetadataManager.inherited('destroy', this, arguments); } }); return VisMetadataManager; }); //# sourceMappingURL=VisMetadataManager.js.map