| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064 |
- (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<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var jsGantt = require("./src/jsgantt");
- module.exports = jsGantt.JSGantt;
- exports.JSGantt = jsGantt.JSGantt;
- },{"./src/jsgantt":6}],2:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var lang = require("./lang");
- var events_1 = require("./events");
- var general_utils_1 = require("./utils/general_utils");
- var task_1 = require("./task");
- var xml_1 = require("./xml");
- var draw_columns_1 = require("./draw_columns");
- var draw_utils_1 = require("./utils/draw_utils");
- var draw_dependencies_1 = require("./draw_dependencies");
- var options_1 = require("./options");
- var date_utils_1 = require("./utils/date_utils");
- /**
- * function that loads the main gantt chart properties and functions
- * @param pDiv (required) this is a div object created in HTML
- * @param pFormat (required) - used to indicate whether chart should be drawn in "hour", "day", "week", "month", or "quarter" format
- */
- exports.GanttChart = function (pDiv, pFormat) {
- this.vDiv = pDiv;
- this.vFormat = pFormat;
- this.vDivId = null;
- this.vUseFade = 1;
- this.vUseMove = 1;
- this.vUseRowHlt = 1;
- this.vUseToolTip = 1;
- this.vUseSort = 1;
- this.vUseSingleCell = 25000;
- this.vShowRes = 1;
- this.vShowDur = 1;
- this.vShowComp = 1;
- this.vShowStartDate = 1;
- this.vShowEndDate = 1;
- this.vShowPlanStartDate = 0;
- this.vShowPlanEndDate = 0;
- this.vShowCost = 0;
- this.vShowAddEntries = 0;
- this.vShowEndWeekDate = 1;
- this.vShowWeekends = 1;
- this.vShowTaskInfoRes = 1;
- this.vShowTaskInfoDur = 1;
- this.vShowTaskInfoComp = 1;
- this.vShowTaskInfoStartDate = 1;
- this.vShowTaskInfoEndDate = 1;
- this.vShowTaskInfoNotes = 1;
- this.vShowTaskInfoLink = 0;
- this.vShowDeps = 1;
- this.vTotalHeight = undefined;
- this.vWorkingDays = {
- 0: true,
- 1: true,
- 2: true,
- 3: true,
- 4: true,
- 5: true,
- 6: true
- };
- this.vEventClickCollapse = null;
- this.vEventClickRow = null;
- this.vEvents = {
- taskname: null,
- res: null,
- dur: null,
- comp: null,
- startdate: null,
- enddate: null,
- planstartdate: null,
- planenddate: null,
- cost: null,
- beforeDraw: null,
- afterDraw: null,
- beforeLineDraw: null,
- afterLineDraw: null,
- onLineDraw: null,
- onLineContainerHover: null
- };
- this.vEventsChange = {
- taskname: null,
- res: null,
- dur: null,
- comp: null,
- startdate: null,
- enddate: null,
- planstartdate: null,
- planenddate: null,
- cost: null,
- line: null
- };
- this.vResources = null;
- this.vAdditionalHeaders = {};
- this.vColumnOrder = draw_columns_1.COLUMN_ORDER;
- this.vEditable = false;
- this.vDebug = false;
- this.vShowSelector = new Array('top');
- this.vDateInputFormat = 'yyyy-mm-dd';
- this.vDateTaskTableDisplayFormat = date_utils_1.parseDateFormatStr('dd/mm/yyyy');
- this.vDateTaskDisplayFormat = date_utils_1.parseDateFormatStr('dd month yyyy');
- this.vHourMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('day dd month yyyy');
- this.vHourMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('HH');
- this.vDayMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('dd/mm/yyyy');
- this.vDayMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('dd');
- this.vWeekMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('yyyy');
- this.vWeekMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('dd/mm');
- this.vMonthMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('yyyy');
- this.vMonthMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('mon');
- this.vQuarterMajorDateDisplayFormat = date_utils_1.parseDateFormatStr('yyyy');
- this.vQuarterMinorDateDisplayFormat = date_utils_1.parseDateFormatStr('qq');
- this.vUseFullYear = date_utils_1.parseDateFormatStr('dd/mm/yyyy');
- this.vCaptionType;
- this.vDepId = 1;
- this.vTaskList = new Array();
- this.vFormatArr = new Array('hour', 'day', 'week', 'month', 'quarter');
- this.vMonthDaysArr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
- this.vProcessNeeded = true;
- this.vMinGpLen = 8;
- this.vScrollTo = '';
- this.vHourColWidth = 18;
- this.vDayColWidth = 18;
- this.vWeekColWidth = 36;
- this.vMonthColWidth = 36;
- this.vQuarterColWidth = 18;
- this.vRowHeight = 20;
- this.vTodayPx = -1;
- this.vLangs = lang;
- this.vLang = navigator.language && navigator.language in lang ? navigator.language : 'en';
- this.vChartBody = null;
- this.vChartHead = null;
- this.vListBody = null;
- this.vChartTable = null;
- this.vLines = null;
- this.vTimer = 20;
- this.vTooltipDelay = 1500;
- this.vTooltipTemplate = null;
- this.vMinDate = null;
- this.vMaxDate = null;
- this.includeGetSet = options_1.includeGetSet.bind(this);
- this.includeGetSet();
- this.mouseOver = events_1.mouseOver;
- this.mouseOut = events_1.mouseOut;
- this.addListener = events_1.addListener.bind(this);
- this.removeListener = events_1.removeListener.bind(this);
- this.createTaskInfo = task_1.createTaskInfo;
- this.AddTaskItem = task_1.AddTaskItem;
- this.AddTaskItemObject = task_1.AddTaskItemObject;
- this.RemoveTaskItem = task_1.RemoveTaskItem;
- this.ClearTasks = task_1.ClearTasks;
- this.getXMLProject = xml_1.getXMLProject;
- this.getXMLTask = xml_1.getXMLTask;
- this.CalcTaskXY = draw_utils_1.CalcTaskXY.bind(this);
- // sLine: Draw a straight line (colored one-pixel wide div)
- this.sLine = draw_utils_1.sLine.bind(this);
- this.drawDependency = draw_dependencies_1.drawDependency.bind(this);
- this.DrawDependencies = draw_dependencies_1.DrawDependencies.bind(this);
- this.getArrayLocationByID = draw_utils_1.getArrayLocationByID.bind(this);
- this.drawSelector = draw_utils_1.drawSelector.bind(this);
- this.clearDependencies = function () {
- var parent = this.getLines();
- if (this.vEventsChange.line &&
- typeof this.vEventsChange.line === 'function') {
- this.removeListener('click', this.vEventsChange.line, parent);
- this.addListener('click', this.vEventsChange.line, parent);
- }
- while (parent.hasChildNodes())
- parent.removeChild(parent.firstChild);
- this.vDepId = 1;
- };
- this.drawListHead = function (vLeftHeader) {
- var _this = this;
- var vTmpDiv = draw_utils_1.newNode(vLeftHeader, 'div', this.vDivId + 'glisthead', 'glistlbl gcontainercol');
- var gListLbl = vTmpDiv;
- this.setListBody(vTmpDiv);
- var vTmpTab = draw_utils_1.newNode(vTmpDiv, 'table', null, 'gtasktableh');
- var vTmpTBody = draw_utils_1.newNode(vTmpTab, 'tbody');
- var vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr');
- draw_utils_1.newNode(vTmpRow, 'td', null, 'gtasklist', '\u00A0');
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gspanning gtaskname', null, null, null, null, this.getColumnOrder().length + 1);
- vTmpCell.appendChild(this.drawSelector('top'));
- vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr');
- draw_utils_1.newNode(vTmpRow, 'td', null, 'gtasklist', '\u00A0');
- draw_utils_1.newNode(vTmpRow, 'td', null, 'gtaskname', '\u00A0');
- this.getColumnOrder().forEach(function (column) {
- if (_this[column] == 1 || column === 'vAdditionalHeaders') {
- draw_columns_1.draw_task_headings(column, vTmpRow, _this.vLangs, _this.vLang, _this.vAdditionalHeaders, _this.vEvents);
- }
- });
- return gListLbl;
- };
- this.drawListBody = function (vLeftHeader) {
- var _this = this;
- var vTmpContentTabOuterWrapper = draw_utils_1.newNode(vLeftHeader, 'div', null, 'gtasktableouterwrapper');
- var vTmpContentTabWrapper = draw_utils_1.newNode(vTmpContentTabOuterWrapper, 'div', null, 'gtasktablewrapper');
- vTmpContentTabWrapper.style.width = "calc(100% + " + general_utils_1.getScrollbarWidth() + "px)";
- var vTmpContentTab = draw_utils_1.newNode(vTmpContentTabWrapper, 'table', null, 'gtasktable');
- var vTmpContentTBody = draw_utils_1.newNode(vTmpContentTab, 'tbody');
- var vNumRows = 0;
- var _loop_1 = function (i) {
- var vBGColor = void 0;
- if (this_1.vTaskList[i].getGroup() == 1)
- vBGColor = 'ggroupitem';
- else
- vBGColor = 'glineitem';
- var vID = this_1.vTaskList[i].getID();
- var vTmpRow_1, vTmpCell_1 = void 0;
- if ((!(this_1.vTaskList[i].getParItem() && this_1.vTaskList[i].getParItem().getGroup() == 2)) || this_1.vTaskList[i].getGroup() == 2) {
- if (this_1.vTaskList[i].getVisible() == 0)
- vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody, 'tr', this_1.vDivId + 'child_' + vID, 'gname ' + vBGColor, null, null, null, 'none');
- else
- vTmpRow_1 = draw_utils_1.newNode(vTmpContentTBody, 'tr', this_1.vDivId + 'child_' + vID, 'gname ' + vBGColor);
- this_1.vTaskList[i].setListChildRow(vTmpRow_1);
- draw_utils_1.newNode(vTmpRow_1, 'td', null, 'gtasklist', '\u00A0');
- var editableClass = this_1.vEditable ? 'gtaskname gtaskeditable' : 'gtaskname';
- vTmpCell_1 = draw_utils_1.newNode(vTmpRow_1, 'td', null, editableClass);
- var vCellContents = '';
- for (var j = 1; j < this_1.vTaskList[i].getLevel(); j++) {
- vCellContents += '\u00A0\u00A0\u00A0\u00A0';
- }
- var task_2 = this_1.vTaskList[i];
- var vEventClickRow_1 = this_1.vEventClickRow;
- var vEventClickCollapse_1 = this_1.vEventClickCollapse;
- events_1.addListener('click', function (e) {
- if (e.target.classList.contains('gfoldercollapse') === false) {
- if (vEventClickRow_1 && typeof vEventClickRow_1 === "function") {
- vEventClickRow_1(task_2);
- }
- }
- else {
- if (vEventClickCollapse_1 && typeof vEventClickCollapse_1 === "function") {
- vEventClickCollapse_1(task_2);
- }
- }
- }, vTmpRow_1);
- if (this_1.vTaskList[i].getGroup() == 1) {
- var vTmpDiv = draw_utils_1.newNode(vTmpCell_1, 'div', null, null, vCellContents);
- var vTmpSpan = draw_utils_1.newNode(vTmpDiv, 'span', this_1.vDivId + 'group_' + vID, 'gfoldercollapse', (this_1.vTaskList[i].getOpen() == 1) ? '-' : '+');
- this_1.vTaskList[i].setGroupSpan(vTmpSpan);
- events_1.addFolderListeners(this_1, vTmpSpan, vID);
- var divTask = document.createElement('span');
- divTask.innerHTML = '\u00A0' + this_1.vTaskList[i].getName();
- vTmpDiv.appendChild(divTask);
- // const text = makeInput(this.vTaskList[i].getName(), this.vEditable, 'text');
- // vTmpDiv.appendChild(document.createNode(text));
- var callback = function (task, e) { return task.setName(e.target.value); };
- events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i, 'taskname', this_1.Draw.bind(this_1));
- events_1.addListenerClickCell(vTmpDiv, this_1.vEvents, this_1.vTaskList[i], 'taskname');
- }
- else {
- vCellContents += '\u00A0\u00A0\u00A0\u00A0';
- var text = draw_utils_1.makeInput(this_1.vTaskList[i].getName(), this_1.vEditable, 'text');
- var vTmpDiv = draw_utils_1.newNode(vTmpCell_1, 'div', null, null, vCellContents + text);
- var callback = function (task, e) { return task.setName(e.target.value); };
- events_1.addListenerInputCell(vTmpCell_1, this_1.vEventsChange, callback, this_1.vTaskList, i, 'taskname', this_1.Draw.bind(this_1));
- events_1.addListenerClickCell(vTmpCell_1, this_1.vEvents, this_1.vTaskList[i], 'taskname');
- }
- this_1.getColumnOrder().forEach(function (column) {
- if (_this[column] == 1 || column === 'vAdditionalHeaders') {
- draw_columns_1.draw_header(column, i, vTmpRow_1, _this.vTaskList, _this.vEditable, _this.vEventsChange, _this.vEvents, _this.vDateTaskTableDisplayFormat, _this.vAdditionalHeaders, _this.vFormat, _this.vLangs, _this.vLang, _this.vResources, _this.Draw.bind(_this));
- }
- });
- vNumRows++;
- }
- };
- var this_1 = this;
- for (var i = 0; i < this.vTaskList.length; i++) {
- _loop_1(i);
- }
- // Render no daa in the chart
- if (this.vTaskList.length == 0) {
- var totalColumns = this.getColumnOrder()
- .filter(function (column) { return _this[column] == 1 || column === 'vAdditionalHeaders'; })
- .length;
- var vTmpRow_2 = draw_utils_1.newNode(vTmpContentTBody, 'tr', this.vDivId + 'child_', 'gname ');
- // this.vTaskList[i].setListChildRow(vTmpRow);
- var vTmpCell_2 = draw_utils_1.newNode(vTmpRow_2, 'td', null, 'gtasknolist', '', null, null, null, totalColumns);
- var vOutput = document.createDocumentFragment();
- draw_utils_1.newNode(vOutput, 'div', null, 'gtasknolist-label', this.vLangs[this.vLang]['nodata'] + '.');
- vTmpCell_2.appendChild(vOutput);
- }
- // DRAW the date format selector at bottom left.
- var vTmpRow = draw_utils_1.newNode(vTmpContentTBody, 'tr');
- draw_utils_1.newNode(vTmpRow, 'td', null, 'gtasklist', '\u00A0');
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, 'gspanning gtaskname');
- vTmpCell.appendChild(this.drawSelector('bottom'));
- this.getColumnOrder().forEach(function (column) {
- if (_this[column] == 1 || column === 'vAdditionalHeaders') {
- draw_columns_1.draw_bottom(column, vTmpRow, _this.vAdditionalHeaders);
- }
- });
- // Add some white space so the vertical scroll distance should always be greater
- // than for the right pane (keep to a minimum as it is seen in unconstrained height designs)
- // newNode(vTmpDiv2, 'br');
- // newNode(vTmpDiv2, 'br');
- return {
- vNumRows: vNumRows,
- vTmpContentTabWrapper: vTmpContentTabWrapper
- };
- };
- /**
- *
- * DRAW CHAR HEAD
- *
- */
- this.drawChartHead = function (vMinDate, vMaxDate, vColWidth, vNumRows) {
- var vRightHeader = document.createDocumentFragment();
- var vTmpDiv = draw_utils_1.newNode(vRightHeader, 'div', this.vDivId + 'gcharthead', 'gchartlbl gcontainercol');
- var gChartLbl = vTmpDiv;
- this.setChartHead(vTmpDiv);
- var vTmpTab = draw_utils_1.newNode(vTmpDiv, 'table', this.vDivId + 'chartTableh', 'gcharttableh');
- var vTmpTBody = draw_utils_1.newNode(vTmpTab, 'tbody');
- var vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr');
- var vTmpDate = new Date();
- vTmpDate.setFullYear(vMinDate.getFullYear(), vMinDate.getMonth(), vMinDate.getDate());
- if (this.vFormat == 'hour')
- vTmpDate.setHours(vMinDate.getHours());
- else
- vTmpDate.setHours(0);
- vTmpDate.setMinutes(0);
- vTmpDate.setSeconds(0);
- vTmpDate.setMilliseconds(0);
- var vColSpan = 1;
- // Major Date Header
- while (vTmpDate.getTime() <= vMaxDate.getTime()) {
- var vHeaderCellClass = 'gmajorheading';
- var vCellContents = '';
- if (this.vFormat == 'day') {
- var colspan = 7;
- if (!this.vShowWeekends) {
- vHeaderCellClass += ' headweekends';
- colspan = 5;
- }
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, colspan);
- vCellContents += date_utils_1.formatDateStr(vTmpDate, this.vDayMajorDateDisplayFormat, this.vLangs[this.vLang]);
- vTmpDate.setDate(vTmpDate.getDate() + 6);
- if (this.vShowEndWeekDate == 1)
- vCellContents += ' - ' + date_utils_1.formatDateStr(vTmpDate, this.vDayMajorDateDisplayFormat, this.vLangs[this.vLang]);
- draw_utils_1.newNode(vTmpCell, 'div', null, null, vCellContents, vColWidth * colspan);
- vTmpDate.setDate(vTmpDate.getDate() + 1);
- }
- else if (this.vFormat == 'week') {
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, vColWidth);
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vWeekMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
- vTmpDate.setDate(vTmpDate.getDate() + 7);
- }
- else if (this.vFormat == 'month') {
- vColSpan = (12 - vTmpDate.getMonth());
- if (vTmpDate.getFullYear() == vMaxDate.getFullYear())
- vColSpan -= (11 - vMaxDate.getMonth());
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, vColSpan);
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vMonthMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
- vTmpDate.setFullYear(vTmpDate.getFullYear() + 1, 0, 1);
- }
- else if (this.vFormat == 'quarter') {
- vColSpan = (4 - Math.floor(vTmpDate.getMonth() / 3));
- if (vTmpDate.getFullYear() == vMaxDate.getFullYear())
- vColSpan -= (3 - Math.floor(vMaxDate.getMonth() / 3));
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, vColSpan);
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vQuarterMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
- vTmpDate.setFullYear(vTmpDate.getFullYear() + 1, 0, 1);
- }
- else if (this.vFormat == 'hour') {
- vColSpan = (24 - vTmpDate.getHours());
- if (vTmpDate.getFullYear() == vMaxDate.getFullYear() &&
- vTmpDate.getMonth() == vMaxDate.getMonth() &&
- vTmpDate.getDate() == vMaxDate.getDate())
- vColSpan -= (23 - vMaxDate.getHours());
- var vTmpCell = draw_utils_1.newNode(vTmpRow, 'td', null, vHeaderCellClass, null, null, null, null, vColSpan);
- draw_utils_1.newNode(vTmpCell, 'div', null, null, date_utils_1.formatDateStr(vTmpDate, this.vHourMajorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth * vColSpan);
- vTmpDate.setHours(0);
- vTmpDate.setDate(vTmpDate.getDate() + 1);
- }
- }
- vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', null, 'footerdays');
- // Minor Date header and Cell Rows
- vTmpDate.setFullYear(vMinDate.getFullYear(), vMinDate.getMonth(), vMinDate.getDate()); // , vMinDate.getHours()
- if (this.vFormat == 'hour')
- vTmpDate.setHours(vMinDate.getHours());
- var vNumCols = 0;
- while (vTmpDate.getTime() <= vMaxDate.getTime()) {
- var vMinorHeaderCellClass = 'gminorheading';
- if (this.vFormat == 'day') {
- if (vTmpDate.getDay() % 6 == 0) {
- if (!this.vShowWeekends) {
- vTmpDate.setDate(vTmpDate.getDate() + 1);
- continue;
- }
- vMinorHeaderCellClass += 'wkend';
- }
- 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.vDayMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
- vNumCols++;
- }
- vTmpDate.setDate(vTmpDate.getDate() + 1);
- }
- else if (this.vFormat == 'week') {
- 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.vWeekMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
- vNumCols++;
- }
- vTmpDate.setDate(vTmpDate.getDate() + 7);
- }
- else if (this.vFormat == 'month') {
- 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.vMonthMinorDateDisplayFormat, this.vLangs[this.vLang]), vColWidth);
- vNumCols++;
- }
- vTmpDate.setDate(vTmpDate.getDate() + 1);
- while (vTmpDate.getDate() > 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
- vTmpRow = draw_utils_1.newNode(vTmpTBody, 'tr', this.vDivId + 'childrow_' + vID, 'glineitem 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].getClass() + ' 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 });
- 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 = "<button>+</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.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 });
- 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 });
- 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) {
- 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) : new P(function (resolve) { resolve(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 });
- 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 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 '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));
- //}
- }
- };
- },{"./task":10,"./utils/general_utils":13}],8:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- 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 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 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;
- /**
- * 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 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 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 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': 'No tasks found',
- '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 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 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 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 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 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 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;
- },{}],9:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- 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.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 });
- 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);
- };
- 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) {
- 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; }
- 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 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.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 / 30);
- vDuration = tmpPer + ' ' + ((tmpPer != 1) ? pLang['mths'] : pLang['mth']);
- break;
- case 'quarter':
- tmpPer = Math.round(hours / 24 / 7 / 30 / 3);
- 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.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,
- pDataObjec: vDataObject
- };
- };
- };
- /**
- * @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<string>) - 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]['duration'] + ': ');
- 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]['resource'] + ': ');
- 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 });
- /**
- * 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 });
- 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 "<input class=\"gantt-inputtable\" type=\"date\" value=\"" + value + "\">";
- 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 "<select>" + choices.map(function (c) { return "<option value=\"" + c.id + "\" " + (value == c.id ? 'selected' : '') + " >" + c.name + "</option>"; }).join('') + "</select>";
- }
- else {
- return "<input class=\"gantt-inputtable\" type=\"text\" value=\"" + (value ? value : '') + "\">";
- }
- case 'cost':
- return "<input class=\"gantt-inputtable\" type=\"number\" max=\"100\" min=\"0\" value=\"" + (value ? value : '') + "\">";
- default:
- return "<input class=\"gantt-inputtable\" value=\"" + (value ? value : '') + "\">";
- }
- }
- 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.internalProperties = ['pID', 'pName', 'pStart', 'pEnd', 'pClass', 'pLink', 'pMile', 'pRes', 'pComp', 'pGroup', 'pParent',
- 'pOpen', 'pDepend', 'pCaption', 'pNotes', 'pGantt', 'pCost', 'pPlanStart', 'pPlanEnd'];
- exports.internalPropertiesLang = {
- 'pID': 'id',
- 'pName': 'name',
- 'pStart': 'startdate',
- 'pEnd': 'enddate',
- 'pLink': 'link',
- 'pMile': 'mile',
- 'pRes': 'resource',
- 'pComp': 'comp',
- 'pGroup': 'group',
- 'pParent': 'parent',
- 'pOpen': 'open',
- 'pDepend': 'depend',
- 'pCaption': 'caption',
- 'pNotes': 'notes',
- 'pCost': 'cost',
- 'pPlanStart': 'planstartdate',
- 'pPlanEnd': 'planenddate'
- };
- 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 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 = document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth;
- var vViewportY = document.documentElement.clientHeight || document.getElementsByTagName('body')[0].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 -= document.documentElement.clientLeft;
- vMouseY -= document.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) {
- };
- },{}],14:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- 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));
- }
- }
- }
- 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, '');
- if (typeof pClass == 'undefined') {
- if (pGroup > 0)
- pClass = 'ggroupblack';
- else if (pMile > 0)
- pClass = 'gmilestone';
- else
- pClass = 'gtaskblue';
- }
- // 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));
- }
- }
- }
- };
- exports.getXMLProject = function () {
- var vProject = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">';
- for (var i = 0; i < this.vTaskList.length; i++) {
- vProject += this.getXMLTask(i, true);
- }
- vProject += '</project>';
- 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 = '<task>';
- vTask += '<pID>' + this.vTaskList[vIdx].getID() + '</pID>';
- vTask += '<pName>' + this.vTaskList[vIdx].getName() + '</pName>';
- vTask += '<pStart>' + date_utils_1.formatDateStr(this.vTaskList[vIdx].getStart(), vOutFrmt, this.vLangs[this.vLang]) + '</pStart>';
- vTask += '<pEnd>' + date_utils_1.formatDateStr(this.vTaskList[vIdx].getEnd(), vOutFrmt, this.vLangs[this.vLang]) + '</pEnd>';
- vTask += '<pPlanStart>' + date_utils_1.formatDateStr(this.vTaskList[vIdx].getPlanStart(), vOutFrmt, this.vLangs[this.vLang]) + '</pPlanStart>';
- vTask += '<pPlanEnd>' + date_utils_1.formatDateStr(this.vTaskList[vIdx].getPlanEnd(), vOutFrmt, this.vLangs[this.vLang]) + '</pPlanEnd>';
- vTask += '<pDuration>' + this.vTaskList[vIdx].getDuration() + '</pDuration>';
- vTask += '<pClass>' + this.vTaskList[vIdx].getClass() + '</pClass>';
- vTask += '<pLink>' + this.vTaskList[vIdx].getLink() + '</pLink>';
- vTask += '<pMile>' + this.vTaskList[vIdx].getMile() + '</pMile>';
- if (this.vTaskList[vIdx].getResource() != '\u00A0')
- vTask += '<pRes>' + this.vTaskList[vIdx].getResource() + '</pRes>';
- vTask += '<pComp>' + this.vTaskList[vIdx].getCompVal() + '</pComp>';
- vTask += '<pCost>' + this.vTaskList[vIdx].getCost() + '</pCost>';
- vTask += '<pGroup>' + this.vTaskList[vIdx].getGroup() + '</pGroup>';
- vTask += '<pParent>' + this.vTaskList[vIdx].getParent() + '</pParent>';
- vTask += '<pOpen>' + this.vTaskList[vIdx].getOpen() + '</pOpen>';
- vTask += '<pDepend>';
- 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 += '</pDepend>';
- vTask += '<pCaption>' + this.vTaskList[vIdx].getCaption() + '</pCaption>';
- var vTmpFrag = document.createDocumentFragment();
- var vTmpDiv = draw_utils_1.newNode(vTmpFrag, 'div', null, null, this.vTaskList[vIdx].getNotes().innerHTML);
- vTask += '<pNotes>' + vTmpDiv.innerHTML + '</pNotes>';
- vTask += '</task>';
- }
- return vTask;
- };
- },{"./task":10,"./utils/date_utils":11,"./utils/draw_utils":12,"./utils/general_utils":13}]},{},[1])(1)
- });
|