diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/GanttChartView/MainFeatures.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/GanttChartView/MainFeatures.zip
index e5758626b..06cd48b6e 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/GanttChartView/MainFeatures.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/GanttChartView/MainFeatures.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/GanttChartView/MainFeatures/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/GanttChartView/MainFeatures/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/GanttChartView/MainFeatures/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/GanttChartView/MainFeatures/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/BasicUsage.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/BasicUsage.zip
index 01f696175..7f761891c 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/BasicUsage.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/BasicUsage.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/GanttChartIntegration.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/GanttChartIntegration.zip
index f1bbe6c47..2588f6aa1 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/GanttChartIntegration.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/GanttChartIntegration.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/SingleItem.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/SingleItem.zip
index d112bd7e4..0705cc92e 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/SingleItem.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/SingleItem.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/SingleItem/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/SingleItem/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/SingleItem/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/LoadChartView/SingleItem/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/BasicUsage.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/BasicUsage.zip
index 1e2abc848..ba208bbd7 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/BasicUsage.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/BasicUsage.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/GanttChartIntegration.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/GanttChartIntegration.zip
index 8577aae67..9446a2285 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/GanttChartIntegration.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/GanttChartIntegration.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/NetworkDiagramView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/BasicUsage.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/BasicUsage.zip
index 7ff158dae..876f6b729 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/BasicUsage.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/BasicUsage.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/GanttChartIntegration.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/GanttChartIntegration.zip
index 9cba99327..5d344c038 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/GanttChartIntegration.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/GanttChartIntegration.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/PertChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/BasicUsage.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/BasicUsage.zip
index 29e03ccec..f6521686b 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/BasicUsage.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/BasicUsage.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/BasicUsage/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=
+function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);
+var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},{key:"Finish",value:a.convertDateToXml(p.getOutputDate(y))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(z)},
+{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-z)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d<
+k.length;d++)0/g,">")}],n+=this.saveResourceInfo(h,a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
a.scheduleWeekDayXmlTemplate="\n{DayNumber}\n{IsWorkingDay}\n{WorkingTimes}\n";a.scheduleDayWorkingTimesXmlTemplate="\n\n{FromTime}\n{ToTime}\n\n";a.taskXmlTemplate="\n{Index}\n{Index}\n1\n{Content}\n0\n0\n{Indentation}\n500\n{Start}\n{Finish}\n{Duration}\n7\n{Effort}\n{CompletedDuration}\n{CompletedEffort}\n{RemainingEffort}\n{IsMilestone}\n{IsSummary}\n0\n3\n{Completion}\n{Cost}\n0\n{ConstraintDefinition}\n-1\n0\n{PredecessorLinks}\n";
a.predecessorXmlTemplate="\n{PredecessorIndex}\n{DependencyType}\n{Lag}\n5\n";a.resourceXmlTemplate="\n{Index}\n{Index}\n{Name}\n1\n0\n1\n";a.assignmentXmlTemplate="\n{Indexes}\n{TaskIndex}\n{ResourceIndex}\n{AllocationUnits}\n{Completion}\n{Start}\n{Finish}\n{Effort}\n{CompletedEffort}\n{RemainingEffort}\n";
return a}();i.Service=J})(p.ProjectSerializer||(p.ProjectSerializer={}))})(i.GanttChartView||(i.GanttChartView={}))})(i.Controls||(i.Controls={}))})(DlhSoft||(DlhSoft={}));
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/GanttChartIntegration.zip b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/GanttChartIntegration.zip
index 530270896..733982dcc 100644
Binary files a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/GanttChartIntegration.zip and b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/GanttChartIntegration.zip differ
diff --git a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
index 5c07300f7..217f29dcd 100644
--- a/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
+++ b/GanttChartHyperLibraryDemos/Demos/Samples/AngularJS/ScheduleChartView/GanttChartIntegration/Scripts/DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras.js
@@ -1,34 +1,34 @@
-"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.4",copyright:"Copyright \ufffd 2013-2014 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
-DlhSoft.buildReleaseDate=function(i,B,p){i=new Date(i,B-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
+"undefined"===typeof DlhSoft&&(DlhSoft={assemblies:[],buildReleaseDate:new Date(1,0,1)});DlhSoft.assemblies.push({assembly:"DlhSoft.ProjectData.GanttChart.HTML.Controls.Extras",company:"DlhSoft",product:"Project Data Modern Library",version:"5.1.10.5",copyright:"Copyright \ufffd 2013-2019 DlhSoft",title:"Project Data Gantt Chart HTML Controls Extras",description:"Project Data Gantt Chart related HTML client extra components"});
+DlhSoft.buildReleaseDate=function(i,C,p){i=new Date(i,C-1,p);return i>DlhSoft.buildReleaseDate?i:DlhSoft.buildReleaseDate}(2014,1,15);var DlhSoft;
(function(i){(function(i){(function(p){(function(i){i.initialize=function(a,b){return new J(a,b)};var J=function(){function a(b,c){this.control=b;this.settings=c;"undefined"===typeof c&&(c={});this.settings=c;a.initializeSettings(this.settings)}a.prototype.loadXml=function(b){this.importXml(b)};a.prototype.importXml=function(b){var c=this.control,e=c.items,g=c.settings,d=null;if("undefined"!==typeof b&&("undefined"!==typeof b.document&&(b=b.document),"undefined"!==typeof b.getElementsByTagName))d=
b,1!=d.getElementsByTagName("Project").length&&(b=d.body.innerHTML,b=b.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/
/g,"\n"),d=null);null==d&&(d=(new DOMParser).parseFromString(b.toString(),"text/xml"));var b=[],W=[],i=[],q=[];"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.splice(0,this.settings.assignableResources.length);d=d.getElementsByTagName("Project")[0];if("undefined"!==typeof d){var k,l,s,h;try{var n=d.getElementsByTagName("CalendarUID")[0].childNodes[0].nodeValue,
-r,f,x=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var y=n[0];k=parseInt(y.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=y.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){D=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),B=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
-X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),B/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:D,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
-for(f=0;f=F.getElementsByTagName("Name").length)){D=F.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=F.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:F,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:D,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
-d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fA)){o=i[A].value;var Z=G.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=G.getElementsByTagName("Units")[0].childNodes[0].nodeValue,z="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":"");"undefined"!==
-typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:G,ganttChartItem:o,resource:w,allocationUnits:z},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,z=j.allocationUnits,L=w+(1!=z?" ":"")+(1!=z?"["+Math.round(1E4*z)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}C=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fA)){o=i[A].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=parseInt(H.getElementsByTagName("Type")[0].childNodes[0].nodeValue);l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=H.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};
-"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=
-e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0d&&b.length>i)&&(a=parseInt(b.substr(0,d)),e=parseInt(b.substr(d+1,i)),g=parseInt(b.substr(i+1,b.length)));return 1E3*(3600*a+60*e+g)};a.parseXmlToDateTime=function(b){var a,e,g,d,i,p,q,k,l=b.indexOf("T");q=b.indexOf("-");0q&&(e=parseInt(b.substring(q+1,k)),l>k&&(g=parseInt(b.substring(k+1,l)))));q=b.indexOf(":");0k&&(p=parseInt(b.substring(k+1,b.length)))));return new Date(a,e-1,g,d,i,p)};a.indexOfKey=function(b,a){for(var e=0;ethis.settings.assignableResources.indexOf(k[d])&&this.settings.assignableResources.push(k[d]);var k=this.settings.assignableResources,l="";for(d=0;7>d;d++){var s=g.workingWeekStart<=d&&g.workingWeekFinish>=d;0/g,">")},{key:"Indentation",value:(h.indentation+1).toString()},{key:"Start",value:a.convertDateToXml(p.getOutputDate(f))},
-{key:"Finish",value:a.convertDateToXml(p.getOutputDate(x))},{key:"Duration",value:a.convertTimeSpanToXml(u)},{key:"CompletedDuration",value:a.convertTimeSpanToXml(n)},{key:"Effort",value:a.convertTimeSpanToXml(r)},{key:"CompletedEffort",value:a.convertTimeSpanToXml(y)},{key:"RemainingEffort",value:a.convertTimeSpanToXml(r-y)},{key:"IsMilestone",value:h.isMilestone?1:0},{key:"IsSummary",value:h.hasChildren?1:0},{key:"Cost",value:c.getItemCost(h)},{key:"Completion",value:!h.isMilestone&&0q&&!h.hasChildren?""+a.convertDateToXml(p.getOutputDate(f))+"":""},{key:"PredecessorLinks",value:m}];s+=this.saveGanttChartItem(h,a.taskXmlTemplate,r)}n="";for(d=0;d/g,">")}],n+=this.saveResourceInfo(h,
-a.resourceXmlTemplate,r);f="";for(d=0;d/g,">").replace(/\n/g,"
");a.write(e);a.close();return c};
-a.initializeSettings=function(){};a.secondDuration=1E3;a.minuteDuration=60*a.secondDuration;a.hourDuration=60*a.minuteDuration;a.dayDuration=24*a.hourDuration;a.weekDuration=7*a.dayDuration;a.projectXmlTemplate="\n\n14\n1\n{ProjectStart}\n{DayStart}\n{DayFinish}\n{MinutesPerDay}\n{MinutesPerWeek}\n7\n2\n1\n\n\n1\nStandard\n1\n-1\n\n{ScheduleWeekDays}\n\n\n\n\n{Tasks}\n\n\n{Resources}\n\n\n{Assignments}\n\n";
+r,f,y=d.getElementsByTagName("Calendars")[0].getElementsByTagName("Calendar");for(f=0;fd?1:-1});var z=n[0];k=parseInt(z.getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;l=parseInt(n[n.length-1].getElementsByTagName("DayType")[0].childNodes[0].nodeValue)-1;var m=z.getElementsByTagName("WorkingTimes")[0].getElementsByTagName("WorkingTime");s=a.parseXmlToTimeSpan(m[0].getElementsByTagName("FromTime")[0].childNodes[0].nodeValue);for(f=h=0;f=t.getElementsByTagName("Name").length)){var M=parseInt(t.getElementsByTagName("OutlineLevel")[0].childNodes[0].nodeValue)-1;if(!(0>M)){E=t.getElementsByTagName("UID")[0].childNodes[0].nodeValue;K=t.getElementsByTagName("Name")[0].childNodes[0].nodeValue;var N=a.parseXmlToDateTime(t.getElementsByTagName("Start")[0].childNodes[0].nodeValue),O=a.parseXmlToDateTime(t.getElementsByTagName("Finish")[0].childNodes[0].nodeValue),C=parseInt(t.getElementsByTagName("PercentComplete")[0].childNodes[0].nodeValue),
+X=p.getOutputDate(c.getCompletedFinish(p.getInputDate(N),C/100,p.getInputDate(O))),Y="1"==t.getElementsByTagName("Milestone")[0].childNodes[0].nodeValue?!0:!1;o={content:K,indentation:M,isExpanded:!0,start:N,finish:O,completedFinish:X,isMilestone:Y};"undefined"!==typeof this.settings.ganttChartItemLoadingHandler&&(j={sourceElement:t,ganttChartItem:o},this.settings.ganttChartItemLoadingHandler(j),o=j.ganttChartItem);b.push(o);i.push({key:E,value:o})}}}var P=d.getElementsByTagName("Resources")[0].getElementsByTagName("Resource");
+for(f=0;f=G.getElementsByTagName("Name").length)){E=G.getElementsByTagName("UID")[0].childNodes[0].nodeValue;var w=K=G.getElementsByTagName("Name")[0].childNodes[0].nodeValue;"undefined"!==typeof this.settings.assignableResourceInfoLoadingHandler&&(j={sourceElement:G,resource:w},this.settings.assignableResourceInfoLoadingHandler(j),w=j.resource);W.push(w);q.push({key:E,value:w});"undefined"!==typeof this.settings.assignableResources&&this.settings.assignableResources.push(w)}}var Q=
+d.getElementsByTagName("Assignments")[0].getElementsByTagName("Assignment");for(f=0;fB)){o=i[B].value;var Z=H.getElementsByTagName("ResourceUID")[0].childNodes[0].nodeValue,R=a.indexOfKey(q,Z);if(!(0>R)){var w=q[R].value,S=H.getElementsByTagName("Units")[0].childNodes[0].nodeValue,A="undefined"!==typeof S?parseFloat(S):1,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":"");"undefined"!==
+typeof this.settings.assignmentInfoLoadingHandler&&(j={sourceElement:H,ganttChartItem:o,resource:w,allocationUnits:A},this.settings.assignmentInfoLoadingHandler(j),w=j.resource,A=j.allocationUnits,L=w+(1!=A?" ":"")+(1!=A?"["+Math.round(1E4*A)/100+"%]":""));o.assignmentsContent="undefined"===typeof o.assignmentsContent||0==o.assignmentsContent.length?L:o.assignmentsContent+", "+L}}}D=d.getElementsByTagName("Tasks")[0].getElementsByTagName("Task");for(f=0;fB)){o=i[B].value;var T=t.getElementsByTagName("PredecessorLink");for(k=0;kU)){var aa=i[U].value,I=x.getElementsByTagName("Type")&&x.getElementsByTagName("Type")[0]&&x.getElementsByTagName("Type")[0].childNodes?parseInt(x.getElementsByTagName("Type")[0].childNodes[0].nodeValue):1;l=1==I?"":3==I?"SS":0==I?"FF":2==I?"SF":"";var V=x.getElementsByTagName("LinkLag")&&
+x.getElementsByTagName("LinkLag")[0]&&x.getElementsByTagName("LinkLag")[0].childNodes?x.getElementsByTagName("LinkLag")[0].childNodes[0].nodeValue:null,ba=(null!=V?parseInt(V):0)/10*a.minuteDuration;l={item:aa,dependencyType:l,lag:ba};"undefined"!==typeof this.settings.predecessorItemLoadingHandler&&(j={sourceElement:x,ganttChartItem:o,predecessorItem:l},this.settings.predecessorItemLoadingHandler(j),l=j.predecessorItem,o=j.ganttChartItem);"undefined"===typeof o.predecessors&&(o.predecessors=[]);
+o.predecessors.push(l)}}}for(f=0;ff&&(e=f);g.timelineStart=new Date(e.valueOf()-1*a.weekDuration);g.timelineFinish=new Date(e.valueOf()+52*a.weekDuration);g.displayedTime=e;c.refresh()};a.parseXmlToTimeSpan=function(b){var a,e,g,d,i;d=b.indexOf(":");i=b.lastIndexOf(":");0