@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
99 lines • 7.79 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2019 GoodData Corporation
var React = require("react");
var react_intl_1 = require("react-intl");
var get = require("lodash/get");
var Bubble_1 = require("@gooddata/goodstrap/lib/Bubble/Bubble");
var BubbleHoverTrigger_1 = require("@gooddata/goodstrap/lib/Bubble/BubbleHoverTrigger");
var classNames = require("classnames");
var ConfigurationPanelContent_1 = require("./ConfigurationPanelContent");
var LabelSubsection_1 = require("../configurationControls/axis/LabelSubsection");
var NameSubsection_1 = require("../configurationControls/axis/NameSubsection");
var MinMaxControl_1 = require("../configurationControls//MinMaxControl");
var ConfigSection_1 = require("../configurationControls/ConfigSection");
var DataLabelsControl_1 = require("../configurationControls/DataLabelsControl");
var CheckboxControl_1 = require("../configurationControls/CheckboxControl");
var mdObjectHelper_1 = require("../../utils/mdObjectHelper");
var MdObjectHelper_1 = require("../../../helpers/MdObjectHelper");
var bubble_1 = require("../../constants/bubble");
var ScatterPlotConfigurationPanel = /** @class */ (function (_super) {
__extends(ScatterPlotConfigurationPanel, _super);
function ScatterPlotConfigurationPanel() {
return _super !== null && _super.apply(this, arguments) || this;
}
ScatterPlotConfigurationPanel.prototype.isControlDisabled = function () {
var _a = this.props, mdObject = _a.mdObject, isError = _a.isError, isLoading = _a.isLoading;
var measures = mdObject && MdObjectHelper_1.getMeasuresFromMdObject(mdObject);
return !measures || measures.length < 1 || isError || isLoading;
};
ScatterPlotConfigurationPanel.prototype.renderConfigurationPanel = function () {
var _a = this.getControlProperties(), xAxisVisible = _a.xAxisVisible, gridEnabled = _a.gridEnabled, yAxisVisible = _a.yAxisVisible;
var _b = this.props, featureFlags = _b.featureFlags, propertiesMeta = _b.propertiesMeta, properties = _b.properties, pushData = _b.pushData, mdObject = _b.mdObject, type = _b.type;
var controls = properties && properties.controls;
var controlsDisabled = this.isControlDisabled();
var _c = mdObjectHelper_1.countItemsOnAxes(type, controls, mdObject), itemsOnXAxis = _c.xaxis, itemsOnYAxis = _c.yaxis;
var xAxisNameSectionDisabled = controlsDisabled || itemsOnXAxis !== 1;
var yAxisNameSectionDisabled = controlsDisabled || itemsOnYAxis !== 1;
var isNameSubsectionVisible = featureFlags.enableAxisNameConfiguration;
return (React.createElement(BubbleHoverTrigger_1.default, { showDelay: bubble_1.SHOW_DELAY_DEFAULT, hideDelay: bubble_1.HIDE_DELAY_DEFAULT },
React.createElement("div", null,
this.renderColorSection(),
React.createElement(ConfigSection_1.default, { id: "xaxis_section", title: "properties.xaxis.title", valuePath: "xaxis.visible", canBeToggled: true, toggledOn: xAxisVisible, toggleDisabled: controlsDisabled, propertiesMeta: propertiesMeta, properties: properties, pushData: pushData },
isNameSubsectionVisible && (React.createElement(NameSubsection_1.default, { disabled: xAxisNameSectionDisabled, configPanelDisabled: controlsDisabled, axis: "xaxis", properties: properties, pushData: pushData })),
React.createElement(LabelSubsection_1.default, { disabled: controlsDisabled, configPanelDisabled: controlsDisabled, axis: "xaxis", properties: properties, pushData: pushData }),
this.renderMinMax("xaxis")),
React.createElement(ConfigSection_1.default, { id: "yaxis_section", title: "properties.yaxis.title", valuePath: "yaxis.visible", canBeToggled: true, toggledOn: yAxisVisible, toggleDisabled: controlsDisabled, propertiesMeta: propertiesMeta, properties: properties, pushData: pushData },
isNameSubsectionVisible && (React.createElement(NameSubsection_1.default, { disabled: yAxisNameSectionDisabled, configPanelDisabled: controlsDisabled, axis: "yaxis", properties: properties, pushData: pushData })),
React.createElement(LabelSubsection_1.default, { disabled: controlsDisabled, configPanelDisabled: controlsDisabled, axis: "yaxis", properties: properties, pushData: pushData }),
this.renderMinMax("yaxis")),
React.createElement(ConfigSection_1.default, { id: "canvas_section", title: "properties.canvas.title", propertiesMeta: propertiesMeta, properties: properties, pushData: pushData },
React.createElement(DataLabelsControl_1.default, { pushData: pushData, properties: properties, isDisabled: this.areDataLabelsDisabled(), defaultValue: false, showDisabledMessage: this.isDataLabelsWarningShown() }),
React.createElement(CheckboxControl_1.default, { valuePath: "grid.enabled", labelText: "properties.canvas.gridline", properties: properties, checked: gridEnabled, disabled: controlsDisabled, pushData: pushData }))),
React.createElement(Bubble_1.default, { className: this.getBubbleClassNames(), arrowOffsets: { "tc bc": [bubble_1.BUBBLE_ARROW_OFFSET_X, bubble_1.BUBBLE_ARROW_OFFSET_Y] }, alignPoints: [{ align: "tc bc" }] },
React.createElement(react_intl_1.FormattedMessage, { id: "properties.config.not_applicable" }))));
};
ScatterPlotConfigurationPanel.prototype.renderMinMax = function (basePath) {
var _a = this.props, pushData = _a.pushData, properties = _a.properties, propertiesMeta = _a.propertiesMeta;
return (React.createElement(MinMaxControl_1.default, { isDisabled: this.isControlDisabled(), basePath: basePath, pushData: pushData, properties: properties, propertiesMeta: propertiesMeta }));
};
ScatterPlotConfigurationPanel.prototype.areDataLabelsDisabled = function () {
var isDisabled = _super.prototype.isControlDisabled.call(this);
return isDisabled || !mdObjectHelper_1.hasAttribute(this.props.mdObject);
};
ScatterPlotConfigurationPanel.prototype.isDataLabelsWarningShown = function () {
var isDisabled = _super.prototype.isControlDisabled.call(this);
return !isDisabled && !mdObjectHelper_1.hasAttribute(this.props.mdObject);
};
ScatterPlotConfigurationPanel.prototype.getBubbleClassNames = function () {
return classNames("bubble-primary", {
invisible: !this.isControlDisabled(),
});
};
ScatterPlotConfigurationPanel.prototype.getControlProperties = function () {
var xAxisVisible = get(this.props, "properties.controls.xaxis.visible", true);
var yAxisVisible = get(this.props, "properties.controls.yaxis.visible", true);
var gridEnabled = get(this.props, "properties.controls.grid.enabled", true);
return {
xAxisVisible: xAxisVisible,
yAxisVisible: yAxisVisible,
gridEnabled: gridEnabled,
};
};
return ScatterPlotConfigurationPanel;
}(ConfigurationPanelContent_1.default));
exports.default = ScatterPlotConfigurationPanel;
//# sourceMappingURL=ScatterPlotConfigurationPanel.js.map