|
|
@ -1,11 +1,13 @@ |
|
|
|
// 小于号的值为:0,小于等于号的值为:1
|
|
|
|
import { shortcut, extend, i18nText, createWidget, toPix, isNumeric, AbsoluteLayout, isEmptyString, isNotNull, isNull, isIE, getIEVersion } from "@/core"; |
|
|
|
// closeMIn:最小值的符号,closeMax:最大值的符号
|
|
|
|
import { Single, Label, Bubbles } from "@/base"; |
|
|
|
/** |
|
|
|
import { IconCombo } from "@/case"; |
|
|
|
* Created by roy on 15/9/17. |
|
|
|
import { NumberIntervalSingleEidtor } from "./singleeditor/single.editor"; |
|
|
|
* |
|
|
|
|
|
|
|
*/ |
|
|
|
@shortcut() |
|
|
|
BI.NumberInterval = BI.inherit(BI.Single, { |
|
|
|
export class NumberInterval extends Single { |
|
|
|
constants: { |
|
|
|
static xtype = "bi.number_interval" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
constants = { |
|
|
|
typeError: "typeBubble", |
|
|
|
typeError: "typeBubble", |
|
|
|
numberError: "numberBubble", |
|
|
|
numberError: "numberBubble", |
|
|
|
signalError: "signalBubble", |
|
|
|
signalError: "signalBubble", |
|
|
@ -18,160 +20,174 @@ BI.NumberInterval = BI.inherit(BI.Single, { |
|
|
|
less: 0, |
|
|
|
less: 0, |
|
|
|
less_equal: 1, |
|
|
|
less_equal: 1, |
|
|
|
numTip: "", |
|
|
|
numTip: "", |
|
|
|
adjustYOffset: 2 |
|
|
|
adjustYOffset: 2, |
|
|
|
}, |
|
|
|
}; |
|
|
|
_defaultConfig: function () { |
|
|
|
|
|
|
|
var conf = BI.NumberInterval.superclass._defaultConfig.apply(this, arguments); |
|
|
|
static EVENT_CHANGE = "EVENT_CHANGE" |
|
|
|
return BI.extend(conf, { |
|
|
|
static EVENT_CONFIRM = "EVENT_CONFIRM" |
|
|
|
extraCls: "bi-number-interval" + ((BI.isIE() && BI.getIEVersion() < 10) ? " hack" : ""), |
|
|
|
static EVENT_VALID = "EVENT_VALID" |
|
|
|
|
|
|
|
static EVENT_ERROR = "EVENT_ERROR" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_defaultConfig() { |
|
|
|
|
|
|
|
const conf = super._defaultConfig(...arguments); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return extend(conf, { |
|
|
|
|
|
|
|
extraCls: `bi-number-interval${(isIE() && getIEVersion() < 10) ? " hack" : ""}`, |
|
|
|
height: 24, |
|
|
|
height: 24, |
|
|
|
validation: "valid", |
|
|
|
validation: "valid", |
|
|
|
closeMin: true, |
|
|
|
closeMin: true, |
|
|
|
allowBlank: true, |
|
|
|
allowBlank: true, |
|
|
|
watermark: BI.i18nText("BI-Basic_Unrestricted") |
|
|
|
watermark: i18nText("BI-Basic_Unrestricted"), |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
} |
|
|
|
_init: function () { |
|
|
|
|
|
|
|
var self = this, c = this.constants, o = this.options; |
|
|
|
_init() { |
|
|
|
BI.NumberInterval.superclass._init.apply(this, arguments); |
|
|
|
const self = this, |
|
|
|
this.smallEditor = BI.createWidget({ |
|
|
|
c = this.constants, |
|
|
|
|
|
|
|
o = this.options; |
|
|
|
|
|
|
|
super._init(...arguments); |
|
|
|
|
|
|
|
this.smallEditor = createWidget({ |
|
|
|
type: "bi.number_interval_single_editor", |
|
|
|
type: "bi.number_interval_single_editor", |
|
|
|
height: BI.toPix(o.height, o.simple ? 1 : 2), |
|
|
|
height: toPix(o.height, o.simple ? 1 : 2), |
|
|
|
watermark: o.watermark, |
|
|
|
watermark: o.watermark, |
|
|
|
allowBlank: o.allowBlank, |
|
|
|
allowBlank: o.allowBlank, |
|
|
|
value: o.min, |
|
|
|
value: o.min, |
|
|
|
level: "warning", |
|
|
|
level: "warning", |
|
|
|
tipType: "success", |
|
|
|
tipType: "success", |
|
|
|
title: function () { |
|
|
|
title () { |
|
|
|
return self.smallEditor && self.smallEditor.getValue(); |
|
|
|
return self.smallEditor && self.smallEditor.getValue(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
quitChecker: function () { |
|
|
|
quitChecker () { |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
}, |
|
|
|
}, |
|
|
|
validationChecker: function (v) { |
|
|
|
validationChecker (v) { |
|
|
|
if (!BI.isNumeric(v)) { |
|
|
|
if (!isNumeric(v)) { |
|
|
|
self.smallEditorBubbleType = c.typeError; |
|
|
|
self.smallEditorBubbleType = c.typeError; |
|
|
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
|
}, |
|
|
|
}, |
|
|
|
cls: "number-interval-small-editor bi-focus-shadow " + (o.simple ? "bi-border-bottom" : "bi-border bi-border-corner-left-radius") |
|
|
|
cls: `number-interval-small-editor bi-focus-shadow ${o.simple ? "bi-border-bottom" : "bi-border bi-border-corner-left-radius"}`, |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
this.smallTip = BI.createWidget({ |
|
|
|
this.smallTip = createWidget({ |
|
|
|
type: "bi.label", |
|
|
|
type: Label.xtype, |
|
|
|
text: o.numTip, |
|
|
|
text: o.numTip, |
|
|
|
height: BI.toPix(o.height, o.simple ? 1 : 2), |
|
|
|
height: toPix(o.height, o.simple ? 1 : 2), |
|
|
|
invisible: true |
|
|
|
invisible: true, |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI.createWidget({ |
|
|
|
createWidget({ |
|
|
|
type: "bi.absolute", |
|
|
|
type: AbsoluteLayout.xtype, |
|
|
|
element: this.smallEditor, |
|
|
|
element: this.smallEditor, |
|
|
|
items: [{ |
|
|
|
items: [{ |
|
|
|
el: this.smallTip, |
|
|
|
el: this.smallTip, |
|
|
|
top: 0, |
|
|
|
top: 0, |
|
|
|
right: 5 |
|
|
|
right: 5, |
|
|
|
}] |
|
|
|
}], |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
this.bigEditor = BI.createWidget({ |
|
|
|
this.bigEditor = createWidget({ |
|
|
|
type: "bi.number_interval_single_editor", |
|
|
|
type: "bi.number_interval_single_editor", |
|
|
|
height: BI.toPix(o.height, o.simple ? 1 : 2), |
|
|
|
height: toPix(o.height, o.simple ? 1 : 2), |
|
|
|
watermark: o.watermark, |
|
|
|
watermark: o.watermark, |
|
|
|
allowBlank: o.allowBlank, |
|
|
|
allowBlank: o.allowBlank, |
|
|
|
value: o.max, |
|
|
|
value: o.max, |
|
|
|
title: function () { |
|
|
|
title () { |
|
|
|
return self.bigEditor && self.bigEditor.getValue(); |
|
|
|
return self.bigEditor && self.bigEditor.getValue(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
quitChecker: function () { |
|
|
|
quitChecker () { |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
}, |
|
|
|
}, |
|
|
|
validationChecker: function (v) { |
|
|
|
validationChecker (v) { |
|
|
|
if (!BI.isNumeric(v)) { |
|
|
|
if (!isNumeric(v)) { |
|
|
|
self.bigEditorBubbleType = c.typeError; |
|
|
|
self.bigEditorBubbleType = c.typeError; |
|
|
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
|
}, |
|
|
|
}, |
|
|
|
cls: "number-interval-big-editor bi-focus-shadow" + (o.simple ? " bi-border-bottom" : " bi-border bi-border-corner-right-radius") |
|
|
|
cls: `number-interval-big-editor bi-focus-shadow${o.simple ? " bi-border-bottom" : " bi-border bi-border-corner-right-radius"}`, |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
this.bigTip = BI.createWidget({ |
|
|
|
this.bigTip = createWidget({ |
|
|
|
type: "bi.label", |
|
|
|
type: Label.xtype, |
|
|
|
text: o.numTip, |
|
|
|
text: o.numTip, |
|
|
|
height: BI.toPix(o.height, o.simple ? 1 : 2), |
|
|
|
height: toPix(o.height, o.simple ? 1 : 2), |
|
|
|
invisible: true |
|
|
|
invisible: true, |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI.createWidget({ |
|
|
|
createWidget({ |
|
|
|
type: "bi.absolute", |
|
|
|
type: AbsoluteLayout.xtype, |
|
|
|
element: this.bigEditor, |
|
|
|
element: this.bigEditor, |
|
|
|
items: [{ |
|
|
|
items: [{ |
|
|
|
el: this.bigTip, |
|
|
|
el: this.bigTip, |
|
|
|
top: 0, |
|
|
|
top: 0, |
|
|
|
right: 5 |
|
|
|
right: 5, |
|
|
|
}] |
|
|
|
}], |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.smallCombo = BI.createWidget({ |
|
|
|
this.smallCombo = createWidget({ |
|
|
|
type: "bi.icon_combo", |
|
|
|
type: IconCombo.xtype, |
|
|
|
cls: "number-interval-small-combo" + (o.simple ? "" : " bi-border-top bi-border-bottom bi-border-right bi-border-corner-right-radius"), |
|
|
|
cls: `number-interval-small-combo${o.simple ? "" : " bi-border-top bi-border-bottom bi-border-right bi-border-corner-right-radius"}`, |
|
|
|
height: BI.toPix(o.height, o.simple ? 0 : 2), |
|
|
|
height: toPix(o.height, o.simple ? 0 : 2), |
|
|
|
width: BI.toPix(c.width, c.border), |
|
|
|
width: toPix(c.width, c.border), |
|
|
|
items: [{ |
|
|
|
items: [{ |
|
|
|
text: "(" + BI.i18nText("BI-Less_Than") + ")", |
|
|
|
text: `(${i18nText("BI-Less_Than")})`, |
|
|
|
iconCls: "less-font", |
|
|
|
iconCls: "less-font", |
|
|
|
value: 0 |
|
|
|
value: 0, |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
text: "(" + BI.i18nText("BI-Less_And_Equal") + ")", |
|
|
|
text: `(${i18nText("BI-Less_And_Equal")})`, |
|
|
|
value: 1, |
|
|
|
value: 1, |
|
|
|
iconCls: "less-equal-font" |
|
|
|
iconCls: "less-equal-font", |
|
|
|
}] |
|
|
|
}], |
|
|
|
}); |
|
|
|
}); |
|
|
|
if (o.closeMin === true) { |
|
|
|
if (o.closeMin === true) { |
|
|
|
this.smallCombo.setValue(1); |
|
|
|
this.smallCombo.setValue(1); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.smallCombo.setValue(0); |
|
|
|
this.smallCombo.setValue(0); |
|
|
|
} |
|
|
|
} |
|
|
|
this.bigCombo = BI.createWidget({ |
|
|
|
this.bigCombo = createWidget({ |
|
|
|
type: "bi.icon_combo", |
|
|
|
type: IconCombo.xtype, |
|
|
|
cls: "number-interval-big-combo" + (o.simple ? "" : " bi-border-top bi-border-bottom bi-border-left bi-border-corner-left-radius"), |
|
|
|
cls: `number-interval-big-combo${o.simple ? "" : " bi-border-top bi-border-bottom bi-border-left bi-border-corner-left-radius"}`, |
|
|
|
height: BI.toPix(o.height, o.simple ? 0 : 2), |
|
|
|
height: toPix(o.height, o.simple ? 0 : 2), |
|
|
|
width: BI.toPix(c.width, c.border), |
|
|
|
width: toPix(c.width, c.border), |
|
|
|
items: [{ |
|
|
|
items: [{ |
|
|
|
text: "(" + BI.i18nText("BI-Less_Than") + ")", |
|
|
|
text: `(${i18nText("BI-Less_Than")})`, |
|
|
|
iconCls: "less-font", |
|
|
|
iconCls: "less-font", |
|
|
|
value: 0 |
|
|
|
value: 0, |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
text: "(" + BI.i18nText("BI-Less_And_Equal") + ")", |
|
|
|
text: `(${i18nText("BI-Less_And_Equal")})`, |
|
|
|
value: 1, |
|
|
|
value: 1, |
|
|
|
iconCls: "less-equal-font" |
|
|
|
iconCls: "less-equal-font", |
|
|
|
}] |
|
|
|
}], |
|
|
|
}); |
|
|
|
}); |
|
|
|
if (o.closeMax === true) { |
|
|
|
if (o.closeMax === true) { |
|
|
|
this.bigCombo.setValue(1); |
|
|
|
this.bigCombo.setValue(1); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.bigCombo.setValue(0); |
|
|
|
this.bigCombo.setValue(0); |
|
|
|
} |
|
|
|
} |
|
|
|
this.label = BI.createWidget({ |
|
|
|
this.label = createWidget({ |
|
|
|
type: "bi.label", |
|
|
|
type: Label.xtype, |
|
|
|
text: BI.i18nText("BI-Basic_Value"), |
|
|
|
text: i18nText("BI-Basic_Value"), |
|
|
|
textHeight: o.height, |
|
|
|
textHeight: o.height, |
|
|
|
// width: BI.toPix(o.width, o.simple ? 0 : c.border * 2),
|
|
|
|
// width: toPix(o.width, o.simple ? 0 : c.border * 2),
|
|
|
|
hgap: 5, |
|
|
|
hgap: 5, |
|
|
|
height: o.height, |
|
|
|
height: o.height, |
|
|
|
level: "warning", |
|
|
|
level: "warning", |
|
|
|
tipType: "warning" |
|
|
|
tipType: "warning", |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.left = BI.createWidget({ |
|
|
|
this.left = createWidget({ |
|
|
|
type: "bi.horizontal_fill", |
|
|
|
type: "bi.horizontal_fill", |
|
|
|
columnSize: ["fill", ""], |
|
|
|
columnSize: ["fill", ""], |
|
|
|
items: [{ |
|
|
|
items: [{ |
|
|
|
el: self.smallEditor |
|
|
|
el: self.smallEditor, |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
el: self.smallCombo, |
|
|
|
el: self.smallCombo, |
|
|
|
}] |
|
|
|
}], |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
this.right = BI.createWidget({ |
|
|
|
this.right = createWidget({ |
|
|
|
type: "bi.horizontal_fill", |
|
|
|
type: "bi.horizontal_fill", |
|
|
|
columnSize: ["", "fill"], |
|
|
|
columnSize: ["", "fill"], |
|
|
|
items: [{ |
|
|
|
items: [{ |
|
|
@ -180,38 +196,38 @@ BI.NumberInterval = BI.inherit(BI.Single, { |
|
|
|
el: self.bigEditor, |
|
|
|
el: self.bigEditor, |
|
|
|
// BI-23883 间距考虑边框
|
|
|
|
// BI-23883 间距考虑边框
|
|
|
|
// lgap: 1
|
|
|
|
// lgap: 1
|
|
|
|
}] |
|
|
|
}], |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
BI.createWidget({ |
|
|
|
createWidget({ |
|
|
|
element: self, |
|
|
|
element: self, |
|
|
|
type: "bi.horizontal_fill", |
|
|
|
type: "bi.horizontal_fill", |
|
|
|
columnSize: ["fill", "", "fill"], |
|
|
|
columnSize: ["fill", "", "fill"], |
|
|
|
items: [{ |
|
|
|
items: [{ |
|
|
|
el: self.left |
|
|
|
el: self.left, |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
el: self.label |
|
|
|
el: self.label, |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
el: self.right |
|
|
|
el: self.right, |
|
|
|
}] |
|
|
|
}], |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// BI.createWidget({
|
|
|
|
// createWidget({
|
|
|
|
// element: self,
|
|
|
|
// element: self,
|
|
|
|
// type: "bi.horizontal_auto",
|
|
|
|
// type: HorizontalAutoLayout.xtype,
|
|
|
|
// items: [
|
|
|
|
// items: [
|
|
|
|
// self.label
|
|
|
|
// self.label
|
|
|
|
// ]
|
|
|
|
// ]
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
|
|
// BI.createWidget({
|
|
|
|
// createWidget({
|
|
|
|
// element: self,
|
|
|
|
// element: self,
|
|
|
|
// type: "bi.center",
|
|
|
|
// type: CenterLayout.xtype,
|
|
|
|
// hgap: 15,
|
|
|
|
// hgap: 15,
|
|
|
|
// height: o.height,
|
|
|
|
// height: o.height,
|
|
|
|
// items: [
|
|
|
|
// items: [
|
|
|
|
// {
|
|
|
|
// {
|
|
|
|
// type: "bi.absolute",
|
|
|
|
// type: AbsoluteLayout.xtype,
|
|
|
|
// items: [{
|
|
|
|
// items: [{
|
|
|
|
// el: self.left,
|
|
|
|
// el: self.left,
|
|
|
|
// left: -15,
|
|
|
|
// left: -15,
|
|
|
@ -220,7 +236,7 @@ BI.NumberInterval = BI.inherit(BI.Single, { |
|
|
|
// bottom: 0
|
|
|
|
// bottom: 0
|
|
|
|
// }]
|
|
|
|
// }]
|
|
|
|
// }, {
|
|
|
|
// }, {
|
|
|
|
// type: "bi.absolute",
|
|
|
|
// type: AbsoluteLayout.xtype,
|
|
|
|
// items: [{
|
|
|
|
// items: [{
|
|
|
|
// el: self.right,
|
|
|
|
// el: self.right,
|
|
|
|
// left: 0,
|
|
|
|
// left: 0,
|
|
|
@ -246,264 +262,274 @@ BI.NumberInterval = BI.inherit(BI.Single, { |
|
|
|
self._setEditorValueChangedEvent(self.smallEditor); |
|
|
|
self._setEditorValueChangedEvent(self.smallEditor); |
|
|
|
|
|
|
|
|
|
|
|
self._checkValidation(); |
|
|
|
self._checkValidation(); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_checkValidation: function () { |
|
|
|
_checkValidation() { |
|
|
|
var self = this, c = this.constants, o = this.options; |
|
|
|
const self = this, |
|
|
|
|
|
|
|
c = this.constants, |
|
|
|
|
|
|
|
o = this.options; |
|
|
|
self._setTitle(""); |
|
|
|
self._setTitle(""); |
|
|
|
BI.Bubbles.hide(c.typeError); |
|
|
|
Bubbles.hide(c.typeError); |
|
|
|
BI.Bubbles.hide(c.numberError); |
|
|
|
Bubbles.hide(c.numberError); |
|
|
|
BI.Bubbles.hide(c.signalError); |
|
|
|
Bubbles.hide(c.signalError); |
|
|
|
if (!self.smallEditor.isValid() || !self.bigEditor.isValid()) { |
|
|
|
if (!self.smallEditor.isValid() || !self.bigEditor.isValid()) { |
|
|
|
self.element.removeClass("number-error"); |
|
|
|
self.element.removeClass("number-error"); |
|
|
|
o.validation = "invalid"; |
|
|
|
o.validation = "invalid"; |
|
|
|
|
|
|
|
|
|
|
|
return c.typeError; |
|
|
|
return c.typeError; |
|
|
|
} |
|
|
|
} |
|
|
|
if (BI.isEmptyString(self.smallEditor.getValue()) || BI.isEmptyString(self.bigEditor.getValue())) { |
|
|
|
if (isEmptyString(self.smallEditor.getValue()) || isEmptyString(self.bigEditor.getValue())) { |
|
|
|
self.element.removeClass("number-error"); |
|
|
|
self.element.removeClass("number-error"); |
|
|
|
o.validation = "valid"; |
|
|
|
o.validation = "valid"; |
|
|
|
|
|
|
|
|
|
|
|
return ""; |
|
|
|
return ""; |
|
|
|
} |
|
|
|
} |
|
|
|
var smallValue = parseFloat(self.smallEditor.getValue()), bigValue = parseFloat(self.bigEditor.getValue()), |
|
|
|
const smallValue = parseFloat(self.smallEditor.getValue()), |
|
|
|
bigComboValue = self.bigCombo.getValue(), smallComboValue = self.smallCombo.getValue(); |
|
|
|
bigValue = parseFloat(self.bigEditor.getValue()), |
|
|
|
|
|
|
|
bigComboValue = self.bigCombo.getValue(), |
|
|
|
|
|
|
|
smallComboValue = self.smallCombo.getValue(); |
|
|
|
if (bigComboValue[0] === c.less_equal && smallComboValue[0] === c.less_equal) { |
|
|
|
if (bigComboValue[0] === c.less_equal && smallComboValue[0] === c.less_equal) { |
|
|
|
if (smallValue > bigValue) { |
|
|
|
if (smallValue > bigValue) { |
|
|
|
self.element.addClass("number-error"); |
|
|
|
self.element.addClass("number-error"); |
|
|
|
o.validation = "invalid"; |
|
|
|
o.validation = "invalid"; |
|
|
|
|
|
|
|
|
|
|
|
return c.numberError; |
|
|
|
return c.numberError; |
|
|
|
} |
|
|
|
} |
|
|
|
self.element.removeClass("number-error"); |
|
|
|
self.element.removeClass("number-error"); |
|
|
|
o.validation = "valid"; |
|
|
|
o.validation = "valid"; |
|
|
|
|
|
|
|
|
|
|
|
return ""; |
|
|
|
return ""; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if (smallValue > bigValue) { |
|
|
|
if (smallValue > bigValue) { |
|
|
|
self.element.addClass("number-error"); |
|
|
|
self.element.addClass("number-error"); |
|
|
|
o.validation = "invalid"; |
|
|
|
o.validation = "invalid"; |
|
|
|
|
|
|
|
|
|
|
|
return c.numberError; |
|
|
|
return c.numberError; |
|
|
|
} else if (smallValue === bigValue) { |
|
|
|
} else if (smallValue === bigValue) { |
|
|
|
self.element.addClass("number-error"); |
|
|
|
self.element.addClass("number-error"); |
|
|
|
o.validation = "invalid"; |
|
|
|
o.validation = "invalid"; |
|
|
|
|
|
|
|
|
|
|
|
return c.signalError; |
|
|
|
return c.signalError; |
|
|
|
} |
|
|
|
} |
|
|
|
self.element.removeClass("number-error"); |
|
|
|
self.element.removeClass("number-error"); |
|
|
|
o.validation = "valid"; |
|
|
|
o.validation = "valid"; |
|
|
|
|
|
|
|
|
|
|
|
return ""; |
|
|
|
return ""; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_setTitle(v) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_setTitle: function (v) { |
|
|
|
|
|
|
|
this.label.setTitle(v); |
|
|
|
this.label.setTitle(v); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_setFocusEvent: function (w) { |
|
|
|
_setFocusEvent(w) { |
|
|
|
var self = this, c = this.constants; |
|
|
|
const self = this, |
|
|
|
w.on(BI.NumberIntervalSingleEidtor.EVENT_FOCUS, function () { |
|
|
|
c = this.constants; |
|
|
|
|
|
|
|
w.on(NumberIntervalSingleEidtor.EVENT_FOCUS, () => { |
|
|
|
self._setTitle(""); |
|
|
|
self._setTitle(""); |
|
|
|
switch (self._checkValidation()) { |
|
|
|
switch (self._checkValidation()) { |
|
|
|
case c.typeError: |
|
|
|
case c.typeError: |
|
|
|
BI.Bubbles.show(c.typeError, BI.i18nText("BI-Numerical_Interval_Input_Data"), self, { |
|
|
|
Bubbles.show(c.typeError, i18nText("BI-Numerical_Interval_Input_Data"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.numberError: |
|
|
|
case c.numberError: |
|
|
|
BI.Bubbles.show(c.numberError, BI.i18nText("BI-Numerical_Interval_Number_Value"), self, { |
|
|
|
Bubbles.show(c.numberError, i18nText("BI-Numerical_Interval_Number_Value"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.signalError: |
|
|
|
case c.signalError: |
|
|
|
BI.Bubbles.show(c.signalError, BI.i18nText("BI-Numerical_Interval_Signal_Value"), self, { |
|
|
|
Bubbles.show(c.signalError, i18nText("BI-Numerical_Interval_Signal_Value"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default : |
|
|
|
default: |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
} |
|
|
|
_setBlurEvent: function (w) { |
|
|
|
|
|
|
|
var c = this.constants, self = this; |
|
|
|
_setBlurEvent(w) { |
|
|
|
w.on(BI.NumberIntervalSingleEidtor.EVENT_BLUR, function () { |
|
|
|
const c = this.constants, |
|
|
|
BI.Bubbles.hide(c.typeError); |
|
|
|
self = this; |
|
|
|
BI.Bubbles.hide(c.numberError); |
|
|
|
w.on(NumberIntervalSingleEidtor.EVENT_BLUR, () => { |
|
|
|
BI.Bubbles.hide(c.signalError); |
|
|
|
Bubbles.hide(c.typeError); |
|
|
|
|
|
|
|
Bubbles.hide(c.numberError); |
|
|
|
|
|
|
|
Bubbles.hide(c.signalError); |
|
|
|
switch (self._checkValidation()) { |
|
|
|
switch (self._checkValidation()) { |
|
|
|
case c.typeError: |
|
|
|
case c.typeError: |
|
|
|
self._setTitle(BI.i18nText("BI-Numerical_Interval_Input_Data")); |
|
|
|
self._setTitle(i18nText("BI-Numerical_Interval_Input_Data")); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.numberError: |
|
|
|
case c.numberError: |
|
|
|
self._setTitle(BI.i18nText("BI-Numerical_Interval_Number_Value")); |
|
|
|
self._setTitle(i18nText("BI-Numerical_Interval_Number_Value")); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.signalError: |
|
|
|
case c.signalError: |
|
|
|
self._setTitle(BI.i18nText("BI-Numerical_Interval_Signal_Value")); |
|
|
|
self._setTitle(i18nText("BI-Numerical_Interval_Signal_Value")); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
self._setTitle(""); |
|
|
|
self._setTitle(""); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_setErrorEvent: function (w) { |
|
|
|
_setErrorEvent(w) { |
|
|
|
var c = this.constants, self = this; |
|
|
|
const c = this.constants, |
|
|
|
w.on(BI.NumberIntervalSingleEidtor.EVENT_ERROR, function () { |
|
|
|
self = this; |
|
|
|
|
|
|
|
w.on(NumberIntervalSingleEidtor.EVENT_ERROR, () => { |
|
|
|
self._checkValidation(); |
|
|
|
self._checkValidation(); |
|
|
|
BI.Bubbles.show(c.typeError, BI.i18nText("BI-Numerical_Interval_Input_Data"), self, { |
|
|
|
Bubbles.show(c.typeError, i18nText("BI-Numerical_Interval_Input_Data"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_ERROR); |
|
|
|
self.fireEvent(NumberInterval.EVENT_ERROR); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_setValidEvent: function (w) { |
|
|
|
_setValidEvent(w) { |
|
|
|
var self = this, c = this.constants; |
|
|
|
const self = this, |
|
|
|
w.on(BI.NumberIntervalSingleEidtor.EVENT_VALID, function () { |
|
|
|
c = this.constants; |
|
|
|
|
|
|
|
w.on(NumberIntervalSingleEidtor.EVENT_VALID, () => { |
|
|
|
switch (self._checkValidation()) { |
|
|
|
switch (self._checkValidation()) { |
|
|
|
case c.numberError: |
|
|
|
case c.numberError: |
|
|
|
BI.Bubbles.show(c.numberError, BI.i18nText("BI-Numerical_Interval_Number_Value"), self, { |
|
|
|
Bubbles.show(c.numberError, i18nText("BI-Numerical_Interval_Number_Value"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_ERROR); |
|
|
|
self.fireEvent(NumberInterval.EVENT_ERROR); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.signalError: |
|
|
|
case c.signalError: |
|
|
|
BI.Bubbles.show(c.signalError, BI.i18nText("BI-Numerical_Interval_Signal_Value"), self, { |
|
|
|
Bubbles.show(c.signalError, i18nText("BI-Numerical_Interval_Signal_Value"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_ERROR); |
|
|
|
self.fireEvent(NumberInterval.EVENT_ERROR); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_VALID); |
|
|
|
self.fireEvent(NumberInterval.EVENT_VALID); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_setEditorValueChangedEvent: function (w) { |
|
|
|
_setEditorValueChangedEvent(w) { |
|
|
|
var self = this, c = this.constants; |
|
|
|
const self = this, |
|
|
|
w.on(BI.NumberIntervalSingleEidtor.EVENT_CHANGE, function () { |
|
|
|
c = this.constants; |
|
|
|
|
|
|
|
w.on(NumberIntervalSingleEidtor.EVENT_CHANGE, () => { |
|
|
|
switch (self._checkValidation()) { |
|
|
|
switch (self._checkValidation()) { |
|
|
|
case c.typeError: |
|
|
|
case c.typeError: |
|
|
|
BI.Bubbles.show(c.typeError, BI.i18nText("BI-Numerical_Interval_Input_Data"), self, { |
|
|
|
Bubbles.show(c.typeError, i18nText("BI-Numerical_Interval_Input_Data"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.numberError: |
|
|
|
case c.numberError: |
|
|
|
BI.Bubbles.show(c.numberError, BI.i18nText("BI-Numerical_Interval_Number_Value"), self, { |
|
|
|
Bubbles.show(c.numberError, i18nText("BI-Numerical_Interval_Number_Value"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.signalError: |
|
|
|
case c.signalError: |
|
|
|
BI.Bubbles.show(c.signalError, BI.i18nText("BI-Numerical_Interval_Signal_Value"), self, { |
|
|
|
Bubbles.show(c.signalError, i18nText("BI-Numerical_Interval_Signal_Value"), self, { |
|
|
|
offsetStyle: "left", |
|
|
|
offsetStyle: "left", |
|
|
|
adjustYOffset: c.adjustYOffset |
|
|
|
adjustYOffset: c.adjustYOffset, |
|
|
|
}); |
|
|
|
}); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default : |
|
|
|
default: |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_CHANGE); |
|
|
|
self.fireEvent(NumberInterval.EVENT_CHANGE); |
|
|
|
}); |
|
|
|
}); |
|
|
|
w.on(BI.NumberIntervalSingleEidtor.EVENT_CONFIRM, function () { |
|
|
|
w.on(NumberIntervalSingleEidtor.EVENT_CONFIRM, () => { |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_CONFIRM); |
|
|
|
self.fireEvent(NumberInterval.EVENT_CONFIRM); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_setComboValueChangedEvent: function (w) { |
|
|
|
_setComboValueChangedEvent(w) { |
|
|
|
var self = this, c = this.constants; |
|
|
|
const self = this, |
|
|
|
w.on(BI.IconCombo.EVENT_CHANGE, function () { |
|
|
|
c = this.constants; |
|
|
|
|
|
|
|
w.on(IconCombo.EVENT_CHANGE, () => { |
|
|
|
switch (self._checkValidation()) { |
|
|
|
switch (self._checkValidation()) { |
|
|
|
case c.typeError: |
|
|
|
case c.typeError: |
|
|
|
self._setTitle(BI.i18nText("BI-Numerical_Interval_Input_Data")); |
|
|
|
self._setTitle(i18nText("BI-Numerical_Interval_Input_Data")); |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_ERROR); |
|
|
|
self.fireEvent(NumberInterval.EVENT_ERROR); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.numberError: |
|
|
|
case c.numberError: |
|
|
|
self._setTitle(BI.i18nText("BI-Numerical_Interval_Number_Value")); |
|
|
|
self._setTitle(i18nText("BI-Numerical_Interval_Number_Value")); |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_ERROR); |
|
|
|
self.fireEvent(NumberInterval.EVENT_ERROR); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case c.signalError: |
|
|
|
case c.signalError: |
|
|
|
self._setTitle(BI.i18nText("BI-Numerical_Interval_Signal_Value")); |
|
|
|
self._setTitle(i18nText("BI-Numerical_Interval_Signal_Value")); |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_ERROR); |
|
|
|
self.fireEvent(NumberInterval.EVENT_ERROR); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default : |
|
|
|
default: |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_CHANGE); |
|
|
|
self.fireEvent(NumberInterval.EVENT_CHANGE); |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_CONFIRM); |
|
|
|
self.fireEvent(NumberInterval.EVENT_CONFIRM); |
|
|
|
self.fireEvent(BI.NumberInterval.EVENT_VALID); |
|
|
|
self.fireEvent(NumberInterval.EVENT_VALID); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
isStateValid: function () { |
|
|
|
isStateValid() { |
|
|
|
return this.options.validation === "valid"; |
|
|
|
return this.options.validation === "valid"; |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
setMinEnable: function (b) { |
|
|
|
setMinEnable(b) { |
|
|
|
this.smallEditor.setEnable(b); |
|
|
|
this.smallEditor.setEnable(b); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
setCloseMinEnable: function (b) { |
|
|
|
setCloseMinEnable(b) { |
|
|
|
this.smallCombo.setEnable(b); |
|
|
|
this.smallCombo.setEnable(b); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
setMaxEnable: function (b) { |
|
|
|
setMaxEnable(b) { |
|
|
|
this.bigEditor.setEnable(b); |
|
|
|
this.bigEditor.setEnable(b); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
setCloseMaxEnable: function (b) { |
|
|
|
setCloseMaxEnable(b) { |
|
|
|
this.bigCombo.setEnable(b); |
|
|
|
this.bigCombo.setEnable(b); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
showNumTip: function () { |
|
|
|
showNumTip() { |
|
|
|
this.smallTip.setVisible(true); |
|
|
|
this.smallTip.setVisible(true); |
|
|
|
this.bigTip.setVisible(true); |
|
|
|
this.bigTip.setVisible(true); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
hideNumTip: function () { |
|
|
|
hideNumTip() { |
|
|
|
this.smallTip.setVisible(false); |
|
|
|
this.smallTip.setVisible(false); |
|
|
|
this.bigTip.setVisible(false); |
|
|
|
this.bigTip.setVisible(false); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
setNumTip: function (numTip) { |
|
|
|
setNumTip(numTip) { |
|
|
|
this.smallTip.setText(numTip); |
|
|
|
this.smallTip.setText(numTip); |
|
|
|
this.bigTip.setText(numTip); |
|
|
|
this.bigTip.setText(numTip); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
getNumTip: function () { |
|
|
|
getNumTip() { |
|
|
|
return this.smallTip.getText(); |
|
|
|
return this.smallTip.getText(); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
setValue: function (data) { |
|
|
|
setValue(data) { |
|
|
|
data = data || {}; |
|
|
|
data = data || {}; |
|
|
|
var self = this, combo_value; |
|
|
|
const self = this; |
|
|
|
if (BI.isNumeric(data.min) || BI.isEmptyString(data.min)) { |
|
|
|
let combo_value; |
|
|
|
|
|
|
|
if (isNumeric(data.min) || isEmptyString(data.min)) { |
|
|
|
self.smallEditor.setValue(data.min); |
|
|
|
self.smallEditor.setValue(data.min); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!BI.isNotNull(data.min)) { |
|
|
|
if (!isNotNull(data.min)) { |
|
|
|
self.smallEditor.setValue(""); |
|
|
|
self.smallEditor.setValue(""); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (BI.isNumeric(data.max) || BI.isEmptyString(data.max)) { |
|
|
|
if (isNumeric(data.max) || isEmptyString(data.max)) { |
|
|
|
self.bigEditor.setValue(data.max); |
|
|
|
self.bigEditor.setValue(data.max); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!BI.isNotNull(data.max)) { |
|
|
|
if (!isNotNull(data.max)) { |
|
|
|
self.bigEditor.setValue(""); |
|
|
|
self.bigEditor.setValue(""); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!BI.isNull(data.closeMin)) { |
|
|
|
if (!isNull(data.closeMin)) { |
|
|
|
if (data.closeMin === true) { |
|
|
|
if (data.closeMin === true) { |
|
|
|
combo_value = 1; |
|
|
|
combo_value = 1; |
|
|
|
} else { |
|
|
|
} else { |
|
|
@ -512,7 +538,7 @@ BI.NumberInterval = BI.inherit(BI.Single, { |
|
|
|
self.smallCombo.setValue(combo_value); |
|
|
|
self.smallCombo.setValue(combo_value); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!BI.isNull(data.closeMax)) { |
|
|
|
if (!isNull(data.closeMax)) { |
|
|
|
if (data.closeMax === true) { |
|
|
|
if (data.closeMax === true) { |
|
|
|
combo_value = 1; |
|
|
|
combo_value = 1; |
|
|
|
} else { |
|
|
|
} else { |
|
|
@ -522,11 +548,13 @@ BI.NumberInterval = BI.inherit(BI.Single, { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
this._checkValidation(); |
|
|
|
this._checkValidation(); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getValue: function () { |
|
|
|
getValue() { |
|
|
|
var self = this, value = {}, minComboValue = self.smallCombo.getValue(), maxComboValue = self.bigCombo.getValue(); |
|
|
|
const self = this, |
|
|
|
|
|
|
|
value = {}, |
|
|
|
|
|
|
|
minComboValue = self.smallCombo.getValue(), |
|
|
|
|
|
|
|
maxComboValue = self.bigCombo.getValue(); |
|
|
|
value.min = self.smallEditor.getValue(); |
|
|
|
value.min = self.smallEditor.getValue(); |
|
|
|
value.max = self.bigEditor.getValue(); |
|
|
|
value.max = self.bigEditor.getValue(); |
|
|
|
if (minComboValue[0] === 0) { |
|
|
|
if (minComboValue[0] === 0) { |
|
|
@ -540,26 +568,22 @@ BI.NumberInterval = BI.inherit(BI.Single, { |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
value.closeMax = true; |
|
|
|
value.closeMax = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return value; |
|
|
|
return value; |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
focusMinEditor: function () { |
|
|
|
focusMinEditor() { |
|
|
|
this.smallEditor.focus(); |
|
|
|
this.smallEditor.focus(); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
focusMaxEditor: function () { |
|
|
|
focusMaxEditor() { |
|
|
|
this.bigEditor.focus(); |
|
|
|
this.bigEditor.focus(); |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
destroyed: function () { |
|
|
|
destroyed() { |
|
|
|
var c = this.constants; |
|
|
|
const c = this.constants; |
|
|
|
BI.Bubbles.remove(c.typeError); |
|
|
|
Bubbles.remove(c.typeError); |
|
|
|
BI.Bubbles.remove(c.numberError); |
|
|
|
Bubbles.remove(c.numberError); |
|
|
|
BI.Bubbles.remove(c.signalError); |
|
|
|
Bubbles.remove(c.signalError); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
BI.NumberInterval.EVENT_CHANGE = "EVENT_CHANGE"; |
|
|
|
|
|
|
|
BI.NumberInterval.EVENT_CONFIRM = "EVENT_CONFIRM"; |
|
|
|
|
|
|
|
BI.NumberInterval.EVENT_VALID = "EVENT_VALID"; |
|
|
|
|
|
|
|
BI.NumberInterval.EVENT_ERROR = "EVENT_ERROR"; |
|
|
|
|
|
|
|
BI.shortcut("bi.number_interval", BI.NumberInterval); |
|
|
|
|
|
|
|