123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- '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. 2019
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- /**
- * @class expandCollapse
- * @hideconstructor
- */
- define(['underscore', '../../../lib/@waca/dashboard-common/dist/core/APIFactory', './api/ExpandCollapseAPI'], function (_, APIFactory, expandCollapseAPI) {
- return function () {
- function ExpandCollapse(options) {
- _classCallCheck(this, ExpandCollapse);
- this.dashboard = options.dashboardAPI;
- this.content = options.content;
- }
- ExpandCollapse.prototype.getAPI = function getAPI() {
- if (!this._api) {
- this._api = APIFactory.createAPI(this, [expandCollapseAPI]);
- }
- return this._api;
- };
- ExpandCollapse.prototype.expand = function expand(dataItemId, parentUseValue, currentUseValue) {
- var dataItem = this._getDataItem(dataItemId);
- var transaction = this.dashboard.getFeature('Transaction');
- var transactionToken = transaction.startTransaction();
- var nestedDataItem = void 0;
- if (!dataItem.getUnion().getDataItemList().length) {
- nestedDataItem = dataItem;
- } else {
- nestedDataItem = this._findNestedDataItem(dataItem.getUnion().getDataItemList(), parentUseValue) || dataItem;
- }
- if (!nestedDataItem.getUnion().getDataItemList().find(function (dataItem) {
- return dataItem.getDrillDownValue() === currentUseValue;
- })) {
- var addedUnionDataItem = nestedDataItem.getUnion().addDataItem({ itemId: dataItem.getColumnId() }, transactionToken);
- addedUnionDataItem.drillDown(currentUseValue, transactionToken);
- }
- transaction.endTransaction(transactionToken);
- };
- ExpandCollapse.prototype.collapse = function collapse(dataItemId, parentUseValue, currentUseValue) {
- var dataItem = this._getDataItem(dataItemId);
- var transaction = this.dashboard.getFeature('Transaction');
- var transactionToken = transaction.startTransaction();
- //Find nested Parent dataitem, if it's not found assume its the top level
- var parentDataItem = this._findNestedDataItem(dataItem.getUnion().getDataItemList(), parentUseValue) || dataItem;
- //find Child to remove
- var dataItemToRemove = this._findNestedDataItem(parentDataItem.getUnion().getDataItemList(), currentUseValue);
- if (parentDataItem && dataItemToRemove) {
- dataItemToRemove.clearDrill(transactionToken);
- parentDataItem.getUnion().removeDataItem(dataItemToRemove.getId(), transactionToken);
- }
- transaction.endTransaction(transactionToken);
- };
- ExpandCollapse.prototype._getDataItem = function _getDataItem(dataItemId) {
- var visApi = this.content.getFeature('Visualization');
- var dataItem = visApi.getSlots().getDataItemList().find(function (dataItem) {
- return dataItem.getId() === dataItemId;
- });
- if (!dataItem) {
- throw new Error('Expand Failed, Invalid DataItem');
- }
- return dataItem;
- };
- /*
- * private function to find the nested dataitem from the root array provided
- *
- * @param rootArray Array starting point
- * @param useValue the drill down value of the dataItem to find
- *
- * @return VisDataItemUnionModel
- */
- ExpandCollapse.prototype._findNestedDataItem = function _findNestedDataItem(rootArray, useValue) {
- var queue = Array.from(rootArray);
- var found = null;
- while (queue.length > 0 && !found) {
- var current = queue.shift();
- var children = current.getUnion().getDataItemList();
- queue.push.apply(queue, children || []);
- var currentValue = current.getDrillDownValue();
- if (currentValue === useValue) {
- found = current;
- }
- }
- return found;
- };
- return ExpandCollapse;
- }();
- });
- //# sourceMappingURL=ExpandCollapse.js.map
|