diff --git a/bower.json b/bower.json index dec6842e..9e7e4458 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "gantt", - "version": "3.0.0", + "version": "3.1.0", "homepage": "http://dhtmlx.com/docs/products/dhtmlxGantt/", "description": "JavaScript event calendar. Allows to manage events and appointments in different views", "main": [ diff --git a/codebase/dhtmlxgantt.css b/codebase/dhtmlxgantt.css index 79064ec1..dc0cf5ec 100644 --- a/codebase/dhtmlxgantt.css +++ b/codebase/dhtmlxgantt.css @@ -1,9 +1,9 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -.gridHoverStyle,.gridSelection,.timelineSelection{background-color:#fff3a1}.gantt_grid_scale .gantt_grid_head_cell{color:#a6a6a6;border-top:none!important;border-right:none!important}.gantt_grid_data .gantt_cell{border-right:none;color:#454545}.gantt_task_link .gantt_link_arrow_right{border-width:6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_left{border-width:6px;margin-left:-6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_down,.gantt_task_link .gantt_link_arrow_top{border-width:6px}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.chartHeaderBg{background-color:#fff}.gantt_task .gantt_task_scale .gantt_scale_cell{color:#a6a6a6;border-right:1px solid #ebebeb}.gantt_row.gantt_project,.gantt_row.odd.gantt_project{background-color:#edffef}.gantt_task_row.gantt_project,.gantt_task_row.odd.gantt_project{background-color:#f5fff6}.gantt_task_line.gantt_project{background-color:#65c16f;border:1px solid #3c9445}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#46ad51}.buttonBg{background:#fff}.gantt_cal_light .gantt_btn_set{margin:5px 10px}.gantt_btn_set.gantt_cancel_btn_set{background:#fff;color:#454545;border:1px solid #cecece}.gantt_btn_set.gantt_save_btn_set{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff}.gantt_btn_set.gantt_delete_btn_set{background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff}.gantt_cal_light_wide{padding-left:0!important;padding-right:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.dhtmlx_popup_button.dhtmlx_ok_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0}.dhtmlx_popup_button.dhtmlx_cancel_button{font-weight:700;color:#454544}.gantt_qi_big_icon.icon_edit{color:#454545;background:#fff}.gantt_qi_big_icon.icon_delete{text-shadow:0 -1px 0 #a60;background:#ec8e00;color:#fff;border-width:0}.gantt_container{font-family:Arial;font-size:13px;border:1px solid #cecece;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #cecece}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#6b6b6b;font-size:12px;border-bottom:1px solid #cecece;background-color:#fff}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #cecece}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #cecece;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQ3MjMyMENDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ3MjMyMERDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDcyMzIwQUM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NDcyMzIwQkM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PshZT8UAAABbSURBVHjaYrTdeZmBEsCER+4wEP+H4sPkGGCDg020ARR7gb4GIAcYDKMDdPnDyAbYkGG5DVW9cIQMvUdBBAuUY4vDz8iAcZinA2zgCHqAYQMseAywJcYFAAEGAM+UFGuohFczAAAAAElFTkSuQmCC);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#fff3a1}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#cecece;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#cecece;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #cecece;border-right:1px solid #cecece;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:13px}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #cecece;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39////wAAAP///wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0I5RTczQjVDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0I5RTczQjZDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQjlFNzNCM0MwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozQjlFNzNCNEMwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARJMMlJq704661B+SAIXAVhnKhBFKSZnmuLImhslXPN3ibi+6pdBXc4IIpB2YkGE1IKAoL0ICUInJNCYMDtDgJYiScUGnHO6LQkAgA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39wAAAP///////wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzY0QzNGM0VDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzY0QzNGM0ZDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNjRDM0YzQ0MwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNjRDM0YzREMwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARDMMlJq704661B+SAIXAVhnKhBFKSZnmv7wqxVzmpd3Uff5zKEUAi0uV4xm4DAbBIEOkohMKhaB4HoxBMKjTjgsFgSAQA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTdDRDM3QzVDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTdDRDM3QzZDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1N0NEMzdDM0MwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMzdDNEMwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIzlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCBlXd+2XjjLKg5GqoeZXqvsOQXK/ijUZTKVUFADs=)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTAyMTU1RTNDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTAyMTU1RTRDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDIxNTVFMUMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDIxNTVFMkMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIwlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCuYIY6TYs+6bmHDO4igfdD3GNhheV0VQAADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzkxQzI4RjZDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzkxQzI4RjdDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFDMjhGNEMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFDMjhGNUMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIylI+pwN16QJiUQiFThRlJm3RRFYSlR5qXMKmXaMDuuMoyOi8n/e6xn8NMHETgh5RaKQsAOw==)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Arial;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Arial;border-radius:6px;border:1px solid #cecece;background:#fff}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #cecece;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;background:#fff}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #cecece}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:12px;color:#fff;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#299cb4}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#3db9d3;border:1px solid #2898b0;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:8.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffa011}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffa011}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #3db9d3}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffbf5e}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffbf5e;border-color:#ffa011}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 6px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffa011;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 6px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffa011;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 4px 6px;border-color:#ffa011;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 6px 0 4px;border-color:#ffa011;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAACCAYAAAB7Xa1eAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYDDjkw3UJvAwAAABRJREFUCNdj/P//PwM2wASl/6PTAKrrBf4+lD8LAAAAAElFTkSuQmCC);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffa011;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected,.gantt_task_row.gantt_selected{background-color:#fff3a1}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffec6e}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #299cb4}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #46ad51}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#d33daf;border:0 solid #61164f;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background:#fff;border-radius:6px;font-family:Arial;border:1px solid #cecece;color:#6b6b6b;font-size:12px;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Arial;border:1px solid #cecece;font-size:13px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Arial;font-size:13px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #cecece;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#cecece;border-style:solid;height:32px;font-weight:700;background:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:22px;line-height:22px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTk1OUU5RDFDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTk1OUU5RDJDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxOTU5RTlDRkMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxOTU5RTlEMEMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjDroXYAAAEXSURBVHjaYvz//z8DJYCRUgPIAUxAbAnEHiAHMIBcQCwGaRYXF3e6evXqoffv39/dv38/CymaGSUkJBzv3LlzCsj///fv3wdAihkkIQnEvkAshU8zLy+v7a1bt06ANP/79+87kDIAy505cybq06dPr3p7ezuwGQLTfOPGjWP/ESAZLg8kPKBO+g01RBJNszWyZqC6uSgWgIg/f/4shxnS2dnZBjMEqNkSFGBImi8CKTYMA4BYCGjIczRDHC5dunQQSfN7IKWI4UUkjjdMMdCwnw8ePLjwHxV4Yw1gZA5Q47z/2EELzhhCE+ABGvIQWSeQvwcU38QaAML2wHj+C/X3MyAlijeB4ZBoBOIPQGxJKIVSnBsBAgwABddBclWfcZUAAAAASUVORK5CYII=);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDkzMDA3MzlDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDkzMDA3M0FDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowOTMwMDczN0MzMDQxMUUyODZBNUUzMURDODBGQkRENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowOTMwMDczOEMzMDQxMUUyODZBNUUzMURDODBGQkRENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYuYOUAAAEdSURBVHjaYvz//z8DJYAFXWDlypU8QKoIiD2A2AwqfAqIdwBxX3h4+Bdk9YzILgBqtgdS84FYEYeF94E4EWjIQZgAE5LmQCB1AKoZZKMPEAtAMYh9GSp3AKjWD8UFQAEhIPshEIOc3wHENUBb/qJ57SyQMoJyPwKxElDNO1gYFEE17wMKVmIJlzNQzeegrjaA6qmBecEbSvfh0GwMxGeBhoPoemQ9MAO0kEIbl2YTqPAFKK2IbMB3AjabYIkRZmQD7kNpMyI0G0PpO8gGbIUFJj7NQDk2INWIrIcJKfBAKcwJqvkcDs0TgFgXGo19KCkRmpDWQdWDEk0NUoCBoq0FqhkE/IEWbKJKUmZEz43QzFSKIzN1481M5ACAAAMAlfl/lCwRpagAAAAASUVORK5CYII=);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Arial;font-size:13px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:13px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #cecece}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #cecece}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#fff}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #cecece;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#454545;background-color:#fff;border-bottom:1px solid #cecece}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:13px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#454545;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:6px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFCjI5ZQj5bAAAAFNJREFUOMvt0zEOACAIA0DkwTymH8bJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+vNGrM/LBtAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;font-weight:700;background:#fff;margin:5px 9px 8px 0;min-width:60px;line-height:32px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #cecece}.gantt_cal_qi_controls div{float:left;height:32px;text-align:center;line-height:32px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Arial;font-size:8pt;color:#454545;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Arial;font-size:13px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#f8fdfd}.dhtmlx_popup_button.dhtmlx_delete_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0} \ No newline at end of file +.gridHoverStyle,.gridSelection,.timelineSelection{background-color:#fff3a1}.gantt_grid_scale .gantt_grid_head_cell{color:#a6a6a6;border-top:none!important;border-right:none!important}.gantt_grid_data .gantt_cell{border-right:none;color:#454545}.gantt_task_link .gantt_link_arrow_right{border-width:6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_left{border-width:6px;margin-left:-6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_down,.gantt_task_link .gantt_link_arrow_top{border-width:6px}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.chartHeaderBg{background-color:#fff}.gantt_task .gantt_task_scale .gantt_scale_cell{color:#a6a6a6;border-right:1px solid #ebebeb}.gantt_row.gantt_project,.gantt_row.odd.gantt_project{background-color:#edffef}.gantt_task_row.gantt_project,.gantt_task_row.odd.gantt_project{background-color:#f5fff6}.gantt_task_line.gantt_project{background-color:#65c16f;border:1px solid #3c9445}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#46ad51}.buttonBg{background:#fff}.gantt_cal_light .gantt_btn_set{margin:5px 10px}.gantt_btn_set.gantt_cancel_btn_set{background:#fff;color:#454545;border:1px solid #cecece}.gantt_btn_set.gantt_save_btn_set{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff}.gantt_btn_set.gantt_delete_btn_set{background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff}.gantt_cal_light_wide{padding-left:0!important;padding-right:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.dhtmlx_popup_button.dhtmlx_ok_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0}.dhtmlx_popup_button.dhtmlx_cancel_button{font-weight:700;color:#454544}.gantt_qi_big_icon.icon_edit{color:#454545;background:#fff}.gantt_qi_big_icon.icon_delete{text-shadow:0 -1px 0 #a60;background:#ec8e00;color:#fff;border-width:0}.gantt_container{font-family:Arial;font-size:13px;border:1px solid #cecece;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #cecece}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#6b6b6b;font-size:12px;border-bottom:1px solid #cecece;background-color:#fff}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #cecece}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #cecece;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQ3MjMyMENDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ3MjMyMERDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDcyMzIwQUM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NDcyMzIwQkM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PshZT8UAAABbSURBVHjaYrTdeZmBEsCER+4wEP+H4sPkGGCDg020ARR7gb4GIAcYDKMDdPnDyAbYkGG5DVW9cIQMvUdBBAuUY4vDz8iAcZinA2zgCHqAYQMseAywJcYFAAEGAM+UFGuohFczAAAAAElFTkSuQmCC);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#fff3a1}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#cecece;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#cecece;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #cecece;border-right:1px solid #cecece;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:13px}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #cecece;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39////wAAAP///wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0I5RTczQjVDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0I5RTczQjZDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQjlFNzNCM0MwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozQjlFNzNCNEMwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARJMMlJq704661B+SAIXAVhnKhBFKSZnmuLImhslXPN3ibi+6pdBXc4IIpB2YkGE1IKAoL0ICUInJNCYMDtDgJYiScUGnHO6LQkAgA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39wAAAP///////wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzY0QzNGM0VDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzY0QzNGM0ZDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNjRDM0YzQ0MwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNjRDM0YzREMwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARDMMlJq704661B+SAIXAVhnKhBFKSZnmv7wqxVzmpd3Uff5zKEUAi0uV4xm4DAbBIEOkohMKhaB4HoxBMKjTjgsFgSAQA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTdDRDM3QzVDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTdDRDM3QzZDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1N0NEMzdDM0MwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMzdDNEMwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIzlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCBlXd+2XjjLKg5GqoeZXqvsOQXK/ijUZTKVUFADs=)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTAyMTU1RTNDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTAyMTU1RTRDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDIxNTVFMUMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDIxNTVFMkMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIwlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCuYIY6TYs+6bmHDO4igfdD3GNhheV0VQAADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzkxQzI4RjZDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzkxQzI4RjdDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFDMjhGNEMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFDMjhGNUMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIylI+pwN16QJiUQiFThRlJm3RRFYSlR5qXMKmXaMDuuMoyOi8n/e6xn8NMHETgh5RaKQsAOw==)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Arial;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Arial;border-radius:6px;border:1px solid #cecece;background:#fff}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #cecece;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;background:#fff}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #cecece}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:12px;color:#fff;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#299cb4}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#3db9d3;border:1px solid #2898b0;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_touch_move,.gantt_touch_progress .gantt_touch_resize{-moz-transform:scale(1.02,1.1);-o-transform:scale(1.02,1.1);-webkit-transform:scale(1.02,1.1);transform:scale(1.02,1.1);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_touch_progress .gantt_task_progress_drag,.gantt_touch_resize .gantt_task_drag{-moz-transform:scaleY(1.3);-o-transform:scaleY(1.3);-webkit-transform:scaleY(1.3);transform:scaleY(1.3);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:8.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffa011}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffa011}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #3db9d3}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffbf5e}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffbf5e;border-color:#ffa011}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 6px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffa011;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 6px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffa011;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 4px 6px;border-color:#ffa011;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 6px 0 4px;border-color:#ffa011;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAACCAYAAAB7Xa1eAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYDDjkw3UJvAwAAABRJREFUCNdj/P//PwM2wASl/6PTAKrrBf4+lD8LAAAAAElFTkSuQmCC);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffa011;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected,.gantt_task_row.gantt_selected{background-color:#fff3a1}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffec6e}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #299cb4}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #46ad51}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#d33daf;border:0 solid #61164f;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background:#fff;border-radius:6px;font-family:Arial;border:1px solid #cecece;color:#6b6b6b;font-size:12px;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Arial;border:1px solid #cecece;font-size:13px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Arial;font-size:13px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #cecece;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#cecece;border-style:solid;height:32px;font-weight:700;background:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:22px;line-height:22px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTk1OUU5RDFDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTk1OUU5RDJDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxOTU5RTlDRkMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxOTU5RTlEMEMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjDroXYAAAEXSURBVHjaYvz//z8DJYCRUgPIAUxAbAnEHiAHMIBcQCwGaRYXF3e6evXqoffv39/dv38/CymaGSUkJBzv3LlzCsj///fv3wdAihkkIQnEvkAshU8zLy+v7a1bt06ANP/79+87kDIAy505cybq06dPr3p7ezuwGQLTfOPGjWP/ESAZLg8kPKBO+g01RBJNszWyZqC6uSgWgIg/f/4shxnS2dnZBjMEqNkSFGBImi8CKTYMA4BYCGjIczRDHC5dunQQSfN7IKWI4UUkjjdMMdCwnw8ePLjwHxV4Yw1gZA5Q47z/2EELzhhCE+ABGvIQWSeQvwcU38QaAML2wHj+C/X3MyAlijeB4ZBoBOIPQGxJKIVSnBsBAgwABddBclWfcZUAAAAASUVORK5CYII=);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDkzMDA3MzlDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDkzMDA3M0FDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowOTMwMDczN0MzMDQxMUUyODZBNUUzMURDODBGQkRENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowOTMwMDczOEMzMDQxMUUyODZBNUUzMURDODBGQkRENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYuYOUAAAEdSURBVHjaYvz//z8DJYAFXWDlypU8QKoIiD2A2AwqfAqIdwBxX3h4+Bdk9YzILgBqtgdS84FYEYeF94E4EWjIQZgAE5LmQCB1AKoZZKMPEAtAMYh9GSp3AKjWD8UFQAEhIPshEIOc3wHENUBb/qJ57SyQMoJyPwKxElDNO1gYFEE17wMKVmIJlzNQzeegrjaA6qmBecEbSvfh0GwMxGeBhoPoemQ9MAO0kEIbl2YTqPAFKK2IbMB3AjabYIkRZmQD7kNpMyI0G0PpO8gGbIUFJj7NQDk2INWIrIcJKfBAKcwJqvkcDs0TgFgXGo19KCkRmpDWQdWDEk0NUoCBoq0FqhkE/IEWbKJKUmZEz43QzFSKIzN1481M5ACAAAMAlfl/lCwRpagAAAAASUVORK5CYII=);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Arial;font-size:13px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:13px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #cecece}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #cecece}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#fff}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #cecece;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#454545;background-color:#fff;border-bottom:1px solid #cecece}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:13px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#454545;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:6px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFCjI5ZQj5bAAAAFNJREFUOMvt0zEOACAIA0DkwTymH8bJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+vNGrM/LBtAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;font-weight:700;background:#fff;margin:5px 9px 8px 0;min-width:60px;line-height:32px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #cecece}.gantt_cal_qi_controls div{float:left;height:32px;text-align:center;line-height:32px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Arial;font-size:8pt;color:#454545;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Arial;font-size:13px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#f8fdfd}.dhtmlx_popup_button.dhtmlx_delete_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0} \ No newline at end of file diff --git a/codebase/dhtmlxgantt.js b/codebase/dhtmlxgantt.js index d88482e8..efd4b6cb 100644 --- a/codebase/dhtmlxgantt.js +++ b/codebase/dhtmlxgantt.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. @@ -39,7 +39,7 @@ if(r+="",s.innerHTML=r,e.content){var d=e.content;"string"==typeof d&&(d=d var o=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-r.offsetWidth)/2)),d=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-r.offsetHeight)/2));return r.style.top="top"==t.position?"-3px":d+"px",r.style.left=o+"px",r.onkeydown=e,r.focus(),t.hidden&&dhtmlx.modalbox.hide(r),r}function o(t){return r(t,!0,!1)}function d(t){return r(t,!0,!0)}function l(t){return r(t)}function _(t,e,n){return"object"!=typeof t&&("function"==typeof e&&(n=e,e=""),t={text:t,type:e,callback:n}),t }function h(t,e,n,i){return"object"!=typeof t&&(t={text:t,type:e,expire:n,id:i}),t.id=t.id||c.uid(),t.expire=t.expire||c.expire,t}var g=null;document.attachEvent?document.attachEvent("onkeydown",e):document.addEventListener("keydown",e,!0),dhtmlx.alert=function(){var t=_.apply(this,arguments);return t.type=t.type||"confirm",o(t)},dhtmlx.confirm=function(){var t=_.apply(this,arguments);return t.type=t.type||"alert",d(t)},dhtmlx.modalbox=function(){var t=_.apply(this,arguments);return t.type=t.type||"alert",l(t) },dhtmlx.modalbox.hide=function(t){for(;t&&t.getAttribute&&!t.getAttribute("dhxbox");)t=t.parentNode;t&&(t.parentNode.removeChild(t),n(!1))};var c=dhtmlx.message=function(t){t=h.apply(this,arguments),t.type=t.type||"info";var e=t.type.split("-")[0];switch(e){case"alert":return o(t);case"confirm":return d(t);case"modalbox":return l(t);default:return a(t)}};c.seed=(new Date).valueOf(),c.uid=function(){return c.seed++},c.expire=4e3,c.keyboard=!0,c.position="top",c.pull={},c.timers={},c.hideAll=function(){for(var t in c.pull)c.hide(t) -},c.hide=function(t){var e=c.pull[t];e&&e.parentNode&&(window.setTimeout(function(){e.parentNode.removeChild(e),e=null},2e3),e.className+=" hidden",c.timers[t]&&window.clearTimeout(c.timers[t]),delete c.pull[t])}}(),gantt={version:"3.0.0"},dhtmlxEventable=function(obj){obj._silent_mode=!1,obj._silentStart=function(){this._silent_mode=!0},obj._silentEnd=function(){this._silent_mode=!1},obj.attachEvent=function(t,e,n){return t="ev_"+t.toLowerCase(),this[t]||(this[t]=new this._eventCatcher(n||this)),t+":"+this[t].addEvent(e) +},c.hide=function(t){var e=c.pull[t];e&&e.parentNode&&(window.setTimeout(function(){e.parentNode.removeChild(e),e=null},2e3),e.className+=" hidden",c.timers[t]&&window.clearTimeout(c.timers[t]),delete c.pull[t])}}(),gantt={version:"3.1.0"},dhtmlxEventable=function(obj){obj._silent_mode=!1,obj._silentStart=function(){this._silent_mode=!0},obj._silentEnd=function(){this._silent_mode=!1},obj.attachEvent=function(t,e,n){return t="ev_"+t.toLowerCase(),this[t]||(this[t]=new this._eventCatcher(n||this)),t+":"+this[t].addEvent(e) },obj.callEvent=function(t,e){return this._silent_mode?!0:(t="ev_"+t.toLowerCase(),this[t]?this[t].apply(this,e):!0)},obj.checkEvent=function(t){return!!this["ev_"+t.toLowerCase()]},obj._eventCatcher=function(obj){var dhx_catch=[],z=function(){for(var t=!0,e=0;e"+h+d+""+l+s+"",n.push(a)}var d=t.$index%2===0?"":" odd";if(d+=t.$transparent?" gantt_transparent":"",this.templates.grid_row_class){var c=this.templates.grid_row_class.call(this,t.start_date,t.end_date,t);c&&(d+=" "+c)}this.getState().selected_task==t.id&&(d+=" gantt_selected");var u=document.createElement("div");return u.className="gantt_row"+d,u.style.height=this.config.row_height+"px",u.style.lineHeight=gantt.config.row_height+"px",u.setAttribute(this.config.task_attribute,t.id),u.innerHTML=n.join(""),u },gantt.open=function(t){gantt._set_item_state(t,!0),this.callEvent("onTaskOpened",[t])},gantt.close=function(t){gantt._set_item_state(t,!1),this.callEvent("onTaskClosed",[t])},gantt._set_item_state=function(t,e){t&&this._pull[t]&&(this._pull[t].$open=e,this.refreshData())},gantt._is_grid_visible=function(){return this.config.grid_width&&this.config.show_grid},gantt._get_grid_width=function(){return this._is_grid_visible()?this._is_chart_visible()?this.config.grid_width:this._x:0},gantt.getTaskIndex=function(t){for(var e=this._branches[this.getTask(t).parent],n=0;n0?(i&&(a.$drop_target=(this.getTaskIndex(t)>this.getTaskIndex(i)?"next:":"")+i),a.$drop_target="next:"+s[1*e-1]):a.$drop_target=s[1*e+1]?s[1*e+1]:n,this.refreshData()}},gantt._init_dnd=function(){var t=new dhtmlxDnD(this.$grid_data,{updates_per_second:60});dhtmlx.defined(this.config.dnd_sensitivity)&&(t.config.sensitivity=this.config.dnd_sensitivity),t.attachEvent("onBeforeDragStart",dhtmlx.bind(function(e,n){var i=this._locateHTML(n); +for(var d=this._getTaskTree(t),l=0;l0?(i&&(a.$drop_target=(this.getTaskIndex(t)>this.getTaskIndex(i)?"next:":"")+i),a.$drop_target="next:"+s[1*e-1]):a.$drop_target=s[1*e+1]?s[1*e+1]:n,this.refreshData()}},gantt._init_dnd=function(){var t=new dhtmlxDnD(this.$grid_data,{updates_per_second:60});dhtmlx.defined(this.config.dnd_sensitivity)&&(t.config.sensitivity=this.config.dnd_sensitivity),t.attachEvent("onBeforeDragStart",dhtmlx.bind(function(e,n){var i=this._locateHTML(n); if(!i)return!1;this.hideQuickInfo&&this._hideQuickInfo();var a=this.locate(n),s=gantt.getTask(a);return gantt._is_readonly(s)?!1:(t.config.initial_open_state=s.$open,this.callEvent("onRowDragStart",[a,n.target||n.srcElement,n])?void 0:!1)},this)),t.attachEvent("onAfterDragStart",dhtmlx.bind(function(e,n){var i=this._locateHTML(n);t.config.marker.innerHTML=i.outerHTML,t.config.id=this.locate(n);var a=this.getTask(t.config.id);a.$open=!1,a.$transparent=!0,this.refreshData()},this)),t.lastTaskOfLevel=function(t){for(var e=gantt._order,n=gantt._pull,i=null,a=0,s=e.length;s>a;a++)n[e[a]].$level==t&&(i=n[e[a]]); return i?i.id:null},t._getGridPos=dhtmlx.bind(function(t){var e=this._get_position(this.$grid_data),n=e.x,i=t.pos.y-10;return ie.y+this.$grid_data.offsetHeight-this.config.row_height&&(i=e.y+this.$grid_data.offsetHeight-this.config.row_height),e.x=n,e.y=i,e},this),t.attachEvent("onDragMove",dhtmlx.bind(function(e,n){var i=t.config,a=t._getGridPos(n);i.marker.style.left=a.x+10+"px",i.marker.style.top=a.y+"px",a=t._getGridPos(n);var s=(a.x,a.y),r=document.elementFromPoint(a.x-document.body.scrollLeft+1,s-document.body.scrollTop),o=this.locate(r),d=this.getTask(t.config.id); if(this.isTaskExists(o)||(o=t.lastTaskOfLevel(d.$level),o==t.config.id&&(o=null)),this.isTaskExists(o)){var l=gantt._get_position(r),_=this.getTask(o);if(l.y+r.offsetHeight/2=0;)c=this._pull[this._order[h-u]],u++; @@ -78,17 +78,16 @@ this.set_actions();var e={before_start:"onBeforeTaskDrag",before_finish:"onBefor var a=n.x-e.start_x,s=gantt.getTask(e.id);if(this._handlers[e.mode]){var r=dhtmlx.mixin({},s),o=dhtmlx.mixin({},s);this._handlers[e.mode].apply(this,[o,a,e]),dhtmlx.mixin(s,o,!0),gantt._update_parents(e.id,!0),gantt.callEvent("onTaskDrag",[s.id,e.mode,o,r,t]),dhtmlx.mixin(s,o,!0),gantt._update_parents(e.id),gantt.refreshTask(e.id)}}},on_mouse_down:function(t,e){if(2!=t.button){var n=gantt.locate(t),i=null;if(gantt.isTaskExists(n)&&(i=gantt.getTask(n)),!gantt._is_readonly(i)&&!this.drag.mode){this.clear_drag_state(),e=e||t.target||t.srcElement; var a=gantt._trim(e.className||"");if(!a||!this._get_drag_mode(a))return e.parentNode?this.on_mouse_down(t,e.parentNode):void 0;var s=this._get_drag_mode(a);if(s)if(s.mode&&s.mode!=gantt.config.drag_mode.ignore&&gantt.config["drag_"+s.mode]){if(n=gantt.locate(e),i=dhtmlx.copy(gantt.getTask(n)||{}),gantt._is_readonly(i))return this.clear_drag_state(),!1;if(gantt._is_flex_task(i)&&s.mode!=gantt.config.drag_mode.progress)return void this.clear_drag_state();s.id=n;var r=gantt._get_mouse_pos(t);s.start_x=r.x,s.start_y=r.y,s.obj=i,this.drag.start_drag=s }else this.clear_drag_state();else if(gantt.checkEvent("onMouseDown")&&gantt.callEvent("onMouseDown",[a.split(" ")[0]])&&e.parentNode)return this.on_mouse_down(t,e.parentNode)}}},_fix_dnd_scale_time:function(t,e){var n=gantt._tasks.unit,i=gantt._tasks.step;gantt.config.round_dnd_dates||(n="minute",i=gantt.config.time_step),e.mode==gantt.config.drag_mode.resize?e.left?t.start_date=gantt.roundDate({date:t.start_date,unit:n,step:i}):t.end_date=gantt.roundDate({date:t.end_date,unit:n,step:i}):e.mode==gantt.config.drag_mode.move&&(t.start_date=gantt.roundDate({date:t.start_date,unit:n,step:i}),t.end_date=gantt.calculateEndDate(t.start_date,t.duration,gantt.config.duration_unit)) -},_fix_working_times:function(t,e){gantt.config.work_time&&gantt.config.correct_work_time&&(e.mode==gantt.config.drag_mode.resize?e.left?t.start_date=gantt.getClosestWorkTime({date:t.start_date,dir:"future"}):t.end_date=gantt.getClosestWorkTime({date:t.end_date,dir:"past"}):e.mode==gantt.config.drag_mode.move&&(gantt.isWorkTime(t.start_date)?gantt.isWorkTime(new Date(+t.end_date-1))||(t.end_date=gantt.calculateEndDate(t.start_date,t.duration)):(t.start_date=gantt.getClosestWorkTime({date:t.start_date,dir:"future"}),t.end_date=gantt.calculateEndDate(t.start_date,t.duration)))) -},on_mouse_up:function(t){var e=this.drag;if(e.mode&&e.id){var n=gantt.getTask(e.id);if(gantt.config.work_time&&gantt.config.correct_work_time&&this._fix_working_times(n,e),this._fix_dnd_scale_time(n,e),gantt._init_task_timing(n),this._fireEvent("before_finish",e.mode,[e.id,e.mode,dhtmlx.copy(e.obj),t])){var i=e.id;gantt._init_task_timing(n),gantt.updateTask(n.id),this._fireEvent("after_finish",e.mode,[i,e.mode,t]),this.clear_drag_state()}else e.obj._dhx_changed=!1,dhtmlx.mixin(n,e.obj,!0),gantt.updateTask(n.id) -}this.clear_drag_state()},_get_drag_mode:function(t){var e=gantt.config.drag_mode,n=(t||"").split(" "),i=n[0],a={mode:null,left:null};switch(i){case"gantt_task_line":case"gantt_task_content":a.mode=e.move;break;case"gantt_task_drag":a.mode=e.resize,a.left=n[1]&&-1!==n[1].indexOf("left",n[1].length-"left".length)?!0:!1;break;case"gantt_task_progress_drag":a.mode=e.progress;break;case"gantt_link_control":case"gantt_link_point":a.mode=e.ignore;break;default:a=null}return a},_start_dnd:function(t){var e=this.drag=this.drag.start_drag; -delete e.start_drag;var n=gantt.config,i=e.id;n["drag_"+e.mode]&&gantt.callEvent("onBeforeDrag",[i,e.mode,t])&&this._fireEvent("before_start",e.mode,[i,e.mode,t])?delete e.start_drag:this.clear_drag_state()},_fireEvent:function(t,e,n){dhtmlx.assert(this._events[t],"Invalid stage:{"+t+"}");var i=this._events[t][e];return dhtmlx.assert(i,"Unknown after drop mode:{"+e+"}"),dhtmlx.assert(n,"Invalid event arguments"),gantt.checkEvent(i)?gantt.callEvent(i,n):!0}},gantt.roundTaskDates=function(t){var e=gantt._tasks_dnd.drag; -e||(e={mode:gantt.config.drag_mode.move}),gantt._tasks_dnd._fix_dnd_scale_time(t,e)},gantt._render_link=function(t){var e=this.getLink(t);gantt._linkRenderer.render_item(e,this.$task_links)},gantt._get_link_type=function(t,e){var n=null;return t&&e?n=gantt.config.links.start_to_start:!t&&e?n=gantt.config.links.finish_to_start:t||e?t&&!e&&(n=gantt.config.links.start_to_finish):n=gantt.config.links.finish_to_finish,n},gantt.isLinkAllowed=function(t,e,n,i){var a=null;if(a="object"==typeof t?t:{source:t,target:e,type:this._get_link_type(n,i)},!a)return!1; -if(!(a.source&&a.target&&a.type))return!1;if(a.source==a.target)return!1;var s=!0;return this.checkEvent("onLinkValidation")&&(s=this.callEvent("onLinkValidation",[a])),s},gantt._render_link_element=function(t){var e=this._path_builder.get_points(t),n=gantt._drawer,i=n.get_lines(e),a=document.createElement("div"),s="gantt_task_link";t.color&&(s+=" gantt_link_inline_color");var r=this.templates.link_class?this.templates.link_class(t):"";r&&(s+=" "+r),this.config.highlight_critical_path&&this.isCriticalLink&&this.isCriticalLink(t)&&(s+=" gantt_critical_link"),a.className=s,a.setAttribute(gantt.config.link_attribute,t.id); -for(var o=0;ot.x?this.dirs.right:e.y>t.y?this.dirs.down:this.dirs.up}},gantt._y_from_ind=function(t){return t*gantt.config.row_height},gantt._path_builder={path:[],clear:function(){this.path=[]},current:function(){return this.path[this.path.length-1]},point:function(t){return t?(this.path.push(dhtmlx.copy(t)),t):this.current() },point_to:function(t,e,n){n=n?{x:n.x,y:n.y}:dhtmlx.copy(this.point());var i=gantt._drawer.dirs;switch(t){case i.left:n.x-=e;break;case i.right:n.x+=e;break;case i.up:n.y-=e;break;case i.down:n.y+=e}return this.point(n)},get_points:function(t){var e=this.get_endpoint(t),n=gantt.config,i=e.e_y-e.y,a=e.e_x-e.x,s=gantt._drawer.dirs;this.clear(),this.point({x:e.x,y:e.y});var r=2*n.link_arrow_size,o=e.e_x>e.x;if(t.type==gantt.config.links.start_to_start)this.point_to(s.left,r),o?(this.point_to(s.down,i),this.point_to(s.right,a)):(this.point_to(s.right,a),this.point_to(s.down,i)),this.point_to(s.right,r); else if(t.type==gantt.config.links.finish_to_start)if(o=e.e_x>e.x+2*r,this.point_to(s.right,r),o)a-=r,this.point_to(s.down,i),this.point_to(s.right,a);else{a-=2*r;var d=i>0?1:-1;this.point_to(s.down,d*(n.row_height/2)),this.point_to(s.right,a),this.point_to(s.down,d*(Math.abs(i)-n.row_height/2)),this.point_to(s.right,r)}else if(t.type==gantt.config.links.finish_to_finish)this.point_to(s.right,r),o?(this.point_to(s.right,a),this.point_to(s.down,i)):(this.point_to(s.down,i),this.point_to(s.right,a)),this.point_to(s.left,r); @@ -107,18 +106,19 @@ var e=this._create_filter("_filter_task","_is_grid_visible"),n=this._create_filt t(i,e,n,this.getTask(n))}),this.attachEvent("onLinkIdChange",function(e,n){var i=this._get_link_renderers();t(i,e,n,this.getLink(n))})},gantt._create_filter=function(t){return t instanceof Array||(t=Array.prototype.slice.call(arguments,0)),function(e){for(var n=!0,i=0,a=t.length;a>i;i++){var s=t[i];gantt[s]&&(n=n&&gantt[s].apply(gantt,[e.id,e])!==!1)}return n}},gantt._is_chart_visible=function(){return!!this.config.show_chart},gantt._filter_task=function(t,e){var n=null,i=null;return this.config.start_date&&this.config.end_date&&(n=this.config.start_date.valueOf(),i=this.config.end_date.valueOf(),+e.start_date>i||+e.end_date<+n)?!1:!0 },gantt._filter_link=function(t,e){return this.config.show_links&&gantt.isTaskVisible(e.source)&&gantt.isTaskVisible(e.target)?this.callEvent("onBeforeLinkDisplay",[t,e]):!1},gantt._is_std_background=function(){return!this.config.static_background},gantt._task_layers=[],gantt._task_renderers={},gantt._get_task_renderers=function(){var t=[];for(var e in this._task_renderers)t.push(this._task_renderers[e]);return t},gantt._get_link_renderers=function(){return[this._linkRenderer]},gantt._delete_link_handler=function(t,e){if(t&&this.callEvent("onLinkDblClick",[t,e])){var n=gantt.getLink(t); if(gantt._is_readonly(n))return;var i="",a=gantt.locale.labels.link+" "+this.templates.link_description(this.getLink(t))+" "+gantt.locale.labels.confirm_link_deleting;window.setTimeout(function(){gantt._dhtmlx_confirm(a,i,function(){gantt.deleteLink(t)})},gantt.config.touch?300:1)}},gantt.getTaskNode=function(t){return this._taskRenderer.rendered[t]},gantt.getLinkNode=function(t){return this._linkRenderer.rendered[t]},gantt._get_tasks_data=function(){for(var t=[],e=0;en;n++)e[n].style&&(e[n].style.width=t.full_width+"px");if(this._is_grid_visible()){for(var a=this.getGridColumns(),s=0,n=0;n+i&&(i=new Date(t.end_date))},this.config.root_id),this.eachTask(function(t){t.start_date&&+t.start_date<+a&&(a=new Date(t.start_date)) -},this.config.root_id),this._min_date=a,this._max_date=i,i&&i!=-1/0||(this._min_date=new Date,this._max_date=new Date(this._min_date)),this._min_date=this.date[t+"_start"](this._min_date),+this._min_date==+a&&(this._min_date=this.date.add(this.date[t+"_start"](this._min_date),-1,t)),this._max_date=this.date[t+"_start"](this._max_date),this._max_date=this.date.add(this._max_date,1,t)},gantt._prepare_scale_html=function(t){var e=[],n=null,i=null,a=null;(t.template||t.date)&&(i=t.template||this.date.date_to_str(t.date)),a=t.css||gantt.templates.scale_cell_class; -for(var s=0;s"+r+"";e.push(h)}}return e.join("")},gantt._render_tasks_scales=function(){this._init_tasks_range(),this._scroll_resize(),this._set_sizes();var t="",e=0,n=0,i=0;if(this._is_chart_visible()){var a=this._scale_helpers,s=[a.primaryScale()].concat(this.config.subscales); -i=this.config.scale_height-1,a.sortScales(s);for(var r=this._get_resize_options(),o=r.x?0:this.$task.offsetWidth,d=a.prepareConfigs(s,this.config.min_column_width,o,i),l=this._tasks=d[d.length-1],_=[],h=this.templates.scale_row_class,g=0;g'+this._prepare_scale_html(d[g])+"")}t=_.join(""),e=l.full_width+this.$scroll_ver.offsetWidth+"px",n=l.full_width+"px",i+="px" -}this.$task.style.display=this._is_chart_visible()?"":"none",this.$task_scale.style.height=i,this.$task_data.style.width=this.$task_scale.style.width=e,this.$task_scale.innerHTML=t},gantt._render_bg_line=function(t){var e=gantt._tasks,n=e.count,i=document.createElement("div");if(gantt.config.show_task_cells)for(var a=0;n>a;a++){var s=e.width[a],r="";if(s>0){var o=document.createElement("div");o.style.width=s+"px",r="gantt_task_cell"+(a==n-1?" gantt_last_cell":""),l=this.templates.task_cell_class(t,e.trace_x[a]),l&&(r+=" "+l),o.className=r,i.appendChild(o) -}}var d=t.$index%2!==0,l=gantt.templates.task_row_class(t.start_date,t.end_date,t),_="gantt_task_row"+(d?" odd":"")+(l?" "+l:"");return this.getState().selected_task==t.id&&(_+=" gantt_selected"),i.className=_,i.style.height=gantt.config.row_height+"px",i.setAttribute(this.config.task_attribute,t.id),i},gantt._render_bg_canvas=function(){},gantt._adjust_scales=function(){if(this.config.fit_tasks){var t=+this._min_date,e=+this._max_date;if(this._init_tasks_range(),+this._min_date!=t||+this._max_date!=e)return this.render(),this.callEvent("onScaleAdjusted",[]),!0 -}return!1},gantt.refreshTask=function(t,e){var n=this._get_task_renderers(),i=this.getTask(t);if(i&&this.isTaskVisible(t)){for(var a=0;a=+a.min_date&&t.appendChild(i(e+" task_left"))},gantt._get_task_height=function(){var t=this.config.task_height;return"full"==t&&(t=this.config.row_height-5),t=Math.min(t,this.config.row_height),Math.max(t,0)},gantt._get_milestone_width=function(){return this._get_task_height() -},gantt._get_visible_milestone_width=function(){var t=gantt._get_task_height();return Math.sqrt(2*t*t)},gantt.getTaskPosition=function(t,e,n){var i=this.posFromDate(e||t.start_date),a=this.posFromDate(n||t.end_date);a=Math.max(i,a);var s=this.getTaskTop(t.id),r=this.config.task_height;return{left:i,top:s,height:r,width:Math.max(a-i,0)}},gantt._get_task_width=function(t){return Math.round(this._get_task_pos(t,!1).x-this._get_task_pos(t,!0).x)},gantt._is_readonly=function(t){return t&&t[this.config.editable_property]?!1:t&&t[this.config.readonly_property]||this.config.readonly +n.$index=e,this.calculateProjectDuration(n),t.push(n)}return t},gantt._get_links_data=function(){var t=[];for(var e in this._lpull)t.push(this._lpull[e]);return t},gantt._render_data=function(){this._sync_order(),this._update_layout_sizes(),this.config.static_background&&this._render_bg_canvas();for(var t=this._get_tasks_data(),e=this._get_task_renderers(),n=0;nn;n++){var a=e[n];this._is_layer(a)&&a.style&&(a.style.width=t.full_width+"px")}if(this._is_grid_visible()){for(var s=this.getGridColumns(),r=0,n=0;n+i&&(i=new Date(t.end_date))},this.config.root_id),this.eachTask(function(t){t.start_date&&+t.start_date<+a&&(a=new Date(t.start_date))},this.config.root_id),this._min_date=a,this._max_date=i,i&&i!=-1/0||(this._min_date=new Date,this._max_date=new Date(this._min_date)),this._min_date=this.date[t+"_start"](this._min_date),+this._min_date==+a&&(this._min_date=this.date.add(this.date[t+"_start"](this._min_date),-1,t)),this._max_date=this.date[t+"_start"](this._max_date),this._max_date=this.date.add(this._max_date,2,t) +},gantt._prepare_scale_html=function(t){var e=[],n=null,i=null,a=null;(t.template||t.date)&&(i=t.template||this.date.date_to_str(t.date)),a=t.css||gantt.templates.scale_cell_class;for(var s=0;s"+r+"";e.push(h)}}return e.join("")},gantt._get_scales=function(){var t=this._scale_helpers,e=[t.primaryScale()].concat(this.config.subscales); +return t.sortScales(e),e},gantt._render_tasks_scales=function(){this._init_tasks_range(),this._scroll_resize(),this._set_sizes();var t="",e=0,n=0,i=0;if(this._is_chart_visible()){var a=this._scale_helpers,s=this._get_scales();i=this.config.scale_height-1;for(var r=this._get_resize_options(),o=r.x?Math.max(this.config.autosize_min_width,0):this.$task.offsetWidth,d=a.prepareConfigs(s,this.config.min_column_width,o,i),l=this._tasks=d[d.length-1],_=[],h=this.templates.scale_row_class,g=0;g'+this._prepare_scale_html(d[g])+"")}t=_.join(""),e=l.full_width+this.$scroll_ver.offsetWidth+"px",n=l.full_width+"px",i+="px"}this.$task.style.display=this._is_chart_visible()?"":"none",this.$task_scale.style.height=i,this.$task_data.style.width=this.$task_scale.style.width=e,this.$task_scale.innerHTML=t},gantt._render_bg_line=function(t){var e=gantt._tasks,n=e.count,i=document.createElement("div"); +if(gantt.config.show_task_cells)for(var a=0;n>a;a++){var s=e.width[a],r="";if(s>0){var o=document.createElement("div");o.style.width=s+"px",r="gantt_task_cell"+(a==n-1?" gantt_last_cell":""),l=this.templates.task_cell_class(t,e.trace_x[a]),l&&(r+=" "+l),o.className=r,i.appendChild(o)}}var d=t.$index%2!==0,l=gantt.templates.task_row_class(t.start_date,t.end_date,t),_="gantt_task_row"+(d?" odd":"")+(l?" "+l:"");return this.getState().selected_task==t.id&&(_+=" gantt_selected"),i.className=_,i.style.height=gantt.config.row_height+"px",i.setAttribute(this.config.task_attribute,t.id),i +},gantt._render_bg_canvas=function(){},gantt._adjust_scales=function(){if(this.config.fit_tasks){var t=+this._min_date,e=+this._max_date;if(this._init_tasks_range(),+this._min_date!=t||+this._max_date!=e)return this.render(),this.callEvent("onScaleAdjusted",[]),!0}return!1},gantt.refreshTask=function(t,e){var n=this._get_task_renderers(),i=this.getTask(t);if(i&&this.isTaskVisible(t)){for(var a=0;a=+a.min_date&&t.appendChild(i(e+" task_left"))},gantt._get_task_height=function(){var t=this.config.task_height;return"full"==t&&(t=this.config.row_height-5),t=Math.min(t,this.config.row_height),Math.max(t,0)},gantt._get_milestone_width=function(){return this._get_task_height()},gantt._get_visible_milestone_width=function(){var t=gantt._get_task_height(); +return Math.sqrt(2*t*t)},gantt.getTaskPosition=function(t,e,n){var i=this.posFromDate(e||t.start_date),a=this.posFromDate(n||t.end_date);a=Math.max(i,a);var s=this.getTaskTop(t.id),r=this.config.task_height;return{left:i,top:s,height:r,width:Math.max(a-i,0)}},gantt._get_task_width=function(t){return Math.round(this._get_task_pos(t,!1).x-this._get_task_pos(t,!0).x)},gantt._is_readonly=function(t){return t&&t[this.config.editable_property]?!1:t&&t[this.config.readonly_property]||this.config.readonly },gantt._task_default_render=function(t){var e=this._get_task_pos(t),n=this.config,i=this._get_task_height(),a=Math.floor((this.config.row_height-i)/2);this._get_safe_type(t.type)==n.types.milestone&&n.link_line_width>1&&(a+=1);var s=document.createElement("div"),r=gantt._get_task_width(t),o=this._get_safe_type(t.type);s.setAttribute(this.config.task_attribute,t.id),n.show_progress&&o!=this.config.types.milestone&&this._render_task_progress(t,s,r);var d=gantt._render_task_content(t,r);t.textColor&&(d.styles.color=t.textColor),s.appendChild(d); var l=this._combine_item_class("gantt_task_line",this.templates.task_class(t.start_date,t.end_date,t),t.id);(t.color||t.progressColor||t.textColor)&&(l+=" gantt_task_inline_color"),s.className=l;var _=["left:"+e.x+"px","top:"+(a+e.y)+"px","height:"+i+"px","line-height:"+i+"px","width:"+r+"px"];t.color&&_.push("background-color:"+t.color),t.textColor&&_.push("color:"+t.textColor),s.style.cssText=_.join(";");var h=this._render_leftside_content(t);return h&&s.appendChild(h),h=this._render_rightside_content(t),h&&s.appendChild(h),this._is_readonly(t)||(n.drag_resize&&!this._is_flex_task(t)&&o!=this.config.types.milestone&&gantt._render_pair(s,"gantt_task_drag",t,function(t){var e=document.createElement("div"); return e.className=t,e}),n.drag_links&&this.config.show_links&&gantt._render_pair(s,"gantt_link_control",t,function(t){var e=document.createElement("div");e.className=t,e.style.cssText=["height:"+i+"px","line-height:"+i+"px"].join(";");var n=document.createElement("div");return n.className="gantt_link_point",e.appendChild(n),e})),s},gantt._render_task_element=function(t){var e=this.config.type_renderers,n=e[this._get_safe_type(t.type)];return n||(n=this._task_default_render),n.apply(this,arguments) @@ -129,54 +129,55 @@ r.style.left=s+"px",r.className="gantt_task_progress_drag",a.appendChild(r),e.ap return o},gantt.posFromDate=function(t){var e=gantt._day_index_by_date(t);dhtmlx.assert(e>=0,"Invalid day index");for(var n=Math.floor(e),i=e%1,a=0,s=1;n>=s;s++)a+=gantt._tasks.width[s-1];return i&&(a+=n=this._max_date)return n.length;for(var a=null,s=0,r=n.length-1;r>s&&(a=+n[s+1],!(a>e)||i[a]);s++);return n[s]?s+(t-n[s])/gantt._get_coll_duration(gantt._tasks,n[s]):0 },gantt._get_coll_duration=function(t,e){return gantt.date.add(e,t.step,t.unit)-e},gantt._get_x_pos=function(t,e){e=e!==!1;gantt.posFromDate(e?t.start_date:t.end_date)},gantt.getTaskTop=function(t){return this._y_from_ind(this._get_visible_order(t))},gantt._get_task_coord=function(t,e,n){e=e!==!1,n=n||0;var i=this._get_safe_type(t.type)==this.config.types.milestone,a=null;a=e||i?t.start_date||this._default_task_date(t):t.end_date||this.calculateEndDate(this._default_task_date(t));var s=this.posFromDate(a),r=this.getTaskTop(t.id); return i&&(e?s-=n:s+=n),{x:s,y:r}},gantt._get_task_pos=function(t,e){e=e!==!1;var n=gantt._get_milestone_width()/2;return this._get_task_coord(t,e,n)},gantt._get_task_visible_pos=function(t,e){e=e!==!1;var n=gantt._get_visible_milestone_width()/2;return this._get_task_coord(t,e,n)},gantt._correct_shift=function(t,e){return t-=6e4*(new Date(gantt._min_date).getTimezoneOffset()-new Date(t).getTimezoneOffset())*(e?-1:1)},gantt._get_mouse_pos=function(t){if(t.pageX||t.pageY)var e={x:t.pageX,y:t.pageY}; -var n=_isIE?document.documentElement:document.body,e={x:t.clientX+n.scrollLeft-n.clientLeft,y:t.clientY+n.scrollTop-n.clientTop},i=gantt._get_position(gantt.$task_data);return e.x=e.x-i.x+gantt.$task_data.scrollLeft,e.y=e.y-i.y+gantt.$task_data.scrollTop,e},gantt._task_renderer=function(t,e,n,i){return this._task_area_pulls||(this._task_area_pulls={}),this._task_area_renderers||(this._task_area_renderers={}),this._task_area_renderers[t]?this._task_area_renderers[t]:(e||dhtmlx.assert(!1,"Invalid renderer call"),this._task_area_renderers[t]={render_item:function(a,s){var r=gantt._task_area_pulls[t]; +var n=_isIE?document.documentElement:document.body,e={x:t.clientX+n.scrollLeft-n.clientLeft,y:t.clientY+n.scrollTop-n.clientTop},i=gantt._get_position(gantt.$task_data);return e.x=e.x-i.x+gantt.$task_data.scrollLeft,e.y=e.y-i.y+gantt.$task_data.scrollTop,e},gantt._is_layer=function(t){return t&&t.hasAttribute&&t.hasAttribute(this.config.layer_attribute)},gantt._task_renderer=function(t,e,n,i){return this._task_area_pulls||(this._task_area_pulls={}),this._task_area_renderers||(this._task_area_renderers={}),this._task_area_renderers[t]?this._task_area_renderers[t]:(e||dhtmlx.assert(!1,"Invalid renderer call"),n&&n.setAttribute(this.config.layer_attribute,!0),this._task_area_renderers[t]={render_item:function(a,s){var r=gantt._task_area_pulls[t]; if(s=s||n,i&&!i(a))return void this.remove_item(a.id);var o=e.call(gantt,a);o&&(r[a.id]?this.replace_item(a.id,o):(r[a.id]=o,s.appendChild(o)))},clear:function(e){this.rendered=gantt._task_area_pulls[t]={},e=e||n,e&&(e.innerHTML="")},render_items:function(t,e){e=e||n,this.clear(e);for(var i=document.createDocumentFragment(),a=0,s=t.length;s>a;a++)this.render_item(t[a],i);e.appendChild(i)},replace_item:function(t,e){var n=this.rendered[t];n&&n.parentNode&&n.parentNode.replaceChild(e,n),this.rendered[t]=e },remove_item:function(t){var e=this.rendered[t];e&&e.parentNode&&e.parentNode.removeChild(e),delete this.rendered[t]},change_id:function(t,e){this.rendered[e]=this.rendered[t],delete this.rendered[t]},rendered:this._task_area_pulls[t],node:n,unload:function(){this.clear(),delete gantt._task_area_renderers[t],delete gantt._task_area_pulls[t]}},this._task_area_renderers[t])},gantt._clear_renderers=function(){for(var t in this._task_area_renderers)this._task_renderer(t).unload()},gantt._pull={},gantt._branches={},gantt._order=[],gantt._lpull={},gantt.load=function(t,e,n){this._load_url=t,dhtmlx.assert(arguments.length,"Invalid load arguments"),this.callEvent("onLoadStart",[]); -var i="json",a=null;arguments.length>=3?(i=e,a=n):"string"==typeof arguments[1]?i=arguments[1]:"function"==typeof arguments[1]&&(a=arguments[1]),dhtmlxAjax.get(t,dhtmlx.bind(function(t){this.on_load(t,i),this.callEvent("onLoadEnd",[]),"function"==typeof a&&a.call(this)},this))},gantt.parse=function(t,e){this.on_load({xmlDoc:{responseText:t}},e)},gantt.serialize=function(t){return t=t||"json",this[t].serialize()},gantt.on_load=function(t,e){e||(e="json"),dhtmlx.assert(this[e],"Invalid data type:'"+e+"'"); -var n=t.xmlDoc.responseText,i=this[e].parse(n,t);this._process_loading(i)},gantt._process_loading=function(t){t.collections&&this._load_collections(t.collections);for(var e=t.data,n=0;n=3?(i=e,a=n):"string"==typeof arguments[1]?i=arguments[1]:"function"==typeof arguments[1]&&(a=arguments[1]),this._load_type=i,dhtmlxAjax.get(t,dhtmlx.bind(function(t){this.on_load(t,i),this.callEvent("onLoadEnd",[]),"function"==typeof a&&a.call(this)},this))},gantt.parse=function(t,e){this.on_load({xmlDoc:{responseText:t}},e)},gantt.serialize=function(t){return t=t||"json",this[t].serialize()},gantt.on_load=function(t,e){e||(e="json"),dhtmlx.assert(this[e],"Invalid data type:'"+e+"'"); +var n=t.xmlDoc.responseText,i=this[e].parse(n,t);this._process_loading(i)},gantt._process_loading=function(t){t.collections&&this._load_collections(t.collections);for(var e=t.data,n=0;nn;n++)if(e[n]==t)return n;return-1},gantt.eachTask=function(t,e,n){e=e||this.config.root_id,n=n||this;var i=this._branches[e];if(i)for(var a=0;a"},_copyObject:function(t){var e=gantt.templates.xml_format(t.start_date),n=gantt.templates.xml_format(t.end_date);return""},serialize:function(){var t=[],e=[];gantt.eachTask(function(e){t.push(this._copyObject(e)) -},gantt.config.root_id,this);for(var n in gantt._lpull)e.push(this._copyLink(gantt._lpull[n]));return""+t.join("")+""+e.join("")+""}},gantt.oldxml={parse:function(t,e){e=gantt.xml._getXML(t,e,"projects");for(var n={collections:{links:[]}},i=n.data=[],a=e.doXPath("//task"),s=0;se;e++)if(this.units[e]==t)return e;dhtmlx.assert(!1,"Incorrect duration unit")},_timestamp:function(t){var e=null;return t.day||0===t.day?e=t.day:t.date&&(e=gantt.date.date_part(new Date(t.date)).valueOf()),e -},set_time:function(t){var e=void 0!==t.hours?t.hours:!0,n=this._timestamp(t);null!==n?this.dates[n]=e:this.hours=e},unset_time:function(t){if(t){var e=this._timestamp(t);null!==e&&delete this.dates[e]}else this.hours=[]},is_working_unit:function(t,e,n){return gantt.config.work_time?(void 0===n&&(n=this._get_unit_order(e)),void 0===n?!1:n&&!this.is_working_unit(t,this.units[n-1],n-1)?!1:this["is_work_"+e]?this["is_work_"+e](t):!0):!0},is_work_day:function(t){var e=this.get_working_hours(t);return e instanceof Array?e.length>0:!1 -},is_work_hour:function(t){for(var e=this.get_working_hours(t),n=t.getHours(),i=0;i=e[i]&&ns;){var r=gantt.date.add(a,i,n);this.is_working_unit(i>0?a:r,n)&&s++,a=r}return a},get_closest_worktime:function(t){if(this.is_working_unit(t.date,t.unit))return t.date;var e=t.unit,n=gantt.date[e+"_start"](t.date),i=new Date(n),a=new Date(n),s=!0,r=3e3,o=0,d="any"==t.dir||!t.dir,l=1;for("past"==t.dir&&(l=-1);!this.is_working_unit(n,e);)if(d&&(n=s?i:a,l=-1*l),n=gantt.date.add(n,l,e),d&&(s?i=n:a=n),s=!s,o++,o>r)return dhtmlx.assert(!1,"Invalid working time check"),!1; -return(n==a||"past"==t.dir)&&(n=gantt.date.add(n,1,e)),n}},gantt.getTask=function(t){return dhtmlx.assert(t,"Invalid argument for gantt.getTask"),dhtmlx.assert(this._pull[t],"Task not found id="+t),this._pull[t]},gantt.getTaskByTime=function(t,e){var n=this._pull,i=[];if(t||e){t=+t||-1/0,e=+e||1/0;for(var a in n){var s=n[a];+s.start_datet&&i.push(s)}}else for(var a in n)i.push(n[a]);return i},gantt.isTaskExists=function(t){return dhtmlx.defined(this._pull[t])},gantt.isTaskVisible=function(t){if(!this._pull[t])return!1; -if(!(+this._pull[t].start_date<+this._max_date&&+this._pull[t].end_date>+this._min_date))return!1;for(var e=0,n=this._order.length;n>e;e++)if(this._order[e]==t)return!0;return!1},gantt.updateTask=function(t,e){return dhtmlx.defined(e)||(e=this.getTask(t)),this.callEvent("onBeforeTaskUpdate",[t,e])===!1?!1:(this._pull[e.id]=e,this._is_parent_sync(e)||this._resync_parent(e),this._update_parents(e.id),this.refreshTask(e.id),this.callEvent("onAfterTaskUpdate",[t,e]),this._sync_order(),void this._adjust_scales()) -},gantt._add_branch=function(t,e){this._branches[t.parent]||(this._branches[t.parent]=[]);for(var n=this._branches[t.parent],i=!1,a=0,s=n.length;s>a;a++)if(n[a]==t.id){i=!0;break}i||n.push(t.id),this._sync_parent(t),this._sync_order(e)},gantt._move_branch=function(t,e,n){t.parent=n,this._sync_parent(t),this._replace_branch_child(e,t.id),n?this._add_branch(t):delete this._branches[t.id],t.$level=this._item_level(t),this._sync_order()},gantt._resync_parent=function(t){this._move_branch(t,t.$rendered_parent,t.parent) -},gantt._sync_parent=function(t){t.$rendered_parent=t.parent},gantt._is_parent_sync=function(t){return t.$rendered_parent==t.parent},gantt._replace_branch_child=function(t,e,n){var i=this._branches[t];if(i){for(var a=[],s=0;s"},_copyObject:function(t){return""},serialize:function(){for(var t=[],e=[],n=gantt.json.serialize(),i=0,a=n.data.length;a>i;i++)t.push(this._copyObject(n.data[i]));for(var i=0,a=n.links.length;a>i;i++)e.push(this._copyLink(n.links[i])); +return""+t.join("")+""+e.join("")+""}},gantt.oldxml={parse:function(t,e){e=gantt.xml._getXML(t,e,"projects");for(var n={collections:{links:[]}},i=n.data=[],a=e.doXPath("//task"),s=0;se;e++)if(this.units[e]==t)return e;dhtmlx.assert(!1,"Incorrect duration unit")},_timestamp:function(t){var e=null;return t.day||0===t.day?e=t.day:t.date&&(e=gantt.date.date_part(new Date(t.date)).valueOf()),e},set_time:function(t){var e=void 0!==t.hours?t.hours:!0,n=this._timestamp(t);null!==n?this.dates[n]=e:this.hours=e},unset_time:function(t){if(t){var e=this._timestamp(t); +null!==e&&delete this.dates[e]}else this.hours=[]},is_working_unit:function(t,e,n){return gantt.config.work_time?(void 0===n&&(n=this._get_unit_order(e)),void 0===n?!1:n&&!this.is_working_unit(t,this.units[n-1],n-1)?!1:this["is_work_"+e]?this["is_work_"+e](t):!0):!0},is_work_day:function(t){var e=this.get_working_hours(t);return e instanceof Array?e.length>0:!1},is_work_hour:function(t){for(var e=this.get_working_hours(t),n=t.getHours(),i=0;i=e[i]&&ns;){var r=gantt.date.add(a,i,n); +this.is_working_unit(i>0?a:r,n)&&s++,a=r}return a},get_closest_worktime:function(t){if(this.is_working_unit(t.date,t.unit))return t.date;var e=t.unit,n=gantt.date[e+"_start"](t.date),i=new Date(n),a=new Date(n),s=!0,r=3e3,o=0,d="any"==t.dir||!t.dir,l=1;for("past"==t.dir&&(l=-1);!this.is_working_unit(n,e);)if(d&&(n=s?i:a,l=-1*l),n=gantt.date.add(n,l,e),d&&(s?i=n:a=n),s=!s,o++,o>r)return dhtmlx.assert(!1,"Invalid working time check"),!1;return(n==a||"past"==t.dir)&&(n=gantt.date.add(n,1,e)),n}},gantt.getTask=function(t){return dhtmlx.assert(t,"Invalid argument for gantt.getTask"),dhtmlx.assert(this._pull[t],"Task not found id="+t),this._pull[t] +},gantt.getTaskByTime=function(t,e){var n=this._pull,i=[];if(t||e){t=+t||-1/0,e=+e||1/0;for(var a in n){var s=n[a];+s.start_datet&&i.push(s)}}else for(var a in n)i.push(n[a]);return i},gantt.isTaskExists=function(t){return dhtmlx.defined(this._pull[t])},gantt.isTaskVisible=function(t){if(!this._pull[t])return!1;if(!(+this._pull[t].start_date<+this._max_date&&+this._pull[t].end_date>+this._min_date))return!1;for(var e=0,n=this._order.length;n>e;e++)if(this._order[e]==t)return!0;return!1 +},gantt.updateTask=function(t,e){return dhtmlx.defined(e)||(e=this.getTask(t)),this.callEvent("onBeforeTaskUpdate",[t,e])===!1?!1:(this._pull[e.id]=e,this._is_parent_sync(e)||this._resync_parent(e),this._update_parents(e.id),this.refreshTask(e.id),this.callEvent("onAfterTaskUpdate",[t,e]),this._sync_order(),void this._adjust_scales())},gantt._add_branch=function(t,e){this._branches[t.parent]||(this._branches[t.parent]=[]);for(var n=this._branches[t.parent],i=!1,a=0,s=n.length;s>a;a++)if(n[a]==t.id){i=!0; +break}i||n.push(t.id),this._sync_parent(t),this._sync_order(e)},gantt._move_branch=function(t,e,n){t.parent=n,this._sync_parent(t),this._replace_branch_child(e,t.id),this.isTaskExists(n)||n===this.config.root_id?this._add_branch(t):delete this._branches[t.id],t.$level=this.calculateTaskLevel(t),this._sync_order()},gantt._resync_parent=function(t){this._move_branch(t,t.$rendered_parent,t.parent)},gantt._sync_parent=function(t){t.$rendered_parent=t.parent},gantt._is_parent_sync=function(t){return t.$rendered_parent==t.parent +},gantt._replace_branch_child=function(t,e,n){var i=this._branches[t];if(i){for(var a=[],s=0;s=0?1:-1;return n.add_worktime(t,Math.abs(e),this.config.duration_unit,i*this.config.duration_step) -},gantt._init_task=function(t){return dhtmlx.defined(t.id)||(t.id=dhtmlx.uid()),t.start_date&&(t.start_date=gantt.date.parseDate(t.start_date,"xml_date")),t.end_date&&(t.end_date=gantt.date.parseDate(t.end_date,"xml_date")),t.start_date&&!t.end_date&&t.duration&&(t.end_date=this.calculateEndDate(t.start_date,t.duration)),gantt.config.work_time&&gantt.config.correct_work_time&&(t.start_date&&(t.start_date=gantt.getClosestWorkTime(t.start_date)),t.end_date&&(t.end_date=gantt.getClosestWorkTime(t.end_date))),gantt._init_task_timing(t),t.$source=[],t.$target=[],t.parent=t.parent||this.config.root_id,t.$open=dhtmlx.defined(t.open)?t.open:this.config.open_tree_initially,t.$level=this._item_level(t),t +},gantt.correctTaskWorkTime=function(t){gantt.config.work_time&&gantt.config.correct_work_time&&(gantt.isWorkTime(t.start_date)?gantt.isWorkTime(new Date(+t.end_date-1))||(t.end_date=gantt.calculateEndDate(t.start_date,t.duration)):(t.start_date=gantt.getClosestWorkTime({date:t.start_date,dir:"future"}),t.end_date=gantt.calculateEndDate(t.start_date,t.duration)))},gantt.getClosestWorkTime=function(t){var e=this._working_time_helper;return t instanceof Date&&(t={date:t}),t.dir=t.dir||"any",t.unit=t.unit||this.config.duration_unit,e.get_closest_worktime(t) +},gantt.calculateDuration=function(t,e){var n=this._working_time_helper;return n.get_work_units_between(t,e,this.config.duration_unit,this.config.duration_step)},gantt.calculateEndDate=function(t,e){var n=this._working_time_helper,i=e>=0?1:-1;return n.add_worktime(t,Math.abs(e),this.config.duration_unit,i*this.config.duration_step)},gantt._init_task=function(t){return dhtmlx.defined(t.id)||(t.id=dhtmlx.uid()),t.start_date&&(t.start_date=gantt.date.parseDate(t.start_date,"xml_date")),t.end_date&&(t.end_date=gantt.date.parseDate(t.end_date,"xml_date")),t.start_date&&!t.end_date&&t.duration&&(t.end_date=this.calculateEndDate(t.start_date,t.duration)),gantt._init_task_timing(t),t.start_date&&t.end_date&&gantt.correctTaskWorkTime(t),t.$source=[],t.$target=[],t.parent=t.parent||this.config.root_id,t.$open=dhtmlx.defined(t.open)?t.open:this.config.open_tree_initially,t.$level=this.calculateTaskLevel(t),t },gantt._init_task_timing=function(t){var e=this._get_safe_type(t.type);void 0===t.$rendered_type?t.$rendered_type=e:t.$rendered_type!=e&&(delete t.$no_end,delete t.$no_start,t.$rendered_type=e),void 0!==t.$no_end&&void 0!==t.$no_start||e==this.config.types.milestone||(e==this.config.types.project?(t.$no_end=t.$no_start=!0,this._set_default_task_timing(t)):(t.$no_end=!(t.end_date||t.duration),t.$no_start=!t.start_date)),e==this.config.types.milestone&&(t.end_date=t.start_date),t.start_date&&t.end_date&&(t.duration=this.calculateDuration(t.start_date,t.end_date)),t.duration=t.duration||0 -},gantt._is_flex_task=function(t){return!(!t.$no_end&&!t.$no_start)},gantt._update_parents=function(t,e){if(t){for(var n=this.getTask(t);!n.$no_end&&!n.$no_start&&n.parent&&this.isTaskExists(n.parent);)n=this.getTask(n.parent);if(n.$no_start){var i=1/0;this.eachTask(function(t){t.start_date&&+t.start_date<+i&&(i=new Date(t.start_date))},n.id),n.start_date=1/0!=i?i:this._default_task_date(n,n.parent)}if(n.$no_end){var a=0;this.eachTask(function(t){t.end_date&&+t.end_date>+a&&(a=new Date(t.end_date)) -},n.id),n.end_date=a?a:this.calculateEndDate(n.start_date,this.config.duration_step)}(n.$no_end||n.$no_start)&&(this._init_task_timing(n),e||this.refreshTask(n.id,!0)),n.parent&&this.isTaskExists(n.parent)&&this._update_parents(n.parent,e)}},gantt.isChildOf=function(t,e){if(!this.isTaskExists(t))return!1;if(e===this.config.root_id)return this.isTaskExists(t);for(var n=this.getTask(t);n&&this.isTaskExists(n.parent);)if(n=this.getTask(n.parent),n&&n.id==e)return!0;return!1},gantt.roundDate=function(t){t instanceof Date&&(t={date:t,unit:gantt._tasks.unit,step:gantt._tasks.step}); -for(var e=t.date,n=t.step,i=t.unit,a=gantt.date[i+"_start"](new Date(this._min_date));+e>+a;)a=gantt.date.add(a,n,i);var s=gantt.date.add(a,-1*n,i);return t.dir&&"future"==t.dir?a:t.dir&&"past"==t.dir?s:Math.abs(e-s)i[t];return e&&(a=!a),a?1:-1}:t,s=this._branches[n];if(s){for(var r=[],o=s.length-1;o>=0;o--)r[o]=this._pull[s[o]];r.sort(a);for(var o=0;on;n++)if(e[n]==t)return e[n+1]||null;return null},gantt.getPrevSibling=function(t){for(var e=this.getSiblings(t),n=0,i=e.length;i>n;n++)if(e[n]==t)return e[n-1]||null; -return null},gantt._dp_init=function(t){t.setTransactionMode("POST",!0),t.serverProcessor+=(-1!=t.serverProcessor.indexOf("?")?"&":"?")+"editing=true",t._serverProcessor=t.serverProcessor,t.styles={updated:"gantt_updated",inserted:"gantt_inserted",deleted:"gantt_deleted",invalid:"gantt_invalid",error:"gantt_error",clear:""},t._methods=["_row_style","setCellTextStyle","_change_id","_delete_task"],t.setGanttMode=function(e){var n=t.modes||{};t._ganttMode&&(n[t._ganttMode]={_in_progress:t._in_progress,_invalid:t._invalid,updatedRows:t.updatedRows}); -var i=n[e];i||(i=n[e]={_in_progress:{},_invalid:{},updatedRows:[]}),t._in_progress=i._in_progress,t._invalid=i._invalid,t.updatedRows=i.updatedRows,t.modes=n,t._ganttMode=e},this._sendTaskOrder=function(e,n){n.$drop_target&&(t.setGanttMode("tasks"),this.getTask(e).target=n.$drop_target,t.setUpdated(e,!0,"order"),delete this.getTask(e).$drop_target)},this.attachEvent("onAfterTaskAdd",function(e){t.setGanttMode("tasks"),t.setUpdated(e,!0,"inserted")}),this.attachEvent("onAfterTaskUpdate",function(e,n){t.setGanttMode("tasks"),t.setUpdated(e,!0),gantt._sendTaskOrder(e,n) -}),this.attachEvent("onAfterTaskDelete",function(e){t.setGanttMode("tasks"),t.setUpdated(e,!0,"deleted")}),this.attachEvent("onAfterLinkUpdate",function(e){t.setGanttMode("links"),t.setUpdated(e,!0)}),this.attachEvent("onAfterLinkAdd",function(e){t.setGanttMode("links"),t.setUpdated(e,!0,"inserted")}),this.attachEvent("onAfterLinkDelete",function(e){t.setGanttMode("links"),t.setUpdated(e,!0,"deleted")}),this.attachEvent("onRowDragEnd",function(t){gantt._sendTaskOrder(t,gantt.getTask(t))}),t.attachEvent("onBeforeDataSending",function(){return this.serverProcessor=this._serverProcessor+getUrlSymbol(this._serverProcessor)+"gantt_mode="+this._ganttMode,!0 -});var e=t.afterUpdate;t.afterUpdate=function(n,i,a,s,r){var o=t._ganttMode;t.setGanttMode(r.filePath&&-1!=r.filePath.indexOf("gantt_mode=links")?"links":"tasks");var d=e.apply(t,arguments);return t.setGanttMode(o),d},t._getRowData=dhtmlx.bind(function(e){var n;n="tasks"==t._ganttMode?this.isTaskExists(e)?this.getTask(e):{id:e}:this.isLinkExists(e)?this.getLink(e):{id:e},n=dhtmlx.copy(n);var i={};for(var a in n)if("$"!=a.substr(0,1)){var s=n[a];i[a]=s instanceof Date?this.templates.xml_format(s):null===s?"":s -}return n.$no_start&&(n.start_date="",n.duration=""),n.$no_end&&(n.end_date="",n.duration=""),i[t.action_param]=this.getUserData(e,t.action_param),i},this),this._change_id=dhtmlx.bind(function(e,n){"tasks"!=t._ganttMode?this.changeLinkId(e,n):this.changeTaskId(e,n)},this),this._row_style=function(e,n){if("tasks"==t._ganttMode){var i=gantt.getTaskRowNode(e);if(i)if(n)i.className+=" "+n;else{var a=/ (gantt_updated|gantt_inserted|gantt_deleted|gantt_invalid|gantt_error)/g;i.className=i.className.replace(a,"") -}}},this._delete_task=function(){},this._dp=t},gantt.getUserData=function(t,e){return this.userdata||(this.userdata={}),this.userdata[t]&&this.userdata[t][e]?this.userdata[t][e]:""},gantt.setUserData=function(t,e,n){this.userdata||(this.userdata={}),this.userdata[t]||(this.userdata[t]={}),this.userdata[t][e]=n},gantt._init_link=function(t){return dhtmlx.defined(t.id)||(t.id=dhtmlx.uid()),t},gantt._sync_links=function(){for(var t in this._pull)this._pull[t].$source=[],this._pull[t].$target=[];for(var t in this._lpull){var e=this._lpull[t]; -this._pull[e.source]&&this._pull[e.source].$source.push(t),this._pull[e.target]&&this._pull[e.target].$target.push(t)}},gantt.getLink=function(t){return dhtmlx.assert(this._lpull[t],"Link doesn't exist"),this._lpull[t]},gantt.isLinkExists=function(t){return dhtmlx.defined(this._lpull[t])},gantt.addLink=function(t){return t=this._init_link(t),this.callEvent("onBeforeLinkAdd",[t.id,t])===!1?!1:(this._lpull[t.id]=t,this._sync_links(),this._render_link(t.id),this.callEvent("onAfterLinkAdd",[t.id,t]),t.id) -},gantt.updateLink=function(t,e){return dhtmlx.defined(e)||(e=this.getLink(t)),this.callEvent("onBeforeLinkUpdate",[t,e])===!1?!1:(this._lpull[t]=e,this._sync_links(),this._render_link(t),this.callEvent("onAfterLinkUpdate",[t,e]),!0)},gantt.deleteLink=function(t){return this._deleteLink(t)},gantt._deleteLink=function(t,e){var n=this.getLink(t);return e||this.callEvent("onBeforeLinkDelete",[t,n])!==!1?(delete this._lpull[t],this._sync_links(),this.refreshLink(t),e||this.callEvent("onAfterLinkDelete",[t,n]),!0):!1 -},gantt.changeLinkId=function(t,e){this._lpull[e]=this._lpull[t],this._lpull[e].id=e,delete this._lpull[t],this._sync_links(),this.callEvent("onLinkIdChange",[t,e])},gantt.getChildren=function(t){return dhtmlx.defined(this._branches[t])?this._branches[t]:[]},gantt.hasChild=function(t){return dhtmlx.defined(this._branches[t])},gantt.refreshData=function(){this._render_data()},gantt._configure=function(t,e){for(var n in e)"undefined"==typeof t[n]&&(t[n]=e[n])},gantt._init_skin=function(){if(!gantt.skin)for(var t=document.getElementsByTagName("link"),e=0;e 
",gantt.showLightbox=function(t){if(t&&!gantt._is_readonly(this.getTask(t))&&this.callEvent("onBeforeLightbox",[t])){var e=this.getTask(t),n=this.getLightbox(this._get_safe_type(e.type)); -this._center_lightbox(n),this.showCover(),this._fill_lightbox(t,n),this.callEvent("onLightbox",[t])}},gantt._get_timepicker_step=function(){if(this.config.round_dnd_dates){var t=gantt._tasks,e=this._get_line(t.unit)*t.step/60;return e>=1440&&(e=this.config.time_step),e}return this.config.time_step},gantt.getLabel=function(t,e){for(var n=this._get_typed_lightbox_config(),i=0;it.start_date.valueOf())&&(e=t.start_date.valueOf()),t.end_date&&(!n||n+a;)a=gantt.date.add(a,n,i);var s=gantt.date.add(a,-1*n,i);return t.dir&&"future"==t.dir?a:t.dir&&"past"==t.dir?s:Math.abs(e-s)i[t];return e&&(a=!a),a?1:-1}:t,s=this._branches[n];if(s){for(var r=[],o=s.length-1;o>=0;o--)r[o]=this._pull[s[o]];r.sort(a);for(var o=0;on;n++)if(e[n]==t)return e[n+1]||null; +return null},gantt.getPrevSibling=function(t){for(var e=this.getSiblings(t),n=0,i=e.length;i>n;n++)if(e[n]==t)return e[n-1]||null;return null},gantt._dp_init=function(t){t.setTransactionMode("POST",!0),t.serverProcessor+=(-1!=t.serverProcessor.indexOf("?")?"&":"?")+"editing=true",t._serverProcessor=t.serverProcessor,t.styles={updated:"gantt_updated",inserted:"gantt_inserted",deleted:"gantt_deleted",invalid:"gantt_invalid",error:"gantt_error",clear:""},t._methods=["_row_style","setCellTextStyle","_change_id","_delete_task"],t.setGanttMode=function(e){var n=t.modes||{}; +t._ganttMode&&(n[t._ganttMode]={_in_progress:t._in_progress,_invalid:t._invalid,updatedRows:t.updatedRows});var i=n[e];i||(i=n[e]={_in_progress:{},_invalid:{},updatedRows:[]}),t._in_progress=i._in_progress,t._invalid=i._invalid,t.updatedRows=i.updatedRows,t.modes=n,t._ganttMode=e},this._sendTaskOrder=function(e,n){n.$drop_target&&(t.setGanttMode("tasks"),this.getTask(e).target=n.$drop_target,t.setUpdated(e,!0,"order"),delete this.getTask(e).$drop_target)},this.attachEvent("onAfterTaskAdd",function(e){t.setGanttMode("tasks"),t.setUpdated(e,!0,"inserted") +}),this.attachEvent("onAfterTaskUpdate",function(e,n){t.setGanttMode("tasks"),t.setUpdated(e,!0),gantt._sendTaskOrder(e,n)}),this.attachEvent("onAfterTaskDelete",function(e){t.setGanttMode("tasks"),t.setUpdated(e,!0,"deleted")}),this.attachEvent("onAfterLinkUpdate",function(e){t.setGanttMode("links"),t.setUpdated(e,!0)}),this.attachEvent("onAfterLinkAdd",function(e){t.setGanttMode("links"),t.setUpdated(e,!0,"inserted")}),this.attachEvent("onAfterLinkDelete",function(e){t.setGanttMode("links"),t.setUpdated(e,!0,"deleted") +}),this.attachEvent("onRowDragEnd",function(t){gantt._sendTaskOrder(t,gantt.getTask(t))}),t.attachEvent("onBeforeDataSending",function(){return this.serverProcessor=this._serverProcessor+getUrlSymbol(this._serverProcessor)+"gantt_mode="+this._ganttMode,!0});var e=t.afterUpdate;t.afterUpdate=function(n,i,a,s,r){var o=t._ganttMode;t.setGanttMode(r.filePath&&-1!=r.filePath.indexOf("gantt_mode=links")?"links":"tasks");var d=e.apply(t,arguments);return t.setGanttMode(o),d},t._getRowData=dhtmlx.bind(function(e){var n; +n="tasks"==t._ganttMode?this.isTaskExists(e)?this.getTask(e):{id:e}:this.isLinkExists(e)?this.getLink(e):{id:e},n=dhtmlx.copy(n);var i={};for(var a in n)if("$"!=a.substr(0,1)){var s=n[a];i[a]=s instanceof Date?this.templates.xml_format(s):null===s?"":s}return n.$no_start&&(n.start_date="",n.duration=""),n.$no_end&&(n.end_date="",n.duration=""),i[t.action_param]=this.getUserData(e,t.action_param),i},this),this._change_id=dhtmlx.bind(function(e,n){"tasks"!=t._ganttMode?this.changeLinkId(e,n):this.changeTaskId(e,n) +},this),this._row_style=function(e,n){if("tasks"==t._ganttMode){var i=gantt.getTaskRowNode(e);if(i)if(n)i.className+=" "+n;else{var a=/ (gantt_updated|gantt_inserted|gantt_deleted|gantt_invalid|gantt_error)/g;i.className=i.className.replace(a,"")}}},this._delete_task=function(){},this._dp=t},gantt.getUserData=function(t,e){return this.userdata||(this.userdata={}),this.userdata[t]&&this.userdata[t][e]?this.userdata[t][e]:""},gantt.setUserData=function(t,e,n){this.userdata||(this.userdata={}),this.userdata[t]||(this.userdata[t]={}),this.userdata[t][e]=n +},gantt._init_link=function(t){return dhtmlx.defined(t.id)||(t.id=dhtmlx.uid()),t},gantt._sync_links=function(){for(var t in this._pull)this._pull[t].$source=[],this._pull[t].$target=[];for(var t in this._lpull){var e=this._lpull[t];this._pull[e.source]&&this._pull[e.source].$source.push(t),this._pull[e.target]&&this._pull[e.target].$target.push(t)}},gantt.getLink=function(t){return dhtmlx.assert(this._lpull[t],"Link doesn't exist"),this._lpull[t]},gantt.isLinkExists=function(t){return dhtmlx.defined(this._lpull[t]) +},gantt.addLink=function(t){return t=this._init_link(t),this.callEvent("onBeforeLinkAdd",[t.id,t])===!1?!1:(this._lpull[t.id]=t,this._sync_links(),this._render_link(t.id),this.callEvent("onAfterLinkAdd",[t.id,t]),t.id)},gantt.updateLink=function(t,e){return dhtmlx.defined(e)||(e=this.getLink(t)),this.callEvent("onBeforeLinkUpdate",[t,e])===!1?!1:(this._lpull[t]=e,this._sync_links(),this._render_link(t),this.callEvent("onAfterLinkUpdate",[t,e]),!0)},gantt.deleteLink=function(t){return this._deleteLink(t) +},gantt._deleteLink=function(t,e){var n=this.getLink(t);return e||this.callEvent("onBeforeLinkDelete",[t,n])!==!1?(delete this._lpull[t],this._sync_links(),this.refreshLink(t),e||this.callEvent("onAfterLinkDelete",[t,n]),!0):!1},gantt.changeLinkId=function(t,e){this._lpull[e]=this._lpull[t],this._lpull[e].id=e,delete this._lpull[t],this._sync_links(),this.callEvent("onLinkIdChange",[t,e])},gantt.getChildren=function(t){return dhtmlx.defined(this._branches[t])?this._branches[t]:[]},gantt.hasChild=function(t){return dhtmlx.defined(this._branches[t])&&this._branches[t].length +},gantt.refreshData=function(){this._render_data()},gantt._configure=function(t,e){for(var n in e)"undefined"==typeof t[n]&&(t[n]=e[n])},gantt._init_skin=function(){if(!gantt.skin)for(var t=document.getElementsByTagName("link"),e=0;e 
",gantt.showLightbox=function(t){if(t&&!gantt._is_readonly(this.getTask(t))&&this.callEvent("onBeforeLightbox",[t])){var e=this.getTask(t),n=this.getLightbox(this._get_safe_type(e.type));this._center_lightbox(n),this.showCover(),this._fill_lightbox(t,n),this.callEvent("onLightbox",[t]) +}},gantt._get_timepicker_step=function(){if(this.config.round_dnd_dates){var t=gantt._tasks,e=this._get_line(t.unit)*t.step/60;return e>=1440&&(e=this.config.time_step),e}return this.config.time_step},gantt.getLabel=function(t,e){for(var n=this._get_typed_lightbox_config(),i=0;i
"+this.locale.labels[r]+"
"}a=this.config.buttons_right;for(var s=0;s
"+this.locale.labels[r]+"
" }i+="",e.innerHTML=i,gantt.config.drag_lightbox&&(e.firstChild.onmousedown=gantt._ready_to_dnd,e.firstChild.onselectstart=function(){return!1},e.firstChild.style.cursor="pointer",gantt._init_dnd_events()),document.body.insertBefore(e,document.body.firstChild),this._lightbox=e;var o=this._get_typed_lightbox_config(t);i=this._render_sections(o);for(var d=e.getElementsByTagName("div"),s=0;s
"+this.locale.labels["button_"+t[n].button]+"
"),this.config.wide_form&&(e+="
"),e+="
"+s+this.locale.labels["section_"+t[n].name]+"
"+i.render.call(this,t[n]),e+="
" @@ -211,7 +212,7 @@ return e=parseInt(e.value,10),(!e||window.isNaN(e))&&(e=1),0>e&&(e*=-1),e},get_v return!1},gantt._dhtmlx_confirm=function(t,e,n,i){if(!t)return n();var a={text:t};e&&(a.title=e),i&&(a.ok=i),n&&(a.callback=function(t){t&&n()}),dhtmlx.confirm(a)},gantt._get_typed_lightbox_config=function(t){void 0===t&&(t=this.getLightboxType());var e=this._get_type_name(t);return gantt.config.lightbox[e+"_sections"]?gantt.config.lightbox[e+"_sections"]:gantt.config.lightbox.sections},gantt._silent_redraw_lightbox=function(t){var e=this.getLightboxType();if(this.getState().lightbox){var n=this.getState().lightbox,i=this.getLightboxValues(),a=dhtmlx.copy(this.getTask(n)); this.resetLightbox();var s=dhtmlx.mixin(a,i,!0),r=this.getLightbox(t?t:void 0);this._center_lightbox(this.getLightbox()),this._set_lightbox_values(s,r),this.callEvent("onLightboxChange",[e,this.getLightboxType()])}else this.resetLightbox(),this.getLightbox(t?t:void 0);this.callEvent("onLightboxChange",[e,this.getLightboxType()])},gantt._extend_to_optional=function(t){var e=t,n={render:e.render,focus:e.focus,set_value:function(t,i,a,s){var r=gantt._resolve_default_mapping(s);if(a[r.start_date])return n.enable(t,s),e.set_value.call(gantt,t,i,a,s); n.disable(t,s);var o={};for(var d in r)o[r[d]]=a[d];return e.set_value.call(gantt,t,i,o,s)},get_value:function(t,n,i){return i.disabled?{start_date:null}:e.get_value.call(gantt,t,n,i)},update_block:function(t,e){if(gantt.callEvent("onSectionToggle",[gantt._lightbox_id,e]),t.style.display=e.disabled?"none":"block",e.button){var n=t.previousSibling.firstChild.firstChild,i=gantt.locale.labels,a=e.disabled?i[e.name+"_enable_button"]:i[e.name+"_disable_button"];n.nextSibling.innerHTML=a}gantt.resizeLightbox() -},disable:function(t,e){e.disabled=!0,n.update_block(t,e)},enable:function(t,e){e.disabled=!1,n.update_block(t,e)},button_click:function(t,e,i,a){if(gantt.callEvent("onSectionButton",[gantt._lightbox_id,i])!==!1){var s=gantt.config.lightbox.sections[t];s.disabled?n.enable(a,s):n.disable(a,s)}}};return n},gantt.form_blocks.duration_optional=gantt._extend_to_optional(gantt.form_blocks.duration),gantt.form_blocks.time_optional=gantt._extend_to_optional(gantt.form_blocks.time),dataProcessor.prototype={setTransactionMode:function(t,e){this._tMode=t,this._tSend=e +},disable:function(t,e){e.disabled=!0,n.update_block(t,e)},enable:function(t,e){e.disabled=!1,n.update_block(t,e)},button_click:function(t,e,i,a){if(gantt.callEvent("onSectionButton",[gantt._lightbox_id,i])!==!1){var s=gantt._get_typed_lightbox_config()[t];s.disabled?n.enable(a,s):n.disable(a,s)}}};return n},gantt.form_blocks.duration_optional=gantt._extend_to_optional(gantt.form_blocks.duration),gantt.form_blocks.time_optional=gantt._extend_to_optional(gantt.form_blocks.time),dataProcessor.prototype={setTransactionMode:function(t,e){this._tMode=t,this._tSend=e },escape:function(t){return this._utf?encodeURIComponent(t):escape(t)},enableUTFencoding:function(t){this._utf=convertStringToBoolean(t)},setDataColumns:function(t){this._columns="string"==typeof t?t.split(","):t},getSyncState:function(){return!this.updatedRows.length},enableDataNames:function(t){this._endnm=convertStringToBoolean(t)},enablePartialDataSend:function(t){this._changed=convertStringToBoolean(t)},setUpdateMode:function(t,e){this.autoUpdate="cell"==t,this.updateMode=t,this.dnd=e},ignore:function(t,e){this._silent_mode=!0,t.call(e||window),this._silent_mode=!1 },setUpdated:function(t,e,n){if(!this._silent_mode){var i=this.findRow(t);n=n||"updated";var a=this.obj.getUserData(t,this.action_param);a&&"updated"==n&&(n=a),e?(this.set_invalid(t,!1),this.updatedRows[i]=t,this.obj.setUserData(t,this.action_param,n),this._in_progress[t]&&(this._in_progress[t]="wait")):this.is_invalid(t)||(this.updatedRows.splice(i,1),this.obj.setUserData(t,this.action_param,"")),e||this._clearUpdateFlag(t),this.markRow(t,e,n),e&&this.autoUpdate&&this.sendData(t)}},_clearUpdateFlag:function(){},markRow:function(t,e,n){var i="",a=this.is_invalid(t); if(a&&(i=this.styles[a],e=!0),this.callEvent("onRowMark",[t,e,n,a])&&(i=this.styles[e?n:"clear"]+i,this.obj[this._methods[0]](t,i),a&&a.details)){i+=this.styles[a+"_cell"];for(var s=0;sa;a++)this._original_columns.push(dhtmlx.copy(i[a]))}this._reinit(t),dhtmlxEvent(window,"resize",this._on_resize),this.init=function(t){this.$container&&this.$container.parentNode&&(this.$container.parentNode.removeChild(this.$container),this.$container=null),this._reinit(t)},this.callEvent("onGanttReady",[])},gantt._reinit=function(t){this._init_html_area(t),this._set_sizes(),this._clear_renderers(),this.resetLightbox(),this._update_flags(),this._init_touch_events(),this._init_templates(),this._init_grid(),this._init_tasks(),this.render(),this._set_scroll_events(),dhtmlxEvent(this.$container,"click",this._on_click),dhtmlxEvent(this.$container,"dblclick",this._on_dblclick),dhtmlxEvent(this.$container,"mousemove",this._on_mousemove),dhtmlxEvent(this.$container,"contextmenu",this._on_contextmenu) +this._original_columns=[];for(var a=0,s=i.length;s>a;a++)this._original_columns.push(dhtmlx.copy(i[a]))}dhtmlxEvent(window,"resize",this._on_resize),this.init=function(t){this.$container&&this.$container.parentNode&&(this.$container.parentNode.removeChild(this.$container),this.$container=null),this._reinit(t)},this._reinit(t)},gantt._reinit=function(t){this._init_html_area(t),this._set_sizes(),this._clear_renderers(),this.resetLightbox(),this._update_flags(),this._init_touch_events(),this._init_templates(),this._init_grid(),this._init_tasks(),this._set_scroll_events(),dhtmlxEvent(this.$container,"click",this._on_click),dhtmlxEvent(this.$container,"dblclick",this._on_dblclick),dhtmlxEvent(this.$container,"mousemove",this._on_mousemove),dhtmlxEvent(this.$container,"contextmenu",this._on_contextmenu),this.callEvent("onGanttReady",[]),this.render() },gantt._init_html_area=function(t){this._obj="string"==typeof t?document.getElementById(t):t,dhtmlx.assert(this._obj,"Invalid html container: "+t);var e="
";e+="
",this._obj.innerHTML=e,this.$container=this._obj.firstChild;var n=this.$container.childNodes;this.$grid=n[0],this.$task=n[1],this.$scroll_ver=n[2],this.$scroll_hor=n[3],this.$grid.innerHTML="
",this.$grid_scale=this.$grid.childNodes[0],this.$grid_data=this.$grid.childNodes[1],this.$task.innerHTML="
",this.$task_scale=this.$task.childNodes[0],this.$task_data=this.$task.childNodes[1],this.$task_bg=this.$task_data.childNodes[0],this.$task_links=this.$task_data.childNodes[1],this.$task_bars=this.$task_data.childNodes[2] },gantt.$click={buttons:{edit:function(t){gantt.showLightbox(t)},"delete":function(t){var e=gantt.locale.labels.confirm_deleting,n=gantt.locale.labels.confirm_deleting_title;gantt._dhtmlx_confirm(e,n,function(){var e=gantt.getTask(t);e.$new?(gantt._deleteTask(t,!0),gantt.refreshData()):gantt.deleteTask(t),gantt.hideLightbox()})}}},gantt._calculate_content_height=function(){var t=this.config.scale_height,e=this._order.length*this.config.row_height,n=this._scroll_hor?this.config.scroll_size+1:0;return this._is_grid_visible()||this._is_chart_visible()?t+e+2+n:0 },gantt._calculate_content_width=function(){{var t=this._get_grid_width(),e=this._tasks?this._tasks.full_width:0;this._scroll_ver?this.config.scroll_size+1:0}return this._is_chart_visible()||(e=0),this._is_grid_visible()||(t=0),t+e+1},gantt._get_resize_options=function(){var t={x:!1,y:!1};return"xy"==this.config.autosize?t.x=t.y=!0:"y"==this.config.autosize||this.config.autosize===!0?t.y=!0:"x"==this.config.autosize&&(t.x=!0),t},gantt._clean_el_size=function(t){return 1*(t||"").toString().replace("px","")||0 @@ -239,9 +240,9 @@ this.scrollTo(n,i)}},gantt._on_resize=gantt.setSizes=function(){gantt._set_sizes },gantt._set_scroll_events=function(){function t(t){var n=gantt._get_resize_options(),i=e?-20*t.deltaX:t.wheelDeltaX,a=e?-40*t.deltaY:t.wheelDelta;if(i){if(n.x)return!0;var s=i/-40,r=gantt.$task.scrollLeft+30*s;gantt.scrollTo(r,null),gantt.$scroll_hor.scrollTop=o}else{if(n.y)return!0;var s=a/-40;"undefined"==typeof a&&(s=t.detail);var o=gantt.$grid_data.scrollTop+30*s;gantt.scrollTo(null,o),gantt.$scroll_ver.scrollTop=o}return t.preventDefault&&t.preventDefault(),t.cancelBubble=!0,!1}dhtmlxEvent(this.$scroll_hor,"scroll",function(){if(!gantt._touch_scroll_active){var t=gantt.$scroll_hor.scrollLeft; gantt.scrollTo(t)}}),dhtmlxEvent(this.$scroll_ver,"scroll",function(){if(!gantt._touch_scroll_active){var t=gantt.$scroll_ver.scrollTop;gantt.$grid_data.scrollTop=t,gantt.scrollTo(null,t)}}),dhtmlxEvent(this.$task,"scroll",function(){var t=gantt.$task.scrollLeft,e=gantt.$scroll_hor.scrollLeft;e!=t&&(gantt.$scroll_hor.scrollLeft=t)}),dhtmlxEvent(this.$task_data,"scroll",function(){var t=gantt.$task_data.scrollTop,e=gantt.$scroll_ver.scrollTop;e!=t&&(gantt.$scroll_ver.scrollTop=t)});var e=_isFF&&!window._KHTMLrv; e?dhtmlxEvent(gantt.$container,"wheel",t):dhtmlxEvent(gantt.$container,"mousewheel",t)},gantt._scroll_resize=function(){if(!(this._x<20||this._y<20)){var t=this._get_grid_width(),e=Math.max(this._x-t,0),n=Math.max(this._y-this.config.scale_height,0),i=this.config.scroll_size+1,a=Math.max(this.$task_data.offsetWidth-i,0),s=this.config.row_height*this._order.length,r=this._get_resize_options(),o=this._scroll_hor=r.x?!1:a>e,d=this._scroll_ver=r.y?!1:s>n;this.$scroll_hor.style.display=o?"block":"none",this.$scroll_hor.style.height=(o?i:0)+"px",this.$scroll_hor.style.width=Math.max(this._x-(d?i:2),0)+"px",this.$scroll_hor.firstChild.style.width=a+t+i+2+"px",this.$scroll_ver.style.display=d?"block":"none",this.$scroll_ver.style.width=(d?i:0)+"px",this.$scroll_ver.style.height=Math.max(this._y-(o?i:0)-this.config.scale_height,0)+"px",this.$scroll_ver.style.top=this.config.scale_height+"px",this.$scroll_ver.firstChild.style.height=this.config.scale_height+s+"px" -}},gantt.locate=function(t){var e=gantt._get_target_node(t);if("gantt_task_cell"==e.className)return null;for(var n=arguments[1]||this.config.task_attribute;e;){if(e.getAttribute){var i=e.getAttribute(n);if(i)return i}e=e.parentNode}return null},gantt._get_target_node=function(t){var e;return t.tagName?e=t:(t=t||window.event,e=t.target||t.srcElement),e},gantt._trim=function(t){var e=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")};return e.apply(t)},gantt._locate_css=function(t,e,n){void 0===n&&(n=!0); +}},gantt.locate=function(t){var e=gantt._get_target_node(t);if((e.className||"").indexOf("gantt_task_cell")>=0)return null;for(var n=arguments[1]||this.config.task_attribute;e;){if(e.getAttribute){var i=e.getAttribute(n);if(i)return i}e=e.parentNode}return null},gantt._get_target_node=function(t){var e;return t.tagName?e=t:(t=t||window.event,e=t.target||t.srcElement),e},gantt._trim=function(t){var e=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")};return e.apply(t)},gantt._locate_css=function(t,e,n){void 0===n&&(n=!0); for(var i=gantt._get_target_node(t),a="";i;){if(a=i.className){var s=a.indexOf(e);if(s>=0){if(!n)return i;var r=0===s||!gantt._trim(a.charAt(s-1)),o=s+e.length>=a.length||!gantt._trim(a.charAt(s+e.length));if(r&&o)return i}}i=i.parentNode}return null},gantt._locateHTML=function(t,e){var n=gantt._get_target_node(t);for(e=e||this.config.task_attribute;n;){if(n.getAttribute){var i=n.getAttribute(e);if(i)return n}n=n.parentNode}return null},gantt.getTaskRowNode=function(t){for(var e=this.$grid_data.childNodes,n=this.config.task_attribute,i=0;in?!0:t._on_timeout?!1:(setTimeout(function(){delete t._on_timeout},n),t._on_timeout=!0,!0)},gantt.selectTask=function(t){if(!this.config.select_task)return!1; +if(a==t)return e[i]}return null},gantt.getState=function(){return{drag_id:this._tasks_dnd.drag.id,drag_mode:this._tasks_dnd.drag.mode,drag_from_start:this._tasks_dnd.drag.left,selected_task:this._selected_task,min_date:new Date(this._min_date),max_date:new Date(this._max_date),lightbox:this._lightbox_id,touch_drag:this._touch_drag}},gantt._checkTimeout=function(t,e){if(!e)return!0;var n=1e3/e;return 1>n?!0:t._on_timeout?!1:(setTimeout(function(){delete t._on_timeout},n),t._on_timeout=!0,!0)},gantt.selectTask=function(t){if(!this.config.select_task)return!1; if(t){if(this._selected_task==t)return this._selected_task;if(!this.callEvent("onBeforeTaskSelected",[t]))return!1;this.unselectTask(),this._selected_task=t,this.refreshTask(t),this.callEvent("onTaskSelected",[t])}return this._selected_task},gantt.unselectTask=function(){var t=this._selected_task;t&&(this._selected_task=null,this.refreshTask(t),this.callEvent("onTaskUnselected",[t]))},gantt.getSelectedId=function(){return dhtmlx.defined(this._selected_task)?this._selected_task:null},gantt.changeLightboxType=function(t){return this.getLightboxType()==t?!0:void gantt._silent_redraw_lightbox(t) },function(){if(gantt._modules&&gantt._modules.length)for(var t=0;t11?"pm":"am")+"';case"%A":return'"+(date.getHours()>11?"PM":"AM")+"';case"%s":return'"+gantt.date.to_fixed(date.getSeconds())+"';case"%W":return'"+gantt.date.to_fixed(gantt.date.getISOWeek(date))+"';default:return t}}),e&&(t=t.replace(/date\.get/g,"date.getUTC")),new Function("date",'return "'+t+'";')},str_to_date:function(t,e){for(var n="var temp=date.match(/[a-zA-Z]+|[0-9]+/g);",i=t.match(/%[a-zA-Z]/g),a=0;a50?1900:2000);";break;case"%g":case"%G":case"%h":case"%H":n+="set[3]=temp["+a+"]||0;";break;case"%i":n+="set[4]=temp["+a+"]||0;";break;case"%Y":n+="set[0]=temp["+a+"]||0;";break;case"%a":case"%A":n+="set[3]=set[3]%12+((temp["+a+"]||'').toLowerCase()=='am'?0:12);";break;case"%s":n+="set[5]=temp["+a+"]||0;";break;case"%M":n+="set[1]=gantt.locale.date.month_short_hash[temp["+a+"]]||0;";break; case"%F":n+="set[1]=gantt.locale.date.month_full_hash[temp["+a+"]]||0;"}var s="set[0],set[1],set[2],set[3],set[4],set[5]";return e&&(s=" Date.UTC("+s+")"),new Function("date","var set=[0,0,1,0,0,0]; "+n+" return new Date("+s+");")},getISOWeek:function(t){if(!t)return!1;var e=t.getDay();0===e&&(e=7);var n=new Date(t.valueOf());n.setDate(t.getDate()+(4-e));var i=n.getFullYear(),a=Math.round((n.getTime()-new Date(i,0,1).getTime())/864e5),s=1+Math.floor(a/7);return s},getUTCISOWeek:function(t){return this.getISOWeek(t) -},convert_to_utc:function(t){return new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds())},parseDate:function(t,e){return"string"==typeof t&&(dhtmlx.defined(e)&&(e="string"==typeof e?dhtmlx.defined(gantt.templates[e])?gantt.templates[e]:gantt.date.str_to_date(e):gantt.templates.xml_date),t=t?e(t):null),t}},gantt.config||(gantt.config={}),gantt.config||(gantt.config={}),gantt.templates||(gantt.templates={}),function(){dhtmlx.mixin(gantt.config,{links:{finish_to_start:"0",start_to_start:"1",finish_to_finish:"2",start_to_finish:"3"},types:{task:"task",project:"project",milestone:"milestone"},duration_unit:"day",work_time:!1,correct_work_time:!1,skip_off_time:!1,autosize:!1,show_links:!0,show_task_cells:!0,static_background:!1,branch_loading:!1,show_loading:!1,show_chart:!0,show_grid:!0,min_duration:36e5,xml_date:"%d-%m-%Y %H:%i",api_date:"%d-%m-%Y %H:%i",start_on_monday:!0,server_utc:!1,show_progress:!0,fit_tasks:!1,select_task:!0,preserve_scroll:!0,readonly:!1,date_grid:"%Y-%m-%d",drag_links:!0,drag_progress:!0,drag_resize:!0,drag_move:!0,drag_mode:{resize:"resize",progress:"progress",move:"move",ignore:"ignore"},round_dnd_dates:!0,link_wrapper_width:20,root_id:0,autofit:!0,columns:[{name:"text",tree:!0,width:"*",resize:!0},{name:"start_date",align:"center",resize:!0},{name:"duration",align:"center"},{name:"add",width:"44"}],step:1,scale_unit:"day",subscales:[],time_step:60,duration_step:1,date_scale:"%d %M",task_date:"%d %F %Y",time_picker:"%H:%i",task_attribute:"task_id",link_attribute:"link_id",buttons_left:["gantt_save_btn","gantt_cancel_btn"],_migrate_buttons:{dhx_save_btn:"gantt_save_btn",dhx_cancel_btn:"gantt_cancel_btn",dhx_delete_btn:"gantt_delete_btn"},buttons_right:["gantt_delete_btn"],lightbox:{sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"time",height:72,type:"duration",map_to:"auto"}],project_sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"type",type:"typeselect",map_to:"type"},{name:"time",height:72,type:"duration",readonly:!0,map_to:"auto"}],milestone_sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"type",type:"typeselect",map_to:"type"},{name:"time",height:72,type:"duration",single_date:!0,map_to:"auto"}]},drag_lightbox:!0,sort:!1,details_on_create:!0,details_on_dblclick:!0,initial_scroll:!0,task_scroll_offset:100,task_height:"full",min_column_width:70,min_grid_column_width:70,grid_resizer_column_attribute:"column_index",grid_resizer_attribute:"grid_resizer",keep_grid_width:!1,grid_resize:!1,readonly_property:"readonly",editable_property:"editable",type_renderers:{},open_tree_initially:!1}),gantt.keys={edit_save:13,edit_cancel:27},gantt._init_template=function(t,e){var n=this._reg_templates||{}; +},convert_to_utc:function(t){return new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds())},parseDate:function(t,e){return"string"==typeof t&&(dhtmlx.defined(e)&&(e="string"==typeof e?dhtmlx.defined(gantt.templates[e])?gantt.templates[e]:gantt.date.str_to_date(e):gantt.templates.xml_date),t=t?e(t):null),t}},gantt.config||(gantt.config={}),gantt.config||(gantt.config={}),gantt.templates||(gantt.templates={}),function(){dhtmlx.mixin(gantt.config,{links:{finish_to_start:"0",start_to_start:"1",finish_to_finish:"2",start_to_finish:"3"},types:{task:"task",project:"project",milestone:"milestone"},duration_unit:"day",work_time:!1,correct_work_time:!1,skip_off_time:!1,autosize:!1,autosize_min_width:0,show_links:!0,show_task_cells:!0,static_background:!1,branch_loading:!1,show_loading:!1,show_chart:!0,show_grid:!0,min_duration:36e5,xml_date:"%d-%m-%Y %H:%i",api_date:"%d-%m-%Y %H:%i",start_on_monday:!0,server_utc:!1,show_progress:!0,fit_tasks:!1,select_task:!0,preserve_scroll:!0,readonly:!1,date_grid:"%Y-%m-%d",drag_links:!0,drag_progress:!0,drag_resize:!0,drag_move:!0,drag_mode:{resize:"resize",progress:"progress",move:"move",ignore:"ignore"},round_dnd_dates:!0,link_wrapper_width:20,root_id:0,autofit:!0,columns:[{name:"text",tree:!0,width:"*",resize:!0},{name:"start_date",align:"center",resize:!0},{name:"duration",align:"center"},{name:"add",width:"44"}],step:1,scale_unit:"day",scale_offset_minimal:!0,subscales:[],time_step:60,duration_step:1,date_scale:"%d %M",task_date:"%d %F %Y",time_picker:"%H:%i",task_attribute:"task_id",link_attribute:"link_id",layer_attribute:"data-layer",buttons_left:["gantt_save_btn","gantt_cancel_btn"],_migrate_buttons:{dhx_save_btn:"gantt_save_btn",dhx_cancel_btn:"gantt_cancel_btn",dhx_delete_btn:"gantt_delete_btn"},buttons_right:["gantt_delete_btn"],lightbox:{sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"time",height:72,type:"duration",map_to:"auto"}],project_sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"type",type:"typeselect",map_to:"type"},{name:"time",height:72,type:"duration",readonly:!0,map_to:"auto"}],milestone_sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"type",type:"typeselect",map_to:"type"},{name:"time",height:72,type:"duration",single_date:!0,map_to:"auto"}]},drag_lightbox:!0,sort:!1,details_on_create:!0,details_on_dblclick:!0,initial_scroll:!0,task_scroll_offset:100,task_height:"full",min_column_width:70,min_grid_column_width:70,grid_resizer_column_attribute:"column_index",grid_resizer_attribute:"grid_resizer",keep_grid_width:!1,grid_resize:!1,readonly_property:"readonly",editable_property:"editable",type_renderers:{},open_tree_initially:!1}),gantt.keys={edit_save:13,edit_cancel:27},gantt._init_template=function(t,e){var n=this._reg_templates||{}; this.config[t]&&n[t]!=this.config[t]&&(e&&this.templates[t]||(this.templates[t]=this.date.date_to_str(this.config[t]),n[t]=this.config[t])),this._reg_templates=n},gantt._init_templates=function(){var t=gantt.locale.labels;t.gantt_save_btn=t.icon_save,t.gantt_cancel_btn=t.icon_cancel,t.gantt_delete_btn=t.icon_delete;var e=this.date.date_to_str,n=this.config;gantt._init_template("date_scale",!0),gantt._init_template("date_grid",!0),gantt._init_template("task_date",!0),dhtmlx.mixin(this.templates,{xml_date:this.date.str_to_date(n.xml_date,n.server_utc),xml_format:e(n.xml_date,n.server_utc),api_date:this.date.str_to_date(n.api_date),progress_text:function(){return"" },grid_header_class:function(){return""},task_text:function(t,e,n){return n.text},task_class:function(){return""},grid_row_class:function(){return""},task_row_class:function(){return""},task_cell_class:function(){return""},scale_cell_class:function(){return""},scale_row_class:function(){return""},grid_indent:function(){return"
"},grid_folder:function(t){return"
"},grid_file:function(){return"
" },grid_open:function(t){return"
"},grid_blank:function(){return"
"},task_time:function(t,e){return gantt.templates.task_date(t)+" - "+gantt.templates.task_date(e)},time_picker:e(n.time_picker),link_class:function(){return""},link_description:function(t){var e=gantt.getTask(t.source),n=gantt.getTask(t.target);return""+e.text+""+n.text+""},drag_link:function(t,e,n,i){t=gantt.getTask(t); var a=gantt.locale.labels,s=""+t.text+" "+(e?a.link_start:a.link_end)+"
";return n&&(n=gantt.getTask(n),s+=" "+n.text+" "+(i?a.link_start:a.link_end)+"
"),s},drag_link_class:function(t,e,n,i){var a="";if(t&&n){var s=gantt.isLinkAllowed(t,n,e,i);a=" "+(s?"gantt_link_allow":"gantt_link_deny")}return"gantt_link_tooltip"+a}}),this.callEvent("onTemplatesReady",[])}}(),window.jQuery&&!function(t){var e=[];t.fn.dhx_gantt=function(n){if(n=n||{},"string"!=typeof n){var i=[];return this.each(function(){if(this&&this.getAttribute&&!this.getAttribute("dhxgantt")){for(var t in n)"data"!=t&&(gantt.config[t]=n[t]); gantt.init(this),n.data&&gantt.parse(n.data),i.push(gantt)}}),1===i.length?i[0]:i}return e[n]?e[n].apply(this,[]):void t.error("Method "+n+" does not exist on jQuery.dhx_gantt")}}(jQuery),window.dhtmlx&&(dhtmlx.attaches||(dhtmlx.attaches={}),dhtmlx.attaches.attachGantt=function(t,e){var n=document.createElement("DIV");n.id="gantt_"+dhtmlx.uid(),n.style.width="100%",n.style.height="100%",n.cmp="grid",document.body.appendChild(n),this.attachObject(n.id);var i=this.vs[this.av];i.grid=gantt,gantt.init(n.id,t,e),n.firstChild.style.border="none",i.gridId=n.id,i.gridObj=n; -var a="_viewRestore";return this.vs[this[a]()].grid}),gantt.locale={date:{month_full:["January","February","March","April","May","June","July","August","September","October","November","December"],month_short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],day_full:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],day_short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},labels:{new_task:"New task",icon_save:"Save",icon_cancel:"Cancel",icon_details:"Details",icon_edit:"Edit",icon_delete:"Delete",confirm_closing:"",confirm_deleting:"Task will be deleted permanently, are you sure?",section_description:"Description",section_time:"Time period",section_type:"Type",column_text:"Task name",column_start_date:"Start time",column_duration:"Duration",column_add:"",link:"Link",confirm_link_deleting:"will be deleted",link_start:" (start)",link_end:" (end)",type_task:"Task",type_project:"Project",type_milestone:"Milestone",minutes:"Minutes",hours:"Hours",days:"Days",weeks:"Week",months:"Months",years:"Years"}},gantt.skins.skyblue={config:{grid_width:350,row_height:27,scale_height:27,task_height:24,link_line_width:1,link_arrow_size:8,lightbox_additional_height:75},_second_column_width:95,_third_column_width:80},gantt.skins.meadow={config:{grid_width:350,row_height:27,scale_height:30,task_height:24,link_line_width:2,link_arrow_size:6,lightbox_additional_height:72},_second_column_width:95,_third_column_width:80},gantt.skins.terrace={config:{grid_width:360,row_height:35,scale_height:35,task_height:24,link_line_width:2,link_arrow_size:6,lightbox_additional_height:75},_second_column_width:90,_third_column_width:70},gantt.skins.broadway={config:{grid_width:360,row_height:35,scale_height:35,task_height:24,link_line_width:1,link_arrow_size:7,lightbox_additional_height:86},_second_column_width:90,_third_column_width:80,_lightbox_template:"
 
",_config_buttons_left:{},_config_buttons_right:{gantt_delete_btn:"icon_delete",gantt_save_btn:"icon_save"}},gantt.config.touch_drag=50,gantt.config.touch=!0,gantt._init_touch_events=function(){"force"!=this.config.touch&&(this.config.touch=this.config.touch&&(-1!=navigator.userAgent.indexOf("Mobile")||-1!=navigator.userAgent.indexOf("iPad")||-1!=navigator.userAgent.indexOf("Android")||-1!=navigator.userAgent.indexOf("Touch"))),this.config.touch&&(window.navigator.msPointerEnabled?this._touch_events(["MSPointerMove","MSPointerDown","MSPointerUp"],function(t){return t.pointerType==t.MSPOINTER_TYPE_MOUSE?null:t -},function(t){return!t||t.pointerType==t.MSPOINTER_TYPE_MOUSE}):this._touch_events(["touchmove","touchstart","touchend"],function(t){return t.touches&&t.touches.length>1?null:t.touches[0]?{target:t.target,pageX:t.touches[0].pageX,pageY:t.touches[0].pageY}:t},function(){return!1}))},gantt._touch_events=function(t,e,n){function i(t){return t&&t.preventDefault&&t.preventDefault(),(t||event).cancelBubble=!0,!1}var a,s=0,r=!1,o=!1,d=null;this._gantt_touch_event_ready||(this._gantt_touch_event_ready=1,dhtmlxEvent(document.body,t[0],function(t){if(!n(t)&&r){var l=e(t); -if(l&&d){var _=d.pageX-l.pageX,h=d.pageY-l.pageY;!o&&(Math.abs(_)>5||Math.abs(h)>5)&&(gantt._touch_scroll_active=o=!0,s=0,a=gantt.getScrollState()),o&&gantt.scrollTo(a.x+_,a.y+h)}return i(t)}})),dhtmlxEvent(this.$container,"contextmenu",function(t){return r?i(t):void 0}),dhtmlxEvent(this.$container,t[1],function(t){if(!n(t)){if(t.touches&&t.touches.length>1)return void(r=!1);if(r=!0,d=e(t),d&&s){var a=new Date;500>a-s?(gantt._on_dblclick(d),i(t)):s=a}else s=new Date}}),dhtmlxEvent(this.$container,t[2],function(t){n(t)||(gantt._touch_scroll_active=r=o=!1) -})}; +var a="_viewRestore";return this.vs[this[a]()].grid}),gantt.locale={date:{month_full:["January","February","March","April","May","June","July","August","September","October","November","December"],month_short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],day_full:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],day_short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},labels:{new_task:"New task",icon_save:"Save",icon_cancel:"Cancel",icon_details:"Details",icon_edit:"Edit",icon_delete:"Delete",confirm_closing:"",confirm_deleting:"Task will be deleted permanently, are you sure?",section_description:"Description",section_time:"Time period",section_type:"Type",column_text:"Task name",column_start_date:"Start time",column_duration:"Duration",column_add:"",link:"Link",confirm_link_deleting:"will be deleted",link_start:" (start)",link_end:" (end)",type_task:"Task",type_project:"Project",type_milestone:"Milestone",minutes:"Minutes",hours:"Hours",days:"Days",weeks:"Week",months:"Months",years:"Years"}},gantt.skins.skyblue={config:{grid_width:350,row_height:27,scale_height:27,task_height:24,link_line_width:1,link_arrow_size:8,lightbox_additional_height:75},_second_column_width:95,_third_column_width:80},gantt.skins.meadow={config:{grid_width:350,row_height:27,scale_height:30,task_height:24,link_line_width:2,link_arrow_size:6,lightbox_additional_height:72},_second_column_width:95,_third_column_width:80},gantt.skins.terrace={config:{grid_width:360,row_height:35,scale_height:35,task_height:24,link_line_width:2,link_arrow_size:6,lightbox_additional_height:75},_second_column_width:90,_third_column_width:70},gantt.skins.broadway={config:{grid_width:360,row_height:35,scale_height:35,task_height:24,link_line_width:1,link_arrow_size:7,lightbox_additional_height:86},_second_column_width:90,_third_column_width:80,_lightbox_template:"
 
",_config_buttons_left:{},_config_buttons_right:{gantt_delete_btn:"icon_delete",gantt_save_btn:"icon_save"}},gantt.config.touch_drag=500,gantt.config.touch=!0,gantt.config.touch_feedback=!0,gantt._touch_feedback=function(){gantt.config.touch_feedback&&navigator.vibrate&&navigator.vibrate(1) +},gantt._init_touch_events=function(){"force"!=this.config.touch&&(this.config.touch=this.config.touch&&(-1!=navigator.userAgent.indexOf("Mobile")||-1!=navigator.userAgent.indexOf("iPad")||-1!=navigator.userAgent.indexOf("Android")||-1!=navigator.userAgent.indexOf("Touch"))),this.config.touch&&(window.navigator.msPointerEnabled?this._touch_events(["MSPointerMove","MSPointerDown","MSPointerUp"],function(t){return t.pointerType==t.MSPOINTER_TYPE_MOUSE?null:t},function(t){return!t||t.pointerType==t.MSPOINTER_TYPE_MOUSE +}):this._touch_events(["touchmove","touchstart","touchend"],function(t){return t.touches&&t.touches.length>1?null:t.touches[0]?{target:t.target,pageX:t.touches[0].pageX,pageY:t.touches[0].pageY,clientX:t.touches[0].clientX,clientY:t.touches[0].clientY}:t},function(){return!1}))},gantt._touch_events=function(t,e,n){function i(t){return t&&t.preventDefault&&t.preventDefault(),(t||event).cancelBubble=!0,!1}function a(t){var e=gantt._task_area_pulls,n=gantt.getTask(t);if(n&&gantt.isTaskVisible(t))for(var i in e)if(n=e[i][t],n&&n.getAttribute("task_id")&&n.getAttribute("task_id")==t){var a=n.cloneNode(!0); +return h=n,e[i][t]=a,n.style.display="none",a.className+=" gantt_drag_move ",n.parentNode.appendChild(a),a}}var s,r=0,o=!1,d=!1,l=null,_=null,h=null;this._gantt_touch_event_ready||(this._gantt_touch_event_ready=1,dhtmlxEvent(gantt.$container,t[0],function(t){if(!n(t)&&o){_&&clearTimeout(_);var a=e(t);if(gantt._tasks_dnd.drag.id||gantt._tasks_dnd.drag.start_drag)return gantt._tasks_dnd.on_mouse_move(a),t.preventDefault&&t.preventDefault(),t.cancelBubble=!0,!1;if(a&&l){var h=l.pageX-a.pageX,g=l.pageY-a.pageY; +!d&&(Math.abs(h)>5||Math.abs(g)>5)&&(gantt._touch_scroll_active=d=!0,r=0,s=gantt.getScrollState()),d&&gantt.scrollTo(s.x+h,s.y+g)}return i(t)}})),dhtmlxEvent(this.$container,"contextmenu",function(t){return o?i(t):void 0}),dhtmlxEvent(this.$container,t[1],function(t){if(!n(t)){if(t.touches&&t.touches.length>1)return void(o=!1);if(o=!0,l=e(t),l&&r){var s=new Date;500>s-r?(gantt._on_dblclick(l),i(t)):r=s}else r=new Date;_=setTimeout(function(){var t=gantt.locate(l);t&&-1==l.target.className.indexOf("gantt_link_point")&&(gantt._tasks_dnd.on_mouse_down(l),gantt._tasks_dnd._start_dnd(l),gantt._touch_drag=!0,a(t),gantt.refreshTask(t),gantt._touch_feedback()),_=null +},gantt.config.touch_drag)}}),dhtmlxEvent(this.$container,t[2],function(t){if(!n(t)){_&&clearTimeout(_),gantt._touch_drag=!1,o=!1;var i=e(t);gantt._tasks_dnd.on_mouse_up(i),h&&(gantt.refreshTask(gantt.locate(h)),h.parentNode.removeChild(h),gantt._touch_feedback()),gantt._touch_scroll_active=o=d=!1,h=null}})}; //# sourceMappingURL=sources/dhtmlxgantt.js.map \ No newline at end of file diff --git a/codebase/ext/dhtmlxgantt_marker.js b/codebase/ext/dhtmlxgantt_marker.js index 7f5955bf..cdcc43e9 100644 --- a/codebase/ext/dhtmlxgantt_marker.js +++ b/codebase/ext/dhtmlxgantt_marker.js @@ -1,12 +1,13 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -gantt._markers||(gantt._markers={}),gantt.config.show_markers=!0,gantt.attachEvent("onGanttReady",function(){function t(t){if(!gantt.config.show_markers)return!1;if(!t.start_date)return!1;var r=document.createElement("div");r.setAttribute("marker_id",t.id);var e="gantt_marker";gantt.templates.marker_class&&(e+=" "+gantt.templates.marker_class(t)),t.css&&(e+=" "+t.css),t.title&&(r.title=t.title),r.className=e;var a=gantt.posFromDate(t.start_date);if(r.style.left=a+"px",r.style.height=Math.max(gantt._y_from_ind(gantt._order.length),0)+"px",t.end_date){var n=gantt.posFromDate(t.end_date); -r.style.width=Math.max(n-a,0)+"px"}return t.text&&(r.innerHTML="
"+t.text+"
"),r}var r=document.createElement("div");r.className="gantt_marker_area",gantt.$task_data.appendChild(r),gantt.$marker_area=r,gantt._markerRenderer=gantt._task_renderer("markers",t,gantt.$marker_area,null)}),gantt.attachEvent("onDataRender",function(){gantt.renderMarkers()}),gantt.getMarker=function(t){return this._markers?this._markers[t]:null},gantt.addMarker=function(t){return t.id=t.id||dhtmlx.uid(),this._markers[t.id]=t,t.id -},gantt.deleteMarker=function(t){return this._markers&&this._markers[t]?(delete this._markers[t],!0):!1},gantt.updateMarker=function(t){this._markerRenderer&&this._markerRenderer.render_item(t)},gantt.renderMarkers=function(){if(!this._markers)return!1;if(!this._markerRenderer)return!1;var t=[];for(var r in this._markers)t.push(this._markers[r]);return this._markerRenderer.render_items(t),!0}; +gantt._markers||(gantt._markers={}),gantt.config.show_markers=!0,gantt.attachEvent("onClear",function(){gantt._markers={}}),gantt.attachEvent("onGanttReady",function(){function t(t){if(!gantt.config.show_markers)return!1;if(!t.start_date)return!1;var e=document.createElement("div");e.setAttribute("marker_id",t.id);var n="gantt_marker";gantt.templates.marker_class&&(n+=" "+gantt.templates.marker_class(t)),t.css&&(n+=" "+t.css),t.title&&(e.title=t.title),e.className=n;var i=gantt.posFromDate(t.start_date); +if(e.style.left=i+"px",e.style.height=Math.max(gantt._y_from_ind(gantt._order.length),0)+"px",t.end_date){var a=gantt.posFromDate(t.end_date);e.style.width=Math.max(a-i,0)+"px"}return t.text&&(e.innerHTML="
"+t.text+"
"),e}var e=document.createElement("div");e.className="gantt_marker_area",gantt.$task_data.appendChild(e),gantt.$marker_area=e,gantt._markerRenderer=gantt._task_renderer("markers",t,gantt.$marker_area,null)}),gantt.attachEvent("onDataRender",function(){gantt.renderMarkers() +}),gantt.getMarker=function(t){return this._markers?this._markers[t]:null},gantt.addMarker=function(t){return t.id=t.id||dhtmlx.uid(),this._markers[t.id]=t,t.id},gantt.deleteMarker=function(t){return this._markers&&this._markers[t]?(delete this._markers[t],!0):!1},gantt.updateMarker=function(t){this._markerRenderer&&this._markerRenderer.render_item(t)},gantt.renderMarkers=function(){if(!this._markers)return!1;if(!this._markerRenderer)return!1;var t=[];for(var e in this._markers)t.push(this._markers[e]); +return this._markerRenderer.render_items(t),!0}; //# sourceMappingURL=../sources/ext/dhtmlxgantt_marker.js.map \ No newline at end of file diff --git a/codebase/ext/dhtmlxgantt_quick_info.js b/codebase/ext/dhtmlxgantt_quick_info.js index f840e9b3..eb5ce0a3 100644 --- a/codebase/ext/dhtmlxgantt_quick_info.js +++ b/codebase/ext/dhtmlxgantt_quick_info.js @@ -1,17 +1,17 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -gantt.config.quickinfo_buttons=["icon_delete","icon_edit"],gantt.config.quick_info_detached=!0,gantt.attachEvent("onTaskClick",function(t){return gantt.showQuickInfo(t),!0}),function(){for(var t=["onEmptyClick","onViewChange","onLightbox","onBeforeTaskDelete","onBeforeDrag"],e=function(){return gantt._hideQuickInfo(),!0},n=0;n
';e+='
';for(var n=gantt.config.quickinfo_buttons,i=0;i
"+gantt.locale.labels[n[i]]+"
"; -e+="",t.innerHTML=e,dhtmlxEvent(t,"click",function(t){t=t||event,gantt._qi_button_click(t.target||t.srcElement)}),gantt.config.quick_info_detached&&dhtmlxEvent(gantt.$task_data,"scroll",function(){gantt.hideQuickInfo()})}return this._quick_info_box},gantt._qi_button_click=function(t){var e=gantt._quick_info_box;if(t&&t!=e){var n=t.className;if(-1!=n.indexOf("_icon")){var i=gantt._quick_info_box_id;gantt.$click.buttons[n.split(" ")[1].replace("icon_","")](i)}else gantt._qi_button_click(t.parentNode) -}},gantt._get_event_counter_part=function(t){for(var e=gantt.getTaskNode(t),n=0,i=0,a=e;a&&"gantt_task"!=a.className;)n+=a.offsetLeft,i+=a.offsetTop,a=a.offsetParent;var s=this.getScrollState();if(a){var r=n+e.offsetWidth/2-s.x>gantt._x/2?1:0,o=i+e.offsetHeight/2-s.y>gantt._y/2?1:0;return{left:n,top:i,dx:r,dy:o,width:e.offsetWidth,height:e.offsetHeight}}return 0},gantt._fill_quick_data=function(t){var e=gantt.getTask(t),n=gantt._quick_info_box;gantt._quick_info_box_id=t;var i=n.firstChild.firstChild; -i.innerHTML=gantt.templates.quick_info_title(e.start_date,e.end_date,e);var a=i.nextSibling;a.innerHTML=gantt.templates.quick_info_date(e.start_date,e.end_date,e);var s=n.firstChild.nextSibling;s.innerHTML=gantt.templates.quick_info_content(e.start_date,e.end_date,e)}; +return i&&(n+=" "+i),n},gantt._init_quick_info=function(t,e){var n=gantt.getTask(e);if("boolean"==typeof this._quick_info_readonly&&this._is_readonly(n)!==this._quick_info_readonly&&(gantt.hideQuickInfo(!0),this._quick_info_box=null),this._quick_info_readonly=this._is_readonly(n),!this._quick_info_box){var i=this._quick_info_box=document.createElement("div"),a='
'; +a+='
';for(var s=gantt.config.quickinfo_buttons,r={icon_delete:!0,icon_edit:!0},o=0;o
"+gantt.locale.labels[s[o]]+"
");a+="",i.innerHTML=a,dhtmlxEvent(i,"click",function(t){t=t||event,gantt._qi_button_click(t.target||t.srcElement)}),gantt.config.quick_info_detached&&dhtmlxEvent(gantt.$task_data,"scroll",function(){gantt.hideQuickInfo() +})}return this._quick_info_box},gantt._qi_button_click=function(t){var e=gantt._quick_info_box;if(t&&t!=e){var n=t.className;if(-1!=n.indexOf("_icon")){var i=gantt._quick_info_box_id;gantt.$click.buttons[n.split(" ")[1].replace("icon_","")](i)}else gantt._qi_button_click(t.parentNode)}},gantt._get_event_counter_part=function(t){for(var e=gantt.getTaskNode(t),n=0,i=0,a=e;a&&"gantt_task"!=a.className;)n+=a.offsetLeft,i+=a.offsetTop,a=a.offsetParent;var s=this.getScrollState();if(a){var r=n+e.offsetWidth/2-s.x>gantt._x/2?1:0,o=i+e.offsetHeight/2-s.y>gantt._y/2?1:0; +return{left:n,top:i,dx:r,dy:o,width:e.offsetWidth,height:e.offsetHeight}}return 0},gantt._fill_quick_data=function(t){var e=gantt.getTask(t),n=gantt._quick_info_box;gantt._quick_info_box_id=t;var i=n.firstChild.firstChild;i.innerHTML=gantt.templates.quick_info_title(e.start_date,e.end_date,e);var a=i.nextSibling;a.innerHTML=gantt.templates.quick_info_date(e.start_date,e.end_date,e);var s=n.firstChild.nextSibling;s.innerHTML=gantt.templates.quick_info_content(e.start_date,e.end_date,e)}; //# sourceMappingURL=../sources/ext/dhtmlxgantt_quick_info.js.map \ No newline at end of file diff --git a/codebase/ext/dhtmlxgantt_tooltip.js b/codebase/ext/dhtmlxgantt_tooltip.js index 73fa7050..861164bf 100644 --- a/codebase/ext/dhtmlxgantt_tooltip.js +++ b/codebase/ext/dhtmlxgantt_tooltip.js @@ -1,13 +1,13 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ gantt._tooltip={},gantt._tooltip_class="gantt_tooltip",gantt.config.tooltip_timeout=30,gantt.config.tooltip_offset_y=20,gantt.config.tooltip_offset_x=10,gantt._create_tooltip=function(){return this._tooltip_html||(this._tooltip_html=document.createElement("div"),this._tooltip_html.className=gantt._tooltip_class),this._tooltip_html},gantt._is_cursor_under_tooltip=function(t,e){return t.x>=e.pos.x&&t.x<=e.pos.x+e.width?!0:t.y>=e.pos.y&&t.y<=e.pos.y+e.height?!0:!1},gantt._show_tooltip=function(t,e){if(!gantt.config.touch||gantt.config.touch_tooltip){var n=this._create_tooltip(); -n.innerHTML=t,gantt.$task_data.appendChild(n);var i=n.offsetWidth+20,a=n.offsetHeight+40,s=this.$task.offsetHeight,r=this.$task.offsetWidth,o=this.getScrollState();e.y+=o.y;var l={x:e.x,y:e.y};e.x+=1*gantt.config.tooltip_offset_x||0,e.y+=1*gantt.config.tooltip_offset_y||0,e.y=Math.min(Math.max(o.y,e.y),o.y+s-a),e.x=Math.min(Math.max(o.x,e.x),o.x+r-i),gantt._is_cursor_under_tooltip(l,{pos:e,width:i,height:a})&&(l.x+i>r+o.x&&(e.x=l.x-(i-20)-(1*gantt.config.tooltip_offset_x||0)),l.y+a>s+o.y&&(e.y=l.y-(a-40)-(1*gantt.config.tooltip_offset_y||0))),n.style.left=e.x+"px",n.style.top=e.y+"px" +n.innerHTML=t,gantt.$task_data.appendChild(n);var i=n.offsetWidth+20,a=n.offsetHeight+40,s=this.$task.offsetHeight,r=this.$task.offsetWidth,o=this.getScrollState();e.y+=o.y;var d={x:e.x,y:e.y};e.x+=1*gantt.config.tooltip_offset_x||0,e.y+=1*gantt.config.tooltip_offset_y||0,e.y=Math.min(Math.max(o.y,e.y),o.y+s-a),e.x=Math.min(Math.max(o.x,e.x),o.x+r-i),gantt._is_cursor_under_tooltip(d,{pos:e,width:i,height:a})&&(d.x+i>r+o.x&&(e.x=d.x-(i-20)-(1*gantt.config.tooltip_offset_x||0)),d.y+a>s+o.y&&(e.y=d.y-(a-40)-(1*gantt.config.tooltip_offset_y||0))),n.style.left=e.x+"px",n.style.top=e.y+"px" }},gantt._hide_tooltip=function(){this._tooltip_html&&this._tooltip_html.parentNode&&this._tooltip_html.parentNode.removeChild(this._tooltip_html),this._tooltip_id=0},gantt._is_tooltip=function(t){var e=t.target||t.srcElement;return gantt._is_node_child(e,function(t){return t.className==this._tooltip_class})},gantt._is_task_line=function(t){var e=t.target||t.srcElement;return gantt._is_node_child(e,function(t){return t==this.$task_data})},gantt._is_node_child=function(t,e){for(var n=!1;t&&!n;)n=e.call(gantt,t),t=t.parentNode; return n},gantt._tooltip_pos=function(t){if(t.pageX||t.pageY)var e={x:t.pageX,y:t.pageY};var n=_isIE?document.documentElement:document.body,e={x:t.clientX+n.scrollLeft-n.clientLeft,y:t.clientY+n.scrollTop-n.clientTop},i=gantt._get_position(gantt.$task_data);return e.x=e.x-i.x,e.y=e.y-i.y,e},gantt.attachEvent("onMouseMove",function(t,e){if(this.config.tooltip_timeout){document.createEventObject&&!document.createEvent&&(e=document.createEventObject(e));var n=this.config.tooltip_timeout;this._tooltip_id&&!t&&(isNaN(this.config.tooltip_hide_timeout)||(n=this.config.tooltip_hide_timeout)),clearTimeout(gantt._tooltip_ev_timer),gantt._tooltip_ev_timer=setTimeout(function(){gantt._init_tooltip(t,e) },n)}else gantt._init_tooltip(t,e)}),gantt._init_tooltip=function(t,e){if(!this._is_tooltip(e)&&(t!=this._tooltip_id||this._is_task_line(e))){if(!t)return this._hide_tooltip();this._tooltip_id=t;var n=this.getTask(t),i=this.templates.tooltip_text(n.start_date,n.end_date,n);i||this._hide_tooltip(),this._show_tooltip(i,this._tooltip_pos(e))}},gantt.attachEvent("onMouseLeave",function(t){gantt._is_tooltip(t)||this._hide_tooltip()}),gantt.templates.tooltip_date_format=gantt.date.date_to_str("%Y-%m-%d"),gantt.templates.tooltip_text=function(t,e,n){return"Task: "+n.text+"
Start date: "+gantt.templates.tooltip_date_format(t)+"
End date: "+gantt.templates.tooltip_date_format(e) diff --git a/codebase/locale/locale.js b/codebase/locale/locale.js index cee0eec3..237255e3 100644 --- a/codebase/locale/locale.js +++ b/codebase/locale/locale.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_ar.js b/codebase/locale/locale_ar.js index fc65b486..b34261f5 100644 --- a/codebase/locale/locale_ar.js +++ b/codebase/locale/locale_ar.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_be.js b/codebase/locale/locale_be.js index ca591c2d..0c9262bd 100644 --- a/codebase/locale/locale_be.js +++ b/codebase/locale/locale_be.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_ca.js b/codebase/locale/locale_ca.js index 7f523a09..1a99faca 100644 --- a/codebase/locale/locale_ca.js +++ b/codebase/locale/locale_ca.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_cn.js b/codebase/locale/locale_cn.js index 17489a8a..2169c1fe 100644 --- a/codebase/locale/locale_cn.js +++ b/codebase/locale/locale_cn.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_cs.js b/codebase/locale/locale_cs.js index 9ecc5930..71e6ab9e 100644 --- a/codebase/locale/locale_cs.js +++ b/codebase/locale/locale_cs.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_da.js b/codebase/locale/locale_da.js index e0bc43d0..5f14ef07 100644 --- a/codebase/locale/locale_da.js +++ b/codebase/locale/locale_da.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_de.js b/codebase/locale/locale_de.js index 358ae727..5d3e71a5 100644 --- a/codebase/locale/locale_de.js +++ b/codebase/locale/locale_de.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_el.js b/codebase/locale/locale_el.js index beda93c3..fb2c7338 100644 --- a/codebase/locale/locale_el.js +++ b/codebase/locale/locale_el.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_es.js b/codebase/locale/locale_es.js index f68d70d8..36bb4517 100644 --- a/codebase/locale/locale_es.js +++ b/codebase/locale/locale_es.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_fi.js b/codebase/locale/locale_fi.js index b888f913..9e9f9538 100644 --- a/codebase/locale/locale_fi.js +++ b/codebase/locale/locale_fi.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_fr.js b/codebase/locale/locale_fr.js index f3499789..5f1f95d7 100644 --- a/codebase/locale/locale_fr.js +++ b/codebase/locale/locale_fr.js @@ -1,11 +1,11 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -gantt.locale={date:{month_full:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],month_short:["Jan","Fév","Mar","Avr","Mai","Juin","Juil","Aôu","Sep","Oct","Nov","Déc"],day_full:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],day_short:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"]},labels:{new_task:"Tâche neuve",icon_save:"Enregistrer",icon_cancel:"Annuler",icon_details:"Détails",icon_edit:"Modifier",icon_delete:"Effacer",confirm_closing:"",confirm_deleting:"L'événement sera effacé sans appel, êtes-vous sûr ?",section_description:"Description",section_time:"Période",section_type:"Type",column_text:"Tâche neuve",column_start_date:"Date initiale",column_duration:"Durée",column_add:"",confirm_link_deleting:"seront supprimées",link_start:"(début)",link_end:"(fin)",type_task:"Task",type_project:"Project",type_milestone:"Milestone",minutes:"Minutes",hours:"Heures",days:"Jours",weeks:"Semaine",months:"Mois",years:"Années"}}; +gantt.locale={date:{month_full:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],month_short:["Jan","Fév","Mar","Avr","Mai","Juin","Juil","Aoû","Sep","Oct","Nov","Déc"],day_full:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],day_short:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"]},labels:{new_task:"Nouvelle tâche",icon_save:"Enregistrer",icon_cancel:"Annuler",icon_details:"Détails",icon_edit:"Modifier",icon_delete:"Effacer",confirm_closing:"",confirm_deleting:"L'événement sera effacé sans appel, êtes-vous sûr ?",section_description:"Description",section_time:"Période",section_type:"Type",column_text:"Nom de la tâche",column_start_date:"Date initiale",column_duration:"Durée",column_add:"",confirm_link_deleting:"seront supprimées",link_start:"(début)",link_end:"(fin)",type_task:"Task",type_project:"Project",type_milestone:"Milestone",minutes:"Minutes",hours:"Heures",days:"Jours",weeks:"Semaines",months:"Mois",years:"Années"}}; //# sourceMappingURL=../sources/locale/locale_fr.js.map \ No newline at end of file diff --git a/codebase/locale/locale_he.js b/codebase/locale/locale_he.js index 049ad1bc..9342952c 100644 --- a/codebase/locale/locale_he.js +++ b/codebase/locale/locale_he.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_hu.js b/codebase/locale/locale_hu.js index d0696b79..c007bd9c 100644 --- a/codebase/locale/locale_hu.js +++ b/codebase/locale/locale_hu.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_id.js b/codebase/locale/locale_id.js index 67068ddd..2f7b2cfd 100644 --- a/codebase/locale/locale_id.js +++ b/codebase/locale/locale_id.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_it.js b/codebase/locale/locale_it.js index 303ff464..976df6a5 100644 --- a/codebase/locale/locale_it.js +++ b/codebase/locale/locale_it.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_jp.js b/codebase/locale/locale_jp.js index 7b6d56d4..d8429127 100644 --- a/codebase/locale/locale_jp.js +++ b/codebase/locale/locale_jp.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_nb.js b/codebase/locale/locale_nb.js index 8c862562..2c40dc02 100644 --- a/codebase/locale/locale_nb.js +++ b/codebase/locale/locale_nb.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_nl.js b/codebase/locale/locale_nl.js index 53d32901..d9c857cc 100644 --- a/codebase/locale/locale_nl.js +++ b/codebase/locale/locale_nl.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_no.js b/codebase/locale/locale_no.js index b93816d6..52f4631d 100644 --- a/codebase/locale/locale_no.js +++ b/codebase/locale/locale_no.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_pl.js b/codebase/locale/locale_pl.js index 927c5c1d..054b9426 100644 --- a/codebase/locale/locale_pl.js +++ b/codebase/locale/locale_pl.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_pt.js b/codebase/locale/locale_pt.js index 14e7d27d..9964ed40 100644 --- a/codebase/locale/locale_pt.js +++ b/codebase/locale/locale_pt.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_ro.js b/codebase/locale/locale_ro.js index 2cc9fc27..a4fe0499 100644 --- a/codebase/locale/locale_ro.js +++ b/codebase/locale/locale_ro.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_ru.js b/codebase/locale/locale_ru.js index 129bf86c..7ef5ed73 100644 --- a/codebase/locale/locale_ru.js +++ b/codebase/locale/locale_ru.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_si.js b/codebase/locale/locale_si.js index 342431aa..aa6250c7 100644 --- a/codebase/locale/locale_si.js +++ b/codebase/locale/locale_si.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_sk.js b/codebase/locale/locale_sk.js index 10a045c9..248263ba 100644 --- a/codebase/locale/locale_sk.js +++ b/codebase/locale/locale_sk.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_sv.js b/codebase/locale/locale_sv.js index 55537945..a5e354a8 100644 --- a/codebase/locale/locale_sv.js +++ b/codebase/locale/locale_sv.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_tr.js b/codebase/locale/locale_tr.js index 7b3f16be..1ae4fdb2 100644 --- a/codebase/locale/locale_tr.js +++ b/codebase/locale/locale_tr.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/locale/locale_ua.js b/codebase/locale/locale_ua.js index 54baeabe..2be884e9 100644 --- a/codebase/locale/locale_ua.js +++ b/codebase/locale/locale_ua.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/skins/dhtmlxgantt_broadway.css b/codebase/skins/dhtmlxgantt_broadway.css index c1fecb0e..eb24fa5f 100644 --- a/codebase/skins/dhtmlxgantt_broadway.css +++ b/codebase/skins/dhtmlxgantt_broadway.css @@ -1,9 +1,9 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -.gantt_grid{background-color:#d6d6d6;border-right:1px solid #d6d6d6!important}.gantt_grid_scale .gantt_grid_head_cell{border-top:none!important;border-right:1px solid #4f4f4f!important;border-left:1px solid #5b5b5b!important}.gantt_grid_data .gantt_row,.gantt_grid_data .gantt_row.odd{background-color:#dbdbdb;border-top:1px solid #f6f6f6;border-bottom:1px solid #bababa}.gantt_grid_data .gantt_row .gantt_cell,.gantt_grid_data .gantt_row.odd .gantt_cell{border-right:none}.gridHoverStyle{border-top:1px solid #ededed;background-color:#ededed}.gridSelection{background-color:#fff3a1;border-top-color:#fff087}.timelineSelection{background-color:#fff3a1}.gantt_cell .gantt_tree_icon.gantt_folder_closed,.gantt_cell .gantt_tree_icon.gantt_folder_open{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODhBMDIwQzhDRUI3MTFFMjg4RUJDNUMzQkZEREM2RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODhBMDIwQzlDRUI3MTFFMjg4RUJDNUMzQkZEREM2RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4OEEwMjBDNkNFQjcxMUUyODhFQkM1QzNCRkREQzZEMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OEEwMjBDN0NFQjcxMUUyODhFQkM1QzNCRkREQzZEMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PntuzoIAAACySURBVHjaYmTAAjo6Ov4z4AAVFRWM6GJM6ALt7e0OUCYjFowsDwfIEjDbDRgZGSf8//8fUzEj4wGgeAGQeQFJ+CIj0IALQEl9BjIB0NADTJQYAHWdAxMDFQBVDGEB+ukgxYYAcQNSzCCnh4NY0o89VkOAAbMfV5gBNR0AytuDXAs01AEUxbhcwoAj1c4HaUTi9wMNwWnb/0ERO0xA/z6k0IyP4NgBGpRApgEfgHgBQIABAAcyQOF3e6FiAAAAAElFTkSuQmCC)}.gantt_cell .gantt_tree_icon.gantt_file{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkQ2NjJFM0ZDRUI3MTFFMkFGNzc4M0YxNUM2NzkwMTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RkQ2NjJFNDBDRUI3MTFFMkFGNzc4M0YxNUM2NzkwMTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGRDY2MkUzRENFQjcxMUUyQUY3NzgzRjE1QzY3OTAxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGRDY2MkUzRUNFQjcxMUUyQUY3NzgzRjE1QzY3OTAxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhnnqLUAAAExSURBVHjanFPtUcMwDI28AB0BJkg6AWEEJqAbxPxLJkh+phuUDdiAbtAwAYxAJ0jf60k51ecWDt3pZFtPn5akSKjv+3uIBlyLSMW3eZ4niD1423Xdt8dLYjzCqCluEJyNcPJq9+CMJzMGaAtet20rZJ7Bb+eIIhHYw0UGLvIRwBoRplx04CrgWModgwAXhTXj8Usjr73xMAwzJbNInBwU/8ASoqV9LbInYqwc2tJBrZdd8XcaVT4GpFOa52topL1Ks9CGVuGXL/vU40fqZPlGA7E5GX1NvQ7U4sSw1AWdMNIm07CfxIn1K6rcB2sI5yCXhXPyjPO7fuOLNfNikAAi+OnWILEUYFfLICWjXGptO12cyRk20G+sduiq/y7TOXJ2G906R13n0n0nmz2m63wSYAB0aMIyVTQbywAAAABJRU5ErkJggg==)}.chartHeaderBg{background-color:#dbdbdb}.gantt_task .gantt_task_scale .gantt_scale_cell{border-left:1px solid #f6f6f6;border-right:1px solid #bababa;color:#494949;font-size:14px}.taskProgressStyle{border-right:1px solid #1cb3fb;box-shadow:-1px 0 0 1px #04a1eb inset}.gantt_task_line{background-size:4px 4px;background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(0deg,transparent,transparent)}.gantt_task_line .gantt_task_content{text-align:left;font-weight:700;padding:0 8px;box-sizing:border-box}.gantt_task_link .gantt_link_arrow_right{border-width:5px;margin-top:-2px}.gantt_task_link .gantt_link_arrow_left{border-width:5px;margin-left:-7px;margin-top:-2px}.gantt_task_link .gantt_link_arrow_down,.gantt_task_link .gantt_link_arrow_top{border-width:5px}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.gantt_row.gantt_project,.gantt_row.odd.gantt_project{background-color:#edffef}.gantt_task_row.gantt_project,.gantt_task_row.odd.gantt_project{background-color:#f5fff6}.gantt_task_line.gantt_project{background-color:#65c16f;border:1px solid #3c9445}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#46ad51;border-right:1px solid #5abc65;box-shadow:-1px 0 0 1px #45a94f inset}.gantt_cal_light{background-color:#fff;border:none!important}.gantt_cal_light .gantt_cal_lsection{color:#959595}.gantt_cal_light .gantt_cal_larea{border-bottom:none}.gantt_cal_light .gantt_cal_ltitle{background-color:#4f4f4f;background-size:5px 5px;background-size:4px 4px;background-position:0 0,2px 2px;background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));background-image:linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));font-size:14px;color:#e1e1e1;position:relative;padding-top:12px;padding-bottom:12px;font-weight:400}.gantt_cal_light .gantt_cal_ltitle .gantt_title{font-size:13px}.gantt_cal_light .gantt_btn_set{margin:5px 10px}.buttonBg{background:#fff}.gantt_btn_set.gantt_save_btn_set{background:#46ad51;text-shadow:0 -1px 0 #307738;color:#fff}.gantt_btn_set.gantt_delete_btn_set{margin-left:0;background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff}.gantt_cal_light_wide{padding-left:0!important;padding-right:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.gantt_cal_ltitle .gantt_cancel_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAMCAYAAABbayygAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYLEgAjh/DRnAAAAMdJREFUGNN1kcsNwjAQRF9iCkgJdJCUkBJQpDkDFUALdBAqAM6WQglQAlxzSglQgAUH1tIKgS9ezzztz0Vd18QYW0lXfpzsFeM49sAGOEpaf0FHYAnsS6evYoy9g3qDAB6Flb4BtYk568Huu6RmBhBCaFNKV4MPrso9hNAClABd1z2ABfB00BNYmEf5NeTrT/wBh2GogDNQOa8CzuZ9QOuvccPkgZqU0gXA7xFgL2nr1pP1ne/xlCEAi0/5nfc4lzT9+cK5pOkNX8hRT8hMyVwAAAAASUVORK5CYII=);width:30px;top:0;right:0;background-position:6px 12px;background-repeat:no-repeat;position:absolute;height:100%}.dhtmlx_popup_button.dhtmlx_ok_button{background:#46ad51;text-shadow:0 -1px 0 #307738;color:#fff;font-weight:700}.dhtmlx_popup_button.dhtmlx_cancel_button{font-weight:700}.gantt_qi_big_icon.icon_edit{color:#454544}.gantt_qi_big_icon.icon_delete{background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff;font-weight:700}.gantt_container{font-family:Arial;font-size:13px;border:1px solid #bababa;position:relative;white-space:nowrap}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#494949;font-size:12px;border-bottom:1px solid #bababa}.gantt_grid_scale{background-color:#4f4f4f;background-size:5px 5px;background-size:4px 4px;background-position:0 0,2px 2px;background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));background-image:linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));color:#e1e1e1;font-size:14px}.gantt_task_scale{background-color:#dbdbdb}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #bababa}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #bababa;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYHCygkHejN0gAAAD1JREFUOMtjtN15mYESwIJLwvHo6v/I/P3WoYzY1DExUAiGgQGMtjsvYwQYsWC/dSjjcAmD0YREo0AkFgAASgkTQxnJ6ggAAAAASUVORK5CYII=);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{border-top:1px solid #ededed;background-color:#ededed}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#bababa;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#bababa;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #bababa;border-right:1px solid #bababa;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:13px}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #bababa;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAOMHAMrKyt3d3ejp6d7f3+/v75aWlvf39////wAAAP///////////////////////////yH5BAEKAA8ALAAAAAASABIAAAQt8MlJq704672L/x9WZKNVXieVIipKsVMaS0hdSzL+tuY+9yJXEAUCcY7IJCUCADs=);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASAOMIAMrKyt3d3ejp6d7f3+/v75aWlvf39wAAAP///////////////////////////////yH5BAEKAAYALAAAAAASABIAAAQp0MhJq704672L/x9WZKNVXieVVqvUTm95zLOLkreY7yqOgiCOcEikRAAAOw==);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTdDRDM3QzVDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTdDRDM3QzZDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1N0NEMzdDM0MwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMzdDNEMwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIzlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCBlXd+2XjjLKg5GqoeZXqvsOQXK/ijUZTKVUFADs=)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTAyMTU1RTNDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTAyMTU1RTRDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDIxNTVFMUMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDIxNTVFMkMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIwlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCuYIY6TYs+6bmHDO4igfdD3GNhheV0VQAADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzkxQzI4RjZDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzkxQzI4RjdDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFDMjhGNEMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFDMjhGNUMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIylI+pwN16QJiUQiFThRlJm3RRFYSlR5qXMKmXaMDuuMoyOi8n/e6xn8NMHETgh5RaKQsAOw==)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Arial;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Arial;border-radius:6px;border:1px solid #bababa;background:#fff}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #bababa;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;background:#fff}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #bababa}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:13px;color:#fff;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#04a4f0;border-right:1px solid #1cb3fb;box-shadow:-1px 0 0 1px #04a1eb inset}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#17b2fb;border:1px solid #049ae1;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px;font-size:12px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:8.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffa011}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffa011}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #04a4f0}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffbf5e}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffbf5e;border-color:#ffa011}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:2.5px 0 2.5px 5px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffa011;margin-top:-1px}.gantt_link_arrow_left{border-width:2.5px 5px 2.5px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffa011;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 2.5px 5px;border-color:#ffa011;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:2.5px 5px 0 2.5px;border-color:#ffa011;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAACCAYAAAB7Xa1eAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYDDjkw3UJvAwAAABRJREFUCNdj/P//PwM2wASl/6PTAKrrBf4+lD8LAAAAAElFTkSuQmCC);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffa011;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected{background-color:#fff3a1;border-top-color:#fff087}.gantt_task_row.gantt_selected{background-color:#fff3a1}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffec6e}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #04a4f0}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #46ad51}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#db7dc5;border:0 solid #cd49ae;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;border-radius:6px;font-family:Arial;color:#494949;font-size:12px;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Arial;border:1px solid #bababa;font-size:13px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Arial;font-size:13px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #bababa;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #bababa;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#bababa;border-style:solid;height:32px;font-weight:700;background:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:22px;line-height:22px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTBBQUI0RDhDRUJEMTFFMjhFM0ZENTlERUM1OEQzRTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTBBQUI0RDlDRUJEMTFFMjhFM0ZENTlERUM1OEQzRTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBMEFBQjRENkNFQkQxMUUyOEUzRkQ1OURFQzU4RDNFNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBMEFBQjREN0NFQkQxMUUyOEUzRkQ1OURFQzU4RDNFNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjdPZV0AAACtSURBVHjanJPbDYUgEESvtwJKoQRLoRNL0RK0ArUCS9AOpAMclDVkw0s2mQ9XcpwJY2OM+VWMgDQ9/CsAEtoh9W6skw+S0Akd5hl1J6kADJBwADs9j9MmIszQ5GJo793qf2nwLUYc0E7xONbaBmloZKAsgCCLW0p2qCsBEEQ6F33gcBbg304I1JYA+BWHQFlAqCcclAXEykaguQSQaiyBVEmbm8RfLFgzo3MJMACZSGxiH8QaMAAAAABJRU5ErkJggg==);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDkzMDA3MzlDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDkzMDA3M0FDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowOTMwMDczN0MzMDQxMUUyODZBNUUzMURDODBGQkRENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowOTMwMDczOEMzMDQxMUUyODZBNUUzMURDODBGQkRENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYuYOUAAAEdSURBVHjaYvz//z8DJYAFXWDlypU8QKoIiD2A2AwqfAqIdwBxX3h4+Bdk9YzILgBqtgdS84FYEYeF94E4EWjIQZgAE5LmQCB1AKoZZKMPEAtAMYh9GSp3AKjWD8UFQAEhIPshEIOc3wHENUBb/qJ57SyQMoJyPwKxElDNO1gYFEE17wMKVmIJlzNQzeegrjaA6qmBecEbSvfh0GwMxGeBhoPoemQ9MAO0kEIbl2YTqPAFKK2IbMB3AjabYIkRZmQD7kNpMyI0G0PpO8gGbIUFJj7NQDk2INWIrIcJKfBAKcwJqvkcDs0TgFgXGo19KCkRmpDWQdWDEk0NUoCBoq0FqhkE/IEWbKJKUmZEz43QzFSKIzN1481M5ACAAAMAlfl/lCwRpagAAAAASUVORK5CYII=);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzQzRjMxM0NDRUJEMTFFMjlCNDZDQzhFQUM0ODRCMEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzQzRjMxM0RDRUJEMTFFMjlCNDZDQzhFQUM0ODRCMEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNDNGMzEzQUNFQkQxMUUyOUI0NkNDOEVBQzQ4NEIwQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNDNGMzEzQkNFQkQxMUUyOUI0NkNDOEVBQzQ4NEIwQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoU+5FoAAACMSURBVHja7JPdDYAgDIQLE+gmjuAIbOIKjMRIbAAb1BZLUozgz7OXfIbWKxeCAiKCwmNfXnsNP5S4mIkMrSYiEaY2LOFloO6QVF1JamPGc2IvpaeSbqXY4LkOLwU6OTyvgzBasxwnBnivYOGj/sEXg27gbd/JpWZiOf0pV7Anlq9UGqs07hTFC7sAAwCbSNs8SyqFMAAAAABJRU5ErkJggg==);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Arial;font-size:13px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #bababa}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:13px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #bababa}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #bababa}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#fff}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #bababa;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#494949;background-color:#dbdbdb;border-bottom:1px solid #bababa}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:13px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#494949;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:6px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFCjI5ZQj5bAAAAFNJREFUOMvt0zEOACAIA0DkwTymH8bJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+vNGrM/LBtAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzQzRjMxM0NDRUJEMTFFMjlCNDZDQzhFQUM0ODRCMEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzQzRjMxM0RDRUJEMTFFMjlCNDZDQzhFQUM0ODRCMEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNDNGMzEzQUNFQkQxMUUyOUI0NkNDOEVBQzQ4NEIwQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNDNGMzEzQkNFQkQxMUUyOUI0NkNDOEVBQzQ4NEIwQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoU+5FoAAACMSURBVHja7JPdDYAgDIQLE+gmjuAIbOIKjMRIbAAb1BZLUozgz7OXfIbWKxeCAiKCwmNfXnsNP5S4mIkMrSYiEaY2LOFloO6QVF1JamPGc2IvpaeSbqXY4LkOLwU6OTyvgzBasxwnBnivYOGj/sEXg27gbd/JpWZiOf0pV7Anlq9UGqs07hTFC7sAAwCbSNs8SyqFMAAAAABJRU5ErkJggg==)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;font-weight:700;background:#fff;margin:5px 9px 8px 0;min-width:60px;line-height:32px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #bababa}.gantt_cal_qi_controls div{float:left;height:32px;text-align:center;line-height:32px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Arial;font-size:8pt;color:#494949;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Arial;font-size:13px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#dbf3fe}.dhtmlx_popup_button.dhtmlx_delete_button{background:#46ad51;text-shadow:0 -1px 0 #307738;color:#fff;font-weight:700} \ No newline at end of file +.gantt_grid{background-color:#d6d6d6;border-right:1px solid #d6d6d6!important}.gantt_grid_scale .gantt_grid_head_cell{border-top:none!important;border-right:1px solid #4f4f4f!important;border-left:1px solid #5b5b5b!important}.gantt_grid_data .gantt_row,.gantt_grid_data .gantt_row.odd{background-color:#dbdbdb;border-top:1px solid #f6f6f6;border-bottom:1px solid #bababa}.gantt_grid_data .gantt_row .gantt_cell,.gantt_grid_data .gantt_row.odd .gantt_cell{border-right:none}.gridHoverStyle{border-top:1px solid #ededed;background-color:#ededed}.gridSelection{background-color:#fff3a1;border-top-color:#fff087}.timelineSelection{background-color:#fff3a1}.gantt_cell .gantt_tree_icon.gantt_folder_closed,.gantt_cell .gantt_tree_icon.gantt_folder_open{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODhBMDIwQzhDRUI3MTFFMjg4RUJDNUMzQkZEREM2RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODhBMDIwQzlDRUI3MTFFMjg4RUJDNUMzQkZEREM2RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4OEEwMjBDNkNFQjcxMUUyODhFQkM1QzNCRkREQzZEMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OEEwMjBDN0NFQjcxMUUyODhFQkM1QzNCRkREQzZEMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PntuzoIAAACySURBVHjaYmTAAjo6Ov4z4AAVFRWM6GJM6ALt7e0OUCYjFowsDwfIEjDbDRgZGSf8//8fUzEj4wGgeAGQeQFJ+CIj0IALQEl9BjIB0NADTJQYAHWdAxMDFQBVDGEB+ukgxYYAcQNSzCCnh4NY0o89VkOAAbMfV5gBNR0AytuDXAs01AEUxbhcwoAj1c4HaUTi9wMNwWnb/0ERO0xA/z6k0IyP4NgBGpRApgEfgHgBQIABAAcyQOF3e6FiAAAAAElFTkSuQmCC)}.gantt_cell .gantt_tree_icon.gantt_file{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkQ2NjJFM0ZDRUI3MTFFMkFGNzc4M0YxNUM2NzkwMTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RkQ2NjJFNDBDRUI3MTFFMkFGNzc4M0YxNUM2NzkwMTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGRDY2MkUzRENFQjcxMUUyQUY3NzgzRjE1QzY3OTAxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGRDY2MkUzRUNFQjcxMUUyQUY3NzgzRjE1QzY3OTAxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhnnqLUAAAExSURBVHjanFPtUcMwDI28AB0BJkg6AWEEJqAbxPxLJkh+phuUDdiAbtAwAYxAJ0jf60k51ecWDt3pZFtPn5akSKjv+3uIBlyLSMW3eZ4niD1423Xdt8dLYjzCqCluEJyNcPJq9+CMJzMGaAtet20rZJ7Bb+eIIhHYw0UGLvIRwBoRplx04CrgWModgwAXhTXj8Usjr73xMAwzJbNInBwU/8ASoqV9LbInYqwc2tJBrZdd8XcaVT4GpFOa52topL1Ks9CGVuGXL/vU40fqZPlGA7E5GX1NvQ7U4sSw1AWdMNIm07CfxIn1K6rcB2sI5yCXhXPyjPO7fuOLNfNikAAi+OnWILEUYFfLICWjXGptO12cyRk20G+sduiq/y7TOXJ2G906R13n0n0nmz2m63wSYAB0aMIyVTQbywAAAABJRU5ErkJggg==)}.chartHeaderBg{background-color:#dbdbdb}.gantt_task .gantt_task_scale .gantt_scale_cell{border-left:1px solid #f6f6f6;border-right:1px solid #bababa;color:#494949;font-size:14px}.taskProgressStyle{border-right:1px solid #1cb3fb;box-shadow:-1px 0 0 1px #04a1eb inset}.gantt_task_line{background-size:4px 4px;background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(0deg,transparent,transparent)}.gantt_task_line .gantt_task_content{text-align:left;font-weight:700;padding:0 8px;box-sizing:border-box}.gantt_task_link .gantt_link_arrow_right{border-width:5px;margin-top:-2px}.gantt_task_link .gantt_link_arrow_left{border-width:5px;margin-left:-7px;margin-top:-2px}.gantt_task_link .gantt_link_arrow_down,.gantt_task_link .gantt_link_arrow_top{border-width:5px}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.gantt_row.gantt_project,.gantt_row.odd.gantt_project{background-color:#edffef}.gantt_task_row.gantt_project,.gantt_task_row.odd.gantt_project{background-color:#f5fff6}.gantt_task_line.gantt_project{background-color:#65c16f;border:1px solid #3c9445}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#46ad51;border-right:1px solid #5abc65;box-shadow:-1px 0 0 1px #45a94f inset}.gantt_cal_light{background-color:#fff;border:none!important}.gantt_cal_light .gantt_cal_lsection{color:#959595}.gantt_cal_light .gantt_cal_larea{border-bottom:none}.gantt_cal_light .gantt_cal_ltitle{background-color:#4f4f4f;background-size:4px 4px;background-position:0 0,2px 2px;background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));background-image:linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));font-size:14px;color:#e1e1e1;position:relative;padding-top:12px;padding-bottom:12px;font-weight:400}.gantt_cal_light .gantt_cal_ltitle .gantt_title{font-size:13px}.gantt_cal_light .gantt_btn_set{margin:5px 10px}.buttonBg{background:#fff}.gantt_btn_set.gantt_save_btn_set{background:#46ad51;text-shadow:0 -1px 0 #307738;color:#fff}.gantt_btn_set.gantt_delete_btn_set{margin-left:0;background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff}.gantt_cal_light_wide{padding-left:0!important;padding-right:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.gantt_cal_ltitle .gantt_cancel_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAMCAYAAABbayygAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYLEgAjh/DRnAAAAMdJREFUGNN1kcsNwjAQRF9iCkgJdJCUkBJQpDkDFUALdBAqAM6WQglQAlxzSglQgAUH1tIKgS9ezzztz0Vd18QYW0lXfpzsFeM49sAGOEpaf0FHYAnsS6evYoy9g3qDAB6Flb4BtYk568Huu6RmBhBCaFNKV4MPrso9hNAClABd1z2ABfB00BNYmEf5NeTrT/wBh2GogDNQOa8CzuZ9QOuvccPkgZqU0gXA7xFgL2nr1pP1ne/xlCEAi0/5nfc4lzT9+cK5pOkNX8hRT8hMyVwAAAAASUVORK5CYII=);width:30px;top:0;right:0;background-position:6px 12px;background-repeat:no-repeat;position:absolute;height:100%}.dhtmlx_popup_button.dhtmlx_ok_button{background:#46ad51;text-shadow:0 -1px 0 #307738;color:#fff;font-weight:700}.dhtmlx_popup_button.dhtmlx_cancel_button{font-weight:700}.gantt_qi_big_icon.icon_edit{color:#454544}.gantt_qi_big_icon.icon_delete{background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff;font-weight:700}.gantt_container{font-family:Arial;font-size:13px;border:1px solid #bababa;position:relative;white-space:nowrap}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#494949;font-size:12px;border-bottom:1px solid #bababa}.gantt_grid_scale{background-color:#4f4f4f;background-size:4px 4px;background-position:0 0,2px 2px;background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));background-image:linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05)),linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.05) 75%,rgba(255,255,255,.05));color:#e1e1e1;font-size:14px}.gantt_task_scale{background-color:#dbdbdb}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #bababa}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #bababa;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYHCygkHejN0gAAAD1JREFUOMtjtN15mYESwIJLwvHo6v/I/P3WoYzY1DExUAiGgQGMtjsvYwQYsWC/dSjjcAmD0YREo0AkFgAASgkTQxnJ6ggAAAAASUVORK5CYII=);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{border-top:1px solid #ededed;background-color:#ededed}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#bababa;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#bababa;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #bababa;border-right:1px solid #bababa;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:13px}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #bababa;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAOMHAMrKyt3d3ejp6d7f3+/v75aWlvf39////wAAAP///////////////////////////yH5BAEKAA8ALAAAAAASABIAAAQt8MlJq704672L/x9WZKNVXieVIipKsVMaS0hdSzL+tuY+9yJXEAUCcY7IJCUCADs=);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASAOMIAMrKyt3d3ejp6d7f3+/v75aWlvf39wAAAP///////////////////////////////yH5BAEKAAYALAAAAAASABIAAAQp0MhJq704672L/x9WZKNVXieVVqvUTm95zLOLkreY7yqOgiCOcEikRAAAOw==);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTdDRDM3QzVDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTdDRDM3QzZDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1N0NEMzdDM0MwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMzdDNEMwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIzlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCBlXd+2XjjLKg5GqoeZXqvsOQXK/ijUZTKVUFADs=)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTAyMTU1RTNDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTAyMTU1RTRDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDIxNTVFMUMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDIxNTVFMkMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIwlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCuYIY6TYs+6bmHDO4igfdD3GNhheV0VQAADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzkxQzI4RjZDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzkxQzI4RjdDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFDMjhGNEMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFDMjhGNUMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIylI+pwN16QJiUQiFThRlJm3RRFYSlR5qXMKmXaMDuuMoyOi8n/e6xn8NMHETgh5RaKQsAOw==)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Arial;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Arial;border-radius:6px;border:1px solid #bababa;background:#fff}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #bababa;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;background:#fff}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #bababa}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:13px;color:#fff;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#04a4f0;border-right:1px solid #1cb3fb;box-shadow:-1px 0 0 1px #04a1eb inset}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#17b2fb;border:1px solid #049ae1;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_touch_move,.gantt_touch_progress .gantt_touch_resize{-moz-transform:scale(1.02,1.1);-o-transform:scale(1.02,1.1);-webkit-transform:scale(1.02,1.1);transform:scale(1.02,1.1);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_touch_progress .gantt_task_progress_drag,.gantt_touch_resize .gantt_task_drag{-moz-transform:scaleY(1.3);-o-transform:scaleY(1.3);-webkit-transform:scaleY(1.3);transform:scaleY(1.3);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px;font-size:12px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:8.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffa011}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffa011}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #04a4f0}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffbf5e}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffbf5e;border-color:#ffa011}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:2.5px 0 2.5px 5px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffa011;margin-top:-1px}.gantt_link_arrow_left{border-width:2.5px 5px 2.5px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffa011;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 2.5px 5px;border-color:#ffa011;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:2.5px 5px 0 2.5px;border-color:#ffa011;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAACCAYAAAB7Xa1eAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYDDjkw3UJvAwAAABRJREFUCNdj/P//PwM2wASl/6PTAKrrBf4+lD8LAAAAAElFTkSuQmCC);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffa011;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected{background-color:#fff3a1;border-top-color:#fff087}.gantt_task_row.gantt_selected{background-color:#fff3a1}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffec6e}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #04a4f0}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #46ad51}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#db7dc5;border:0 solid #cd49ae;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;border-radius:6px;font-family:Arial;color:#494949;font-size:12px;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Arial;border:1px solid #bababa;font-size:13px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Arial;font-size:13px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #bababa;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #bababa;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#bababa;border-style:solid;height:32px;font-weight:700;background:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:22px;line-height:22px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTBBQUI0RDhDRUJEMTFFMjhFM0ZENTlERUM1OEQzRTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTBBQUI0RDlDRUJEMTFFMjhFM0ZENTlERUM1OEQzRTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBMEFBQjRENkNFQkQxMUUyOEUzRkQ1OURFQzU4RDNFNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBMEFBQjREN0NFQkQxMUUyOEUzRkQ1OURFQzU4RDNFNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjdPZV0AAACtSURBVHjanJPbDYUgEESvtwJKoQRLoRNL0RK0ArUCS9AOpAMclDVkw0s2mQ9XcpwJY2OM+VWMgDQ9/CsAEtoh9W6skw+S0Akd5hl1J6kADJBwADs9j9MmIszQ5GJo793qf2nwLUYc0E7xONbaBmloZKAsgCCLW0p2qCsBEEQ6F33gcBbg304I1JYA+BWHQFlAqCcclAXEykaguQSQaiyBVEmbm8RfLFgzo3MJMACZSGxiH8QaMAAAAABJRU5ErkJggg==);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDkzMDA3MzlDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDkzMDA3M0FDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowOTMwMDczN0MzMDQxMUUyODZBNUUzMURDODBGQkRENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowOTMwMDczOEMzMDQxMUUyODZBNUUzMURDODBGQkRENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYuYOUAAAEdSURBVHjaYvz//z8DJYAFXWDlypU8QKoIiD2A2AwqfAqIdwBxX3h4+Bdk9YzILgBqtgdS84FYEYeF94E4EWjIQZgAE5LmQCB1AKoZZKMPEAtAMYh9GSp3AKjWD8UFQAEhIPshEIOc3wHENUBb/qJ57SyQMoJyPwKxElDNO1gYFEE17wMKVmIJlzNQzeegrjaA6qmBecEbSvfh0GwMxGeBhoPoemQ9MAO0kEIbl2YTqPAFKK2IbMB3AjabYIkRZmQD7kNpMyI0G0PpO8gGbIUFJj7NQDk2INWIrIcJKfBAKcwJqvkcDs0TgFgXGo19KCkRmpDWQdWDEk0NUoCBoq0FqhkE/IEWbKJKUmZEz43QzFSKIzN1481M5ACAAAMAlfl/lCwRpagAAAAASUVORK5CYII=);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzQzRjMxM0NDRUJEMTFFMjlCNDZDQzhFQUM0ODRCMEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzQzRjMxM0RDRUJEMTFFMjlCNDZDQzhFQUM0ODRCMEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNDNGMzEzQUNFQkQxMUUyOUI0NkNDOEVBQzQ4NEIwQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNDNGMzEzQkNFQkQxMUUyOUI0NkNDOEVBQzQ4NEIwQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoU+5FoAAACMSURBVHja7JPdDYAgDIQLE+gmjuAIbOIKjMRIbAAb1BZLUozgz7OXfIbWKxeCAiKCwmNfXnsNP5S4mIkMrSYiEaY2LOFloO6QVF1JamPGc2IvpaeSbqXY4LkOLwU6OTyvgzBasxwnBnivYOGj/sEXg27gbd/JpWZiOf0pV7Anlq9UGqs07hTFC7sAAwCbSNs8SyqFMAAAAABJRU5ErkJggg==);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Arial;font-size:13px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #bababa}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:13px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #bababa}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #bababa}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#fff}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #bababa;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#494949;background-color:#dbdbdb;border-bottom:1px solid #bababa}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:13px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#494949;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:6px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFCjI5ZQj5bAAAAFNJREFUOMvt0zEOACAIA0DkwTymH8bJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+vNGrM/LBtAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzQzRjMxM0NDRUJEMTFFMjlCNDZDQzhFQUM0ODRCMEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzQzRjMxM0RDRUJEMTFFMjlCNDZDQzhFQUM0ODRCMEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNDNGMzEzQUNFQkQxMUUyOUI0NkNDOEVBQzQ4NEIwQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNDNGMzEzQkNFQkQxMUUyOUI0NkNDOEVBQzQ4NEIwQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoU+5FoAAACMSURBVHja7JPdDYAgDIQLE+gmjuAIbOIKjMRIbAAb1BZLUozgz7OXfIbWKxeCAiKCwmNfXnsNP5S4mIkMrSYiEaY2LOFloO6QVF1JamPGc2IvpaeSbqXY4LkOLwU6OTyvgzBasxwnBnivYOGj/sEXg27gbd/JpWZiOf0pV7Anlq9UGqs07hTFC7sAAwCbSNs8SyqFMAAAAABJRU5ErkJggg==)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;font-weight:700;background:#fff;margin:5px 9px 8px 0;min-width:60px;line-height:32px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #bababa}.gantt_cal_qi_controls div{float:left;height:32px;text-align:center;line-height:32px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Arial;font-size:8pt;color:#494949;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Arial;font-size:13px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#dbf3fe}.dhtmlx_popup_button.dhtmlx_delete_button{background:#46ad51;text-shadow:0 -1px 0 #307738;color:#fff;font-weight:700} \ No newline at end of file diff --git a/codebase/skins/dhtmlxgantt_meadow.css b/codebase/skins/dhtmlxgantt_meadow.css index bd00f2ff..a1c97f5c 100644 --- a/codebase/skins/dhtmlxgantt_meadow.css +++ b/codebase/skins/dhtmlxgantt_meadow.css @@ -1,9 +1,9 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -.chartHeaderBg{background-color:#f4f2ea}.gridHoverStyle{background-color:#ffebbc!important}.gantt_grid_scale .gantt_grid_head_cell{border-top:none!important;border-right:none!important}.gantt_grid_data .gantt_cell{border-right:none}.gridSelection,.timelineSelection{background-color:#ffebbc!important}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.gantt_task .gantt_task_scale .gantt_scale_cell{border-right:1px solid #cac8bd}.gantt_row.gantt_project .gantt_cell,.gantt_row.odd.gantt_project .gantt_cell{background-color:#edf3ff}.gantt_task_row.gantt_project .gantt_task_cell,.gantt_task_row.odd.gantt_project .gantt_task_cell{background-color:#f5f8ff}.gantt_task_line.gantt_project{background-color:#c7d8f7;border:1px solid #7ba3ed}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#9ab9f1}.gantt_cal_light .gantt_cal_ltitle{padding:7px 10px}.gantt_cal_light .gantt_cal_ltext textarea{border:1px solid #d8d6ce}.gantt_cal_light .gantt_cal_larea{border-color:#d8d6ce!important;background-color:#fcfaf3}.gantt_cal_light .gantt_cal_larea .gantt_section_time{background-color:#fcfaf3}.buttonBg{background:#e0ded7}.gantt_cal_light .gantt_btn_set{height:27px;margin:5px 10px;padding:0 15px 0 10px}.gantt_cal_light .gantt_btn_set div{height:25px;margin-top:0;background-position:center center;line-height:25px}.gantt_btn_set.gantt_save_btn_set{border:1px solid #98d27e;background:#a7d991}.gantt_btn_set.gantt_cancel_btn_set{background:#e0ded7;border:1px solid #cac8bd}.gantt_btn_set.gantt_delete_btn_set{border:1px solid #ffad54;background:#ffb96d}.gantt_cal_light_wide{padding:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.gantt_cal_light_wide .gantt_cal_larea .gantt_cal_lsection{width:90px}.gantt_cal_light_wide .gantt_btn_set{margin:7px 10px}.dhtmlx_popup_button.dhtmlx_ok_button{border:1px solid #98d27e;background:#a7d991}.gantt_data_area .gantt_cal_quick_info{background-color:#f4f2ea}.gantt_data_area .gantt_cal_qi_content{background:#fcfaf3;border-bottom:1px solid #cac8bd}.gantt_qi_big_icon.icon_delete{border-color:#ffad54;background:#ffb96d}.gantt_container{font-family:Verdana;font-size:11px;border:1px solid #cac8bd;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #cac8bd}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#3f3f3f;font-size:8pt;border-bottom:1px solid #cac8bd;background-color:#f4f2ea}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #cac8bd}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #cac8bd;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDAzOTZDREFDN0FGMTFFMkE1MDhCNkFCRDk3RkY4NTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDAzOTZDREJDN0FGMTFFMkE1MDhCNkFCRDk3RkY4NTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDM5NkNEOEM3QUYxMUUyQTUwOEI2QUJEOTdGRjg1OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDM5NkNEOUM3QUYxMUUyQTUwOEI2QUJEOTdGRjg1OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnzqpNoAAAEFSURBVHjapJPPDsFAEMbHZqXSi1ZC3Dg7O9bbeA7v4czZE4hLSRwkbiI4cCAN4Uyqs/pPs1vbrTDJHL7Mb77sbr8WeuMu/FOEMQaStplYdgYHFBnKjK1atZqI8+ViZZ2AMmS5x1QxFNHLNVAx1EPMNVAxBBFtvxnfuq4LUKDTTLwXXsFqNprKE1RMM2y+9oe9FV3Bw5++/3svfMRWpS0MV7fFx0Ka2e62kQEhBEbzoTA0DAPqtXqinbMD643IFGkR3KcL1Cib0yA4/DBY4A2u15ug45oFHD05x44sO+kc+FwhI0j4RZBQlUT5kH+0JS4VBpKfqaSVYDDpJ1rz9eNxlxq8BBgAcMHBu6BPeX8AAAAASUVORK5CYII=);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#ffebbc!important}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #eae9e5;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#cac8bd;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#cac8bd;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #cac8bd;border-right:1px solid #cac8bd;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #eae9e5;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:8pt}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #cac8bd;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #eae9e5}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAIqnI+py+0Powq01haA3iDgLWwek2mhNi6ZwLLdZ4owcL4kJ5OWJfX+DykAADs=);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAImnI+py+0Powq01haA3iBgvnlMBnafgKLmWK4LCYpvK0+WJeX6DhUAOw==);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPXMWPK9N/fipOzLbPrVaP/89frqwv3tuvvprfLES+7PdP7xyP7z0vPAQfvtyMuaIv/32/735OSqFv3de+7ReP7lmf7gh/nv0v/67unFXfb29vK/PenFSaGEPfLnyv///yH5BAEAAB8ALAAAAAASABIAAAWS4Cc+ZGk+YvqZRVtgGiag6sNBThlFWnTQqQcE4sqRFj/VashsYR6HZI0JWSAjDwQCOGIgERULg/EQzJRQsGVCYHTK51qYTQDkFPj4iA4AJHIUgQoGQA8EdX4NhHgKAxeFfQkJGwGLeI6Fkg2UlQ8Dn5hBCZuchKChIxKkGw05Ga8DHlwkqg2tJ1xBtDlKvTUkviEAOw==)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPvjpP/24fPHVvnUdvzotdSiKv/23vvrw/LCS/C+RfnelvPMaf/88/nbi/rsyerYq/TLYv7y1v7wzeCsLO+8P86dJfvv0MuaIsydKPPOc+SqGKGEPe/AS+zVneWwLf///yH5BAEAAB8ALAAAAAASABIAAAWZ4CdeZGleYvpdA+O+zNUBqHoZOB4EceHUqVtuF+n9VCtdQCI5BC6FA3BkCEQkBALAACVMV9eDVhGJQGnIixigaAwiG6jie2G7BxDLpVJozG13EAICPxUeGRleQQMLgggJUhiHC3pBggKPFJETGZRAF5gJCRSaFxgTC55BCByioz+nEKojGgmtHBwPJAUCELo2J8FfSMTFxsUhADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQVAPv7+2RkZPf39/r6+vj4+Pn5+fT09Pb29vX19fHx8fDw8Onp6fLy8u7u7uzs7PPz8+vr6+rq6uXl5ejo6O/v7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABUALAAAAAASABIAAAV4YCWOZGkGaKqaVSAMQCwLQnAOj6ErzUTXpQDgQDgcGJTFDzgSEp4HRCKytDUBMKzAoIAsJACrSCjTGhINR5hELg8ECEZifS3HCgQEgj62xwZPAnwtbgMDBQU0g21Yh4iIi3aGkzBihH52lgEEmDIEli0qoigspSYhADs=)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Verdana;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Verdana;border-radius:6px;border:1px solid #cac8bd;background:#fcfaf3}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #cac8bd;height:25px;line-height:25px;display:inline-block;margin:0 5px;border-radius:4px;background:#e0ded7}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #cac8bd}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:11px;color:#3f3f3f;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#a7d991}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#e1ffd4;border:1px solid #7fbc64;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px;font-size:10px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:6.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffb96d}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffb96d}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #a7d991}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffdeba}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffdeba;border-color:#ffb96d}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 6px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffb96d;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 6px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffb96d;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 4px 6px;border-color:#ffb96d;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 6px 0 4px;border-color:#ffb96d;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAACCAYAAACUn8ZgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTgyOEUzQzJDODQ3MTFFMjg3NDRCMUFBMTM1M0U1OTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTgyOEUzQzNDODQ3MTFFMjg3NDRCMUFBMTM1M0U1OTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5ODI4RTNDMEM4NDcxMUUyODc0NEIxQUExMzUzRTU5NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5ODI4RTNDMUM4NDcxMUUyODc0NEIxQUExMzUzRTU5NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pj3qIQcAAAAaSURBVHjaYvz//z8DLsAEIhoaGv5jowECDAASbgp+4xzYLgAAAABJRU5ErkJggg==);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAJCAYAAAAGuM1UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0JCMkQyRDhDOTFDMTFFMjg3RTFCNUEzNUQwRDMxNjEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0JCMkQyRDlDOTFDMTFFMjg3RTFCNUEzNUQwRDMxNjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQkIyRDJENkM5MUMxMUUyODdFMUI1QTM1RDBEMzE2MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQkIyRDJEN0M5MUMxMUUyODdFMUI1QTM1RDBEMzE2MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ppy3ICwAAADsSURBVHjafFBbaoNQEB1vghtIPlJX4Z/iX/cSsoZQGl80JZvIAvxVf1yNX6EFH+ADK8Y6nblQaGzagXNnmHPODHMVRIR5+L7/Sqm2bfv0i2TDT3ied4zjGBlU7+f8XPzCwrZtsSzLb9PTXQMRfhRFWFUVdl0nURQFco+45xsDNdwwDOVUNuR5LlHXNWZZhsyR5sDahRDC1XXdsSwLFCHgo+/hc5okhusVVFUFTdNgHMfHIAhQ0N2OaZowkbtpGhiG4Qa0RX6OYRicvCU9b2maPqzWa/grKtpE93D5zoZtkiRnyhv4Py6E3ZcAAwDb89Sl5rtPtAAAAABJRU5ErkJggg==);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffb96d;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected,.gantt_task_row.gantt_selected{background-color:#ffebbc!important}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffdc89}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #a7d991}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #9ab9f1}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#db7dc5;border:0 solid #cd49ae;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background:#f4f2ea;border-radius:6px;font-family:Verdana;border:1px solid #cac8bd;color:#3f3f3f;font-size:8pt;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Verdana;border:1px solid #cac8bd;font-size:11px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Verdana;font-size:11px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cac8bd;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #cac8bd;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#cac8bd;border-style:solid;height:27px;color:#4f4f4f;background:#e0ded7;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:17px;line-height:17px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUUzMDA3NzlDOTFEMTFFMkJBQTNFMTU1NTdFNUNFMTMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUUzMDA3N0FDOTFEMTFFMkJBQTNFMTU1NTdFNUNFMTMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBRTMwMDc3N0M5MUQxMUUyQkFBM0UxNTU1N0U1Q0UxMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBRTMwMDc3OEM5MUQxMUUyQkFBM0UxNTU1N0U1Q0UxMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtHrmoUAAAF4SURBVHjaYvr//z8DNTATA5UA1QxiIUdTQEAAG5CaA8S6QGyyYcOGvyzkGMLIyLgSGC4BHBwcr1RUVBhJdhHQEGagIctAhjAzM/9OSkrqd3Nz+ws3CKjAA0hNA+JcoDO34jIESC0FGhIM4tvb2y8FGjIbyPwPD2wNDQ1RIKUItG09UIM3LkOAOBzEB3rnaF5eXieQ+RYl1jo6Og4oKCicAtrGCjXMA82Q+TBD+Pj4HtfU1NQDmTewRf/jjIyMNmDgfYAatgnJMFDsxIIYrKysX7Ozs9sFBAT240xHQO/t8PT0BGliQHLZdiA3AabGz89vlrm5+RIg8x++BPkzPj5+Msj/UMM4gBTciwYGBttiY2MnAJmfiUnZj4CB2MzFxfUGWVBcXPx6WVlZE0ie6CwiJye3D+il6UCvgZ0PCreCggKQ4adIzWu/w8LCpoO8wsLC8j0yMnKipqbmelh6wQUYQUUADmACxDpADArwl4RSPT6DBqYYAQgwANyusz7jloxAAAAAAElFTkSuQmCC);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjQxN0VEOUZDOTFEMTFFMkFFMjE4MDI4MUJDNDQ1NDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjQxN0VEQTBDOTFEMTFFMkFFMjE4MDI4MUJDNDQ1NDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNDE3RUQ5REM5MUQxMUUyQUUyMTgwMjgxQkM0NDU0OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNDE3RUQ5RUM5MUQxMUUyQUUyMTgwMjgxQkM0NDU0OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pq9E2PUAAAH/SURBVHjaYvz//z8DNQAjTQ0KCAjgAVJFQOwBxGZQ4VNAvAOI+zZs2PCFoEFAQ+wZGRkXAMUVsNrMyPgAKJcANOwgToOAhgQCqXUgtqCg4ANXV9ctzs7Od0D8vXv3quzYsSPw06dP0lDl/kDDNmEYBDRECGjbYyCfS09Pb0dNTc1sNja2M0CpF1C1EjExMfu/fPmiBHXZZ5CrgYa9A/FZYCaysLCU/vnzh0tUVPRGU1NTPVDoNBD/R3ItyKVKAgICj/79+8cIdJksSA9QrBIkz4RkUBCINjU1XQUNWGRDQC4zBhrycMGCBYW2trbLkPWgGPTz50+wk6WlpTegBT6yIaCYXMfJybkRJPf7928ZDIOYmZl/g+jjx4+/xmcISPz27dsfYNowDOLi4gIb8PDhQ1N8hkDVGIBobm7ulxgGAb0EClyGX79+leAzBCjH9vXr13pkPSgGhYeHTwd6DxhUP62ghjzCZggw2icCw0YdGNDfQXrgkQVjGBgYHPHx8Zm9cePGHGhA/gdq/ANkysGUAHELMO3ogji+vr6zQXpwZREFkEErV66M//btmwi2LAIMyzdAlyz09/efDAoufJlW8tWrVx7Tp08PevDggc779+8VYFlGQUHhSmZm5joxMTFQ5n1OTDHCCsT6QAxKJ2JQsVdA/ASIL4J8TrPyCCDAAK8E80CvM3cMAAAAAElFTkSuQmCC);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjkzQUQ0MjVDOTFEMTFFMkEwRERFNzQ5NzZCRjlBODgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjkzQUQ0MjZDOTFEMTFFMkEwRERFNzQ5NzZCRjlBODgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCOTNBRDQyM0M5MUQxMUUyQTBEREU3NDk3NkJGOUE4OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCOTNBRDQyNEM5MUQxMUUyQTBEREU3NDk3NkJGOUE4OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pmbo+yIAAAB9SURBVHjaYvz//z8DNQALPsmAgAC4LRs2bGDEaxLIRdiwv78/kPqfBsNQPk71jDCvIdtOLEB2JRMDlQAjUmCnkaF/FtYwgoUDsTQypprXRg0a0QYhp2yGpqamzefOnfMhpMnIyGhLXV2dL06DgMAYigmBs1CM0yCyAUCAAQAlK4lJjSOjGQAAAABJRU5ErkJggg==);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Verdana;font-size:11px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cac8bd}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #eae9e5}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:11px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #cac8bd}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #cac8bd}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#e0ded7}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #cac8bd;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fcfaf3;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#3f3f3f;background-color:#f4f2ea;border-bottom:1px solid #cac8bd}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:11px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#3f3f3f;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:3.5px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFDgcMloNXJQAAAFNJREFUOMvt0zEOACAIA0Dkg30rL8TJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAT/KLVk9yshBAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjkzQUQ0MjVDOTFEMTFFMkEwRERFNzQ5NzZCRjlBODgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjkzQUQ0MjZDOTFEMTFFMkEwRERFNzQ5NzZCRjlBODgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCOTNBRDQyM0M5MUQxMUUyQTBEREU3NDk3NkJGOUE4OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCOTNBRDQyNEM5MUQxMUUyQTBEREU3NDk3NkJGOUE4OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pmbo+yIAAAB9SURBVHjaYvz//z8DNQALPsmAgAC4LRs2bGDEaxLIRdiwv78/kPqfBsNQPk71jDCvIdtOLEB2JRMDlQAjUmCnkaF/FtYwgoUDsTQypprXRg0a0QYhp2yGpqamzefOnfMhpMnIyGhLXV2dL06DgMAYigmBs1CM0yCyAUCAAQAlK4lJjSOjGQAAAABJRU5ErkJggg==)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;color:#4f4f4f;background:#e0ded7;margin:5px 9px 8px 0;min-width:60px;line-height:27px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #cac8bd}.gantt_cal_qi_controls div{float:left;height:27px;text-align:center;line-height:27px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Verdana;font-size:8pt;color:#3f3f3f;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Verdana;font-size:11px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d3d1c8;border-top:1px solid #d3d1c8}.gantt_drag_marker .gantt_cell{border-color:#d3d1c8}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#fff}.dhtmlx_popup_button.dhtmlx_delete_button{border:1px solid #98d27e;background:#a7d991} \ No newline at end of file +.chartHeaderBg{background-color:#f4f2ea}.gridHoverStyle{background-color:#ffebbc!important}.gantt_grid_scale .gantt_grid_head_cell{border-top:none!important;border-right:none!important}.gantt_grid_data .gantt_cell{border-right:none}.gridSelection,.timelineSelection{background-color:#ffebbc!important}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.gantt_task .gantt_task_scale .gantt_scale_cell{border-right:1px solid #cac8bd}.gantt_row.gantt_project .gantt_cell,.gantt_row.odd.gantt_project .gantt_cell{background-color:#edf4ff}.gantt_task_row.gantt_project .gantt_task_cell,.gantt_task_row.odd.gantt_project .gantt_task_cell{background-color:#f5f8ff}.gantt_task_line.gantt_project{background-color:#c7d8f7;border:1px solid #7ba3ed}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#9ab9f1}.gantt_cal_light .gantt_cal_ltitle{padding:7px 10px}.gantt_cal_light .gantt_cal_ltext textarea{border:1px solid #d8d6ce}.gantt_cal_light .gantt_cal_larea{border-color:#d8d6ce!important;background-color:#fcfaf3}.gantt_cal_light .gantt_cal_larea .gantt_section_time{background-color:#fcfaf3}.buttonBg{background:#e0ded7}.gantt_cal_light .gantt_btn_set{height:27px;margin:5px 10px;padding:0 15px 0 10px}.gantt_cal_light .gantt_btn_set div{height:25px;margin-top:0;background-position:center center;line-height:25px}.gantt_btn_set.gantt_save_btn_set{border:1px solid #98d27e;background:#a7d991}.gantt_btn_set.gantt_cancel_btn_set{background:#e0ded7;border:1px solid #cac8bd}.gantt_btn_set.gantt_delete_btn_set{border:1px solid #ffad54;background:#ffb96d}.gantt_cal_light_wide{padding:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.gantt_cal_light_wide .gantt_cal_larea .gantt_cal_lsection{width:90px}.gantt_cal_light_wide .gantt_btn_set{margin:7px 10px}.dhtmlx_popup_button.dhtmlx_ok_button{border:1px solid #98d27e;background:#a7d991}.gantt_data_area .gantt_cal_quick_info{background-color:#f4f2ea}.gantt_data_area .gantt_cal_qi_content{background:#fcfaf3;border-bottom:1px solid #cac8bd}.gantt_qi_big_icon.icon_delete{border-color:#ffad54;background:#ffb96d}.gantt_container{font-family:Verdana;font-size:11px;border:1px solid #cac8bd;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #cac8bd}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#3f3f3f;font-size:8pt;border-bottom:1px solid #cac8bd;background-color:#f4f2ea}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #cac8bd}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #cac8bd;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDAzOTZDREFDN0FGMTFFMkE1MDhCNkFCRDk3RkY4NTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDAzOTZDREJDN0FGMTFFMkE1MDhCNkFCRDk3RkY4NTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDM5NkNEOEM3QUYxMUUyQTUwOEI2QUJEOTdGRjg1OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDM5NkNEOUM3QUYxMUUyQTUwOEI2QUJEOTdGRjg1OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnzqpNoAAAEFSURBVHjapJPPDsFAEMbHZqXSi1ZC3Dg7O9bbeA7v4czZE4hLSRwkbiI4cCAN4Uyqs/pPs1vbrTDJHL7Mb77sbr8WeuMu/FOEMQaStplYdgYHFBnKjK1atZqI8+ViZZ2AMmS5x1QxFNHLNVAx1EPMNVAxBBFtvxnfuq4LUKDTTLwXXsFqNprKE1RMM2y+9oe9FV3Bw5++/3svfMRWpS0MV7fFx0Ka2e62kQEhBEbzoTA0DAPqtXqinbMD643IFGkR3KcL1Cib0yA4/DBY4A2u15ug45oFHD05x44sO+kc+FwhI0j4RZBQlUT5kH+0JS4VBpKfqaSVYDDpJ1rz9eNxlxq8BBgAcMHBu6BPeX8AAAAASUVORK5CYII=);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#ffebbc!important}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #eae9e5;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#cac8bd;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#cac8bd;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #cac8bd;border-right:1px solid #cac8bd;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #eae9e5;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:8pt}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #cac8bd;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #eae9e5}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAIqnI+py+0Powq01haA3iDgLWwek2mhNi6ZwLLdZ4owcL4kJ5OWJfX+DykAADs=);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAImnI+py+0Powq01haA3iBgvnlMBnafgKLmWK4LCYpvK0+WJeX6DhUAOw==);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPXMWPK9N/fipOzLbPrVaP/89frqwv3tuvvprfLES+7PdP7xyP7z0vPAQfvtyMuaIv/32/735OSqFv3de+7ReP7lmf7gh/nv0v/67unFXfb29vK/PenFSaGEPfLnyv///yH5BAEAAB8ALAAAAAASABIAAAWS4Cc+ZGk+YvqZRVtgGiag6sNBThlFWnTQqQcE4sqRFj/VashsYR6HZI0JWSAjDwQCOGIgERULg/EQzJRQsGVCYHTK51qYTQDkFPj4iA4AJHIUgQoGQA8EdX4NhHgKAxeFfQkJGwGLeI6Fkg2UlQ8Dn5hBCZuchKChIxKkGw05Ga8DHlwkqg2tJ1xBtDlKvTUkviEAOw==)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPvjpP/24fPHVvnUdvzotdSiKv/23vvrw/LCS/C+RfnelvPMaf/88/nbi/rsyerYq/TLYv7y1v7wzeCsLO+8P86dJfvv0MuaIsydKPPOc+SqGKGEPe/AS+zVneWwLf///yH5BAEAAB8ALAAAAAASABIAAAWZ4CdeZGleYvpdA+O+zNUBqHoZOB4EceHUqVtuF+n9VCtdQCI5BC6FA3BkCEQkBALAACVMV9eDVhGJQGnIixigaAwiG6jie2G7BxDLpVJozG13EAICPxUeGRleQQMLgggJUhiHC3pBggKPFJETGZRAF5gJCRSaFxgTC55BCByioz+nEKojGgmtHBwPJAUCELo2J8FfSMTFxsUhADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQVAPv7+2RkZPf39/r6+vj4+Pn5+fT09Pb29vX19fHx8fDw8Onp6fLy8u7u7uzs7PPz8+vr6+rq6uXl5ejo6O/v7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABUALAAAAAASABIAAAV4YCWOZGkGaKqaVSAMQCwLQnAOj6ErzUTXpQDgQDgcGJTFDzgSEp4HRCKytDUBMKzAoIAsJACrSCjTGhINR5hELg8ECEZifS3HCgQEgj62xwZPAnwtbgMDBQU0g21Yh4iIi3aGkzBihH52lgEEmDIEli0qoigspSYhADs=)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Verdana;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Verdana;border-radius:6px;border:1px solid #cac8bd;background:#fcfaf3}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #cac8bd;height:25px;line-height:25px;display:inline-block;margin:0 5px;border-radius:4px;background:#e0ded7}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #cac8bd}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:11px;color:#3f3f3f;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#a7d991}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#e1ffd4;border:1px solid #7fbc64;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_touch_move,.gantt_touch_progress .gantt_touch_resize{-moz-transform:scale(1.02,1.1);-o-transform:scale(1.02,1.1);-webkit-transform:scale(1.02,1.1);transform:scale(1.02,1.1);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_touch_progress .gantt_task_progress_drag,.gantt_touch_resize .gantt_task_drag{-moz-transform:scaleY(1.3);-o-transform:scaleY(1.3);-webkit-transform:scaleY(1.3);transform:scaleY(1.3);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px;font-size:10px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:6.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffb96d}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffb96d}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #a7d991}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffdeba}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffdeba;border-color:#ffb96d}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 6px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffb96d;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 6px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffb96d;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 4px 6px;border-color:#ffb96d;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 6px 0 4px;border-color:#ffb96d;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAACCAYAAACUn8ZgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTgyOEUzQzJDODQ3MTFFMjg3NDRCMUFBMTM1M0U1OTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTgyOEUzQzNDODQ3MTFFMjg3NDRCMUFBMTM1M0U1OTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5ODI4RTNDMEM4NDcxMUUyODc0NEIxQUExMzUzRTU5NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5ODI4RTNDMUM4NDcxMUUyODc0NEIxQUExMzUzRTU5NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pj3qIQcAAAAaSURBVHjaYvz//z8DLsAEIhoaGv5jowECDAASbgp+4xzYLgAAAABJRU5ErkJggg==);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAJCAYAAAAGuM1UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0JCMkQyRDhDOTFDMTFFMjg3RTFCNUEzNUQwRDMxNjEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0JCMkQyRDlDOTFDMTFFMjg3RTFCNUEzNUQwRDMxNjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQkIyRDJENkM5MUMxMUUyODdFMUI1QTM1RDBEMzE2MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQkIyRDJEN0M5MUMxMUUyODdFMUI1QTM1RDBEMzE2MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ppy3ICwAAADsSURBVHjafFBbaoNQEB1vghtIPlJX4Z/iX/cSsoZQGl80JZvIAvxVf1yNX6EFH+ADK8Y6nblQaGzagXNnmHPODHMVRIR5+L7/Sqm2bfv0i2TDT3ied4zjGBlU7+f8XPzCwrZtsSzLb9PTXQMRfhRFWFUVdl0nURQFco+45xsDNdwwDOVUNuR5LlHXNWZZhsyR5sDahRDC1XXdsSwLFCHgo+/hc5okhusVVFUFTdNgHMfHIAhQ0N2OaZowkbtpGhiG4Qa0RX6OYRicvCU9b2maPqzWa/grKtpE93D5zoZtkiRnyhv4Py6E3ZcAAwDb89Sl5rtPtAAAAABJRU5ErkJggg==);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffb96d;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected,.gantt_task_row.gantt_selected{background-color:#ffebbc!important}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffdc89}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #a7d991}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #9ab9f1}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#db7dc5;border:0 solid #cd49ae;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background:#f4f2ea;border-radius:6px;font-family:Verdana;border:1px solid #cac8bd;color:#3f3f3f;font-size:8pt;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Verdana;border:1px solid #cac8bd;font-size:11px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Verdana;font-size:11px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cac8bd;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #cac8bd;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#cac8bd;border-style:solid;height:27px;color:#4f4f4f;background:#e0ded7;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:17px;line-height:17px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUUzMDA3NzlDOTFEMTFFMkJBQTNFMTU1NTdFNUNFMTMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUUzMDA3N0FDOTFEMTFFMkJBQTNFMTU1NTdFNUNFMTMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBRTMwMDc3N0M5MUQxMUUyQkFBM0UxNTU1N0U1Q0UxMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBRTMwMDc3OEM5MUQxMUUyQkFBM0UxNTU1N0U1Q0UxMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtHrmoUAAAF4SURBVHjaYvr//z8DNTATA5UA1QxiIUdTQEAAG5CaA8S6QGyyYcOGvyzkGMLIyLgSGC4BHBwcr1RUVBhJdhHQEGagIctAhjAzM/9OSkrqd3Nz+ws3CKjAA0hNA+JcoDO34jIESC0FGhIM4tvb2y8FGjIbyPwPD2wNDQ1RIKUItG09UIM3LkOAOBzEB3rnaF5eXieQ+RYl1jo6Og4oKCicAtrGCjXMA82Q+TBD+Pj4HtfU1NQDmTewRf/jjIyMNmDgfYAatgnJMFDsxIIYrKysX7Ozs9sFBAT240xHQO/t8PT0BGliQHLZdiA3AabGz89vlrm5+RIg8x++BPkzPj5+Msj/UMM4gBTciwYGBttiY2MnAJmfiUnZj4CB2MzFxfUGWVBcXPx6WVlZE0ie6CwiJye3D+il6UCvgZ0PCreCggKQ4adIzWu/w8LCpoO8wsLC8j0yMnKipqbmelh6wQUYQUUADmACxDpADArwl4RSPT6DBqYYAQgwANyusz7jloxAAAAAAElFTkSuQmCC);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjQxN0VEOUZDOTFEMTFFMkFFMjE4MDI4MUJDNDQ1NDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjQxN0VEQTBDOTFEMTFFMkFFMjE4MDI4MUJDNDQ1NDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNDE3RUQ5REM5MUQxMUUyQUUyMTgwMjgxQkM0NDU0OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNDE3RUQ5RUM5MUQxMUUyQUUyMTgwMjgxQkM0NDU0OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pq9E2PUAAAH/SURBVHjaYvz//z8DNQAjTQ0KCAjgAVJFQOwBxGZQ4VNAvAOI+zZs2PCFoEFAQ+wZGRkXAMUVsNrMyPgAKJcANOwgToOAhgQCqXUgtqCg4ANXV9ctzs7Od0D8vXv3quzYsSPw06dP0lDl/kDDNmEYBDRECGjbYyCfS09Pb0dNTc1sNja2M0CpF1C1EjExMfu/fPmiBHXZZ5CrgYa9A/FZYCaysLCU/vnzh0tUVPRGU1NTPVDoNBD/R3ItyKVKAgICj/79+8cIdJksSA9QrBIkz4RkUBCINjU1XQUNWGRDQC4zBhrycMGCBYW2trbLkPWgGPTz50+wk6WlpTegBT6yIaCYXMfJybkRJPf7928ZDIOYmZl/g+jjx4+/xmcISPz27dsfYNowDOLi4gIb8PDhQ1N8hkDVGIBobm7ulxgGAb0EClyGX79+leAzBCjH9vXr13pkPSgGhYeHTwd6DxhUP62ghjzCZggw2icCw0YdGNDfQXrgkQVjGBgYHPHx8Zm9cePGHGhA/gdq/ANkysGUAHELMO3ogji+vr6zQXpwZREFkEErV66M//btmwi2LAIMyzdAlyz09/efDAoufJlW8tWrVx7Tp08PevDggc779+8VYFlGQUHhSmZm5joxMTFQ5n1OTDHCCsT6QAxKJ2JQsVdA/ASIL4J8TrPyCCDAAK8E80CvM3cMAAAAAElFTkSuQmCC);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjkzQUQ0MjVDOTFEMTFFMkEwRERFNzQ5NzZCRjlBODgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjkzQUQ0MjZDOTFEMTFFMkEwRERFNzQ5NzZCRjlBODgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCOTNBRDQyM0M5MUQxMUUyQTBEREU3NDk3NkJGOUE4OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCOTNBRDQyNEM5MUQxMUUyQTBEREU3NDk3NkJGOUE4OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pmbo+yIAAAB9SURBVHjaYvz//z8DNQALPsmAgAC4LRs2bGDEaxLIRdiwv78/kPqfBsNQPk71jDCvIdtOLEB2JRMDlQAjUmCnkaF/FtYwgoUDsTQypprXRg0a0QYhp2yGpqamzefOnfMhpMnIyGhLXV2dL06DgMAYigmBs1CM0yCyAUCAAQAlK4lJjSOjGQAAAABJRU5ErkJggg==);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Verdana;font-size:11px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cac8bd}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #eae9e5}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:11px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #cac8bd}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #cac8bd}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#e0ded7}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #cac8bd;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fcfaf3;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#3f3f3f;background-color:#f4f2ea;border-bottom:1px solid #cac8bd}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:11px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#3f3f3f;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:3.5px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFDgcMloNXJQAAAFNJREFUOMvt0zEOACAIA0Dkg30rL8TJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAT/KLVk9yshBAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjkzQUQ0MjVDOTFEMTFFMkEwRERFNzQ5NzZCRjlBODgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjkzQUQ0MjZDOTFEMTFFMkEwRERFNzQ5NzZCRjlBODgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCOTNBRDQyM0M5MUQxMUUyQTBEREU3NDk3NkJGOUE4OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCOTNBRDQyNEM5MUQxMUUyQTBEREU3NDk3NkJGOUE4OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pmbo+yIAAAB9SURBVHjaYvz//z8DNQALPsmAgAC4LRs2bGDEaxLIRdiwv78/kPqfBsNQPk71jDCvIdtOLEB2JRMDlQAjUmCnkaF/FtYwgoUDsTQypprXRg0a0QYhp2yGpqamzefOnfMhpMnIyGhLXV2dL06DgMAYigmBs1CM0yCyAUCAAQAlK4lJjSOjGQAAAABJRU5ErkJggg==)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;color:#4f4f4f;background:#e0ded7;margin:5px 9px 8px 0;min-width:60px;line-height:27px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #cac8bd}.gantt_cal_qi_controls div{float:left;height:27px;text-align:center;line-height:27px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Verdana;font-size:8pt;color:#3f3f3f;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Verdana;font-size:11px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d3d1c8;border-top:1px solid #d3d1c8}.gantt_drag_marker .gantt_cell{border-color:#d3d1c8}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#fff}.dhtmlx_popup_button.dhtmlx_delete_button{border:1px solid #98d27e;background:#a7d991} \ No newline at end of file diff --git a/codebase/skins/dhtmlxgantt_skyblue.css b/codebase/skins/dhtmlxgantt_skyblue.css index f840f6ac..f44d8353 100644 --- a/codebase/skins/dhtmlxgantt_skyblue.css +++ b/codebase/skins/dhtmlxgantt_skyblue.css @@ -1,9 +1,9 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -.gridHoverStyle{background-color:#ffe6b1!important;background-image:-webkit-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-moz-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-ms-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:linear-gradient(to top,#ffe09d 0,#ffeabb 100%);border-top-color:#ffc341;border-bottom-color:#ffc341}.gridSelection{background-color:#ffe6b1!important;border-bottom-color:#ffc341}.timelineSelection{background-color:#ffe6b1!important;background-image:-webkit-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-moz-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-ms-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:linear-gradient(to top,#ffe09d 0,#ffeabb 100%);border-top-color:#ffc341;border-bottom-color:#ffc341}.timelineSelection .gantt_task_cell{border-right-color:#ffce65}.gantt_cal_quick_info .gantt_cal_qi_title{background:#fff}.gantt_cal_qi_controls .gantt_qi_big_icon .gantt_menu_icon.icon_delete{margin-top:5px}.gantt_container{font-family:Tahoma;font-size:11px;border:1px solid #a4bed4;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #a4bed4}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#42464b;border-bottom:1px solid #a4bed4;box-shadow:0 1px 1px #fff inset;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#e4f0ff),color-stop(50%,#dfedff),color-stop(100%,#d5e8ff)) repeat-x 0 1px;background-image:-webkit-linear-gradient(top,#e4f0ff 0,#dfedff 50%,#d5e8ff 100%);background-image:-moz-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);background-image:-ms-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);background-image:-o-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%)}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #a4bed4}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #a4bed4;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzZCMThBRUFCRTQ0MTFFMkFFMEFGMEFBMzJEN0RBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzZCMThBRUJCRTQ0MTFFMkFFMEFGMEFBMzJEN0RBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NkIxOEFFOEJFNDQxMUUyQUUwQUYwQUEzMkQ3REFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NkIxOEFFOUJFNDQxMUUyQUUwQUYwQUEzMkQ3REFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkVHygEAAAEpSURBVHjaYgzeGcyABfxnwA4Y0QVY/v79i1VlsUMxCr/3QC9WdTgN+P//P8Ohr4fAbDtuOwZc6lj+/PmDVeLfv39wTSA2LnU4DQC5AGYAiI1LHRNQ4j861pfSZ3j36x1YEwiD2CAxbGoZbRbZ/K/3qUcx9cPvDwzXv11n+PL3C5jPw8zDoMmlySDAKoCirnFLI8QLID/ufLOTARf48OcDw/Gfx1HE3EXcwa5j+f37N95AwgVAekB64QaATISB97/fM1z5dIXh85/PYD4vCy+DDp8OgyCrIIYBjFoTtDBSnYWyBYO9rj3DsbfHwHwrYSuGg5cPMpy4ewIzFoCmMKLjwzcOMwiwCMBjAcQGiWFTizchweRompDwuiBANoCgCxjFasQoys4AAQYARt4I/K036xQAAAAASUVORK5CYII=);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#ffe6b1!important;background-image:-webkit-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-moz-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-ms-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:linear-gradient(to top,#ffe09d 0,#ffeabb 100%);border-top-color:#ffc341;border-bottom-color:#ffc341}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#a4bed4;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#a4bed4;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #a4bed4;border-right:1px solid #a4bed4;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #a4bed4;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAIqnI+py+0Powq01haA3iDgLWwek2mhNi6ZwLLdZ4owcL4kJ5OWJfX+DykAADs=);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAImnI+py+0Powq01haA3iBgvnlMBnafgKLmWK4LCYpvK0+WJeX6DhUAOw==);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPXMWPK9N/fipOzLbPrVaP/89frqwv3tuvvprfLES+7PdP7xyP7z0vPAQfvtyMuaIv/32/735OSqFv3de+7ReP7lmf7gh/nv0v/67unFXfb29vK/PenFSaGEPfLnyv///yH5BAEAAB8ALAAAAAASABIAAAWS4Cc+ZGk+YvqZRVtgGiag6sNBThlFWnTQqQcE4sqRFj/VashsYR6HZI0JWSAjDwQCOGIgERULg/EQzJRQsGVCYHTK51qYTQDkFPj4iA4AJHIUgQoGQA8EdX4NhHgKAxeFfQkJGwGLeI6Fkg2UlQ8Dn5hBCZuchKChIxKkGw05Ga8DHlwkqg2tJ1xBtDlKvTUkviEAOw==)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPvjpP/24fPHVvnUdvzotdSiKv/23vvrw/LCS/C+RfnelvPMaf/88/nbi/rsyerYq/TLYv7y1v7wzeCsLO+8P86dJfvv0MuaIsydKPPOc+SqGKGEPe/AS+zVneWwLf///yH5BAEAAB8ALAAAAAASABIAAAWZ4CdeZGleYvpdA+O+zNUBqHoZOB4EceHUqVtuF+n9VCtdQCI5BC6FA3BkCEQkBALAACVMV9eDVhGJQGnIixigaAwiG6jie2G7BxDLpVJozG13EAICPxUeGRleQQMLgggJUhiHC3pBggKPFJETGZRAF5gJCRSaFxgTC55BCByioz+nEKojGgmtHBwPJAUCELo2J8FfSMTFxsUhADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQVAPv7+2RkZPf39/r6+vj4+Pn5+fT09Pb29vX19fHx8fDw8Onp6fLy8u7u7uzs7PPz8+vr6+rq6uXl5ejo6O/v7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABUALAAAAAASABIAAAV4YCWOZGkGaKqaVSAMQCwLQnAOj6ErzUTXpQDgQDgcGJTFDzgSEp4HRCKytDUBMKzAoIAsJACrSCjTGhINR5hELg8ECEZifS3HCgQEgj62xwZPAnwtbgMDBQU0g21Yh4iIi3aGkzBihH52lgEEmDIEli0qoigspSYhADs=)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Tahoma;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Tahoma;border-radius:0;border:1px solid #a4bed4;background:#fff}.dhtmlx_popup_title{border-top-left-radius:0;border-top-right-radius:0;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #a4bed4;height:24px;line-height:24px;display:inline-block;margin:0 5px;border-radius:4px;background-color:#f8f8f8;background-image:-webkit-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-moz-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-ms-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:linear-gradient(to top,#e6e6e6 0,#fff 100%)}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:15px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:0}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #a4bed4}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:12px;color:#1e2022;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#82b7de;background-image:-webkit-linear-gradient(top,#abcee8 0,#5aa0d3 36%,#bfdaee 100%);background-image:-moz-linear-gradient(top,#abcee8 0,#5aa0d3 36%,#bfdaee 100%);background-image:-ms-linear-gradient(top,#abcee8 0,#5aa0d3 36%,#bfdaee 100%);background-image:linear-gradient(to top,#abcee8 0,#5aa0d3 36%,#bfdaee 100%)}.gantt_task_line{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#eff6fb;border:1px solid #3588c5;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:6.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#4a8f43}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #4a8f43}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #0070fe}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #6eb867}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#6eb867;border-color:#4a8f43}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 8px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#4a8f43;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 8px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#4a8f43;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 4px 8px;border-color:#4a8f43;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 8px 0 4px;border-color:#4a8f43;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAACCAYAAACUn8ZgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDEyNDQ5RDdCRTQ5MTFFMjhBQzlGRDA2RDIyNDc5NzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDEyNDQ5RDhCRTQ5MTFFMjhBQzlGRDA2RDIyNDc5NzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTI0NDlENUJFNDkxMUUyOEFDOUZEMDZEMjI0Nzk3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMTI0NDlENkJFNDkxMUUyOEFDOUZEMDZEMjI0Nzk3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv8NECcAAAAaSURBVHjaYvz//z8DLsAEIsw6j/3HRgMEGAARnwqNiuFmdQAAAABJRU5ErkJggg==);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDNGNzQ1MTZCQkRBMTFFMjlBMjRBRkU0RkNCMTUzNkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDNGNzQ1MTdCQkRBMTFFMjlBMjRBRkU0RkNCMTUzNkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0M0Y3NDUxNEJCREExMUUyOUEyNEFGRTRGQ0IxNTM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0M0Y3NDUxNUJCREExMUUyOUEyNEFGRTRGQ0IxNTM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrBLI3EAAACISURBVHjafE07DkMhDAuftQdgYuCWbZ9a0WtwGJC4BgMbYmVGaZLpqWpryZFjOwrACSmlSLzCN1DwrLUik/TtM3yUUnDOiWMMZE3enTNF4gghRO89KKXkABGh9w6ttcPSHp1zsNaCvbcUjDHAHhVemg1rrVxprYWs2ZOMR84ZfoGfXuAP3gIMABorQUvC1invAAAAAElFTkSuQmCC);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #4a8f43;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected{background-color:#ffe6b1!important;border-bottom-color:#ffc341}.gantt_task_row.gantt_selected{background-color:#ffe6b1!important;background-image:-webkit-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-moz-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-ms-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:linear-gradient(to top,#ffe09d 0,#ffeabb 100%);border-top-color:#ffc341;border-bottom-color:#ffc341}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffce65}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #5aa0d3}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #9ab9f1}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#db7dc5;border:0 solid #cd49ae;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background-color:#eff6fb;border-radius:0;font-family:Tahoma;font-size:11px;border:1px solid #a4bed4;color:#42464b;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Tahoma;border:1px solid #a4bed4;font-size:11px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Tahoma;font-size:11px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #a4bed4;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #a4bed4;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:2px 25px 2px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:1px;border-color:#a4bed4;border-style:solid;height:26px;color:#42464b;background-color:#f8f8f8;background-image:-webkit-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-moz-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-ms-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:linear-gradient(to top,#e6e6e6 0,#fff 100%);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:20px;line-height:20px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkE5Nzc4RENDMzAzMTFFMjk4QjNBODhDMUM4QUUwNEQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkE5Nzc4RERDMzAzMTFFMjk4QjNBODhDMUM4QUUwNEQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQTk3NzhEQUMzMDMxMUUyOThCM0E4OEMxQzhBRTA0RCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQTk3NzhEQkMzMDMxMUUyOThCM0E4OEMxQzhBRTA0RCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr5Ot2UAAAFoSURBVHjapFO7SgNRED0rxkjEELbcQksLBUMg4EfkG7YV/AFTpBAUfNQisVDQD7CQlBaWwoZ8gNEiFttmg3GTfbF6JtzFTUJYyIHhDnfOnJm5Dy2OYywDjQJnF5ex/dXDweENNtaAzT/jur46IY1D4McHvv3J+nZ7BGNrG436sSaU3ucHqtUqzP1sVcflMizLEl8EwjBEFEXwomwC5DInEeDGaDSC62cTIJc5iUAQBGJukE1A8YkVNYLv++h232WMRUYOuakRlOLTwzU8z1tYPZ/Po1QqJR0kAgQDWTEjwLaIWq0GwzDmJtm2jVarNSvAeeQQXVe6ME1Tgs1mMyXA2GAwQKFQmH8G/X4fjuOgWCxKkP40yMnlcukO1MNgAivoui5B+tMgh3H1DuQa66fnaLfbGA6HMgY7oNGfNnL+v0RN/cbnl9f46qSBSqUiM9J4ZQSvVgl0Oh1pf2d3D4/3d5q27Hf+FWAAc90EKSR5k78AAAAASUVORK5CYII=);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzU4NTQ3NUZDMzAzMTFFMkE0MjRGNTQzQjE0MTNDQkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzU4NTQ3NjBDMzAzMTFFMkE0MjRGNTQzQjE0MTNDQkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNTg1NDc1REMzMDMxMUUyQTQyNEY1NDNCMTQxM0NCQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNTg1NDc1RUMzMDMxMUUyQTQyNEY1NDNCMTQxM0NCQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkVB3hoAAAEYSURBVHjapJM9CsJAEIUTFStbQRA8gKCNKSIIeohUVraC9oKiGBRsBDvBylbwEkJQCys9gJUgeIOAxDfwEpYNpsmDL7PZ+cn+TMwgCIw0yhgplZPH3bbVuRqYgiYogxe4ABc8wqD69RpbQR6MwQ04TDZoHc6LP/tvC2uw4Fi+Vgcmrct58W9iW4BaYAB80OGSQ8my7xz7jDsAT11Bn3alJYvUa1pp8VGBNu0uIVm2s9fiowJF8OWJ/0sWPRlX1At8eLqlhGRRhXEfvcCJtpeQLOpq8VGBLe04Ibmh+Ld6AY8HWOBVzUCVvio780z/LrxCtQ9EQ+5tBOZElRzeUmmqWCfKlyfAAkfw5vyb7xb9vlrATPs7/wQYAISgQGDaq6hUAAAAAElFTkSuQmCC);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTA3M0M1MzJDMzAzMTFFMkE5ODZDRjhENzQ2MUZFNzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTA3M0M1MzNDMzAzMTFFMkE5ODZDRjhENzQ2MUZFNzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMDczQzUzMEMzMDMxMUUyQTk4NkNGOEQ3NDYxRkU3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMDczQzUzMUMzMDMxMUUyQTk4NkNGOEQ3NDYxRkU3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pplu0sEAAAErSURBVHja3FOxboMwED0nIQNbJoaOZM0YyMhGqwz8BOQ3mm5I/AHwCayoGVlhZUSMHTIhsSCEhOtzawRIlZDY+qTTs893z6fzmVBKYQ12YhEEweB0HAf3tCxLUFUVXWSeiDGIzW/ynRE9HA7coihCBtd1AVn40TCO2X1ewbthGCBJEiiKAtvtFggh0HUdWJYFfd9zez6f3JckiS1EhEDmeZ623+9BlmWejCaAfWqahou0bQumab7MK9DP5zM9nU5c4Hg8ch4nF0XBOc9zuF6vg/pm3pw0TSdNDcPwp8QsG2LiOIY/BZagqqp1AmP8M4Gvuq5B1/XJqNq2zVnTNMBzjBsLEHxnHBrf91/Z/nPBpW+32+0hPuFODAt79wtbfiwQuLD4x6SCNfgWYAAfQYJFsOV+5AAAAABJRU5ErkJggg==);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Tahoma;font-size:11px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #a4bed4}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:11px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #a4bed4}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #a4bed4}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background-color:#f8f8f8;background-image:-webkit-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-moz-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-ms-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:linear-gradient(to top,#e6e6e6 0,#fff 100%)}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #a4bed4;border-radius:0;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:0;padding:5px 0 8px 12px;color:#1e2022;box-shadow:0 1px 1px #fff inset;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#e4f0ff),color-stop(50%,#dfedff),color-stop(100%,#d5e8ff)) repeat-x 0 1px;background-image:-webkit-linear-gradient(top,#e4f0ff 0,#dfedff 50%,#d5e8ff 100%);background-image:-moz-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);background-image:-ms-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);background-image:-o-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);border-bottom:1px solid #a4bed4}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:11px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#1e2022;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:0;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:3px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFDhEuX3ujFgAAAFNJREFUOMvt0zEOACAIA0DksTyqn8XJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+sNUIROnQoAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTA3M0M1MzJDMzAzMTFFMkE5ODZDRjhENzQ2MUZFNzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTA3M0M1MzNDMzAzMTFFMkE5ODZDRjhENzQ2MUZFNzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMDczQzUzMEMzMDMxMUUyQTk4NkNGOEQ3NDYxRkU3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMDczQzUzMUMzMDMxMUUyQTk4NkNGOEQ3NDYxRkU3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pplu0sEAAAErSURBVHja3FOxboMwED0nIQNbJoaOZM0YyMhGqwz8BOQ3mm5I/AHwCayoGVlhZUSMHTIhsSCEhOtzawRIlZDY+qTTs893z6fzmVBKYQ12YhEEweB0HAf3tCxLUFUVXWSeiDGIzW/ynRE9HA7coihCBtd1AVn40TCO2X1ewbthGCBJEiiKAtvtFggh0HUdWJYFfd9zez6f3JckiS1EhEDmeZ623+9BlmWejCaAfWqahou0bQumab7MK9DP5zM9nU5c4Hg8ch4nF0XBOc9zuF6vg/pm3pw0TSdNDcPwp8QsG2LiOIY/BZagqqp1AmP8M4Gvuq5B1/XJqNq2zVnTNMBzjBsLEHxnHBrf91/Z/nPBpW+32+0hPuFODAt79wtbfiwQuLD4x6SCNfgWYAAfQYJFsOV+5AAAAABJRU5ErkJggg==)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;color:#42464b;background-color:#f8f8f8;background-image:-webkit-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-moz-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-ms-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:linear-gradient(to top,#e6e6e6 0,#fff 100%);margin:5px 9px 8px 0;min-width:60px;line-height:26px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #a4bed4}.gantt_cal_qi_controls div{float:left;height:26px;text-align:center;line-height:26px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Tahoma;font-size:8pt;color:#1e2022;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Tahoma;font-size:11px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#e4f0ff} \ No newline at end of file +.gridHoverStyle{background-color:#ffe6b1!important;background-image:-webkit-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-moz-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-ms-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:linear-gradient(to top,#ffe09d 0,#ffeabb 100%);border-top-color:#ffc341;border-bottom-color:#ffc341}.gridSelection{background-color:#ffe6b1!important;border-bottom-color:#ffc341}.timelineSelection{background-color:#ffe6b1!important;background-image:-webkit-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-moz-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-ms-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:linear-gradient(to top,#ffe09d 0,#ffeabb 100%);border-top-color:#ffc341;border-bottom-color:#ffc341}.timelineSelection .gantt_task_cell{border-right-color:#ffce65}.gantt_cal_quick_info .gantt_cal_qi_title{background:#fff}.gantt_cal_qi_controls .gantt_qi_big_icon .gantt_menu_icon.icon_delete{margin-top:5px}.gantt_container{font-family:Tahoma;font-size:11px;border:1px solid #a4bed4;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #a4bed4}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#42464b;border-bottom:1px solid #a4bed4;box-shadow:0 1px 1px #fff inset;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#e4f0ff),color-stop(50%,#dfedff),color-stop(100%,#d5e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#e4f0ff 0,#dfedff 50%,#d5e8ff 100%);background-image:-moz-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);background-image:-ms-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);background-image:-o-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%)}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #a4bed4}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #a4bed4;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzZCMThBRUFCRTQ0MTFFMkFFMEFGMEFBMzJEN0RBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzZCMThBRUJCRTQ0MTFFMkFFMEFGMEFBMzJEN0RBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NkIxOEFFOEJFNDQxMUUyQUUwQUYwQUEzMkQ3REFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NkIxOEFFOUJFNDQxMUUyQUUwQUYwQUEzMkQ3REFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkVHygEAAAEpSURBVHjaYgzeGcyABfxnwA4Y0QVY/v79i1VlsUMxCr/3QC9WdTgN+P//P8Ohr4fAbDtuOwZc6lj+/PmDVeLfv39wTSA2LnU4DQC5AGYAiI1LHRNQ4j861pfSZ3j36x1YEwiD2CAxbGoZbRbZ/K/3qUcx9cPvDwzXv11n+PL3C5jPw8zDoMmlySDAKoCirnFLI8QLID/ufLOTARf48OcDw/Gfx1HE3EXcwa5j+f37N95AwgVAekB64QaATISB97/fM1z5dIXh85/PYD4vCy+DDp8OgyCrIIYBjFoTtDBSnYWyBYO9rj3DsbfHwHwrYSuGg5cPMpy4ewIzFoCmMKLjwzcOMwiwCMBjAcQGiWFTizchweRompDwuiBANoCgCxjFasQoys4AAQYARt4I/K036xQAAAAASUVORK5CYII=);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#ffe6b1!important;background-image:-webkit-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-moz-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-ms-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:linear-gradient(to top,#ffe09d 0,#ffeabb 100%);border-top-color:#ffc341;border-bottom-color:#ffc341}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#a4bed4;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#a4bed4;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #a4bed4;border-right:1px solid #a4bed4;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #a4bed4;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAIqnI+py+0Powq01haA3iDgLWwek2mhNi6ZwLLdZ4owcL4kJ5OWJfX+DykAADs=);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAImnI+py+0Powq01haA3iBgvnlMBnafgKLmWK4LCYpvK0+WJeX6DhUAOw==);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPXMWPK9N/fipOzLbPrVaP/89frqwv3tuvvprfLES+7PdP7xyP7z0vPAQfvtyMuaIv/32/735OSqFv3de+7ReP7lmf7gh/nv0v/67unFXfb29vK/PenFSaGEPfLnyv///yH5BAEAAB8ALAAAAAASABIAAAWS4Cc+ZGk+YvqZRVtgGiag6sNBThlFWnTQqQcE4sqRFj/VashsYR6HZI0JWSAjDwQCOGIgERULg/EQzJRQsGVCYHTK51qYTQDkFPj4iA4AJHIUgQoGQA8EdX4NhHgKAxeFfQkJGwGLeI6Fkg2UlQ8Dn5hBCZuchKChIxKkGw05Ga8DHlwkqg2tJ1xBtDlKvTUkviEAOw==)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPvjpP/24fPHVvnUdvzotdSiKv/23vvrw/LCS/C+RfnelvPMaf/88/nbi/rsyerYq/TLYv7y1v7wzeCsLO+8P86dJfvv0MuaIsydKPPOc+SqGKGEPe/AS+zVneWwLf///yH5BAEAAB8ALAAAAAASABIAAAWZ4CdeZGleYvpdA+O+zNUBqHoZOB4EceHUqVtuF+n9VCtdQCI5BC6FA3BkCEQkBALAACVMV9eDVhGJQGnIixigaAwiG6jie2G7BxDLpVJozG13EAICPxUeGRleQQMLgggJUhiHC3pBggKPFJETGZRAF5gJCRSaFxgTC55BCByioz+nEKojGgmtHBwPJAUCELo2J8FfSMTFxsUhADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQVAPv7+2RkZPf39/r6+vj4+Pn5+fT09Pb29vX19fHx8fDw8Onp6fLy8u7u7uzs7PPz8+vr6+rq6uXl5ejo6O/v7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABUALAAAAAASABIAAAV4YCWOZGkGaKqaVSAMQCwLQnAOj6ErzUTXpQDgQDgcGJTFDzgSEp4HRCKytDUBMKzAoIAsJACrSCjTGhINR5hELg8ECEZifS3HCgQEgj62xwZPAnwtbgMDBQU0g21Yh4iIi3aGkzBihH52lgEEmDIEli0qoigspSYhADs=)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Tahoma;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Tahoma;border-radius:0;border:1px solid #a4bed4;background:#fff}.dhtmlx_popup_title{border-top-left-radius:0;border-top-right-radius:0;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #a4bed4;height:24px;line-height:24px;display:inline-block;margin:0 5px;border-radius:4px;background-color:#f8f8f8;background-image:-webkit-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-moz-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-ms-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:linear-gradient(to top,#e6e6e6 0,#fff 100%)}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:15px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:0}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #a4bed4}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:12px;color:#1e2022;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#82b7de;background-image:-webkit-linear-gradient(top,#abcee8 0,#5aa0d3 36%,#bfdaee 100%);background-image:-moz-linear-gradient(top,#abcee8 0,#5aa0d3 36%,#bfdaee 100%);background-image:-ms-linear-gradient(top,#abcee8 0,#5aa0d3 36%,#bfdaee 100%);background-image:linear-gradient(to top,#abcee8 0,#5aa0d3 36%,#bfdaee 100%)}.gantt_task_line{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#eff6fb;border:1px solid #3588c5;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_touch_move,.gantt_touch_progress .gantt_touch_resize{-moz-transform:scale(1.02,1.1);-o-transform:scale(1.02,1.1);-webkit-transform:scale(1.02,1.1);transform:scale(1.02,1.1);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_touch_progress .gantt_task_progress_drag,.gantt_touch_resize .gantt_task_drag{-moz-transform:scaleY(1.3);-o-transform:scaleY(1.3);-webkit-transform:scaleY(1.3);transform:scaleY(1.3);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:6.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#4a8f43}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #4a8f43}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #0070fe}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #6eb867}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#6eb867;border-color:#4a8f43}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 8px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#4a8f43;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 8px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#4a8f43;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 4px 8px;border-color:#4a8f43;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 8px 0 4px;border-color:#4a8f43;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAACCAYAAACUn8ZgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDEyNDQ5RDdCRTQ5MTFFMjhBQzlGRDA2RDIyNDc5NzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDEyNDQ5RDhCRTQ5MTFFMjhBQzlGRDA2RDIyNDc5NzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTI0NDlENUJFNDkxMUUyOEFDOUZEMDZEMjI0Nzk3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMTI0NDlENkJFNDkxMUUyOEFDOUZEMDZEMjI0Nzk3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv8NECcAAAAaSURBVHjaYvz//z8DLsAEIsw6j/3HRgMEGAARnwqNiuFmdQAAAABJRU5ErkJggg==);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDNGNzQ1MTZCQkRBMTFFMjlBMjRBRkU0RkNCMTUzNkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDNGNzQ1MTdCQkRBMTFFMjlBMjRBRkU0RkNCMTUzNkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0M0Y3NDUxNEJCREExMUUyOUEyNEFGRTRGQ0IxNTM2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0M0Y3NDUxNUJCREExMUUyOUEyNEFGRTRGQ0IxNTM2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrBLI3EAAACISURBVHjafE07DkMhDAuftQdgYuCWbZ9a0WtwGJC4BgMbYmVGaZLpqWpryZFjOwrACSmlSLzCN1DwrLUik/TtM3yUUnDOiWMMZE3enTNF4gghRO89KKXkABGh9w6ttcPSHp1zsNaCvbcUjDHAHhVemg1rrVxprYWs2ZOMR84ZfoGfXuAP3gIMABorQUvC1invAAAAAElFTkSuQmCC);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #4a8f43;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected{background-color:#ffe6b1!important;border-bottom-color:#ffc341}.gantt_task_row.gantt_selected{background-color:#ffe6b1!important;background-image:-webkit-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-moz-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:-ms-linear-gradient(top,#ffe09d 0,#ffeabb 100%);background-image:linear-gradient(to top,#ffe09d 0,#ffeabb 100%);border-top-color:#ffc341;border-bottom-color:#ffc341}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffce65}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #5aa0d3}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #9ab9f1}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#db7dc5;border:0 solid #cd49ae;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background-color:#eff6fb;border-radius:0;font-family:Tahoma;font-size:11px;border:1px solid #a4bed4;color:#42464b;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Tahoma;border:1px solid #a4bed4;font-size:11px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Tahoma;font-size:11px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #a4bed4;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #a4bed4;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:2px 25px 2px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:1px;border-color:#a4bed4;border-style:solid;height:26px;color:#42464b;background-color:#f8f8f8;background-image:-webkit-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-moz-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-ms-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:linear-gradient(to top,#e6e6e6 0,#fff 100%);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:20px;line-height:20px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkE5Nzc4RENDMzAzMTFFMjk4QjNBODhDMUM4QUUwNEQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkE5Nzc4RERDMzAzMTFFMjk4QjNBODhDMUM4QUUwNEQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQTk3NzhEQUMzMDMxMUUyOThCM0E4OEMxQzhBRTA0RCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQTk3NzhEQkMzMDMxMUUyOThCM0E4OEMxQzhBRTA0RCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr5Ot2UAAAFoSURBVHjapFO7SgNRED0rxkjEELbcQksLBUMg4EfkG7YV/AFTpBAUfNQisVDQD7CQlBaWwoZ8gNEiFttmg3GTfbF6JtzFTUJYyIHhDnfOnJm5Dy2OYywDjQJnF5ex/dXDweENNtaAzT/jur46IY1D4McHvv3J+nZ7BGNrG436sSaU3ucHqtUqzP1sVcflMizLEl8EwjBEFEXwomwC5DInEeDGaDSC62cTIJc5iUAQBGJukE1A8YkVNYLv++h232WMRUYOuakRlOLTwzU8z1tYPZ/Po1QqJR0kAgQDWTEjwLaIWq0GwzDmJtm2jVarNSvAeeQQXVe6ME1Tgs1mMyXA2GAwQKFQmH8G/X4fjuOgWCxKkP40yMnlcukO1MNgAivoui5B+tMgh3H1DuQa66fnaLfbGA6HMgY7oNGfNnL+v0RN/cbnl9f46qSBSqUiM9J4ZQSvVgl0Oh1pf2d3D4/3d5q27Hf+FWAAc90EKSR5k78AAAAASUVORK5CYII=);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzU4NTQ3NUZDMzAzMTFFMkE0MjRGNTQzQjE0MTNDQkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzU4NTQ3NjBDMzAzMTFFMkE0MjRGNTQzQjE0MTNDQkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNTg1NDc1REMzMDMxMUUyQTQyNEY1NDNCMTQxM0NCQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNTg1NDc1RUMzMDMxMUUyQTQyNEY1NDNCMTQxM0NCQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkVB3hoAAAEYSURBVHjapJM9CsJAEIUTFStbQRA8gKCNKSIIeohUVraC9oKiGBRsBDvBylbwEkJQCys9gJUgeIOAxDfwEpYNpsmDL7PZ+cn+TMwgCIw0yhgplZPH3bbVuRqYgiYogxe4ABc8wqD69RpbQR6MwQ04TDZoHc6LP/tvC2uw4Fi+Vgcmrct58W9iW4BaYAB80OGSQ8my7xz7jDsAT11Bn3alJYvUa1pp8VGBNu0uIVm2s9fiowJF8OWJ/0sWPRlX1At8eLqlhGRRhXEfvcCJtpeQLOpq8VGBLe04Ibmh+Ld6AY8HWOBVzUCVvio780z/LrxCtQ9EQ+5tBOZElRzeUmmqWCfKlyfAAkfw5vyb7xb9vlrATPs7/wQYAISgQGDaq6hUAAAAAElFTkSuQmCC);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTA3M0M1MzJDMzAzMTFFMkE5ODZDRjhENzQ2MUZFNzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTA3M0M1MzNDMzAzMTFFMkE5ODZDRjhENzQ2MUZFNzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMDczQzUzMEMzMDMxMUUyQTk4NkNGOEQ3NDYxRkU3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMDczQzUzMUMzMDMxMUUyQTk4NkNGOEQ3NDYxRkU3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pplu0sEAAAErSURBVHja3FOxboMwED0nIQNbJoaOZM0YyMhGqwz8BOQ3mm5I/AHwCayoGVlhZUSMHTIhsSCEhOtzawRIlZDY+qTTs893z6fzmVBKYQ12YhEEweB0HAf3tCxLUFUVXWSeiDGIzW/ynRE9HA7coihCBtd1AVn40TCO2X1ewbthGCBJEiiKAtvtFggh0HUdWJYFfd9zez6f3JckiS1EhEDmeZ623+9BlmWejCaAfWqahou0bQumab7MK9DP5zM9nU5c4Hg8ch4nF0XBOc9zuF6vg/pm3pw0TSdNDcPwp8QsG2LiOIY/BZagqqp1AmP8M4Gvuq5B1/XJqNq2zVnTNMBzjBsLEHxnHBrf91/Z/nPBpW+32+0hPuFODAt79wtbfiwQuLD4x6SCNfgWYAAfQYJFsOV+5AAAAABJRU5ErkJggg==);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Tahoma;font-size:11px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #a4bed4}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:11px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #a4bed4}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #a4bed4}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background-color:#f8f8f8;background-image:-webkit-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-moz-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-ms-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:linear-gradient(to top,#e6e6e6 0,#fff 100%)}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #a4bed4;border-radius:0;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:0;padding:5px 0 8px 12px;color:#1e2022;box-shadow:0 1px 1px #fff inset;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#e4f0ff),color-stop(50%,#dfedff),color-stop(100%,#d5e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#e4f0ff 0,#dfedff 50%,#d5e8ff 100%);background-image:-moz-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);background-image:-ms-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);background-image:-o-linear-gradient(top,#e4f0ff 0,#dfedff 60%,#d5e8ff 100%);border-bottom:1px solid #a4bed4}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:11px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#1e2022;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:0;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:3px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFDhEuX3ujFgAAAFNJREFUOMvt0zEOACAIA0DksTyqn8XJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+sNUIROnQoAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTA3M0M1MzJDMzAzMTFFMkE5ODZDRjhENzQ2MUZFNzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTA3M0M1MzNDMzAzMTFFMkE5ODZDRjhENzQ2MUZFNzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMDczQzUzMEMzMDMxMUUyQTk4NkNGOEQ3NDYxRkU3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMDczQzUzMUMzMDMxMUUyQTk4NkNGOEQ3NDYxRkU3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pplu0sEAAAErSURBVHja3FOxboMwED0nIQNbJoaOZM0YyMhGqwz8BOQ3mm5I/AHwCayoGVlhZUSMHTIhsSCEhOtzawRIlZDY+qTTs893z6fzmVBKYQ12YhEEweB0HAf3tCxLUFUVXWSeiDGIzW/ynRE9HA7coihCBtd1AVn40TCO2X1ewbthGCBJEiiKAtvtFggh0HUdWJYFfd9zez6f3JckiS1EhEDmeZ623+9BlmWejCaAfWqahou0bQumab7MK9DP5zM9nU5c4Hg8ch4nF0XBOc9zuF6vg/pm3pw0TSdNDcPwp8QsG2LiOIY/BZagqqp1AmP8M4Gvuq5B1/XJqNq2zVnTNMBzjBsLEHxnHBrf91/Z/nPBpW+32+0hPuFODAt79wtbfiwQuLD4x6SCNfgWYAAfQYJFsOV+5AAAAABJRU5ErkJggg==)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;color:#42464b;background-color:#f8f8f8;background-image:-webkit-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-moz-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:-ms-linear-gradient(top,#e6e6e6 0,#fff 100%);background-image:linear-gradient(to top,#e6e6e6 0,#fff 100%);margin:5px 9px 8px 0;min-width:60px;line-height:26px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #a4bed4}.gantt_cal_qi_controls div{float:left;height:26px;text-align:center;line-height:26px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Tahoma;font-size:8pt;color:#1e2022;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Tahoma;font-size:11px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#e4f0ff} \ No newline at end of file diff --git a/codebase/skins/dhtmlxgantt_terrace.css b/codebase/skins/dhtmlxgantt_terrace.css index 79064ec1..dc0cf5ec 100644 --- a/codebase/skins/dhtmlxgantt_terrace.css +++ b/codebase/skins/dhtmlxgantt_terrace.css @@ -1,9 +1,9 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -.gridHoverStyle,.gridSelection,.timelineSelection{background-color:#fff3a1}.gantt_grid_scale .gantt_grid_head_cell{color:#a6a6a6;border-top:none!important;border-right:none!important}.gantt_grid_data .gantt_cell{border-right:none;color:#454545}.gantt_task_link .gantt_link_arrow_right{border-width:6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_left{border-width:6px;margin-left:-6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_down,.gantt_task_link .gantt_link_arrow_top{border-width:6px}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.chartHeaderBg{background-color:#fff}.gantt_task .gantt_task_scale .gantt_scale_cell{color:#a6a6a6;border-right:1px solid #ebebeb}.gantt_row.gantt_project,.gantt_row.odd.gantt_project{background-color:#edffef}.gantt_task_row.gantt_project,.gantt_task_row.odd.gantt_project{background-color:#f5fff6}.gantt_task_line.gantt_project{background-color:#65c16f;border:1px solid #3c9445}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#46ad51}.buttonBg{background:#fff}.gantt_cal_light .gantt_btn_set{margin:5px 10px}.gantt_btn_set.gantt_cancel_btn_set{background:#fff;color:#454545;border:1px solid #cecece}.gantt_btn_set.gantt_save_btn_set{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff}.gantt_btn_set.gantt_delete_btn_set{background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff}.gantt_cal_light_wide{padding-left:0!important;padding-right:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.dhtmlx_popup_button.dhtmlx_ok_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0}.dhtmlx_popup_button.dhtmlx_cancel_button{font-weight:700;color:#454544}.gantt_qi_big_icon.icon_edit{color:#454545;background:#fff}.gantt_qi_big_icon.icon_delete{text-shadow:0 -1px 0 #a60;background:#ec8e00;color:#fff;border-width:0}.gantt_container{font-family:Arial;font-size:13px;border:1px solid #cecece;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #cecece}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#6b6b6b;font-size:12px;border-bottom:1px solid #cecece;background-color:#fff}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #cecece}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #cecece;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQ3MjMyMENDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ3MjMyMERDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDcyMzIwQUM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NDcyMzIwQkM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PshZT8UAAABbSURBVHjaYrTdeZmBEsCER+4wEP+H4sPkGGCDg020ARR7gb4GIAcYDKMDdPnDyAbYkGG5DVW9cIQMvUdBBAuUY4vDz8iAcZinA2zgCHqAYQMseAywJcYFAAEGAM+UFGuohFczAAAAAElFTkSuQmCC);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#fff3a1}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#cecece;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#cecece;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #cecece;border-right:1px solid #cecece;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:13px}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #cecece;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39////wAAAP///wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0I5RTczQjVDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0I5RTczQjZDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQjlFNzNCM0MwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozQjlFNzNCNEMwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARJMMlJq704661B+SAIXAVhnKhBFKSZnmuLImhslXPN3ibi+6pdBXc4IIpB2YkGE1IKAoL0ICUInJNCYMDtDgJYiScUGnHO6LQkAgA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39wAAAP///////wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzY0QzNGM0VDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzY0QzNGM0ZDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNjRDM0YzQ0MwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNjRDM0YzREMwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARDMMlJq704661B+SAIXAVhnKhBFKSZnmv7wqxVzmpd3Uff5zKEUAi0uV4xm4DAbBIEOkohMKhaB4HoxBMKjTjgsFgSAQA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTdDRDM3QzVDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTdDRDM3QzZDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1N0NEMzdDM0MwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMzdDNEMwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIzlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCBlXd+2XjjLKg5GqoeZXqvsOQXK/ijUZTKVUFADs=)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTAyMTU1RTNDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTAyMTU1RTRDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDIxNTVFMUMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDIxNTVFMkMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIwlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCuYIY6TYs+6bmHDO4igfdD3GNhheV0VQAADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzkxQzI4RjZDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzkxQzI4RjdDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFDMjhGNEMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFDMjhGNUMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIylI+pwN16QJiUQiFThRlJm3RRFYSlR5qXMKmXaMDuuMoyOi8n/e6xn8NMHETgh5RaKQsAOw==)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Arial;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Arial;border-radius:6px;border:1px solid #cecece;background:#fff}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #cecece;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;background:#fff}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #cecece}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:12px;color:#fff;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#299cb4}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#3db9d3;border:1px solid #2898b0;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:8.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffa011}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffa011}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #3db9d3}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffbf5e}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffbf5e;border-color:#ffa011}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 6px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffa011;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 6px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffa011;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 4px 6px;border-color:#ffa011;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 6px 0 4px;border-color:#ffa011;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAACCAYAAAB7Xa1eAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYDDjkw3UJvAwAAABRJREFUCNdj/P//PwM2wASl/6PTAKrrBf4+lD8LAAAAAElFTkSuQmCC);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffa011;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected,.gantt_task_row.gantt_selected{background-color:#fff3a1}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffec6e}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #299cb4}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #46ad51}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#d33daf;border:0 solid #61164f;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background:#fff;border-radius:6px;font-family:Arial;border:1px solid #cecece;color:#6b6b6b;font-size:12px;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Arial;border:1px solid #cecece;font-size:13px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Arial;font-size:13px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #cecece;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#cecece;border-style:solid;height:32px;font-weight:700;background:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:22px;line-height:22px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTk1OUU5RDFDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTk1OUU5RDJDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxOTU5RTlDRkMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxOTU5RTlEMEMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjDroXYAAAEXSURBVHjaYvz//z8DJYCRUgPIAUxAbAnEHiAHMIBcQCwGaRYXF3e6evXqoffv39/dv38/CymaGSUkJBzv3LlzCsj///fv3wdAihkkIQnEvkAshU8zLy+v7a1bt06ANP/79+87kDIAy505cybq06dPr3p7ezuwGQLTfOPGjWP/ESAZLg8kPKBO+g01RBJNszWyZqC6uSgWgIg/f/4shxnS2dnZBjMEqNkSFGBImi8CKTYMA4BYCGjIczRDHC5dunQQSfN7IKWI4UUkjjdMMdCwnw8ePLjwHxV4Yw1gZA5Q47z/2EELzhhCE+ABGvIQWSeQvwcU38QaAML2wHj+C/X3MyAlijeB4ZBoBOIPQGxJKIVSnBsBAgwABddBclWfcZUAAAAASUVORK5CYII=);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDkzMDA3MzlDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDkzMDA3M0FDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowOTMwMDczN0MzMDQxMUUyODZBNUUzMURDODBGQkRENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowOTMwMDczOEMzMDQxMUUyODZBNUUzMURDODBGQkRENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYuYOUAAAEdSURBVHjaYvz//z8DJYAFXWDlypU8QKoIiD2A2AwqfAqIdwBxX3h4+Bdk9YzILgBqtgdS84FYEYeF94E4EWjIQZgAE5LmQCB1AKoZZKMPEAtAMYh9GSp3AKjWD8UFQAEhIPshEIOc3wHENUBb/qJ57SyQMoJyPwKxElDNO1gYFEE17wMKVmIJlzNQzeegrjaA6qmBecEbSvfh0GwMxGeBhoPoemQ9MAO0kEIbl2YTqPAFKK2IbMB3AjabYIkRZmQD7kNpMyI0G0PpO8gGbIUFJj7NQDk2INWIrIcJKfBAKcwJqvkcDs0TgFgXGo19KCkRmpDWQdWDEk0NUoCBoq0FqhkE/IEWbKJKUmZEz43QzFSKIzN1481M5ACAAAMAlfl/lCwRpagAAAAASUVORK5CYII=);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Arial;font-size:13px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:13px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #cecece}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #cecece}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#fff}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #cecece;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#454545;background-color:#fff;border-bottom:1px solid #cecece}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:13px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#454545;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:6px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFCjI5ZQj5bAAAAFNJREFUOMvt0zEOACAIA0DkwTymH8bJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+vNGrM/LBtAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;font-weight:700;background:#fff;margin:5px 9px 8px 0;min-width:60px;line-height:32px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #cecece}.gantt_cal_qi_controls div{float:left;height:32px;text-align:center;line-height:32px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Arial;font-size:8pt;color:#454545;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Arial;font-size:13px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#f8fdfd}.dhtmlx_popup_button.dhtmlx_delete_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0} \ No newline at end of file +.gridHoverStyle,.gridSelection,.timelineSelection{background-color:#fff3a1}.gantt_grid_scale .gantt_grid_head_cell{color:#a6a6a6;border-top:none!important;border-right:none!important}.gantt_grid_data .gantt_cell{border-right:none;color:#454545}.gantt_task_link .gantt_link_arrow_right{border-width:6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_left{border-width:6px;margin-left:-6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_down,.gantt_task_link .gantt_link_arrow_top{border-width:6px}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.chartHeaderBg{background-color:#fff}.gantt_task .gantt_task_scale .gantt_scale_cell{color:#a6a6a6;border-right:1px solid #ebebeb}.gantt_row.gantt_project,.gantt_row.odd.gantt_project{background-color:#edffef}.gantt_task_row.gantt_project,.gantt_task_row.odd.gantt_project{background-color:#f5fff6}.gantt_task_line.gantt_project{background-color:#65c16f;border:1px solid #3c9445}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#46ad51}.buttonBg{background:#fff}.gantt_cal_light .gantt_btn_set{margin:5px 10px}.gantt_btn_set.gantt_cancel_btn_set{background:#fff;color:#454545;border:1px solid #cecece}.gantt_btn_set.gantt_save_btn_set{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff}.gantt_btn_set.gantt_delete_btn_set{background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff}.gantt_cal_light_wide{padding-left:0!important;padding-right:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.dhtmlx_popup_button.dhtmlx_ok_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0}.dhtmlx_popup_button.dhtmlx_cancel_button{font-weight:700;color:#454544}.gantt_qi_big_icon.icon_edit{color:#454545;background:#fff}.gantt_qi_big_icon.icon_delete{text-shadow:0 -1px 0 #a60;background:#ec8e00;color:#fff;border-width:0}.gantt_container{font-family:Arial;font-size:13px;border:1px solid #cecece;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #cecece}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#6b6b6b;font-size:12px;border-bottom:1px solid #cecece;background-color:#fff}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #cecece}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #cecece;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQ3MjMyMENDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ3MjMyMERDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDcyMzIwQUM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NDcyMzIwQkM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PshZT8UAAABbSURBVHjaYrTdeZmBEsCER+4wEP+H4sPkGGCDg020ARR7gb4GIAcYDKMDdPnDyAbYkGG5DVW9cIQMvUdBBAuUY4vDz8iAcZinA2zgCHqAYQMseAywJcYFAAEGAM+UFGuohFczAAAAAElFTkSuQmCC);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#fff3a1}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#cecece;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#cecece;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #cecece;border-right:1px solid #cecece;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:13px}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #cecece;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39////wAAAP///wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0I5RTczQjVDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0I5RTczQjZDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQjlFNzNCM0MwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozQjlFNzNCNEMwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARJMMlJq704661B+SAIXAVhnKhBFKSZnmuLImhslXPN3ibi+6pdBXc4IIpB2YkGE1IKAoL0ICUInJNCYMDtDgJYiScUGnHO6LQkAgA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39wAAAP///////wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzY0QzNGM0VDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzY0QzNGM0ZDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNjRDM0YzQ0MwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNjRDM0YzREMwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARDMMlJq704661B+SAIXAVhnKhBFKSZnmv7wqxVzmpd3Uff5zKEUAi0uV4xm4DAbBIEOkohMKhaB4HoxBMKjTjgsFgSAQA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTdDRDM3QzVDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTdDRDM3QzZDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1N0NEMzdDM0MwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMzdDNEMwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIzlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCBlXd+2XjjLKg5GqoeZXqvsOQXK/ijUZTKVUFADs=)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTAyMTU1RTNDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTAyMTU1RTRDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDIxNTVFMUMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDIxNTVFMkMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIwlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCuYIY6TYs+6bmHDO4igfdD3GNhheV0VQAADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzkxQzI4RjZDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzkxQzI4RjdDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFDMjhGNEMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFDMjhGNUMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIylI+pwN16QJiUQiFThRlJm3RRFYSlR5qXMKmXaMDuuMoyOi8n/e6xn8NMHETgh5RaKQsAOw==)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Arial;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Arial;border-radius:6px;border:1px solid #cecece;background:#fff}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #cecece;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;background:#fff}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #cecece}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:12px;color:#fff;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#299cb4}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#3db9d3;border:1px solid #2898b0;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_touch_move,.gantt_touch_progress .gantt_touch_resize{-moz-transform:scale(1.02,1.1);-o-transform:scale(1.02,1.1);-webkit-transform:scale(1.02,1.1);transform:scale(1.02,1.1);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_touch_progress .gantt_task_progress_drag,.gantt_touch_resize .gantt_task_drag{-moz-transform:scaleY(1.3);-o-transform:scaleY(1.3);-webkit-transform:scaleY(1.3);transform:scaleY(1.3);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:8.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffa011}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffa011}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #3db9d3}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffbf5e}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffbf5e;border-color:#ffa011}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 6px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffa011;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 6px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffa011;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_top{border-width:0 4px 6px;border-color:#ffa011;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 6px 0 4px;border-color:#ffa011;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAACCAYAAAB7Xa1eAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYDDjkw3UJvAwAAABRJREFUCNdj/P//PwM2wASl/6PTAKrrBf4+lD8LAAAAAElFTkSuQmCC);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffa011;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected,.gantt_task_row.gantt_selected{background-color:#fff3a1}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffec6e}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #299cb4}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #46ad51}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#d33daf;border:0 solid #61164f;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background:#fff;border-radius:6px;font-family:Arial;border:1px solid #cecece;color:#6b6b6b;font-size:12px;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Arial;border:1px solid #cecece;font-size:13px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Arial;font-size:13px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #cecece;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#cecece;border-style:solid;height:32px;font-weight:700;background:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:22px;line-height:22px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTk1OUU5RDFDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTk1OUU5RDJDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxOTU5RTlDRkMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxOTU5RTlEMEMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjDroXYAAAEXSURBVHjaYvz//z8DJYCRUgPIAUxAbAnEHiAHMIBcQCwGaRYXF3e6evXqoffv39/dv38/CymaGSUkJBzv3LlzCsj///fv3wdAihkkIQnEvkAshU8zLy+v7a1bt06ANP/79+87kDIAy505cybq06dPr3p7ezuwGQLTfOPGjWP/ESAZLg8kPKBO+g01RBJNszWyZqC6uSgWgIg/f/4shxnS2dnZBjMEqNkSFGBImi8CKTYMA4BYCGjIczRDHC5dunQQSfN7IKWI4UUkjjdMMdCwnw8ePLjwHxV4Yw1gZA5Q47z/2EELzhhCE+ABGvIQWSeQvwcU38QaAML2wHj+C/X3MyAlijeB4ZBoBOIPQGxJKIVSnBsBAgwABddBclWfcZUAAAAASUVORK5CYII=);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDkzMDA3MzlDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDkzMDA3M0FDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowOTMwMDczN0MzMDQxMUUyODZBNUUzMURDODBGQkRENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowOTMwMDczOEMzMDQxMUUyODZBNUUzMURDODBGQkRENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYuYOUAAAEdSURBVHjaYvz//z8DJYAFXWDlypU8QKoIiD2A2AwqfAqIdwBxX3h4+Bdk9YzILgBqtgdS84FYEYeF94E4EWjIQZgAE5LmQCB1AKoZZKMPEAtAMYh9GSp3AKjWD8UFQAEhIPshEIOc3wHENUBb/qJ57SyQMoJyPwKxElDNO1gYFEE17wMKVmIJlzNQzeegrjaA6qmBecEbSvfh0GwMxGeBhoPoemQ9MAO0kEIbl2YTqPAFKK2IbMB3AjabYIkRZmQD7kNpMyI0G0PpO8gGbIUFJj7NQDk2INWIrIcJKfBAKcwJqvkcDs0TgFgXGo19KCkRmpDWQdWDEk0NUoCBoq0FqhkE/IEWbKJKUmZEz43QzFSKIzN1481M5ACAAAMAlfl/lCwRpagAAAAASUVORK5CYII=);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Arial;font-size:13px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:13px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #cecece}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #cecece}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#fff}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #cecece;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#454545;background-color:#fff;border-bottom:1px solid #cecece}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:13px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#454545;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:6px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFCjI5ZQj5bAAAAFNJREFUOMvt0zEOACAIA0DkwTymH8bJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+vNGrM/LBtAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;font-weight:700;background:#fff;margin:5px 9px 8px 0;min-width:60px;line-height:32px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #cecece}.gantt_cal_qi_controls div{float:left;height:32px;text-align:center;line-height:32px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Arial;font-size:8pt;color:#454545;padding:10px;position:absolute;z-index:500}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Arial;font-size:13px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#f8fdfd}.dhtmlx_popup_button.dhtmlx_delete_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0} \ No newline at end of file diff --git a/codebase/sources/dhtmlxgantt.js b/codebase/sources/dhtmlxgantt.js index ecd4fe36..7b4ecce9 100644 --- a/codebase/sources/dhtmlxgantt.js +++ b/codebase/sources/dhtmlxgantt.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. @@ -1217,7 +1217,7 @@ if(!window.dhtmlx) }; })(); gantt = { - version:"3.0.0" + version:"3.1.0" }; /*jsl:ignore*/ @@ -1873,7 +1873,7 @@ gantt.moveTask = function (sid, tindex, parent) { for(var i = 0; i < childTree.length; i++){ var item = this._pull[childTree[i]]; if(item) - item.$level = this._item_level(item); + item.$level = this.calculateTaskLevel(item); } if(tindex*1 > 0){ @@ -2570,6 +2570,7 @@ gantt._tasks_dnd = { } }, _fix_working_times:function(task, drag){ + var drag = drag || {mode : gantt.config.drag_mode.move}; if(gantt.config.work_time && gantt.config.correct_work_time){ if(drag.mode == gantt.config.drag_mode.resize){ if(drag.left){ @@ -2578,13 +2579,7 @@ gantt._tasks_dnd = { task.end_date = gantt.getClosestWorkTime({date:task.end_date, dir:'past'}); } }else if(drag.mode == gantt.config.drag_mode.move){ - if(!gantt.isWorkTime(task.start_date)){ - task.start_date = gantt.getClosestWorkTime({date:task.start_date, dir:'future'}); - task.end_date = gantt.calculateEndDate(task.start_date, task.duration); - }else if(!gantt.isWorkTime(new Date(+task.end_date - 1))){ - task.end_date = gantt.calculateEndDate(task.start_date, task.duration); - } - + gantt.correctTaskWorkTime(task); } } }, @@ -2606,21 +2601,14 @@ gantt._tasks_dnd = { drag.obj._dhx_changed = false; dhtmlx.mixin(ev, drag.obj, true); - - - gantt.updateTask(ev.id); } else { var drag_id = drag.id; - - - - gantt._init_task_timing(ev); - gantt.updateTask(ev.id); this._fireEvent("after_finish", drag.mode, [drag_id, drag.mode, e]); this.clear_drag_state(); + gantt.updateTask(ev.id); } } @@ -3606,7 +3594,8 @@ gantt._get_tasks_data = function(){ for(var i=0; i < this._order.length; i++){ var item = this._pull[this._order[i]]; item.$index = i; - this._update_parents(item.id, true); + //this._update_parents(item.id, true); + this.calculateProjectDuration(item); rows.push(item); } return rows; @@ -3653,8 +3642,9 @@ gantt._update_layout_sizes = function(){ //timeline area layers var data_els = this.$task_data.childNodes; for(var i= 0, len = data_els.length; i < len; i++){ - if(data_els[i].style) - data_els[i].style.width = cfg.full_width + "px"; + var el = data_els[i]; + if(this._is_layer(el) && el.style) + el.style.width = cfg.full_width + "px"; } //grid area @@ -3667,10 +3657,20 @@ gantt._update_layout_sizes = function(){ } }; +gantt._scale_range_unit = function(){ + var unit = this.config.scale_unit; + if(this.config.scale_offset_minimal){ + var scales = this._get_scales(); + unit = scales[scales.length - 1].unit; + } + return unit; +}; gantt._init_tasks_range = function(){ - var unit = this.config.scale_unit; + var unit = this._scale_range_unit(); + if(this.config.start_date && this.config.end_date){ + this._min_date = this.date[unit + "_start"]( new Date(this.config.start_date)); this._max_date = this.date[unit + "_start"]( new Date(this.config.end_date)); return; @@ -3706,10 +3706,10 @@ gantt._init_tasks_range = function(){ this._min_date = this.date[unit + "_start"](this._min_date); if(+this._min_date == +min) - this._min_date = this.date.add(this.date[unit + "_start"](this._min_date), -1, unit); + this._min_date = this.date.add(this.date[unit + "_start"](this._min_date), -1, unit);//one free column before first task this._max_date = this.date[unit + "_start"](this._max_date); - this._max_date = this.date.add(this._max_date, 1, unit); + this._max_date = this.date.add(this._max_date, 2, unit);//one free column after last task }; @@ -3749,6 +3749,13 @@ gantt._prepare_scale_html = function(config){ } return cells.join(""); }; +gantt._get_scales = function(){ + var helpers = this._scale_helpers; + var scales = [helpers.primaryScale()].concat(this.config.subscales); + + helpers.sortScales(scales); + return scales; +}; gantt._render_tasks_scales = function() { this._init_tasks_range(); @@ -3762,13 +3769,11 @@ gantt._render_tasks_scales = function() { if(this._is_chart_visible()){ var helpers = this._scale_helpers; - var scales = [helpers.primaryScale()].concat(this.config.subscales); + var scales = this._get_scales(); scale_height = (this.config.scale_height-1); - - helpers.sortScales(scales); - var resize = this._get_resize_options(); - var avail_width = resize.x ? 0 : this.$task.offsetWidth; + var avail_width = resize.x ? Math.max(this.config.autosize_min_width, 0) : this.$task.offsetWidth; + var cfgs = helpers.prepareConfigs(scales,this.config.min_column_width, avail_width, scale_height); var cfg = this._tasks = cfgs[cfgs.length - 1]; @@ -3919,9 +3924,12 @@ gantt._combine_item_class = function(basic, template, itemId){ if(this.config.select_task && itemId == state.selected_task) css.push("gantt_selected"); - if(itemId == state.drag_id) + if(itemId == state.drag_id){ css.push("gantt_drag_" + state.drag_mode); - + if(state.touch_drag){ + css.push("gantt_touch_" + state.drag_mode); + } + } var links = gantt._get_link_state(); if(links.link_source_id == itemId) css.push("gantt_link_source"); @@ -4362,6 +4370,9 @@ gantt._get_mouse_pos = function(ev){ return pos; }; +gantt._is_layer = function(dom_element){ + return (dom_element && dom_element.hasAttribute && dom_element.hasAttribute(this.config.layer_attribute)); +}; //helper for rendering bars and links gantt._task_renderer = function(id, render_one, node, filter){ //hash of dom elements is needed to redraw single bar/link @@ -4377,6 +4388,9 @@ gantt._task_renderer = function(id, render_one, node, filter){ if(!render_one) dhtmlx.assert(false, "Invalid renderer call"); + if(node) + node.setAttribute(this.config.layer_attribute, true); + this._task_area_renderers[id] = { render_item : function(item, container){ var pull = gantt._task_area_pulls[id]; @@ -4474,6 +4488,8 @@ gantt.load = function(url, type, callback){ cl = arguments[1]; } + this._load_type = tp; + dhtmlxAjax.get(url, dhtmlx.bind(function(l) { this.on_load(l, tp); this.callEvent("onLoadEnd", []); @@ -4559,7 +4575,7 @@ gantt._process_loading = function(data){ // calculating $level for each item for (var i in this._pull) - this._pull[i].$level = this._item_level(this._pull[i]); + this._pull[i].$level = this.calculateTaskLevel(this._pull[i]); this._init_links(data.links || (data.collections ? data.collections.links : [])); this.render(); @@ -4696,10 +4712,11 @@ gantt.json = { if (key.charAt(0) == "$") continue; copy[key] = obj[key]; + + if(copy[key] instanceof Date){ + copy[key] = gantt.templates.xml_format(copy[key]); + } } - copy.start_date = gantt.templates.xml_format(copy.start_date); - if (copy.end_date) - copy.end_date = gantt.templates.xml_format(copy.end_date); return copy; }, serialize:function(){ @@ -4707,6 +4724,7 @@ gantt.json = { var links = []; gantt.eachTask(function(obj){ + gantt.calculateProjectDuration(obj); tasks.push(this._copyObject(obj)); }, gantt.config.root_id, this); for (var key in gantt._lpull) @@ -4807,21 +4825,19 @@ gantt.xml = { return ""; }, _copyObject:function(obj){ - var start_date = gantt.templates.xml_format(obj.start_date); - var end_date = gantt.templates.xml_format(obj.end_date); - - return ""; + return ""; }, serialize:function(){ var tasks = []; var links = []; - gantt.eachTask(function(obj){ - tasks.push(this._copyObject(obj)); - },gantt.config.root_id, this); - for (var key in gantt._lpull) - links.push(this._copyLink(gantt._lpull[key])); - + var json = gantt.json.serialize(); + for(var i= 0, len = json.data.length; i < len; i++){ + tasks.push(this._copyObject(json.data[i])); + } + for(var i= 0, len = json.links.length; i < len; i++){ + links.push(this._copyLink(json.links[i])); + } return ""+tasks.join("")+""+links.join("")+""; } }; @@ -5179,13 +5195,13 @@ gantt._move_branch = function(task, old_parent, new_parent){ task.parent = new_parent; this._sync_parent(task); this._replace_branch_child(old_parent, task.id); - if(new_parent){ + if(this.isTaskExists(new_parent) || new_parent === this.config.root_id){ this._add_branch(task); }else{ delete this._branches[task.id]; } - task.$level = this._item_level(task); + task.$level = this.calculateTaskLevel(task); this._sync_order(); }; gantt._resync_parent = function(task){ @@ -5278,7 +5294,7 @@ gantt.createTask = function(item, parent){ this._pull[item.id] = this._init_task(item); this._add_branch(item); - item.$level = this._item_level(item); + item.$level = this.calculateTaskLevel(item); this.selectTask(item.id); this.refreshData(); this.showLightbox(item.id); @@ -5401,9 +5417,9 @@ gantt.clearAll = function() { this._order_full = []; this._lpull = {}; this._update_flags(); - this.refreshData(); this.userdata = {}; - this.callEvent("onClear", []); + this.callEvent("onClear", []); + this.refreshData(); }; gantt._update_flags = function(oldid, newid){ @@ -5466,6 +5482,17 @@ gantt.isWorkTime = function(date, unit){ return helper.is_working_unit(date, unit || this.config.duration_unit); }; +gantt.correctTaskWorkTime = function(task){ + if(gantt.config.work_time && gantt.config.correct_work_time){ + if(!gantt.isWorkTime(task.start_date)){ + task.start_date = gantt.getClosestWorkTime({date:task.start_date, dir:'future'}); + task.end_date = gantt.calculateEndDate(task.start_date, task.duration); + }else if(!gantt.isWorkTime(new Date(+task.end_date - 1))){ + task.end_date = gantt.calculateEndDate(task.start_date, task.duration); + } + } +}; + gantt.getClosestWorkTime = function(config){ var helper = this._working_time_helper; if(config instanceof Date){ @@ -5505,19 +5532,15 @@ gantt._init_task = function(task){ } } - if(gantt.config.work_time && gantt.config.correct_work_time){ - if(task.start_date) - task.start_date = gantt.getClosestWorkTime(task.start_date); - if(task.end_date) - task.end_date = gantt.getClosestWorkTime(task.end_date); - } gantt._init_task_timing(task); + if(task.start_date && task.end_date) + gantt.correctTaskWorkTime(task); task.$source = []; task.$target = []; task.parent = task.parent || this.config.root_id; task.$open = dhtmlx.defined(task.open) ? task.open : this.config.open_tree_initially; - task.$level = this._item_level(task); + task.$level = this.calculateTaskLevel(task); return task; }; @@ -5556,51 +5579,61 @@ gantt._is_flex_task = function(task){ return !!(task.$no_end || task.$no_start); }; -gantt._update_parents = function(taskId, silent){ - if(!taskId) return; +// downward calculation of project duration +gantt.calculateProjectDuration = function(task){ + var min, + max; - var task = this.getTask(taskId); + if(task.$no_end || task.$no_start){ + this.eachTask(function(child){ + if((child.start_date) && (!min || min > child.start_date.valueOf())) + min = child.start_date.valueOf(); + if((child.end_date) && (!max || max < child.end_date.valueOf())) + max = child.end_date.valueOf(); + }, task.id); - while(!(task.$no_end || task.$no_start) && task.parent && this.isTaskExists(task.parent)){ - task = this.getTask(task.parent); + this._assign_project_dates(task, min, max); } +}; +gantt._assign_project_dates = function(task, from, to){ if(task.$no_start){ - var min = Infinity; - this.eachTask(function(child){ - if(child.start_date && +child.start_date < +min){ - min = new Date(child.start_date); - } - }, task.id); - - if(min != Infinity){ - task.start_date = min; + if(from && from != Infinity){ + task.start_date = new Date(from); }else{ task.start_date = this._default_task_date(task, task.parent); } } if(task.$no_end){ - var max = 0; - this.eachTask(function(child){ - if(child.end_date && +child.end_date > +max){ - max = new Date(child.end_date); - } - }, task.id); - - if(max){ - task.end_date = max; + if(to && to != -Infinity){ + task.end_date = new Date(to); }else{ task.end_date = this.calculateEndDate(task.start_date, this.config.duration_step); } } + if(task.$no_start || task.$no_end){ + this._init_task_timing(task); + } +}; +// upward calculation of project duration +gantt._update_parents = function(taskId, silent){ + if(!taskId) return; + + var task = this.getTask(taskId); + + while(!(task.$no_end || task.$no_start) && task.parent && this.isTaskExists(task.parent)){ + task = this.getTask(task.parent); + } + + if(task.$no_start || task.$no_end){ + gantt.calculateProjectDuration(task); - if((task.$no_end || task.$no_start)){ - this._init_task_timing(task); if(!silent) this.refreshTask(task.id, true); } + if(task.parent && this.isTaskExists(task.parent)){ this._update_parents(task.parent, silent); } @@ -5662,7 +5695,7 @@ gantt.attachEvent("onBeforeTaskAdd", function(id, task){ return true; }); -gantt._item_level = function(item) { +gantt.calculateTaskLevel = function (item) { var level = 0; while (item.parent) { if (!dhtmlx.defined(this._pull[item.parent])) break; @@ -6006,7 +6039,7 @@ gantt.getChildren = function(id) { return dhtmlx.defined(this._branches[id]) ? this._branches[id] : []; }; gantt.hasChild = function(id) { - return dhtmlx.defined(this._branches[id]); + return (dhtmlx.defined(this._branches[id]) && this._branches[id].length); }; @@ -7096,7 +7129,7 @@ gantt._extend_to_optional = function(lightbox_block){ if(gantt.callEvent("onSectionButton", [gantt._lightbox_id, section]) === false){ return; } - var config = gantt.config.lightbox.sections[index]; + var config = gantt._get_typed_lightbox_config()[index]; if(config.disabled){ optional_time.enable(container, config); }else{ @@ -7711,7 +7744,7 @@ gantt.init = function(node, from, to){ this.config.end_date = this._max_date = new Date(to); } this._init_skin(); - + if (!this.config.scroll_size) this.config.scroll_size = this._detectScrollSize(); @@ -7723,9 +7756,7 @@ gantt.init = function(node, from, to){ } } - this._reinit(node); - - dhtmlxEvent(window, "resize", this._on_resize); + dhtmlxEvent(window, "resize", this._on_resize); //can be called only once this.init = function(node){ @@ -7736,8 +7767,8 @@ gantt.init = function(node, from, to){ } this._reinit(node); }; - this.callEvent("onGanttReady", []); + this._reinit(node); }; gantt._reinit = function(node){ @@ -7752,7 +7783,6 @@ gantt._reinit = function(node){ this._init_grid(); this._init_tasks(); - this.render(); this._set_scroll_events(); @@ -7760,6 +7790,10 @@ gantt._reinit = function(node){ dhtmlxEvent(this.$container, "dblclick", this._on_dblclick); dhtmlxEvent(this.$container, "mousemove", this._on_mousemove); dhtmlxEvent(this.$container, "contextmenu", this._on_contextmenu); + + this.callEvent("onGanttReady", []); + + this.render(); }; //renders initial html markup @@ -8145,7 +8179,7 @@ gantt.locate = function(e) { var trg = gantt._get_target_node(e); //ignore empty cells - if (trg.className == "gantt_task_cell") return null; + if ((trg.className || "").indexOf("gantt_task_cell") >= 0) return null; var attribute = arguments[1] || this.config.task_attribute; @@ -8236,7 +8270,9 @@ gantt.getState = function(){ selected_task : this._selected_task, min_date : new Date(this._min_date), max_date : new Date(this._max_date), - lightbox : this._lightbox_id + lightbox : this._lightbox_id, + touch_drag : this._touch_drag + }; }; @@ -8561,6 +8597,7 @@ dhtmlx.mixin(gantt.config, skip_off_time:false, autosize:false, + autosize_min_width: 0, show_links : true, show_task_cells : true, @@ -8610,6 +8647,7 @@ dhtmlx.mixin(gantt.config, /*scale*/ step: 1, scale_unit: "day", + scale_offset_minimal:true, subscales : [ ], @@ -8620,6 +8658,7 @@ dhtmlx.mixin(gantt.config, time_picker: "%H:%i", task_attribute: "task_id", link_attribute: "link_id", + layer_attribute: "data-layer", buttons_left: [ "gantt_save_btn", "gantt_cancel_btn" @@ -8974,8 +9013,17 @@ gantt.skins.broadway = { }; -gantt.config.touch_drag = 50; //nearly immediate dnd +gantt.config.touch_drag = 500; //nearly immediate dnd gantt.config.touch = true; +gantt.config.touch_feedback = true; + + +gantt._touch_feedback = function(){ + if(gantt.config.touch_feedback){ + if(navigator.vibrate) + navigator.vibrate(1); + } +}; gantt._init_touch_events = function(){ if (this.config.touch != "force") @@ -8997,7 +9045,13 @@ gantt._init_touch_events = function(){ this._touch_events(["touchmove", "touchstart", "touchend"], function(ev){ if (ev.touches && ev.touches.length > 1) return null; if (ev.touches[0]) - return { target:ev.target, pageX:ev.touches[0].pageX, pageY:ev.touches[0].pageY }; + return { + target: ev.target, + pageX: ev.touches[0].pageX, + pageY: ev.touches[0].pageY, + clientX:ev.touches[0].clientX, + clientY:ev.touches[0].clientY + }; else return ev; }, function(){ return false; }); @@ -9016,17 +9070,28 @@ gantt._touch_events = function(names, accessor, ignore){ var dblclick_timer = 0; var action_start = null; var scroll_state; + var long_tap_timer = null; + var current_target = null; //touch move if (!this._gantt_touch_event_ready){ this._gantt_touch_event_ready = 1; - dhtmlxEvent(document.body, names[0], function(e){ + dhtmlxEvent(gantt.$container, names[0], function(e){ if (ignore(e)) return; //ignore common and scrolling moves if (!action_mode) return; + + if (long_tap_timer) clearTimeout(long_tap_timer); var source = accessor(e); + if (gantt._tasks_dnd.drag.id || gantt._tasks_dnd.drag.start_drag) { + gantt._tasks_dnd.on_mouse_move(source); + if (e.preventDefault) + e.preventDefault(); + e.cancelBubble = true; + return false; + } if (source && action_start){ var dx = action_start.pageX - source.pageX; var dy = action_start.pageY - source.pageY; @@ -9044,15 +9109,6 @@ gantt._touch_events = function(names, accessor, ignore){ }); } - - //common helper, prevents event - function block_action(e){ - if (e && e.preventDefault) - e.preventDefault(); - (e||event).cancelBubble = true; - return false; - } - //block touch context menu in IE10 dhtmlxEvent(this.$container, "contextmenu", function(e){ if (action_mode) @@ -9083,11 +9139,69 @@ gantt._touch_events = function(names, accessor, ignore){ } else { dblclicktime = new Date(); } + + //long tap + long_tap_timer = setTimeout(function(){ + var taskId = gantt.locate(action_start); + if(taskId && action_start.target.className.indexOf("gantt_link_point") == -1) { + gantt._tasks_dnd.on_mouse_down(action_start); + gantt._tasks_dnd._start_dnd(action_start); + gantt._touch_drag = true; + cloneTaskRendered(taskId); + + gantt.refreshTask(taskId); + + gantt._touch_feedback(); + } + + long_tap_timer = null; + }, gantt.config.touch_drag); }); //touch end dhtmlxEvent(this.$container, names[2], function(e){ if (ignore(e)) return; + if (long_tap_timer) clearTimeout(long_tap_timer); + gantt._touch_drag = false; + action_mode = false; + var source = accessor(e); + gantt._tasks_dnd.on_mouse_up(source); + + if(current_target) { + gantt.refreshTask(gantt.locate(current_target)); + current_target.parentNode.removeChild(current_target); + gantt._touch_feedback(); + } + gantt._touch_scroll_active = action_mode = scroll_mode = false; - }); + current_target = null; + }); + + + //common helper, prevents event + function block_action(e){ + if (e && e.preventDefault) + e.preventDefault(); + (e||event).cancelBubble = true; + return false; + } + + function cloneTaskRendered(taskId) { + var renders = gantt._task_area_pulls; + var task = gantt.getTask(taskId); + if(task && gantt.isTaskVisible(taskId)){ + for(var i in renders) { + task = renders[i][taskId]; + if(task && task.getAttribute("task_id") && task.getAttribute("task_id") == taskId) { + var copy = task.cloneNode(true); + current_target = task; + renders[i][taskId] = copy; + task.style.display="none"; + copy.className += " gantt_drag_move "; + task.parentNode.appendChild(copy); + return copy; + } + } + } + } }; \ No newline at end of file diff --git a/codebase/sources/dhtmlxgantt.js.map b/codebase/sources/dhtmlxgantt.js.map index ddc67051..7f19bbf9 100644 --- a/codebase/sources/dhtmlxgantt.js.map +++ b/codebase/sources/dhtmlxgantt.js.map @@ -1 +1 @@ -{"version":3,"file":"dhtmlxgantt.js","sources":["dhtmlxgantt.js"],"names":["dtmlXMLLoaderObject","funcObject","dhtmlObject","async","rSeed","this","xmlDoc","onloadAction","mainObject","waitCall","callerFunction","handler","e","window","event","getAbsoluteLeft","htmlObject","getOffset","left","getAbsoluteTop","top","getOffsetSum","elem","parseInt","offsetTop","offsetLeft","offsetParent","getOffsetRect","box","getBoundingClientRect","body","document","docElem","documentElement","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","Math","round","convertStringToBoolean","inputString","toLowerCase","getUrlSymbol","str","indexOf","dhtmlDragAndDropObject","dhtmlDragAndDrop","lastLanding","dragNode","dragStartNode","dragStartObject","tempDOMU","tempDOMM","waitDrag","_dhtmlxError","catches","dhtmlXHeir","a","b","c","dhtmlxEvent","el","addEventListener","attachEvent","dhtmlxDetachEvent","removeEventListener","detachEvent","dhtmlxDnD","obj","config","_settings","dhtmlxEventable","dhtmlx","bind","original_target","target","srcElement","dragStart","dataProcessor","serverProcessorURL","serverProcessor","action_param","object","updatedRows","autoUpdate","updateMode","_tMode","post_delim","_waitMode","_in_progress","_invalid","mandatoryFields","messages","styles","updated","inserted","deleted","invalid","invalid_cell","error","clear","enableUTFencoding","extend_api","name","map","ext","t","that","tagName","apply","_init","arguments","_patch","prototype","dhtmlxAjax","get","url","callback","length","loadXML","post","getSync","postSync","count","waitLoadFunction","once","check","readyState","call","getXMLTopNode","oldObj","z","responseXML","temp","getElementsByTagName","split","_retry","_isIE","loadXMLString","responseText","replace","dhtmlxError","throwError","createElement","xmlString","silent","ActiveXObject","onreadystatechange","parser","DOMParser","parseFromString","filePath","postMode","postVars","rpc","Date","valueOf","XMLHttpRequest","open","setRequestHeader","navigator","userAgent","send","destructor","_filterXPath","_getAllNamedChilds","doXPath","doXPathOpera","doXSLTransToObject","doXSLTransToString","doSerialization","xmlNodeToJSON","setXSLParamValue","node","i","attributes","value","firstChild","nodeValue","childNodes","push","removeDraggableItem","htmlNode","onmousedown","dragStarter","dragLanding","addDraggableItem","preCreateDragCopy","addDragLanding","button","onmouseup","onmousemove","stopDrag","callDrag","downtime","preventDefault","dragger","_createDragNode","onselectstart","gldragNode","appendChild","pWindow","initFrameRoute","parentNode","grd","old","removeChild","oldBody","_dragOut","div","innerHTML","outerHTML","cloneNode","style","clientX","fx","clientY","fy","checkLanding","calculateFramePosition","n","parent","frames","frameElement","ls","_dragIn","lastLanding_scr","_onNotFound","mode","stopFrameRoute","_drag","win","_isFF","_FFrv","_isOpera","_isKHTML","_isMacOS","_isChrome","_KHTMLrv","_OperaRv","parseFloat","substr","appName","appVersion","compatMode","xpathExp","docObj","namespace","result_type","XPathResult","nodeName","setProperty","selectSingleNode","selectNodes","Array","nodeObj","ownerDocument","retType","ANY_TYPE","FIRST_ORDERED_NODE_TYPE","rowsCol","col","evaluate","singleNodeValue","thisColMemb","iterateNext","catchError","type","func_name","params","alert","getAttribute","toUpperCase","j","xslDoc","paramName","paramValue","item","result","transformNodeToObject","transformNode","XSLProcessor","XSLTProcessor","importStylesheet","transformToDocument","res","xml","xmlSerializer","XMLSerializer","serializeToString","catcher","callObj","eventCatcher","addEvent","callEvent","arg0","checkEvent","dhx_catch","zr","ev","eval","removeEvent","id","list","detachAllEvents","usercall","modality","_dhx_msg_cfg","modal_key","code","which","keyCode","message","keyboard","cancelBubble","cover","onkeydown","className","scrollHeight","display","text","button_css","info","area","position","hide","onclick","insertBefore","expire","timers","setTimeout","pull","_boxStructure","ok","cancel","setAttribute","inner","width","height","title","content","buttons","getElementById","source","_createBox","hidden","x","abs","floor","innerWidth","offsetWidth","y","innerHeight","offsetHeight","focus","modalbox","alertPopup","confirmPopup","boxPopup","box_params","uid","confirm","subtype","seed","hideAll","key","clearTimeout","gantt","version","_silent_mode","_silentStart","_silentEnd","_eventCatcher","copy","Number","String","Boolean","Object","hasOwnProperty","mixin","force","f","defined","_seed","functor","_get_position","_detectScrollSize","cssText","clientWidth","_click","_dbl_click","_context_menu","_on_click","trg","locate","default_action","_find_ev_handler","getTask","select_task","selectTask","_on_contextmenu","src","taskId","linkId","link_attribute","returnValue","hash","css","_on_dblclick","details_on_dblclick","showLightbox","_on_mousemove","_last_move_event","marker","started","pos","getPosition","sensitivity","mousemove","dragMove","limited_mousemove","dragScroll","updates_per_second","_checkTimeout","mouseup","dragEnd","diff_x","diff_y","distance","sqrt","pow","ignore","pageX","pageY","_init_grid","gantt_close","close","gantt_open","gantt_row","task","showDate","start_date","gantt_grid_head_cell","column","gantt_add","root_id","sort","_sort","direction","_render_grid_header","order_branch","_init_dnd","readonly","createTask","_init_resize","_render_grid","_is_grid_visible","_calc_grid_width","autofit","columns","getGridColumns","cols_width","unknown","_reset_columns_width","v","isNaN","diff","_get_grid_width","delta","index","cells","labels","locale","lineHeigth","scale_height","last","cssClass","templates","grid_header_class","join","label","cell","$grid_scale","lineHeight","_render_grid_header_resize","_render_grid_item","template","date_grid","tree","$level","grid_indent","has_child","_has_children","grid_open","grid_folder","grid_blank","grid_file","align","$index","grid_row_class","css_template","end_date","getState","selected_task","row_height","task_attribute","_set_item_state","state","_pull","$open","refreshData","grid_width","show_grid","_is_chart_visible","_x","getTaskIndex","branch","_branches","getGlobalTaskIndex","_order","moveTask","sid","tindex","tbranch","sindex","_replace_branch_child","tid","slice","concat","childTree","_getTaskTree","_item_level","$drop_target","dnd","$grid_data","dnd_sensitivity","_locateHTML","hideQuickInfo","_hideQuickInfo","_is_readonly","initial_open_state","$transparent","lastTaskOfLevel","level","ids","last_item","len","_getGridPos","dd","elementFromPoint","isTaskExists","over","next","prev","shift","getChildren","original","_original_columns","current","_scale_helpers","getSum","sizes","from","to","undefined","summ","setSumWidth","sum_width","scale","parts","oldWidth","adjustSize","full_width","splitSize","arr","full","shared","share","sortScales","scales","cellSize","unit","step","d","date","add","primaryScale","_init_template","scale_unit","date_scale","scale_cell_class","prepareConfigs","min_coll_width","container_width","heights","configs","main_scale","cfg","initScaleConfig","processIgnores","initColSizes","limitVisibleRange","unshift","alineScaleColumns","_ignore_time_config","skip_off_time","isWorkTime","ignore_x","display_count","min_col_width","line_height","cont_width","column_count","col_width","ignores","trace_x","eachColumn","iterateScales","lower_scale","upper_scale","upper_dates","lower_dates","end","prevUpper","up","upper_start","upper_end","lower_start","lower_end","targetWidth","actualWidth","start","_min_date","_max_date","curr","dates","right","lastDate","outDate","_tasks_dnd","drag","_events","before_start","before_finish","after_finish","_handlers","init","clear_drag_state","drag_mode","set_actions","evs","stage","move","_move","resize","_resize","progress","_resize_progress","data","$task_data","on_mouse_move","on_mouse_down","on_mouse_up","start_x","start_y","coords_x","_drag_task_coords","_date_from_pos","min_date","max_date","min_duration","calculateEndDate","_init_task_timing","max","min","new_start","new_end","posFromDate","obj_s_x","obj_e_x","start_drag","_start_dnd","_update_on_move","_get_mouse_pos","curr_date","getTime","_update_parents","refreshTask","_trim","_get_drag_mode","_is_flex_task","_fix_dnd_scale_time","_tasks","round_dnd_dates","time_step","roundDate","duration","duration_unit","_fix_working_times","work_time","correct_work_time","getClosestWorkTime","dir","_fireEvent","drag_id","updateTask","_dhx_changed","modes","classes","classname","assert","trigger","roundTaskDates","drag_state","_render_link","link","getLink","_linkRenderer","render_item","$task_links","_get_link_type","from_start","to_start","links","start_to_start","finish_to_start","start_to_finish","finish_to_finish","isLinkAllowed","_render_link_element","dots","_path_builder","get_points","drawer","_drawer","lines","get_lines","color","cssTemplate","link_class","highlight_critical_path","isCriticalLink","size","link_arrow_size","render_line","backgroundColor","endpoint","_render_link_arrow","borderColor","point","line_width","dirs","down","current_pos","path","line_to","get_path","line","_get_line","get_wrapper_sizes","wrapper_size","link_wrapper_width","link_line_width","get_line_sizes","line_size","marginTop","marginLeft","wrapper","innerPos","get_direction","vect","_y_from_ind","point_to","pt","get_endpoint","xy","dy","e_y","dx","e_x","shiftX","forward","sign","types","_get_task_visible_pos","_init_links_dnd","getLinePos","_get_task_pos","_get_task_height","updateMarkedHtml","getDndState","drag_link_class","html","drag_link","advanceMarker","_link_source_task","_link_target_task","_link_source_task_start","_link_target_task_start","resetDndState","showDirectingLine","s_x","s_y","getDirectionLine","link_direction_class","dist","tan","angle","atan","coordinateCircleQuarter","PI","sin","cos","ieTransform","shiftLeft","shiftTop","sX","eX","sY","eY","_direction","removeDirectionLine","$task_bars","start_marker","end_marker","link_edge_marker","link_landing_hover_area","_locate_css","_get_safe_type","milestone","_get_visible_milestone_width","_get_milestone_width","_dir_start","landing","_is_link_drop_area","prevTarget","prevLanding","_link_landing","prevToStart","targ","_dir_end","targetChanged","addLink","_get_link_state","link_landing_area","link_target_id","link_target_start","link_source_id","link_source_start","_init_tasks","refreshId","renders","oldId","newId","change_id","columnWidth","rendered","gantt_task_link","gantt_scale_cell","coll","_day_index_by_date","coll_date","_delete_link_handler","gantt_link_point","$target","$source","filter_grid_task","_create_filter","filter_chart_task","filter_link","filter_chart_bg","_task_renderers","_task_renderer","_taskRenderer","_render_task_element","_render_bg_line","$task_bg","render","_get_task_renderers","_get_link_renderers","filter_methods","filter_method","show_chart","_filter_task","_filter_link","show_links","isTaskVisible","_is_std_background","static_background","_task_layers","r","question","link_description","confirm_link_deleting","_dhtmlx_confirm","deleteLink","touch","getTaskNode","getLinkNode","_get_tasks_data","rows","_get_links_data","_lpull","_render_data","_sync_order","_update_layout_sizes","_render_bg_canvas","renderers","render_items","bar_height","$task","backgroundImage","data_els","_init_tasks_range","root","_init_task","Infinity","eachTask","child","_prepare_scale_html","date_to_str","cssclass","_render_tasks_scales","_scroll_resize","_set_sizes","scales_html","outer_width","data_width","helpers","subscales","_get_resize_options","avail_width","cfgs","min_column_width","scale_row_class","tplClass","$scroll_ver","$task_scale","row","show_task_cells","task_cell_class","odd","task_row_class","_adjust_scales","fit_tasks","old_min","old_max","refresh_links","refreshLink","isLinkExists","remove_item","_combine_item_class","basic","itemId","project","isCriticalTask","from_id","allowDrag","dragClass","_render_pair","task_height","origWidth","getTaskPosition","x2","getTaskTop","_get_task_width","editable_property","readonly_property","_task_default_render","padd","show_progress","_render_task_progress","_render_task_content","textColor","task_class","progressColor","side","_render_leftside_content","_render_rightside_content","drag_resize","drag_links","outer","painters","type_renderers","renderer","_render_side_content","_get_link_crossing_css","leftside_text","rightside_text","_get_conditions","leftside","cond","ln","tp","task_text","element","maxWidth","done","pr","opacity","progress_text","drag_progress","steps","second","minute","hour","day","week","month","year","ind","part","_get_coll_duration","wholeCells","partCell","days","xind","_get_x_pos","task_id","_get_visible_order","_get_task_coord","x_correction","isMilestone","_default_task_date","mstoneCorrection","_correct_shift","back","getTimezoneOffset","render_one","filter","_task_area_pulls","_task_area_renderers","container","dom","replace_item","items","buffer","createDocumentFragment","vis","item_id","newNode","replaceChild","oldid","newid","unload","_clear_renderers","load","_load_url","cl","l","on_load","parse","serialize","resp","raw","_process_loading","collections","_load_collections","tasks","_add_branch","_init_links","initial_scroll","showTask","_init_link","_sync_links","collections_loaded","collection","serverList","splice","option","option_key","_sync_order_item","$ignore","children","ord","master","json","JSON","_temp","dhx_security","security_key","_copyLink","_copyObject","charAt","xml_format","_xmlNodeToJSON","attrs_only","nodeType","_getCollections","loader","opts","itms","itm","attrs","k","attr","_getXML","toptag","skey","oldxml","startdate","est","enddate","predecessortasks","array","_working_time_helper","units","hours",6,"_get_unit_order","_timestamp","settings","timestamp","date_part","set_time","unset_time","is_working_unit","order","is_work_day","val","get_working_hours","is_work_hour","getHours","getDay","get_work_units_between","add_worktime","added","get_closest_worktime","future_target","prev_target","tick","maximum_loop","both_directins","inc","getTaskByTime","p","_is_parent_sync","_resync_parent","added_already","_sync_parent","_move_branch","old_parent","new_parent","$rendered_parent","old_id","new_id","newbranch","addTask","parent_id","startDate","first","_set_default_task_timing","duration_step","new_task","details_on_create","$new","deleteTask","_deleteTask","_getChildLinks","branches","_deleteRelatedLinks","use_dp","_dp","setUpdateMode","setGanttMode","setUpdated","_deleteLink","sendData","_deleteRelatedTasks","t_id","_unset_task","_update_flags","clearAll","_order_full","userdata","_lightbox_id","_selected_task","changeTaskId","_get_duration_unit","_get_type_name","type_value","getWorkHours","setWorkTime","helper","calculateDuration","mult","parseDate","open_tree_initially","task_type","$rendered_type","$no_end","$no_start","isChildOf","child_id","upper","lower","field","desc","criteria","els","getNext","getPrev","getParent","getSiblings","getNextSibling","siblings","getPrevSibling","_dp_init","dp","setTransactionMode","_serverProcessor","_methods","_ganttMode","newState","_sendTaskOrder","afterUpdate","_getRowData","getUserData","_change_id","changeLinkId","_row_style","row_id","getTaskRowNode","regexp","_delete_task","setUserData","updateLink","hasChild","_configure","_init_skin","skin","href","match","skinset","skins","_second_column_width","_third_column_width","_lightbox_template","_lightbox_methods","getLightbox","_center_lightbox","showCover","_fill_lightbox","_get_timepicker_step","getLabel","property","sections","_get_typed_lightbox_config","map_to","options","updateCollection","list_name","resetLightbox","getLightboxType","_lightbox_type","_lightbox","_is_lightbox_timepicker","wide_form","visibility","buttons_left","_migrate_buttons","buttons_right","drag_lightbox","_ready_to_dnd","cursor","_init_dnd_events","sns","_render_sections","ds","t_ds","resizeLightbox","_init_lightbox_events","block","form_blocks","con","lightbox_additional_height","scroll_top","scroll_left","view_height","clientHeight","scrollWidth","_cover","_document_height","_scroll_height","lightbox_events","_save_lightbox","$click","hideLightbox","_cancel_lightbox","sec","button_click","nextSibling","previousSibling","func","keys","edit_save","shiftKey","edit_cancel","getLightboxValues","_resolve_default_mapping","section","mapping","time_controls","time","get_value","hideCover","_custom_lightbox","_set_lightbox_values","s","lightbox_header","task_time","default_value","set_value","getLightboxSection","header","getValue","setValue","get_template_control","control","get_select_control","get_textarea_control","get_time_control","_move_while_dnd","_finish_dnd","_dnd_start_lb","gantt_unselectable","lb","now","_lb_start","_focus","select","getTimePicker","time_format","_time_format_order","dt","limit_time_select","last_hour","first_hour","setHours","time_option","getFullYear","month_full","tdate","getDate","_time_values","time_picker","setTime","getMinutes","_fill_lightbox_select","getMonth","textarea","_dhx_onchange","onchange","single_date","_time_format_size","auto_end_date","_update_lightbox_select","minutes","mapped_fields","singleDate","_calc_date","_get_start_date","_get_duration","endspan","task_date","_change_duration","inps","btns","charCode","duration_val","_filter","_display","allow_root","root_label","tmpDom","newOptions","onselect","lightbox","_silent_redraw_lightbox","oldType","formData","updTask","_extend_to_optional","lightbox_block","optional_time","enable","disable","disabled","update_block","button_text","duration_optional","time_optional","total","_tSend","escape","_utf","encodeURIComponent","setDataColumns","_columns","getSyncState","enableDataNames","_endnm","enablePartialDataSend","_changed","rowId","findRow","existing","set_invalid","is_invalid","_clearUpdateFlag","markRow","details","toString","checkBeforeUpdate","mytype","_h2","editStop","sendAllData","_beforeSendData","_sendData","serialize_one","stack","pref","a1","a2","a3","_user","valid","_getAllData","out","has_one","setVerificator","verifFunction","clearVerificator","pattern","defineAction","_uActions","afterUpdateCallback","action","btag","correct","soid","atag","finalizeUpdate","anObj","setOnAfterUpdate","enableDebug","setOnBeforeUpdateHandler","setAutoUpdate","interval","user","_need_update","_loader","_update_busy","xml_node","afterAutoUpdate","fullSync","self","setInterval","loadUpdate","getUpdates","_v","_a","vers","upds","status","scroll_size","cols","_reinit","_on_resize","$container","_init_html_area","_init_touch_events","_init_templates","_set_scroll_events","_obj","childs","$grid","$scroll_hor","edit","delete","confirm_deleting","confirm_deleting_title","_calculate_content_height","rows_height","hor_scroll_height","_scroll_hor","_calculate_content_width","chart_width","_scroll_ver","autosize","_clean_el_size","_get_box_styles","computed","getComputedStyle","properties","boxSizing","MozBoxSizing","horPaddings","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","vertPaddings","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","borderBox","outerWidth","outerHeight","_do_autosize","boxSizes","reqHeight","reqWidth","_y","dataHeight","gridWidth","getScrollState","_save_scroll_state","_cached_scroll_pos","_restore_scroll_state","scrollTo","date_x","scroll_to","task_scroll_offset","setSizes","preserve_scroll","new_pos","visible_date","onMouseWheel","wx","ff","deltaX","wheelDeltaX","wy","deltaY","wheelDelta","detail","_touch_scroll_active","barLeft","barTop","task_width","task_data_width","task_data_height","scroll_hor","scroll_ver","_get_target_node","attribute","test","trim","strict","drag_from_start","host","updPerSecond","timeout","_on_timeout","unselectTask","getSelectedId","changeLightboxType","_modules","month_short","month_short_hash","month_full_hash","setMinutes","setSeconds","setMilliseconds","time_part","week_start","start_on_monday","month_start","setDate","year_start","setMonth","day_start","hour_start","minute_start","_add_days","ndate","setYear","to_fixed","num","format","utc","Function","str_to_date","splt","mask","getISOWeek","nday","first_thursday","year_number","ordinal_date","week_number","getUTCISOWeek","convert_to_utc","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","xml_date","branch_loading","show_loading","api_date","server_utc","drag_move","dhx_save_btn","dhx_cancel_btn","dhx_delete_btn","project_sections","milestone_sections","min_grid_column_width","grid_resizer_column_attribute","grid_resizer_attribute","keep_grid_width","grid_resize","initial","registeredTemplates","_reg_templates","gantt_save_btn","icon_save","gantt_cancel_btn","icon_cancel","gantt_delete_btn","icon_delete","link_start","link_end","allowed","jQuery","$","methods","fn","dhx_gantt","views","each","attaches","attachGantt","cmp","attachObject","vs","av","grid","border","gridId","gridObj","method_name","day_full","day_short","icon_details","icon_edit","confirm_closing","section_description","section_time","section_type","column_text","column_start_date","column_duration","column_add","type_task","type_project","type_milestone","weeks","months","years","skyblue","meadow","terrace","broadway","_config_buttons_left","_config_buttons_right","touch_drag","msPointerEnabled","_touch_events","pointerType","MSPOINTER_TYPE_MOUSE","touches","names","accessor","block_action","scroll_state","dblclicktime","action_mode","scroll_mode","action_start","_gantt_touch_event_ready"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dhtmlxgantt.js","sources":["dhtmlxgantt.js"],"names":["dtmlXMLLoaderObject","funcObject","dhtmlObject","async","rSeed","this","xmlDoc","onloadAction","mainObject","waitCall","callerFunction","handler","e","window","event","getAbsoluteLeft","htmlObject","getOffset","left","getAbsoluteTop","top","getOffsetSum","elem","parseInt","offsetTop","offsetLeft","offsetParent","getOffsetRect","box","getBoundingClientRect","body","document","docElem","documentElement","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","Math","round","convertStringToBoolean","inputString","toLowerCase","getUrlSymbol","str","indexOf","dhtmlDragAndDropObject","dhtmlDragAndDrop","lastLanding","dragNode","dragStartNode","dragStartObject","tempDOMU","tempDOMM","waitDrag","_dhtmlxError","catches","dhtmlXHeir","a","b","c","dhtmlxEvent","el","addEventListener","attachEvent","dhtmlxDetachEvent","removeEventListener","detachEvent","dhtmlxDnD","obj","config","_settings","dhtmlxEventable","dhtmlx","bind","original_target","target","srcElement","dragStart","dataProcessor","serverProcessorURL","serverProcessor","action_param","object","updatedRows","autoUpdate","updateMode","_tMode","post_delim","_waitMode","_in_progress","_invalid","mandatoryFields","messages","styles","updated","inserted","deleted","invalid","invalid_cell","error","clear","enableUTFencoding","extend_api","name","map","ext","t","that","tagName","apply","_init","arguments","_patch","prototype","dhtmlxAjax","get","url","callback","length","loadXML","post","getSync","postSync","count","waitLoadFunction","once","check","readyState","call","getXMLTopNode","oldObj","z","responseXML","temp","getElementsByTagName","split","_retry","_isIE","loadXMLString","responseText","replace","dhtmlxError","throwError","createElement","xmlString","silent","ActiveXObject","onreadystatechange","parser","DOMParser","parseFromString","filePath","postMode","postVars","rpc","Date","valueOf","XMLHttpRequest","open","setRequestHeader","navigator","userAgent","send","destructor","_filterXPath","_getAllNamedChilds","doXPath","doXPathOpera","doXSLTransToObject","doXSLTransToString","doSerialization","xmlNodeToJSON","setXSLParamValue","node","i","attributes","value","firstChild","nodeValue","childNodes","push","removeDraggableItem","htmlNode","onmousedown","dragStarter","dragLanding","addDraggableItem","preCreateDragCopy","addDragLanding","button","onmouseup","onmousemove","stopDrag","callDrag","downtime","preventDefault","dragger","_createDragNode","onselectstart","gldragNode","appendChild","pWindow","initFrameRoute","parentNode","grd","old","removeChild","oldBody","_dragOut","div","innerHTML","outerHTML","cloneNode","style","clientX","fx","clientY","fy","checkLanding","calculateFramePosition","n","parent","frames","frameElement","ls","_dragIn","lastLanding_scr","_onNotFound","mode","stopFrameRoute","_drag","win","_isFF","_FFrv","_isOpera","_isKHTML","_isMacOS","_isChrome","_KHTMLrv","_OperaRv","parseFloat","substr","appName","appVersion","compatMode","xpathExp","docObj","namespace","result_type","XPathResult","nodeName","setProperty","selectSingleNode","selectNodes","Array","nodeObj","ownerDocument","retType","ANY_TYPE","FIRST_ORDERED_NODE_TYPE","rowsCol","col","evaluate","singleNodeValue","thisColMemb","iterateNext","catchError","type","func_name","params","alert","getAttribute","toUpperCase","j","xslDoc","paramName","paramValue","item","result","transformNodeToObject","transformNode","XSLProcessor","XSLTProcessor","importStylesheet","transformToDocument","res","xml","xmlSerializer","XMLSerializer","serializeToString","catcher","callObj","eventCatcher","addEvent","callEvent","arg0","checkEvent","dhx_catch","zr","ev","eval","removeEvent","id","list","detachAllEvents","usercall","modality","_dhx_msg_cfg","modal_key","code","which","keyCode","message","keyboard","cancelBubble","cover","onkeydown","className","scrollHeight","display","text","button_css","info","area","position","hide","onclick","insertBefore","expire","timers","setTimeout","pull","_boxStructure","ok","cancel","setAttribute","inner","width","height","title","content","buttons","getElementById","source","_createBox","hidden","x","abs","floor","innerWidth","offsetWidth","y","innerHeight","offsetHeight","focus","modalbox","alertPopup","confirmPopup","boxPopup","box_params","uid","confirm","subtype","seed","hideAll","key","clearTimeout","gantt","version","_silent_mode","_silentStart","_silentEnd","_eventCatcher","copy","Number","String","Boolean","Object","hasOwnProperty","mixin","force","f","defined","_seed","functor","_get_position","_detectScrollSize","cssText","clientWidth","_click","_dbl_click","_context_menu","_on_click","trg","locate","default_action","_find_ev_handler","getTask","select_task","selectTask","_on_contextmenu","src","taskId","linkId","link_attribute","returnValue","hash","css","_on_dblclick","details_on_dblclick","showLightbox","_on_mousemove","_last_move_event","marker","started","pos","getPosition","sensitivity","mousemove","dragMove","limited_mousemove","dragScroll","updates_per_second","_checkTimeout","mouseup","dragEnd","diff_x","diff_y","distance","sqrt","pow","ignore","pageX","pageY","_init_grid","gantt_close","close","gantt_open","gantt_row","task","showDate","start_date","gantt_grid_head_cell","column","gantt_add","root_id","sort","_sort","direction","_render_grid_header","order_branch","_init_dnd","readonly","createTask","_init_resize","_render_grid","_is_grid_visible","_calc_grid_width","autofit","columns","getGridColumns","cols_width","unknown","_reset_columns_width","v","isNaN","diff","_get_grid_width","delta","index","cells","labels","locale","lineHeigth","scale_height","last","cssClass","templates","grid_header_class","join","label","cell","$grid_scale","lineHeight","_render_grid_header_resize","_render_grid_item","template","date_grid","tree","$level","grid_indent","has_child","_has_children","grid_open","grid_folder","grid_blank","grid_file","align","$index","grid_row_class","css_template","end_date","getState","selected_task","row_height","task_attribute","_set_item_state","state","_pull","$open","refreshData","grid_width","show_grid","_is_chart_visible","_x","getTaskIndex","branch","_branches","getGlobalTaskIndex","_order","moveTask","sid","tindex","tbranch","sindex","_replace_branch_child","tid","slice","concat","childTree","_getTaskTree","calculateTaskLevel","$drop_target","dnd","$grid_data","dnd_sensitivity","_locateHTML","hideQuickInfo","_hideQuickInfo","_is_readonly","initial_open_state","$transparent","lastTaskOfLevel","level","ids","last_item","len","_getGridPos","dd","elementFromPoint","isTaskExists","over","next","prev","shift","getChildren","original","_original_columns","current","_scale_helpers","getSum","sizes","from","to","undefined","summ","setSumWidth","sum_width","scale","parts","oldWidth","adjustSize","full_width","splitSize","arr","full","shared","share","sortScales","scales","cellSize","unit","step","d","date","add","primaryScale","_init_template","scale_unit","date_scale","scale_cell_class","prepareConfigs","min_coll_width","container_width","heights","configs","main_scale","cfg","initScaleConfig","processIgnores","initColSizes","limitVisibleRange","unshift","alineScaleColumns","_ignore_time_config","skip_off_time","isWorkTime","ignore_x","display_count","min_col_width","line_height","cont_width","column_count","col_width","ignores","trace_x","eachColumn","iterateScales","lower_scale","upper_scale","upper_dates","lower_dates","end","prevUpper","up","upper_start","upper_end","lower_start","lower_end","targetWidth","actualWidth","start","_min_date","_max_date","curr","dates","right","lastDate","outDate","_tasks_dnd","drag","_events","before_start","before_finish","after_finish","_handlers","init","clear_drag_state","drag_mode","set_actions","evs","stage","move","_move","resize","_resize","progress","_resize_progress","data","$task_data","on_mouse_move","on_mouse_down","on_mouse_up","start_x","start_y","coords_x","_drag_task_coords","_date_from_pos","min_date","max_date","min_duration","calculateEndDate","_init_task_timing","max","min","new_start","new_end","posFromDate","obj_s_x","obj_e_x","start_drag","_start_dnd","_update_on_move","_get_mouse_pos","curr_date","getTime","_update_parents","refreshTask","_trim","_get_drag_mode","_is_flex_task","_fix_dnd_scale_time","_tasks","round_dnd_dates","time_step","roundDate","duration","duration_unit","_fix_working_times","work_time","correct_work_time","getClosestWorkTime","dir","correctTaskWorkTime","_fireEvent","drag_id","updateTask","_dhx_changed","modes","classes","classname","assert","trigger","roundTaskDates","drag_state","_render_link","link","getLink","_linkRenderer","render_item","$task_links","_get_link_type","from_start","to_start","links","start_to_start","finish_to_start","start_to_finish","finish_to_finish","isLinkAllowed","_render_link_element","dots","_path_builder","get_points","drawer","_drawer","lines","get_lines","color","cssTemplate","link_class","highlight_critical_path","isCriticalLink","size","link_arrow_size","render_line","backgroundColor","endpoint","_render_link_arrow","borderColor","point","line_width","dirs","down","current_pos","path","line_to","get_path","line","_get_line","get_wrapper_sizes","wrapper_size","link_wrapper_width","link_line_width","get_line_sizes","line_size","marginTop","marginLeft","wrapper","innerPos","get_direction","vect","_y_from_ind","point_to","pt","get_endpoint","xy","dy","e_y","dx","e_x","shiftX","forward","sign","types","_get_task_visible_pos","_init_links_dnd","getLinePos","_get_task_pos","_get_task_height","updateMarkedHtml","getDndState","drag_link_class","html","drag_link","advanceMarker","_link_source_task","_link_target_task","_link_source_task_start","_link_target_task_start","resetDndState","showDirectingLine","s_x","s_y","getDirectionLine","link_direction_class","dist","tan","angle","atan","coordinateCircleQuarter","PI","sin","cos","ieTransform","shiftLeft","shiftTop","sX","eX","sY","eY","_direction","removeDirectionLine","$task_bars","start_marker","end_marker","link_edge_marker","link_landing_hover_area","_locate_css","_get_safe_type","milestone","_get_visible_milestone_width","_get_milestone_width","_dir_start","landing","_is_link_drop_area","prevTarget","prevLanding","_link_landing","prevToStart","targ","_dir_end","targetChanged","addLink","_get_link_state","link_landing_area","link_target_id","link_target_start","link_source_id","link_source_start","_init_tasks","refreshId","renders","oldId","newId","change_id","columnWidth","rendered","gantt_task_link","gantt_scale_cell","coll","_day_index_by_date","coll_date","_delete_link_handler","gantt_link_point","$target","$source","filter_grid_task","_create_filter","filter_chart_task","filter_link","filter_chart_bg","_task_renderers","_task_renderer","_taskRenderer","_render_task_element","_render_bg_line","$task_bg","render","_get_task_renderers","_get_link_renderers","filter_methods","filter_method","show_chart","_filter_task","_filter_link","show_links","isTaskVisible","_is_std_background","static_background","_task_layers","r","question","link_description","confirm_link_deleting","_dhtmlx_confirm","deleteLink","touch","getTaskNode","getLinkNode","_get_tasks_data","rows","calculateProjectDuration","_get_links_data","_lpull","_render_data","_sync_order","_update_layout_sizes","_render_bg_canvas","renderers","render_items","bar_height","$task","backgroundImage","data_els","_is_layer","_scale_range_unit","scale_offset_minimal","_get_scales","_init_tasks_range","root","_init_task","Infinity","eachTask","child","_prepare_scale_html","date_to_str","cssclass","helpers","subscales","_render_tasks_scales","_scroll_resize","_set_sizes","scales_html","outer_width","data_width","_get_resize_options","avail_width","autosize_min_width","cfgs","min_column_width","scale_row_class","tplClass","$scroll_ver","$task_scale","row","show_task_cells","task_cell_class","odd","task_row_class","_adjust_scales","fit_tasks","old_min","old_max","refresh_links","refreshLink","isLinkExists","remove_item","_combine_item_class","basic","itemId","project","touch_drag","isCriticalTask","from_id","allowDrag","dragClass","_render_pair","task_height","origWidth","getTaskPosition","x2","getTaskTop","_get_task_width","editable_property","readonly_property","_task_default_render","padd","show_progress","_render_task_progress","_render_task_content","textColor","task_class","progressColor","side","_render_leftside_content","_render_rightside_content","drag_resize","drag_links","outer","painters","type_renderers","renderer","_render_side_content","_get_link_crossing_css","leftside_text","rightside_text","_get_conditions","leftside","cond","ln","tp","task_text","element","maxWidth","done","pr","opacity","progress_text","drag_progress","steps","second","minute","hour","day","week","month","year","ind","part","_get_coll_duration","wholeCells","partCell","days","xind","_get_x_pos","task_id","_get_visible_order","_get_task_coord","x_correction","isMilestone","_default_task_date","mstoneCorrection","_correct_shift","back","getTimezoneOffset","dom_element","hasAttribute","layer_attribute","render_one","filter","_task_area_pulls","_task_area_renderers","container","dom","replace_item","items","buffer","createDocumentFragment","vis","item_id","newNode","replaceChild","oldid","newid","unload","_clear_renderers","load","_load_url","cl","_load_type","l","on_load","parse","serialize","resp","raw","_process_loading","collections","_load_collections","tasks","_add_branch","_init_links","initial_scroll","showTask","_init_link","_sync_links","collections_loaded","collection","serverList","splice","option","option_key","_sync_order_item","$ignore","children","ord","master","json","JSON","_temp","dhx_security","security_key","_copyLink","_copyObject","charAt","xml_format","_xmlNodeToJSON","attrs_only","nodeType","_getCollections","loader","opts","itms","itm","attrs","k","attr","_getXML","toptag","skey","oldxml","startdate","est","enddate","predecessortasks","array","_working_time_helper","units","hours",6,"_get_unit_order","_timestamp","settings","timestamp","date_part","set_time","unset_time","is_working_unit","order","is_work_day","val","get_working_hours","is_work_hour","getHours","getDay","get_work_units_between","add_worktime","added","get_closest_worktime","future_target","prev_target","tick","maximum_loop","both_directins","inc","getTaskByTime","p","_is_parent_sync","_resync_parent","added_already","_sync_parent","_move_branch","old_parent","new_parent","$rendered_parent","old_id","new_id","newbranch","addTask","parent_id","startDate","first","_set_default_task_timing","duration_step","new_task","details_on_create","$new","deleteTask","_deleteTask","_getChildLinks","branches","_deleteRelatedLinks","use_dp","_dp","setUpdateMode","setGanttMode","setUpdated","_deleteLink","sendData","_deleteRelatedTasks","t_id","_unset_task","_update_flags","clearAll","_order_full","userdata","_lightbox_id","_selected_task","changeTaskId","_get_duration_unit","_get_type_name","type_value","getWorkHours","setWorkTime","helper","calculateDuration","mult","parseDate","open_tree_initially","task_type","$rendered_type","$no_end","$no_start","_assign_project_dates","isChildOf","child_id","upper","lower","field","desc","criteria","els","getNext","getPrev","getParent","getSiblings","getNextSibling","siblings","getPrevSibling","_dp_init","dp","setTransactionMode","_serverProcessor","_methods","_ganttMode","newState","_sendTaskOrder","afterUpdate","_getRowData","getUserData","_change_id","changeLinkId","_row_style","row_id","getTaskRowNode","regexp","_delete_task","setUserData","updateLink","hasChild","_configure","_init_skin","skin","href","match","skinset","skins","_second_column_width","_third_column_width","_lightbox_template","_lightbox_methods","getLightbox","_center_lightbox","showCover","_fill_lightbox","_get_timepicker_step","getLabel","property","sections","_get_typed_lightbox_config","map_to","options","updateCollection","list_name","resetLightbox","getLightboxType","_lightbox_type","_lightbox","_is_lightbox_timepicker","wide_form","visibility","buttons_left","_migrate_buttons","buttons_right","drag_lightbox","_ready_to_dnd","cursor","_init_dnd_events","sns","_render_sections","ds","t_ds","resizeLightbox","_init_lightbox_events","block","form_blocks","con","lightbox_additional_height","scroll_top","scroll_left","view_height","clientHeight","scrollWidth","_cover","_document_height","_scroll_height","lightbox_events","_save_lightbox","$click","hideLightbox","_cancel_lightbox","sec","button_click","nextSibling","previousSibling","func","keys","edit_save","shiftKey","edit_cancel","getLightboxValues","_resolve_default_mapping","section","mapping","time_controls","time","get_value","hideCover","_custom_lightbox","_set_lightbox_values","s","lightbox_header","task_time","default_value","set_value","getLightboxSection","header","getValue","setValue","get_template_control","control","get_select_control","get_textarea_control","get_time_control","_move_while_dnd","_finish_dnd","_dnd_start_lb","gantt_unselectable","lb","now","_lb_start","_focus","select","getTimePicker","time_format","_time_format_order","dt","limit_time_select","last_hour","first_hour","setHours","time_option","getFullYear","month_full","tdate","getDate","_time_values","time_picker","setTime","getMinutes","_fill_lightbox_select","getMonth","textarea","_dhx_onchange","onchange","single_date","_time_format_size","auto_end_date","_update_lightbox_select","minutes","mapped_fields","singleDate","_calc_date","_get_start_date","_get_duration","endspan","task_date","_change_duration","inps","btns","charCode","duration_val","_filter","_display","allow_root","root_label","tmpDom","newOptions","onselect","lightbox","_silent_redraw_lightbox","oldType","formData","updTask","_extend_to_optional","lightbox_block","optional_time","enable","disable","disabled","update_block","button_text","duration_optional","time_optional","total","_tSend","escape","_utf","encodeURIComponent","setDataColumns","_columns","getSyncState","enableDataNames","_endnm","enablePartialDataSend","_changed","rowId","findRow","existing","set_invalid","is_invalid","_clearUpdateFlag","markRow","details","toString","checkBeforeUpdate","mytype","_h2","editStop","sendAllData","_beforeSendData","_sendData","serialize_one","stack","pref","a1","a2","a3","_user","valid","_getAllData","out","has_one","setVerificator","verifFunction","clearVerificator","pattern","defineAction","_uActions","afterUpdateCallback","action","btag","correct","soid","atag","finalizeUpdate","anObj","setOnAfterUpdate","enableDebug","setOnBeforeUpdateHandler","setAutoUpdate","interval","user","_need_update","_loader","_update_busy","xml_node","afterAutoUpdate","fullSync","self","setInterval","loadUpdate","getUpdates","_v","_a","vers","upds","status","scroll_size","cols","_on_resize","$container","_reinit","_init_html_area","_init_touch_events","_init_templates","_set_scroll_events","_obj","childs","$grid","$scroll_hor","edit","delete","confirm_deleting","confirm_deleting_title","_calculate_content_height","rows_height","hor_scroll_height","_scroll_hor","_calculate_content_width","chart_width","_scroll_ver","autosize","_clean_el_size","_get_box_styles","computed","getComputedStyle","properties","boxSizing","MozBoxSizing","horPaddings","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","vertPaddings","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","borderBox","outerWidth","outerHeight","_do_autosize","boxSizes","reqHeight","reqWidth","_y","dataHeight","gridWidth","getScrollState","_save_scroll_state","_cached_scroll_pos","_restore_scroll_state","scrollTo","date_x","scroll_to","task_scroll_offset","setSizes","preserve_scroll","new_pos","visible_date","onMouseWheel","wx","ff","deltaX","wheelDeltaX","wy","deltaY","wheelDelta","detail","_touch_scroll_active","barLeft","barTop","task_width","task_data_width","task_data_height","scroll_hor","scroll_ver","_get_target_node","attribute","test","trim","strict","drag_from_start","_touch_drag","host","updPerSecond","timeout","_on_timeout","unselectTask","getSelectedId","changeLightboxType","_modules","month_short","month_short_hash","month_full_hash","setMinutes","setSeconds","setMilliseconds","time_part","week_start","start_on_monday","month_start","setDate","year_start","setMonth","day_start","hour_start","minute_start","_add_days","ndate","setYear","to_fixed","num","format","utc","Function","str_to_date","splt","mask","getISOWeek","nday","first_thursday","year_number","ordinal_date","week_number","getUTCISOWeek","convert_to_utc","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","xml_date","branch_loading","show_loading","api_date","server_utc","drag_move","dhx_save_btn","dhx_cancel_btn","dhx_delete_btn","project_sections","milestone_sections","min_grid_column_width","grid_resizer_column_attribute","grid_resizer_attribute","keep_grid_width","grid_resize","initial","registeredTemplates","_reg_templates","gantt_save_btn","icon_save","gantt_cancel_btn","icon_cancel","gantt_delete_btn","icon_delete","link_start","link_end","allowed","jQuery","$","methods","fn","dhx_gantt","views","each","attaches","attachGantt","cmp","attachObject","vs","av","grid","border","gridId","gridObj","method_name","day_full","day_short","icon_details","icon_edit","confirm_closing","section_description","section_time","section_type","column_text","column_start_date","column_duration","column_add","type_task","type_project","type_milestone","weeks","months","years","skyblue","meadow","terrace","broadway","_config_buttons_left","_config_buttons_right","touch_feedback","_touch_feedback","vibrate","msPointerEnabled","_touch_events","pointerType","MSPOINTER_TYPE_MOUSE","touches","names","accessor","block_action","cloneTaskRendered","current_target","scroll_state","dblclicktime","action_mode","scroll_mode","action_start","long_tap_timer","_gantt_touch_event_ready"],"mappings":"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"} \ No newline at end of file diff --git a/codebase/sources/ext/dhtmlxgantt_marker.js b/codebase/sources/ext/dhtmlxgantt_marker.js index 8e5d4954..19db134b 100644 --- a/codebase/sources/ext/dhtmlxgantt_marker.js +++ b/codebase/sources/ext/dhtmlxgantt_marker.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. @@ -12,6 +12,10 @@ if(!gantt._markers) gantt.config.show_markers = true; +gantt.attachEvent("onClear", function(){ + gantt._markers = {}; +}); + gantt.attachEvent("onGanttReady", function(){ var markerArea = document.createElement("div"); markerArea.className = "gantt_marker_area"; diff --git a/codebase/sources/ext/dhtmlxgantt_marker.js.map b/codebase/sources/ext/dhtmlxgantt_marker.js.map index ae725482..3a2a8d1e 100644 --- a/codebase/sources/ext/dhtmlxgantt_marker.js.map +++ b/codebase/sources/ext/dhtmlxgantt_marker.js.map @@ -1 +1 @@ -{"version":3,"file":"dhtmlxgantt_marker.js","sources":["dhtmlxgantt_marker.js"],"names":["gantt","_markers","config","show_markers","attachEvent","render_marker","marker","start_date","div","document","createElement","setAttribute","id","css","templates","marker_class","title","className","start","posFromDate","style","left","height","Math","max","_y_from_ind","_order","length","end_date","end","width","text","innerHTML","markerArea","$task_data","appendChild","$marker_area","_markerRenderer","_task_renderer","renderMarkers","getMarker","this","addMarker","dhtmlx","uid","deleteMarker","updateMarker","render_item","to_render","push","render_items"],"mappings":";;;;;;;;AASIA,MAAMC,WACTD,MAAMC,aAEPD,MAAME,OAAOC,cAAe,EAE5BH,MAAMI,YAAY,eAAgB,WAQjC,QAASC,GAAcC,GACtB,IAAIN,MAAME,OAAOC,aAChB,OAAO,CAER,KAAIG,EAAOC,WACV,OAAO,CAER,IAAIC,GAAMC,SAASC,cAAc,MAEjCF,GAAIG,aAAa,YAAaL,EAAOM,GAErC,IAAIC,GAAM,cACPb,OAAMc,UAAUC,eAClBF,GAAO,IAAMb,MAAMc,UAAUC,aAAaT,IAExCA,EAAOO,MACTA,GAAO,IAAMP,EAAOO,KAGlBP,EAAOU,QACTR,EAAIQ,MAAQV,EAAOU,OAEpBR,EAAIS,UAAYJ,CAEhB,IAAIK,GAAQlB,MAAMmB,YAAYb,EAAOC,WAGrC,IAFAC,EAAIY,MAAMC,KAAOH,EAAQ,KACzBV,EAAIY,MAAME,OAASC,KAAKC,IAAIxB,MAAMyB,YAAYzB,MAAM0B,OAAOC,QAAS,GAAK,KACtErB,EAAOsB,SAAS,CAClB,GAAIC,GAAM7B,MAAMmB,YAAYb,EAAOsB,SACnCpB;EAAIY,MAAMU,MAAQP,KAAKC,IAAKK,EAAMX,EAAQ,GAAK,KAQhD,MAJGZ,GAAOyB,OACTvB,EAAIwB,UAAY,sCAAwC1B,EAAOyB,KAAO,UAGhEvB,EA5CR,GAAIyB,GAAaxB,SAASC,cAAc,MACxCuB,GAAWhB,UAAY,oBACvBjB,MAAMkC,WAAWC,YAAYF,GAC7BjC,MAAMoC,aAAeH,EAErBjC,MAAMqC,gBAAkBrC,MAAMsC,eAAe,UAAWjC,EAAeL,MAAMoC,aAAc,QA4C5FpC,MAAMI,YAAY,eAAgB,WACjCJ,MAAMuC,kBAGPvC,MAAMwC,UAAY,SAAS5B,GAC1B,MAAI6B,MAAKxC,SAEFwC,KAAKxC,SAASW,GAFK,MAK3BZ,MAAM0C,UAAY,SAASpC,GAK1B,MAJAA,GAAOM,GAAKN,EAAOM,IAAM+B,OAAOC,MAEhCH,KAAKxC,SAASK,EAAOM,IAAMN,EAEpBA,EAAOM;EAGfZ,MAAM6C,aAAe,SAASjC,GAC7B,MAAI6B,MAAKxC,UAAawC,KAAKxC,SAASW,UAG7B6B,MAAKxC,SAASW,IACd,IAHC,GAKTZ,MAAM8C,aAAe,SAASlC,GAC1B6B,KAAKJ,iBACPI,KAAKJ,gBAAgBU,YAAYnC,IAEnCZ,MAAMuC,cAAgB,WACrB,IAAIE,KAAKxC,SACR,OAAO,CAER,KAAIwC,KAAKJ,gBACR,OAAO,CAER,IAAIW,KAEJ,KAAI,GAAIpC,KAAM6B,MAAKxC,SAClB+C,EAAUC,KAAKR,KAAKxC,SAASW,GAI9B,OAFA6B,MAAKJ,gBAAgBa,aAAaF,IAE3B"} \ No newline at end of file +{"version":3,"file":"dhtmlxgantt_marker.js","sources":["dhtmlxgantt_marker.js"],"names":["gantt","_markers","config","show_markers","attachEvent","render_marker","marker","start_date","div","document","createElement","setAttribute","id","css","templates","marker_class","title","className","start","posFromDate","style","left","height","Math","max","_y_from_ind","_order","length","end_date","end","width","text","innerHTML","markerArea","$task_data","appendChild","$marker_area","_markerRenderer","_task_renderer","renderMarkers","getMarker","this","addMarker","dhtmlx","uid","deleteMarker","updateMarker","render_item","to_render","push","render_items"],"mappings":";;;;;;;;AASIA,MAAMC,WACTD,MAAMC,aAEPD,MAAME,OAAOC,cAAe,EAE5BH,MAAMI,YAAY,UAAW,WAC5BJ,MAAMC,cAGPD,MAAMI,YAAY,eAAgB,WAQjC,QAASC,GAAcC,GACtB,IAAIN,MAAME,OAAOC,aAChB,OAAO,CAER,KAAIG,EAAOC,WACV,OAAO,CAER,IAAIC,GAAMC,SAASC,cAAc,MAEjCF,GAAIG,aAAa,YAAaL,EAAOM,GAErC,IAAIC,GAAM,cACPb,OAAMc,UAAUC,eAClBF,GAAO,IAAMb,MAAMc,UAAUC,aAAaT,IAExCA,EAAOO,MACTA,GAAO,IAAMP,EAAOO,KAGlBP,EAAOU,QACTR,EAAIQ,MAAQV,EAAOU,OAEpBR,EAAIS,UAAYJ,CAEhB,IAAIK,GAAQlB,MAAMmB,YAAYb,EAAOC,WAGrC;GAFAC,EAAIY,MAAMC,KAAOH,EAAQ,KACzBV,EAAIY,MAAME,OAASC,KAAKC,IAAIxB,MAAMyB,YAAYzB,MAAM0B,OAAOC,QAAS,GAAK,KACtErB,EAAOsB,SAAS,CAClB,GAAIC,GAAM7B,MAAMmB,YAAYb,EAAOsB,SACnCpB,GAAIY,MAAMU,MAAQP,KAAKC,IAAKK,EAAMX,EAAQ,GAAK,KAQhD,MAJGZ,GAAOyB,OACTvB,EAAIwB,UAAY,sCAAwC1B,EAAOyB,KAAO,UAGhEvB,EA5CR,GAAIyB,GAAaxB,SAASC,cAAc,MACxCuB,GAAWhB,UAAY,oBACvBjB,MAAMkC,WAAWC,YAAYF,GAC7BjC,MAAMoC,aAAeH,EAErBjC,MAAMqC,gBAAkBrC,MAAMsC,eAAe,UAAWjC,EAAeL,MAAMoC,aAAc,QA4C5FpC,MAAMI,YAAY,eAAgB,WACjCJ,MAAMuC;GAGPvC,MAAMwC,UAAY,SAAS5B,GAC1B,MAAI6B,MAAKxC,SAEFwC,KAAKxC,SAASW,GAFK,MAK3BZ,MAAM0C,UAAY,SAASpC,GAK1B,MAJAA,GAAOM,GAAKN,EAAOM,IAAM+B,OAAOC,MAEhCH,KAAKxC,SAASK,EAAOM,IAAMN,EAEpBA,EAAOM,IAGfZ,MAAM6C,aAAe,SAASjC,GAC7B,MAAI6B,MAAKxC,UAAawC,KAAKxC,SAASW,UAG7B6B,MAAKxC,SAASW,IACd,IAHC,GAKTZ,MAAM8C,aAAe,SAASlC,GAC1B6B,KAAKJ,iBACPI,KAAKJ,gBAAgBU,YAAYnC,IAEnCZ,MAAMuC,cAAgB,WACrB,IAAIE,KAAKxC,SACR,OAAO,CAER,KAAIwC,KAAKJ,gBACR,OAAO,CAER,IAAIW,KAEJ,KAAI,GAAIpC,KAAM6B,MAAKxC,SAClB+C,EAAUC,KAAKR,KAAKxC,SAASW,GAI9B;MAFA6B,MAAKJ,gBAAgBa,aAAaF,IAE3B"} \ No newline at end of file diff --git a/codebase/sources/ext/dhtmlxgantt_quick_info.js b/codebase/sources/ext/dhtmlxgantt_quick_info.js index 5098e080..1e4ee3f5 100644 --- a/codebase/sources/ext/dhtmlxgantt_quick_info.js +++ b/codebase/sources/ext/dhtmlxgantt_quick_info.js @@ -1,13 +1,14 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ gantt.config.quickinfo_buttons = ["icon_delete","icon_edit"]; gantt.config.quick_info_detached = true; +gantt.config.show_quick_info = true; gantt.attachEvent("onTaskClick", function(id){ gantt.showQuickInfo(id); @@ -32,13 +33,13 @@ gantt.templates.quick_info_date = function(start, end, ev){ gantt.templates.quick_info_class = function(start, end, task){ return ""; }; gantt.showQuickInfo = function(id){ - if (id == this._quick_info_box_id) return; + if (id == this._quick_info_box_id || !this.config.show_quick_info) return; this.hideQuickInfo(true); var pos = this._get_event_counter_part(id); if (pos){ - this._quick_info_box = this._init_quick_info(pos); + this._quick_info_box = this._init_quick_info(pos, id); this._quick_info_box.className = gantt._prepare_quick_info_classname(id); @@ -121,7 +122,17 @@ gantt._prepare_quick_info_classname = function(id){ return css; }; -gantt._init_quick_info = function(){ +gantt._init_quick_info = function(pos, id){ + var task = gantt.getTask(id); + if(typeof this._quick_info_readonly == "boolean"){ + if(this._is_readonly(task) !== this._quick_info_readonly){ + gantt.hideQuickInfo(true); + this._quick_info_box = null; + } + } + + this._quick_info_readonly = this._is_readonly(task); + if (!this._quick_info_box){ var qi = this._quick_info_box = document.createElement("div"); //title @@ -133,8 +144,15 @@ gantt._init_quick_info = function(){ //buttons html += "
"; var buttons = gantt.config.quickinfo_buttons; - for (var i = 0; i < buttons.length; i++) + + var is_editor = {"icon_delete":true,"icon_edit":true}; + + for (var i = 0; i < buttons.length; i++){ + if(this._quick_info_readonly && is_editor[buttons[i]]) + continue; + html += "
"+gantt.locale.labels[buttons[i]]+"
"; + } html += "
"; qi.innerHTML = html; diff --git a/codebase/sources/ext/dhtmlxgantt_quick_info.js.map b/codebase/sources/ext/dhtmlxgantt_quick_info.js.map index 383ef9c0..1b9d3410 100644 --- a/codebase/sources/ext/dhtmlxgantt_quick_info.js.map +++ b/codebase/sources/ext/dhtmlxgantt_quick_info.js.map @@ -1 +1 @@ -{"version":3,"file":"dhtmlxgantt_quick_info.js","sources":["dhtmlxgantt_quick_info.js"],"names":["gantt","config","quickinfo_buttons","quick_info_detached","attachEvent","id","showQuickInfo","events","hiding_function","_hideQuickInfo","i","length","templates","quick_info_title","start","end","ev","text","substr","quick_info_content","details","quick_info_date","task_time","quick_info_class","this","_quick_info_box_id","hideQuickInfo","pos","_get_event_counter_part","_quick_info_box","_init_quick_info","className","_prepare_quick_info_classname","_fill_quick_data","_show_quick_info","forced","qi","parentNode","removeChild","style","right","left","dhtmlxEvent","window","e","keyCode","nodeName","toLowerCase","$task_data","appendChild","width","offsetWidth","height","offsetHeight","scrolls","getScrollState","screen_width","$task","x","Math","min","max","dx","top","dy","setTimeout","_obj","task","getTask","css","template","start_date","end_date","document","createElement","html","buttons","locale","labels","innerHTML","event","_qi_button_click","target","srcElement","node","box","mask","indexOf","$click","split","replace","domEv","getTaskNode","offsetLeft","offsetTop","offsetParent","scroll","_x","y","_y","titleContent","firstChild","titleDate","nextSibling","main"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dhtmlxgantt_quick_info.js","sources":["dhtmlxgantt_quick_info.js"],"names":["gantt","config","quickinfo_buttons","quick_info_detached","show_quick_info","attachEvent","id","showQuickInfo","events","hiding_function","_hideQuickInfo","i","length","templates","quick_info_title","start","end","ev","text","substr","quick_info_content","details","quick_info_date","task_time","quick_info_class","this","_quick_info_box_id","hideQuickInfo","pos","_get_event_counter_part","_quick_info_box","_init_quick_info","className","_prepare_quick_info_classname","_fill_quick_data","_show_quick_info","forced","qi","parentNode","removeChild","style","right","left","dhtmlxEvent","window","e","keyCode","nodeName","toLowerCase","$task_data","appendChild","width","offsetWidth","height","offsetHeight","scrolls","getScrollState","screen_width","$task","x","Math","min","max","dx","top","dy","setTimeout","_obj","task","getTask","css","template","start_date","end_date","_quick_info_readonly","_is_readonly","document","createElement","html","buttons","is_editor","icon_delete","icon_edit","locale","labels","innerHTML","event","_qi_button_click","target","srcElement","node","box","mask","indexOf","$click","split","replace","domEv","getTaskNode","offsetLeft","offsetTop","offsetParent","scroll","_x","y","_y","titleContent","firstChild","titleDate","nextSibling","main"],"mappings":"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"} \ No newline at end of file diff --git a/codebase/sources/ext/dhtmlxgantt_tooltip.js b/codebase/sources/ext/dhtmlxgantt_tooltip.js index 0ad2f0a2..4851920f 100644 --- a/codebase/sources/ext/dhtmlxgantt_tooltip.js +++ b/codebase/sources/ext/dhtmlxgantt_tooltip.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale.js b/codebase/sources/locale/locale.js index c708bf67..02946514 100644 --- a/codebase/sources/locale/locale.js +++ b/codebase/sources/locale/locale.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_ar.js b/codebase/sources/locale/locale_ar.js index c4836e55..f1d804d2 100644 --- a/codebase/sources/locale/locale_ar.js +++ b/codebase/sources/locale/locale_ar.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_be.js b/codebase/sources/locale/locale_be.js index caf0c6bc..8e3aa87b 100644 --- a/codebase/sources/locale/locale_be.js +++ b/codebase/sources/locale/locale_be.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_ca.js b/codebase/sources/locale/locale_ca.js index 920e521b..46a73ab7 100644 --- a/codebase/sources/locale/locale_ca.js +++ b/codebase/sources/locale/locale_ca.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_cn.js b/codebase/sources/locale/locale_cn.js index 6be2883c..9c771507 100644 --- a/codebase/sources/locale/locale_cn.js +++ b/codebase/sources/locale/locale_cn.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_cs.js b/codebase/sources/locale/locale_cs.js index 35b1c56e..01fb0497 100644 --- a/codebase/sources/locale/locale_cs.js +++ b/codebase/sources/locale/locale_cs.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_da.js b/codebase/sources/locale/locale_da.js index 8029a6ae..70c89b80 100644 --- a/codebase/sources/locale/locale_da.js +++ b/codebase/sources/locale/locale_da.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_de.js b/codebase/sources/locale/locale_de.js index 34cc2081..857c4fcc 100644 --- a/codebase/sources/locale/locale_de.js +++ b/codebase/sources/locale/locale_de.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_el.js b/codebase/sources/locale/locale_el.js index 88ff92bc..80b0080c 100644 --- a/codebase/sources/locale/locale_el.js +++ b/codebase/sources/locale/locale_el.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_es.js b/codebase/sources/locale/locale_es.js index f0d56a0e..29949e95 100644 --- a/codebase/sources/locale/locale_es.js +++ b/codebase/sources/locale/locale_es.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_fi.js b/codebase/sources/locale/locale_fi.js index 33c22df1..8aa30333 100644 --- a/codebase/sources/locale/locale_fi.js +++ b/codebase/sources/locale/locale_fi.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_fr.js b/codebase/sources/locale/locale_fr.js index 598d7e31..9be08317 100644 --- a/codebase/sources/locale/locale_fr.js +++ b/codebase/sources/locale/locale_fr.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. @@ -9,12 +9,12 @@ This software is covered by GPL license. You also can obtain Commercial or Enter gantt.locale = { date: { month_full: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], - month_short: ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Aôu", "Sep", "Oct", "Nov", "Déc"], + month_short: ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Aoû", "Sep", "Oct", "Nov", "Déc"], day_full: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], day_short: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"] }, labels:{ - new_task:"Tâche neuve", + new_task:"Nouvelle tâche", icon_save:"Enregistrer", icon_cancel:"Annuler", icon_details:"Détails", @@ -29,7 +29,7 @@ gantt.locale = { /* grid columns */ - column_text : "Tâche neuve", + column_text : "Nom de la tâche", column_start_date : "Date initiale", column_duration : "Durée", column_add : "", @@ -49,7 +49,7 @@ gantt.locale = { minutes: "Minutes", hours: "Heures", days: "Jours", - weeks: "Semaine", + weeks: "Semaines", months: "Mois", years: "Années" } diff --git a/codebase/sources/locale/locale_fr.js.map b/codebase/sources/locale/locale_fr.js.map index 2e16fb3a..7b5b8e7f 100644 --- a/codebase/sources/locale/locale_fr.js.map +++ b/codebase/sources/locale/locale_fr.js.map @@ -1 +1 @@ -{"version":3,"file":"locale_fr.js","sources":["locale_fr.js"],"names":["gantt","locale","date","month_full","month_short","day_full","day_short","labels","new_task","icon_save","icon_cancel","icon_details","icon_edit","icon_delete","confirm_closing","confirm_deleting","section_description","section_time","section_type","column_text","column_start_date","column_duration","column_add","confirm_link_deleting","link_start","link_end","type_task","type_project","type_milestone","minutes","hours","days","weeks","months","years"],"mappings":";;;;;;;;AAQAA,MAAMC,QACLC,MACCC,YAAa,UAAW,UAAW,OAAQ,QAAS,MAAO,OAAQ,UAAW,OAAQ,YAAa,UAAW,WAAY,YAC1HC,aAAc,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,MAAO,MAAO,MAAO,MAAO,OAC7FC,UAAW,WAAY,QAAS,QAAS,WAAY,QAAS,WAAY,UAC1EC,WAAY,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QAEvDC,QACCC,SAAS,cACTC,UAAU,cACVC,YAAY,UACZC,aAAa,UACbC,UAAU,WACVC,YAAY,UACZC,gBAAgB,GAChBC,iBAAiB,sDAEjBC,oBAAoB,cACpBC,aAAa,UACbC,aAAa,OAIPC,YAAe,cACfC,kBAAoB,gBACpBC,gBAAkB,QAClBC,WAAa,GAKnBC,sBAAsB,oBACtBC,WAAY,UACZC,SAAU,QAEVC,UAAW,OACXC,aAAc,UACdC,eAAgB,YAGbC,QAAS,UACTC,MAAO,SACPC,KAAM,QACNC,MAAO,UACPC,OAAQ,OACRC,MAAO"} \ No newline at end of file +{"version":3,"file":"locale_fr.js","sources":["locale_fr.js"],"names":["gantt","locale","date","month_full","month_short","day_full","day_short","labels","new_task","icon_save","icon_cancel","icon_details","icon_edit","icon_delete","confirm_closing","confirm_deleting","section_description","section_time","section_type","column_text","column_start_date","column_duration","column_add","confirm_link_deleting","link_start","link_end","type_task","type_project","type_milestone","minutes","hours","days","weeks","months","years"],"mappings":";;;;;;;;AAQAA,MAAMC,QACLC,MACCC,YAAa,UAAW,UAAW,OAAQ,QAAS,MAAO,OAAQ,UAAW,OAAQ,YAAa,UAAW,WAAY,YAC1HC,aAAc,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,MAAO,MAAO,MAAO,MAAO,OAC7FC,UAAW,WAAY,QAAS,QAAS,WAAY,QAAS,WAAY,UAC1EC,WAAY,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QAEvDC,QACCC,SAAS,iBACTC,UAAU,cACVC,YAAY,UACZC,aAAa,UACbC,UAAU,WACVC,YAAY,UACZC,gBAAgB,GAChBC,iBAAiB,sDAEjBC,oBAAoB,cACpBC,aAAa,UACbC,aAAa,OAIPC,YAAc,kBACdC,kBAAoB,gBACpBC,gBAAkB,QAClBC,WAAa,GAKnBC,sBAAsB,oBACtBC,WAAY,UACZC,SAAU,QAEVC,UAAW,OACXC,aAAc,UACdC,eAAgB,YAGbC,QAAS,UACTC,MAAO,SACPC,KAAM,QACNC,MAAO,WACPC,OAAQ,OACRC,MAAO"} \ No newline at end of file diff --git a/codebase/sources/locale/locale_he.js b/codebase/sources/locale/locale_he.js index 2f9b63e4..4ff5f656 100644 --- a/codebase/sources/locale/locale_he.js +++ b/codebase/sources/locale/locale_he.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_hu.js b/codebase/sources/locale/locale_hu.js index 4239eb21..0453820d 100644 --- a/codebase/sources/locale/locale_hu.js +++ b/codebase/sources/locale/locale_hu.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_id.js b/codebase/sources/locale/locale_id.js index 0380d5ad..e362fd36 100644 --- a/codebase/sources/locale/locale_id.js +++ b/codebase/sources/locale/locale_id.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_it.js b/codebase/sources/locale/locale_it.js index 2480b8ae..4003e4f3 100644 --- a/codebase/sources/locale/locale_it.js +++ b/codebase/sources/locale/locale_it.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_jp.js b/codebase/sources/locale/locale_jp.js index 741ee59b..33beba44 100644 --- a/codebase/sources/locale/locale_jp.js +++ b/codebase/sources/locale/locale_jp.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_nb.js b/codebase/sources/locale/locale_nb.js index c6bd3679..dc657fbc 100644 --- a/codebase/sources/locale/locale_nb.js +++ b/codebase/sources/locale/locale_nb.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_nl.js b/codebase/sources/locale/locale_nl.js index cdcd3d65..c9e7a310 100644 --- a/codebase/sources/locale/locale_nl.js +++ b/codebase/sources/locale/locale_nl.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_no.js b/codebase/sources/locale/locale_no.js index def86386..364a9d77 100644 --- a/codebase/sources/locale/locale_no.js +++ b/codebase/sources/locale/locale_no.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_pl.js b/codebase/sources/locale/locale_pl.js index 13625625..0f93a650 100644 --- a/codebase/sources/locale/locale_pl.js +++ b/codebase/sources/locale/locale_pl.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_pt.js b/codebase/sources/locale/locale_pt.js index 41e0db53..f96e6c4f 100644 --- a/codebase/sources/locale/locale_pt.js +++ b/codebase/sources/locale/locale_pt.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_ro.js b/codebase/sources/locale/locale_ro.js index b3db5058..c36d7935 100644 --- a/codebase/sources/locale/locale_ro.js +++ b/codebase/sources/locale/locale_ro.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_ru.js b/codebase/sources/locale/locale_ru.js index 630ec35f..f64765bb 100644 --- a/codebase/sources/locale/locale_ru.js +++ b/codebase/sources/locale/locale_ru.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_si.js b/codebase/sources/locale/locale_si.js index 8570189c..2904f9f7 100644 --- a/codebase/sources/locale/locale_si.js +++ b/codebase/sources/locale/locale_si.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_sk.js b/codebase/sources/locale/locale_sk.js index 0d50d9b2..52fe575c 100644 --- a/codebase/sources/locale/locale_sk.js +++ b/codebase/sources/locale/locale_sk.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_sv.js b/codebase/sources/locale/locale_sv.js index 920ef9df..f075d8a5 100644 --- a/codebase/sources/locale/locale_sv.js +++ b/codebase/sources/locale/locale_sv.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_tr.js b/codebase/sources/locale/locale_tr.js index 48cec09f..30947db0 100644 --- a/codebase/sources/locale/locale_tr.js +++ b/codebase/sources/locale/locale_tr.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/locale/locale_ua.js b/codebase/sources/locale/locale_ua.js index 3b05ee9c..acf3d231 100644 --- a/codebase/sources/locale/locale_ua.js +++ b/codebase/sources/locale/locale_ua.js @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. diff --git a/codebase/sources/skins/dhtmlxgantt_broadway.css b/codebase/sources/skins/dhtmlxgantt_broadway.css index 9dedee56..f88e197a 100644 --- a/codebase/sources/skins/dhtmlxgantt_broadway.css +++ b/codebase/sources/skins/dhtmlxgantt_broadway.css @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. @@ -756,6 +756,28 @@ div.dhx_modal_cover { .gantt_task_line.gantt_drag_move div { cursor: move; } +.gantt_touch_move, +.gantt_touch_progress .gantt_touch_resize { + -moz-transform: scale(1.02, 1.1); + -o-transform: scale(1.02, 1.1); + -webkit-transform: scale(1.02, 1.1); + transform: scale(1.02, 1.1); + -moz-transform-origin: 50%; + -o-transform-origin: 50%; + -webkit-transform-origin: 50%; + transform-origin: 50%; +} +.gantt_touch_progress .gantt_task_progress_drag, +.gantt_touch_resize .gantt_task_drag { + -moz-transform: scaleY(1.3); + -o-transform: scaleY(1.3); + -webkit-transform: scaleY(1.3); + transform: scaleY(1.3); + -moz-transform-origin: 50%; + -o-transform-origin: 50%; + -webkit-transform-origin: 50%; + transform-origin: 50%; +} .gantt_side_content { position: absolute; white-space: nowrap; diff --git a/codebase/sources/skins/dhtmlxgantt_meadow.css b/codebase/sources/skins/dhtmlxgantt_meadow.css index 580c4f7a..1fbabbea 100644 --- a/codebase/sources/skins/dhtmlxgantt_meadow.css +++ b/codebase/sources/skins/dhtmlxgantt_meadow.css @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. @@ -52,7 +52,7 @@ This software is covered by GPL license. You also can obtain Commercial or Enter */ .gantt_row.gantt_project .gantt_cell, .gantt_row.odd.gantt_project .gantt_cell { - background-color: #edf3ff; + background-color: #edf4ff; } .gantt_task_row.gantt_project .gantt_task_cell, .gantt_task_row.odd.gantt_project .gantt_task_cell { @@ -654,6 +654,28 @@ div.dhx_modal_cover { .gantt_task_line.gantt_drag_move div { cursor: move; } +.gantt_touch_move, +.gantt_touch_progress .gantt_touch_resize { + -moz-transform: scale(1.02, 1.1); + -o-transform: scale(1.02, 1.1); + -webkit-transform: scale(1.02, 1.1); + transform: scale(1.02, 1.1); + -moz-transform-origin: 50%; + -o-transform-origin: 50%; + -webkit-transform-origin: 50%; + transform-origin: 50%; +} +.gantt_touch_progress .gantt_task_progress_drag, +.gantt_touch_resize .gantt_task_drag { + -moz-transform: scaleY(1.3); + -o-transform: scaleY(1.3); + -webkit-transform: scaleY(1.3); + transform: scaleY(1.3); + -moz-transform-origin: 50%; + -o-transform-origin: 50%; + -webkit-transform-origin: 50%; + transform-origin: 50%; +} .gantt_side_content { position: absolute; white-space: nowrap; diff --git a/codebase/sources/skins/dhtmlxgantt_skyblue.css b/codebase/sources/skins/dhtmlxgantt_skyblue.css index e0289397..73c730fb 100644 --- a/codebase/sources/skins/dhtmlxgantt_skyblue.css +++ b/codebase/sources/skins/dhtmlxgantt_skyblue.css @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. @@ -597,6 +597,28 @@ div.dhx_modal_cover { .gantt_task_line.gantt_drag_move div { cursor: move; } +.gantt_touch_move, +.gantt_touch_progress .gantt_touch_resize { + -moz-transform: scale(1.02, 1.1); + -o-transform: scale(1.02, 1.1); + -webkit-transform: scale(1.02, 1.1); + transform: scale(1.02, 1.1); + -moz-transform-origin: 50%; + -o-transform-origin: 50%; + -webkit-transform-origin: 50%; + transform-origin: 50%; +} +.gantt_touch_progress .gantt_task_progress_drag, +.gantt_touch_resize .gantt_task_drag { + -moz-transform: scaleY(1.3); + -o-transform: scaleY(1.3); + -webkit-transform: scaleY(1.3); + transform: scaleY(1.3); + -moz-transform-origin: 50%; + -o-transform-origin: 50%; + -webkit-transform-origin: 50%; + transform-origin: 50%; +} .gantt_side_content { position: absolute; white-space: nowrap; diff --git a/codebase/sources/skins/dhtmlxgantt_terrace.css b/codebase/sources/skins/dhtmlxgantt_terrace.css index 5771f09a..cc5023b1 100644 --- a/codebase/sources/skins/dhtmlxgantt_terrace.css +++ b/codebase/sources/skins/dhtmlxgantt_terrace.css @@ -1,7 +1,7 @@ /* @license -dhtmlxGantt v.3.0.0 Stardard +dhtmlxGantt v.3.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. @@ -654,6 +654,28 @@ div.dhx_modal_cover { .gantt_task_line.gantt_drag_move div { cursor: move; } +.gantt_touch_move, +.gantt_touch_progress .gantt_touch_resize { + -moz-transform: scale(1.02, 1.1); + -o-transform: scale(1.02, 1.1); + -webkit-transform: scale(1.02, 1.1); + transform: scale(1.02, 1.1); + -moz-transform-origin: 50%; + -o-transform-origin: 50%; + -webkit-transform-origin: 50%; + transform-origin: 50%; +} +.gantt_touch_progress .gantt_task_progress_drag, +.gantt_touch_resize .gantt_task_drag { + -moz-transform: scaleY(1.3); + -o-transform: scaleY(1.3); + -webkit-transform: scaleY(1.3); + transform: scaleY(1.3); + -moz-transform-origin: 50%; + -o-transform-origin: 50%; + -webkit-transform-origin: 50%; + transform-origin: 50%; +} .gantt_side_content { position: absolute; white-space: nowrap; diff --git a/whatsnew.txt b/whatsnew.txt index 06559d65..56060cc0 100644 --- a/whatsnew.txt +++ b/whatsnew.txt @@ -1,3 +1,13 @@ +### 3.1 +- Added ability to drag tasks on touch devices +- Incorrect tooltip behavior on expand/collapse task tree fixed +- Order of API events during gantt initialization fixed +- Issues with markes and multiple initialization of the gantt fixed +- Issues with markes and gantt.clearAll fixed +- Issues with gantt.serialize method and nested projects of gantt tree fixed +- Fixes in French locale +- Improvements in time range calculation + ### 3.0 - Support of Baselines, Deadlines and other custom elements of the timeline * - Critical path support *