devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
61 lines (59 loc) • 2.4 kB
JavaScript
/**
* DevExtreme (esm/ui/filter_builder/between.js)
* Version: 21.1.4
* Build date: Mon Jun 21 2021
*
* Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import $ from "../../core/renderer";
import {
extend
} from "../../core/utils/extend";
var FILTER_BUILDER_RANGE_CLASS = "dx-filterbuilder-range";
var FILTER_BUILDER_RANGE_START_CLASS = FILTER_BUILDER_RANGE_CLASS + "-start";
var FILTER_BUILDER_RANGE_END_CLASS = FILTER_BUILDER_RANGE_CLASS + "-end";
var FILTER_BUILDER_RANGE_SEPARATOR_CLASS = FILTER_BUILDER_RANGE_CLASS + "-separator";
var SEPARATOR = "\u2013";
function editorTemplate(conditionInfo, container) {
var $editorStart = $("<div>").addClass(FILTER_BUILDER_RANGE_START_CLASS);
var $editorEnd = $("<div>").addClass(FILTER_BUILDER_RANGE_END_CLASS);
var values = conditionInfo.value || [];
var getStartValue = function(values) {
return values && values.length > 0 ? values[0] : null
};
var getEndValue = function(values) {
return values && 2 === values.length ? values[1] : null
};
container.append($editorStart);
container.append($("<span>").addClass(FILTER_BUILDER_RANGE_SEPARATOR_CLASS).text(SEPARATOR));
container.append($editorEnd);
container.addClass(FILTER_BUILDER_RANGE_CLASS);
this._editorFactory.createEditor.call(this, $editorStart, extend({}, conditionInfo.field, conditionInfo, {
value: getStartValue(values),
parentType: "filterBuilder",
setValue: function(value) {
values = [value, getEndValue(values)];
conditionInfo.setValue(values)
}
}));
this._editorFactory.createEditor.call(this, $editorEnd, extend({}, conditionInfo.field, conditionInfo, {
value: getEndValue(values),
parentType: "filterBuilder",
setValue: function(value) {
values = [getStartValue(values), value];
conditionInfo.setValue(values)
}
}))
}
export function getConfig(caption, context) {
return {
name: "between",
caption: caption,
icon: "range",
valueSeparator: SEPARATOR,
dataTypes: ["number", "date", "datetime"],
editorTemplate: editorTemplate.bind(context),
notForLookup: true
}
}