QueryDataItemSet.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. 'use strict';
  2. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3. /**
  4. * Licensed Materials - Property of IBM
  5. * IBM Business Analytics (C) Copyright IBM Corp. 2019, 2020
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. define(['underscore', '../../../lib/@waca/dashboard-common/dist/core/APIFactory', './api/QueryDataItemSetAPI'], function (_, APIFactory, QueryDataItemSetAPI) {
  9. var QueryDataItemSet = function () {
  10. function QueryDataItemSet() {
  11. _classCallCheck(this, QueryDataItemSet);
  12. this.dataItems = [];
  13. this.dataItemSets = [];
  14. this.calculations = [];
  15. this.summariesEnabled = true; //By default, summaries are shown.
  16. }
  17. QueryDataItemSet.prototype.getAPI = function getAPI() {
  18. if (!this.api) {
  19. this.api = APIFactory.createAPI(this, [QueryDataItemSetAPI]);
  20. }
  21. return this.api;
  22. };
  23. QueryDataItemSet.prototype.addDataItem = function addDataItem(dataItem) {
  24. this.dataItems.push(dataItem);
  25. };
  26. QueryDataItemSet.prototype.addDataItemList = function addDataItemList(dataItems) {
  27. var _dataItems;
  28. (_dataItems = this.dataItems).splice.apply(_dataItems, [this.dataItems.length, 0].concat(dataItems));
  29. };
  30. QueryDataItemSet.prototype.setDataItemList = function setDataItemList(queryDataItems) {
  31. this.dataItems = queryDataItems;
  32. };
  33. QueryDataItemSet.prototype.getDataItemList = function getDataItemList() {
  34. return this.dataItems.slice();
  35. };
  36. QueryDataItemSet.prototype.addCalculation = function addCalculation(operator, operands) {
  37. if (this.isMeasureItemSet()) {
  38. this.calculations.push({
  39. operator: operator,
  40. operands: operands
  41. });
  42. }
  43. };
  44. QueryDataItemSet.prototype.getCalculationList = function getCalculationList(columnId) {
  45. return columnId ? this.calculations.filter(function (calc) {
  46. return calc.operands.indexOf(columnId) > -1;
  47. }) : this.calculations;
  48. };
  49. QueryDataItemSet.prototype.getAllDataItemsList = function getAllDataItemsList() {
  50. return _.flatten([this.getDataItemList(), this.getDataItemSetList().map(function (dataItemSet) {
  51. return dataItemSet.getAllDataItemsList();
  52. })]);
  53. };
  54. QueryDataItemSet.prototype.createDataItemSet = function createDataItemSet(dataItems) {
  55. var dataItemSet = new QueryDataItemSet();
  56. dataItemSet.addDataItemList(dataItems);
  57. this.dataItemSets.push(dataItemSet);
  58. return dataItemSet.getAPI();
  59. };
  60. QueryDataItemSet.prototype.getDataItemSetList = function getDataItemSetList() {
  61. return this.dataItemSets.slice();
  62. };
  63. QueryDataItemSet.prototype.isNestedItemSet = function isNestedItemSet() {
  64. return this.dataItemSets.length > 0;
  65. };
  66. QueryDataItemSet.prototype.isMeasureItemSet = function isMeasureItemSet() {
  67. return this.dataItems && this.dataItems[0] && this.dataItems[0].getType() === 'fact';
  68. };
  69. QueryDataItemSet.prototype.getSummaryItemPrefix = function getSummaryItemPrefix() {
  70. return 'summary:';
  71. };
  72. QueryDataItemSet.prototype.isSummaryItemId = function isSummaryItemId(id) {
  73. return id.indexOf(this.getSummaryItemPrefix()) === 0;
  74. };
  75. return QueryDataItemSet;
  76. }();
  77. return QueryDataItemSet;
  78. });
  79. //# sourceMappingURL=QueryDataItemSet.js.map