///////////////////////////////////////////////////////////////////////////
|
// Copyright © 2014 - 2018 Esri. All Rights Reserved.
|
//
|
// Licensed under the Apache License Version 2.0 (the "License");
|
// you may not use this file except in compliance with the License.
|
// You may obtain a copy of the License at
|
//
|
// http://www.apache.org/licenses/LICENSE-2.0
|
//
|
// Unless required by applicable law or agreed to in writing, software
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// See the License for the specific language governing permissions and
|
// limitations under the License.
|
///////////////////////////////////////////////////////////////////////////
|
|
define([
|
'dojo/_base/lang',
|
'dojo/_base/html',
|
'dojo/_base/array',
|
'dojo/_base/declare',
|
'./ValueProvider',
|
'dijit/_TemplatedMixin',
|
'dijit/_WidgetsInTemplateMixin',
|
'dojo/text!./NumberListValueProvider.html',
|
'dijit/form/NumberTextBox',
|
'dijit/form/Select'
|
],
|
function(lang, html, array, declare, ValueProvider, _TemplatedMixin, _WidgetsInTemplateMixin, template) {
|
|
return declare([ValueProvider, _TemplatedMixin, _WidgetsInTemplateMixin], {
|
|
templateString: template,
|
|
postCreate: function(){
|
this.inherited(arguments);
|
html.addClass(this.domNode, 'jimu-number-list-filter-value-provider');
|
|
var ranges = [
|
"dateOperatorMinutes",
|
"dateOperatorHours",
|
"dateOperatorDays",
|
"dateOperatorWeeks",
|
"dateOperatorMonths",
|
"dateOperatorYears"
|
];
|
|
this.rangeSelect.removeOption(this.rangeSelect.getOptions());
|
array.forEach(ranges, lang.hitch(this, function(range) {
|
var label = this.nls[range];
|
this.rangeSelect.addOption({value: range, label: label});
|
}));
|
this.rangeSelect.set('value', 'dateOperatorDays');
|
},
|
|
getDijits: function(){
|
return [this._dijit1, this.rangeSelect];
|
},
|
|
setValueObject: function(valueObj){
|
if(this.isDefined(valueObj.value)){
|
this._dijit1.set('value', valueObj.value);
|
}
|
if(this.isDefined(valueObj.range)){
|
this.rangeSelect.set('value', valueObj.range);
|
}
|
},
|
|
getValueObject: function(){
|
if(this.isValidValue()){
|
return {
|
"isValid": true,
|
"type": this.partObj.valueObj.type,
|
"value": parseFloat(this._dijit1.get('value')),
|
"range": this._getRangeByUI()
|
};
|
}
|
return null;
|
},
|
|
_getRangeByUI: function(){
|
var range = this.rangeSelect.get('value');
|
if(range === 'none'){
|
range = null;
|
}
|
return range;
|
},
|
|
tryGetValueObject: function(){
|
if(this.isValidValue()){
|
return this.getValueObject();
|
}else if(this.isEmptyValue()){
|
var result = {
|
"isValid": true,
|
"type": this.partObj.valueObj.type,
|
"value": parseFloat(this._dijit1.get('value')),
|
"range": this._getRangeByUI()
|
};
|
if(isNaN(result.value)){
|
result.value = null;
|
}
|
return result;
|
}
|
return null;
|
},
|
|
setRequired: function(required){
|
this._dijit1.set("required", required);
|
this.rangeSelect.set("required", required);
|
}
|
|
});
|
}
|
);
|