Refactor code structure for improved readability and maintainability

This commit is contained in:
2025-04-10 19:23:03 +07:00
parent e4705579f0
commit 0700a715e4
5693 changed files with 857475 additions and 0 deletions

View File

@ -0,0 +1,169 @@
/*
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
*/
//container - can be a HTML container or it's ID
dhtmlXList = function(container){
this.name = "List"; //name of component
//enable configuration
dhtmlx.extend(this, dhtmlx.Settings);
this._parseContainer(container,"dhx_list"); //assigns parent container
//behaviors
dhtmlx.extend(this, dhtmlx.AtomDataLoader);
dhtmlx.extend(this, dhtmlx.DataLoader);
dhtmlx.extend(this, dhtmlx.EventSystem);
dhtmlx.extend(this, dhtmlx.RenderStack);
dhtmlx.extend(this, dhtmlx.SelectionModel);
dhtmlx.extend(this, dhtmlx.MouseEvents);
dhtmlx.extend(this, dhtmlx.KeyEvents);
dhtmlx.extend(this, dhtmlx.EditAbility);
dhtmlx.extend(this, dhtmlx.DataMove);
dhtmlx.extend(this, dhtmlx.DragItem);
dhtmlx.extend(this, dhtmlx.DataProcessor);
dhtmlx.extend(this, dhtmlx.AutoTooltip);
dhtmlx.extend(this, dhtmlx.Destruction);
this._getDimension = function(){
var t = this.type;
var d = (t.margin||0)*2;
//obj.x - widht, obj.y - height
return {x : t.width+d, y: t.height+d };
};
//render self , each time when data is updated
this.data.attachEvent("onStoreUpdated",dhtmlx.bind(function(){
this.render.apply(this,arguments);
},this));
//default settings
this._parseSettings(container,{
drag:false,
edit:false,
select:"multiselect", //multiselection is enabled by default
type:"default"
});
this.data.provideApi(this,true);
if (dhtmlx.$customScroll)
dhtmlx.CustomScroll.enable(this);
};
dhtmlXList.prototype={
bind:function(){
dhtmlx.BaseBind.legacyBind.apply(this, arguments);
},
sync:function(){
dhtmlx.BaseBind.legacySync.apply(this, arguments);
},
dragMarker:function(context,ev){
var el = this._locateHTML(context.target);
if (el && this._settings.auto_scroll){
//maybe it can be moved to the drag behavior
var dy = el.offsetTop;
var dh = el.offsetHeight;
var py = this._obj.scrollTop;
var ph = this._obj.offsetHeight;
//scroll up or down is mouse already pointing on top|bottom visible item
if (dy-dh >= 0 && dy-dh*0.75 < py)
py = Math.max(dy-dh, 0);
else if (dy+dh/0.75 > py+ph)
py = py+dh;
this._obj.scrollTop = py;
}
return true;
},
//attribute , which will be used for ID storing
_id:"dhx_f_id",
//css class to action map, for onclick event
on_click:{
dhx_list_item:function(e,id){
//click on item
if (this.stopEdit(false,id)){
if (this._settings.select){
if (this._settings.select=="multiselect")
this.select(id, e.ctrlKey||e.metaKey, e.shiftKey); //multiselection
else
this.select(id);
}
}
}
},
//css class to action map, for dblclick event
on_dblclick:{
dhx_list_item:function(e,id){
//dblclick on item
if (this._settings.edit)
this.edit(id); //edit it!
}
},
//css class to action map, for mousemove event
on_mouse_move:{
},
types:{
"default":{
css:"default",
//normal state of item
template:dhtmlx.Template.fromHTML("<div style='padding:10px; white-space:nowrap; overflow:hidden;'>{obj.text}</div>"),
//template for edit state of item
template_edit:dhtmlx.Template.fromHTML("<div style='padding:10px; white-space:nowrap; overflow:hidden;'><textarea bind='obj.text'></textarea></div>"),
//in case of dyn. loading - temporary spacer
template_loading:dhtmlx.Template.fromHTML("<div style='padding:10px; white-space:nowrap; overflow:hidden;'>Loading...</div>"),
height:50,
margin:0,
padding:10,
border:1
}
},
template_item_start:dhtmlx.Template.fromHTML("<div dhx_f_id='{-obj.id}' class='dhx_list_item dhx_list_{obj.css}_item{-obj.$selected?_selected:}' style='width:100%; height:{obj.height}px; padding:{obj.padding}px; margin:{obj.margin}px; overflow:hidden;'>"),
template_item_end:dhtmlx.Template.fromHTML("</div>")
};
dhtmlx.compat("layout");
if (typeof(window.dhtmlXCellObject) != "undefined") {
dhtmlXCellObject.prototype.attachList = function(conf) {
this.callEvent("_onBeforeContentAttach",["list"]);
var obj = document.createElement("DIV");
obj.style.width = "100%";
obj.style.height = "100%";
obj.style.position = "relative";
obj.style.overflowX = "hidden";
this._attachObject(obj);
if (typeof(conf) == "undefined") conf = {};
obj.id = "ListObject_"+new Date().getTime();
conf.container = obj.id;
conf.skin = this.conf.skin;
this.dataType = "list";
this.dataObj = new dhtmlXList(conf);
this.dataObj.setSizes = function(){
this.render();
}
obj = null;
this.callEvent("_onContentAttach",[]);
return this.dataObj;
};
}

View File

@ -0,0 +1,58 @@
/*
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
*/
.dhx_list {
overflow-y: auto;
-webkit-overflow-scrolling: touch;
overflow-x: hidden;
-moz-user-select: none;
-moz-user-select: -moz-none;
-khtml-select: none;
}
.dhx_list_default_item,
.dhx_list_default_item_selected {
cursor: pointer;
background-color: #ffffff;
}
.dhx_list .dhx_list_default_item,
.dhx_list .dhx_list_default_item_selected {
border-right: 1px solid #a4bed4;
border-bottom: 1px dotted #a4bed4;
}
.dhx_list_default_item_selected {
background-color: #a1ceed;
color: #b5deff;
border-color: #a1ceed;
background-repeat: repeat-x;
}
.dhx_list_item {
font-family: Tahoma, Helvetica;
font-size: 11px;
color: black;
box-sizing: border-box;
}
.dhx_list_item textarea {
resize: none;
margin-top: -8px;
}
.dhx_list_item .dhx_strong {
font-weight: bold;
display: block;
padding-bottom: 6px;
}
.dhx_list_default_item_selected .dhx_light {
color: #C3C3C3;
}
.dhx_list_item .dhx_light {
color: #919191;
}

View File

@ -0,0 +1,58 @@
/*
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
*/
.dhx_list {
overflow-y: auto;
-webkit-overflow-scrolling: touch;
overflow-x: hidden;
-moz-user-select: none;
-moz-user-select: -moz-none;
-khtml-select: none;
}
.dhx_list_default_item,
.dhx_list_default_item_selected {
cursor: pointer;
background-color: #ffffff;
}
.dhx_list .dhx_list_default_item,
.dhx_list .dhx_list_default_item_selected {
border-right: 1px solid #cccccc;
border-bottom: 1px dotted #cccccc;
}
.dhx_list_default_item_selected {
background-color: #fff3a1;
color: #fff3a1;
border-color: #fff3a1;
background-repeat: repeat-x;
}
.dhx_list_item {
font-family: Arial, Helvetica;
font-size: 13px;
color: black;
box-sizing: border-box;
}
.dhx_list_item textarea {
resize: none;
margin-top: -8px;
}
.dhx_list_item .dhx_strong {
font-weight: bold;
display: block;
padding-bottom: 6px;
}
.dhx_list_default_item_selected .dhx_light {
color: #C3C3C3;
}
.dhx_list_item .dhx_light {
color: #919191;
}

View File

@ -0,0 +1,58 @@
/*
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
*/
.dhx_list {
overflow-y: auto;
-webkit-overflow-scrolling: touch;
overflow-x: hidden;
-moz-user-select: none;
-moz-user-select: -moz-none;
-khtml-select: none;
}
.dhx_list_default_item,
.dhx_list_default_item_selected {
cursor: pointer;
background-color: #ffffff;
}
.dhx_list .dhx_list_default_item,
.dhx_list .dhx_list_default_item_selected {
border-right: 1px solid #c7c7c7;
border-bottom: 1px dotted #c7c7c7;
}
.dhx_list_default_item_selected {
background-color: #85d3ff;
color: #85d3ff;
border-color: #85d3ff;
background-repeat: repeat-x;
}
.dhx_list_item {
font-family: Tahoma, Helvetica;
font-size: 12px;
color: #000000;
box-sizing: border-box;
}
.dhx_list_item textarea {
resize: none;
margin-top: -8px;
}
.dhx_list_item .dhx_strong {
font-weight: bold;
display: block;
padding-bottom: 6px;
}
.dhx_list_default_item_selected .dhx_light {
color: #C3C3C3;
}
.dhx_list_item .dhx_light {
color: #919191;
}

View File

@ -0,0 +1,79 @@
/*
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;
}
}
.dhx_list {
overflow-y: auto;
-webkit-overflow-scrolling: touch;
overflow-x: hidden;
-moz-user-select: none;
-moz-user-select: -moz-none;
-khtml-select: none;
}
.dhx_list_default_item,
.dhx_list_default_item_selected {
cursor: pointer;
}
.dhx_list .dhx_list_default_item,
.dhx_list .dhx_list_default_item_selected {
border-right: none;
border-bottom: 1px solid #eeeeee;
border-left: 2px solid transparent;
}
.dhx_list .dhx_list_default_item_selected {
background-color: #eeeeee;
color: #404040;
border-color: #eeeeee;
background-repeat: repeat-x;
border-left: 2px solid #3399cc;
}
.dhx_list_item {
font-family: Roboto, Arial, Helvetica;
font-size: 14px;
color: #404040;
box-sizing: border-box;
line-height: normal;
}
.dhx_list_item textarea {
resize: none;
margin-top: -8px;
}
.dhx_list_item .dhx_strong {
font-weight: bold;
display: block;
padding-bottom: 6px;
}
.dhx_list_default_item_selected .dhx_light {
color: #C3C3C3;
}
.dhx_list_item .dhx_light {
color: #919191;
}