CustomPanelContainer.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. 'use strict';
  2. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  5. /**
  6. * Licensed Materials - Property of IBM
  7. * IBM Cognos Products: BI Cloud (C) Copyright IBM Corp. 2019
  8. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  9. */
  10. define(['react', 'prop-types', 'ca-ui-toolkit', './CustomPreviewWidgetsComponent', './CustomVisualsComponent'], function (React, PropTypes, UI_Toolkit, CustomPreviewWidgetsComponent, CustomVisualsComponent) {
  11. var Component = React.Component;
  12. var Container = UI_Toolkit.Container,
  13. FlexLayout = UI_Toolkit.FlexLayout,
  14. FlexItem = UI_Toolkit.FlexItem,
  15. VSpacer = UI_Toolkit.VSpacer;
  16. var CustomPanelContainer = function (_Component) {
  17. _inherits(CustomPanelContainer, _Component);
  18. function CustomPanelContainer(props) {
  19. _classCallCheck(this, CustomPanelContainer);
  20. var _this = _possibleConstructorReturn(this, _Component.call(this, props));
  21. _this.state = {
  22. previewItems: _this.props.custom.preview.previewItems,
  23. items: _this.props.custom.visuals.items,
  24. isRefreshing: _this.props.isRefreshing
  25. };
  26. return _this;
  27. }
  28. CustomPanelContainer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
  29. this.setState({
  30. previewItems: nextProps.custom.preview.previewItems,
  31. items: nextProps.custom.visuals.items,
  32. isRefreshing: nextProps.isRefreshing
  33. });
  34. };
  35. CustomPanelContainer.prototype.render = function render() {
  36. // potential change here
  37. var customVisAction = this.props.customVisAction;
  38. var _state = this.state,
  39. previewItems = _state.previewItems,
  40. items = _state.items,
  41. isRefreshing = _state.isRefreshing;
  42. var canDevelop = customVisAction.canDevelop();
  43. var className = 'vis-custom-container' + (canDevelop ? '' : ' no-preview');
  44. return React.createElement(
  45. Container,
  46. {
  47. className: className
  48. },
  49. React.createElement(
  50. FlexLayout,
  51. {
  52. fullHeight: true,
  53. direction: 'column'
  54. },
  55. canDevelop && React.createElement(
  56. FlexItem,
  57. { className: 'vis-custom-preview-container' },
  58. React.createElement(CustomPreviewWidgetsComponent, {
  59. previewItems: previewItems,
  60. handlers: this.props.handlers,
  61. dashboardApi: this.props.dashboardApi
  62. })
  63. ),
  64. customVisAction.canManageOnly() && React.createElement(
  65. FlexItem,
  66. null,
  67. React.createElement(VSpacer, { size: 2 })
  68. ),
  69. React.createElement(
  70. FlexItem,
  71. {
  72. basis: '0%',
  73. grow: 1,
  74. shrink: 1
  75. },
  76. React.createElement(CustomVisualsComponent, {
  77. items: items,
  78. handlers: this.props.handlers,
  79. dashboardApi: this.props.dashboardApi,
  80. customVisAction: this.props.customVisAction,
  81. isRefreshing: isRefreshing
  82. })
  83. )
  84. )
  85. );
  86. };
  87. return CustomPanelContainer;
  88. }(Component);
  89. CustomPanelContainer.propTypes = {
  90. custom: PropTypes.shape({
  91. preview: PropTypes.shape({
  92. previewItems: PropTypes.array
  93. }).isRequired,
  94. visuals: PropTypes.shape({
  95. items: PropTypes.array.isRequired
  96. }).isRequired
  97. }).isRequired,
  98. handlers: PropTypes.object.isRequired,
  99. isRefreshing: PropTypes.bool,
  100. dashboardApi: PropTypes.object.isRequired,
  101. customVisAction: PropTypes.object.isRequired
  102. };
  103. CustomPanelContainer.defaultProps = {
  104. isRefreshing: false
  105. };
  106. return CustomPanelContainer;
  107. });
  108. //# sourceMappingURL=CustomPanelContainer.js.map