Refactor code structure for improved readability and maintainability
This commit is contained in:
914
themes/sources/dhtmlxSlider/codebase/dhtmlxslider.js
Normal file
914
themes/sources/dhtmlxSlider/codebase/dhtmlxslider.js
Normal file
@ -0,0 +1,914 @@
|
||||
/*
|
||||
Product Name: dhtmlxSuite
|
||||
Version: 5.2.0
|
||||
Edition: Professional
|
||||
License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com
|
||||
Copyright UAB Dinamenta http://www.dhtmlx.com
|
||||
*/
|
||||
|
||||
function dhtmlXSlider(data) {
|
||||
|
||||
var that = this;
|
||||
|
||||
this.conf = {
|
||||
size: null,
|
||||
skin: null,
|
||||
vertical: false,
|
||||
min: 0,
|
||||
max: 99,
|
||||
value: 0,
|
||||
step: 1,
|
||||
decimals: 0,
|
||||
margin: 2,
|
||||
border: 1,
|
||||
inverse: false,
|
||||
disabled: false,
|
||||
tooltip: false,
|
||||
visible: true,
|
||||
linkTo: null,
|
||||
range: false, // new in 4.3, range-mode
|
||||
bg: null, // new in 4.3, render bg-div inside track, false for single, true for range
|
||||
bg_mode: "left" // new in 4.3, left or right, if range-mode - between runners
|
||||
};
|
||||
|
||||
this._attachedNode = {};
|
||||
this._movingInitialValues = null;
|
||||
|
||||
this.base = null;
|
||||
|
||||
if (arguments.length > 1) { // init by arguments
|
||||
return new dhtmlXSlider(this._renderArgumets(arguments));
|
||||
}else if (typeof(data) == "string" || (typeof(data) == "object" && data.tagName)) { // init by node
|
||||
return new dhtmlXSlider({parent: data});
|
||||
}
|
||||
|
||||
if (typeof(data.parent) == "string") {
|
||||
this.base = document.getElementById(data.parent);
|
||||
} else {
|
||||
this.base = data.parent;
|
||||
}
|
||||
|
||||
this._mergeConfig(this._readAttFormNode(this.base));
|
||||
this._mergeConfig(data);
|
||||
|
||||
if (this.conf.bg == null) {
|
||||
this.conf.bg = (this.conf.range==true);
|
||||
}
|
||||
|
||||
// fix value/linkto for range-mode
|
||||
if (this.conf.range == true) {
|
||||
if (!(this.conf.value instanceof Array)) this.conf.value = [this.conf.value];
|
||||
if (this.conf.value.length < 2) this.conf.value.push(this.conf.value[0]);
|
||||
if (!(this.conf.linkTo instanceof Array)) this.conf.linkTo = [this.conf.linkTo];
|
||||
}
|
||||
|
||||
this._detectDecimals();
|
||||
|
||||
if (this.conf.size == null || typeof(this.conf.size) == "undefined") {
|
||||
if (this.conf.vertical) {
|
||||
this.conf.size = this.base.offsetHeight;
|
||||
} else {
|
||||
this.conf.size = this.base.offsetWidth;
|
||||
}
|
||||
}
|
||||
|
||||
var skin = this.conf.skin || window.dhx4.skin || (typeof(dhtmlx) != "undefined"? dhtmlx.skin : null) || window.dhx4.skinDetect("dhxslider") || "material";
|
||||
|
||||
this.setSkin(skin);
|
||||
|
||||
this.base.innerHTML = "<div class='dhxsl_container'>"+
|
||||
"<div class='dhxsl_track'>"+
|
||||
(this.conf.bg==true?"<div class='dhxsl_track_bg'></div>":"")+
|
||||
"</div>"+
|
||||
"<div class='dhxsl_runner'></div>"+
|
||||
(this.conf.range==true?"<div class='dhxsl_runner'></div>":"")+
|
||||
"</div>";
|
||||
|
||||
this._nodes = {
|
||||
cont: this.base.firstChild,
|
||||
track: this.base.firstChild.firstChild,
|
||||
runner: this.base.firstChild.childNodes[1],
|
||||
runner2: this.base.firstChild.childNodes[2] // for range-mode
|
||||
};
|
||||
|
||||
this._nodes.cont.onmousedown =
|
||||
this._nodes.track.onmousedown =
|
||||
this._nodes.cont.onselectstart =
|
||||
this._nodes.track.onselectstart = function(e) {
|
||||
e = e || event;
|
||||
if (typeof(e.preventDefault) == "function") {
|
||||
e.preventDefault();
|
||||
} else {
|
||||
e.returnValue = false;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
this._r_actv = null; // active runner
|
||||
|
||||
if (this.conf.range == true) {
|
||||
this.conf.value = this._normalizeRange(this.conf.value, this.conf.min, this.conf.max);
|
||||
} else {
|
||||
this.conf.value = this._normalize(this.conf.value, this.conf.min, this.conf.max);
|
||||
}
|
||||
|
||||
this._setOrient(this.conf.vertical);
|
||||
this.setSize(this.conf.size);
|
||||
|
||||
// events start
|
||||
this._initMover = function(e, index) {
|
||||
|
||||
if (that.conf.disabled) return;
|
||||
|
||||
e = e || event;
|
||||
if (typeof(e.preventDefault) == "function") e.preventDefault();
|
||||
|
||||
if (index != null) {
|
||||
that._r_actv = that._nodes[index==0?"runner":"runner2"];
|
||||
} else {
|
||||
that._r_actv = e.target||e.srcElement;
|
||||
if (that._r_actv.className.indexOf("dhxsl_runner") == -1) that._r_actv = that._nodes.runner;
|
||||
}
|
||||
|
||||
that._r_actv.className = "dhxsl_runner dhxsl_runner_actv";
|
||||
|
||||
that._movingInitialValues = {};
|
||||
if (that.conf.range == true) {
|
||||
that._movingInitialValues.index = (that._r_actv==that._nodes.runner?0:1);
|
||||
that._movingInitialValues.value = that.conf.value[that._movingInitialValues.index];
|
||||
} else {
|
||||
that._movingInitialValues.value = that.conf.value;
|
||||
}
|
||||
that._movingInitialValues.coord = that._getTouchCoord(e);
|
||||
|
||||
if (that.conf.disabled == false) {
|
||||
if (typeof(window.addEventListener) == "function") {
|
||||
window.addEventListener("mousemove", that._move, false);
|
||||
window.addEventListener("mouseup", that._cleanMove, false);
|
||||
window.addEventListener("touchmove", that._move, false);
|
||||
window.addEventListener("touchend", that._cleanMove, false);
|
||||
} else {
|
||||
document.body.attachEvent("onmousemove", that._move);
|
||||
document.body.attachEvent("onmouseup", that._cleanMove);
|
||||
}
|
||||
}
|
||||
that.callEvent("onMouseDown",[that._r_actv==that._nodes.runner?0:1]);
|
||||
return false;
|
||||
};
|
||||
|
||||
this._move = function(e) {
|
||||
|
||||
if (that.conf.disabled) return;
|
||||
|
||||
e = e || event;
|
||||
if (typeof(e.preventDefault) == "function") e.preventDefault();
|
||||
|
||||
var runner = (that.conf.vertical) ? that._r_actv.offsetHeight : that._r_actv.offsetWidth;
|
||||
var range = that.conf.max - that.conf.min;
|
||||
var n_cord = that._getTouchCoord(e);
|
||||
var new_value = that._movingInitialValues.value + (n_cord - that._movingInitialValues.coord)*range/(that.conf.size - runner)*(that.conf.inverse?-1:1);
|
||||
|
||||
if (that.conf.range == true) {
|
||||
var v = [that.conf.value[0], that.conf.value[1]];
|
||||
// limits
|
||||
if (that._movingInitialValues.index == 0) {
|
||||
v[0] = Math.min(v[1], new_value);
|
||||
} else if (that._movingInitialValues.index == 1) {
|
||||
v[1] = Math.max(v[0], new_value);
|
||||
}
|
||||
that.setValue(v, true);
|
||||
} else {
|
||||
that.setValue(new_value, true);
|
||||
}
|
||||
};
|
||||
|
||||
this._cleanMove = function(e) {
|
||||
if (typeof(window.addEventListener) == "function") {
|
||||
window.removeEventListener("mousemove", that._move, false);
|
||||
window.removeEventListener("mouseup", that._cleanMove, false);
|
||||
window.removeEventListener("touchmove", that._move, false);
|
||||
window.removeEventListener("touchend", that._cleanMove, false);
|
||||
} else {
|
||||
document.body.detachEvent("onmousemove", that._move);
|
||||
document.body.detachEvent("onmouseup", that._cleanMove);
|
||||
}
|
||||
that._movingInitialValues = null;
|
||||
that._r_actv.className = that._r_actv.className.replace(/\s{0,}dhxsl_runner_actv/gi,"");
|
||||
that.callEvent("onSlideEnd", [that.conf.value]);
|
||||
that.callEvent("onMouseUp", [that._r_actv==that._nodes.runner?0:1]);
|
||||
that._r_actv = null;
|
||||
};
|
||||
|
||||
this._doOnSetValue = function(e) {
|
||||
|
||||
if (that.conf.disabled) return;
|
||||
|
||||
if (that._movingInitialValues != null) return false;
|
||||
|
||||
e = e || event;
|
||||
if (typeof(e.preventDefault) == "function") e.preventDefault();
|
||||
|
||||
var ofs = 0;
|
||||
var t = e.target||e.srcElement;
|
||||
if (t.className.match(/dhxsl_track_bg/) != null) ofs = parseInt(t.style[that.conf.vertical?"top":"left"]);
|
||||
|
||||
if (e.type.match(/touch/) != null) {
|
||||
var n_coord = that._getTouchCoord(e) + ofs;
|
||||
} else {
|
||||
var n_coord = (that.conf.vertical ? (e.offsetY || e.layerY) : (e.offsetX || e.layerX)) + ofs;
|
||||
}
|
||||
var runner = (that.conf.vertical ? that._nodes.runner.offsetHeight : that._nodes.runner.offsetWidth) + ofs;
|
||||
var range = that.conf.max - that.conf.min;
|
||||
|
||||
var index = null;
|
||||
var new_value = null;
|
||||
|
||||
if (that.conf.inverse == true) {
|
||||
new_value = that.conf.max-(n_coord*range/(that.conf.size));
|
||||
} else {
|
||||
new_value = (n_coord*range/(that.conf.size) + that.conf.min);
|
||||
}
|
||||
|
||||
if (that.conf.range == true) {
|
||||
index = (Math.abs(that.conf.value[0]-new_value) <= Math.abs(that.conf.value[1]-new_value) ? 0 : 1); // select nearest runner
|
||||
new_value = [index==0?new_value:that.conf.value[0], index==1?new_value:that.conf.value[1]];
|
||||
}
|
||||
|
||||
that.conf.init_index = index;
|
||||
that.setValue(new_value, true);
|
||||
that.conf.init_index = null;
|
||||
|
||||
if (that._movingInitialValues == null) that._initMover(e, index);
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
this._doOnChangeInput = function(e) {
|
||||
e = e || event;
|
||||
var target = e.target || e.srcElement;
|
||||
that.setValue(target.value);
|
||||
};
|
||||
|
||||
this._doOnKeyDown = function(e) {
|
||||
e = e || event;
|
||||
var target = e.target || e.srcElement;
|
||||
if (e.keyCode == 13) that.setValue(target.value);
|
||||
};
|
||||
|
||||
// events end
|
||||
|
||||
this._attachEvents(this._nodes);
|
||||
|
||||
this.unload = function() {
|
||||
|
||||
dhx4._eventable(this, "clear");
|
||||
|
||||
this._detachNode();
|
||||
this._detachEvents(this._nodes);
|
||||
|
||||
this.base.removeChild(this._nodes.cont);
|
||||
|
||||
this._nodes.cont.onmousedown =
|
||||
this._nodes.track.onmousedown =
|
||||
this._nodes.cont.onselectstart =
|
||||
this._nodes.track.onselectstart = null;
|
||||
|
||||
delete this._nodes.cont;
|
||||
delete this._nodes.track;
|
||||
delete this._nodes.max;
|
||||
delete this._nodes.min;
|
||||
delete this._nodes.runner;
|
||||
if (this._nodes.runner2) delete this._nodes.runner2;
|
||||
|
||||
if (/\s?dhtmlxslider_\S*/.test(this.base.className)) {
|
||||
this.base.className = this.base.className.replace(/\s?dhtmlxslider_\S*/, "");
|
||||
}
|
||||
|
||||
for (var key in this) this[key] = null;
|
||||
|
||||
that = null;
|
||||
};
|
||||
|
||||
dhx4._eventable(this);
|
||||
|
||||
if (this.conf.disabled) {
|
||||
this.disable();
|
||||
}
|
||||
|
||||
if (this.conf.tooltip) {
|
||||
this.enableTooltip();
|
||||
}
|
||||
|
||||
if (!this.conf.visible) {
|
||||
this.hide();
|
||||
}
|
||||
|
||||
if (this.conf.linkTo) {
|
||||
this.linkTo(this.conf.linkTo);
|
||||
}
|
||||
|
||||
return this;
|
||||
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._setOrient = function(vertical) {
|
||||
vertical = vertical || false;
|
||||
|
||||
if (/\s?dhxsl_cont_hr/i.test(this._nodes.cont.className)) {
|
||||
this._nodes.cont.className = this._nodes.cont.className.replace(/\s?dhxsl_cont_hr/i, "");
|
||||
}
|
||||
|
||||
if (/\s?dhxsl_cont_vr/i.test(this._nodes.cont.className)) {
|
||||
this._nodes.cont.className = this._nodes.cont.className.replace(/\s?dhxsl_cont_vr/i, "");
|
||||
}
|
||||
|
||||
if (vertical) {
|
||||
this._nodes.cont.className += " dhxsl_cont_vr";
|
||||
} else {
|
||||
this._nodes.cont.className += " dhxsl_cont_hr";
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._getTouchCoord = function(e) {
|
||||
var type = (e.type.match(/mouse/) != null ? "client":"page") + (this.conf.vertical == true ? "Y":"X");
|
||||
var coord = (typeof(e[type]) != "undefined" && e[type] != 0 ? e[type] : (e.touches != null && e.touches[0] != null ? e.touches[0][type]||0:0));
|
||||
return coord;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._attachEvents = function(nodes) {
|
||||
if (typeof(window.addEventListener) == "function") {
|
||||
nodes.runner.addEventListener("mousedown", this._initMover, false);
|
||||
nodes.runner.addEventListener("touchstart", this._initMover, false);
|
||||
nodes.cont.addEventListener("mousedown", this._doOnSetValue, false);
|
||||
nodes.cont.addEventListener("touchstart", this._doOnSetValue, false);
|
||||
if (nodes.runner2) {
|
||||
nodes.runner2.addEventListener("mousedown", this._initMover, false);
|
||||
nodes.runner2.addEventListener("touchstart", this._initMover, false);
|
||||
}
|
||||
} else {
|
||||
nodes.runner.attachEvent("onmousedown", this._initMover);
|
||||
nodes.cont.attachEvent("onmousedown", this._doOnSetValue);
|
||||
if (nodes.runner2) {
|
||||
nodes.runner2.attachEvent("onmousedown", this._initMover);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._detachEvents = function(nodes) {
|
||||
if (typeof(window.addEventListener) == "function") {
|
||||
nodes.runner.removeEventListener("mousedown", this._initMover, false);
|
||||
nodes.runner.removeEventListener("touchstart", this._initMover, false);
|
||||
nodes.cont.removeEventListener("mousedown", this._doOnSetValue, false);
|
||||
nodes.cont.removeEventListener("touchstart", this._doOnSetValue, false);
|
||||
if (nodes.runner2) {
|
||||
nodes.runner2.removeEventListener("mousedown", this._initMover, false);
|
||||
nodes.runner2.removeEventListener("touchstart", this._initMover, false);
|
||||
}
|
||||
} else {
|
||||
nodes.runner.detachEvent("onmousedown", this._initMover);
|
||||
nodes.cont.detachEvent("onmousedown", this._doOnSetValue);
|
||||
if (nodes.runner2) {
|
||||
nodes.runner2.detachEvent("onmousedown", this._initMover);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._mergeConfig = function(data) {
|
||||
for (var key in data) {
|
||||
switch (key.toLowerCase()) {
|
||||
case "min":
|
||||
case "max":
|
||||
case "size":
|
||||
case "step":
|
||||
case "value":
|
||||
case "inverse":
|
||||
this.conf[key] = data[key];
|
||||
break;
|
||||
case "tooltip":
|
||||
case "visible":
|
||||
case "vertical":
|
||||
case "disabled":
|
||||
case "range":
|
||||
case "bg":
|
||||
this.conf[key] = dhx4.s2b(data[key]);
|
||||
break;
|
||||
case "bg_mode":
|
||||
this.conf[key] = ({"left":"left","right":"right"}[data[key]])||"left";
|
||||
break;
|
||||
case "parent":
|
||||
continue;
|
||||
break;
|
||||
case "skin":
|
||||
this.conf[key] = (this._skinCollection[data[key]] == true ? data[key] : null); // reset not supported 3.6 skins to default
|
||||
break;
|
||||
default:
|
||||
this.conf[key] = data[key];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._readAttFormNode = function(node) {
|
||||
var atts = node.attributes, l = atts.length, i, answer = {}, att;
|
||||
|
||||
for (i=0; i<l; i++) {
|
||||
att = atts[i];
|
||||
switch (att.name.toLowerCase()) {
|
||||
case "size":
|
||||
case "min":
|
||||
case "max":
|
||||
case "value":
|
||||
case "step":
|
||||
answer[att.name] = Number(att.value);
|
||||
break;
|
||||
case "skin":
|
||||
answer[att.name] = att.value;
|
||||
break;
|
||||
case "vertical":
|
||||
case "disabled":
|
||||
case "visible":
|
||||
case "range":
|
||||
case "bg":
|
||||
answer[att.name] = dhx4.s2b(att.value);
|
||||
break;
|
||||
case "linkto":
|
||||
answer[att.name] = att.value;
|
||||
break;
|
||||
case "tooltip":
|
||||
answer[att.name] = dhx4.s2b(att.value);
|
||||
break;
|
||||
case "bg_mode":
|
||||
answer[att.name] = ({"left":"left","right":"right"}[att.value])||"left";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return answer;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._renderArgumets = function(arg) {
|
||||
var answer = {}, i,l;
|
||||
l = arg.length;
|
||||
|
||||
for (i=0; i<l; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
answer.parent = arg[i];
|
||||
break;
|
||||
case 1:
|
||||
answer.size = arg[i];
|
||||
break;
|
||||
case 2:
|
||||
answer.skin = arg[i];
|
||||
break;
|
||||
case 3:
|
||||
answer.vertical = arg[i];
|
||||
break;
|
||||
case 4:
|
||||
answer.min = arg[i];
|
||||
break;
|
||||
case 5:
|
||||
answer.max = arg[i];
|
||||
break;
|
||||
case 6:
|
||||
answer.value = arg[i];
|
||||
break;
|
||||
case 7:
|
||||
answer.step = arg[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return answer;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._skinCollection = {
|
||||
dhx_skyblue: true,
|
||||
dhx_web: true,
|
||||
dhx_terrace: true,
|
||||
material: true
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._indexOf = function(arr, el) {
|
||||
var i,l,answer = -1;
|
||||
l = arr.length;
|
||||
for (i=l; i>=0; i--) {
|
||||
if (arr[i] == el) {
|
||||
answer = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return answer;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._refreshRunner = function(index) {
|
||||
|
||||
var k = (this.conf.vertical == true ? {x: "top", y: "left", ofs_w: "offsetHeight", ofs_h: "offsetWidth"} : {x: "left", y: "top", ofs_w: "offsetWidth", ofs_h: "offsetHeight"});
|
||||
|
||||
var cmax = this._nodes.cont[k.ofs_w] - this._nodes.runner[k.ofs_w];
|
||||
|
||||
var r1 = this._nodes.runner;
|
||||
var r2 = this._nodes.runner2;
|
||||
|
||||
// single or left
|
||||
if (index == null || index == 0) {
|
||||
var cp = this._getCoord(cmax, (this.conf.value instanceof Array?this.conf.value[0]:this.conf.value));
|
||||
r1.style[k.x] = cp + this.conf.border + "px";
|
||||
r1.style[k.y] = Math.round((this._nodes.cont[k.ofs_h] - r1[k.ofs_h])/2) + "px";
|
||||
}
|
||||
|
||||
// right
|
||||
if (this.conf.range == true && (index == null || index == 1)) {
|
||||
var cp = this._getCoord(cmax, this.conf.value[1]);
|
||||
r2.style[k.x] = cp + this.conf.border + "px";
|
||||
r2.style[k.y] = Math.round((this._nodes.cont[k.ofs_h] - r1[k.ofs_h])/2) + "px";
|
||||
}
|
||||
|
||||
// check z-index
|
||||
if (this.conf.range == true) {
|
||||
if (r1.style[k.x] == r2.style[k.x] && this.conf.value[1] == this.conf.max) {
|
||||
if (r1.style.zIndex != 2) r1.style.zIndex = 2;
|
||||
} else {
|
||||
if (r1.style.zIndex == 2) r1.style.zIndex = 1;
|
||||
}
|
||||
}
|
||||
|
||||
r1 = r2 = null;
|
||||
|
||||
this._refreshBG();
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._setValueByCoord = function(data) {
|
||||
var cx = dhx4.absLeft(this._nodes.cont),
|
||||
cy = dhx4.absTop(this._nodes.cont),
|
||||
value, k;
|
||||
|
||||
if (this.conf.vertical) {
|
||||
k = (data.y - cy - this._nodes.runner.offsetHeight/2)/(this._nodes.cont.offsetHeight - this._nodes.runner.offsetHeight);
|
||||
} else {
|
||||
k = (data.x - cx - this._nodes.runner.offsetWidth/2)/(this._nodes.cont.offsetWidth - this._nodes.runner.offsetWidth);
|
||||
}
|
||||
|
||||
value = (this.conf.max-this.conf.min)*k+this.conf.min;
|
||||
|
||||
this.setValue(value, true);
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._getCoord = function(max, value) {
|
||||
var v = (this.conf.inverse?this._inverseValue(value):value);
|
||||
var k = (v-this.conf.min)/(this.conf.max - this.conf.min);
|
||||
return Math.round(max*k);
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._normalize = function(value, min, max) {
|
||||
value = Number(value); // for decimals
|
||||
value = Math.round(value/this.conf.step)*this.conf.step;
|
||||
var ten = Math.pow(10, this.conf.decimals);
|
||||
value = Math.round(value*ten)/ten;
|
||||
value = Math.max(min, Math.min(max, value));
|
||||
return value;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._normalizeRange = function(value, min, max) {
|
||||
if (value[1] < value[0]) value[1] = value[0];
|
||||
value[0] = this._normalize(value[0], min, Math.min(max, value[1]));
|
||||
value[1] = this._normalize(value[1], Math.max(min, value[0]), max);
|
||||
return value;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._refreshBG = function() {
|
||||
|
||||
if (this.conf.bg != true) return;
|
||||
|
||||
var p = this._nodes.track.firstChild;
|
||||
var r = this._nodes.runner;
|
||||
var r2 = r.nextSibling;
|
||||
|
||||
var k = (this.conf.vertical == true ? {x: "top", w: "height", ofs: "offsetHeight"} : {x: "left", w: "width", ofs: "offsetWidth"});
|
||||
|
||||
if (this.conf.range == true) {
|
||||
p.style[k.x] = Math.floor(parseInt(r.style[k.x])+r[k.ofs]/2)+"px";
|
||||
p.style[k.w] = Math.max(Math.floor(parseInt(r2.style[k.x])+r2[k.ofs]/2)-parseInt(p.style[k.x]), 0)+"px";
|
||||
} else {
|
||||
var mode = (this.conf.inverse == true? {"left":"right", "right":"left"}[this.conf.bg_mode] : this.conf.bg_mode);
|
||||
p.style[k.x] = (mode == "left" ? "0" : Math.floor(parseInt(r.style[k.x])+r[k.ofs]/2)) + "px";
|
||||
p.style[k.w] = (mode == "left" ? Math.floor(parseInt(r.style[k.x])+r[k.ofs]/2) : this._nodes.track[k.ofs]-parseInt(p.style[k.x])) + "px";
|
||||
}
|
||||
|
||||
p = r = r2 = null;
|
||||
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._attachNode = function(node, index) {
|
||||
|
||||
this._detachNode(index);
|
||||
|
||||
var tagName = node.tagName.toLowerCase();
|
||||
if (!tagName) return;
|
||||
|
||||
// node._dhxsl_mode = mode;
|
||||
this._attachedNode["node_"+index] = node;
|
||||
|
||||
switch (tagName) {
|
||||
case "input":
|
||||
case "select":
|
||||
if (typeof(window.addEventListener) == "function") {
|
||||
node.addEventListener("change", this._doOnChangeInput, false);
|
||||
node.addEventListener("keydown", this._doOnKeyDown, false);
|
||||
} else {
|
||||
node.attachEvent("onchange", this._doOnChangeInput);
|
||||
node.attachEvent("onkeydown", this._doOnKeyDown);
|
||||
}
|
||||
|
||||
this._attachedNode.setValue = function(value, decimals, index) {
|
||||
var v = (value instanceof Array?value[index||0]:value);
|
||||
this["node_"+(index||0)].value = dhtmlXSlider.prototype._atatchedNodeFixDec(v, decimals);
|
||||
};
|
||||
break;
|
||||
default:
|
||||
this._attachedNode.setValue = function(value, decimals, index) {
|
||||
var v = (value instanceof Array?value[index||0]:value);
|
||||
this["node_"+(index||0)].innerHTML = dhtmlXSlider.prototype._atatchedNodeFixDec(v, decimals);
|
||||
};
|
||||
}
|
||||
|
||||
this._attachedNode.setValue(this.conf.value, this.conf.decimals, index);
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._detachNode = function(index) {
|
||||
|
||||
var node = this._attachedNode["node_"+index];
|
||||
|
||||
if (!node) return;
|
||||
|
||||
var tagName = node.tagName;
|
||||
|
||||
switch (tagName) {
|
||||
case "input":
|
||||
case "select":
|
||||
if (typeof(window.addEventListener) == "function") {
|
||||
node.removeEventListener("change", this._doOnChangeInput, false);
|
||||
node.removeEventListener("keydown", this._doOnChangeInput, false);
|
||||
} else {
|
||||
node.detachEvent("change", this._doOnChangeInput);
|
||||
node.detachEvent("keydown", this._doOnChangeInput);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
delete this._attachedNode["node_"+index];
|
||||
delete this._attachedNode.setValue;
|
||||
node = null;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._atatchedNodeFixDec = function(value, decimals) {
|
||||
value = String(value);
|
||||
if (decimals > 0) {
|
||||
var k = value.match(/\.\d{1,}$/);
|
||||
if (k != null) decimals = Math.max(decimals-k[0].length+1);
|
||||
value += (value.indexOf(".")<0?".":"");
|
||||
for (var q=0; q<decimals; q++) value += "0";
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._detectDecimals = function() {
|
||||
var k = this.conf.step.toString().match(/\.(\d*)$/);
|
||||
this.conf.decimals = (k!=null?k[1].length:0);
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.setSize = function(size) {
|
||||
if (!isNaN(size)) {
|
||||
if (this.conf.vertical) {
|
||||
if (this._nodes.cont.style.width) delete this._nodes.cont.style.width;
|
||||
this._nodes.cont.style.height = size-this.conf.margin + "px";
|
||||
} else {
|
||||
if (this._nodes.cont.style.height) delete this._nodes.cont.style.height;
|
||||
this._nodes.cont.style.width = size-this.conf.margin + "px";
|
||||
}
|
||||
this._refreshRunner();
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.setSkin = function (skin) {
|
||||
skin = skin.toLowerCase();
|
||||
|
||||
var classes, _int = -1, skinName, className="dhtmlxslider";
|
||||
|
||||
classes = this.base.className.match(/\S\w+/ig);
|
||||
|
||||
if (classes instanceof Array) {
|
||||
for (skinName in this._skinCollection) {
|
||||
if (_int == -1) {
|
||||
_int = this._indexOf(classes, className + "_" + skinName);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
_int = (_int == -1) ? classes.length : _int;
|
||||
} else {
|
||||
classes = [];
|
||||
_int = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
classes[_int] = className + "_" + skin;
|
||||
|
||||
this.base.className = classes.join(" ");
|
||||
this.conf.skin = skin;
|
||||
|
||||
if (this._nodes) this._refreshRunner();
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.setValue = function(value, callEvent) {
|
||||
|
||||
callEvent = callEvent || false;
|
||||
|
||||
var index = null;
|
||||
var refresh = false;
|
||||
|
||||
if (this.conf.range == true) {
|
||||
if (this._r_actv != null) index = (this._r_actv==this._nodes.runner?0:1);
|
||||
value = this._normalizeRange(value, this.conf.min, this.conf.max);
|
||||
refresh = (this.conf.value[0] != value[0] || this.conf.value[1] != value[1]);
|
||||
} else {
|
||||
value = this._normalize(value, this.conf.min, this.conf.max);
|
||||
refresh = (this.conf.value != value);
|
||||
}
|
||||
|
||||
if (refresh = true) {
|
||||
|
||||
this.conf.value = value;
|
||||
this._refreshRunner(index);
|
||||
|
||||
this._refreshTooltip();
|
||||
|
||||
if (callEvent) {
|
||||
var args = [value, this];
|
||||
if (this.conf.range == true) {
|
||||
if (this._r_actv != null) {
|
||||
args.push(this._r_actv==this._nodes.runner?0:1);
|
||||
} else if (this.conf.init_index != null) {
|
||||
args.push(this.conf.init_index.valueOf());
|
||||
}
|
||||
}
|
||||
this.callEvent("onChange", args);
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof(this._attachedNode.setValue) == "function") {
|
||||
if (index == null) index = this.conf.init_index;
|
||||
if (typeof index === "undefined" && value instanceof Array){
|
||||
this._attachedNode.setValue(this.conf.value, this.conf.decimals,(index||0));
|
||||
this._attachedNode.setValue(this.conf.value, this.conf.decimals, (index||0)+1);
|
||||
}
|
||||
else
|
||||
this._attachedNode.setValue(this.conf.value, this.conf.decimals, index);
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.getValue = function() {
|
||||
if (this.conf.range == true) {
|
||||
return [this.conf.value[0].valueOf(),this.conf.value[1].valueOf()];
|
||||
} else {
|
||||
return this.conf.value.valueOf();
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._inverseValue = function(value) {
|
||||
return this.conf.max+this.conf.min-value;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.disable = function(mode) {
|
||||
mode = (mode == false) ? false : true; // deprecated
|
||||
var reg = null;
|
||||
if (mode) {
|
||||
for (var nm in this._nodes) {
|
||||
if (nm == "cont") continue;
|
||||
var a = (nm == "runner2"?"runner":nm);
|
||||
if (this._nodes[nm] != null) {
|
||||
reg = new RegExp("\\s?dhxsl_"+a+"_dis","i");
|
||||
if (!reg.test(this._nodes[nm].className)) this._nodes[nm].className += " dhxsl_"+a+"_dis";
|
||||
}
|
||||
}
|
||||
|
||||
this.conf.disabled = true;
|
||||
} else {
|
||||
this.enable();
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.enable = function() {
|
||||
var reg;
|
||||
for (var nm in this._nodes) {
|
||||
if (nm == "cont") continue;
|
||||
var a = (nm == "runner2"?"runner":nm);
|
||||
if (this._nodes[nm] != null) {
|
||||
reg = new RegExp("\\s?dhxsl_"+a+"_dis","i");
|
||||
if (reg.test(this._nodes[nm].className)) this._nodes[nm].className = this._nodes[nm].className.replace(reg,"");
|
||||
}
|
||||
}
|
||||
|
||||
this.conf.disabled = false;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.isEnabled = function() {
|
||||
return !this.conf.disabled;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.disableTooltip = function() {
|
||||
this._nodes.cont.removeAttribute("title");
|
||||
this.conf.tooltip = false;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.enableTooltip = function(mode) {
|
||||
if (typeof(mode) == "undefined") mode = true; else mode = dhx4.s2b(mode);
|
||||
if (mode) {
|
||||
this.conf.tooltip = true;
|
||||
this._refreshTooltip();
|
||||
} else {
|
||||
this.disableTooltip();
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.setMax = function(value) {
|
||||
if (!isNaN(value) && this.conf.min < value) {
|
||||
this.conf.max = value;
|
||||
this.setValue(this.conf.value);
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.getMax = function() {
|
||||
return this.conf.max;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.setMin = function(value) {
|
||||
if (!isNaN(value) && this.conf.max > value) {
|
||||
this.conf.min = value;
|
||||
this.setValue(this.conf.value);
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.getMin = function() {
|
||||
return this.conf.min;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.setStep = function(value) {
|
||||
var maxValue = this.conf.max - this.conf.min;
|
||||
if (!isNaN(value) && value < maxValue) {
|
||||
this.conf.step = value;
|
||||
this._detectDecimals();
|
||||
this.setValue(this.conf.value);
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.getStep = function() {
|
||||
return this.conf.step;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.show = function() {
|
||||
if (/\s?dhxsl_hidden/i.test(this._nodes.cont.className)) {
|
||||
this._nodes.cont.className = this._nodes.cont.className.replace(/\s?dhxsl_hidden/i, "");
|
||||
}
|
||||
|
||||
this.conf.visible = true;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.hide = function() {
|
||||
if (!/\s?dhxsl_hidden/i.test(this._nodes.cont.className)) {
|
||||
this._nodes.cont.className += " dhxsl_hidden";
|
||||
}
|
||||
|
||||
this.conf.visible = false;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.isVisible = function() {
|
||||
return this.conf.visible;
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.linkTo = function(node) {
|
||||
if (!(node instanceof Array)) node = [node];
|
||||
for (var q=0; q<node.length && q<2; q++) {
|
||||
if (node[q] != null) {
|
||||
if (typeof(node[q]) == "string") node[q] = document.getElementById(node[q]);
|
||||
this._attachNode(node[q], q);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype._refreshTooltip = function() {
|
||||
if (this.conf.tooltip == true) {
|
||||
if (this.conf.value instanceof Array) {
|
||||
this._nodes.cont.title = this.conf.value.join(", ");
|
||||
} else {
|
||||
this._nodes.cont.title = this.conf.value;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.getRunnerIndex = function() {
|
||||
if (this._r_actv == null) return -1;
|
||||
return (this._r_actv==this._nodes.runner?0:1);
|
||||
};
|
||||
@ -0,0 +1,24 @@
|
||||
/*
|
||||
Product Name: dhtmlxSuite
|
||||
Version: 5.2.0
|
||||
Edition: Professional
|
||||
License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com
|
||||
Copyright UAB Dinamenta http://www.dhtmlx.com
|
||||
*/
|
||||
|
||||
window.dhtmlxSlider = window.dhtmlXSlider;
|
||||
|
||||
dhtmlXSlider.prototype.setOnChangeHandler = function(fun) {
|
||||
if (typeof fun == "function") {
|
||||
this.attachEvent("onChange", fun);
|
||||
}
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.init = function() {
|
||||
// no longer used
|
||||
};
|
||||
|
||||
dhtmlXSlider.prototype.setImagePath = function() {
|
||||
// no longer used
|
||||
};
|
||||
|
||||
@ -0,0 +1,130 @@
|
||||
/*
|
||||
Product Name: dhtmlxSuite
|
||||
Version: 5.2.0
|
||||
Edition: Professional
|
||||
License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com
|
||||
Copyright UAB Dinamenta http://www.dhtmlx.com
|
||||
*/
|
||||
|
||||
/*
|
||||
skin detected: dhx_skyblue
|
||||
include extra file: skins/dhx_skyblue.less
|
||||
*/
|
||||
|
||||
.dhtmlxslider_dhx_skyblue {
|
||||
z-index: 0;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_hidden {
|
||||
display: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_container {
|
||||
position: relative;
|
||||
float: left;
|
||||
clear: left;
|
||||
margin: 0px;
|
||||
padding: 1px;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_container.dhxsl_cont_hr {
|
||||
margin-top: 6px;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_container.dhxsl_cont_vr {
|
||||
margin-left: 6px;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_runner {
|
||||
position: absolute;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border: 1px solid #a4bed4;
|
||||
background-color: #f1f7ff;
|
||||
background: linear-gradient(#f1f7ff,#e2efff);
|
||||
background: -webkit-linear-gradient(#f1f7ff,#e2efff);
|
||||
filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#f1f7ff,endColorStr=#e2efff) progid:DXImageTransform.Microsoft.Alpha(opacity=100);
|
||||
border-radius: 2px;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-touch-action: none;
|
||||
z-index: 1;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_runner.dhxsl_runner_actv {
|
||||
background-color: #e2efff;
|
||||
background: linear-gradient(#e2efff,#d3e7ff);
|
||||
background: -webkit-linear-gradient(#e2efff,#d3e7ff);
|
||||
filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#e2efff,endColorStr=#d3e7ff) progid:DXImageTransform.Microsoft.Alpha(opacity=100);
|
||||
z-index: 2;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_runner_dis {
|
||||
border-color: #c9c9c9;
|
||||
background-color: #e8e8e8;
|
||||
background: linear-gradient(#e8e8e8,#dedede);
|
||||
background: -webkit-linear-gradient(#e8e8e8,#dedede);
|
||||
filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#e8e8e8,endColorStr=#dedede) progid:DXImageTransform.Microsoft.Alpha(opacity=100);
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_track {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border: 1px solid #a4bed4;
|
||||
position: relative;
|
||||
border-radius: 2px;
|
||||
background-color: white;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-touch-action: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_track div.dhxsl_track_bg {
|
||||
position: absolute;
|
||||
background-color: #e7f1ff;
|
||||
font-size: 1px;
|
||||
overflow: hidden;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_cont_vr .dhxsl_track {
|
||||
height: 100%;
|
||||
width: 3px;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_cont_vr .dhxsl_track div.dhxsl_track_bg {
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_cont_hr .dhxsl_track {
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_cont_hr .dhxsl_track div.dhxsl_track_bg {
|
||||
top: 0px;
|
||||
height: 100%;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_track_dis {
|
||||
border: 1px solid #c9c9c9;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
.dhtmlxslider_dhx_skyblue .dhxsl_track_dis div.dhxsl_track_bg {
|
||||
position: absolute;
|
||||
background-color: #d0d0d0;
|
||||
}
|
||||
.dhxslider_skin_detect {
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: -100px;
|
||||
border: 0px solid white;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
/*
|
||||
Product Name: dhtmlxSuite
|
||||
Version: 5.2.0
|
||||
Edition: Professional
|
||||
License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com
|
||||
Copyright UAB Dinamenta http://www.dhtmlx.com
|
||||
*/
|
||||
|
||||
/*
|
||||
skin detected: dhx_terrace
|
||||
include extra file: skins/dhx_terrace.less
|
||||
*/
|
||||
|
||||
.dhtmlxslider_dhx_terrace {
|
||||
z-index: 0;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_hidden {
|
||||
display: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_container {
|
||||
position: relative;
|
||||
float: left;
|
||||
clear: left;
|
||||
margin: 0px;
|
||||
padding: 1px;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_container.dhxsl_cont_hr {
|
||||
margin-top: 4px;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_container.dhxsl_cont_vr {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_runner {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 3px;
|
||||
background-color: #e8e8e8;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-touch-action: none;
|
||||
z-index: 1;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_runner.dhxsl_runner_actv {
|
||||
background-color: #e6e6e6;
|
||||
z-index: 2;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_cont_hr .dhxsl_runner {
|
||||
width: 12px;
|
||||
height: 22px;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_cont_vr .dhxsl_runner {
|
||||
width: 22px;
|
||||
height: 12px;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_runner_dis {
|
||||
border: 1px solid #d1d1d1;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_track {
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 3px;
|
||||
background-color: #f5f5f5;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-touch-action: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_track div.dhxsl_track_bg {
|
||||
position: absolute;
|
||||
background-color: #f0f0f0;
|
||||
font-size: 1px;
|
||||
overflow: hidden;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_cont_vr .dhxsl_track {
|
||||
height: 100%;
|
||||
width: 8px;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_cont_vr .dhxsl_track div.dhxsl_track_bg {
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_cont_hr .dhxsl_track {
|
||||
width: 100%;
|
||||
height: 8px;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_cont_hr .dhxsl_track div.dhxsl_track_bg {
|
||||
top: 0px;
|
||||
height: 100%;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_track_dis {
|
||||
border: 1px solid #d1d1d1;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
.dhtmlxslider_dhx_terrace .dhxsl_track_dis div.dhxsl_track_bg {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
.dhxslider_skin_detect {
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: -100px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0px solid white;
|
||||
width: 30px;
|
||||
height: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
@ -0,0 +1,118 @@
|
||||
/*
|
||||
Product Name: dhtmlxSuite
|
||||
Version: 5.2.0
|
||||
Edition: Professional
|
||||
License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com
|
||||
Copyright UAB Dinamenta http://www.dhtmlx.com
|
||||
*/
|
||||
|
||||
/*
|
||||
skin detected: dhx_web
|
||||
include extra file: skins/dhx_web.less
|
||||
*/
|
||||
|
||||
.dhtmlxslider_dhx_web {
|
||||
z-index: 0;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_hidden {
|
||||
display: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_container {
|
||||
position: relative;
|
||||
float: left;
|
||||
clear: left;
|
||||
margin: 0px;
|
||||
padding: 1px;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_container.dhxsl_cont_hr {
|
||||
margin-top: 5px;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_container.dhxsl_cont_vr {
|
||||
margin-left: 5px;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_runner {
|
||||
position: absolute;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border: 1px solid #3da0e3;
|
||||
background-color: #3da0e3;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-touch-action: none;
|
||||
z-index: 1;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_runner.dhxsl_runner_actv {
|
||||
background-color: #2589ce;
|
||||
z-index: 2;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_runner_dis {
|
||||
border: 1px solid #999999;
|
||||
background-color: #999999;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_track {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border: 1px solid #c7c7c7;
|
||||
position: relative;
|
||||
background-color: #ffffff;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-touch-action: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_track div.dhxsl_track_bg {
|
||||
position: absolute;
|
||||
background-color: #d9ecfa;
|
||||
font-size: 1px;
|
||||
overflow: hidden;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_cont_vr .dhxsl_track {
|
||||
height: 100%;
|
||||
width: 6px;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_cont_vr .dhxsl_track div.dhxsl_track_bg {
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_cont_hr .dhxsl_track {
|
||||
width: 100%;
|
||||
height: 6px;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_cont_hr .dhxsl_track div.dhxsl_track_bg {
|
||||
top: 0px;
|
||||
height: 100%;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_track_dis {
|
||||
border: 1px solid #d9d9d9;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
.dhtmlxslider_dhx_web .dhxsl_track_dis div.dhxsl_track_bg {
|
||||
background-color: #d9d9d9;
|
||||
}
|
||||
.dhxslider_skin_detect {
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: -100px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0px solid white;
|
||||
width: 20px;
|
||||
height: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
@ -0,0 +1,129 @@
|
||||
/*
|
||||
Product Name: dhtmlxSuite
|
||||
Version: 5.2.0
|
||||
Edition: Professional
|
||||
License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com
|
||||
Copyright UAB Dinamenta http://www.dhtmlx.com
|
||||
*/
|
||||
|
||||
/*
|
||||
skin detected: material
|
||||
include extra file: skins/material.less
|
||||
*/
|
||||
|
||||
@keyframes dhx_loader_rotate {
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@keyframes dhx_loader_dash {
|
||||
0% {
|
||||
stroke-dasharray: 1, 200;
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
50% {
|
||||
stroke-dasharray: 89, 200;
|
||||
stroke-dashoffset: -35px;
|
||||
}
|
||||
100% {
|
||||
stroke-dasharray: 89, 200;
|
||||
stroke-dashoffset: -124px;
|
||||
}
|
||||
}
|
||||
.dhtmlxslider_material {
|
||||
z-index: 0;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_hidden {
|
||||
display: none;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_container {
|
||||
position: relative;
|
||||
float: left;
|
||||
clear: left;
|
||||
margin: 0px;
|
||||
padding: 1px;
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_container.dhxsl_cont_hr {
|
||||
margin-top: 4px;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_container.dhxsl_cont_vr {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_runner {
|
||||
position: absolute;
|
||||
background-color: #3399cc;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-touch-action: none;
|
||||
z-index: 1;
|
||||
border-radius: 50%;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_runner.dhxsl_runner_actv {
|
||||
z-index: 2;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_runner_dis {
|
||||
background-color: #dfdfdf;
|
||||
border: 1px solid white;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_track {
|
||||
background-color: #dfdfdf;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-touch-action: none;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_track div.dhxsl_track_bg {
|
||||
position: absolute;
|
||||
font-size: 1px;
|
||||
overflow: hidden;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_cont_vr .dhxsl_track {
|
||||
height: 100%;
|
||||
width: 2px;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_cont_vr .dhxsl_track div.dhxsl_track_bg {
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_cont_hr .dhxsl_track {
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
}
|
||||
.dhtmlxslider_material .dhxsl_cont_hr .dhxsl_track div.dhxsl_track_bg {
|
||||
top: 0px;
|
||||
height: 100%;
|
||||
}
|
||||
.dhxslider_skin_detect {
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: -100px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0px solid white;
|
||||
width: 40px;
|
||||
height: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
Reference in New Issue
Block a user