Toolbar.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 Cognos Products: BI (C) Copyright IBM Corp. 2020
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. define(['underscore', './ToolbarAPI', '../../../lib/@waca/dashboard-common/dist/core/APIFactory'], function (_, ToolbarAPI, APIFactory) {
  9. var Toolbar = function () {
  10. function Toolbar(_ref) {
  11. var dashboardAPI = _ref.dashboardAPI,
  12. content = _ref.content;
  13. _classCallCheck(this, Toolbar);
  14. this._toolbarDock = dashboardAPI.getFeature('ToolbarDock');
  15. this._dashboardPreferences = dashboardAPI.getFeature('DashboardPreferences');
  16. this._contentActions = dashboardAPI.getFeature('ContentActions');
  17. this._transactionApi = dashboardAPI.getFeature('Transaction');
  18. this._content = content;
  19. this.type = dashboardAPI.getType();
  20. }
  21. Toolbar.prototype.initialize = function initialize() {
  22. var isExplore = this.type.toUpperCase() === 'EXPLORE';
  23. if (!isExplore) {
  24. this._internalApi = APIFactory.createAPI(this, [ToolbarAPI]);
  25. this._registerEvents();
  26. }
  27. };
  28. Toolbar.prototype.getAPI = function getAPI(type) {
  29. if (type === 'internal') {
  30. return this._internalApi;
  31. }
  32. };
  33. Toolbar.prototype._registerEvents = function _registerEvents() {
  34. this._visEvents = {
  35. 'change:visualization:slots:dataitems:addMapping': this._refreshHandler,
  36. 'change:visualization:slots:dataitems:removeMapping': this._refreshHandler
  37. };
  38. for (var key in this._visEvents) {
  39. this._content.on(key, this._visEvents[key], this);
  40. }
  41. };
  42. Toolbar.prototype._deregisterEvents = function _deregisterEvents() {
  43. for (var key in this._visEvents) {
  44. this._content.off(key, this._visEvents[key], this);
  45. }
  46. };
  47. Toolbar.prototype.destroy = function destroy() {
  48. this._deregisterEvents();
  49. this._content = null;
  50. };
  51. Toolbar.prototype._refreshHandler = function _refreshHandler(options) {
  52. var transactionToken = options && options.transactionToken;
  53. return this._transactionApi.registerTransactionHandler(transactionToken || {}, this, function () {
  54. this.refresh();
  55. }.bind(this), options);
  56. };
  57. Toolbar.prototype.refresh = function refresh() {
  58. var docked = this._dashboardPreferences.getPreference('isToolbarDocked');
  59. if (docked) {
  60. var IDList = [this._content.getId()];
  61. if (_.isEqual(IDList, this._toolbarDock.getOwnerIDs())) {
  62. var actions = this._contentActions.getContentActionList(IDList);
  63. this._toolbarDock.updateODTState(actions, IDList);
  64. }
  65. }
  66. };
  67. return Toolbar;
  68. }();
  69. return Toolbar;
  70. });
  71. //# sourceMappingURL=Toolbar.js.map