diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 91a0f304..00000000 --- a/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: node_js -node_js: - - "9" -addons: - chrome: stable -services: - - xvfb -before_script: - - "export DISPLAY=:99.0" - # - "sh -e /etc/init.d/xvfb start" - - sleep 3 # give xvfb some time to start - - npm run dist - - http-server & # start a Web server - - sleep 3 # give Web server some time to bind to sockets, etc - -before_install: - - npm install -g http-server browserify webdriver-manager - - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16" - - google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost & - -install: - - npm install - - ./node_modules/protractor/bin/webdriver-manager update --versions.chrome 2.35 diff --git a/dist/jsgantt.css b/dist/jsgantt.css deleted file mode 100644 index 3c9121a3..00000000 --- a/dist/jsgantt.css +++ /dev/null @@ -1,1016 +0,0 @@ -/* Sample CSS for jsGanttImproved v1.8.0 */ - -div.gantt { - font-family: tahoma, arial, verdana, Sans-serif; - font-size: 12px; - color: #656565; -} - -.gantt table { - border-collapse: collapse; -} - -.gantt td { - padding: 0px; -} - -/* cell defaults */ -.headweekends div { - font-size: 8px; - width: 100% !important; - margin: 0; -} - -.gmajorheading, -.gminorheading, -.gminorheadingwkend, -.gtaskcell, -.gtaskcellcurrent, -.gtaskcellwkend { - height: 19px; - font-size: 12px; - border: #efefef 1px solid; - text-align: center; - cursor: default; -} - -.gtasklist { - height: 19px; - min-width: 5px; - max-width: 5px; - width: 5px; - border: #efefef 1px solid; - border-right: none; -} - -.gtasknolist-label { - padding: 10px 50px; -} -/* all three width values set just to make sure - helps resizing code */ - -/* Additional values for some cell elements */ - -.gtaskheading, -.gmajorheading, -.gminorheading { - background-color: #ffffff; - font-weight: bold; - font-size: 11px; - white-space: nowrap; -} - -.gtaskcellwkend, -.gtaskcellcurrent, -.gminorheadingwkend { - background-color: #f7f7f7; - font-weight: bold; - font-size: 9px; - white-space: nowrap; -} - -.gtaskcellcurrent { - background-color: #e1e0f7; -} - -td.gtaskcell { - text-align: left; -} - -td.gspanning { - border-left: none; - border-right: none; -} - -.gtaskcelldiv { - position: relative; -} - -/* Task list defaults */ - -.gtaskheading, -.gname, -.gtaskname, -.gres, -.gdur, -.gcomp, -.gstartdate, -.gplanstartdate, -.gplanenddate, -.gcost, -.genddate { - height: 18px; - white-space: nowrap; - border: #efefef 1px solid; -} - -.gtaskheading div, -.gname div, -.gtaskname div, -.gres div, -.gdur div, -.gcomp div, -.gstartdate div, -.gplanstartdate div, -.gplanenddate div, -.gcost div, -.genddate div { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.gtaskbarcontainer.gplan { - position: absolute !important; - top: 0px; - opacity: 0.3; - background: white; - z-index: 10000; - border: 1px solid black; -} - -/* Additional values for some task list elements */ - -/* needed for IE8 */ - -.gstartdate div, -.gplanstartdate, -.gplanenddate, -.gstartdate, -.genddate { - text-align: center; - min-width: 105px; - width: 105px; - max-width: 105px; - font-size: 10px; -} - -.gtaskheading { - text-align: center; -} - -.gtaskname div, -/* needed for IE8 */ - -.gtaskname { - min-width: 170px; - max-width: 220px; - width: 220px; - font-size: 12px; - border-left: none; -} - -.gtaskheading, -.gtaskname { - text-overflow: ellipsis; - overflow: hidden; -} - -.gtaskname.gtaskeditable div, -.gtaskname.gtaskeditable { - overflow: unset; -} - -.gselector { - text-align: left; - white-space: nowrap; - min-width: 170px; - max-width: 170px; - width: 170px; -} - -.gformlabel { - position: relative; - top: 0px; - cursor: pointer; - border: #ffffff 1px solid; - margin-left: 2px; - padding-left: 2px; - padding-right: 2px; -} - -span.gformlabel:hover, -span.gselected { - background-color: #dbecff; - border: #cccccc 1px solid; -} - -span.gfoldercollapse { - color: #000000; - cursor: pointer; - font-weight: bold; - font-size: 12px; - font-family: Courier, "Courier New", monospace; -} - -.gtasktableh, -.gtasktable { - border-right: #efefef 1px solid; - width: 100%; -} - -.gcharttableh, -.gtasktableh, -.gtasktable, -.gcharttable { - border-collapse: collapse; -} - -.gcharttable, -.gcharttableh { - table-layout: fixed; -} - -.gcharttable { - border: #efefef 1px solid; -} - -/* for some reason firefox needs this */ - -/* Differentiate Group, Milestone and Ordinary task items (applied to row) */ - -.ggroupitem { - background-color: #fbfbfb; - font-weight: bold; -} - -.gmileitem, -.glineitem { - background-color: #ffffff; -} - -/* highlight row (applied to row) */ - -.gitemhighlight td { - background-image: none; - background-color: #fffde5; -} - -.gitemdifferent td { - background-image: none; - background-color: rgba(0, 0, 0, 0.05); -} - -/* task bar caption text styles */ - -.gmilecaption, -.ggroupcaption, -.gcaption { - font-weight: normal; - font-size: 9px; - text-align: left; - white-space: nowrap; - top: 1px; - position: absolute; - top: 2px; -} - -.ggroupcaption, -.gcaption { - right: -126px; -} - -/* Task complete %age bar shared attributes */ - -.gtaskcomplete { - float: left; - overflow: hidden; -} - -/* Task complete %age bar */ - -.gtaskcomplete { - height: 5px; - background-color: #000000; - margin-top: 4px; - opacity: 0.4; - filter: alpha(opacity=40); -} - -/* Milestones */ - -.gmilestone { - font-size: 14px; - position: absolute; - top: -2px; -} - -.gmdtop { - top: 2px; - overflow: hidden; - width: 0px; - height: 0px; - border-bottom: 5px solid black; - border-left: 5px solid transparent; - border-top: 5px solid transparent; - border-right: 5px solid transparent; -} - -.gmdbottom { - top: 2px; - overflow: hidden; - width: 0px; - height: 0px; - border-top: 5px solid black; - border-left: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid transparent; -} - -/* Task bar shared attributes */ - -.ggroupblack, -.gtaskblue, -.gtaskred, -.gtaskgreen, -.gtaskyellow, -.gtaskpurple, -.gtaskpink { - height: 13px; - filter: alpha(opacity=90); - opacity: 0.9; - margin-top: 1px; -} - -/* Task bars - ggroupblack is set as the default class on the task if it is undefined */ - -.ggroupblack { - height: 7px; - background: #000000; - margin-top: 2px; -} - -.ggroupblackendpointleft { - overflow: hidden; - width: 0px; - height: 0px; - top: 2px; - border-top: 4px solid black; - border-left: 4px solid transparent; - border-bottom: 4px solid transparent; - border-right: 4px solid transparent; - float: left; -} - -.ggroupblackendpointright { - overflow: hidden; - width: 0px; - height: 0px; - top: 2px; - border-top: 4px solid black; - border-left: 4px solid transparent; - border-bottom: 4px solid transparent; - border-right: 4px solid transparent; - float: right; -} - -.ggroupblackcomplete { - float: left; - overflow: hidden; - height: 3px; - filter: alpha(opacity=80); - opacity: 0.8; - background-color: #777777; - margin-top: 2px; - margin-bottom: 2px; -} - -.gtaskblue { - background: rgb(58, 132, 195); - /* Old browsers */ - background: linear-gradient(to bottom, rgba(58, 132, 195, 1) 0%, rgba(65, 154, 214, 1) 20%, rgba(75, 184, 240, 1) 40%, rgba(58, 139, 194, 1) 70%, rgba(38, 85, 139, 1) 100%); - /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4bb8f0', endColorstr='#3a84c3', GradientType=0); - /* IE6-9 */ -} - -.gtaskred { - background: rgb(196, 58, 58); - /* Old browsers */ - background: linear-gradient(to bottom, rgba(196, 58, 58, 1) 0%, rgba(211, 65, 65, 1) 20%, rgba(239, 76, 76, 1) 40%, rgba(196, 58, 58, 1) 70%, rgba(135, 37, 37, 1) 100%); - /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ef4c4c', endColorstr='#c43a3a', GradientType=0); - /* IE6-9 */ -} - -.gtaskgreen { - background: rgb(80, 193, 58); - /* Old browsers */ - background: linear-gradient(to bottom, rgba(80, 193, 58, 1) 0%, rgba(88, 209, 64, 1) 20%, rgba(102, 237, 75, 1) 40%, rgba(80, 193, 58, 1) 70%, rgba(53, 132, 37, 1) 100%); - /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#66ED4B', endColorstr='#50c13a', GradientType=0); - /* IE6-9 */ -} - -.gtaskyellow { - background: rgb(247, 228, 56); - /* Old browsers */ - background: linear-gradient(to bottom, rgba(247, 228, 56, 1) 0%, rgba(239, 239, 55, 1) 20%, rgba(255, 255, 58, 1) 40%, rgba(242, 236, 55, 1) 70%, rgba(241, 218, 54, 1) 100%); - /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff3a', endColorstr='#f7e438', GradientType=0); - /* IE6-9 */ -} - -.gtaskpurple { - background: rgb(193, 58, 193); - /* Old browsers */ - background: linear-gradient(to bottom, rgba(193, 58, 193, 1) 0%, rgba(211, 65, 211, 1) 20%, rgba(239, 76, 239, 1) 40%, rgba(193, 58, 193, 1) 70%, rgba(137, 38, 137, 1) 100%); - /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ef4cef', endColorstr='#892689', GradientType=0); - /* IE6-9 */ -} - -.gtaskpink { - background: rgb(249, 177, 245); - /* Old browsers */ - background: linear-gradient(to bottom, rgba(249, 177, 245, 1) 0%, rgba(247, 192, 243, 1) 20%, rgba(247, 202, 244, 1) 40%, rgba(249, 192, 246, 1) 70%, rgba(252, 174, 247, 1) 100%); - /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7caf4', endColorstr='#fcaef7', GradientType=0); - /* IE6-9 */ -} - -.gtaskbluecomplete, -.gtaskredcomplete, -.gtaskgreencomplete, -.gtaskyellowcomplete, -.gtaskpurplecomplete, -.gtaskpinkcomplete { - float: left; - overflow: hidden; - height: 5px; - filter: alpha(opacity=40); - opacity: 0.4; - background-color: #000000; - margin-top: 4px; -} - -/* END Task bar styles */ - -.glinev { - border-left: 1px solid; - width: 0px; -} - -.glineh { - border-top: 1px solid; - height: 0px; -} - -.gDepFS, -.gDepSS, -.gDepSF, -.gDepFF { - border-color: #ff0000; -} - -.gDepFSArw, -.gDepSSArw { - overflow: hidden; - width: 0px; - height: 0px; - border-bottom: 4px solid transparent; - border-left: 4px solid #ff0000; - border-top: 4px solid transparent; - border-right: 4px solid transparent; -} - -.gDepFFArw, -.gDepSFArw { - overflow: hidden; - width: 0px; - height: 0px; - border-bottom: 4px solid transparent; - border-left: 4px solid transparent; - border-top: 4px solid transparent; - border-right: 4px solid #ff0000; -} - -.gCurDate { - border-color: #0000ff; -} - -div.gtaskbarcontainer { - z-index: 1; - position: absolute; - top: 0px; -} - -.textbar { - word-break: break-all; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - width: 40%; - display: inline-block; -} - -.JSGanttToolTip { - position: absolute; - display: block; - z-index: 10000; -} - -.JSGanttToolTipcont { - font-family: tahoma, arial, verdana; - font-size: 10px; - display: block; - background: #ffffff; - color: #656565; -} - -.gTaskInfo { - background: #dbecff; - width: 400px; - border: #656565 1px solid; - border-radius: 10px; - padding: 4px 6px 4px 6px; - float: left; -} - -.gTtTitle { - display: block; - font-size: 12px; - font-weight: bold; - color: #404040; - margin-left: 4px; - margin-bottom: 1em; -} - -.gTaskLabel { - font-size: 11px; - font-weight: bold; - color: #656565; - margin-left: 4px; -} - -.gTaskText { - position: absolute; - left: 90px; - padding-top: 1px; - font-size: 10px; - font-weight: normal; - color: #656565; -} - -.gTaskNotes { - font-size: 11px; - font-weight: normal; - color: #323232; - padding: 0 15px; - display: block; -} - -.gTIn { - padding-top: 10px; -} - -.gantt { - min-width: 632px; - /* 2x LC width */ -} - -.gchartcontainer { - /* padding-left: 532px; LC width */ - line-height: 1; - /* Overrides inherited CSS (e.g. from Bootstrap) */ - display: flex; -} - -.gcontainercol { - position: relative; -} - -/* Add a max-height value here if wanted */ - -.glistgrid { - min-width: 132px; - /* LC width */ - float: left; - /* LC width */ - padding-right: 0px; - padding-left: 0px; - padding-bottom: 0px; - padding-top: 0px; - background-color: #ffffff; - overflow: hidden; -} - -.glistlbl { - min-width: 132px; - /* LC width */ - float: left; - /* LC width */ - padding-right: 0px; - padding-left: 0px; - padding-bottom: 0px; - padding-top: 0px; - background-color: #ffffff; - overflow: hidden; - flex: none; -} - -.glistlbl, -.gchartgrid { - display: flex; - flex-direction: column; -} - -.glabelfooter { - clear: both; -} - -.ggridfooter { - clear: both; -} - -.rhscrpad { - width: 150px; - position: absolute; - top: 0px; - height: 1px; -} - -.gchartgrid { - padding-right: 0px; - padding-left: 0px; - padding-bottom: 0px; - padding-top: 0px; - background-color: #ffffff; - position: relative; - /* overflow: auto; */ - overflow: unset; - overflow-y: auto; - min-height: 0%; -} - -.gchartlbl { - padding-right: 0px; - padding-left: 0px; - padding-bottom: 0px; - padding-top: 0px; - background-color: #ffffff; - position: relative; - overflow: hidden; - flex: none; -} - -/* Old Internet Explorer version hacks */ - -.gantt { - _height: 100%; -} - -/* otherwise the chart disappears! */ - -div .gantt { - /* _width: 1064px; ie6 fixed width */ -} - -div.gchartlbl, -div.gchartgrid { - /* _width: 532px; */ -} - -/* ie6 fixed width */ - -div.glistlbl, -div.glistgrid { - *right: 0px; - /* ie7 pulls the content too far left with the negative margin */ - _right: 532px; - /* but ie6 fixed width needs this */ - _margin-left: -532px; - /* ie6 fixed width */ - float: left; -} - -div.gchartgrid { - *padding-bottom: 20px; - *overflow-y: hidden; -} - -/* variable height design, no need for vertical scroll */ - -td.gmajorheading div { - *overflow: hidden; -} - -/* stops resizing fixed width columns if the text is too wide */ - -td.gspanning div { - *overflow: hidden; -} - -/* stops resizing fixed width columns if the text is too wide */ - -/* border transparency tricks */ - -.ggroupblackendpointleft { - _border-top: 4px solid black; - _border-left: 4px solid pink; - _border-bottom: 4px solid pink; - _border-right: 4px solid pink; - _filter: chroma(color=pink); -} - -.ggroupblackendpointright { - _border-top: 4px solid black; - _border-left: 4px solid pink; - _border-bottom: 4px solid pink; - _border-right: 4px solid pink; - _filter: chroma(color=pink); -} - -.gmdtop { - _border-left: 5px solid pink; - _border-top: 5px solid pink; - _border-right: 5px solid pink; - _filter: chroma(color=pink); -} - -.gmdbottom { - _border-left: 5px solid pink; - _border-bottom: 5px solid pink; - _border-right: 5px solid pink; - _filter: chroma(color=pink); -} - -.gDepFSArw, -.gDepSSArw { - _border-bottom: 4px solid pink; - _border-top: 4px solid pink; - _border-right: 4px solid pink; - _filter: chroma(color=pink); -} - -.gDepFFArw, -.gDepSFArw { - _border-bottom: 4px solid pink; - _border-left: 4px solid pink; - _border-top: 4px solid pink; - _filter: chroma(color=pink); -} - -/* Workaround for odd bug in old versions of Opera - no other browser needs this */ - -.glinediv { - position: absolute; - top: 0px; - left: 0px; - z-index: 1px; -} - -.gantt-inputtable { - max-width: 100%; - max-height: 16px; -} - -.gadditional { - border: #efefef 1px solid; -} - -.gadditional, -.gres, -.gdur, -.gcomp, -.gcost { - text-align: center; - width: 70px; - max-width: 70px; - min-width: 70px; - font-size: 10px; -} - -@media print { - /* All your print styles go here */ - html, - .gchartgrid { - overflow: unset !important; - } - - .glistgrid { - float: none !important; - } - - /* Hide scrollbar for Chrome, Safari and Opera */ - .gchartcontainer *::-webkit-scrollbar { - display: none; - } - - /* Hide scrollbar for IE, Edge and Firefox */ - .gchartcontainer * { - -ms-overflow-style: none; /* IE and Edge */ - scrollbar-width: none; /* Firefox */ - } - - /* Hide tool-tip */ - .JSGanttToolTip { - display: none !important; - } - - /* This is the default css, injected by the JSGantt.printChart(width,height); function --> - @page { - size: ${width}mm ${height}mm; - } - - .gchartcontainer { - width: ${width}mm; - } - <-- This will be injected by the JSGantt.printChart() function */ -} - -/* if using setUseSingleCell(1) the following is a suggested set of CSS3 styles to recreate the table grid - won't work on old browsers -.ggrouphour td, -.gmilehour td, -.gitemhour td { background-size: 19px 1px; background-image: linear-gradient(to left, #efefef, transparent 1px, transparent 18px); width: 100%; height: 19px; } -.ggroupday td, -.gmileday td, -.gitemday td { background-size: 19px 1px, 133px 1px; background-image: linear-gradient(to left, #efefef, transparent 1px, transparent 18px), linear-gradient(to left, #f7f7f7 39px, transparent 1px, transparent 92px); width: 100%; height: 19px; } -.ggroupweek td, -.gmileweek td, -.gitemweek td { background-size: 37px 1px; background-image: linear-gradient(to left, #efefef, transparent 1px, transparent 36px); width: 100%; height: 19px; } -.ggroupmonth td, -.gmilemonth td, -.gitemmonth td { background-size: 37px 1px; background-image: linear-gradient(to left, #efefef, transparent 1px, transparent 36px); width: 100%; height: 19px; } -.ggroupquarter td, -.gmilequarter td, -.gitemquarter td { background-size: 19px 1px; background-image: linear-gradient(to left, #efefef, transparent 1px, transparent 18px); width: 100%; height: 19px; } -*/ - -.gmain { - height: 100%; - - display: flex; - flex-direction: column; - /* Allow resize */ - resize: horizontal; -} - -.gmainright { - overflow: hidden; - flex: 1 1 auto; -} - -.gmainleft { - overflow: hidden; - flex: 0 0 20%; - min-width: 220px; - /* Allow side to grow and shrink */ - flex: 1 0 auto; -} - -.gtasktableh tr, -.gcharttable tr, -.gcharttableh tr, -.gtasktable tr { - height: 22px !important; -} - -.gtasktableouterwrapper { - overflow: hidden; -} - -.gtasktablewrapper { - overflow-y: scroll; - flex: auto; - height: 100%; -} - -.chartgrid { - overflow: auto; - flex: auto; -} - -/* .gtasktable { - margin-bottom: 14px; -} */ - -/* Printer friendly styles - we could use these all the time but they are not as pretty! */ - -/* note that "@media print" is not supported in IE6 or 7. Fully patched IE8 should be OK */ - -@media print { - .ggroupblack { - height: 0px; - border-top: 7px solid; - border-color: #000000; - } - - .gtaskblue { - height: 0px; - border-top: 13px solid; - border-color: rgb(58, 132, 195); - } - - .gtaskred { - height: 0px; - border-top: 13px solid; - border-color: rgb(196, 58, 58); - } - - .gtaskgreen { - height: 0px; - border-top: 13px solid; - border-color: rgb(80, 193, 58); - } - - .gtaskyellow { - height: 0px; - border-top: 13px solid; - border-color: rgb(247, 228, 56); - } - - .gtaskpurple { - height: 0px; - border-top: 13px solid; - border-color: rgb(193, 58, 193); - } - - .gtaskpink { - height: 0px; - border-top: 13px solid; - border-color: rgb(249, 177, 245); - } - - .gtaskbluecomplete, - .gtaskredcomplete, - .gtaskgreencomplete, - .gtaskyellowcomplete, - .gtaskpurplecomplete, - .gtaskpinkcomplete { - height: 0px; - filter: alpha(opacity=40); - opacity: 0.4; - margin-top: -9px; - border-top: 5px solid; - border-color: #000000; - } - - .ggroupblackcomplete { - height: 0px; - filter: alpha(opacity=80); - opacity: 0.8; - margin-top: -5px; - border-top: 3px solid; - border-color: #777777; - } - - .gmainright, - .gmainleft { - overflow: hidden; - width: auto; - } - - table { - page-break-after: auto; - } - - tr { - page-break-inside: avoid; - page-break-after: auto; - } - - td { - page-break-inside: avoid; - page-break-after: auto; - } - - thead { - display: table-header-group; - } - - tfoot { - display: table-footer-group; - } -} - -/* Fix for OSx trackpad hiding the scroll bars*/ -.frame::-webkit-scrollbar { - -webkit-appearance: none; -} - -.frame::-webkit-scrollbar:vertical { - width: 11px; -} - -.frame::-webkit-scrollbar:horizontal { - height: 11px; -} - -.frame::-webkit-scrollbar-thumb { - border-radius: 8px; - border: 2px solid white; - /* should match background, can't be transparent */ - background-color: rgba(0, 0, 0, 0.5); -} - -.frame::-webkit-scrollbar-track { - background-color: #fff; - border-radius: 8px; -} - -.gscrollbar-calculation-container { - visibility: hidden; - overflow: scroll; - -ms-overflow-style: scrollbar; - display: block; -} diff --git a/dist/jsgantt.js b/dist/jsgantt.js deleted file mode 100644 index f4a287a2..00000000 --- a/dist/jsgantt.js +++ /dev/null @@ -1,5642 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSGantt = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 1) { - vTmpDate.setDate(vTmpDate.getDate() + 1); - } - } - else if (this.vFormat == "quarter") { - if (vTmpDate <= vMaxDate) { - var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass); - draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vQuarterMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth); - vNumCols++; - } - vTmpDate.setDate(vTmpDate.getDate() + 81); - while (vTmpDate.getDate() > 1) - vTmpDate.setDate(vTmpDate.getDate() + 1); - } - else if (this.vFormat == "hour") { - for (var i = vTmpDate.getHours(); i < 24; i++) { - vTmpDate.setHours(i); //works around daylight savings but may look a little odd on days where the clock goes forward - if (vTmpDate <= vMaxDate) { - var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, vMinorHeaderCellClass); - draw_utils_1.newNode(vTmpCell, "div", null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth); - vNumCols++; - } - } - vTmpDate.setHours(0); - vTmpDate.setDate(vTmpDate.getDate() + 1); - } - } - var vDateRow = vTmpRow; - // Calculate size of grids : Plus 3 because 1 border left + 2 of paddings - var vTaskLeftPx = vNumCols * (vColWidth + 3) + 1; - // Fix a small space at the end for day - if (this.vFormat === "day") { - vTaskLeftPx += 2; - } - vTmpTab.style.width = vTaskLeftPx + "px"; // Ensure that the headings has exactly the same width as the chart grid - // const vTaskPlanLeftPx = (vNumCols * (vColWidth + 3)) + 1; - var vSingleCell = false; - if (this.vUseSingleCell !== 0 && this.vUseSingleCell < vNumCols * vNumRows) - vSingleCell = true; - draw_utils_1.newNode(vTmpDiv, "div", null, "rhscrpad", null, null, vTaskLeftPx + 1); - vTmpDiv = draw_utils_1.newNode(vRightHeader, "div", null, "glabelfooter"); - return { gChartLbl: gChartLbl, vTaskLeftPx: vTaskLeftPx, vSingleCell: vSingleCell, vDateRow: vDateRow, vRightHeader: vRightHeader, vNumCols: vNumCols }; - }; - /** - * - * DRAW CHART BODY - * - */ - this.drawCharBody = function (vTaskLeftPx, vTmpContentTabWrapper, gChartLbl, gListLbl, vMinDate, vMaxDate, vSingleCell, vNumCols, vColWidth, vDateRow) { - var vRightTable = document.createDocumentFragment(); - var vTmpDiv = draw_utils_1.newNode(vRightTable, "div", this.vDivId + "gchartbody", "gchartgrid gcontainercol"); - this.setChartBody(vTmpDiv); - var vTmpTab = draw_utils_1.newNode(vTmpDiv, "table", this.vDivId + "chartTable", "gcharttable", null, vTaskLeftPx); - this.setChartTable(vTmpTab); - draw_utils_1.newNode(vTmpDiv, "div", null, "rhscrpad", null, null, vTaskLeftPx + 1); - var vTmpTBody = draw_utils_1.newNode(vTmpTab, "tbody"); - var vTmpTFoot = draw_utils_1.newNode(vTmpTab, "tfoot"); - events_1.syncScroll([vTmpContentTabWrapper, vTmpDiv], "scrollTop"); - events_1.syncScroll([gChartLbl, vTmpDiv], "scrollLeft"); - events_1.syncScroll([vTmpContentTabWrapper, gListLbl], "scrollLeft"); - // Draw each row - var i = 0; - var j = 0; - var bd; - if (this.vDebug) { - bd = new Date(); - console.info("before tasks loop", bd); - } - for (i = 0; i < this.vTaskList.length; i++) { - var curTaskStart = this.vTaskList[i].getStart() ? this.vTaskList[i].getStart() : this.vTaskList[i].getPlanStart(); - var curTaskEnd = this.vTaskList[i].getEnd() ? this.vTaskList[i].getEnd() : this.vTaskList[i].getPlanEnd(); - var vTaskLeftPx_1 = general_utils_1.getOffset(vMinDate, curTaskStart, vColWidth, this.vFormat, this.vShowWeekends); - var vTaskRightPx = general_utils_1.getOffset(curTaskStart, curTaskEnd, vColWidth, this.vFormat, this.vShowWeekends); - var curTaskPlanStart = void 0, curTaskPlanEnd = void 0; - curTaskPlanStart = this.vTaskList[i].getPlanStart(); - curTaskPlanEnd = this.vTaskList[i].getPlanEnd(); - var vTaskPlanLeftPx = 0; - var vTaskPlanRightPx = 0; - if (curTaskPlanStart && curTaskPlanEnd) { - vTaskPlanLeftPx = general_utils_1.getOffset(vMinDate, curTaskPlanStart, vColWidth, this.vFormat, this.vShowWeekends); - vTaskPlanRightPx = general_utils_1.getOffset(curTaskPlanStart, curTaskPlanEnd, vColWidth, this.vFormat, this.vShowWeekends); - } - var vID = this.vTaskList[i].getID(); - var vComb = this.vTaskList[i].getParItem() && this.vTaskList[i].getParItem().getGroup() == 2; - var vCellFormat = ""; - var vTmpDiv_1 = null; - var vTmpItem = this.vTaskList[i]; - var vCaptClass = null; - // set cell width only for first row because of table-layout:fixed - var taskCellWidth = i === 0 ? vColWidth : null; - if (this.vTaskList[i].getMile() && !vComb) { - var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, "gmileitem gmile" + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null); - this.vTaskList[i].setChildRow(vTmpRow); - events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow); - var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellmile", null, vColWidth, null, null, null); - vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0"); - vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, 12, vTaskLeftPx_1 + vTaskRightPx - 6); - this.vTaskList[i].setBarDiv(vTmpDiv_1); - var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, 12); - this.vTaskList[i].setTaskDiv(vTmpDiv2); - if (this.vTaskList[i].getCompVal() < 100) - vTmpDiv2.appendChild(document.createTextNode("\u25CA")); - else { - vTmpDiv2 = draw_utils_1.newNode(vTmpDiv2, "div", null, "gmilediamond"); - draw_utils_1.newNode(vTmpDiv2, "div", null, "gmdtop"); - draw_utils_1.newNode(vTmpDiv2, "div", null, "gmdbottom"); - } - vCaptClass = "gmilecaption"; - if (!vSingleCell && !vComb) { - this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate); - } - } - else { - var vTaskWidth = vTaskRightPx; - // Draw Group Bar which has outer div with inner group div - // and several small divs to left and right to create angled-end indicators - if (this.vTaskList[i].getGroup()) { - vTaskWidth = vTaskWidth > this.vMinGpLen && vTaskWidth < this.vMinGpLen * 2 ? this.vMinGpLen * 2 : vTaskWidth; // Expand to show two end points - vTaskWidth = vTaskWidth < this.vMinGpLen ? this.vMinGpLen : vTaskWidth; // expand to show one end point - var vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, (this.vTaskList[i].getGroup() == 2 ? "glineitem gitem" : "ggroupitem ggroup") + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null); - this.vTaskList[i].setChildRow(vTmpRow); - events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow); - var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellbar", null, vColWidth, null, null); - vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0"); - this.vTaskList[i].setCellDiv(vTmpDiv_1); - if (this.vTaskList[i].getGroup() == 1) { - vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, vTaskWidth, vTaskLeftPx_1); - this.vTaskList[i].setBarDiv(vTmpDiv_1); - var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, vTaskWidth); - this.vTaskList[i].setTaskDiv(vTmpDiv2); - draw_utils_1.newNode(vTmpDiv2, "div", this.vDivId + "complete_" + vID, this.vTaskList[i].getClass() + "complete", null, this.vTaskList[i].getCompStr()); - draw_utils_1.newNode(vTmpDiv_1, "div", null, this.vTaskList[i].getClass() + "endpointleft"); - if (vTaskWidth >= this.vMinGpLen * 2) - draw_utils_1.newNode(vTmpDiv_1, "div", null, this.vTaskList[i].getClass() + "endpointright"); - vCaptClass = "ggroupcaption"; - } - if (!vSingleCell && !vComb) { - this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate); - } - } - else { - vTaskWidth = vTaskWidth <= 0 ? 1 : vTaskWidth; - /** - * DRAW THE BOXES FOR GANTT - */ - var vTmpDivCell = void 0, vTmpRow = void 0; - if (vComb) { - vTmpDivCell = vTmpDiv_1 = this.vTaskList[i].getParItem().getCellDiv(); - } - else { - // Draw Task Bar which has colored bar div - var differentDatesHighlight = ""; - if (this.vTaskList[i].getEnd() && this.vTaskList[i].getPlanEnd() && this.vTaskList[i].getStart() && this.vTaskList[i].getPlanStart()) - if (Date.parse(this.vTaskList[i].getEnd()) !== Date.parse(this.vTaskList[i].getPlanEnd()) || Date.parse(this.vTaskList[i].getStart()) !== Date.parse(this.vTaskList[i].getPlanStart())) - differentDatesHighlight = "gitemdifferent "; - vTmpRow = draw_utils_1.newNode(vTmpTBody, "tr", this.vDivId + "childrow_" + vID, "glineitem " + differentDatesHighlight + "gitem" + this.vFormat, null, null, null, this.vTaskList[i].getVisible() == 0 ? "none" : null); - this.vTaskList[i].setChildRow(vTmpRow); - events_1.addThisRowListeners(this, this.vTaskList[i].getListChildRow(), vTmpRow); - var vTmpCell = draw_utils_1.newNode(vTmpRow, "td", null, "gtaskcell gtaskcellcolorbar", null, taskCellWidth, null, null); - vTmpDivCell = vTmpDiv_1 = draw_utils_1.newNode(vTmpCell, "div", null, "gtaskcelldiv", "\u00A0\u00A0"); - } - // DRAW TASK BAR - vTmpDiv_1 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer", null, vTaskWidth, vTaskLeftPx_1); - this.vTaskList[i].setBarDiv(vTmpDiv_1); - var vTmpDiv2 = void 0; - if (this.vTaskList[i].getStartVar()) { - // textbar - vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getClass(), null, vTaskWidth); - if (this.vTaskList[i].getBarText()) { - draw_utils_1.newNode(vTmpDiv2, "span", this.vDivId + "tasktextbar_" + vID, "textbar", this.vTaskList[i].getBarText(), this.vTaskList[i].getCompRestStr()); - } - this.vTaskList[i].setTaskDiv(vTmpDiv2); - } - // PLANNED - // If exist and one of them are different, show plan bar... show if there is no real vStart as well (just plan dates) - if (vTaskPlanLeftPx && (vTaskPlanLeftPx != vTaskLeftPx_1 || vTaskPlanRightPx != vTaskRightPx || !this.vTaskList[i].getStartVar())) { - var vTmpPlanDiv = draw_utils_1.newNode(vTmpDivCell, "div", this.vDivId + "bardiv_" + vID, "gtaskbarcontainer gplan", null, vTaskPlanRightPx, vTaskPlanLeftPx); - var vTmpPlanDiv2 = draw_utils_1.newNode(vTmpPlanDiv, "div", this.vDivId + "taskbar_" + vID, this.vTaskList[i].getPlanClass() + " gplan", null, vTaskPlanRightPx); - this.vTaskList[i].setPlanTaskDiv(vTmpPlanDiv2); - } - // and opaque completion div - if (vTmpDiv2) { - draw_utils_1.newNode(vTmpDiv2, "div", this.vDivId + "complete_" + vID, this.vTaskList[i].getClass() + "complete", null, this.vTaskList[i].getCompStr()); - } - // caption - if (vComb) - vTmpItem = this.vTaskList[i].getParItem(); - if (!vComb || (vComb && this.vTaskList[i].getParItem().getEnd() == this.vTaskList[i].getEnd())) - vCaptClass = "gcaption"; - // Background cells - if (!vSingleCell && !vComb && vTmpRow) { - this.drawColsChart(vNumCols, vTmpRow, taskCellWidth, vMinDate, vMaxDate); - } - } - } - if (this.getCaptionType() && vCaptClass !== null) { - var vCaptionStr = void 0; - switch (this.getCaptionType()) { - case "Caption": - vCaptionStr = vTmpItem.getCaption(); - break; - case "Resource": - vCaptionStr = vTmpItem.getResource(); - break; - case "Duration": - vCaptionStr = vTmpItem.getDuration(this.vFormat, this.vLangs[this.vLang]); - break; - case "Complete": - vCaptionStr = vTmpItem.getCompStr(); - break; - } - draw_utils_1.newNode(vTmpDiv_1, "div", null, vCaptClass, vCaptionStr, 120, vCaptClass == "gmilecaption" ? 12 : 0); - } - // Add Task Info div for tooltip - if (this.vTaskList[i].getTaskDiv() && vTmpDiv_1) { - var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "tt" + vID, null, null, null, null, "none"); - var _a = this.createTaskInfo(this.vTaskList[i], this.vTooltipTemplate), component = _a.component, callback = _a.callback; - vTmpDiv2.appendChild(component); - events_1.addTooltipListeners(this, this.vTaskList[i].getTaskDiv(), vTmpDiv2, callback); - } - // Add Plan Task Info div for tooltip - if (this.vTaskList[i].getPlanTaskDiv() && vTmpDiv_1) { - var vTmpDiv2 = draw_utils_1.newNode(vTmpDiv_1, "div", this.vDivId + "tt" + vID, null, null, null, null, "none"); - var _b = this.createTaskInfo(this.vTaskList[i], this.vTooltipTemplate), component = _b.component, callback = _b.callback; - vTmpDiv2.appendChild(component); - events_1.addTooltipListeners(this, this.vTaskList[i].getPlanTaskDiv(), vTmpDiv2, callback); - } - } - // Include the footer with the days/week/month... - if (vSingleCell) { - var vTmpTFootTRow = draw_utils_1.newNode(vTmpTFoot, "tr"); - var vTmpTFootTCell = draw_utils_1.newNode(vTmpTFootTRow, "td", null, null, null, "100%"); - var vTmpTFootTCellTable = draw_utils_1.newNode(vTmpTFootTCell, "table", null, "gcharttableh", null, "100%"); - var vTmpTFootTCellTableTBody = draw_utils_1.newNode(vTmpTFootTCellTable, "tbody"); - vTmpTFootTCellTableTBody.appendChild(vDateRow.cloneNode(true)); - } - else { - vTmpTFoot.appendChild(vDateRow.cloneNode(true)); - } - return { vRightTable: vRightTable }; - }; - this.drawColsChart = function (vNumCols, vTmpRow, taskCellWidth, pStartDate, pEndDate) { - if (pStartDate === void 0) { pStartDate = null; } - if (pEndDate === void 0) { pEndDate = null; } - var columnCurrentDay = null; - // Find the Current day cell to put a different class - if (this.vShowWeekends !== false && pStartDate && pEndDate && (this.vFormat == "day" || this.vFormat == "week")) { - var curTaskStart = new Date(pStartDate.getTime()); - var curTaskEnd = new Date(); - var onePeriod = 3600000; - if (this.vFormat == "day") { - onePeriod *= 24; - } - else if (this.vFormat == "week") { - onePeriod *= 24 * 7; - } - columnCurrentDay = Math.floor(general_utils_1.calculateCurrentDateOffset(curTaskStart, curTaskEnd) / onePeriod) - 1; - } - for (var j = 0; j < vNumCols - 1; j++) { - var vCellFormat = "gtaskcell gtaskcellcols"; - if (this.vShowWeekends !== false && this.vFormat == "day" && (j % 7 == 4 || j % 7 == 5)) { - vCellFormat = "gtaskcellwkend"; - } - //When is the column is the current day/week,give a different class - else if ((this.vFormat == "week" || this.vFormat == "day") && j === columnCurrentDay) { - vCellFormat = "gtaskcellcurrent"; - } - draw_utils_1.newNode(vTmpRow, "td", null, vCellFormat, "\u00A0\u00A0", taskCellWidth); - } - }; - /** - * - * - * DRAWING PROCESS - * - * vTaskRightPx,vTaskWidth,vTaskPlanLeftPx,vTaskPlanRightPx,vID - */ - this.Draw = function () { - var vMaxDate = new Date(); - var vMinDate = new Date(); - var vColWidth = 0; - var bd; - if (this.vEvents && this.vEvents.beforeDraw) { - this.vEvents.beforeDraw(); - } - if (this.vDebug) { - bd = new Date(); - console.info("before draw", bd); - } - // Process all tasks, reset parent date and completion % if task list has altered - if (this.vProcessNeeded) - task_1.processRows(this.vTaskList, 0, -1, 1, 1, this.getUseSort(), this.vDebug); - this.vProcessNeeded = false; - // get overall min/max dates plus padding - vMinDate = date_utils_1.getMinDate(this.vTaskList, this.vFormat, this.getMinDate() && date_utils_1.coerceDate(this.getMinDate())); - vMaxDate = date_utils_1.getMaxDate(this.vTaskList, this.vFormat, this.getMaxDate() && date_utils_1.coerceDate(this.getMaxDate())); - // Calculate chart width variables. - if (this.vFormat == "day") - vColWidth = this.vDayColWidth; - else if (this.vFormat == "week") - vColWidth = this.vWeekColWidth; - else if (this.vFormat == "month") - vColWidth = this.vMonthColWidth; - else if (this.vFormat == "quarter") - vColWidth = this.vQuarterColWidth; - else if (this.vFormat == "hour") - vColWidth = this.vHourColWidth; - // DRAW the Left-side of the chart (names, resources, comp%) - var vLeftHeader = document.createDocumentFragment(); - /** - * LIST HEAD - */ - var gListLbl = this.drawListHead(vLeftHeader); - /** - * LIST BODY - */ - var _a = this.drawListBody(vLeftHeader), vNumRows = _a.vNumRows, vTmpContentTabWrapper = _a.vTmpContentTabWrapper; - /** - * CHART HEAD - */ - var _b = this.drawChartHead(vMinDate, vMaxDate, vColWidth, vNumRows), gChartLbl = _b.gChartLbl, vTaskLeftPx = _b.vTaskLeftPx, vSingleCell = _b.vSingleCell, vRightHeader = _b.vRightHeader, vDateRow = _b.vDateRow, vNumCols = _b.vNumCols; - /** - * CHART GRID - */ - var vRightTable = this.drawCharBody(vTaskLeftPx, vTmpContentTabWrapper, gChartLbl, gListLbl, vMinDate, vMaxDate, vSingleCell, vNumCols, vColWidth, vDateRow).vRightTable; - if (this.vDebug) { - var ad = new Date(); - console.info("after tasks loop", ad, ad.getTime() - bd.getTime()); - } - // MAIN VIEW: Appending all generated components to main view - while (this.vDiv.hasChildNodes()) - this.vDiv.removeChild(this.vDiv.firstChild); - var vTmpDiv = draw_utils_1.newNode(this.vDiv, "div", null, "gchartcontainer"); - vTmpDiv.style.height = this.vTotalHeight; - var leftvTmpDiv = draw_utils_1.newNode(vTmpDiv, "div", null, "gmain gmainleft"); - leftvTmpDiv.appendChild(vLeftHeader); - // leftvTmpDiv.appendChild(vLeftTable); - var rightvTmpDiv = draw_utils_1.newNode(vTmpDiv, "div", null, "gmain gmainright"); - rightvTmpDiv.appendChild(vRightHeader); - rightvTmpDiv.appendChild(vRightTable); - vTmpDiv.appendChild(leftvTmpDiv); - vTmpDiv.appendChild(rightvTmpDiv); - draw_utils_1.newNode(vTmpDiv, "div", null, "ggridfooter"); - var vTmpDiv2 = draw_utils_1.newNode(this.getChartBody(), "div", this.vDivId + "Lines", "glinediv"); - if (this.vEvents.onLineContainerHover && typeof this.vEvents.onLineContainerHover === "function") { - events_1.addListener("mouseover", this.vEvents.onLineContainerHover, vTmpDiv2); - events_1.addListener("mouseout", this.vEvents.onLineContainerHover, vTmpDiv2); - } - vTmpDiv2.style.visibility = "hidden"; - this.setLines(vTmpDiv2); - /* Quick hack to show the generated HTML on older browsers - let tmpGenSrc=document.createElement('textarea'); - tmpGenSrc.appendChild(document.createTextNode(vTmpDiv.innerHTML)); - vDiv.appendChild(tmpGenSrc); - //*/ - // LISTENERS: Now all the content exists, register scroll listeners - events_1.addScrollListeners(this); - // SCROLL: now check if we are actually scrolling the pane - if (this.vScrollTo != "") { - var vScrollDate = new Date(vMinDate.getTime()); - var vScrollPx = 0; - if (this.vScrollTo.substr && this.vScrollTo.substr(0, 2) == "px") { - vScrollPx = parseInt(this.vScrollTo.substr(2)); - } - else { - if (this.vScrollTo === "today") { - vScrollDate = new Date(); - } - else if (this.vScrollTo instanceof Date) { - vScrollDate = this.vScrollTo; - } - else { - vScrollDate = date_utils_1.parseDateStr(this.vScrollTo, this.getDateInputFormat()); - } - if (this.vFormat == "hour") - vScrollDate.setMinutes(0, 0, 0); - else - vScrollDate.setHours(0, 0, 0, 0); - vScrollPx = general_utils_1.getOffset(vMinDate, vScrollDate, vColWidth, this.vFormat, this.vShowWeekends) - 30; - } - this.getChartBody().scrollLeft = vScrollPx; - } - if (vMinDate.getTime() <= new Date().getTime() && vMaxDate.getTime() >= new Date().getTime()) { - this.vTodayPx = general_utils_1.getOffset(vMinDate, new Date(), vColWidth, this.vFormat, this.vShowWeekends); - } - else - this.vTodayPx = -1; - // DEPENDENCIES: Draw lines of Dependencies - var bdd; - if (this.vDebug) { - bdd = new Date(); - console.info("before DrawDependencies", bdd); - } - if (this.vEvents && typeof this.vEvents.beforeLineDraw === "function") { - this.vEvents.beforeLineDraw(); - } - this.DrawDependencies(this.vDebug); - events_1.addListenerDependencies(this.vLineOptions); - // EVENTS - if (this.vEvents && typeof this.vEvents.afterLineDraw === "function") { - this.vEvents.afterLineDraw(); - } - if (this.vDebug) { - var ad = new Date(); - console.info("after DrawDependencies", ad, ad.getTime() - bdd.getTime()); - } - this.drawComplete(vMinDate, vColWidth, bd); - }; - /** - * Actions after all the render process - */ - this.drawComplete = function (vMinDate, vColWidth, bd) { - if (this.vDebug) { - var ad = new Date(); - console.info("after draw", ad, ad.getTime() - bd.getTime()); - } - events_1.updateGridHeaderWidth(this); - this.chartRowDateToX = function (date) { - return general_utils_1.getOffset(vMinDate, date, vColWidth, this.vFormat, this.vShowWeekends); - }; - if (this.vEvents && this.vEvents.afterDraw) { - this.vEvents.afterDraw(); - } - }; - if (this.vDiv && this.vDiv.nodeName && this.vDiv.nodeName.toLowerCase() == "div") - this.vDivId = this.vDiv.id; -}; //GanttChart - -},{"./draw_columns":3,"./draw_dependencies":4,"./events":5,"./lang":8,"./options":9,"./task":10,"./utils/date_utils":11,"./utils/draw_utils":12,"./utils/general_utils":13,"./xml":14}],3:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.draw_task_headings = exports.draw_bottom = exports.draw_header = exports.COLUMN_ORDER = void 0; -var date_utils_1 = require("./utils/date_utils"); -var task_1 = require("./task"); -var events_1 = require("./events"); -var draw_utils_1 = require("./utils/draw_utils"); -exports.COLUMN_ORDER = [ - 'vShowRes', - 'vShowDur', - 'vShowComp', - 'vShowStartDate', - 'vShowEndDate', - 'vShowPlanStartDate', - 'vShowPlanEndDate', - 'vShowCost', - 'vAdditionalHeaders', - 'vShowAddEntries' -]; -var COLUMNS_TYPES = { - 'vShowRes': 'res', - 'vShowDur': 'dur', - 'vShowComp': 'comp', - 'vShowStartDate': 'startdate', - 'vShowEndDate': 'enddate', - 'vShowPlanStartDate': 'planstartdate', - 'vShowPlanEndDate': 'planenddate', - 'vShowCost': 'cost', - 'vShowAddEntries': 'addentries' -}; -exports.draw_header = function (column, i, vTmpRow, vTaskList, vEditable, vEventsChange, vEvents, vDateTaskTableDisplayFormat, vAdditionalHeaders, vFormat, vLangs, vLang, vResources, Draw) { - var vTmpCell, vTmpDiv; - if ('vShowRes' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gres'); - var text = draw_utils_1.makeInput(vTaskList[i].getResource(), vEditable, 'resource', vTaskList[i].getResource(), vResources); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, text); - var callback = function (task, e) { return task.setResource(e.target.value); }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'res', Draw, 'change'); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'res'); - } - if ('vShowDur' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gdur'); - var text = draw_utils_1.makeInput(vTaskList[i].getDuration(vFormat, vLangs[vLang]), vEditable, 'text', vTaskList[i].getDuration()); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, text); - var callback = function (task, e) { return task.setDuration(e.target.value); }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'dur', Draw); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'dur'); - } - if ('vShowComp' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gcomp'); - var text = draw_utils_1.makeInput(vTaskList[i].getCompStr(), vEditable, 'percentage', vTaskList[i].getCompVal()); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, text); - var callback = function (task, e) { task.setComp(e.target.value); task.setCompVal(e.target.value); }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'comp', Draw); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'comp'); - } - if ('vShowStartDate' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gstartdate'); - var v = date_utils_1.formatDateStr(vTaskList[i].getStartVar(), vDateTaskTableDisplayFormat, vLangs[vLang]); - var text = draw_utils_1.makeInput(v, vEditable, 'date', vTaskList[i].getStartVar()); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, text); - var callback = function (task, e) { return task.setStart(e.target.value); }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'start', Draw); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'start'); - } - if ('vShowEndDate' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'genddate'); - var v = date_utils_1.formatDateStr(vTaskList[i].getEndVar(), vDateTaskTableDisplayFormat, vLangs[vLang]); - var text = draw_utils_1.makeInput(v, vEditable, 'date', vTaskList[i].getEndVar()); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, text); - var callback = function (task, e) { return task.setEnd(e.target.value); }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'end', Draw); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'end'); - } - if ('vShowPlanStartDate' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gplanstartdate'); - var v = vTaskList[i].getPlanStart() ? date_utils_1.formatDateStr(vTaskList[i].getPlanStart(), vDateTaskTableDisplayFormat, vLangs[vLang]) : ''; - var text = draw_utils_1.makeInput(v, vEditable, 'date', vTaskList[i].getPlanStart()); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, text); - var callback = function (task, e) { return task.setPlanStart(e.target.value); }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'planstart', Draw); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'planstart'); - } - if ('vShowPlanEndDate' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gplanenddate'); - var v = vTaskList[i].getPlanEnd() ? date_utils_1.formatDateStr(vTaskList[i].getPlanEnd(), vDateTaskTableDisplayFormat, vLangs[vLang]) : ''; - var text = draw_utils_1.makeInput(v, vEditable, 'date', vTaskList[i].getPlanEnd()); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, text); - var callback = function (task, e) { return task.setPlanEnd(e.target.value); }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'planend', Draw); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'planend'); - } - if ('vShowCost' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gcost'); - var text = draw_utils_1.makeInput(vTaskList[i].getCost(), vEditable, 'cost'); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, text); - var callback = function (task, e) { return task.setCost(e.target.value); }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'cost', Draw); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'cost'); - } - if ('vAdditionalHeaders' === column && vAdditionalHeaders) { - for (var key in vAdditionalHeaders) { - var header = vAdditionalHeaders[key]; - var css = header.class ? header.class : "gadditional-" + key; - var data = vTaskList[i].getDataObject(); - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, "gadditional " + css); - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, data ? data[key] : ''); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], "additional_" + key); - // const callback = (task, e) => task.setCost(e.target.value); - // addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'costdate'); - } - } - if ('vShowAddEntries' === column) { - vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gaddentries'); - var button = ""; - vTmpDiv = draw_utils_1.newNode(vTmpCell, 'div', null, null, button); - var callback = function (task, e) { - task_1.AddTaskItemObject({ - vParent: task.getParent() - }); - }; - events_1.addListenerInputCell(vTmpCell, vEventsChange, callback, vTaskList, i, 'addentries', Draw.bind(this)); - events_1.addListenerClickCell(vTmpCell, vEvents, vTaskList[i], 'addentries'); - } -}; -exports.draw_bottom = function (column, vTmpRow, vAdditionalHeaders) { - if ('vAdditionalHeaders' === column && vAdditionalHeaders) { - for (var key in vAdditionalHeaders) { - var header = vAdditionalHeaders[key]; - var css = header.class ? header.class : "gadditional-" + key; - draw_utils_1.newNode(vTmpRow, 'td', null, "gspanning gadditional " + css, '\u00A0'); - } - } - else { - var type = COLUMNS_TYPES[column]; - draw_utils_1.newNode(vTmpRow, 'td', null, "gspanning g" + type, '\u00A0'); - } -}; -// export const draw_list_headings = function (column, vTmpRow, vAdditionalHeaders, vEvents) { -// let nodeCreated; -// if ('vAdditionalHeaders' === column && vAdditionalHeaders) { -// for (const key in vAdditionalHeaders) { -// const header = vAdditionalHeaders[key]; -// const css = header.class ? header.class : `gadditional-${key}`; -// newNode(vTmpRow, 'td', null, `gspanning gadditional ${css}`, '\u00A0'); -// } -// } else { -// const type = COLUMNS_TYPES[column]; -// nodeCreated = newNode(vTmpRow, 'td', null, `gspanning g${type}`, '\u00A0'); -// addListenerClickCell(nodeCreated, vEvents, { hader: true, column }, type); -// } -// } -exports.draw_task_headings = function (column, vTmpRow, vLangs, vLang, vAdditionalHeaders, vEvents) { - var nodeCreated; - if ('vAdditionalHeaders' === column && vAdditionalHeaders) { - for (var key in vAdditionalHeaders) { - var header = vAdditionalHeaders[key]; - var text = header.translate ? vLangs[vLang][header.translate] : header.title; - var css = header.class ? header.class : "gadditional-" + key; - nodeCreated = draw_utils_1.newNode(vTmpRow, 'td', null, "gtaskheading gadditional " + css, text); - } - } - else { - var type = COLUMNS_TYPES[column]; - nodeCreated = draw_utils_1.newNode(vTmpRow, 'td', null, "gtaskheading g" + type, vLangs[vLang][type]); - events_1.addListenerClickCell(nodeCreated, vEvents, { hader: true, column: column }, type); - } -}; - -},{"./events":5,"./task":10,"./utils/date_utils":11,"./utils/draw_utils":12}],4:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.DrawDependencies = exports.drawDependency = void 0; -exports.drawDependency = function (x1, y1, x2, y2, pType, pClass) { - var vDir = 1; - var vBend = false; - var vShort = 4; - var vRow = Math.floor(this.getRowHeight() / 2); - if (y2 < y1) - vRow *= -1; - switch (pType) { - case 'SF': - vShort *= -1; - if (x1 - 10 <= x2 && y1 != y2) - vBend = true; - vDir = -1; - break; - case 'SS': - if (x1 < x2) - vShort *= -1; - else - vShort = x2 - x1 - (2 * vShort); - break; - case 'FF': - if (x1 <= x2) - vShort = x2 - x1 + (2 * vShort); - vDir = -1; - break; - default: - if (x1 + 10 >= x2 && y1 != y2) - vBend = true; - break; - } - if (vBend) { - this.sLine(x1, y1, x1 + vShort, y1, pClass); - this.sLine(x1 + vShort, y1, x1 + vShort, y2 - vRow, pClass); - this.sLine(x1 + vShort, y2 - vRow, x2 - (vShort * 2), y2 - vRow, pClass); - this.sLine(x2 - (vShort * 2), y2 - vRow, x2 - (vShort * 2), y2, pClass); - this.sLine(x2 - (vShort * 2), y2, x2 - (1 * vDir), y2, pClass); - } - else if (y1 != y2) { - this.sLine(x1, y1, x1 + vShort, y1, pClass); - this.sLine(x1 + vShort, y1, x1 + vShort, y2, pClass); - this.sLine(x1 + vShort, y2, x2 - (1 * vDir), y2, pClass); - } - else - this.sLine(x1, y1, x2 - (1 * vDir), y2, pClass); - var vTmpDiv = this.sLine(x2, y2, x2 - 3 - ((vDir < 0) ? 1 : 0), y2 - 3 - ((vDir < 0) ? 1 : 0), pClass + "Arw"); - vTmpDiv.style.width = '0px'; - vTmpDiv.style.height = '0px'; -}; -exports.DrawDependencies = function (vDebug) { - if (vDebug === void 0) { vDebug = false; } - if (this.getShowDeps() == 1) { - this.CalcTaskXY(); //First recalculate the x,y - this.clearDependencies(); - var vList = this.getList(); - for (var i = 0; i < vList.length; i++) { - var vDepend = vList[i].getDepend(); - var vDependType = vList[i].getDepType(); - var n = vDepend.length; - if (n > 0 && vList[i].getVisible() == 1) { - for (var k = 0; k < n; k++) { - var vTask = this.getArrayLocationByID(vDepend[k]); - if (vTask >= 0 && vList[vTask].getGroup() != 2) { - if (vList[vTask].getVisible() == 1) { - if (vDebug) { - console.info("init drawDependency ", vList[vTask].getID(), new Date()); - } - var cssClass = 'gDepId' + vList[vTask].getID() + - ' ' + 'gDepNextId' + vList[i].getID(); - var dependedData = vList[vTask].getDataObject(); - var nextDependedData = vList[i].getDataObject(); - if (dependedData && dependedData.pID && nextDependedData && nextDependedData.pID) { - cssClass += ' gDepDataId' + dependedData.pID + ' ' + 'gDepNextDataId' + nextDependedData.pID; - } - if (vDependType[k] == 'SS') - this.drawDependency(vList[vTask].getStartX() - 1, vList[vTask].getStartY(), vList[i].getStartX() - 1, vList[i].getStartY(), 'SS', cssClass + ' gDepSS'); - else if (vDependType[k] == 'FF') - this.drawDependency(vList[vTask].getEndX(), vList[vTask].getEndY(), vList[i].getEndX(), vList[i].getEndY(), 'FF', cssClass + ' gDepFF'); - else if (vDependType[k] == 'SF') - this.drawDependency(vList[vTask].getStartX() - 1, vList[vTask].getStartY(), vList[i].getEndX(), vList[i].getEndY(), 'SF', cssClass + ' gDepSF'); - else if (vDependType[k] == 'FS') - this.drawDependency(vList[vTask].getEndX(), vList[vTask].getEndY(), vList[i].getStartX() - 1, vList[i].getStartY(), 'FS', cssClass + ' gDepFS'); - } - } - } - } - } - } - // draw the current date line - if (this.vTodayPx >= 0) { - this.sLine(this.vTodayPx, 0, this.vTodayPx, this.getChartTable().offsetHeight - 1, 'gCurDate'); - } -}; - -},{}],5:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.addListenerDependencies = exports.addListenerInputCell = exports.addListenerClickCell = exports.addScrollListeners = exports.addFormatListeners = exports.addFolderListeners = exports.updateGridHeaderWidth = exports.addThisRowListeners = exports.addTooltipListeners = exports.syncScroll = exports.removeListener = exports.addListener = exports.showToolTip = exports.mouseOut = exports.mouseOver = exports.show = exports.hide = exports.folder = void 0; -var general_utils_1 = require("./utils/general_utils"); -// Function to open/close and hide/show children of specified task -exports.folder = function (pID, ganttObj) { - var vList = ganttObj.getList(); - ganttObj.clearDependencies(); // clear these first so slow rendering doesn't look odd - for (var i = 0; i < vList.length; i++) { - if (vList[i].getID() == pID) { - if (vList[i].getOpen() == 1) { - vList[i].setOpen(0); - exports.hide(pID, ganttObj); - if (general_utils_1.isIE()) - vList[i].getGroupSpan().innerText = '+'; - else - vList[i].getGroupSpan().textContent = '+'; - } - else { - vList[i].setOpen(1); - exports.show(pID, 1, ganttObj); - if (general_utils_1.isIE()) - vList[i].getGroupSpan().innerText = '-'; - else - vList[i].getGroupSpan().textContent = '-'; - } - } - } - var bd; - if (this.vDebug) { - bd = new Date(); - console.info('after drawDependency', bd); - } - ganttObj.DrawDependencies(this.vDebug); - if (this.vDebug) { - var ad = new Date(); - console.info('after drawDependency', ad, (ad.getTime() - bd.getTime())); - } -}; -exports.hide = function (pID, ganttObj) { - var vList = ganttObj.getList(); - var vID = 0; - for (var i = 0; i < vList.length; i++) { - if (vList[i].getParent() == pID) { - vID = vList[i].getID(); - // it's unlikely but if the task list has been updated since - // the chart was drawn some of the rows may not exist - if (vList[i].getListChildRow()) - vList[i].getListChildRow().style.display = 'none'; - if (vList[i].getChildRow()) - vList[i].getChildRow().style.display = 'none'; - vList[i].setVisible(0); - if (vList[i].getGroup()) - exports.hide(vID, ganttObj); - } - } -}; -// Function to show children of specified task -exports.show = function (pID, pTop, ganttObj) { - var vList = ganttObj.getList(); - var vID = 0; - var vState = ''; - for (var i = 0; i < vList.length; i++) { - if (vList[i].getParent() == pID) { - if (!vList[i].getParItem()) { - console.error("Cant find parent on who event (maybe problems with Task ID and Parent Id mixes?)"); - } - if (vList[i].getParItem().getGroupSpan()) { - if (general_utils_1.isIE()) - vState = vList[i].getParItem().getGroupSpan().innerText; - else - vState = vList[i].getParItem().getGroupSpan().textContent; - } - i = vList.length; - } - } - for (var i = 0; i < vList.length; i++) { - if (vList[i].getParent() == pID) { - var vChgState = false; - vID = vList[i].getID(); - if (pTop == 1 && vState == '+') - vChgState = true; - else if (vState == '-') - vChgState = true; - else if (vList[i].getParItem() && vList[i].getParItem().getGroup() == 2) - vList[i].setVisible(1); - if (vChgState) { - if (vList[i].getListChildRow()) - vList[i].getListChildRow().style.display = ''; - if (vList[i].getChildRow()) - vList[i].getChildRow().style.display = ''; - vList[i].setVisible(1); - } - if (vList[i].getGroup()) - exports.show(vID, 0, ganttObj); - } - } -}; -exports.mouseOver = function (pObj1, pObj2) { - if (this.getUseRowHlt()) { - pObj1.className += ' gitemhighlight'; - pObj2.className += ' gitemhighlight'; - } -}; -exports.mouseOut = function (pObj1, pObj2) { - if (this.getUseRowHlt()) { - pObj1.className = pObj1.className.replace(/(?:^|\s)gitemhighlight(?!\S)/g, ''); - pObj2.className = pObj2.className.replace(/(?:^|\s)gitemhighlight(?!\S)/g, ''); - } -}; -exports.showToolTip = function (pGanttChartObj, e, pContents, pWidth, pTimer) { - var vTtDivId = pGanttChartObj.getDivId() + 'JSGanttToolTip'; - var vMaxW = 500; - var vMaxAlpha = 100; - var vShowing = pContents.id; - if (pGanttChartObj.getUseToolTip()) { - if (pGanttChartObj.vTool == null) { - pGanttChartObj.vTool = document.createElement('div'); - pGanttChartObj.vTool.id = vTtDivId; - pGanttChartObj.vTool.className = 'JSGanttToolTip'; - pGanttChartObj.vTool.vToolCont = document.createElement('div'); - pGanttChartObj.vTool.vToolCont.id = vTtDivId + 'cont'; - pGanttChartObj.vTool.vToolCont.className = 'JSGanttToolTipcont'; - pGanttChartObj.vTool.vToolCont.setAttribute('showing', ''); - pGanttChartObj.vTool.appendChild(pGanttChartObj.vTool.vToolCont); - document.body.appendChild(pGanttChartObj.vTool); - pGanttChartObj.vTool.style.opacity = 0; - pGanttChartObj.vTool.setAttribute('currentOpacity', 0); - pGanttChartObj.vTool.setAttribute('fadeIncrement', 10); - pGanttChartObj.vTool.setAttribute('moveSpeed', 10); - pGanttChartObj.vTool.style.filter = 'alpha(opacity=0)'; - pGanttChartObj.vTool.style.visibility = 'hidden'; - pGanttChartObj.vTool.style.left = Math.floor(((e) ? e.clientX : window.event.clientX) / 2) + 'px'; - pGanttChartObj.vTool.style.top = Math.floor(((e) ? e.clientY : window.event.clientY) / 2) + 'px'; - this.addListener('mouseover', function () { clearTimeout(pGanttChartObj.vTool.delayTimeout); }, pGanttChartObj.vTool); - this.addListener('mouseout', function () { general_utils_1.delayedHide(pGanttChartObj, pGanttChartObj.vTool, pTimer); }, pGanttChartObj.vTool); - } - clearTimeout(pGanttChartObj.vTool.delayTimeout); - var newHTML = pContents.innerHTML; - if (pGanttChartObj.vTool.vToolCont.getAttribute("content") !== newHTML) { - pGanttChartObj.vTool.vToolCont.innerHTML = pContents.innerHTML; - // as we are allowing arbitrary HTML we should remove any tag ids to prevent duplication - general_utils_1.stripIds(pGanttChartObj.vTool.vToolCont); - pGanttChartObj.vTool.vToolCont.setAttribute("content", newHTML); - } - if (pGanttChartObj.vTool.vToolCont.getAttribute('showing') != vShowing || pGanttChartObj.vTool.style.visibility != 'visible') { - if (pGanttChartObj.vTool.vToolCont.getAttribute('showing') != vShowing) { - pGanttChartObj.vTool.vToolCont.setAttribute('showing', vShowing); - } - pGanttChartObj.vTool.style.visibility = 'visible'; - // Rather than follow the mouse just have it stay put - general_utils_1.updateFlyingObj(e, pGanttChartObj, pTimer); - pGanttChartObj.vTool.style.width = (pWidth) ? pWidth + 'px' : 'auto'; - if (!pWidth && general_utils_1.isIE()) { - pGanttChartObj.vTool.style.width = pGanttChartObj.vTool.offsetWidth; - } - if (pGanttChartObj.vTool.offsetWidth > vMaxW) { - pGanttChartObj.vTool.style.width = vMaxW + 'px'; - } - } - if (pGanttChartObj.getUseFade()) { - clearInterval(pGanttChartObj.vTool.fadeInterval); - pGanttChartObj.vTool.fadeInterval = setInterval(function () { general_utils_1.fadeToolTip(1, pGanttChartObj.vTool, vMaxAlpha); }, pTimer); - } - else { - pGanttChartObj.vTool.style.opacity = vMaxAlpha * 0.01; - pGanttChartObj.vTool.style.filter = 'alpha(opacity=' + vMaxAlpha + ')'; - } - } -}; -exports.addListener = function (eventName, handler, control) { - // Check if control is a string - if (control === String(control)) - control = general_utils_1.findObj(control); - if (control.addEventListener) //Standard W3C - { - return control.addEventListener(eventName, handler, false); - } - else if (control.attachEvent) //IExplore - { - return control.attachEvent('on' + eventName, handler); - } - else { - return false; - } -}; -exports.removeListener = function (eventName, handler, control) { - // Check if control is a string - if (control === String(control)) - control = general_utils_1.findObj(control); - if (control.removeEventListener) { - //Standard W3C - return control.removeEventListener(eventName, handler, false); - } - else if (control.detachEvent) { - //IExplore - return control.attachEvent('on' + eventName, handler); - } - else { - return false; - } -}; -exports.syncScroll = function (elements, attrName) { - var syncFlags = new Map(elements.map(function (e) { return [e, false]; })); - function scrollEvent(e) { - if (!syncFlags.get(e.target)) { - for (var _i = 0, elements_2 = elements; _i < elements_2.length; _i++) { - var el = elements_2[_i]; - if (el !== e.target) { - syncFlags.set(el, true); - el[attrName] = e.target[attrName]; - } - } - } - syncFlags.set(e.target, false); - } - for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { - var el = elements_1[_i]; - el.addEventListener('scroll', scrollEvent); - } -}; -exports.addTooltipListeners = function (pGanttChart, pObj1, pObj2, callback) { - var isShowingTooltip = false; - exports.addListener('mouseover', function (e) { - if (isShowingTooltip || !callback) { - exports.showToolTip(pGanttChart, e, pObj2, null, pGanttChart.getTimer()); - } - else if (callback) { - isShowingTooltip = true; - var promise = callback(); - exports.showToolTip(pGanttChart, e, pObj2, null, pGanttChart.getTimer()); - if (promise && promise.then) { - promise.then(function () { - if (pGanttChart.vTool.vToolCont.getAttribute('showing') === pObj2.id && - pGanttChart.vTool.style.visibility === 'visible') { - exports.showToolTip(pGanttChart, e, pObj2, null, pGanttChart.getTimer()); - } - }); - } - } - }, pObj1); - exports.addListener('mouseout', function (e) { - var outTo = e.relatedTarget; - if (general_utils_1.isParentElementOrSelf(outTo, pObj1) || (pGanttChart.vTool && general_utils_1.isParentElementOrSelf(outTo, pGanttChart.vTool))) { - // not actually out - } - else { - isShowingTooltip = false; - } - general_utils_1.delayedHide(pGanttChart, pGanttChart.vTool, pGanttChart.getTimer()); - }, pObj1); -}; -exports.addThisRowListeners = function (pGanttChart, pObj1, pObj2) { - exports.addListener('mouseover', function () { pGanttChart.mouseOver(pObj1, pObj2); }, pObj1); - exports.addListener('mouseover', function () { pGanttChart.mouseOver(pObj1, pObj2); }, pObj2); - exports.addListener('mouseout', function () { pGanttChart.mouseOut(pObj1, pObj2); }, pObj1); - exports.addListener('mouseout', function () { pGanttChart.mouseOut(pObj1, pObj2); }, pObj2); -}; -exports.updateGridHeaderWidth = function (pGanttChart) { - var head = pGanttChart.getChartHead(); - var body = pGanttChart.getChartBody(); - if (!head || !body) - return; - var isScrollVisible = body.scrollHeight > body.clientHeight; - if (isScrollVisible) { - head.style.width = "calc(100% - " + general_utils_1.getScrollbarWidth() + "px)"; - } - else { - head.style.width = '100%'; - } -}; -exports.addFolderListeners = function (pGanttChart, pObj, pID) { - exports.addListener('click', function () { - exports.folder(pID, pGanttChart); - exports.updateGridHeaderWidth(pGanttChart); - }, pObj); -}; -exports.addFormatListeners = function (pGanttChart, pFormat, pObj) { - exports.addListener('click', function () { general_utils_1.changeFormat(pFormat, pGanttChart); }, pObj); -}; -exports.addScrollListeners = function (pGanttChart) { - exports.addListener('resize', function () { pGanttChart.getChartHead().scrollLeft = pGanttChart.getChartBody().scrollLeft; }, window); - exports.addListener('resize', function () { - pGanttChart.getListBody().scrollTop = pGanttChart.getChartBody().scrollTop; - }, window); -}; -exports.addListenerClickCell = function (vTmpCell, vEvents, task, column) { - exports.addListener('click', function (e) { - if (e.target.classList.contains('gfoldercollapse') === false && - vEvents[column] && typeof vEvents[column] === 'function') { - vEvents[column](task, e, vTmpCell, column); - } - }, vTmpCell); -}; -exports.addListenerInputCell = function (vTmpCell, vEventsChange, callback, tasks, index, column, draw, event) { - if (draw === void 0) { draw = null; } - if (event === void 0) { event = 'blur'; } - var task = tasks[index]; - if (vTmpCell.children[0] && vTmpCell.children[0].children && vTmpCell.children[0].children[0]) { - var tagName = vTmpCell.children[0].children[0].tagName; - var selectInputOrButton = tagName === 'SELECT' || tagName === 'INPUT' || tagName === 'BUTTON'; - if (selectInputOrButton) { - exports.addListener(event, function (e) { - if (callback) { - callback(task, e); - } - if (vEventsChange[column] && typeof vEventsChange[column] === 'function') { - var q = vEventsChange[column](tasks, task, e, vTmpCell, vColumnsNames[column]); - if (q && q.then) { - q.then(function (e) { return draw(); }); - } - else { - draw(); - } - } - else { - draw(); - } - }, vTmpCell.children[0].children[0]); - } - } -}; -exports.addListenerDependencies = function (vLineOptions) { - var elements = document.querySelectorAll('.gtaskbarcontainer'); - for (var i = 0; i < elements.length; i++) { - var taskDiv = elements[i]; - taskDiv.addEventListener('mouseover', function (e) { - toggleDependencies(e, vLineOptions); - }); - taskDiv.addEventListener('mouseout', function (e) { - toggleDependencies(e, vLineOptions); - }); - } -}; -var toggleDependencies = function (e, vLineOptions) { - var target = e.currentTarget; - var ids = target.getAttribute('id').split('_'); - var style = vLineOptions && vLineOptions.borderStyleHover !== undefined ? vLineOptions.hoverStyle : 'groove'; - if (e.type === 'mouseout') { - style = ''; - } - if (ids.length > 1) { - var frameZones = Array.from(document.querySelectorAll(".gDepId" + ids[1])); - frameZones.forEach(function (c) { - c.style.borderStyle = style; - }); - // document.querySelectorAll(`.gDepId${ids[1]}`).forEach((c: any) => { - // c.style.borderStyle = style; - // }); - } -}; -var vColumnsNames = { - taskname: 'pName', - res: 'pRes', - dur: '', - comp: 'pComp', - start: 'pStart', - end: 'pEnd', - planstart: 'pPlanStart', - planend: 'pPlanEnd', - link: 'pLink', - cost: 'pCost', - mile: 'pMile', - group: 'pGroup', - parent: 'pParent', - open: 'pOpen', - depend: 'pDepend', - caption: 'pCaption', - note: 'pNotes' -}; - -},{"./utils/general_utils":13}],6:[function(require,module,exports){ -"use strict"; -/* - * Copyright (c) 2013-2018, Paul Geldart, Eduardo Rodrigues, Ricardo Cardoso and Mario Mol. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of AUTHORS nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL AUTHORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - This project is based on jsGantt 1.2, (which can be obtained from - https://code.google.com/p/jsgantt/) and remains under the original BSD license. - Copyright (c) 2009, Shlomy Gantz BlueBrick Inc. -*/ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.JSGantt = void 0; -var events_1 = require("./events"); -var general_utils_1 = require("./utils/general_utils"); -var xml_1 = require("./xml"); -var task_1 = require("./task"); -var draw_1 = require("./draw"); -var json_1 = require("./json"); -var date_utils_1 = require("./utils/date_utils"); -if (!exports.JSGantt) - exports.JSGantt = {}; -exports.JSGantt.isIE = general_utils_1.isIE; -exports.JSGantt.TaskItem = task_1.TaskItem; -exports.JSGantt.GanttChart = draw_1.GanttChart; -exports.JSGantt.updateFlyingObj = general_utils_1.updateFlyingObj; -exports.JSGantt.showToolTip = events_1.showToolTip; -exports.JSGantt.stripIds = general_utils_1.stripIds; -exports.JSGantt.stripUnwanted = general_utils_1.stripUnwanted; -exports.JSGantt.delayedHide = general_utils_1.delayedHide; -exports.JSGantt.hideToolTip = general_utils_1.hideToolTip; -exports.JSGantt.fadeToolTip = general_utils_1.fadeToolTip; -exports.JSGantt.moveToolTip = general_utils_1.moveToolTip; -exports.JSGantt.getZoomFactor = general_utils_1.getZoomFactor; -exports.JSGantt.getOffset = general_utils_1.getOffset; -exports.JSGantt.getScrollPositions = general_utils_1.getScrollPositions; -exports.JSGantt.processRows = task_1.processRows; -exports.JSGantt.sortTasks = task_1.sortTasks; -// Used to determine the minimum date of all tasks and set lower bound based on format -exports.JSGantt.getMinDate = date_utils_1.getMinDate; -// Used to determine the maximum date of all tasks and set upper bound based on format -exports.JSGantt.getMaxDate = date_utils_1.getMaxDate; -// This function finds the document id of the specified object -exports.JSGantt.findObj = general_utils_1.findObj; -exports.JSGantt.changeFormat = general_utils_1.changeFormat; -// Tasks -exports.JSGantt.folder = events_1.folder; -exports.JSGantt.hide = events_1.hide; -exports.JSGantt.show = events_1.show; -exports.JSGantt.taskLink = task_1.taskLink; -exports.JSGantt.parseDateStr = date_utils_1.parseDateStr; -exports.JSGantt.formatDateStr = date_utils_1.formatDateStr; -exports.JSGantt.parseDateFormatStr = date_utils_1.parseDateFormatStr; -// XML -exports.JSGantt.parseXML = xml_1.parseXML; -exports.JSGantt.parseXMLString = xml_1.parseXMLString; -exports.JSGantt.findXMLNode = xml_1.findXMLNode; -exports.JSGantt.getXMLNodeValue = xml_1.getXMLNodeValue; -exports.JSGantt.AddXMLTask = xml_1.AddXMLTask; -// JSON -exports.JSGantt.parseJSON = json_1.parseJSON; -exports.JSGantt.parseJSONString = json_1.parseJSONString; -exports.JSGantt.addJSONTask = json_1.addJSONTask; -exports.JSGantt.benchMark = general_utils_1.benchMark; -exports.JSGantt.getIsoWeek = date_utils_1.getIsoWeek; -exports.JSGantt.addListener = events_1.addListener; -exports.JSGantt.addTooltipListeners = events_1.addTooltipListeners; -exports.JSGantt.addThisRowListeners = events_1.addThisRowListeners; -exports.JSGantt.addFolderListeners = events_1.addFolderListeners; -exports.JSGantt.addFormatListeners = events_1.addFormatListeners; -exports.JSGantt.addScrollListeners = events_1.addScrollListeners; -exports.JSGantt.criticalPath = general_utils_1.criticalPath; - -},{"./draw":2,"./events":5,"./json":7,"./task":10,"./utils/date_utils":11,"./utils/general_utils":13,"./xml":14}],7:[function(require,module,exports){ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.addJSONTask = exports.parseJSONString = exports.parseJSON = void 0; -var task_1 = require("./task"); -var general_utils_1 = require("./utils/general_utils"); -/** - * - * @param pFile - * @param pGanttlet - */ -exports.parseJSON = function (pFile, pGanttVar, vDebug, redrawAfter) { - if (vDebug === void 0) { vDebug = false; } - if (redrawAfter === void 0) { redrawAfter = true; } - return __awaiter(this, void 0, void 0, function () { - var jsonObj, bd, ad; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, general_utils_1.makeRequest(pFile, true, true)]; - case 1: - jsonObj = _a.sent(); - if (vDebug) { - bd = new Date(); - console.info('before jsonparse', bd); - } - exports.addJSONTask(pGanttVar, jsonObj); - if (this.vDebug) { - ad = new Date(); - console.info('after addJSONTask', ad, (ad.getTime() - bd.getTime())); - } - if (redrawAfter) { - pGanttVar.Draw(); - } - return [2 /*return*/, jsonObj]; - } - }); - }); -}; -exports.parseJSONString = function (pStr, pGanttVar) { - exports.addJSONTask(pGanttVar, JSON.parse(pStr)); -}; -exports.addJSONTask = function (pGanttVar, pJsonObj) { - for (var index = 0; index < pJsonObj.length; index++) { - var id = void 0; - var name_1 = void 0; - var start = void 0; - var end = void 0; - var planstart = void 0; - var planend = void 0; - var itemClass = void 0; - var planClass = void 0; - var link = ''; - var milestone = 0; - var resourceName = ''; - var completion = void 0; - var group = 0; - var parent_1 = void 0; - var open_1 = void 0; - var dependsOn = ''; - var caption = ''; - var notes = ''; - var cost = void 0; - var duration = ''; - var bartext = ''; - var additionalObject = {}; - for (var prop in pJsonObj[index]) { - var property = prop; - var value = pJsonObj[index][property]; - switch (property.toLowerCase()) { - case 'pid': - case 'id': - id = value; - break; - case 'pname': - case 'name': - name_1 = value; - break; - case 'pstart': - case 'start': - start = value; - break; - case 'pend': - case 'end': - end = value; - break; - case 'pplanstart': - case 'planstart': - planstart = value; - break; - case 'pplanend': - case 'planend': - planend = value; - break; - case 'pclass': - case 'class': - itemClass = value; - break; - case 'pplanclass': - case 'planclass': - planClass = value; - break; - case 'plink': - case 'link': - link = value; - break; - case 'pmile': - case 'mile': - milestone = value; - break; - case 'pres': - case 'res': - resourceName = value; - break; - case 'pcomp': - case 'comp': - completion = value; - break; - case 'pgroup': - case 'group': - group = value; - break; - case 'pparent': - case 'parent': - parent_1 = value; - break; - case 'popen': - case 'open': - open_1 = value; - break; - case 'pdepend': - case 'depend': - dependsOn = value; - break; - case 'pcaption': - case 'caption': - caption = value; - break; - case 'pnotes': - case 'notes': - notes = value; - break; - case 'pcost': - case 'cost': - cost = value; - break; - case 'duration': - case 'pduration': - duration = value; - break; - case 'bartext': - case 'pbartext': - bartext = value; - break; - default: - additionalObject[property.toLowerCase()] = value; - } - } - //if (id != undefined && !isNaN(parseInt(id)) && isFinite(id) && name && start && end && itemClass && completion != undefined && !isNaN(parseFloat(completion)) && isFinite(completion) && !isNaN(parseInt(parent)) && isFinite(parent)) { - pGanttVar.AddTaskItem(new task_1.TaskItem(id, name_1, start, end, itemClass, link, milestone, resourceName, completion, group, parent_1, open_1, dependsOn, caption, notes, pGanttVar, cost, planstart, planend, duration, bartext, additionalObject, planClass)); - //} - } -}; - -},{"./task":10,"./utils/general_utils":13}],8:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ua = exports.tr = exports.sv = exports.ru = exports.pt = exports.pl = exports.nl = exports.ko = exports.ja = exports.id = exports.it = exports.hu = exports.he = exports.fr = exports.fi = exports.de = exports.es = exports.en = exports.cs = exports.cn = exports.scn = exports.ar = void 0; -var ar = { - 'format': 'التنسيق', - 'hour': 'ساعة', - 'day': 'يوم', - 'week': 'أسبوع', - 'month': 'شهر', - 'quarter': 'ربع', - 'hours': 'ساعات', - 'days': 'أيام', - 'weeks': 'أسابيع', - 'months': 'أشهر', - 'quarters': 'أرباع', - 'hr': 'س', - 'dy': 'يو', - 'wk': 'أ', - 'mth': 'ش', - 'qtr': 'ر', - 'hrs': 'س', - 'dys': 'ي', - 'wks': 'أ', - 'mths': 'ش', - 'qtrs': 'ر', - 'res': 'الموارد', - 'dur': 'المدة', - 'comp': '% الإنجاز', - 'completion': 'الإنجاز', - 'startdate': 'تاريخ البدء', - 'planstartdate': 'تاريخ بدء الخطة', - 'enddate': 'تاريخ الانتهاء', - 'planenddate': 'تاريخ نهاية الخطة', - 'cost': 'التكلفة', - 'moreinfo': 'مزيد من المعلومات', - 'nodata': 'لم يتم العثور على مهام', - 'notes': 'ملاحظات', - 'january': 'يناير', - 'february': 'فبراير', - 'march': 'مارس', - 'april': 'أبريل', - 'maylong': 'مايو', - 'june': 'يونيو', - 'july': 'يوليو', - 'august': 'أغسطس', - 'september': 'سبتمبر', - 'october': 'أكتوبر', - 'november': 'نوفمبر', - 'december': 'ديسمبر', - 'jan': 'يناير', - 'feb': 'فبراير', - 'mar': 'مارس', - 'apr': 'أبريل', - 'may': 'مايو', - 'jun': 'يونيو', - 'jul': 'يوليو', - 'aug': 'أغسطس', - 'sep': 'سبتمبر', - 'oct': 'أكتوبر', - 'nov': 'نوفمبر', - 'dec': 'ديسمبر', - 'sunday': 'الأحد', - 'monday': 'الإثنين', - 'tuesday': 'الثلاثاء', - 'wednesday': 'الأربعاء', - 'thursday': 'الخميس', - 'friday': 'الجمعة', - 'saturday': 'السبت', - 'sun': 'الأحد', - 'mon': 'الإثنين', - 'tue': 'الثلاثاء', - 'wed': 'الأربعاء', - 'thu': 'الخميس', - 'fri': 'الجمعة', - 'sat': 'السبت', - 'tooltipLoading': 'جاري التحميل...' -}; -exports.ar = ar; -var scn = { - 'january': '一月', - 'february': '二月', - 'march': '三月', - 'april': '四月', - 'maylong': '五月', - 'june': '六月', - 'july': '七月', - 'august': '八月', - 'september': '九月', - 'october': '十月', - 'november': '十一月', - 'december': '十二月', - 'jan': '一月', - 'feb': '二月', - 'mar': '三月', - 'apr': '四月', - 'may': '五月', - 'jun': '六月', - 'jul': '七月', - 'aug': '八月', - 'sep': '九月', - 'oct': '十月', - 'nov': '十一月', - 'dec': '十二月', - 'sunday': '星期日', - 'monday': '星期一', - 'tuesday': '星期二', - 'wednesday': '星期三', - 'thursday': '星期四', - 'friday': '星期五', - 'saturday': '星期六', - 'sun': '星期日', - 'mon': '星期一', - 'tue': '星期二', - 'wed': '星期三', - 'thu': '星期四', - 'fri': '星期五', - 'sat': '星期六', - 'res': '资源', - 'dur': '时长', - 'comp': '完成度', - 'completion': '完成', - 'startdate': '起始日期', - 'planstartdate': '计划起始日期', - 'enddate': '截止日期', - 'planenddate': '计划截止日期', - 'cost': '成本', - 'moreinfo': "更多信息", - 'nodata': 'No tasks found', - 'notes': '备注', - 'format': '格式', - 'hour': '时', - 'day': '日', - 'week': '星期', - 'month': '月', - 'quarter': '季', - 'hours': '小时', - 'days': '天', - 'weeks': '周', - 'months': '月', - 'quarters': '季', - 'hr': '小时', - 'dy': '天', - 'wk': '周', - 'mth': '月', - 'qtr': '季', - 'hrs': '小时', - 'dys': '天', - 'wks': '周', - 'mths': '月', - 'qtrs': '季' -}; -exports.scn = scn; -var cn = { - 'january': '一月', - 'february': '二月', - 'march': '三月', - 'april': '四月', - 'maylong': '五月', - 'june': '六月', - 'july': '七月', - 'august': '八月', - 'september': '九月', - 'october': '十月', - 'november': '十一月', - 'december': '十二月', - 'jan': '一月', - 'feb': '二月', - 'mar': '三月', - 'apr': '四月', - 'may': '五月', - 'jun': '六月', - 'jul': '七月', - 'aug': '八月', - 'sep': '九月', - 'oct': '十月', - 'nov': '十一月', - 'dec': '十二月', - 'sunday': '星期日', - 'monday': '星期一', - 'tuesday': '星期二', - 'wednesday': '星期三', - 'thursday': '星期四', - 'friday': '星期五', - 'saturday': '星期六', - 'sun': '星期日', - 'mon': '星期一', - 'tue': '星期二', - 'wed': '星期三', - 'thu': '星期四', - 'fri': '星期五', - 'sat': '星期六', - 'res': '資源', - 'dur': '時程', - 'comp': '達成率', - 'completion': '達成', - 'startdate': '起始日期', - 'planstartdate': '計劃起始日期', - 'enddate': '截止日期', - 'planenddate': '計劃截止日期', - 'cost': '成本', - 'moreinfo': "更多資訊", - 'nodata': 'No tasks found', - 'notes': '備註', - 'format': '格式', - 'hour': '時', - 'day': '日', - 'week': '星期', - 'month': '月', - 'quarter': '季', - 'hours': '小時', - 'days': '天', - 'weeks': '週', - 'months': '月', - 'quarters': '季', - 'hr': '小時', - 'dy': '天', - 'wk': '週', - 'mth': '月', - 'qtr': '季', - 'hrs': '小時', - 'dys': '天', - 'wks': '週', - 'mths': '月', - 'qtrs': '季' -}; -exports.cn = cn; -var cs = { - 'format': 'Zobrazení', - 'hour': 'Hodina', - 'day': 'Den', - 'week': 'Týden', - 'month': 'Měsíc', - 'quarter': 'Kvartál', - 'hours': 'Hodiny', - 'days': 'Dni', - 'weeks': 'Týdny', - 'months': 'Měsíce', - 'quarters': 'Kvartály', - 'hr': 'Ho', - 'dy': 'Den', - 'wk': 'Tyd', - 'mth': 'Měs', - 'qtr': 'Kvar', - 'hrs': 'Ho', - 'dys': 'Dni', - 'wks': 'Tyd', - 'mths': 'Měs', - 'qtrs': 'Kvar', - 'res': 'Přiřazeno', - 'dur': 'Trvání', - 'comp': '% Hotovo', - 'completion': 'Hotovo', - 'startdate': 'Start', - 'planstartdate': 'Plánovaný start', - 'enddate': 'Konec', - 'planenddate': 'Plánovaný konec', - 'cost': 'Náklady', - 'moreinfo': 'Více informací', - 'nodata': 'No tasks found', - 'notes': 'Poznámky', - 'january': 'Leden', - 'february': 'Únor', - 'march': 'Březen', - 'april': 'Duben', - 'maylong': 'Květen', - 'june': 'Červen', - 'july': 'Červenec', - 'august': 'Srpen', - 'september': 'Září', - 'october': 'Říjen', - 'november': 'Listopad', - 'december': 'Prosinec', - 'jan': 'Led', - 'feb': 'Úno', - 'mar': 'Bře', - 'apr': 'Dub', - 'may': 'Kvě', - 'jun': 'Čer', - 'jul': 'Čvc', - 'aug': 'Srp', - 'sep': 'Zář', - 'oct': 'Říj', - 'nov': 'Lis', - 'dec': 'Pro', - 'sunday': 'Neděle', - 'monday': 'Pondělí', - 'tuesday': 'Úterý', - 'wednesday': 'Středa', - 'thursday': 'Čtvrtek', - 'friday': 'Pátek', - 'saturday': 'Sobota', - 'sun': 'Ne', - 'mon': 'Po', - 'tue': 'Út', - 'wed': 'St', - 'thu': 'Čt', - 'fri': 'Pa', - 'sat': 'So', - 'tooltipLoading': 'Nahrávám...' -}; -exports.cs = cs; -var de = { - 'format': 'Ansicht', - 'hour': 'Stunde', - 'day': 'Tag', - 'week': 'Woche', - 'month': 'Monat', - 'quarter': 'Quartal', - 'hours': 'Stunden', - 'days': 'Tage', - 'weeks': 'Wochen', - 'months': 'Monate', - 'quarters': 'Quartale', - 'hr': 'h', - 'dy': 'T', - 'wk': 'W', - 'mth': 'M', - 'qtr': 'Q', - 'hrs': 'Std', - 'dys': 'Tage', - 'wks': 'Wochen', - 'mths': 'Monate', - 'qtrs': 'Quartal', - 'res': 'Resource', - 'dur': 'Dauer', - 'comp': '%Fertig', - 'completion': 'Fertigstellung', - 'startdate': 'Erste Buchu', - 'planstartdate': 'Erste Buchu Plan', - 'enddate': 'Letzte Buchung', - 'planenddate': 'Plan Letzte Buchung', - 'cost': 'Cost', - 'moreinfo': 'Weitere Infos', - 'nodata': 'No tasks found', - 'notes': 'Anmerkung', - 'january': 'Jänner', - 'february': 'Februar', - 'march': 'März', - 'april': 'April', - 'maylong': 'Mai', - 'june': 'Juni', - 'july': 'Juli', - 'august': 'August', - 'september': 'September', - 'october': 'Oktober', - 'november': 'November', - 'december': 'Dezember', - 'jan': 'Jan', - 'feb': 'Feb', - 'mar': 'Mar', - 'apr': 'Apr', - 'may': 'Mai', - 'jun': 'Jun', - 'jul': 'Jul', - 'aug': 'Aug', - 'sep': 'Sep', - 'oct': 'Okt', - 'nov': 'Nov', - 'dec': 'Dez', - 'sunday': 'Sonntag', - 'monday': 'Montag', - 'tuesday': 'Dienstag', - 'wednesday': 'Mittwoch', - 'thursday': 'Donnerstag', - 'friday': 'Freitag', - 'saturday': 'Samstag', - 'sun': 'So', - 'mon': 'Mo', 'tue': 'Di', 'wed': 'Mi', 'thu': 'Do', 'fri': 'Fr', 'sat': 'Sa' -}; -exports.de = de; -var es = { - 'january': 'Enero', - 'february': 'Febrero', - 'march': 'Marzo', - 'april': 'Abril', - 'maylong': 'Mayo', - 'june': 'Junio', - 'july': 'Julio', - 'august': 'Agosto', - 'september': 'Septiembre', - 'october': 'Octubre', - 'november': 'Noviembre', - 'december': 'Diciembre', - 'jan': 'Ene', - 'feb': 'Feb', - 'mar': 'Mar', - 'apr': 'Abr', - 'may': 'May', - 'jun': 'Jun', - 'jul': 'Jul', - 'aug': 'Ago', - 'sep': 'Sep', - 'oct': 'Oct', - 'nov': 'Nov', - 'dec': 'Dic', - 'sunday': 'Domingo', - 'monday': 'Lunes', - 'tuesday': 'Martes', - 'wednesday': 'Miércoles', - 'thursday': 'Jueves', - 'friday': 'Viernes', - 'saturday': 'Sábado', - 'sun': ' Dom', - 'mon': ' Lun', - 'tue': ' Mar', - 'wed': ' Mie', - 'thu': ' Jue', - 'fri': ' Vie', - 'sat': ' Sab', - 'res': 'Recurso', - 'dur': 'Duración', - 'comp': '% Compl.', - 'completion': 'Completado', - 'startdate': 'Inicio', - 'planstartdate': 'Inicio Planificado', - 'cost': 'Coste', - 'enddate': 'Fin', - 'planenddate': 'Fin Planificado', - 'moreinfo': 'Más Información', - 'nodata': 'No tasks found', - 'notes': 'Notas', - 'format': 'Formato', - 'hour': 'Hora', - 'day': 'Día', - 'week': 'Semana', - 'month': 'Mes', - 'quarter': 'Trimestre', - 'hours': 'Horas', - 'days': 'Días', - 'weeks': 'Semanas', - 'months': 'Meses', - 'quarters': 'Trimestres', - 'hr': 'h', - 'dy': 'Día', - 'wk': 'Sem.', - 'mth': 'Mes', - 'qtr': 'Trim.', - 'hrs': 'h', - 'dys': 'Días', - 'wks': 'Sem.', - 'mths': 'Meses', - 'qtrs': 'Trim.', - 'tooltipLoading': 'Cargando...' -}; -exports.es = es; -var en = { - 'format': 'Format', - 'hour': 'Hour', - 'day': 'Day', - 'week': 'Week', - 'month': 'Month', - 'quarter': 'Quarter', - 'hours': 'Hours', - 'days': 'Days', - 'weeks': 'Weeks', - 'months': 'Months', - 'quarters': 'Quarters', - 'hr': 'Hr', - 'dy': 'Day', - 'wk': 'Wk', - 'mth': 'Mth', - 'qtr': 'Qtr', - 'hrs': 'Hrs', - 'dys': 'Days', - 'wks': 'Wks', - 'mths': 'Mths', - 'qtrs': 'Qtrs', - 'res': 'Resource', - 'dur': 'Duration', - 'comp': '% Comp.', - 'completion': 'Completion', - 'startdate': 'Start Date', - 'planstartdate': 'Plan Start Date', - 'enddate': 'End Date', - 'planenddate': 'Plan End Date', - 'cost': 'Cost', - 'moreinfo': 'More Information', - 'nodata': 'No tasks found', - 'notes': 'Notes', - 'january': 'January', - 'february': 'February', - 'march': 'March', - 'april': 'April', - 'maylong': 'May', - 'june': 'June', - 'july': 'July', - 'august': 'August', - 'september': 'September', - 'october': 'October', - 'november': 'November', - 'december': 'December', - 'jan': 'Jan', - 'feb': 'Feb', - 'mar': 'Mar', - 'apr': 'Apr', - 'may': 'May', - 'jun': 'Jun', - 'jul': 'Jul', - 'aug': 'Aug', - 'sep': 'Sep', - 'oct': 'Oct', - 'nov': 'Nov', - 'dec': 'Dec', - 'sunday': 'Sunday', - 'monday': 'Monday', - 'tuesday': 'Tuesday', - 'wednesday': 'Wednesday', - 'thursday': 'Thursday', - 'friday': 'Friday', - 'saturday': 'Saturday', - 'sun': 'Sun', - 'mon': 'Mon', - 'tue': 'Tue', - 'wed': 'Wed', - 'thu': 'Thu', - 'fri': 'Fri', - 'sat': 'Sat', - 'tooltipLoading': 'Loading...' -}; -exports.en = en; -var fi = { - 'format': 'Näkymä', - 'hour': 'Tunti', - 'day': 'Päivä', - 'week': 'Viikko', - 'month': 'Kuukausi', - 'quarter': 'Kvartaali', - 'hours': 'Tunnit', - 'days': 'Päivät', - 'weeks': 'Viikot', - 'months': 'Kuukaudet', - 'quarters': 'Kvartaalit', - 'hr': 't', - 'dy': 'pv', - 'wk': 'vk', - 'mth': 'kk', - 'qtr': 'Q', - 'hrs': 't:t', - 'dys': 'pv:t', - 'wks': 'vk:t', - 'mths': 'kk:t', - 'qtrs': 'Kvartaalit', - 'res': 'Henkilö', - 'dur': 'Kesto', - 'comp': '% Valm.', - 'completion': 'Valmius', - 'startdate': 'Alkupäivä', - 'planstartdate': 'Suunniteltu alkupäivä', - 'enddate': 'Päättymispäivä', - 'planenddate': 'Suunniteltu päättymispäivä', - 'cost': 'Kustannus', - 'moreinfo': 'Lisätieto', - 'nodata': 'Tehtäviä ei löydy', - 'notes': 'Muistiinpanot', - 'january': 'Tammikuu', - 'february': 'Helmikuu', - 'march': 'Maaliskuu', - 'april': 'Huhtikuu', - 'maylong': 'Toukokuu', - 'june': 'Kesäkuu', - 'july': 'Heinäkuu', - 'august': 'Elokuu', - 'september': 'Syyskuu', - 'october': 'Lokakuu', - 'november': 'Marraskuu', - 'december': 'Joulukuu', - 'jan': 'Tammi', - 'feb': 'Helmi', - 'mar': 'Maalis', - 'apr': 'Huhti', - 'may': 'Touko', - 'jun': 'Kesä', - 'jul': 'Heinä', - 'aug': 'Elo', - 'sep': 'Syys', - 'oct': 'Loka', - 'nov': 'Marras', - 'dec': 'Joulu', - 'sunday': 'Sunnuntai', - 'monday': 'Maanantai', - 'tuesday': 'Tiista', - 'wednesday': 'Keskiviikko', - 'thursday': 'Torstai', - 'friday': 'Perjantai', - 'saturday': 'Lauantai', - 'sun': 'Su', - 'mon': 'Ma', - 'tue': 'Ti', - 'wed': 'Ke', - 'thu': 'To', - 'fri': 'Pe', - 'sat': 'La', - 'tooltipLoading': 'Ladataan...' -}; -exports.fi = fi; -/** - * Mois : http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3619 - Jours : http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3617 - */ -var fr = { - 'january': 'Janvier', - 'february': 'Février', - 'march': 'Mars', - 'april': 'Avril', - 'maylong': 'Mai', - 'june': 'Juin', - 'july': 'Juillet', - 'august': 'Août', - 'september': 'Septembre', - 'october': 'Octobre', - 'november': 'Novembre', - 'december': 'Décembre', - 'jan': 'Janv', - 'feb': 'Févr', - 'mar': 'Mars', - 'apr': 'Avr', - 'may': 'Mai', - 'jun': 'Juin', - 'jul': 'Juil', - 'aug': 'Août', - 'sep': 'Sept', - 'oct': 'Oct', - 'nov': 'Nov', - 'dec': 'Déc', - 'sunday': 'Dimanche', - 'monday': 'Lundi', - 'tuesday': 'Mardi', - 'wednesday': 'Mercredi', - 'thursday': 'Jeudi', - 'friday': 'Vendredi', - 'saturday': 'Samedi', - 'sun': 'Dim', - 'mon': 'Lun', - 'tue': 'Mar', - 'wed': 'Mer', - 'thu': 'Jeu', - 'fri': 'Ven', - 'sat': 'Sam', - 'res': 'Ressource', - 'dur': 'Durée', - 'comp': '% Term.', - 'completion': 'Terminé', - 'startdate': 'Début', - 'planstartdate': 'Plan Début', - 'enddate': 'Fin', - 'planenddate': 'Plan Fin', - 'cost': 'Cost', - 'moreinfo': "Plus d'informations", - 'nodata': 'No tasks found', - 'notes': 'Notes', - 'format': 'Format', - 'hour': 'Heure', - 'day': 'Jour', - 'week': 'Semaine', - 'month': 'Mois', - 'quarter': 'Trimestre', - 'hours': 'Heures', - 'days': 'Jours', - 'weeks': 'Semaines', - 'months': 'Mois', - 'quarters': 'Trimestres', - 'hr': 'h', - 'dy': 'j', - 'wk': 'sem', - 'mth': 'mois', - 'qtr': 'tri', - 'hrs': 'h', - 'dys': 'j', - 'wks': 'sem', - 'mths': 'mois', - 'qtrs': 'tri' -}; -exports.fr = fr; -var he = { - 'format': 'תבנית', - 'hour': 'שעה', - 'day': 'יום', - 'week': 'שבוע', - 'month': 'חודש', - 'quarter': 'רבעון', - 'hours': 'שעות', - 'days': 'ימים', - 'weeks': 'שבועות', - 'months': 'חודשים', - 'quarters': 'רבעונים', - 'hr': 'שעה', - 'dy': 'יום', - 'wk': 'שבוע', - 'mth': 'חודש', - 'qtr': 'רבעון', - 'hrs': 'שעות', - 'dys': 'ימים', - 'wks': 'שבועות', - 'mths': 'חודשים', - 'qtrs': 'רבעונים', - 'res': 'משאב', - 'dur': 'משך', - 'comp': '% השלמה', - 'completion': 'השלמה', - 'startdate': 'תאריך התחלה', - 'planstartdate': 'תאריך התחלה מתוכנן', - 'enddate': 'תאריך סיום', - 'planenddate': 'תאריך סיום מתוכנן', - 'cost': 'עלות', - 'moreinfo': 'מידע נוסף', - 'nodata': 'לא נמצאו משימות', - 'notes': 'הערות', - 'january': 'ינואר', - 'february': 'פברואר', - 'march': 'מרץ', - 'april': 'אפריל', - 'maylong': 'מאי', - 'june': 'יוני', - 'july': 'יולי', - 'august': 'אוגוסט', - 'september': 'ספטמבר', - 'october': 'אוקטובר', - 'november': 'נובמבר', - 'december': 'דצמבר', - 'jan': 'ינו', - 'feb': 'פבר', - 'mar': 'מרץ', - 'apr': 'אפר', - 'may': 'מאי', - 'jun': 'יוני', - 'jul': 'יולי', - 'aug': 'אוג', - 'sep': 'ספט', - 'oct': 'אוק', - 'nov': 'נוב', - 'dec': 'דצמ', - 'sunday': 'יום ראשון', - 'monday': 'יום שני', - 'tuesday': 'יום שלישי', - 'wednesday': 'יום רביעי', - 'thursday': 'الخميس', - 'friday': 'الجمعة', - 'saturday': 'السبت', - 'sun': 'الأحد', - 'mon': 'الإثنين', - 'tue': 'الثلاثاء', - 'wed': 'الأربعاء', - 'thu': 'الخميس', - 'fri': 'الجمعة', - 'sat': 'السبت', - 'tooltipLoading': 'جارٍ التحميل...' -}; -exports.he = he; -var it = { - 'format': 'Formato', - 'hour': 'Ora', - 'day': 'Giorno', - 'week': 'Settimana', - 'month': 'Mese', - 'quarter': 'Trimestre', - 'hours': 'Ore', - 'days': 'Giorni', - 'weeks': 'Mesi', - 'months': 'Settimane', - 'quarters': 'Trimestri', - 'hr': 'Ora', - 'dy': 'G', - 'wk': 'Sett.', - 'mth': 'Mese', - 'qtr': 'Trim.', - 'hrs': 'Ora', - 'dys': 'GG', - 'wks': 'Sett.', - 'mths': 'Mesi', - 'qtrs': 'Trim.', - 'res': 'Risorsa', - 'dur': 'Durata', - 'comp': '% Compl.', - 'completion': 'Completamento', - 'startdate': 'Data inizio', - 'planstartdate': 'Piano data inizio', - 'enddate': 'Data fine', - 'planenddate': 'Piano data fine', - 'cost': 'Costo', - 'moreinfo': 'Più informazioni', - 'nodata': 'Nessun task trovato', - 'notes': 'Note', - 'january': 'Gennaio', - 'february': 'Febbraio', - 'march': 'Marzo', - 'april': 'Aprile', - 'maylong': 'Maggio', - 'june': 'Giugno', - 'july': 'Luglio', - 'august': 'Agosto', - 'september': 'Settembre', - 'october': 'Ottobre', - 'november': 'Novembre', - 'december': 'Dicembre', - 'jan': 'Gen', - 'feb': 'Feb', - 'mar': 'Mar', - 'apr': 'Apr', - 'may': 'Mag', - 'jun': 'Giu', - 'jul': 'Lug', - 'aug': 'Ago', - 'sep': 'Set', - 'oct': 'Ott', - 'nov': 'Nov', - 'dec': 'Dic', - 'sunday': 'Domenica', - 'monday': 'Lunedì', - 'tuesday': 'Martedì', - 'wednesday': 'Mercoledì', - 'thursday': 'Giovedì', - 'friday': 'Venerdì', - 'saturday': 'Sabato', - 'sun': 'Dom', - 'mon': 'Lun', - 'tue': 'Mar', - 'wed': 'Mer', - 'thu': 'Gio', - 'fri': 'Ven', - 'sat': 'Sab', - 'tooltipLoading': 'Caricamento...' -}; -exports.it = it; -var hu = { - 'format': 'Formátum', - 'hour': 'Óra', - 'day': 'Nap', - 'week': 'Hét', - 'month': 'Hónap', - 'quarter': 'Negyedév ', - 'hours': 'Órák', - 'days': 'Nap', - 'weeks': 'Hét', - 'months': 'Hónap', - 'quarters': 'Negyedév', - 'hr': 'Ó', - 'dy': 'Nap', - 'wk': 'Hét', - 'mth': 'Hó', - 'qtr': 'NÉ', - 'hrs': 'Óra', - 'dys': 'Nap', - 'wks': 'Hét', - 'mths': 'Hó', - 'qtrs': 'NÉ', - 'res': 'Erőforrás', - 'dur': 'Időtartam', - 'comp': '% Kész', - 'completion': 'Elkészült', - 'startdate': 'Kezdés', - 'planstartdate': 'Tervezett kezdés', - 'enddate': 'Befejezés', - 'planenddate': 'Tervezett befejezés', - 'cost': 'Költség', - 'moreinfo': 'További információ', - 'nodata': 'No tasks found', - 'notes': 'Jegyzetek', - 'january': 'Január', - 'february': 'Február', - 'march': 'Március', - 'april': 'Április', - 'maylong': 'Május', - 'june': 'Június', - 'july': 'Július', - 'august': 'Augusztus', - 'september': 'Szeptember', - 'october': 'Október', - 'november': 'November', - 'december': 'December', - 'jan': 'Jan', - 'feb': 'Feb', - 'mar': 'Már', - 'apr': 'Ápr', - 'may': 'Máj', - 'jun': 'Jún', - 'jul': 'Júl', - 'aug': 'Aug', - 'sep': 'Szep', - 'oct': 'Okt', - 'nov': 'Nov', - 'dec': 'Dec', - 'sunday': 'Vasárnap', - 'monday': 'Hétfő', - 'tuesday': 'Kedd', - 'wednesday': 'Szerda', - 'thursday': 'Csütörtök', - 'friday': 'Péntek', - 'saturday': 'Szombat', - 'sun': 'Vas', - 'mon': 'Hé', - 'tue': 'Ke', - 'wed': 'Sze', - 'thu': 'Csü', - 'fri': 'Pén', - 'sat': 'Szo', - 'tooltipLoading': 'Belöltés...' -}; -exports.hu = hu; -var id = { - 'format': 'Format', - 'hour': 'Jam', - 'day': 'Hari', - 'week': 'Minggu', - 'month': 'Bulan', - 'quarter': 'Kuartal', - 'hours': 'Jam', - 'days': 'Hari', - 'weeks': 'Minggu', - 'months': 'Bulan', - 'quarters': 'Kuartal', - 'hr': 'Jam', - 'dy': 'Hari', - 'wk': 'Min', - 'mth': 'Bln', - 'qtr': 'Krtl', - 'hrs': 'Jam', - 'dys': 'Hari', - 'wks': 'Min', - 'mths': 'Bln', - 'qtrs': 'Krtl', - 'res': 'Sumber Daya', - 'dur': 'Durasi', - 'comp': '% Penyelesaian', - 'completion': 'Penyelesaian', - 'startdate': 'Tanggal Mulai', - 'planstartdate': 'Perencanaan Tanggal Mulai', - 'enddate': 'Tanggal Akhir', - 'planenddate': 'Perencanaan Tanggal Akhir', - 'cost': 'Biaya', - 'moreinfo': 'Informasi Lebih Lanjut', - 'nodata': 'No tasks found', - 'notes': 'Catatan', - 'january': 'Januari', - 'february': 'Februari', - 'march': 'Maret', - 'april': 'April', - 'maylong': 'Mei', - 'june': 'Juni', - 'july': 'Juli', - 'august': 'Agustus', - 'september': 'September', - 'october': 'Oktober', - 'november': 'November', - 'december': 'Desember', - 'jan': 'Jan', - 'feb': 'Feb', - 'mar': 'Mar', - 'apr': 'Apr', - 'may': 'Mei', - 'jun': 'Jun', - 'jul': 'Jul', - 'aug': 'Agu', - 'sep': 'Sep', - 'oct': 'Okt', - 'nov': 'Nov', - 'dec': 'Des', - 'sunday': 'Minggu', - 'monday': 'Senin', - 'tuesday': 'Selasa', - 'wednesday': 'Rabu', - 'thursday': 'Kamis', - 'friday': 'Jumat', - 'saturday': 'Sabtu', - 'sun': 'Min', - 'mon': 'Sen', - 'tue': 'Sel', - 'wed': 'Rab', - 'thu': 'Kam', - 'fri': 'Jum', - 'sat': 'Sab' -}; -exports.id = id; -var ja = { - 'format': 'タイムライン表示', - 'hour': '時', - 'day': '日', - 'week': '週', - 'month': '月', - 'quarter': '四半期', - 'hours': '時間', - 'days': '日間', - 'weeks': '週間', - 'months': '月間', - 'quarters': '四半期', - 'hr': '時', - 'dy': '日', - 'wk': '週', - 'mth': '月', - 'qtr': '四', - 'hrs': '時間', - 'dys': '日間', - 'wks': '週間', - 'mths': '月間', - 'qtrs': '四半期', - 'res': 'リソース', - 'dur': '期間', - 'comp': '進捗率', - 'completion': '進捗率', - 'startdate': '開始日', - 'planstartdate': '予定開始日', - 'enddate': '期日', - 'planenddate': '予定期日', - 'cost': 'コスト', - 'moreinfo': '詳細', - 'nodata': 'No tasks found', - 'notes': 'ノート', - 'january': '1月', - 'february': '2月', - 'march': '3月', - 'april': '4月', - 'maylong': '5月', - 'june': '6月', - 'july': '7月', - 'august': '8月', - 'september': '9月', - 'october': '10月', - 'november': '11月', - 'december': '12月', - 'jan': '1月', - 'feb': '2月', - 'mar': '3月', - 'apr': '4月', - 'may': '5月', - 'jun': '6月', - 'jul': '7月', - 'aug': '8月', - 'sep': '9月', - 'oct': '10月', - 'nov': '11月', - 'dec': '12月', - 'sunday': '日曜日', - 'monday': '月曜日', - 'tuesday': '火曜日', - 'wednesday': '水曜日', - 'thursday': '木曜日', - 'friday': '金曜日', - 'saturday': '土曜日', - 'sun': '日', - 'mon': '月', - 'tue': '火', - 'wed': '水', - 'thu': '木', - 'fri': '金', - 'sat': '土', - 'tooltipLoading': 'ローディング中...' -}; -exports.ja = ja; -var ko = { - 'format': '구분', - 'hour': '시', - 'day': '일', - 'week': '주', - 'month': '월', - 'quarter': '분기', - 'hours': '시', - 'days': '일', - 'weeks': '주', - 'months': '월', - 'quarters': '분기', - 'hr': '시', - 'dy': '일', - 'wk': '주', - 'mth': '월', - 'qtr': '분기', - 'hrs': '시', - 'dys': '일', - 'wks': '주', - 'mths': '월', - 'qtrs': '분기', - 'res': '이름', - 'dur': '기간', - 'comp': '% ', - 'completion': '완료', - 'startdate': '시작일자', - 'planstartdate': '계획 시작일자', - 'enddate': '종료일자', - 'planenddate': '계획 종료일자', - 'cost': '비용', - 'moreinfo': '더 많은 정보', - 'nodata': 'No tasks found', - 'notes': '비고', - 'january': '1월', - 'february': '2월', - 'march': '3월', - 'april': '4월', - 'maylong': '5월', - 'june': '6월', - 'july': '7월', - 'august': '8월', - 'september': '9월', - 'october': '10월', - 'november': '11월', - 'december': '12월', - 'jan': '1', - 'feb': '2', - 'mar': '3', - 'apr': '4', - 'may': '5', - 'jun': '6', - 'jul': '7', - 'aug': '8', - 'sep': '9', - 'oct': '10', - 'nov': '11', - 'dec': '12', - 'sunday': '일요일', - 'monday': '월요일', - 'tuesday': '화요일', - 'wednesday': '수요일', - 'thursday': '목요일', - 'friday': '금요일', - 'saturday': '토요일', - 'sun': '일', - 'mon': '월', - 'tue': '화', - 'wed': '수', - 'thu': '목', - 'fri': '금', - 'sat': '토', - 'tooltipLoading': '로딩중...' -}; -exports.ko = ko; -var nl = { - 'format': 'Format', - 'hour': 'Uur', - 'day': 'Dag', - 'week': 'Week', - 'month': 'Maand', - 'quarter': 'Kwartaal', - 'hours': 'Uren', - 'days': 'Dagen', - 'weeks': 'Weken', - 'months': 'Maanden', - 'quarters': 'Kwartalen', - 'hr': 'uur', - 'dy': 'dag', - 'wk': 'wk', - 'mth': 'mnd', - 'qtr': 'kw', - 'hrs': 'uren', - 'dys': 'dagen', - 'wks': 'weken', - 'mths': 'maanden', - 'qtrs': 'kwartalen', - 'res': 'Resource', - 'dur': 'Doorlooptijd', - 'comp': '% gereed', - 'completion': 'Gereed', - 'startdate': 'Startdatum', - 'planstartdate': 'Geplande startdatum', - 'enddate': 'Einddatum', - 'planenddate': 'Geplande einddatum', - 'cost': 'Kosten', - 'moreinfo': 'Meer informatie', - 'nodata': 'Geen taken gevonden', - 'notes': 'Notities', - 'january': 'januari', - 'february': 'februari', - 'march': 'maart', - 'april': 'april', - 'maylong': 'mei', - 'june': 'juni', - 'july': 'juli', - 'august': 'augustus', - 'september': 'september', - 'october': 'oktober', - 'november': 'november', - 'december': 'december', - 'jan': 'jan', - 'feb': 'feb', - 'mar': 'mrt', - 'apr': 'apr', - 'may': 'mei', - 'jun': 'jun', - 'jul': 'jul', - 'aug': 'aug', - 'sep': 'sep', - 'oct': 'okt', - 'nov': 'nov', - 'dec': 'dec', - 'sunday': 'zondag', - 'monday': 'maandag', - 'tuesday': 'dinsdag', - 'wednesday': 'woensdag', - 'thursday': 'donderdag', - 'friday': 'vrijdag', - 'saturday': 'zaterdag', - 'sun': 'zo', - 'mon': 'ma', - 'tue': 'di', - 'wed': 'wo', - 'thu': 'do', - 'fri': 'vr', - 'sat': 'za' -}; -exports.nl = nl; -var pl = { - 'format': 'Format', - 'hour': 'Godzina', - 'day': 'Dzień', - 'week': 'Tydzień', - 'month': 'Miesiąc', - 'quarter': 'Kwartał', - 'hours': 'Godziny', - 'days': 'Dni', - 'weeks': 'Tygodni', - 'months': 'Miesięcy', - 'quarters': 'Kwartały', - 'hr': 'godz.', - 'dy': 'd.', - 'wk': 'tydz.', - 'mth': 'mies.', - 'qtr': 'kw.', - 'hrs': 'godz.', - 'dys': 'd.', - 'wks': 'tyg.', - 'mths': 'mies.', - 'qtrs': 'kw.', - 'res': 'Zasób', - 'dur': 'Czas trwania', - 'comp': '% Komp.', - 'completion': 'Ukończenie', - 'startdate': 'Data Startu', - 'planstartdate': 'Planowana Data Startu', - 'enddate': 'Data Zakończenia', - 'planenddate': 'Planowana Data Zakończenia', - 'cost': 'Koszt', - 'moreinfo': 'Więcej Inormacji', - 'nodata': 'Nie znaleziono zadań', - 'notes': 'Dodatkowe Informacje', - 'january': 'Styczeń', - 'february': 'Luty', - 'march': 'Marzec', - 'april': 'Kwiecień', - 'maylong': 'Maj', - 'june': 'Czerwiec', - 'july': 'Lipiec', - 'august': 'Sierpień', - 'september': 'Wrzesień', - 'october': 'Październik', - 'november': 'Listopad', - 'december': 'Grudzień', - 'jan': 'St', - 'feb': 'Lut', - 'mar': 'Mar', - 'apr': 'Kw', - 'may': 'Maj', - 'jun': 'Cz', - 'jul': 'Lip', - 'aug': 'Sier', - 'sep': 'Wrz', - 'oct': 'Paź', - 'nov': 'Lis', - 'dec': 'Gr', - 'sunday': 'Niedziela', - 'monday': 'Poniedziałek', - 'tuesday': 'Wtorek', - 'wednesday': 'Środa', - 'thursday': 'Czwartek', - 'friday': 'Piątek', - 'saturday': 'Sobota', - 'sun': 'Nd', - 'mon': 'Pon', - 'tue': 'Wt', - 'wed': 'Śr', - 'thu': 'Czw', - 'fri': 'Pt', - 'sat': 'So', - 'tooltipLoading': 'Ładowanie...' -}; -exports.pl = pl; -var pt = { - 'hours': 'Horas', - 'days': 'Dias', - 'weeks': 'Weeks', - 'months': 'Months', - 'quarters': 'Quarters', - 'format': 'Formato', - 'hour': 'Hora', - 'day': 'Dia', - 'week': 'Semana', - 'month': 'Mês', - 'quarter': 'Trimestre', - 'hr': 'hr', - 'dy': 'dia', - 'wk': 'sem.', - 'mth': 'mês', - 'qtr': 'qtr', - 'hrs': 'hrs', - 'dys': 'dias', - 'wks': 'sem.', - 'mths': 'meses', - 'qtrs': 'qtrs', - 'completion': 'Terminado', - 'comp': '% Completado', - 'moreinfo': 'Mais informações', - 'nodata': 'Sem atividades', - 'notes': 'Notas', - 'res': 'Responsável', - 'dur': 'Duração', - 'startdate': 'Data inicial', - 'planstartdate': 'Plan Data inicial', - 'enddate': 'Data final', - 'planenddate': 'Plan Data final', - 'cost': 'Custo', - 'jan': 'Jan', - 'feb': 'Fev', - 'mar': 'Mar', - 'apr': 'Abr', - 'may': 'Mai', - 'jun': 'Jun', - 'jul': 'Jul', - 'aug': 'Ago', - 'sep': 'Set', - 'oct': 'Out', - 'nov': 'Nov', - 'dec': 'Dez', - 'january': 'Janeiro', - 'february': 'Fevereiro', - 'march': 'Março', - 'april': 'Abril', - 'maylong': 'Maio', - 'june': 'Junho', - 'july': 'Julho', - 'august': 'Agosto', - 'september': 'Setembro', - 'october': 'Outubro', - 'november': 'Novembro', - 'december': 'Dezembro', - 'sun': 'Dom', - 'mon': 'Seg', - 'tue': 'Ter', - 'wed': 'Qua', - 'thu': 'Qui', - 'fri': 'Sex', - 'sat': 'Sab' -}; -exports.pt = pt; -var ru = { - 'january': 'Январь', - 'february': 'Февраль', - 'march': 'Март', - 'april': 'Апрель', - 'maylong': 'Май', - 'june': 'Июнь', - 'july': 'Июль', - 'august': 'Август', 'september': 'Сентябрь', - 'october': 'Октябрь', - 'november': 'Ноябрь', - 'december': 'Декабрь', - 'jan': 'Янв', - 'feb': 'Фев', - 'mar': 'Мар', - 'apr': 'Апр', - 'may': 'Май', - 'jun': 'Июн', - 'jul': 'Июл', - 'aug': 'Авг', - 'sep': 'Сен', - 'oct': 'Окт', - 'nov': 'Ноя', - 'dec': 'Дек', - 'sunday': 'Воскресенье', - 'monday': 'Понедельник', - 'tuesday': 'Вторник', - 'wednesday': 'Среда', - 'thursday': 'Четверг', - 'friday': 'Пятница', - 'saturday': 'Суббота', - 'sun': ' Вс', - 'mon': ' Пн', - 'tue': ' Вт', - 'wed': ' Ср', - 'thu': ' Чт', - 'fri': ' Пт', - 'sat': ' Сб', - 'res': 'Ресурс', - 'dur': 'Длительность', - 'comp': '% выполнения', - 'completion': 'Выполнено', - 'startdate': 'Нач. дата', - 'planstartdate': 'Plan Нач. дата', - 'enddate': 'Кон. дата', - 'planenddate': 'Plan Кон. дата', - 'cost': 'Cost', - 'moreinfo': 'Детали', - 'nodata': 'No tasks found', - 'notes': 'Заметки', - 'format': 'Формат', - 'hour': 'Час', - 'day': 'День', - 'week': 'Неделя', - 'month': 'Месяц', - 'quarter': 'Кварт', - 'hours': 'Часов', - 'days': 'Дней', - 'weeks': 'Недель', - 'months': 'Месяцев', - 'quarters': 'Кварталов', - 'hr': 'ч.', - 'dy': 'дн.', - 'wk': 'нед.', - 'mth': 'мес.', - 'qtr': 'кв.', - 'hrs': 'ч.', - 'dys': 'дн.', - 'wks': 'нед.', - 'mths': 'мес.', - 'qtrs': 'кв.', - 'tooltipLoading': 'Загрузка...' -}; -exports.ru = ru; -var sv = { - 'format': 'Filter', - 'hour': 'Timme', - 'day': 'Dag', - 'week': 'Vecka', - 'month': 'Månad', - 'quarter': 'Kvartal', - 'hours': 'Timmar', - 'days': 'Dagar', - 'weeks': 'Veckor', - 'months': 'Månader', - 'quarters': 'Kvartal', - 'hr': 'Timme', - 'dy': 'Dag', - 'wk': 'Vecka', - 'mth': 'Månad', - 'qtr': 'Q', - 'hrs': 'Timmar', - 'dys': 'Dagar', - 'wks': 'Veckor', - 'mths': 'Månader', - 'qtrs': 'Q', - 'res': 'Resurs', - 'dur': 'Tidsåtgång', - 'comp': '% klart', - 'completion': 'Klart', - 'startdate': 'Startdatum', - 'planstartdate': 'Planerad startdatum', - 'enddate': 'Slutdatum', - 'planenddate': 'Planerad slutdatum', - 'cost': 'Kostnad', - 'moreinfo': 'Mer Information', - 'nodata': 'No tasks found', - 'notes': 'Notes', - 'january': 'januari', - 'february': 'februari', - 'march': 'mars', - 'april': 'april', - 'maylong': 'maj', - 'june': 'juni', - 'july': 'juli', - 'august': 'augusti', - 'september': 'september', - 'october': 'oktober', - 'november': 'november', - 'december': 'december', - 'jan': 'jan', - 'feb': 'feb', - 'mar': 'mar', - 'apr': 'apr', - 'may': 'maj', - 'jun': 'jun', - 'jul': 'jul', - 'aug': 'aug', - 'sep': 'sep', - 'oct': 'okt', - 'nov': 'nov', - 'dec': 'dec', - 'sunday': 'söndag', - 'monday': 'måndag', - 'tuesday': 'tisdag', - 'wednesday': 'onsdag', - 'thursday': 'torsdag', - 'friday': 'fredag', - 'saturday': 'lördag', - 'sun': 'sön', - 'mon': 'mån', - 'tue': 'tis', - 'wed': 'ons', - 'thu': 'tor', - 'fri': 'fre', - 'sat': 'lör' -}; -exports.sv = sv; -var tr = { - 'format': 'Biçim', - 'hour': 'Saat', - 'day': 'Gün', - 'week': 'Hafta', - 'month': 'Ay', - 'quarter': 'Çeyrek Yıl', - 'hours': 'Saat', - 'days': 'Gün', - 'weeks': 'Hafta', - 'months': 'Ay', - 'quarters': 'Çeyrek Yıl', - 'hr': 'Saat', - 'dy': 'Gün', - 'wk': 'Hft', - 'mth': 'Ay', - 'qtr': 'Çyrk', - 'hrs': 'Saat', - 'dys': 'Gün', - 'wks': 'Hft', - 'mths': 'Ay', - 'qtrs': 'Çyrk', - 'res': 'Kaynak', - 'dur': 'Süre', - 'comp': '% Tamamlanma.', - 'completion': 'Tamamlanma', - 'startdate': 'Başlangıç Tarihi', - 'planstartdate': 'Plan Başlama Tarihi', - 'enddate': 'Bitiş Tarihi', - 'planenddate': 'Plan Bitiş Tarihi', - 'cost': 'Tutar', - 'moreinfo': 'Daha Fazla Bilgi', - 'nodata': 'No tasks found', - 'notes': 'Notlar', - 'january': 'Ocak', - 'february': 'Şubat', - 'march': 'Mart', - 'april': 'Nisan', - 'maylong': 'Mayıs', - 'june': 'Haziran', - 'july': 'Temmuz', - 'august': 'Ağustos', - 'september': 'Eylül', - 'october': 'Ekim', - 'november': 'Kasım', - 'december': 'Aralık', - 'jan': 'Oca', - 'feb': 'Şub', - 'mar': 'Mar', - 'apr': 'Nis', - 'may': 'May', - 'jun': 'Haz', - 'jul': 'Tem', - 'aug': 'Ağu', - 'sep': 'Eyl', - 'oct': 'Eki', - 'nov': 'Kas', - 'dec': 'Ara', - 'sunday': 'Pazar', - 'monday': 'Pazartesi', - 'tuesday': 'Salı', - 'wednesday': 'Çarşamba', - 'thursday': 'Perşembe', - 'friday': 'Cuma', - 'saturday': 'Cumartesi', - 'sun': 'Paz', - 'mon': 'Pzt', - 'tue': 'Sal', - 'wed': 'Çrş', - 'thu': 'Prş', - 'fri': 'Cum', - 'sat': 'Cmt' -}; -exports.tr = tr; -var ua = { - 'january': 'Січень', - 'february': 'Лютий', - 'march': 'Березень', - 'april': 'Квітень', - 'maylong': 'Травень', - 'june': 'Червень', - 'july': 'Липень', - 'august': 'Серпень', - 'september': 'Вересень', - 'october': 'Жовтень', - 'november': 'Листопад', - 'december': 'Грудень', - 'jan': 'Січ', - 'feb': 'Лют', - 'mar': 'Бер', - 'apr': 'Кві', - 'may': 'Тра', - 'jun': 'Чер', - 'jul': 'Лип', - 'aug': 'Сер', - 'sep': 'Вер', - 'oct': 'Жов', - 'nov': 'Лис', - 'dec': 'Гру', - 'sunday': 'Неділя', - 'monday': 'Понеділок', - 'tuesday': 'Вівторок', - 'wednesday': 'Середа', - 'thursday': 'Четвер', - 'friday': 'П\'ятниця', - 'saturday': 'Субота', - 'sun': ' Нд', - 'mon': 'Пн', - 'tue': ' Вт', - 'wed': 'Ср', - 'thu': ' Чт', - 'fri': ' Пт', - 'sat': ' Сб', - 'res': 'Ресурс', - 'dur': 'Тривалість', - 'comp': '% виконання', - 'completion': 'Виконано', - 'startdate': 'Поч. дата', - 'planstartdate': 'План Поч. дата', - 'enddate': 'Кін. дата', - 'planenddate': 'План Кін. дата', - 'cost': 'Вартість', - 'moreinfo': 'Деталі', - 'nodata': 'Нічого не знайдено', - 'notes': 'Нотатки', - 'format': 'Формат', - 'hour': 'Година', - 'day': 'День', - 'week': 'Тиждень', - 'month': 'Місяць', - 'quarter': 'Кварт', - 'hours': 'Годин', - 'days': 'Днів', - 'weeks': 'Тижнів', - 'months': 'Місяців', - 'quarters': 'Кварталів', - 'hr': 'г.', - 'dy': 'дн.', - 'wk': 'тиж.', - 'mth': 'міс.', - 'qtr': 'кв.', - 'hrs': 'г.', - 'dys': 'дн.', - 'wks': 'тиж.', - 'mths': 'міс.', - 'qtrs': 'кв.', - 'tooltipLoading': 'Загрузка...' -}; -exports.ua = ua; - -},{}],9:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.includeGetSet = void 0; -var date_utils_1 = require("./utils/date_utils"); -var draw_columns_1 = require("./draw_columns"); -exports.includeGetSet = function () { - /** - * SETTERS - */ - this.setOptions = function (options) { - var keys = Object.keys(options); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var val = options[key]; - if (key === 'vResources' || key === 'vColumnOrder') { - // ev = `this.set${key.substr(1)}(val)`; - this['set' + key.substr(1)](val); - } - else if (val instanceof Array) { - // ev = `this.set${key.substr(1)}(...val)`; - this['set' + key.substr(1)].apply(this, val); - } - else { - // ev = `this.set${key.substr(1)}(val)`; - this['set' + key.substr(1)](val); - } - } - }; - this.setUseFade = function (pVal) { this.vUseFade = pVal; }; - this.setUseMove = function (pVal) { this.vUseMove = pVal; }; - this.setUseRowHlt = function (pVal) { this.vUseRowHlt = pVal; }; - this.setUseToolTip = function (pVal) { this.vUseToolTip = pVal; }; - this.setUseSort = function (pVal) { this.vUseSort = pVal; }; - this.setUseSingleCell = function (pVal) { this.vUseSingleCell = pVal * 1; }; - this.setFormatArr = function () { - var vValidFormats = 'hour day week month quarter'; - this.vFormatArr = new Array(); - for (var i = 0, j = 0; i < arguments.length; i++) { - if (vValidFormats.indexOf(arguments[i].toLowerCase()) != -1 && arguments[i].length > 1) { - this.vFormatArr[j++] = arguments[i].toLowerCase(); - var vRegExp = new RegExp('(?:^|\s)' + arguments[i] + '(?!\S)', 'g'); - vValidFormats = vValidFormats.replace(vRegExp, ''); - } - } - }; - this.setShowRes = function (pVal) { this.vShowRes = pVal; }; - this.setShowDur = function (pVal) { this.vShowDur = pVal; }; - this.setShowComp = function (pVal) { this.vShowComp = pVal; }; - this.setShowStartDate = function (pVal) { this.vShowStartDate = pVal; }; - this.setShowEndDate = function (pVal) { this.vShowEndDate = pVal; }; - this.setShowPlanStartDate = function (pVal) { this.vShowPlanStartDate = pVal; }; - this.setShowPlanEndDate = function (pVal) { this.vShowPlanEndDate = pVal; }; - this.setShowCost = function (pVal) { this.vShowCost = pVal; }; - this.setShowAddEntries = function (pVal) { this.vShowAddEntries = pVal; }; - this.setShowTaskInfoRes = function (pVal) { this.vShowTaskInfoRes = pVal; }; - this.setShowTaskInfoDur = function (pVal) { this.vShowTaskInfoDur = pVal; }; - this.setShowTaskInfoComp = function (pVal) { this.vShowTaskInfoComp = pVal; }; - this.setShowTaskInfoStartDate = function (pVal) { this.vShowTaskInfoStartDate = pVal; }; - this.setShowTaskInfoEndDate = function (pVal) { this.vShowTaskInfoEndDate = pVal; }; - this.setShowTaskInfoNotes = function (pVal) { this.vShowTaskInfoNotes = pVal; }; - this.setShowTaskInfoLink = function (pVal) { this.vShowTaskInfoLink = pVal; }; - this.setShowEndWeekDate = function (pVal) { this.vShowEndWeekDate = pVal; }; - this.setShowWeekends = function (pVal) { this.vShowWeekends = pVal; }; - this.setShowSelector = function () { - var vValidSelectors = 'top bottom'; - this.vShowSelector = new Array(); - for (var i = 0, j = 0; i < arguments.length; i++) { - if (vValidSelectors.indexOf(arguments[i].toLowerCase()) != -1 && arguments[i].length > 1) { - this.vShowSelector[j++] = arguments[i].toLowerCase(); - var vRegExp = new RegExp('(?:^|\s)' + arguments[i] + '(?!\S)', 'g'); - vValidSelectors = vValidSelectors.replace(vRegExp, ''); - } - } - }; - this.setShowDeps = function (pVal) { this.vShowDeps = pVal; }; - this.setDateInputFormat = function (pVal) { this.vDateInputFormat = pVal; }; - this.setDateTaskTableDisplayFormat = function (pVal) { this.vDateTaskTableDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setDateTaskDisplayFormat = function (pVal) { this.vDateTaskDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setHourMajorDateDisplayFormat = function (pVal) { this.vHourMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setHourMinorDateDisplayFormat = function (pVal) { this.vHourMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setDayMajorDateDisplayFormat = function (pVal) { this.vDayMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setDayMinorDateDisplayFormat = function (pVal) { this.vDayMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setWeekMajorDateDisplayFormat = function (pVal) { this.vWeekMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setWeekMinorDateDisplayFormat = function (pVal) { this.vWeekMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setMonthMajorDateDisplayFormat = function (pVal) { this.vMonthMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setMonthMinorDateDisplayFormat = function (pVal) { this.vMonthMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setQuarterMajorDateDisplayFormat = function (pVal) { this.vQuarterMajorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setQuarterMinorDateDisplayFormat = function (pVal) { this.vQuarterMinorDateDisplayFormat = date_utils_1.parseDateFormatStr(pVal); }; - this.setCaptionType = function (pType) { this.vCaptionType = pType; }; - this.setFormat = function (pFormat) { - this.vFormat = pFormat; - this.Draw(); - }; - this.setWorkingDays = function (workingDays) { this.vWorkingDays = workingDays; }; - this.setMinGpLen = function (pMinGpLen) { this.vMinGpLen = pMinGpLen; }; - this.setScrollTo = function (pDate) { this.vScrollTo = pDate; }; - this.setHourColWidth = function (pWidth) { this.vHourColWidth = pWidth; }; - this.setDayColWidth = function (pWidth) { this.vDayColWidth = pWidth; }; - this.setWeekColWidth = function (pWidth) { this.vWeekColWidth = pWidth; }; - this.setMonthColWidth = function (pWidth) { this.vMonthColWidth = pWidth; }; - this.setQuarterColWidth = function (pWidth) { this.vQuarterColWidth = pWidth; }; - this.setRowHeight = function (pHeight) { this.vRowHeight = pHeight; }; - this.setLang = function (pLang) { if (this.vLangs[pLang]) - this.vLang = pLang; }; - this.setChartBody = function (pDiv) { if (typeof HTMLDivElement !== 'function' || pDiv instanceof HTMLDivElement) - this.vChartBody = pDiv; }; - this.setChartHead = function (pDiv) { if (typeof HTMLDivElement !== 'function' || pDiv instanceof HTMLDivElement) - this.vChartHead = pDiv; }; - this.setListBody = function (pDiv) { if (typeof HTMLDivElement !== 'function' || pDiv instanceof HTMLDivElement) - this.vListBody = pDiv; }; - this.setChartTable = function (pTable) { if (typeof HTMLTableElement !== 'function' || pTable instanceof HTMLTableElement) - this.vChartTable = pTable; }; - this.setLines = function (pDiv) { if (typeof HTMLDivElement !== 'function' || pDiv instanceof HTMLDivElement) - this.vLines = pDiv; }; - this.setLineOptions = function (lineOptions) { this.vLineOptions = lineOptions; }; - this.setTimer = function (pVal) { this.vTimer = pVal * 1; }; - this.setTooltipDelay = function (pVal) { this.vTooltipDelay = pVal * 1; }; - this.setTooltipTemplate = function (pVal) { this.vTooltipTemplate = pVal; }; - this.setMinDate = function (pVal) { this.vMinDate = pVal; }; - this.setMaxDate = function (pVal) { this.vMaxDate = pVal; }; - this.addLang = function (pLang, pVals) { - if (!this.vLangs[pLang]) { - this.vLangs[pLang] = new Object(); - for (var vKey in this.vLangs['en']) - this.vLangs[pLang][vKey] = (pVals[vKey]) ? document.createTextNode(pVals[vKey]).data : this.vLangs['en'][vKey]; - } - }; - this.setCustomLang = function (pVals) { - this.vLangs[this.vLang] = new Object(); - for (var vKey in this.vLangs['en']) { - this.vLangs[this.vLang][vKey] = (pVals[vKey]) ? document.createTextNode(pVals[vKey]).data : this.vLangs['en'][vKey]; - } - }; - this.setTotalHeight = function (pVal) { this.vTotalHeight = pVal; }; - // EVENTS - this.setEvents = function (pEvents) { this.vEvents = pEvents; }; - this.setEventsChange = function (pEventsChange) { this.vEventsChange = pEventsChange; }; - this.setEventClickRow = function (fn) { this.vEventClickRow = fn; }; - this.setEventClickCollapse = function (fn) { this.vEventClickCollapse = fn; }; - this.setResources = function (resources) { this.vResources = resources; }; - this.setAdditionalHeaders = function (headers) { this.vAdditionalHeaders = headers; }; - this.setColumnOrder = function (order) { this.vColumnOrder = order; }; - this.setEditable = function (editable) { this.vEditable = editable; }; - this.setDebug = function (debug) { this.vDebug = debug; }; - /** - * GETTERS - */ - this.getDivId = function () { return this.vDivId; }; - this.getUseFade = function () { return this.vUseFade; }; - this.getUseMove = function () { return this.vUseMove; }; - this.getUseRowHlt = function () { return this.vUseRowHlt; }; - this.getUseToolTip = function () { return this.vUseToolTip; }; - this.getUseSort = function () { return this.vUseSort; }; - this.getUseSingleCell = function () { return this.vUseSingleCell; }; - this.getFormatArr = function () { return this.vFormatArr; }; - this.getShowRes = function () { return this.vShowRes; }; - this.getShowDur = function () { return this.vShowDur; }; - this.getShowComp = function () { return this.vShowComp; }; - this.getShowStartDate = function () { return this.vShowStartDate; }; - this.getShowEndDate = function () { return this.vShowEndDate; }; - this.getShowPlanStartDate = function () { return this.vShowPlanStartDate; }; - this.getShowPlanEndDate = function () { return this.vShowPlanEndDate; }; - this.getShowCost = function () { return this.vShowCost; }; - this.getShowAddEntries = function () { return this.vShowAddEntries; }; - this.getShowTaskInfoRes = function () { return this.vShowTaskInfoRes; }; - this.getShowTaskInfoDur = function () { return this.vShowTaskInfoDur; }; - this.getShowTaskInfoComp = function () { return this.vShowTaskInfoComp; }; - this.getShowTaskInfoStartDate = function () { return this.vShowTaskInfoStartDate; }; - this.getShowTaskInfoEndDate = function () { return this.vShowTaskInfoEndDate; }; - this.getShowTaskInfoNotes = function () { return this.vShowTaskInfoNotes; }; - this.getShowTaskInfoLink = function () { return this.vShowTaskInfoLink; }; - this.getShowEndWeekDate = function () { return this.vShowEndWeekDate; }; - this.getShowWeekends = function () { return this.vShowWeekends; }; - this.getShowSelector = function () { return this.vShowSelector; }; - this.getShowDeps = function () { return this.vShowDeps; }; - this.getDateInputFormat = function () { return this.vDateInputFormat; }; - this.getDateTaskTableDisplayFormat = function () { return this.vDateTaskTableDisplayFormat; }; - this.getDateTaskDisplayFormat = function () { return this.vDateTaskDisplayFormat; }; - this.getHourMajorDateDisplayFormat = function () { return this.vHourMajorDateDisplayFormat; }; - this.getHourMinorDateDisplayFormat = function () { return this.vHourMinorDateDisplayFormat; }; - this.getDayMajorDateDisplayFormat = function () { return this.vDayMajorDateDisplayFormat; }; - this.getDayMinorDateDisplayFormat = function () { return this.vDayMinorDateDisplayFormat; }; - this.getWeekMajorDateDisplayFormat = function () { return this.vWeekMajorDateDisplayFormat; }; - this.getWeekMinorDateDisplayFormat = function () { return this.vWeekMinorDateDisplayFormat; }; - this.getMonthMajorDateDisplayFormat = function () { return this.vMonthMajorDateDisplayFormat; }; - this.getMonthMinorDateDisplayFormat = function () { return this.vMonthMinorDateDisplayFormat; }; - this.getQuarterMajorDateDisplayFormat = function () { return this.vQuarterMajorDateDisplayFormat; }; - this.getQuarterMinorDateDisplayFormat = function () { return this.vQuarterMinorDateDisplayFormat; }; - this.getCaptionType = function () { return this.vCaptionType; }; - this.getMinGpLen = function () { return this.vMinGpLen; }; - this.getScrollTo = function () { return this.vScrollTo; }; - this.getHourColWidth = function () { return this.vHourColWidth; }; - this.getDayColWidth = function () { return this.vDayColWidth; }; - this.getWeekColWidth = function () { return this.vWeekColWidth; }; - this.getMonthColWidth = function () { return this.vMonthColWidth; }; - this.getQuarterColWidth = function () { return this.vQuarterColWidth; }; - this.getRowHeight = function () { return this.vRowHeight; }; - this.getChartBody = function () { return this.vChartBody; }; - this.getChartHead = function () { return this.vChartHead; }; - this.getListBody = function () { return this.vListBody; }; - this.getChartTable = function () { return this.vChartTable; }; - this.getLines = function () { return this.vLines; }; - this.getTimer = function () { return this.vTimer; }; - this.getMinDate = function () { return this.vMinDate; }; - this.getMaxDate = function () { return this.vMaxDate; }; - this.getTooltipDelay = function () { return this.vTooltipDelay; }; - this.getList = function () { return this.vTaskList; }; - //EVENTS - this.getEventsClickCell = function () { return this.vEvents; }; - this.getEventsChange = function () { return this.vEventsChange; }; - this.getEventClickRow = function () { return this.vEventClickRow; }; - this.getEventClickCollapse = function () { return this.vEventClickCollapse; }; - this.getResources = function () { return this.vResources; }; - this.getAdditionalHeaders = function () { return this.vAdditionalHeaders; }; - this.getColumnOrder = function () { return this.vColumnOrder || draw_columns_1.COLUMN_ORDER; }; -}; - -},{"./draw_columns":3,"./utils/date_utils":11}],10:[function(require,module,exports){ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.processRows = exports.ClearTasks = exports.RemoveTaskItem = exports.AddTaskItemObject = exports.AddTaskItem = exports.createTaskInfo = exports.TaskItem = exports.TaskItemObject = exports.sortTasks = exports.taskLink = void 0; -var general_utils_1 = require("./utils/general_utils"); -var draw_utils_1 = require("./utils/draw_utils"); -var date_utils_1 = require("./utils/date_utils"); -// function to open window to display task link -exports.taskLink = function (pRef, pWidth, pHeight) { - var vWidth, vHeight; - if (pWidth) - vWidth = pWidth; - else - vWidth = 400; - if (pHeight) - vHeight = pHeight; - else - vHeight = 400; - window.open(pRef, 'newwin', 'height=' + vHeight + ',width=' + vWidth); // let OpenWindow = -}; -exports.sortTasks = function (pList, pID, pIdx) { - if (pList.length < 2) { - return pIdx; - } - var sortIdx = pIdx; - var sortArr = new Array(); - for (var i = 0; i < pList.length; i++) { - if (pList[i].getParent() == pID) - sortArr.push(pList[i]); - } - if (sortArr.length > 0) { - sortArr.sort(function (a, b) { - var i = a.getStart().getTime() - b.getStart().getTime(); - if (i == 0) - i = a.getEnd().getTime() - b.getEnd().getTime(); - if (i == 0) - return a.getID() - b.getID(); - else - return i; - }); - } - for (var j = 0; j < sortArr.length; j++) { - for (var i = 0; i < pList.length; i++) { - if (pList[i].getID() == sortArr[j].getID()) { - pList[i].setSortIdx(sortIdx++); - sortIdx = exports.sortTasks(pList, pList[i].getID(), sortIdx); - } - } - } - return sortIdx; -}; -exports.TaskItemObject = function (object) { - var pDataObject = __assign({}, object); - general_utils_1.internalProperties.forEach(function (property) { - delete pDataObject[property]; - }); - return new exports.TaskItem(object.pID, object.pName, object.pStart, object.pEnd, object.pClass, object.pLink, object.pMile, object.pRes, object.pComp, object.pGroup, object.pParent, object.pOpen, object.pDepend, object.pCaption, object.pNotes, object.pGantt, object.pCost, object.pPlanStart, object.pPlanEnd, object.pDuration, object.pBarText, object, object.pPlanClass); -}; -exports.TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGantt, pCost, pPlanStart, pPlanEnd, pDuration, pBarText, pDataObject, pPlanClass) { - if (pCost === void 0) { pCost = null; } - if (pPlanStart === void 0) { pPlanStart = null; } - if (pPlanEnd === void 0) { pPlanEnd = null; } - if (pDuration === void 0) { pDuration = null; } - if (pBarText === void 0) { pBarText = null; } - if (pDataObject === void 0) { pDataObject = null; } - if (pPlanClass === void 0) { pPlanClass = null; } - var vGantt = pGantt ? pGantt : this; - var _id = document.createTextNode(pID).data; - var vID = general_utils_1.hashKey(document.createTextNode(pID).data); - var vName = document.createTextNode(pName).data; - var vStart = null; - var vEnd = null; - var vPlanStart = null; - var vPlanEnd = null; - var vGroupMinStart = null; - var vGroupMinEnd = null; - var vGroupMinPlanStart = null; - var vGroupMinPlanEnd = null; - var vClass = document.createTextNode(pClass).data; - var vPlanClass = document.createTextNode(pPlanClass).data; - var vLink = document.createTextNode(pLink).data; - var vMile = parseInt(document.createTextNode(pMile).data); - var vRes = document.createTextNode(pRes).data; - var vComp = parseFloat(document.createTextNode(pComp).data); - var vCost = parseInt(document.createTextNode(pCost).data); - var vGroup = parseInt(document.createTextNode(pGroup).data); - var vDataObject = pDataObject; - var vCompVal; - var parent = document.createTextNode(pParent).data; - if (parent && parent !== '0') { - parent = general_utils_1.hashKey(parent).toString(); - } - var vParent = parent; - var vOpen = (vGroup == 2) ? 1 : parseInt(document.createTextNode(pOpen).data); - var vDepend = new Array(); - var vDependType = new Array(); - var vCaption = document.createTextNode(pCaption).data; - var vDuration = pDuration || ''; - var vBarText = pBarText || ''; - var vLevel = 0; - var vNumKid = 0; - var vWeight = 0; - var vVisible = 1; - var vSortIdx = 0; - var vToDelete = false; - var x1, y1, x2, y2; - var vNotes; - var vParItem = null; - var vCellDiv = null; - var vBarDiv = null; - var vTaskDiv = null; - var vPlanTaskDiv = null; - var vListChildRow = null; - var vChildRow = null; - var vGroupSpan = null; - vNotes = document.createElement('span'); - vNotes.className = 'gTaskNotes'; - if (pNotes != null) { - vNotes.innerHTML = pNotes; - general_utils_1.stripUnwanted(vNotes); - } - if (pStart != null && pStart != '') { - vStart = (pStart instanceof Date) ? pStart : date_utils_1.parseDateStr(document.createTextNode(pStart).data, vGantt.getDateInputFormat()); - vGroupMinStart = vStart; - } - if (pEnd != null && pEnd != '') { - vEnd = (pEnd instanceof Date) ? pEnd : date_utils_1.parseDateStr(document.createTextNode(pEnd).data, vGantt.getDateInputFormat()); - vGroupMinEnd = vEnd; - } - if (pPlanStart != null && pPlanStart != '') { - vPlanStart = (pPlanStart instanceof Date) ? pPlanStart : date_utils_1.parseDateStr(document.createTextNode(pPlanStart).data, vGantt.getDateInputFormat()); - vGroupMinPlanStart = vPlanStart; - } - if (pPlanEnd != null && pPlanEnd != '') { - vPlanEnd = (pPlanEnd instanceof Date) ? pPlanEnd : date_utils_1.parseDateStr(document.createTextNode(pPlanEnd).data, vGantt.getDateInputFormat()); - vGroupMinPlanEnd = vPlanEnd; - } - if (pDepend != null) { - var vDependStr = pDepend + ''; - var vDepList = vDependStr.split(','); - var n = vDepList.length; - for (var k = 0; k < n; k++) { - if (vDepList[k].toUpperCase().endsWith('SS')) { - vDepend[k] = vDepList[k].substring(0, vDepList[k].length - 2); - vDependType[k] = 'SS'; - } - else if (vDepList[k].toUpperCase().endsWith('FF')) { - vDepend[k] = vDepList[k].substring(0, vDepList[k].length - 2); - vDependType[k] = 'FF'; - } - else if (vDepList[k].toUpperCase().endsWith('SF')) { - vDepend[k] = vDepList[k].substring(0, vDepList[k].length - 2); - vDependType[k] = 'SF'; - } - else if (vDepList[k].toUpperCase().endsWith('FS')) { - vDepend[k] = vDepList[k].substring(0, vDepList[k].length - 2); - vDependType[k] = 'FS'; - } - else { - vDepend[k] = vDepList[k]; - vDependType[k] = 'FS'; - } - if (vDepend[k]) { - vDepend[k] = general_utils_1.hashKey(vDepend[k]).toString(); - } - } - } - this.getID = function () { return vID; }; - this.getOriginalID = function () { return _id; }; - this.getGantt = function () { return vGantt; }; - this.getName = function () { return vName; }; - this.getStart = function () { - if (vStart) - return vStart; - else if (vPlanStart) - return vPlanStart; - else - return new Date(); - }; - this.getStartVar = function () { - return vStart; - }; - this.getEnd = function () { - if (vEnd) - return vEnd; - else if (vPlanEnd) - return vPlanEnd; - else if (vStart && vDuration) { - var date = new Date(vStart); - var vUnits = vDuration.split(' '); - var value = parseInt(vUnits[0]); - switch (vUnits[1]) { - case 'hour': - date.setMinutes(date.getMinutes() + (value * 60)); - break; - case 'day': - date.setMinutes(date.getMinutes() + (value * 60 * 24)); - break; - case 'week': - date.setMinutes(date.getMinutes() + (value * 60 * 24 * 7)); - break; - case 'month': - date.setMonth(date.getMonth() + (value)); - break; - case 'quarter': - date.setMonth(date.getMonth() + (value * 3)); - break; - } - return date; - } - else - return new Date(); - }; - this.getEndVar = function () { - return vEnd; - }; - this.getPlanStart = function () { return vPlanStart ? vPlanStart : vStart; }; - this.getPlanClass = function () { return vPlanClass && vPlanClass !== "null" ? vPlanClass : vClass; }; - this.getPlanEnd = function () { return vPlanEnd ? vPlanEnd : vEnd; }; - this.getCost = function () { return vCost; }; - this.getGroupMinStart = function () { return vGroupMinStart; }; - this.getGroupMinEnd = function () { return vGroupMinEnd; }; - this.getGroupMinPlanStart = function () { return vGroupMinPlanStart; }; - this.getGroupMinPlanEnd = function () { return vGroupMinPlanEnd; }; - this.getClass = function () { return vClass; }; - this.getLink = function () { return vLink; }; - this.getMile = function () { return vMile; }; - this.getDepend = function () { - if (vDepend) - return vDepend; - else - return null; - }; - this.getDataObject = function () { return vDataObject; }; - this.getDepType = function () { if (vDependType) - return vDependType; - else - return null; }; - this.getCaption = function () { if (vCaption) - return vCaption; - else - return ''; }; - this.getResource = function () { if (vRes) - return vRes; - else - return '\u00A0'; }; - this.getCompVal = function () { if (vComp) - return vComp; - else if (vCompVal) - return vCompVal; - else - return 0; }; - this.getCompStr = function () { if (vComp) - return vComp + '%'; - else if (vCompVal) - return vCompVal + '%'; - else - return ''; }; - this.getCompRestStr = function () { if (vComp) - return (100 - vComp) + '%'; - else if (vCompVal) - return (100 - vCompVal) + '%'; - else - return ''; }; - this.getNotes = function () { return vNotes; }; - this.getSortIdx = function () { return vSortIdx; }; - this.getToDelete = function () { return vToDelete; }; - this.getDuration = function (pFormat, pLang) { - if (vMile) { - vDuration = '-'; - } - else if (!vEnd && !vStart && vPlanStart && vPlanEnd) { - return calculateVDuration(pFormat, pLang, this.getPlanStart(), this.getPlanEnd()); - } - else if (!vEnd && vDuration) { - return vDuration; - } - else { - vDuration = calculateVDuration(pFormat, pLang, this.getStart(), this.getEnd()); - } - return vDuration; - }; - function calculateVDuration(pFormat, pLang, start, end) { - var vDuration; - var vUnits = null; - switch (pFormat) { - case 'week': - vUnits = 'day'; - break; - case 'month': - vUnits = 'week'; - break; - case 'quarter': - vUnits = 'month'; - break; - default: - vUnits = pFormat; - break; - } - // let vTaskEnd = new Date(this.getEnd().getTime()); - // if ((vTaskEnd.getTime() - (vTaskEnd.getTimezoneOffset() * 60000)) % (86400000) == 0) { - // vTaskEnd = new Date(vTaskEnd.getFullYear(), vTaskEnd.getMonth(), vTaskEnd.getDate() + 1, vTaskEnd.getHours(), vTaskEnd.getMinutes(), vTaskEnd.getSeconds()); - // } - // let tmpPer = (getOffset(this.getStart(), vTaskEnd, 999, vUnits)) / 1000; - var hours = (end.getTime() - start.getTime()) / 1000 / 60 / 60; - var tmpPer; - switch (vUnits) { - case 'hour': - tmpPer = Math.round(hours); - vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['hrs'] : pLang['hr']); - break; - case 'day': - tmpPer = Math.round(hours / 24); - vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['dys'] : pLang['dy']); - break; - case 'week': - tmpPer = Math.round(hours / 24 / 7); - vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['wks'] : pLang['wk']); - break; - case 'month': - tmpPer = Math.round(hours / 24 / 7 / 4.35); - vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['mths'] : pLang['mth']); - break; - case 'quarter': - tmpPer = Math.round(hours / 24 / 7 / 13); - vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['qtrs'] : pLang['qtr']); - break; - } - return vDuration; - } - this.getBarText = function () { return vBarText; }; - this.getParent = function () { return vParent; }; - this.getGroup = function () { return vGroup; }; - this.getOpen = function () { return vOpen; }; - this.getLevel = function () { return vLevel; }; - this.getNumKids = function () { return vNumKid; }; - this.getWeight = function () { return vWeight; }; - this.getStartX = function () { return x1; }; - this.getStartY = function () { return y1; }; - this.getEndX = function () { return x2; }; - this.getEndY = function () { return y2; }; - this.getVisible = function () { return vVisible; }; - this.getParItem = function () { return vParItem; }; - this.getCellDiv = function () { return vCellDiv; }; - this.getBarDiv = function () { return vBarDiv; }; - this.getTaskDiv = function () { return vTaskDiv; }; - this.getPlanTaskDiv = function () { return vPlanTaskDiv; }; - this.getChildRow = function () { return vChildRow; }; - this.getListChildRow = function () { return vListChildRow; }; - this.getGroupSpan = function () { return vGroupSpan; }; - this.setName = function (pName) { vName = pName; }; - this.setNotes = function (pNotes) { vNotes = pNotes; }; - this.setClass = function (pClass) { vClass = pClass; }; - this.setPlanClass = function (pPlanClass) { vPlanClass = pPlanClass; }; - this.setCost = function (pCost) { vCost = pCost; }; - this.setResource = function (pRes) { vRes = pRes; }; - this.setDuration = function (pDuration) { vDuration = pDuration; }; - this.setDataObject = function (pDataObject) { vDataObject = pDataObject; }; - this.setStart = function (pStart) { - if (pStart instanceof Date) { - vStart = pStart; - } - else { - var temp = new Date(pStart); - if (temp instanceof Date && !isNaN(temp.valueOf())) { - vStart = temp; - } - } - }; - this.setEnd = function (pEnd) { - if (pEnd instanceof Date) { - vEnd = pEnd; - } - else { - var temp = new Date(pEnd); - if (temp instanceof Date && !isNaN(temp.valueOf())) { - vEnd = temp; - } - } - }; - this.setPlanStart = function (pPlanStart) { - if (pPlanStart instanceof Date) - vPlanStart = pPlanStart; - else - vPlanStart = new Date(pPlanStart); - }; - this.setPlanEnd = function (pPlanEnd) { - if (pPlanEnd instanceof Date) - vPlanEnd = pPlanEnd; - else - vPlanEnd = new Date(pPlanEnd); - }; - this.setGroupMinStart = function (pStart) { if (pStart instanceof Date) - vGroupMinStart = pStart; }; - this.setGroupMinEnd = function (pEnd) { if (pEnd instanceof Date) - vGroupMinEnd = pEnd; }; - this.setLevel = function (pLevel) { vLevel = parseInt(document.createTextNode(pLevel).data); }; - this.setNumKid = function (pNumKid) { vNumKid = parseInt(document.createTextNode(pNumKid).data); }; - this.setWeight = function (pWeight) { vWeight = parseInt(document.createTextNode(pWeight).data); }; - this.setCompVal = function (pCompVal) { vCompVal = parseFloat(document.createTextNode(pCompVal).data); }; - this.setComp = function (pComp) { - vComp = parseInt(document.createTextNode(pComp).data); - }; - this.setStartX = function (pX) { x1 = parseInt(document.createTextNode(pX).data); }; - this.setStartY = function (pY) { y1 = parseInt(document.createTextNode(pY).data); }; - this.setEndX = function (pX) { x2 = parseInt(document.createTextNode(pX).data); }; - this.setEndY = function (pY) { y2 = parseInt(document.createTextNode(pY).data); }; - this.setOpen = function (pOpen) { vOpen = parseInt(document.createTextNode(pOpen).data); }; - this.setVisible = function (pVisible) { vVisible = parseInt(document.createTextNode(pVisible).data); }; - this.setSortIdx = function (pSortIdx) { vSortIdx = parseInt(document.createTextNode(pSortIdx).data); }; - this.setToDelete = function (pToDelete) { if (pToDelete) - vToDelete = true; - else - vToDelete = false; }; - this.setParItem = function (pParItem) { if (pParItem) - vParItem = pParItem; }; - this.setCellDiv = function (pCellDiv) { if (typeof HTMLDivElement !== 'function' || pCellDiv instanceof HTMLDivElement) - vCellDiv = pCellDiv; }; //"typeof HTMLDivElement !== 'function'" to play nice with ie6 and 7 - this.setGroup = function (pGroup) { - if (pGroup === true || pGroup === 'true') { - vGroup = 1; - } - else if (pGroup === false || pGroup === 'false') { - vGroup = 0; - } - else { - vGroup = parseInt(document.createTextNode(pGroup).data); - } - }; - this.setBarText = function (pBarText) { if (pBarText) - vBarText = pBarText; }; - this.setBarDiv = function (pDiv) { if (typeof HTMLDivElement !== 'function' || pDiv instanceof HTMLDivElement) - vBarDiv = pDiv; }; - this.setTaskDiv = function (pDiv) { if (typeof HTMLDivElement !== 'function' || pDiv instanceof HTMLDivElement) - vTaskDiv = pDiv; }; - this.setPlanTaskDiv = function (pDiv) { if (typeof HTMLDivElement !== 'function' || pDiv instanceof HTMLDivElement) - vPlanTaskDiv = pDiv; }; - this.setChildRow = function (pRow) { if (typeof HTMLTableRowElement !== 'function' || pRow instanceof HTMLTableRowElement) - vChildRow = pRow; }; - this.setListChildRow = function (pRow) { if (typeof HTMLTableRowElement !== 'function' || pRow instanceof HTMLTableRowElement) - vListChildRow = pRow; }; - this.setGroupSpan = function (pSpan) { if (typeof HTMLSpanElement !== 'function' || pSpan instanceof HTMLSpanElement) - vGroupSpan = pSpan; }; - this.getAllData = function () { - return { - pID: vID, - pName: vName, - pStart: vStart, - pEnd: vEnd, - pPlanStart: vPlanStart, - pPlanEnd: vPlanEnd, - pGroupMinStart: vGroupMinStart, - pGroupMinEnd: vGroupMinEnd, - pClass: vClass, - pLink: vLink, - pMile: vMile, - pRes: vRes, - pComp: vComp, - pCost: vCost, - pGroup: vGroup, - pDataObject: vDataObject, - pPlanClass: vPlanClass - }; - }; -}; -/** - * @param pTask - * @param templateStrOrFn template string or function(task). In any case parameters in template string are substituted. - * If string - just a static template. - * If function(task): string - per task template. Can return null|undefined to fallback to default template. - * If function(task): Promise) - async per task template. Tooltip will show 'Loading...' if promise is not yet complete. - * Otherwise returned template will be handled in the same manner as in other cases. - */ -exports.createTaskInfo = function (pTask, templateStrOrFn) { - var _this = this; - if (templateStrOrFn === void 0) { templateStrOrFn = null; } - var vTmpDiv; - var vTaskInfoBox = document.createDocumentFragment(); - var vTaskInfo = draw_utils_1.newNode(vTaskInfoBox, 'div', null, 'gTaskInfo'); - var setupTemplate = function (template) { - vTaskInfo.innerHTML = ""; - if (template) { - var allData_1 = pTask.getAllData(); - general_utils_1.internalProperties.forEach(function (key) { - var lang; - if (general_utils_1.internalPropertiesLang[key]) { - lang = _this.vLangs[_this.vLang][general_utils_1.internalPropertiesLang[key]]; - } - if (!lang) { - lang = key; - } - var val = allData_1[key]; - template = template.replace("{{" + key + "}}", val); - if (lang) { - template = template.replace("{{Lang:" + key + "}}", lang); - } - else { - template = template.replace("{{Lang:" + key + "}}", key); - } - }); - draw_utils_1.newNode(vTaskInfo, 'span', null, 'gTtTemplate', template); - } - else { - draw_utils_1.newNode(vTaskInfo, 'span', null, 'gTtTitle', pTask.getName()); - if (_this.vShowTaskInfoStartDate == 1) { - vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTIsd'); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['startdate'] + ': '); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskText', date_utils_1.formatDateStr(pTask.getStart(), _this.vDateTaskDisplayFormat, _this.vLangs[_this.vLang])); - } - if (_this.vShowTaskInfoEndDate == 1) { - vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTIed'); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['enddate'] + ': '); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskText', date_utils_1.formatDateStr(pTask.getEnd(), _this.vDateTaskDisplayFormat, _this.vLangs[_this.vLang])); - } - if (_this.vShowTaskInfoDur == 1 && !pTask.getMile()) { - vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTId'); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['dur'] + ': '); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskText', pTask.getDuration(_this.vFormat, _this.vLangs[_this.vLang])); - } - if (_this.vShowTaskInfoComp == 1) { - vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTIc'); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['completion'] + ': '); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskText', pTask.getCompStr()); - } - if (_this.vShowTaskInfoRes == 1) { - vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTIr'); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['res'] + ': '); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskText', pTask.getResource()); - } - if (_this.vShowTaskInfoLink == 1 && pTask.getLink() != '') { - vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTIl'); - var vTmpNode = draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel'); - vTmpNode = draw_utils_1.newNode(vTmpNode, 'a', null, 'gTaskText', _this.vLangs[_this.vLang]['moreinfo']); - vTmpNode.setAttribute('href', pTask.getLink()); - } - if (_this.vShowTaskInfoNotes == 1) { - vTmpDiv = draw_utils_1.newNode(vTaskInfo, 'div', null, 'gTILine gTIn'); - draw_utils_1.newNode(vTmpDiv, 'span', null, 'gTaskLabel', _this.vLangs[_this.vLang]['notes'] + ': '); - if (pTask.getNotes()) - vTmpDiv.appendChild(pTask.getNotes()); - } - } - }; - var callback; - if (typeof templateStrOrFn === 'function') { - callback = function () { - var strOrPromise = templateStrOrFn(pTask); - if (!strOrPromise || typeof strOrPromise === 'string') { - setupTemplate(strOrPromise); - } - else if (strOrPromise.then) { - setupTemplate(_this.vLangs[_this.vLang]['tooltipLoading'] || _this.vLangs['en']['tooltipLoading']); - return strOrPromise.then(setupTemplate); - } - }; - } - else { - setupTemplate(templateStrOrFn); - } - return { component: vTaskInfoBox, callback: callback }; -}; -exports.AddTaskItem = function (value) { - var vExists = false; - for (var i = 0; i < this.vTaskList.length; i++) { - if (this.vTaskList[i].getID() == value.getID()) { - i = this.vTaskList.length; - vExists = true; - } - } - if (!vExists) { - this.vTaskList.push(value); - this.vProcessNeeded = true; - } -}; -exports.AddTaskItemObject = function (object) { - if (!object.pGantt) { - object.pGantt = this; - } - return this.AddTaskItem(exports.TaskItemObject(object)); -}; -exports.RemoveTaskItem = function (pID) { - // simply mark the task for removal at this point - actually remove it next time we re-draw the chart - for (var i = 0; i < this.vTaskList.length; i++) { - if (this.vTaskList[i].getID() == pID) - this.vTaskList[i].setToDelete(true); - else if (this.vTaskList[i].getParent() == pID) - this.RemoveTaskItem(this.vTaskList[i].getID()); - } - this.vProcessNeeded = true; -}; -exports.ClearTasks = function () { - var _this = this; - this.vTaskList.map(function (task) { return _this.RemoveTaskItem(task.getID()); }); - this.vProcessNeeded = true; -}; -// Recursively process task tree ... set min, max dates of parent tasks and identfy task level. -exports.processRows = function (pList, pID, pRow, pLevel, pOpen, pUseSort, vDebug) { - if (vDebug === void 0) { vDebug = false; } - var vMinDate = null; - var vMaxDate = null; - var vMinPlanDate = null; - var vMaxPlanDate = null; - var vVisible = pOpen; - var vCurItem = null; - var vCompSum = 0; - var vMinSet = 0; - var vMaxSet = 0; - var vMinPlanSet = 0; - var vMaxPlanSet = 0; - var vNumKid = 0; - var vWeight = 0; - var vLevel = pLevel; - var vList = pList; - var vComb = false; - var i = 0; - for (i = 0; i < pList.length; i++) { - if (pList[i].getToDelete()) { - pList.splice(i, 1); - i--; - } - if (i >= 0 && pList[i].getID() == pID) - vCurItem = pList[i]; - } - for (i = 0; i < pList.length; i++) { - if (pList[i].getParent() == pID) { - vVisible = pOpen; - pList[i].setParItem(vCurItem); - pList[i].setVisible(vVisible); - if (vVisible == 1 && pList[i].getOpen() == 0) - vVisible = 0; - if (pList[i].getMile() && pList[i].getParItem() && pList[i].getParItem().getGroup() == 2) { //remove milestones owned by combined groups - pList.splice(i, 1); - i--; - continue; - } - pList[i].setLevel(vLevel); - if (pList[i].getGroup()) { - if (pList[i].getParItem() && pList[i].getParItem().getGroup() == 2) - pList[i].setGroup(2); - exports.processRows(vList, pList[i].getID(), i, vLevel + 1, vVisible, 0); - } - if (pList[i].getStartVar() && (vMinSet == 0 || pList[i].getStartVar() < vMinDate)) { - vMinDate = pList[i].getStartVar(); - vMinSet = 1; - } - if (pList[i].getEndVar() && (vMaxSet == 0 || pList[i].getEndVar() > vMaxDate)) { - vMaxDate = pList[i].getEndVar(); - vMaxSet = 1; - } - if (vMinPlanSet == 0 || pList[i].getPlanStart() < vMinPlanDate) { - vMinPlanDate = pList[i].getPlanStart(); - vMinPlanSet = 1; - } - if (vMaxPlanSet == 0 || pList[i].getPlanEnd() > vMaxPlanDate) { - vMaxPlanDate = pList[i].getPlanEnd(); - vMaxPlanSet = 1; - } - vNumKid++; - vWeight += pList[i].getEnd() - pList[i].getStart() + 1; - vCompSum += pList[i].getCompVal() * (pList[i].getEnd() - pList[i].getStart() + 1); - pList[i].setSortIdx(i * pList.length); - } - } - if (pRow >= 0) { - if (pList[pRow].getGroupMinStart() != null && pList[pRow].getGroupMinStart() < vMinDate) { - vMinDate = pList[pRow].getGroupMinStart(); - } - if (pList[pRow].getGroupMinEnd() != null && pList[pRow].getGroupMinEnd() > vMaxDate) { - vMaxDate = pList[pRow].getGroupMinEnd(); - } - if (vMinDate) { - pList[pRow].setStart(vMinDate); - } - if (vMaxDate) { - pList[pRow].setEnd(vMaxDate); - } - if (pList[pRow].getGroupMinPlanStart() != null && pList[pRow].getGroupMinPlanStart() < vMinPlanDate) { - vMinPlanDate = pList[pRow].getGroupMinPlanStart(); - } - if (pList[pRow].getGroupMinPlanEnd() != null && pList[pRow].getGroupMinPlanEnd() > vMaxPlanDate) { - vMaxPlanDate = pList[pRow].getGroupMinPlanEnd(); - } - if (vMinPlanDate) { - pList[pRow].setPlanStart(vMinPlanDate); - } - if (vMaxPlanDate) { - pList[pRow].setPlanEnd(vMaxPlanDate); - } - pList[pRow].setNumKid(vNumKid); - pList[pRow].setWeight(vWeight); - pList[pRow].setCompVal(Math.ceil(vCompSum / vWeight)); - } - if (pID == 0 && pUseSort == 1) { - var bd = void 0; - if (vDebug) { - bd = new Date(); - console.info('before afterTasks', bd); - } - exports.sortTasks(pList, 0, 0); - if (vDebug) { - var ad = new Date(); - console.info('after afterTasks', ad, (ad.getTime() - bd.getTime())); - } - pList.sort(function (a, b) { return a.getSortIdx() - b.getSortIdx(); }); - } - if (pID == 0 && pUseSort != 1) // Need to sort combined tasks regardless - { - for (i = 0; i < pList.length; i++) { - if (pList[i].getGroup() == 2) { - vComb = true; - var bd = void 0; - if (vDebug) { - bd = new Date(); - console.info('before sortTasks', bd); - } - exports.sortTasks(pList, pList[i].getID(), pList[i].getSortIdx() + 1); - if (vDebug) { - var ad = new Date(); - console.info('after sortTasks', ad, (ad.getTime() - bd.getTime())); - } - } - } - if (vComb == true) - pList.sort(function (a, b) { return a.getSortIdx() - b.getSortIdx(); }); - } -}; - -},{"./utils/date_utils":11,"./utils/draw_utils":12,"./utils/general_utils":13}],11:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getIsoWeek = exports.parseDateFormatStr = exports.formatDateStr = exports.parseDateStr = exports.coerceDate = exports.getMaxDate = exports.getMinDate = void 0; -/** - * DATES - */ -exports.getMinDate = function (pList, pFormat, pMinDate) { - var vDate = new Date(); - if (pList.length <= 0) - return pMinDate || vDate; - vDate.setTime((pMinDate && pMinDate.getTime()) || pList[0].getStart().getTime()); - // Parse all Task Start dates to find min - for (var i = 0; i < pList.length; i++) { - if (pList[i].getStart().getTime() < vDate.getTime()) - vDate.setTime(pList[i].getStart().getTime()); - if (pList[i].getPlanStart() && pList[i].getPlanStart().getTime() < vDate.getTime()) - vDate.setTime(pList[i].getPlanStart().getTime()); - } - // Adjust min date to specific format boundaries (first of week or first of month) - if (pFormat == 'day') { - vDate.setDate(vDate.getDate() - 1); - while (vDate.getDay() % 7 != 1) - vDate.setDate(vDate.getDate() - 1); - } - else if (pFormat == 'week') { - vDate.setDate(vDate.getDate() - 1); - while (vDate.getDay() % 7 != 1) - vDate.setDate(vDate.getDate() - 1); - } - else if (pFormat == 'month') { - vDate.setDate(vDate.getDate() - 15); - while (vDate.getDate() > 1) - vDate.setDate(vDate.getDate() - 1); - } - else if (pFormat == 'quarter') { - vDate.setDate(vDate.getDate() - 31); - if (vDate.getMonth() == 0 || vDate.getMonth() == 1 || vDate.getMonth() == 2) - vDate.setFullYear(vDate.getFullYear(), 0, 1); - else if (vDate.getMonth() == 3 || vDate.getMonth() == 4 || vDate.getMonth() == 5) - vDate.setFullYear(vDate.getFullYear(), 3, 1); - else if (vDate.getMonth() == 6 || vDate.getMonth() == 7 || vDate.getMonth() == 8) - vDate.setFullYear(vDate.getFullYear(), 6, 1); - else if (vDate.getMonth() == 9 || vDate.getMonth() == 10 || vDate.getMonth() == 11) - vDate.setFullYear(vDate.getFullYear(), 9, 1); - } - else if (pFormat == 'hour') { - vDate.setHours(vDate.getHours() - 1); - while (vDate.getHours() % 6 != 0) - vDate.setHours(vDate.getHours() - 1); - } - if (pFormat == 'hour') - vDate.setMinutes(0, 0); - else - vDate.setHours(0, 0, 0); - return (vDate); -}; -exports.getMaxDate = function (pList, pFormat, pMaxDate) { - var vDate = new Date(); - if (pList.length <= 0) - return pMaxDate || vDate; - vDate.setTime((pMaxDate && pMaxDate.getTime()) || pList[0].getEnd().getTime()); - // Parse all Task End dates to find max - for (var i = 0; i < pList.length; i++) { - if (pList[i].getEnd().getTime() > vDate.getTime()) - vDate.setTime(pList[i].getEnd().getTime()); - if (pList[i].getPlanEnd() && pList[i].getPlanEnd().getTime() > vDate.getTime()) - vDate.setTime(pList[i].getPlanEnd().getTime()); - } - // Adjust max date to specific format boundaries (end of week or end of month) - if (pFormat == 'day') { - vDate.setDate(vDate.getDate() + 1); - while (vDate.getDay() % 7 != 0) - vDate.setDate(vDate.getDate() + 1); - } - else if (pFormat == 'week') { - //For weeks, what is the last logical boundary? - vDate.setDate(vDate.getDate() + 1); - while (vDate.getDay() % 7 != 0) - vDate.setDate(vDate.getDate() + 1); - } - else if (pFormat == 'month') { - // Set to last day of current Month - while (vDate.getDate() > 1) - vDate.setDate(vDate.getDate() + 1); - vDate.setDate(vDate.getDate() - 1); - } - else if (pFormat == 'quarter') { - // Set to last day of current Quarter - if (vDate.getMonth() == 0 || vDate.getMonth() == 1 || vDate.getMonth() == 2) - vDate.setFullYear(vDate.getFullYear(), 2, 31); - else if (vDate.getMonth() == 3 || vDate.getMonth() == 4 || vDate.getMonth() == 5) - vDate.setFullYear(vDate.getFullYear(), 5, 30); - else if (vDate.getMonth() == 6 || vDate.getMonth() == 7 || vDate.getMonth() == 8) - vDate.setFullYear(vDate.getFullYear(), 8, 30); - else if (vDate.getMonth() == 9 || vDate.getMonth() == 10 || vDate.getMonth() == 11) - vDate.setFullYear(vDate.getFullYear(), 11, 31); - } - else if (pFormat == 'hour') { - if (vDate.getHours() == 0) - vDate.setDate(vDate.getDate() + 1); - vDate.setHours(vDate.getHours() + 1); - while (vDate.getHours() % 6 != 5) - vDate.setHours(vDate.getHours() + 1); - } - return (vDate); -}; -exports.coerceDate = function (date) { - if (date instanceof Date) { - return date; - } - else { - var temp = new Date(date); - if (temp instanceof Date && !isNaN(temp.valueOf())) { - return temp; - } - } -}; -exports.parseDateStr = function (pDateStr, pFormatStr) { - var vDate = new Date(); - var vDateParts = pDateStr.split(/[^0-9]/); - if (pDateStr.length >= 10 && vDateParts.length >= 3) { - while (vDateParts.length < 5) - vDateParts.push(0); - switch (pFormatStr) { - case 'mm/dd/yyyy': - vDate = new Date(vDateParts[2], vDateParts[0] - 1, vDateParts[1], vDateParts[3], vDateParts[4]); - break; - case 'dd/mm/yyyy': - vDate = new Date(vDateParts[2], vDateParts[1] - 1, vDateParts[0], vDateParts[3], vDateParts[4]); - break; - case 'yyyy-mm-dd': - vDate = new Date(vDateParts[0], vDateParts[1] - 1, vDateParts[2], vDateParts[3], vDateParts[4]); - break; - case 'yyyy-mm-dd HH:MI:SS': - vDate = new Date(vDateParts[0], vDateParts[1] - 1, vDateParts[2], vDateParts[3], vDateParts[4], vDateParts[5]); - break; - } - } - return (vDate); -}; -exports.formatDateStr = function (pDate, pDateFormatArr, pL) { - // Fix on issue #303 - getXMLTask is passing null as pDates - if (!pDate) { - return; - } - var vDateStr = ''; - var vYear2Str = pDate.getFullYear().toString().substring(2, 4); - var vMonthStr = (pDate.getMonth() + 1) + ''; - var vMonthArr = new Array(pL['january'], pL['february'], pL['march'], pL['april'], pL['maylong'], pL['june'], pL['july'], pL['august'], pL['september'], pL['october'], pL['november'], pL['december']); - var vDayArr = new Array(pL['sunday'], pL['monday'], pL['tuesday'], pL['wednesday'], pL['thursday'], pL['friday'], pL['saturday']); - var vMthArr = new Array(pL['jan'], pL['feb'], pL['mar'], pL['apr'], pL['may'], pL['jun'], pL['jul'], pL['aug'], pL['sep'], pL['oct'], pL['nov'], pL['dec']); - var vDyArr = new Array(pL['sun'], pL['mon'], pL['tue'], pL['wed'], pL['thu'], pL['fri'], pL['sat']); - for (var i = 0; i < pDateFormatArr.length; i++) { - switch (pDateFormatArr[i]) { - case 'dd': - if (pDate.getDate() < 10) - vDateStr += '0'; // now fall through - case 'd': - vDateStr += pDate.getDate(); - break; - case 'day': - vDateStr += vDyArr[pDate.getDay()]; - break; - case 'DAY': - vDateStr += vDayArr[pDate.getDay()]; - break; - case 'mm': - if (parseInt(vMonthStr, 10) < 10) - vDateStr += '0'; // now fall through - case 'm': - vDateStr += vMonthStr; - break; - case 'mon': - vDateStr += vMthArr[pDate.getMonth()]; - break; - case 'month': - vDateStr += vMonthArr[pDate.getMonth()]; - break; - case 'yyyy': - vDateStr += pDate.getFullYear(); - break; - case 'yy': - vDateStr += vYear2Str; - break; - case 'qq': - vDateStr += pL['qtr']; // now fall through - case 'q': - vDateStr += Math.floor(pDate.getMonth() / 3) + 1; - break; - case 'hh': - if ((((pDate.getHours() % 12) == 0) ? 12 : pDate.getHours() % 12) < 10) - vDateStr += '0'; // now fall through - case 'h': - vDateStr += ((pDate.getHours() % 12) == 0) ? 12 : pDate.getHours() % 12; - break; - case 'HH': - if ((pDate.getHours()) < 10) - vDateStr += '0'; // now fall through - case 'H': - vDateStr += (pDate.getHours()); - break; - case 'MI': - if (pDate.getMinutes() < 10) - vDateStr += '0'; // now fall through - case 'mi': - vDateStr += pDate.getMinutes(); - break; - case 'SS': - if (pDate.getSeconds() < 10) - vDateStr += '0'; // now fall through - case 'ss': - vDateStr += pDate.getSeconds(); - break; - case 'pm': - vDateStr += ((pDate.getHours()) < 12) ? 'am' : 'pm'; - break; - case 'PM': - vDateStr += ((pDate.getHours()) < 12) ? 'AM' : 'PM'; - break; - case 'ww': - if (exports.getIsoWeek(pDate) < 10) - vDateStr += '0'; // now fall through - case 'w': - vDateStr += exports.getIsoWeek(pDate); - break; - case 'week': - var vWeekNum = exports.getIsoWeek(pDate); - var vYear = pDate.getFullYear(); - var vDayOfWeek = (pDate.getDay() == 0) ? 7 : pDate.getDay(); - if (vWeekNum >= 52 && parseInt(vMonthStr, 10) === 1) - vYear--; - if (vWeekNum == 1 && parseInt(vMonthStr, 10) === 12) - vYear++; - if (vWeekNum < 10) - vWeekNum = parseInt('0' + vWeekNum, 10); - vDateStr += vYear + '-W' + vWeekNum + '-' + vDayOfWeek; - break; - default: - if (pL[pDateFormatArr[i].toLowerCase()]) - vDateStr += pL[pDateFormatArr[i].toLowerCase()]; - else - vDateStr += pDateFormatArr[i]; - break; - } - } - return vDateStr; -}; -exports.parseDateFormatStr = function (pFormatStr) { - var vComponantStr = ''; - var vCurrChar = ''; - var vSeparators = new RegExp('[\/\\ -.,\'":]'); - var vDateFormatArray = new Array(); - for (var i = 0; i < pFormatStr.length; i++) { - vCurrChar = pFormatStr.charAt(i); - if ((vCurrChar.match(vSeparators)) || (i + 1 == pFormatStr.length)) // separator or end of string - { - if ((i + 1 == pFormatStr.length) && (!(vCurrChar.match(vSeparators)))) // at end of string add any non-separator chars to the current component - { - vComponantStr += vCurrChar; - } - vDateFormatArray.push(vComponantStr); - if (vCurrChar.match(vSeparators)) - vDateFormatArray.push(vCurrChar); - vComponantStr = ''; - } - else { - vComponantStr += vCurrChar; - } - } - return vDateFormatArray; -}; -/** - * We have to compare against the monday of the first week of the year containing 04 jan *not* 01/01 - * 60*60*24*1000=86400000 - * @param pDate - */ -exports.getIsoWeek = function (pDate) { - var dayMiliseconds = 86400000; - var keyDay = new Date(pDate.getFullYear(), 0, 4, 0, 0, 0); - var keyDayOfWeek = (keyDay.getDay() == 0) ? 6 : keyDay.getDay() - 1; // define monday as 0 - var firstMondayYearTime = keyDay.getTime() - (keyDayOfWeek * dayMiliseconds); - var thisDate = new Date(pDate.getFullYear(), pDate.getMonth(), pDate.getDate(), 0, 0, 0); // This at 00:00:00 - var thisTime = thisDate.getTime(); - var daysFromFirstMonday = Math.round(((thisTime - firstMondayYearTime) / dayMiliseconds)); - var lastWeek = 99; - var thisWeek = 99; - var firstMondayYear = new Date(firstMondayYearTime); - thisWeek = Math.ceil((daysFromFirstMonday + 1) / 7); - if (thisWeek <= 0) - thisWeek = exports.getIsoWeek(new Date(pDate.getFullYear() - 1, 11, 31, 0, 0, 0)); - else if (thisWeek == 53 && (new Date(pDate.getFullYear(), 0, 1, 0, 0, 0)).getDay() != 4 && (new Date(pDate.getFullYear(), 11, 31, 0, 0, 0)).getDay() != 4) - thisWeek = 1; - return thisWeek; -}; - -},{}],12:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.drawSelector = exports.sLine = exports.CalcTaskXY = exports.getArrayLocationByID = exports.newNode = exports.makeInput = void 0; -var events_1 = require("../events"); -exports.makeInput = function (formattedValue, editable, type, value, choices) { - if (type === void 0) { type = 'text'; } - if (value === void 0) { value = null; } - if (choices === void 0) { choices = null; } - if (!value) { - value = formattedValue; - } - if (editable) { - switch (type) { - case 'date': - // Take timezone into account before converting to ISO String - value = value ? new Date(value.getTime() - (value.getTimezoneOffset() * 60000)).toISOString().split('T')[0] : ''; - return ""; - case 'resource': - if (choices) { - var found = choices.filter(function (c) { return c.id == value || c.name == value; }); - if (found && found.length > 0) { - value = found[0].id; - } - else { - choices.push({ id: value, name: value }); - } - return ""; - } - else { - return ""; - } - case 'cost': - return ""; - default: - return ""; - } - } - else { - return formattedValue; - } -}; -exports.newNode = function (pParent, pNodeType, pId, pClass, pText, pWidth, pLeft, pDisplay, pColspan, pAttribs) { - if (pId === void 0) { pId = null; } - if (pClass === void 0) { pClass = null; } - if (pText === void 0) { pText = null; } - if (pWidth === void 0) { pWidth = null; } - if (pLeft === void 0) { pLeft = null; } - if (pDisplay === void 0) { pDisplay = null; } - if (pColspan === void 0) { pColspan = null; } - if (pAttribs === void 0) { pAttribs = null; } - var vNewNode = pParent.appendChild(document.createElement(pNodeType)); - if (pAttribs) { - for (var i = 0; i + 1 < pAttribs.length; i += 2) { - vNewNode.setAttribute(pAttribs[i], pAttribs[i + 1]); - } - } - if (pId) - vNewNode.id = pId; // I wish I could do this with setAttribute but older IEs don't play nice - if (pClass) - vNewNode.className = pClass; - if (pWidth) - vNewNode.style.width = (isNaN(pWidth * 1)) ? pWidth : pWidth + 'px'; - if (pLeft) - vNewNode.style.left = (isNaN(pLeft * 1)) ? pLeft : pLeft + 'px'; - if (pText) { - if (pText.indexOf && pText.indexOf('<') === -1) { - vNewNode.appendChild(document.createTextNode(pText)); - } - else { - vNewNode.insertAdjacentHTML('beforeend', pText); - } - } - if (pDisplay) - vNewNode.style.display = pDisplay; - if (pColspan) - vNewNode.colSpan = pColspan; - return vNewNode; -}; -exports.getArrayLocationByID = function (pId) { - var vList = this.getList(); - for (var i = 0; i < vList.length; i++) { - if (vList[i].getID() == pId) - return i; - } - return -1; -}; -exports.CalcTaskXY = function () { - var vID; - var vList = this.getList(); - var vBarDiv; - var vTaskDiv; - var vParDiv; - var vLeft, vTop, vWidth; - var vHeight = Math.floor((this.getRowHeight() / 2)); - for (var i = 0; i < vList.length; i++) { - vID = vList[i].getID(); - vBarDiv = vList[i].getBarDiv(); - vTaskDiv = vList[i].getTaskDiv(); - if ((vList[i].getParItem() && vList[i].getParItem().getGroup() == 2)) { - vParDiv = vList[i].getParItem().getChildRow(); - } - else - vParDiv = vList[i].getChildRow(); - if (vBarDiv) { - vList[i].setStartX(vBarDiv.offsetLeft + 1); - vList[i].setStartY(vParDiv.offsetTop + vBarDiv.offsetTop + vHeight - 1); - vList[i].setEndX(vBarDiv.offsetLeft + vBarDiv.offsetWidth + 1); - vList[i].setEndY(vParDiv.offsetTop + vBarDiv.offsetTop + vHeight - 1); - } - } -}; -exports.sLine = function (x1, y1, x2, y2, pClass) { - var vLeft = Math.min(x1, x2); - var vTop = Math.min(y1, y2); - var vWid = Math.abs(x2 - x1) + 1; - var vHgt = Math.abs(y2 - y1) + 1; - var vTmpDiv = document.createElement('div'); - vTmpDiv.id = this.vDivId + 'line' + this.vDepId++; - vTmpDiv.style.position = 'absolute'; - vTmpDiv.style.overflow = 'hidden'; - vTmpDiv.style.zIndex = '0'; - vTmpDiv.style.left = vLeft + 'px'; - vTmpDiv.style.top = vTop + 'px'; - vTmpDiv.style.width = vWid + 'px'; - vTmpDiv.style.height = vHgt + 'px'; - vTmpDiv.style.visibility = 'visible'; - if (vWid == 1) - vTmpDiv.className = 'glinev'; - else - vTmpDiv.className = 'glineh'; - if (pClass) - vTmpDiv.className += ' ' + pClass; - this.getLines().appendChild(vTmpDiv); - if (this.vEvents.onLineDraw && typeof this.vEvents.onLineDraw === 'function') { - this.vEvents.onLineDraw(vTmpDiv); - } - return vTmpDiv; -}; -exports.drawSelector = function (pPos) { - var vOutput = document.createDocumentFragment(); - var vDisplay = false; - for (var i = 0; i < this.vShowSelector.length && !vDisplay; i++) { - if (this.vShowSelector[i].toLowerCase() == pPos.toLowerCase()) - vDisplay = true; - } - if (vDisplay) { - var vTmpDiv = exports.newNode(vOutput, 'div', null, 'gselector', this.vLangs[this.vLang]['format'] + ':'); - if (this.vFormatArr.join().toLowerCase().indexOf('hour') != -1) - events_1.addFormatListeners(this, 'hour', exports.newNode(vTmpDiv, 'span', this.vDivId + 'formathour' + pPos, 'gformlabel' + ((this.vFormat == 'hour') ? ' gselected' : ''), this.vLangs[this.vLang]['hour'])); - if (this.vFormatArr.join().toLowerCase().indexOf('day') != -1) - events_1.addFormatListeners(this, 'day', exports.newNode(vTmpDiv, 'span', this.vDivId + 'formatday' + pPos, 'gformlabel' + ((this.vFormat == 'day') ? ' gselected' : ''), this.vLangs[this.vLang]['day'])); - if (this.vFormatArr.join().toLowerCase().indexOf('week') != -1) - events_1.addFormatListeners(this, 'week', exports.newNode(vTmpDiv, 'span', this.vDivId + 'formatweek' + pPos, 'gformlabel' + ((this.vFormat == 'week') ? ' gselected' : ''), this.vLangs[this.vLang]['week'])); - if (this.vFormatArr.join().toLowerCase().indexOf('month') != -1) - events_1.addFormatListeners(this, 'month', exports.newNode(vTmpDiv, 'span', this.vDivId + 'formatmonth' + pPos, 'gformlabel' + ((this.vFormat == 'month') ? ' gselected' : ''), this.vLangs[this.vLang]['month'])); - if (this.vFormatArr.join().toLowerCase().indexOf('quarter') != -1) - events_1.addFormatListeners(this, 'quarter', exports.newNode(vTmpDiv, 'span', this.vDivId + 'formatquarter' + pPos, 'gformlabel' + ((this.vFormat == 'quarter') ? ' gselected' : ''), this.vLangs[this.vLang]['quarter'])); - } - else { - exports.newNode(vOutput, 'div', null, 'gselector'); - } - return vOutput; -}; - -},{"../events":5}],13:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.printChart = exports.calculateStartEndFromDepend = exports.makeRequestOldBrowsers = exports.makeRequest = exports.moveToolTip = exports.updateFlyingObj = exports.isParentElementOrSelf = exports.criticalPath = exports.hashKey = exports.hashString = exports.fadeToolTip = exports.hideToolTip = exports.isIE = exports.getOffset = exports.calculateCurrentDateOffset = exports.getScrollbarWidth = exports.getScrollPositions = exports.benchMark = exports.getZoomFactor = exports.delayedHide = exports.stripUnwanted = exports.stripIds = exports.changeFormat = exports.findObj = exports.internalPropertiesLang = exports.internalProperties = void 0; -exports.internalProperties = ['pID', 'pName', 'pStart', 'pEnd', 'pClass', 'pLink', 'pMile', 'pRes', 'pComp', 'pGroup', 'pParent', - 'pOpen', 'pDepend', 'pCaption', 'pNotes', 'pGantt', 'pCost', 'pPlanStart', 'pPlanEnd', 'pPlanClass']; -exports.internalPropertiesLang = { - 'pID': 'id', - 'pName': 'name', - 'pStart': 'startdate', - 'pEnd': 'enddate', - 'pLink': 'link', - 'pMile': 'mile', - 'pRes': 'res', - 'pDuration': 'dur', - 'pComp': 'comp', - 'pGroup': 'group', - 'pParent': 'parent', - 'pOpen': 'open', - 'pDepend': 'depend', - 'pCaption': 'caption', - 'pNotes': 'notes', - 'pCost': 'cost', - 'pPlanStart': 'planstartdate', - 'pPlanEnd': 'planenddate', - 'pPlanClass': 'planclass' -}; -exports.findObj = function (theObj, theDoc) { - if (theDoc === void 0) { theDoc = null; } - var p, i, foundObj; - if (!theDoc) - theDoc = document; - if (document.getElementById) - foundObj = document.getElementById(theObj); - return foundObj; -}; -exports.changeFormat = function (pFormat, ganttObj) { - if (ganttObj) - ganttObj.setFormat(pFormat); - else - alert('Chart undefined'); -}; -exports.stripIds = function (pNode) { - for (var i = 0; i < pNode.childNodes.length; i++) { - if ('removeAttribute' in pNode.childNodes[i]) - pNode.childNodes[i].removeAttribute('id'); - if (pNode.childNodes[i].hasChildNodes()) - exports.stripIds(pNode.childNodes[i]); - } -}; -exports.stripUnwanted = function (pNode) { - var vAllowedTags = new Array('#text', 'p', 'br', 'ul', 'ol', 'li', 'div', 'span', 'img'); - for (var i = 0; i < pNode.childNodes.length; i++) { - /* versions of IE<9 don't support indexOf on arrays so add trailing comma to the joined array and lookup value to stop substring matches */ - if ((vAllowedTags.join().toLowerCase() + ',').indexOf(pNode.childNodes[i].nodeName.toLowerCase() + ',') == -1) { - pNode.replaceChild(document.createTextNode(pNode.childNodes[i].outerHTML), pNode.childNodes[i]); - } - if (pNode.childNodes[i].hasChildNodes()) - exports.stripUnwanted(pNode.childNodes[i]); - } -}; -exports.delayedHide = function (pGanttChartObj, pTool, pTimer) { - var vDelay = pGanttChartObj.getTooltipDelay() || 1500; - if (pTool) - pTool.delayTimeout = setTimeout(function () { exports.hideToolTip(pGanttChartObj, pTool, pTimer); }, vDelay); -}; -exports.getZoomFactor = function () { - var vFactor = 1; - if (document.body.getBoundingClientRect) { - // rect is only in physical pixel size in IE before version 8 - var vRect = document.body.getBoundingClientRect(); - var vPhysicalW = vRect.right - vRect.left; - var vLogicalW = document.body.offsetWidth; - // the zoom level is always an integer percent value - vFactor = Math.round((vPhysicalW / vLogicalW) * 100) / 100; - } - return vFactor; -}; -exports.benchMark = function (pItem) { - var vEndTime = new Date().getTime(); - alert(pItem + ': Elapsed time: ' + ((vEndTime - this.vBenchTime) / 1000) + ' seconds.'); - this.vBenchTime = new Date().getTime(); -}; -exports.getScrollPositions = function () { - var vScrollLeft = window.pageXOffset; - var vScrollTop = window.pageYOffset; - if (!('pageXOffset' in window)) // Internet Explorer before version 9 - { - var vZoomFactor = exports.getZoomFactor(); - vScrollLeft = Math.round(document.documentElement.scrollLeft / vZoomFactor); - vScrollTop = Math.round(document.documentElement.scrollTop / vZoomFactor); - } - return { x: vScrollLeft, y: vScrollTop }; -}; -var scrollbarWidth = undefined; -exports.getScrollbarWidth = function () { - if (scrollbarWidth) - return scrollbarWidth; - var outer = document.createElement('div'); - outer.className = 'gscrollbar-calculation-container'; - document.body.appendChild(outer); - // Creating inner element and placing it in the container - var inner = document.createElement('div'); - outer.appendChild(inner); - // Calculating difference between container's full width and the child width - scrollbarWidth = (outer.offsetWidth - inner.offsetWidth); - // Removing temporary elements from the DOM - outer.parentNode.removeChild(outer); - return scrollbarWidth; -}; -exports.calculateCurrentDateOffset = function (curTaskStart, curTaskEnd) { - var tmpTaskStart = Date.UTC(curTaskStart.getFullYear(), curTaskStart.getMonth(), curTaskStart.getDate(), curTaskStart.getHours(), 0, 0); - var tmpTaskEnd = Date.UTC(curTaskEnd.getFullYear(), curTaskEnd.getMonth(), curTaskEnd.getDate(), curTaskEnd.getHours(), 0, 0); - return (tmpTaskEnd - tmpTaskStart); -}; -exports.getOffset = function (pStartDate, pEndDate, pColWidth, pFormat, pShowWeekends) { - var DAY_CELL_MARGIN_WIDTH = 3; // Cell margin for 'day' format - var WEEK_CELL_MARGIN_WIDTH = 3; // Cell margin for 'week' format - var MONTH_CELL_MARGIN_WIDTH = 3; // Cell margin for 'month' format - var QUARTER_CELL_MARGIN_WIDTH = 3; // Cell margin for 'quarter' format - var HOUR_CELL_MARGIN_WIDTH = 3; // Cell margin for 'hour' format - var vMonthDaysArr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); - var curTaskStart = new Date(pStartDate.getTime()); - var curTaskEnd = new Date(pEndDate.getTime()); - var vTaskRightPx = 0; - // Length of task in hours - var oneHour = 3600000; - var vTaskRight = exports.calculateCurrentDateOffset(curTaskStart, curTaskEnd) / oneHour; - var vPosTmpDate; - if (pFormat == 'day') { - if (!pShowWeekends) { - var start = curTaskStart; - var end = curTaskEnd; - var countWeekends = 0; - while (start < end) { - var day = start.getDay(); - if (day === 6 || day == 0) { - countWeekends++; - } - start = new Date(start.getTime() + 24 * oneHour); - } - vTaskRight -= countWeekends * 24; - } - vTaskRightPx = Math.ceil((vTaskRight / 24) * (pColWidth + DAY_CELL_MARGIN_WIDTH) - 1); - } - else if (pFormat == 'week') { - vTaskRightPx = Math.ceil((vTaskRight / (24 * 7)) * (pColWidth + WEEK_CELL_MARGIN_WIDTH) - 1); - } - else if (pFormat == 'month') { - var vMonthsDiff = (12 * (curTaskEnd.getFullYear() - curTaskStart.getFullYear())) + (curTaskEnd.getMonth() - curTaskStart.getMonth()); - vPosTmpDate = new Date(curTaskEnd.getTime()); - vPosTmpDate.setDate(curTaskStart.getDate()); - var vDaysCrctn = (curTaskEnd.getTime() - vPosTmpDate.getTime()) / (86400000); - vTaskRightPx = Math.ceil((vMonthsDiff * (pColWidth + MONTH_CELL_MARGIN_WIDTH)) + (vDaysCrctn * (pColWidth / vMonthDaysArr[curTaskEnd.getMonth()])) - 1); - } - else if (pFormat == 'quarter') { - var vMonthsDiff = (12 * (curTaskEnd.getFullYear() - curTaskStart.getFullYear())) + (curTaskEnd.getMonth() - curTaskStart.getMonth()); - vPosTmpDate = new Date(curTaskEnd.getTime()); - vPosTmpDate.setDate(curTaskStart.getDate()); - var vDaysCrctn = (curTaskEnd.getTime() - vPosTmpDate.getTime()) / (86400000); - vTaskRightPx = Math.ceil((vMonthsDiff * ((pColWidth + QUARTER_CELL_MARGIN_WIDTH) / 3)) + (vDaysCrctn * (pColWidth / 90)) - 1); - } - else if (pFormat == 'hour') { - // can't just calculate sum because of daylight savings changes - vPosTmpDate = new Date(curTaskEnd.getTime()); - vPosTmpDate.setMinutes(curTaskStart.getMinutes(), 0); - var vMinsCrctn = (curTaskEnd.getTime() - vPosTmpDate.getTime()) / (3600000); - vTaskRightPx = Math.ceil((vTaskRight * (pColWidth + HOUR_CELL_MARGIN_WIDTH)) + (vMinsCrctn * (pColWidth))); - } - return vTaskRightPx; -}; -exports.isIE = function () { - if (typeof document.all != 'undefined') { - if ('pageXOffset' in window) - return false; // give IE9 and above the benefit of the doubt! - else - return true; - } - else - return false; -}; -exports.hideToolTip = function (pGanttChartObj, pTool, pTimer) { - if (pGanttChartObj.getUseFade()) { - clearInterval(pTool.fadeInterval); - pTool.fadeInterval = setInterval(function () { exports.fadeToolTip(-1, pTool, 0); }, pTimer); - } - else { - pTool.style.opacity = 0; - pTool.style.filter = 'alpha(opacity=0)'; - pTool.style.visibility = 'hidden'; - pTool.vToolCont.setAttribute("showing", null); - } -}; -exports.fadeToolTip = function (pDirection, pTool, pMaxAlpha) { - var vIncrement = parseInt(pTool.getAttribute('fadeIncrement')); - var vAlpha = pTool.getAttribute('currentOpacity'); - var vCurAlpha = parseInt(vAlpha); - if ((vCurAlpha != pMaxAlpha && pDirection == 1) || (vCurAlpha != 0 && pDirection == -1)) { - var i = vIncrement; - if (pMaxAlpha - vCurAlpha < vIncrement && pDirection == 1) { - i = pMaxAlpha - vCurAlpha; - } - else if (vAlpha < vIncrement && pDirection == -1) { - i = vCurAlpha; - } - vAlpha = vCurAlpha + (i * pDirection); - pTool.style.opacity = vAlpha * 0.01; - pTool.style.filter = 'alpha(opacity=' + vAlpha + ')'; - pTool.setAttribute('currentOpacity', vAlpha); - } - else { - clearInterval(pTool.fadeInterval); - if (pDirection == -1) { - pTool.style.opacity = 0; - pTool.style.filter = 'alpha(opacity=0)'; - pTool.style.visibility = 'hidden'; - pTool.vToolCont.setAttribute("showing", null); - } - } -}; -exports.hashString = function (key) { - if (!key) { - key = 'default'; - } - key += ''; - var hash = 5381; - for (var i = 0; i < key.length; i++) { - if (key.charCodeAt) { - // tslint:disable-next-line:no-bitwise - hash = (hash << 5) + hash + key.charCodeAt(i); - } - // tslint:disable-next-line:no-bitwise - hash = hash & hash; - } - // tslint:disable-next-line:no-bitwise - return hash >>> 0; -}; -exports.hashKey = function (key) { - return this.hashString(key); -}; -exports.criticalPath = function (tasks) { - var path = {}; - // calculate duration - tasks.forEach(function (task) { - task.duration = new Date(task.pEnd).getTime() - new Date(task.pStart).getTime(); - }); - tasks.forEach(function (task) { - if (!path[task.pID]) { - path[task.pID] = task; - } - if (!path[task.pParent]) { - path[task.pParent] = { - childrens: [] - }; - } - if (!path[task.pID].childrens) { - path[task.pID].childrens = []; - } - path[task.pParent].childrens.push(task); - var max = path[task.pParent].childrens[0].duration; - path[task.pParent].childrens.forEach(function (t) { - if (t.duration > max) { - max = t.duration; - } - }); - path[task.pParent].duration = max; - }); - var finalNodes = { 0: path[0] }; - var node = path[0]; - var _loop_1 = function () { - if (node.childrens.length > 0) { - var found_1 = node.childrens[0]; - var max_1 = found_1.duration; - node.childrens.forEach(function (c) { - if (c.duration > max_1) { - found_1 = c; - max_1 = c.duration; - } - }); - finalNodes[found_1.pID] = found_1; - node = found_1; - } - else { - node = null; - } - }; - while (node) { - _loop_1(); - } -}; -function isParentElementOrSelf(child, parent) { - while (child) { - if (child === parent) - return true; - child = child.parentElement; - } -} -exports.isParentElementOrSelf = isParentElementOrSelf; -exports.updateFlyingObj = function (e, pGanttChartObj, pTimer) { - var documentElement = document.documentElement; - var bodyElement = document.getElementsByTagName('body')[0]; - var vCurTopBuf = 3; - var vCurLeftBuf = 5; - var vCurBotBuf = 3; - var vCurRightBuf = 15; - var vMouseX = (e) ? e.clientX : window.event.clientX; - var vMouseY = (e) ? e.clientY : window.event.clientY; - var vViewportX = (documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientWidth) || (bodyElement === null || bodyElement === void 0 ? void 0 : bodyElement.clientWidth); - var vViewportY = (documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientHeight) || (bodyElement === null || bodyElement === void 0 ? void 0 : bodyElement.clientHeight); - var vNewX = vMouseX; - var vNewY = vMouseY; - var screenX = screen.availWidth || window.innerWidth; - var screenY = screen.availHeight || window.innerHeight; - var vOldX = parseInt(pGanttChartObj.vTool.style.left); - var vOldY = parseInt(pGanttChartObj.vTool.style.top); - if (navigator.appName.toLowerCase() == 'microsoft internet explorer') { - // the clientX and clientY properties include the left and top borders of the client area - vMouseX -= documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientLeft; - vMouseY -= documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientTop; - var vZoomFactor = exports.getZoomFactor(); - if (vZoomFactor != 1) { // IE 7 at non-default zoom level - vMouseX = Math.round(vMouseX / vZoomFactor); - vMouseY = Math.round(vMouseY / vZoomFactor); - } - } - var vScrollPos = exports.getScrollPositions(); - /* Code for positioned right of the mouse by default*/ - /* - if (vMouseX+vCurRightBuf+pGanttChartObj.vTool.offsetWidth>vViewportX) - { - if (vMouseX-vCurLeftBuf-pGanttChartObj.vTool.offsetWidth<0) vNewX=vScrollPos.x; - else vNewX=vMouseX+vScrollPos.x-vCurLeftBuf-pGanttChartObj.vTool.offsetWidth; - } - else vNewX=vMouseX+vScrollPos.x+vCurRightBuf; - */ - /* Code for positioned left of the mouse by default */ - if (vMouseX - vCurLeftBuf - pGanttChartObj.vTool.offsetWidth < 0) { - if (vMouseX + vCurRightBuf + pGanttChartObj.vTool.offsetWidth > vViewportX) - vNewX = vScrollPos.x; - else - vNewX = vMouseX + vScrollPos.x + vCurRightBuf; - } - else - vNewX = vMouseX + vScrollPos.x - vCurLeftBuf - pGanttChartObj.vTool.offsetWidth; - /* Code for positioned below the mouse by default */ - if (vMouseY + vCurBotBuf + pGanttChartObj.vTool.offsetHeight > vViewportY) { - if (vMouseY - vCurTopBuf - pGanttChartObj.vTool.offsetHeight < 0) - vNewY = vScrollPos.y; - else - vNewY = vMouseY + vScrollPos.y - vCurTopBuf - pGanttChartObj.vTool.offsetHeight; - } - else - vNewY = vMouseY + vScrollPos.y + vCurBotBuf; - /* Code for positioned above the mouse by default */ - /* - if (vMouseY-vCurTopBuf-pGanttChartObj.vTool.offsetHeight<0) - { - if (vMouseY+vCurBotBuf+pGanttChartObj.vTool.offsetHeight>vViewportY) vNewY=vScrollPos.y; - else vNewY=vMouseY+vScrollPos.y+vCurBotBuf; - } - else vNewY=vMouseY+vScrollPos.y-vCurTopBuf-pGanttChartObj.vTool.offsetHeight; - */ - var outViewport = Math.abs(vOldX - vNewX) > screenX || Math.abs(vOldY - vNewY) > screenY; - if (pGanttChartObj.getUseMove() && !outViewport) { - clearInterval(pGanttChartObj.vTool.moveInterval); - pGanttChartObj.vTool.moveInterval = setInterval(function () { exports.moveToolTip(vNewX, vNewY, pGanttChartObj.vTool, pTimer); }, pTimer); - } - else { - pGanttChartObj.vTool.style.left = vNewX + 'px'; - pGanttChartObj.vTool.style.top = vNewY + 'px'; - } -}; -exports.moveToolTip = function (pNewX, pNewY, pTool, timer) { - var vSpeed = parseInt(pTool.getAttribute('moveSpeed')); - var vOldX = parseInt(pTool.style.left); - var vOldY = parseInt(pTool.style.top); - if (pTool.style.visibility != 'visible') { - pTool.style.left = pNewX + 'px'; - pTool.style.top = pNewY + 'px'; - clearInterval(pTool.moveInterval); - } - else { - if (pNewX != vOldX && pNewY != vOldY) { - vOldX += Math.ceil((pNewX - vOldX) / vSpeed); - vOldY += Math.ceil((pNewY - vOldY) / vSpeed); - pTool.style.left = vOldX + 'px'; - pTool.style.top = vOldY + 'px'; - } - else { - clearInterval(pTool.moveInterval); - } - } -}; -exports.makeRequest = function (pFile, json, vDebug) { - if (json === void 0) { json = true; } - if (vDebug === void 0) { vDebug = false; } - if (window.fetch) { - var f = fetch(pFile); - if (json) { - return f.then(function (res) { return res.json(); }); - } - else { - return f; - } - } - else { - return exports.makeRequestOldBrowsers(pFile, vDebug) - .then(function (xhttp) { - if (json) { - var jsonObj = JSON.parse(xhttp.response); - return jsonObj; - } - else { - var xmlDoc = xhttp.responseXML; - return xmlDoc; - } - }); - } -}; -exports.makeRequestOldBrowsers = function (pFile, vDebug) { - if (vDebug === void 0) { vDebug = false; } - return new Promise(function (resolve, reject) { - var bd; - if (vDebug) { - bd = new Date(); - console.info('before jsonparse', bd); - } - var xhttp; - if (window.XMLHttpRequest) { - xhttp = new XMLHttpRequest(); - } - else { // IE 5/6 - xhttp = new window.ActiveXObject('Microsoft.XMLHTTP'); - } - xhttp.open('GET', pFile, true); - xhttp.send(null); - xhttp.onload = function (e) { - if (xhttp.readyState === 4) { - if (xhttp.status === 200) { - // resolve(xhttp.responseText); - } - else { - console.error(xhttp.statusText); - } - if (vDebug) { - bd = new Date(); - console.info('before jsonparse', bd); - } - resolve(xhttp); - } - }; - xhttp.onerror = function (e) { - reject(xhttp.statusText); - }; - }); -}; -exports.calculateStartEndFromDepend = function (tasksList) { -}; -exports.printChart = function (width, height, css) { - if (css === void 0) { css = undefined; } - if (css === undefined) { - css = // Default injected CSS - "@media print {\n @page {\n size: " + width + "mm " + height + "mm;\n }\n /* set gantt container to the same width as the page */\n .gchartcontainer {\n width: " + width + "mm;\n }\n };"; - } - var $container = document.querySelector('.gchartcontainer'); - $container.insertAdjacentHTML('afterbegin', ""); - // Remove the print CSS when the print dialog is closed - window.addEventListener('afterprint', function () { - $container.removeChild($container.children[0]); - }, { 'once': true }); - // Trigger the print - window.print(); -}; - -},{}],14:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getXMLTask = exports.getXMLProject = exports.AddXMLTask = exports.getXMLNodeValue = exports.findXMLNode = exports.parseXMLString = exports.parseXML = void 0; -var task_1 = require("./task"); -var date_utils_1 = require("./utils/date_utils"); -var draw_utils_1 = require("./utils/draw_utils"); -var general_utils_1 = require("./utils/general_utils"); -exports.parseXML = function (pFile, pGanttVar) { - return general_utils_1.makeRequest(pFile, false, false) - .then(function (xmlDoc) { - exports.AddXMLTask(pGanttVar, xmlDoc); - }); -}; -exports.parseXMLString = function (pStr, pGanttVar) { - var xmlDoc; - if (typeof window.DOMParser != 'undefined') { - xmlDoc = (new window.DOMParser()).parseFromString(pStr, 'text/xml'); - } - else if (typeof window.ActiveXObject != 'undefined' && - new window.ActiveXObject('Microsoft.XMLDOM')) { - xmlDoc = new window.ActiveXObject('Microsoft.XMLDOM'); - xmlDoc.async = 'false'; - xmlDoc.loadXML(pStr); - } - exports.AddXMLTask(pGanttVar, xmlDoc); -}; -exports.findXMLNode = function (pRoot, pNodeName) { - var vRetValue; - try { - vRetValue = pRoot.getElementsByTagName(pNodeName); - } - catch (error) { - ; - } // do nothing, we'll return undefined - return vRetValue; -}; -// pType can be 1=numeric, 2=String, all other values just return raw data -exports.getXMLNodeValue = function (pRoot, pNodeName, pType, pDefault) { - var vRetValue; - try { - vRetValue = pRoot.getElementsByTagName(pNodeName)[0].childNodes[0].nodeValue; - } - catch (error) { - if (typeof pDefault != 'undefined') - vRetValue = pDefault; - } - if (typeof vRetValue != 'undefined' && vRetValue != null) { - if (pType == 1) - vRetValue *= 1; - else if (pType == 2) - vRetValue = vRetValue.toString(); - } - return vRetValue; -}; -exports.AddXMLTask = function (pGanttVar, pXmlDoc) { - var project = ''; - var Task; - var n = 0; - var m = 0; - var i = 0; - var j = 0; - var k = 0; - var maxPID = 0; - var ass = new Array(); - var assRes = new Array(); - var res = new Array(); - var pars = new Array(); - var projNode = exports.findXMLNode(pXmlDoc, 'Project'); - if (typeof projNode != 'undefined' && projNode.length > 0) { - project = projNode[0].getAttribute('xmlns'); - } - if (project == 'http://schemas.microsoft.com/project') { - pGanttVar.setDateInputFormat('yyyy-mm-dd'); - Task = exports.findXMLNode(pXmlDoc, 'Task'); - if (typeof Task == 'undefined') - n = 0; - else - n = Task.length; - var resources = exports.findXMLNode(pXmlDoc, 'Resource'); - if (typeof resources == 'undefined') { - n = 0; - m = 0; - } - else - m = resources.length; - for (i = 0; i < m; i++) { - var resname = exports.getXMLNodeValue(resources[i], 'Name', 2, ''); - var uid = exports.getXMLNodeValue(resources[i], 'UID', 1, -1); - if (resname.length > 0 && uid > 0) - res[uid] = resname; - } - var assignments = exports.findXMLNode(pXmlDoc, 'Assignment'); - if (typeof assignments == 'undefined') - j = 0; - else - j = assignments.length; - for (i = 0; i < j; i++) { - var uid = void 0; - var resUID = exports.getXMLNodeValue(assignments[i], 'ResourceUID', 1, -1); - uid = exports.getXMLNodeValue(assignments[i], 'TaskUID', 1, -1); - if (uid > 0) { - if (resUID > 0) - assRes[uid] = res[resUID]; - ass[uid] = assignments[i]; - } - } - // Store information about parent UIDs in an easily searchable form - for (i = 0; i < n; i++) { - var uid = void 0; - uid = exports.getXMLNodeValue(Task[i], 'UID', 1, 0); - var vOutlineNumber = void 0; - if (uid != 0) - vOutlineNumber = exports.getXMLNodeValue(Task[i], 'OutlineNumber', 2, '0'); - if (uid > 0) - pars[vOutlineNumber] = uid; - if (uid > maxPID) - maxPID = uid; - } - for (i = 0; i < n; i++) { - // optional parameters may not have an entry - // Task ID must NOT be zero otherwise it will be skipped - var pID = exports.getXMLNodeValue(Task[i], 'UID', 1, 0); - if (pID != 0) { - var pName = exports.getXMLNodeValue(Task[i], 'Name', 2, 'No Task Name'); - var pStart = exports.getXMLNodeValue(Task[i], 'Start', 2, ''); - var pEnd = exports.getXMLNodeValue(Task[i], 'Finish', 2, ''); - var pPlanStart = exports.getXMLNodeValue(Task[i], 'PlanStart', 2, ''); - var pPlanEnd = exports.getXMLNodeValue(Task[i], 'PlanFinish', 2, ''); - var pDuration = exports.getXMLNodeValue(Task[i], 'Duration', 2, ''); - var pLink = exports.getXMLNodeValue(Task[i], 'HyperlinkAddress', 2, ''); - var pMile = exports.getXMLNodeValue(Task[i], 'Milestone', 1, 0); - var pComp = exports.getXMLNodeValue(Task[i], 'PercentWorkComplete', 1, 0); - var pCost = exports.getXMLNodeValue(Task[i], 'Cost', 2, 0); - var pGroup = exports.getXMLNodeValue(Task[i], 'Summary', 1, 0); - var pParent = 0; - var vOutlineLevel = exports.getXMLNodeValue(Task[i], 'OutlineLevel', 1, 0); - var vOutlineNumber = void 0; - if (vOutlineLevel > 1) { - vOutlineNumber = exports.getXMLNodeValue(Task[i], 'OutlineNumber', 2, '0'); - pParent = pars[vOutlineNumber.substr(0, vOutlineNumber.lastIndexOf('.'))]; - } - var pNotes = void 0; - try { - pNotes = Task[i].getElementsByTagName('Notes')[0].childNodes[1].nodeValue; //this should be a CDATA node - } - catch (error) { - pNotes = ''; - } - var pRes = void 0; - if (typeof assRes[pID] != 'undefined') - pRes = assRes[pID]; - else - pRes = ''; - var predecessors = exports.findXMLNode(Task[i], 'PredecessorLink'); - if (typeof predecessors == 'undefined') - j = 0; - else - j = predecessors.length; - var pDepend = ''; - for (k = 0; k < j; k++) { - var depUID = exports.getXMLNodeValue(predecessors[k], 'PredecessorUID', 1, -1); - var depType = exports.getXMLNodeValue(predecessors[k], 'Type', 1, 1); - if (depUID > 0) { - if (pDepend.length > 0) - pDepend += ','; - switch (depType) { - case 0: - pDepend += depUID + 'FF'; - break; - case 1: - pDepend += depUID + 'FS'; - break; - case 2: - pDepend += depUID + 'SF'; - break; - case 3: - pDepend += depUID + 'SS'; - break; - default: - pDepend += depUID + 'FS'; - break; - } - } - } - var pOpen = 1; - var pCaption = ''; - var pClass = void 0; - if (pGroup > 0) - pClass = 'ggroupblack'; - else if (pMile > 0) - pClass = 'gmilestone'; - else - pClass = 'gtaskblue'; - // check for split tasks - var splits = exports.findXMLNode(ass[pID], 'TimephasedData'); - if (typeof splits == 'undefined') - j = 0; - else - j = splits.length; - var vSplitStart = pStart; - var vSplitEnd = pEnd; - var vSubCreated = false; - var vDepend = pDepend.replace(/,*[0-9]+[FS]F/g, ''); - for (k = 0; k < j; k++) { - var vDuration = exports.getXMLNodeValue(splits[k], 'Value', 2, '0'); - //remove all text - vDuration = '0' + vDuration.replace(/\D/g, ''); - vDuration *= 1; - if ((vDuration == 0 && !vSubCreated) || (k + 1 == j && pGroup == 2)) { - // No time booked in the given period (or last entry) - // Make sure the parent task is set as a combined group - pGroup = 2; - // Handle last loop - if (k + 1 == j) - vDepend = pDepend.replace(/,*[0-9]+[FS]S/g, ''); - // Now create a subtask - maxPID++; - vSplitEnd = exports.getXMLNodeValue(splits[k], (k + 1 == j) ? 'Finish' : 'Start', 2, ''); - pGanttVar.AddTaskItem(new task_1.TaskItem(maxPID, pName, vSplitStart, vSplitEnd, 'gtaskblue', pLink, pMile, pRes, pComp, 0, pID, pOpen, vDepend, pCaption, pNotes, pGanttVar, pCost, pPlanStart, pPlanEnd, pDuration)); - vSubCreated = true; - vDepend = ''; - } - else if (vDuration != 0 && vSubCreated) { - vSplitStart = exports.getXMLNodeValue(splits[k], 'Start', 2, ''); - vSubCreated = false; - } - } - if (vSubCreated) - pDepend = ''; - // Finally add the task - pGanttVar.AddTaskItem(new task_1.TaskItem(pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGanttVar, pCost, pPlanStart, pPlanEnd, pDuration, undefined, undefined, pClass)); - } - } - } - else { - Task = pXmlDoc.getElementsByTagName('task'); - n = Task.length; - for (i = 0; i < n; i++) { - // optional parameters may not have an entry - // Task ID must NOT be zero otherwise it will be skipped - var pID = exports.getXMLNodeValue(Task[i], 'pID', 1, 0); - if (pID != 0) { - var pName = exports.getXMLNodeValue(Task[i], 'pName', 2, 'No Task Name'); - var pStart = exports.getXMLNodeValue(Task[i], 'pStart', 2, ''); - var pEnd = exports.getXMLNodeValue(Task[i], 'pEnd', 2, ''); - var pPlanStart = exports.getXMLNodeValue(Task[i], 'pPlanStart', 2, ''); - var pPlanEnd = exports.getXMLNodeValue(Task[i], 'pPlanEnd', 2, ''); - var pDuration = exports.getXMLNodeValue(Task[i], 'pDuration', 2, ''); - var pLink = exports.getXMLNodeValue(Task[i], 'pLink', 2, ''); - var pMile = exports.getXMLNodeValue(Task[i], 'pMile', 1, 0); - var pComp = exports.getXMLNodeValue(Task[i], 'pComp', 1, 0); - var pCost = exports.getXMLNodeValue(Task[i], 'pCost', 2, 0); - var pGroup = exports.getXMLNodeValue(Task[i], 'pGroup', 1, 0); - var pParent = exports.getXMLNodeValue(Task[i], 'pParent', 1, 0); - var pRes = exports.getXMLNodeValue(Task[i], 'pRes', 2, ''); - var pOpen = exports.getXMLNodeValue(Task[i], 'pOpen', 1, 1); - var pDepend = exports.getXMLNodeValue(Task[i], 'pDepend', 2, ''); - var pCaption = exports.getXMLNodeValue(Task[i], 'pCaption', 2, ''); - var pNotes = exports.getXMLNodeValue(Task[i], 'pNotes', 2, ''); - var pClass = exports.getXMLNodeValue(Task[i], 'pClass', 2, ''); - var pPlanClass = exports.getXMLNodeValue(Task[i], 'pPlanClass', 2, ''); - if (typeof pClass == 'undefined') { - if (pGroup > 0) - pClass = 'ggroupblack'; - else if (pMile > 0) - pClass = 'gmilestone'; - else - pClass = 'gtaskblue'; - } - if (typeof pPlanClass == 'undefined') - pPlanClass = pClass; - // Finally add the task - pGanttVar.AddTaskItem(new task_1.TaskItem(pID, pName, pStart, pEnd, pClass, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGanttVar, pCost, pPlanStart, pPlanEnd, pDuration, undefined, undefined, pPlanClass)); - } - } - } -}; -exports.getXMLProject = function () { - var vProject = ''; - for (var i = 0; i < this.vTaskList.length; i++) { - vProject += this.getXMLTask(i, true); - } - vProject += ''; - return vProject; -}; -exports.getXMLTask = function (pID, pIdx) { - var i = 0; - var vIdx = -1; - var vTask = ''; - var vOutFrmt = date_utils_1.parseDateFormatStr(this.getDateInputFormat() + ' HH:MI:SS'); - if (pIdx === true) - vIdx = pID; - else { - for (i = 0; i < this.vTaskList.length; i++) { - if (this.vTaskList[i].getID() == pID) { - vIdx = i; - break; - } - } - } - if (vIdx >= 0 && vIdx < this.vTaskList.length) { - /* Simplest way to return case sensitive node names is to just build a string */ - vTask = ''; - vTask += '' + this.vTaskList[vIdx].getID() + ''; - vTask += '' + this.vTaskList[vIdx].getName() + ''; - vTask += '' + date_utils_1.formatDateStr(this.vTaskList[vIdx].getStart(), vOutFrmt, this.vLangs[this.vLang]) + ''; - vTask += '' + date_utils_1.formatDateStr(this.vTaskList[vIdx].getEnd(), vOutFrmt, this.vLangs[this.vLang]) + ''; - vTask += '' + date_utils_1.formatDateStr(this.vTaskList[vIdx].getPlanStart(), vOutFrmt, this.vLangs[this.vLang]) + ''; - vTask += '' + date_utils_1.formatDateStr(this.vTaskList[vIdx].getPlanEnd(), vOutFrmt, this.vLangs[this.vLang]) + ''; - vTask += '' + this.vTaskList[vIdx].getDuration() + ''; - vTask += '' + this.vTaskList[vIdx].getClass() + ''; - vTask += '' + this.vTaskList[vIdx].getLink() + ''; - vTask += '' + this.vTaskList[vIdx].getMile() + ''; - if (this.vTaskList[vIdx].getResource() != '\u00A0') - vTask += '' + this.vTaskList[vIdx].getResource() + ''; - vTask += '' + this.vTaskList[vIdx].getCompVal() + ''; - vTask += '' + this.vTaskList[vIdx].getCost() + ''; - vTask += '' + this.vTaskList[vIdx].getGroup() + ''; - vTask += '' + this.vTaskList[vIdx].getParent() + ''; - vTask += '' + this.vTaskList[vIdx].getOpen() + ''; - vTask += ''; - var vDepList = this.vTaskList[vIdx].getDepend(); - for (i = 0; i < vDepList.length; i++) { - if (i > 0) - vTask += ','; - if (vDepList[i] > 0) - vTask += vDepList[i] + this.vTaskList[vIdx].getDepType()[i]; - } - vTask += ''; - vTask += '' + this.vTaskList[vIdx].getCaption() + ''; - var vTmpFrag = document.createDocumentFragment(); - var vTmpDiv = draw_utils_1.newNode(vTmpFrag, 'div', null, null, this.vTaskList[vIdx].getNotes().innerHTML); - vTask += '' + vTmpDiv.innerHTML + ''; - vTask += '' + this.vTaskList[vIdx].getPlanClass() + ''; - vTask += ''; - } - return vTask; -}; - -},{"./task":10,"./utils/date_utils":11,"./utils/draw_utils":12,"./utils/general_utils":13}]},{},[1])(1) -}); diff --git a/e2e/app.e2e-spec.ts b/e2e/app.e2e-spec.ts deleted file mode 100644 index 86b60e2e..00000000 --- a/e2e/app.e2e-spec.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { NgPackagedPage } from './app.po'; - -import 'mocha'; -import { element, by } from 'protractor'; - -describe('ng-packaged App', () => { - let page: NgPackagedPage; - - beforeEach(() => { - page = new NgPackagedPage(); - return page.navigateTo(); - }); - - afterEach(() => { - page.navigateTo(); - }); - - it('it should change language from pt to en', () => { - element(by.css('.gtaskheading.gres')).getText() - .then(t=>{ - expect(t).toEqual('Resource'); - element(by.cssContainingText('option', 'pt')).click(); - return element(by.css('.gtaskheading.gres')).getText() - }) - .then(t=>{ - expect(t).toEqual('Responsável'); - }); - }); -}); - diff --git a/e2e/app.po.ts b/e2e/app.po.ts deleted file mode 100644 index 12508eb5..00000000 --- a/e2e/app.po.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { browser, by, element } from 'protractor'; - -export class NgPackagedPage { - navigateTo() { - return browser.get('/docs/demo.html'); - } - - getParagraphText() { - return element(by.css('app-root h1')).getText(); - } - - getById(id) { - return element(by.id(id)).getText(); - } - - getValueById(id) { - return element(by.id(id)).getAttribute('value'); - } - - sendKeys(id, val) { - element(by.id(id)).sendKeys(val); - } - - submit() { - element(by.id('submit')).click(); - } -} diff --git a/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json deleted file mode 100644 index e2a9a2fc..00000000 --- a/e2e/tsconfig.e2e.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "outDir": "../out-tsc/e2e", - "module": "commonjs", - "target": "es5", - "types": [ - "jasmine", - "node" - ] - } -} diff --git a/package.json b/package.json index e6a61b8d..cee7211c 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,20 @@ { "name": "jsgantt-improved", - "version": "2.8.10", + "version": "3.0.0", "description": "jsgantt-improved", - "main": "dist/index.js", + "exports": "./dist/index.js", + "type": "module", "scripts": { "start": "http-server", "build": "tsc", "watch:build": "onchange 'src/**' '*.*' -- npm run build", "watch": "onchange 'src/**' '*.ts' -- npm run dist", "watch:test": "onchange 'src/**/*.ts' '*.ts' 'e2e/**/*.ts' -- npm run test", - "test": "npm start & node node_modules/.bin/protractor protractor.conf.js", "test-unit": "mocha -r ts-node/register test/**.ts", - "webdriver": "./node_modules/protractor/bin/webdriver-manager update", "browserify": "browserify dist/index.js --standalone JSGantt > dist/jsgantt.js", "dist": "npm run build && npm run browserify && cp src/jsgantt.css dist/ && echo 'DIST finished'", "publishnpm": "npm run dist && npm publish", - "demo-full": "npm run dist && npm run start", - "e2e-prepare": "npm i -g webdriver-manager && webdriver-manager update && ./node_modules/protractor/node_modules/webdriver-manager/bin/webdriver-manager update" + "demo-full": "npm run dist && npm run start" }, "repository": { "type": "git", @@ -29,21 +27,18 @@ }, "homepage": "https://jsganttimproved.github.io/jsgantt-improved/docs/", "dependencies": { - "@types/node": "^12.0.10", - "webdriver-manager": "^13.0.0" + "@types/node": "^22.0.0" }, "devDependencies": { - "@types/chai": "^4.1.5", - "@types/jasmine": "^3.3.0", - "chai": "^4.1.2", - "http-server": "^0.11.1", - "jasmine": "^3.3.0", - "jasmine-core": "^3.3.0", - "jasmine-spec-reporter": "^4.2.1", - "mocha": "^5.2.0", - "protractor": "^5.4.1", - "selenium-webdriver": "^4.0.0-alpha.1", - "ts-node": "^7.0.1", - "typescript": "^3.0.3" + "@types/chai": "^4.3.17", + "@types/jasmine": "^5.1.4", + "chai": "^5.1.1", + "http-server": "^14.1.1", + "jasmine": "^5.2.0", + "jasmine-core": "^5.2.0", + "jasmine-spec-reporter": "^7.0.0", + "mocha": "10.7.0", + "ts-node": "^10.9.2", + "typescript": "^5.5.4" } } diff --git a/protractor.conf.js b/protractor.conf.js index cbf801d0..edd2e7a1 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -1,8 +1,7 @@ // Protractor configuration file, see link for more information // https://github.com/angular/protractor/blob/master/lib/config.ts -const { SpecReporter } = require('jasmine-spec-reporter'); - +import { SpecReporter } from 'jasmine-spec-reporter'; exports.config = { allScriptsTimeout: 11000, specs: [ diff --git a/src/events.ts b/src/events.ts index d955218b..a36829c3 100644 --- a/src/events.ts +++ b/src/events.ts @@ -99,14 +99,14 @@ export const show = function (pID, pTop, ganttObj) { }; -export const mouseOver = function (pObj1, pObj2) { +export let mouseOver = function (pObj1, pObj2) { if (this.getUseRowHlt()) { pObj1.className += ' gitemhighlight'; pObj2.className += ' gitemhighlight'; } }; -export const mouseOut = function (pObj1, pObj2) { +export let mouseOut = function (pObj1, pObj2) { if (this.getUseRowHlt()) { pObj1.className = pObj1.className.replace(/(?:^|\s)gitemhighlight(?!\S)/g, ''); pObj2.className = pObj2.className.replace(/(?:^|\s)gitemhighlight(?!\S)/g, ''); diff --git a/src/options.ts b/src/options.ts index b04d8592..1cfef93d 100644 --- a/src/options.ts +++ b/src/options.ts @@ -1,7 +1,7 @@ import { parseDateFormatStr } from "./utils/date_utils"; import { COLUMN_ORDER } from "./draw_columns"; -export const includeGetSet = function () { +export let includeGetSet = function () { /** * SETTERS */ @@ -208,4 +208,4 @@ export const includeGetSet = function () { this.getResources = function () { return this.vResources; }; this.getAdditionalHeaders = function () { return this.vAdditionalHeaders; }; this.getColumnOrder = function () { return this.vColumnOrder || COLUMN_ORDER; }; -} \ No newline at end of file +} diff --git a/src/task.ts b/src/task.ts index c787628c..b7536f0c 100644 --- a/src/task.ts +++ b/src/task.ts @@ -413,7 +413,7 @@ export const TaskItem = function (pID, pName, pStart, pEnd, pClass, pLink, pMile * If function(task): Promise) - async per task template. Tooltip will show 'Loading...' if promise is not yet complete. * Otherwise returned template will be handled in the same manner as in other cases. */ -export const createTaskInfo = function (pTask, templateStrOrFn = null) { +export let createTaskInfo = function (pTask, templateStrOrFn = null) { let vTmpDiv; let vTaskInfoBox = document.createDocumentFragment(); let vTaskInfo = newNode(vTaskInfoBox, 'div', null, 'gTaskInfo'); @@ -501,7 +501,7 @@ export const createTaskInfo = function (pTask, templateStrOrFn = null) { }; -export const AddTaskItem = function (value) { +export let AddTaskItem = function (value) { let vExists = false; for (let i = 0; i < this.vTaskList.length; i++) { if (this.vTaskList[i].getID() == value.getID()) { @@ -515,14 +515,14 @@ export const AddTaskItem = function (value) { } }; -export const AddTaskItemObject = function (object) { +export let AddTaskItemObject = function (object) { if (!object.pGantt) { object.pGantt = this; } return this.AddTaskItem(TaskItemObject(object)); } -export const RemoveTaskItem = function (pID) { +export let RemoveTaskItem = function (pID) { // simply mark the task for removal at this point - actually remove it next time we re-draw the chart for (let i = 0; i < this.vTaskList.length; i++) { if (this.vTaskList[i].getID() == pID) this.vTaskList[i].setToDelete(true); @@ -531,7 +531,7 @@ export const RemoveTaskItem = function (pID) { this.vProcessNeeded = true; }; -export const ClearTasks = function () { +export let ClearTasks = function () { this.vTaskList.map(task => this.RemoveTaskItem(task.getID())); this.vProcessNeeded = true; }; diff --git a/src/utils/draw_utils.ts b/src/utils/draw_utils.ts index fc9f7942..a0059ced 100644 --- a/src/utils/draw_utils.ts +++ b/src/utils/draw_utils.ts @@ -67,7 +67,7 @@ export const getArrayLocationByID = function (pId) { return -1; }; -export const CalcTaskXY = function () { +export let CalcTaskXY = function () { let vID; let vList = this.getList(); let vBarDiv; diff --git a/src/xml.ts b/src/xml.ts index 2ed46bd2..6e92209a 100644 --- a/src/xml.ts +++ b/src/xml.ts @@ -269,7 +269,7 @@ export const AddXMLTask = function (pGanttVar, pXmlDoc) { }; -export const getXMLProject = function () { +export let getXMLProject = function () { let vProject = ''; for (let i = 0; i < this.vTaskList.length; i++) { vProject += this.getXMLTask(i, true); @@ -278,7 +278,7 @@ export const getXMLProject = function () { return vProject; }; -export const getXMLTask = function (pID, pIdx) { +export let getXMLTask = function (pID, pIdx) { let i = 0; let vIdx = -1; let vTask = ''; diff --git a/test/index.ts b/test/index.ts deleted file mode 100644 index 66e0ac08..00000000 --- a/test/index.ts +++ /dev/null @@ -1,16 +0,0 @@ - -import * as JSGantt from '../index'; -import { expect } from 'chai'; -import { browser, by, element } from 'protractor'; - -const dv = browser.driver; - -describe('Browser test', () => { - it('JSGantt exists', () => { - expect(JSGantt).to.exist; - }); - - it('Driver exists', () => { - expect(dv).to.exist; - }); -});