@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
94 lines • 4.61 kB
JavaScript
;
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 __());
};
})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2019-2020 GoodData Corporation
var React = require("react");
var Dropdown_1 = require("./Dropdown");
var MeasureValueFilter_1 = require("../../../interfaces/MeasureValueFilter");
function getOperator(condition) {
if (MeasureValueFilter_1.isComparisonCondition(condition)) {
return condition.comparison.operator;
}
else if (MeasureValueFilter_1.isRangeCondition(condition)) {
return condition.range.operator;
}
return null;
}
function getValue(condition) {
if (MeasureValueFilter_1.isComparisonCondition(condition)) {
return { value: condition.comparison.value };
}
else if (MeasureValueFilter_1.isRangeCondition(condition)) {
var _a = condition.range, from = _a.from, to = _a.to;
return { from: from, to: to };
}
return null;
}
function getTreatNullAsZeroValue(condition, treatNullAsZeroDefaultValue) {
if (!condition) {
return treatNullAsZeroDefaultValue !== undefined && treatNullAsZeroDefaultValue;
}
return ((MeasureValueFilter_1.isComparisonCondition(condition) && condition.comparison.treatNullValuesAs !== undefined) ||
(MeasureValueFilter_1.isRangeCondition(condition) && condition.range.treatNullValuesAs !== undefined) ||
false);
}
var MeasureValueFilterDropdown = /** @class */ (function (_super) {
__extends(MeasureValueFilterDropdown, _super);
function MeasureValueFilterDropdown() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.onApply = function (operator, value, treatNullValuesAsZero) {
var _a = _this.props, filter = _a.filter, onApply = _a.onApply;
var condition = MeasureValueFilter_1.getMeasureValueFilterCondition(operator, value, treatNullValuesAsZero);
var resultFilter;
if (condition === null) {
resultFilter = {
measureValueFilter: {
measure: filter.measureValueFilter.measure,
},
};
}
else {
resultFilter = {
measureValueFilter: __assign({}, filter.measureValueFilter, { condition: condition }),
};
}
onApply(resultFilter);
};
return _this;
}
MeasureValueFilterDropdown.prototype.render = function () {
var _a = this.props, filter = _a.filter, onCancel = _a.onCancel, usePercentage = _a.usePercentage, warningMessage = _a.warningMessage, locale = _a.locale, anchorEl = _a.anchorEl, separators = _a.separators, displayTreatNullAsZeroOption = _a.displayTreatNullAsZeroOption, treatNullAsZeroDefaultValue = _a.treatNullAsZeroDefaultValue;
var condition = filter ? filter.measureValueFilter.condition : null;
return (React.createElement(Dropdown_1.Dropdown, { onApply: this.onApply, onCancel: onCancel, operator: getOperator(condition), value: getValue(condition), usePercentage: usePercentage, warningMessage: warningMessage, locale: locale, anchorEl: anchorEl, separators: separators, displayTreatNullAsZeroOption: displayTreatNullAsZeroOption, treatNullAsZeroValue: getTreatNullAsZeroValue(condition, treatNullAsZeroDefaultValue) }));
};
MeasureValueFilterDropdown.defaultProps = {
displayTreatNullAsZeroOption: false,
treatNullAsZeroDefaultValue: false,
};
return MeasureValueFilterDropdown;
}(React.PureComponent));
exports.MeasureValueFilterDropdown = MeasureValueFilterDropdown;
//# sourceMappingURL=MeasureValueFilterDropdown.js.map