{"version":3,"sources":["wrapper_head.js","Config.js","Model.js","EVMDocumentModel.js","Modal.js","EVMModal.js","Help.js","init.js","wrapper_foot.js"],"names":["UserDocs","$","Model","Collection","Router","View","Modal","Config","extendObjects","load","ele","SiteConfig","console","log","extend","this","permissions","key","userType","config","directory","indexOf","user","usersession","userId","id","type","remote","event","data","message","let","ajaxLoading","fadeIn","addClass","Headers","Accept","Content-Type","controller","AbortController","signal","setTimeout","abort","_t","formData","FormData","append","fetch","uri","buildUrl","ajax","method","body","then","response","ok","fadeOut","removeClass","status","Error","json","catch","e","modal","confirm","i18n","document","location","reload","parent","find","hide","ajaxSetup","cache","statusCode","401","EVMDocument","Backbone","idAttribute","guid","EVMData","loadTrialDocument","templateId","_this","RAPIDOCSID","userdocument","DOCUMENT","DOCUMENTBRANDNEW","TEMPLATEEXISTS","parse","set","await","getEVMs","evmdocuments","getDocumentList","GUID","addItem","productpriceid","PRODUCTPRICEID","createDocument","rapidocsid","serviceid","SERVICEID","async","DOCUMENTID","EVMS","EVMs","getExternalEVMs","documentId","getCommonEVMs","DOCUMENTID1","DOCUMENTID2","split","copyAllEVMs","evmList","SOURCEDOCUMENTID","DESTINATIONDOCUMENTID","EVMDEFINITIONS","getRegistrationEVMs","copyRegistrationEVMs","get","each","i","v","toUpperCase","Base","buttons","title","helpTemplate","width","dialogClass","initialize","attributes","model","option","recommendation","create","content","$el","html","template","close","siblings","_","on","help","render","resize","dialog","remove","hideTitle","closest","helpModal","Help","EVMModal","$viewLoading","$viewInit","$viewTemplates","$viewDataPicker","$viewDocs","$viewReg","$viewSummary","templateList","init","init_passdata","templates","loading","documents","register","transfer","summary","helpTemplateList","register_summary","transfer_summary","currentDoc","sourceDocList","evmdocument","allowBack","allowMultiple","events","change .e_evm_transfer_toggle_all","click .e_evm_transfer_form td","click .e_evm_transfer_form .e_evm_transfer_data_table input","click #e_evm_init_option_start","click #e_evm_summary_start","click .e_evm_finish_document","click #e_evm_init_option_document_action","click #e_evm_summary_document_action","click .e_btn_evm_select_doc","click #e_evm_confirm_doc_data","click #e_evm_init_option_registration_action","click .e_evm_registration_confirm","keyup .e_evm_document_select_search_template","change .e_evm_document_select_search_template","mouseup .e_evm_document_select_search_template","click .e_evm_orderby a","click .e_btn_back","clear","back","show","loadTemplate","url","removeCloseButton","destinationUrl","productPriceId","getParameterByName","children","loadInit","window","top","href","vars","evmregistration","openTemplate","nodocuments","lastDocument","regData","registrationEVMs","parseRegEvms","Object","keys","length","evms","appendTo","parseLocalEvms","localData","answered","loopMapping","isLoopIndex","value","defaultnotasked","name","clone","undefined","options","getOptionLabel","typeName","date","formatDate","flipReverseDate","j","parseEvms","externalData","commonData","localEVMs","inArray","risk","insertAnswered","insertValue","label","loopToFlat","replace","loopControlled","size","Math","min","readOnly","showDataImport","textEdited","evmData","DOCUMENTTEXTWASEDITED","submitEVMDocumentTable","form","getActiveForm","fields","push","attr","alert","removeContinueButton","join","failures","FAILURES","addMore","addContinueButton","showDocumentList","docData","before","EVMCount","completedEVMCount","reverseRelevance","click","showDocumentData","target","text","commonEvms","x","showRegistrationData","submitRegistrationEVMs","documentid","setDataField","input","prop","setDeselected","checkbox","parentRow","updateEVMCounts","toggleDataField","toggleAllDataFields","is","selectedFields","search","which","clearTimeout","searchTimer","searchSiblings","searchString","val","toString","toLowerCase","searchItems","noneFound","found","searchElements","reg","RegExp","sort","sortKey","toArray","sortFunctions","az","a","b","za","updated","relevance","elem","optionlabels","draggable","AppView","el","click a.e_document_launch_evm","evmOpen","isloggedin","evmView"],"mappings":"AAGA,IAAAA,SAAA,KAAA,IAAAA,SAAA,GAAAA,SAEAC,EAAA,WCIAD,SAAAE,MAAA,GAMAF,SAAAG,WAAA,GAMAH,SAAAI,OAAA,GAMAJ,SAAAK,KAAA,GAMAL,SAAAK,KAAAC,MAAA,GAQAN,SAAAO,OAAA,CACAC,cAAA,aAEAC,KAAA,WACAC,IAAAC,aACAC,QAAAC,IAAA,eAAA,EACAZ,EAAAa,OAAA,CAAA,EAAAC,KAAAL,IAAAC,UAAA,EACAI,KAAAP,cAAA,EAEA,EAGAQ,YAAA,SAAAC,GAEA,MAAAF,CAAAA,EAAA,aAAAA,KAAAG,SAAA,GAAA,CAAA,EAAAR,IAAAS,OAAAC,UAAAC,QAAA,eAAA,GAAAX,IAAAS,OAAAH,YAAAC,IAAA,EAAAP,IAAAS,OAAAH,YAAAC,GAIA,EAEAK,KAAAZ,IAAAS,OAAAI,YAEAC,OAAA,WACA,OAAAT,KAAAO,KAAAG,EACA,EAEAP,SAAA,WACA,OAAAH,KAAAO,KAAAI,IACA,CACA,ECpDA1B,SAAA2B,OAAA,SAAAC,EAAAC,EAAAC,GAEAC,IACAC,EAAA/B,EAAA,iBAAA,EAAAgC,OAAA,EAEAhC,EAAA,MAAA,EAAAiC,SAAA,qBAAA,EAGA,IAAAC,QAAA,CACAC,OAAA,mBACAC,eAAA,kBACA,CAAA,EAGA,MAAAC,EAAA,IAAAC,gBACA,IASAtB,EATAuB,EAAAF,EAAAE,OAEAC,WAAA,IAAAH,EAAAI,MAAA,EAAA,GAAA,GAIAb,EAAAA,GAAA,IACA,GAAAnB,IAAAS,OAAAI,YAAAoB,GACAZ,IAAAa,EAAA,IAAAC,SACA,IAAA5B,KAAAY,EACAe,EAAAE,OAAA7B,EAAAY,EAAAZ,EAAA,EAGA,OAAA8B,MAAArC,IAAAsC,IAAAC,SAAArB,EAAA,CAAAsB,KAAA,CAAA,CAAA,EACA,CACAC,OAAAtB,EAAA,OAAA,MACAuB,KAAAR,EACAJ,OAAAA,CACA,CACA,EAAAa,KAAAC,IACA,GAAAA,EAAAC,GASA,OAFAvB,EAAAwB,QAAA,EACAvD,EAAA,MAAA,EAAAwD,YAAA,qBAAA,EACAH,EARA,MAAA,MAAAA,EAAAI,OAAA,IAAAC,MAAA,WAAA,EACA,MAAAL,EAAAI,QACA,MAAAJ,EAAAI,OADA,IAAAC,MAAA,cAAA,EAEA,IAAAA,MAAA,aAAA,CAOA,CAAA,EAAAN,KAAAC,GACAA,EAAAM,KAAA,CACA,EAAAC,MAAAC,IAEA,GADA7D,EAAA,MAAA,EAAAwD,YAAA,qBAAA,EACA,gBAAAK,EAAAhC,QAAA,CACAC,IAAAgC,EAAArD,IAAAqD,MAAAC,QAAA,MAAAC,KAAA,qBAAA,EAAA,OACA,WACAC,SAAAC,SAAAC,OAAA,CAAA,CAAA,CACA,CACA,EACAL,EAAAM,OAAA,EAAAC,KAAA,WAAA,EAAAC,KAAA,CACA,MAAA,GAAA,CAAA,EAAAT,EAAAhC,QAAAT,QAAA,OAAA,GAAA,CAAA,EAAAyC,EAAAhC,QAAAT,QAAA,iBAAA,EAAA,CACAU,IAAAgC,EAAArD,IAAAqD,MAAAC,QAAA,OAAAC,KAAA,WAAA,EAAA,WAAAA,KAAA,aAAA,EAAA,MAAA,EACAF,EAAAM,OAAA,EAAAC,KAAA,WAAA,EAAAC,KAAA,CACA,MAAA,GAAAzC,EAAA,CACAlB,QAAAC,IAAAiB,CAAA,EACAC,IAAAgC,EAAArD,IAAAqD,MAAAC,QAAA,OAAAF,EAAAhC,QAAA,WAAAA,EAAA,MAAA,EACAiC,EAAAM,OAAA,EAAAC,KAAA,WAAA,EAAAC,KAAA,CACA,CACA,MAAAT,CACA,CAAA,CAEA,EAIA7D,EAAAuE,UAAA,CACAC,MAAA,CAAA,EACAC,WAAA,CACAC,IAAA,WACA5C,IAAAgC,EAAArD,IAAAqD,MAAAC,QAAA,MAAAC,KAAA,qBAAA,EAAA,OACA,WACAC,SAAAC,SAAAC,OAAA,CAAA,CAAA,CACA,CACA,EACAL,EAAAM,OAAA,EAAAC,KAAA,WAAA,EAAAC,KAAA,CACA,CACA,CACA,CAAA,EClGAvE,SAAAE,MAAA0E,YAAAC,SAAA3E,MAAAY,OAEA,CAEAgE,YAAA,aAEAC,KAAA,EAEAC,QAAA,GAKAC,kBAAA,SAAAC,GACAnD,IAAAoD,EAAApE,KACA,OAAAf,SAAA2B,OACA,kBACA,CACAyD,WAAAF,CACA,CACA,EAAA7B,KAAAgC,MAAAA,IACAtD,IAAAmC,EAAAmB,EAAAC,SAcA,OAbA,GAAAD,EAAAE,kBAAA,GAAAF,EAAAG,gBACAL,EAAAM,MAAAvB,CAAA,EACAiB,EAAAO,IAAAxB,CAAA,EAGAyB,MAAAR,EAAAS,QAAA,EACAlF,IAAAS,OAAAH,YAAA6E,cACAF,MAAAR,EAAAW,gBAAA,GAIAX,EAAAJ,KAAAM,EAAAU,KAEAV,CACA,CAAA,EAAAxB,MAAAC,IAEA,MAAA,IAAAH,MAAA,OAAA,CACA,CAAA,CACA,EAKAqC,QAAA,SAAAC,GACAlE,IAAAoD,EAAApE,KACA,OAAAf,SAAA2B,OACA,cACA,CACAuE,eAAAD,CACA,CACA,EAAA5C,KAAAgC,MAAAA,IACA,GAAAA,EAAAN,KAKA,OAJAI,EAAAM,MAAAJ,CAAA,EACAF,EAAAO,IAAAL,CAAA,EAEAM,MAAAR,EAAAS,QAAA,EACAP,EAEA,MAAA,IAAA1B,MAAA,OAAA,CAEA,CAAA,EAAAE,MAAAC,IAEA,MAAA,IAAAH,MAAA,OAAA,CACA,CAAA,CACA,EAEAwC,eAAA,SAAAC,EAAAC,GACAtE,IAAAoD,EAAApE,KACA,OAAAf,SAAA2B,OACA,qBACA,CACAyD,WAAAgB,EACAE,UAAAD,CACA,CAAA,EAAAhD,KAAAkD,eAAAlB,GAEA,GAAAA,EAAAN,KAIA,OAHAI,EAAAM,MAAAJ,CAAA,EACAF,EAAAO,IAAAL,CAAA,EAEAF,EAAAS,QAAA,EAEA,MAAA,IAAAjC,MAAA,oBAAA,CAEA,CAAA,EAAAE,MAAA,WAEA,MAAA,IAAAF,MAAA,oBAAA,CACA,CACA,CACA,EAKAiC,QAAA,WACA7D,IAAAoD,EAAApE,KACA,OAAAf,SAAA2B,OACA,kBACA,CACA6E,WAAAzF,KAAAU,EACA,CAAA,EACA4B,KAAA,SAAAxB,GAEA,OADAsD,EAAAH,QAAAnD,EAAA4E,KACA5E,EAAA6E,IACA,CAAA,CACA,EAEAC,gBAAA,SAAAC,GACA,OAAA5G,SAAA2B,OACA,kBACA,CACA6E,WAAAI,CACA,CAAA,CACA,EAEAC,cAAA,SAAAD,GAEA,OAAA5G,SAAA2B,OACA,gBACA,CACAmF,YAAA/F,KAAAU,GACAsF,YAAAH,CACA,CAAA,EACAvD,KAAA,SAAAxB,GACA,OAAAA,EAAAmF,MAAA,GAAA,CACA,CAAA,CACA,EAEAC,YAAA,SAAAL,EAAAM,GACAnF,IAAAoD,EAAApE,KACA,OAAAf,SAAA2B,OACA,cACA,CACAwF,iBAAAP,EACAQ,sBAAArG,KAAAU,GACA4F,eAAAH,CACA,CAAA,EACA7D,KAAA,SAAAxB,GAEA,OADAsD,EAAAH,QAAAnD,EAAA4E,KACA5E,CACA,CAAA,CACA,EAEAyF,oBAAA,WACA,OAAAtH,SAAA2B,OAAA,qBAAA,CACA,EAEA4F,qBAAA,SAAAL,GACAnF,IAAAoD,EAAApE,KACA,OAAAf,SAAA2B,OACA,uBACA,CACA6E,WAAAzF,KAAAU,GACA4F,eAAAH,CACA,CAAA,EACA7D,KAAA,SAAAxB,GAEA,OADAsD,EAAAH,QAAAnD,EAAA4E,KACA5E,CACA,CAAA,CACA,EAKAiE,gBAAA,WAEA,OAAA9F,SAAA2B,OACA,wBACA,CACAyD,WAAArE,KAAAyG,IAAA,YAAA,CACA,CAAA,EACAnE,KAAA,SAAAxB,GACA,OAAAA,CACA,CAAA,CACA,EAMA4D,MAAA,SAAAnC,GAOA,OANArD,EAAAwH,KAAAnE,EAAA,SAAAoE,EAAAC,GACAD,GAAAA,EAAAE,YAAA,IACAtE,EAAAoE,EAAAE,YAAA,GAAAD,EACA,OAAArE,EAAAoE,GAEA,CAAA,EACApE,CACA,CACA,CAAA,ECzLAtD,SAAAK,KAAAC,MAAAuH,KAAAhD,SAAAxE,KAAAS,OAEA,CAEAgH,QAAA,GAGA/D,MAAA,KAGAgE,MAAA,GAGAC,aAAA,KAGAC,MAAA,IAGAC,YAAA,KAMAC,WAAA,WACA,IAAAhD,EAAApE,KACAqH,EAAA,GACArH,KAAAsH,QAAAD,EAAArH,KAAAsH,MAAAD,YACA1H,IAAAqD,MAAAuE,OAAA,QAAAvH,KAAAkH,KAAA,EACA,KAAA,IAAAlH,KAAAwH,iBACAH,EAAArH,KAAAwH,gBAEAxH,KAAAgD,MAAArD,IAAAqD,MAAAyE,OAAA,CACAV,QAAA3C,EAAA2C,QACAW,QAAA1H,KAAA2H,IAAAC,KAAA5H,KAAA6H,SAAAR,CAAA,CAAA,EACAS,MAAA,WACA1D,EAAA0D,MAAA,CACA,EACAX,YAAA/C,EAAA+C,YACAH,MAAA5C,EAAA4C,MACAE,MAAA9C,EAAA8C,KACA,CAAA,EACAlH,KAAAiH,eACAjH,KAAAgD,MAAA+E,SAAA,qBAAA,EAAAhG,OAAAiG,EAAAH,SAAA3I,EAAA,2BAAA,EAAA0I,KAAA,CAAA,CAAA,EACA5H,KAAAgD,MAAA+E,SAAA,qBAAA,EAAAxE,KAAA,UAAA,EAAA0E,GAAA,QAAA,WACA7D,EAAA8D,KAAA,CACA,CAAA,EAEA,EAGAC,OAAA,WACAnI,KAAAoI,OAAA,EACApI,KAAAgD,MAAAqF,OAAA,MAAA,CACA,EAGAP,MAAA,WACA,MAAA9H,KAAAgD,QACAhD,KAAAgD,MAAAqF,OAAA,OAAA,EACArI,KAAAsI,OAAA,EAEA,EAGAC,UAAA,WACAvI,KAAAgD,MAAAwF,QAAA,YAAA,EAAAjF,KAAA,qBAAA,EAAAC,KAAA,CACA,EAMA4E,OAAA,WACAzI,IAAAqD,MAAAoF,OAAApI,KAAAgD,KAAA,CACA,EAGAkF,KAAA,WACA,IAAAO,EAAA,IAAAxJ,SAAAK,KAAAC,MAAAmJ,KACAD,EAAAf,QAAA1H,KAAAiH,aACAwB,EAAAN,OAAA,CACA,CACA,CAAA,ECrFAlJ,SAAAK,KAAAC,MAAAoJ,SAAA1J,SAAAK,KAAAC,MAAAuH,KAAA/G,OAEA,CAEAW,GAAA,qBAGAkI,aAAA,KACAC,UAAA,KACAC,eAAA,KACAC,gBAAA,KACAC,UAAA,KACAC,SAAA,KACAC,aAAA,KAGArB,SAAAG,EAAAH,SAAA3I,EAAA,6BAAA,EAAA0I,KAAA,CAAA,EAGAuB,aAAA,CACAC,KAAAlK,EAAA,0BAAA,EAAA0I,KAAA,EACAyB,cAAAnK,EAAA,mCAAA,EAAA0I,KAAA,EACA0B,UAAApK,EAAA,qCAAA,EAAA0I,KAAA,EACA2B,QAAArK,EAAA,6BAAA,EAAA0I,KAAA,EACA4B,UAAAtK,EAAA,qCAAA,EAAA0I,KAAA,EACA6B,SAAAvK,EAAA,kCAAA,EAAA0I,KAAA,EACA8B,SAAAxK,EAAA,8BAAA,EAAA0I,KAAA,EACA+B,QAAAzK,EAAA,6BAAA,EAAA0I,KAAA,CACA,EAGAX,aAAAe,EAAAH,SAAA3I,EAAA,0BAAA,EAAA0I,KAAA,CAAA,EAGAgC,iBAAA,CACAR,KAAAlK,EAAA,0BAAA,EAAA0I,KAAA,EACAyB,cAAAnK,EAAA,wCAAA,EAAA0I,KAAA,EACA0B,UAAApK,EAAA,oCAAA,EAAA0I,KAAA,EACA4B,UAAAtK,EAAA,oCAAA,EAAA0I,KAAA,EACA6B,SAAAvK,EAAA,8BAAA,EAAA0I,KAAA,EACA8B,SAAAxK,EAAA,+BAAA,EAAA0I,KAAA,EACAiC,iBAAA3K,EAAA,sCAAA,EAAA0I,KAAA,EACAkC,iBAAA5K,EAAA,uCAAA,EAAA0I,KAAA,CACA,EAGAZ,MAAA,GAGA+C,WAAA,KAGAC,cAAA,KAGAC,YAAA,KAGAC,UAAA,CAAA,EAGAC,cAAA,CAAA,EAGAC,OAAA,CACAC,oCAAA,sBACAC,gCAAA,kBACAC,8DAAA,eAEAC,iCAAA,eACAC,6BAAA,eACAC,+BAAA,eAEAC,2CAAA,mBACAC,uCAAA,mBACAC,8BAAA,mBACAC,gCAAA,yBAEAC,+CAAA,uBACAC,oCAAA,yBAEAC,+CAAA,SACAC,gDAAA,SACAC,iDAAA,SAEAC,yBAAA,OAEAC,oBAAA,MACA,EAEAC,MAAA,WACAtL,KAAA4I,cAAA5I,KAAA4I,aAAApF,KAAA,EACAxD,KAAA6I,WAAA7I,KAAA6I,UAAArF,KAAA,EACAxD,KAAA8I,gBAAA9I,KAAA8I,eAAAtF,KAAA,EACAxD,KAAA+I,iBAAA/I,KAAA+I,gBAAAvF,KAAA,EACAxD,KAAAgJ,WAAAhJ,KAAAgJ,UAAAxF,KAAA,EACAxD,KAAAiJ,UAAAjJ,KAAAiJ,SAAAzF,KAAA,EACAxD,KAAAkJ,cAAAlJ,KAAAkJ,aAAA1F,KAAA,CACA,EAEA+H,KAAA,WACAvL,KAAAsL,MAAA,EACAtL,KAAA+J,WAAA,KACA/J,KAAAgD,MAAAqF,OAAA,SAAA,QAAAnF,KAAA,+BAAA,CAAA,EACAlD,KAAAgJ,UAAAwC,KAAA,EACAxL,KAAAoI,OAAA,CACA,EAEAmB,QAAA,WACAvJ,KAAAsL,MAAA,EACAtL,KAAA4I,aAAA4C,KAAA,EACAxL,KAAAoI,OAAA,CACA,EAGAqD,aAAA,SAAAC,GACA1K,IAAAoD,EAAApE,KAKA,GAJAoE,EAAAuH,kBAAA,EACA3L,KAAA4L,eAAAF,EACA1L,KAAAsH,MAAA,IAAArI,SAAAE,MAAA0E,YACA7D,KAAAmI,OAAA,EACA,EAAAuD,EAAApL,QAAA,SAAA,EAAA,CAEAU,IAAA6K,EAAAlM,IAAAsC,IAAA6J,mBAAAJ,EAAA,gBAAA,EAEA1L,KAAAsH,MAAArC,QAAA4G,CAAA,EAAAvJ,KAAA,WAEA8B,EAAAkD,MAAAb,IAAA,MAAA,GACArC,EAAA6F,YAAA7F,EAAAkD,MACAlD,EAAAwE,aAAAxE,EAAAuD,IAAAoE,SAAA,EACA3H,EAAA4H,SAAA,CAAA,CAAA,GAEAC,OAAAC,IAAA9I,SAAA+I,KAAAxM,IAAAsC,IAAAC,SAAA,UAAA,CAAAgD,eAAA2G,CAAA,CAAA,CAEA,CAAA,EAAA/I,MAAA,WAEAmJ,OAAAC,IAAA9I,SAAA+I,KAAAxM,IAAAsC,IAAAC,SAAA,UAAA,CAAAgD,eAAA2G,CAAA,CAAA,CACA,CAAA,CAEA,MACA,GAAA,EAAAH,EAAApL,QAAA,gBAAA,EAAA,CAEAU,IAAAqE,EAAA1F,IAAAsC,IAAA6J,mBAAAJ,EAAA,YAAA,EACApG,EAAA3F,IAAAsC,IAAA6J,mBAAAJ,EAAA,WAAA,EAEA1L,KAAAsH,MAAAlC,eAAAC,EAAAC,CAAA,EAAAhD,KAAA,WAEA8B,EAAAkD,MAAAb,IAAA,MAAA,GACArC,EAAA6F,YAAA7F,EAAAkD,MACAlD,EAAAwE,aAAAxE,EAAAuD,IAAAoE,SAAA,EACA3H,EAAA4H,SAAA,CAAA,CAAA,GAEAnM,QAAAC,IAAA,MAAA,CAGA,CAAA,CACA,KACA,CAEAkB,IAAAmD,EAAAxE,IAAAsC,IAAA6J,mBAAAJ,EAAA,YAAA,EACA1L,KAAAsH,MAAApD,kBAAAC,CAAA,EACA7B,KAAA,WACA,GAAA,GAAA8B,EAAAkD,MAAAtD,KAAA,CAEAhD,IAAAoL,EAAA,CAAA/G,WAAAlB,CAAA,EACAxE,IAAAsC,IAAA6J,mBAAAJ,EAAA,gBAAA,IACAU,EAAAlH,eAAAvF,IAAAsC,IAAA6J,mBAAAJ,EAAA,gBAAA,GAEAO,OAAAC,IAAA9I,SAAA+I,KAAAxM,IAAAsC,IAAAC,SAAA,cAAAkK,CAAA,CACA,MACAhI,EAAA6F,YAAA7F,EAAAkD,MACAlD,EAAAwE,aAAAxE,EAAAuD,IAAAoE,SAAA,EACA3H,EAAA4H,SAAA,CAAA,CAAA,CAEA,CAAA,EAAAlJ,MAAA,WACA,GAAA,GAAAsB,EAAAkD,MAAAtD,KAAA,CAEAhD,IAAAoL,EAAA,CAAA/G,WAAAlB,CAAA,EACAxE,IAAAsC,IAAA6J,mBAAAJ,EAAA,gBAAA,IACAU,EAAAlH,eAAAvF,IAAAsC,IAAA6J,mBAAAJ,EAAA,gBAAA,GAEAO,OAAAC,IAAA9I,SAAA+I,KAAAxM,IAAAsC,IAAAC,SAAA,cAAAkK,CAAA,CACA,MACAzM,IAAAS,OAAAH,YAAAoM,iBAEAjI,EAAA6F,YAAA7F,EAAAkD,MACAlD,EAAAwE,aAAAxE,EAAAuD,IAAAoE,SAAA,EACA3H,EAAA4H,SAAA,CAAA,CAAA,IAEA5H,EAAA6F,YAAA7F,EAAAkD,MACAlD,EAAAkI,aAAA,EAGA,CAAA,CACA,CACA,EAGAN,SAAA,SAAAO,GACA,GAAAA,IACAA,EAAA,CAAA5M,IAAAS,OAAAI,YAAAgM,cAEAxL,IAAAoD,EAAApE,KACAL,IAAAS,OAAAH,YAAAoM,gBACArM,KAAAiK,YAAA1D,oBAAA,EAAAjE,KAAA,SAAAmK,GACAC,EAAAtI,EAAAuI,aAAAvI,EAAA6F,YAAAhG,QAAAwI,CAAA,EACA,IAAAG,OAAAC,KAAAH,CAAA,EAAAI,QAAAnN,IAAAS,OAAAH,YAAA6E,cAAAyH,CAAAA,GAKAnI,EAAAwE,aAAApF,KAAA,EACAY,EAAAyE,UAAA3J,EACA8I,EAAAH,SAAAzD,EAAA+E,aAAAC,IAAA,EACA,CACA2D,KAAAL,EACAH,YAAAA,CACA,CACA,CACA,EACAnI,EAAAyE,UAAAmE,SAAA5I,EAAAuD,GAAA,EACAvD,EAAAgE,OAAA,GAbAhE,EAAAkI,aAAA,CAcA,CAAA,GAEAtM,KAAA4I,aAAApF,KAAA,EACAxD,KAAA6I,UAAA3J,EAAA8I,EAAAH,SAAA7H,KAAAmJ,aAAAC,IAAA,EAAApJ,KAAAsH,MAAAD,UAAA,CAAA,EACArH,KAAA6I,UAAAmE,SAAAhN,KAAA2H,GAAA,EACA3H,KAAAoI,OAAA,EAEA,EAEA6E,eAAA,SAAAC,GACAlM,IAAA+L,EAAA,GAmBA,OAlBA/E,EAAAtB,KAAAwG,EAAA,SAAAvG,GACAA,EAAAwG,UAAA,IAAAxG,EAAAyG,cAAA,CAAAzG,EAAA0G,aAAA1G,EAAA0G,aAAA,MAAA1G,EAAA2G,QAAA,CAAA3G,EAAA4G,kBAEAR,EAAApG,EAAA6G,MAAAxF,EAAAyF,MAAA9G,CAAA,EACA+G,MAAA/G,EAAAgH,SAAA,IAAAhH,EAAAgH,UAAAZ,EAAApG,EAAA6G,MAAAF,MAAArO,SAAAK,KAAAC,MAAAoJ,SAAAiF,eAAAjH,EAAAoG,EAAApG,EAAA6G,MAAAF,KAAA,GACA,QAAA3G,EAAAkH,WAAAd,EAAApG,EAAA6G,MAAAF,MAAA3N,IAAAmO,KAAAC,WAAApO,IAAAmO,KAAAE,gBAAAjB,EAAApG,EAAA6G,MAAAF,KAAA,CAAA,GAEA3G,EAAA0G,cACAN,EAAApG,EAAA6G,MAAAzB,SAAA,GACA/D,EAAAtB,KAAAwG,EAAA,SAAAe,GACAA,EAAAb,aAAAzG,EAAA6G,OAEAT,EAAApG,EAAA6G,MAAAzB,SAAAkC,EAAAT,MAAAS,EAEA,CAAA,GAGA,CAAA,EACAlB,CACA,EAEAmB,UAAA,SAAAhB,EAAAiB,EAAAC,GACApN,IAAA+L,EAAA,GACAsB,EAAA,GAmGA,MAjGA,IAAAD,IAGApG,EAAAtB,KAAAwG,EAAA,SAAAvG,GACA0H,EAAA1H,EAAA6G,MAAAxF,EAAAyF,MAAA9G,CAAA,CACA,CAAA,EAEAqB,EAAAtB,KAAAyH,EAAA,SAAAxH,GACA,IAAA,CAAA,EAAAzH,EAAAoP,QAAA3H,EAAA6G,KAAAY,CAAA,GAAA,IAAAzH,EAAA0G,cAAA1G,EAAAwG,UAAA,IAAAxG,EAAAyG,aAAA,CAAAzG,EAAA4G,iBAAA,GAAA5G,EAAA4H,KACA,CAiBA,GAhBA1O,QAAAC,IAAA,WAAA,EACAiN,EAAApG,EAAA6G,MAAA,CACAgB,eAAA7H,EAAAwG,SACAsB,YAAA9H,EAAA2G,MACAoB,MAAA/H,EAAA+H,MACArB,YAAA1G,EAAA0G,WACA,EACAK,MAAA/G,EAAAgH,SAAA,IAAAhH,EAAAgH,UACAZ,EAAApG,EAAA6G,MAAAiB,YAAAxP,SAAAK,KAAAC,MAAAoJ,SAAAiF,eAAAjH,EAAAoG,EAAApG,EAAA6G,MAAAiB,WAAA,GAEA,QAAA9H,EAAAkH,WAAAd,EAAApG,EAAA6G,MAAAiB,YAAA9O,IAAAmO,KAAAC,WAAApO,IAAAmO,KAAAE,gBAAAjB,EAAApG,EAAA6G,MAAAiB,WAAA,CAAA,GACA,GAAA9H,EAAA0G,YACA1G,EAAA0G,YAAA,CAAA,EAEA1G,EAAA0G,YAAA,CAAA,EAEA1G,EAAA0G,aAAA,GAAA1G,EAAA0G,YACA,GAAA1G,EAAA,aAAA,MAAAA,EAAA2G,MACA,OAAAP,EAAApG,EAAA6G,UACA,CACAxM,IAAA2N,EAAA,CAAA,EACA5B,EAAApG,EAAA6G,MAAAzB,SAAA,GACA/D,EAAAtB,KAAAyH,EAAA,SAAAF,GACAA,EAAAb,aAAAzG,EAAA6G,MAAA,CAAA,EAAAY,EAAA9N,QAAA2N,EAAAT,KAAAoB,QAAA,WAAA,EAAA,CAAA,IAGA7B,EAAApG,EAAA6G,MAAAzB,SAAAkC,EAAAT,MAAA,CACAgB,eAAAP,EAAAd,SACAsB,YAAAR,EAAAX,MACAoB,MAAAT,EAAAS,KACA,EAGAL,EAAAJ,EAAAT,MAEAtO,EAAAa,OAAAgN,EAAApG,EAAA6G,MAAAzB,SAAAkC,EAAAT,MAAAa,EAAAJ,EAAAT,KAAA,EACAa,EAAAJ,EAAAT,KAAAoB,QAAA,WAAA,EAAA,IAAA,GAAAP,EAAAJ,EAAAT,KAAAoB,QAAA,WAAA,EAAA,GAAAC,eAEA3P,EAAAa,OAAAgN,EAAApG,EAAA6G,MAAAzB,SAAAkC,EAAAT,MAAAa,EAAAJ,EAAAT,KAAAoB,QAAA,WAAA,EAAA,EAAA,EACAP,EAAAJ,EAAAT,KAAAoB,QAAA,MAAA,EAAA,KAEA1P,EAAAa,OAAAgN,EAAApG,EAAA6G,MAAAzB,SAAAkC,EAAAT,MAAAa,EAAAJ,EAAAT,KAAAoB,QAAA,MAAA,EAAA,EAAA,EACAD,EAAA,CAAA,GAGA,CAAA,EAEA,GAAA3G,EAAA8G,KAAA/B,EAAApG,EAAA6G,MAAAzB,QAAA,GAAA,OAAAgB,EAAApG,EAAA6G,MAEAmB,IACA5B,EAAApG,EAAA6G,MAAAiB,YAAAM,KAAAC,IAAA,EAAAjC,EAAApG,EAAA6G,MAAAiB,WAAA,EACAzG,EAAAtB,KAAAqG,EAAApG,EAAA6G,MAAAzB,SAAA,SAAAkC,EAAA/N,GACA,CAAA,GAAAA,EAAAI,QAAA,KAAA,GAAA,OAAAyM,EAAApG,EAAA6G,MAAAzB,SAAA7L,EACA,CAAA,EAEA,CAIA,GAAAmO,CAAAA,EAAA1H,EAAA6G,OAAA7G,EAAA0G,aAAA,GAAA1G,EAAA0G,aAWA,GAAAgB,EAAA1H,EAAA6G,KAAA,OAAA,CACAxM,IAAAiN,EAAAI,EAAA1H,EAAA6G,KAAA,OACA,GAAAS,EAAAgB,SACA,OAAAlC,EAAApG,EAAA6G,OAEAE,MAAAO,EAAAN,SAAA,IAAAM,EAAAN,UACAM,EAAAX,MAAArO,SAAAK,KAAAC,MAAAoJ,SAAAiF,eAAAK,EAAAA,EAAAX,KAAA,GAEA,QAAAW,EAAAJ,WAAAI,EAAAX,MAAA3N,IAAAmO,KAAAC,WAAApO,IAAAmO,KAAAE,gBAAAC,EAAAX,KAAA,CAAA,GAEApO,EAAAa,OAAAgN,EAAApG,EAAA6G,MAAAS,CAAA,EAEA,CAAA,KAvBA,CACAjN,IAAAiN,EAAAI,EAAA1H,EAAA6G,MACA,GAAAS,EAAAgB,SACA,OAAAlC,EAAApG,EAAA6G,OAEAE,MAAAO,EAAAN,SAAA,IAAAM,EAAAN,UACAM,EAAAX,MAAArO,SAAAK,KAAAC,MAAAoJ,SAAAiF,eAAAK,EAAAA,EAAAX,KAAA,GAEA,QAAAW,EAAAJ,WAAAI,EAAAX,MAAA3N,IAAAmO,KAAAC,WAAApO,IAAAmO,KAAAE,gBAAAC,EAAAX,KAAA,CAAA,GACApO,EAAAa,OAAAgN,EAAApG,EAAA6G,MAAAS,CAAA,EAEA,CAaA,CACA,CAAA,GAGAlB,CACA,EAEAJ,aAAA,SAAAO,EAAAT,GACAzL,IAAA+L,EAAA,GAgBA,OAfAN,GACAzE,EAAAtB,KAAAwG,EAAA,SAAAe,GACAjG,EAAAtB,KAAA+F,EAAA,SAAA7F,EAAAD,GACAsH,EAAAT,MAAA7G,IAEAoG,EAAApG,GAAAqB,EAAAyF,MAAAQ,CAAA,EACAlB,EAAApG,GAAA8H,YAAA7H,EACA8G,MAAAO,EAAAN,SAAA,IAAAM,EAAAN,UACAZ,EAAApG,GAAA8H,YAAAxP,SAAAK,KAAAC,MAAAoJ,SAAAiF,eAAAK,EAAAlB,EAAApG,GAAA8H,WAAA,GAEA,QAAA1B,EAAApG,GAAAkH,WAAAd,EAAApG,GAAA8H,YAAA9O,IAAAmO,KAAAC,WAAApO,IAAAmO,KAAAE,gBAAAjB,EAAApG,GAAA8H,WAAA,CAAA,GAEA,CAAA,CACA,CAAA,EAEA1B,CACA,EAGAmC,eAAA,SAAAf,EAAAC,EAAAe,GAEAnP,KAAAiH,aAAAjH,KAAA4J,iBAAAF,SACA1J,KAAA4I,aAAApF,KAAA,EACAxD,KAAA+I,iBAAA/I,KAAA+I,gBAAAT,OAAA,EACAtI,KAAA+I,gBAAA7J,EACA8I,EAAAH,SAAA7H,KAAAmJ,aAAAO,QAAA,EACA,CACA0F,QAAApP,KAAAkO,UAAAlO,KAAAiK,YAAAhG,QAAAkK,EAAAC,CAAA,EACAlE,UAAAlK,KAAAkK,UACAmF,sBAAAF,CACA,CACA,CACA,EAEAnP,KAAA+I,gBAAAiE,SAAAhN,KAAA2H,GAAA,EAEA3H,KAAAoI,OAAA,CACA,EAGAkH,uBAAA,SAAAvM,GACA/B,IAAAoD,EAAApE,KACAuP,EAAAvP,KAAAwP,cAAA,EACArJ,EAAA,GACAnF,IAAAyO,EAAAF,EAAAhM,KAAA,oCAAA,EACArE,EAAAwH,KAAA+I,EAAA,SAAA9I,EAAAC,GACAT,EAAAuJ,KAAAxQ,EAAA0H,CAAA,EAAA+I,KAAA,MAAA,CAAA,CACA,CAAA,EACA,GAAAxJ,EAAA2G,OACA8C,MAAA1M,KAAA,4BAAA,CAAA,GAEAlD,KAAAuJ,QAAA,EACAvJ,KAAA6P,qBAAA,EACA7P,KAAAiK,YAAA/D,YAAAlG,KAAA+J,WAAA5D,EAAA2J,KAAA,GAAA,CAAA,EAAAxN,KAAA,SAAAxB,GACAsD,EAAAwE,aAAApF,KAAA,EACAY,EAAA6C,aAAA7C,EAAAwF,iBAAAE,iBACA1F,EAAApB,MAAAqF,OAAA,SAAA,QAAAnF,KAAA,0BAAA,CAAA,EACAkB,EAAA8E,cAAA9E,EAAA8E,aAAAZ,OAAA,EACAlE,EAAA8E,aAAAhK,EAAA8I,EAAAH,SAAAzD,EAAA+E,aAAAQ,OAAA,EAAA,CAAAoD,KAAA3I,EAAA6I,eAAA7I,EAAA6F,YAAAhG,OAAA,EAAAkC,QAAAA,EAAA4J,SAAAjP,EAAAkP,SAAAC,QAAA7L,EAAA+F,aAAA,CAAA,CAAA,EACA/F,EAAA8E,aAAA8D,SAAA5I,EAAAuD,GAAA,EACAvD,EAAAgE,OAAA,CACA,CAAA,EAAAtF,MAAA,IACAjD,QAAAC,IAAA,QAAAiD,CAAA,EACAqB,EAAAwE,aAAApF,KAAA,EACAY,EAAA8L,kBAAA,EACAhR,EAAA,MAAAgE,KAAA,qBAAA,EAAA,MAAA,EAAA8J,SAAA5I,EAAAuD,GAAA,CACA,CAAA,EAEA,EAGAwI,iBAAA,SAAApN,GACA/B,IAAAoD,EAAApE,KACAA,KAAA+J,WAAA,KACA/J,KAAAgJ,WAAAhJ,KAAAgJ,UAAAV,OAAA,EACAtI,KAAAuJ,QAAA,EACAvJ,KAAAiK,YAAAlF,gBAAA,EAAAzC,KAAA,SAAA8N,GACAhM,EAAA4F,cAAAoG,EACAhM,EAAA8L,kBAAA,EACA9L,EAAA6C,aAAA7C,EAAAwF,iBAAAJ,UACApF,EAAAuD,IAAA0I,OAAA,+DAAAnN,KAAA,+BAAA,EAAA,aAAA,EACAkB,EAAAwE,aAAApF,KAAA,EACAY,EAAA4E,UAAA9J,EAAA8I,EAAAH,SAAAzD,EAAA+E,aAAAK,SAAA,EAAA,CACAA,UAAApF,EAAA4F,cACAsG,SAAAlM,EAAA6F,YAAAhG,QAAA6I,OACAyD,kBAAAvI,EAAA8G,KAAA1K,EAAA6I,eAAA7I,EAAA6F,YAAAhG,OAAA,CAAA,EACA4B,WAAAzB,EAAAkD,MAAA5G,GACA8P,iBAAA,CAAA,CACA,CAAA,CAAA,EACApM,EAAA4E,UAAAgE,SAAA5I,EAAAuD,GAAA,EACAvD,EAAA4E,UAAAzF,KAAA,wCAAA,EAAAkN,MAAA,EAGA,GAAArM,EAAA4E,UAAAzF,KAAA,wBAAA,EAAAwI,SAAA,EAAAe,SACA1I,EAAA4E,UAAAzF,KAAA,wBAAA,EAAAC,KAAA,EACAY,EAAA4E,UAAAzF,KAAA,6BAAA,EAAAiI,KAAA,GAEApH,EAAAgE,OAAA,CACA,CAAA,CACA,EAGAsI,iBAAA,SAAA3N,GACA/B,IAAAoD,EAAApE,KACAA,KAAA+J,WAAA7K,EAAA6D,EAAA4N,MAAA,EAAA7P,KAAA,YAAA,EACA5B,EAAA,wBAAA,EAAA0R,KAAA,EAAA,EACA5Q,KAAAuJ,QAAA,EACAvJ,KAAAiK,YAAArE,gBAAA5F,KAAA+J,UAAA,EAAAzH,KAAA,IACA8B,EAAA6F,YAAAnE,cAAA1B,EAAA2F,UAAA,EAAAzH,KAAA,SAAAuO,GACA3R,EAAA,wBAAA,EAAA0R,KAAA1N,KAAA,wBAAA,CAAA,EACAkB,EAAA8L,kBAAA,EACA9L,EAAA8K,eAAAE,EAAA1J,KAAAmL,EAAAzM,EAAA4F,cAAAzG,KAAA,SAAAuN,GAAA,OAAAA,EAAArL,aAAArB,EAAA2F,UAAA,CAAA,EAAAsF,qBAAA,EACAjL,EAAAgE,OAAA,CACA,CAAA,CACA,CAAA,EAAAtF,MACA,WACAsB,EAAAwE,aAAApF,KAAA,EACAY,EAAA8L,kBAAA,EACAhR,EAAA,MAAAgE,KAAA,qBAAA,EAAA,MAAA,EAAA8J,SAAA5I,EAAAuD,GAAA,CACA,CAAA,CACA,EAGAoJ,qBAAA,SAAAhO,GACA/B,IAAAoD,EAAApE,KACAA,KAAAuJ,QAAA,EACAvJ,KAAAiK,YAAA1D,oBAAA,EAAAjE,KAAA,SAAAmK,GACArI,EAAA6C,aAAA7C,EAAAwF,iBAAAH,SACArF,EAAApB,MAAAqF,OAAA,SAAA,QAAAnF,KAAA,0BAAA,CAAA,EACAkB,EAAAkH,MAAA,EACAlH,EAAA8L,kBAAA,EACA9L,EAAA6E,UAAA7E,EAAA6E,SAAAX,OAAA,EACAlE,EAAA6E,SAAA/J,EAAA8I,EAAAH,SAAAzD,EAAA+E,aAAAM,QAAA,EAAA,CAAAsD,KAAA3I,EAAAuI,aAAAvI,EAAA6F,YAAAhG,QAAAwI,CAAA,CAAA,CAAA,CAAA,EACArI,EAAA6E,SAAA+D,SAAA5I,EAAAuD,GAAA,EACAvD,EAAAgE,OAAA,CACA,CAAA,CACA,EAGA4I,uBAAA,SAAAjO,GACA/B,IAAAoD,EAAApE,KACAmG,EAAA,GACAoJ,EAAAvP,KAAAwP,cAAA,EACAC,EAAAF,EAAAhM,KAAA,oCAAA,EACAvD,KAAAmK,cAAA,CAAA,EACAjL,EAAAwH,KAAA+I,EAAA,SAAA9I,EAAAC,GACAT,EAAAuJ,KAAAxQ,EAAA0H,CAAA,EAAA+I,KAAA,MAAA,CAAA,CACA,CAAA,EACA,GAAAxJ,EAAA2G,OACA8C,MAAA1M,KAAA,4BAAA,CAAA,GAEAlD,KAAAuJ,QAAA,EACAvJ,KAAA6P,qBAAA,EACA7P,KAAAiK,YAAAzD,qBAAAL,EAAA2J,KAAA,GAAA,CAAA,EAAAxN,KAAA,SAAAxB,GACAsD,EAAAwE,aAAApF,KAAA,EACAY,EAAA6C,aAAA7C,EAAAwF,iBAAAC,iBACAzF,EAAApB,MAAAqF,OAAA,SAAA,QAAAnF,KAAA,0BAAA,CAAA,EACAlD,KAAAkJ,cAAAlJ,KAAAkJ,aAAAZ,OAAA,EACAlE,EAAA8E,aAAAhK,EAAA8I,EAAAH,SAAAzD,EAAA+E,aAAAQ,OAAA,EAAA,CAAAoD,KAAA3I,EAAA6I,eAAA7I,EAAA6F,YAAAhG,OAAA,EAAAkC,QAAAA,EAAA4J,SAAAjP,EAAAkP,SAAAC,QAAA7L,EAAA+F,aAAA,CAAA,CAAA,EACA/F,EAAA8E,aAAA8D,SAAA5I,EAAAuD,GAAA,EACAvD,EAAAgE,OAAA,CACA,CAAA,EAEA,EAKAkE,aAAA,SAAAvJ,GACA/B,IAAAoL,EAAA,CAAA6E,WAAAjR,KAAAiK,YAAAvJ,EAAA,EASA,OARAf,IAAAsC,IAAA6J,mBAAA9L,KAAA4L,eAAA,gBAAA,IACAQ,EAAAlH,eAAAvF,IAAAsC,IAAA6J,mBAAA9L,KAAA4L,eAAA,gBAAA,GAGA5L,KAAA8H,MAAA,EAEAmE,OAAAC,IAAA9I,SAAA+I,KAAAxM,IAAAsC,IAAAC,SAAA,YAAAkK,CAAA,EAEA,CAAA,CACA,EAEA8E,aAAA,SAAAnO,GACA/B,IAAAmQ,EAAAjS,EAAA6D,EAAA4N,MAAA,EACAQ,EAAAC,KAAA,UAAA,CAAAD,EAAAC,KAAA,SAAA,CAAA,EACApR,KAAAqR,cAAAF,CAAA,CACA,EAEAE,cAAA,SAAAC,GACAtQ,IAAAuQ,EAAAD,EAAAhO,OAAA,IAAA,EAAAA,OAAA,IAAA,EACAgO,EAAAF,KAAA,SAAA,GACAG,EAAA7O,YAAA,YAAA,EACA,MAAA6O,EAAA5B,KAAA,IAAA,GACA4B,EAAAxJ,SAAA,gBAAAwJ,EAAA5B,KAAA,IAAA,EAAA,GAAA,EAAAjN,YAAA,YAAA,IAGA6O,EAAApQ,SAAA,YAAA,EACA,MAAAoQ,EAAA5B,KAAA,IAAA,GACA4B,EAAAxJ,SAAA,gBAAAwJ,EAAA5B,KAAA,IAAA,EAAA,GAAA,EAAAxO,SAAA,YAAA,GAGAnB,KAAAwR,gBAAAF,CAAA,CACA,EAEA9B,cAAA,WACA,OAAAtQ,EAAA,4GAAA,CACA,EAEAuS,gBAAA,SAAA1O,GACA/B,IAAAmQ,EAAAjS,EAAA6D,EAAA4N,MAAA,EAAArN,OAAA,EAAAC,KAAA,OAAA,EACA,EAAA4N,EAAArE,SACAqE,EAAAC,KAAA,UAAA,CAAAD,EAAAC,KAAA,SAAA,CAAA,EACApR,KAAAqR,cAAAF,CAAA,EAEA,EAEAO,oBAAA,SAAA3O,GACA/B,IAAAoD,EAAApE,KACAyP,EAAAzP,KAAAwP,cAAA,EAAAjM,KAAA,2CAAA,EACArE,EAAA6D,EAAA4N,MAAA,EAAAgB,GAAA,UAAA,EACAlC,EAAA2B,KAAA,UAAA,SAAA,EAEA3B,EAAA2B,KAAA,UAAA,EAAA,EAEA3B,EAAA/I,KAAA,WACAtC,EAAAiN,cAAAnS,EAAAc,IAAA,CAAA,CACA,CAAA,EACAA,KAAAwR,gBAAA/B,CAAA,CACA,EAEA+B,gBAAA,SAAAF,GAEAtQ,IAAAuO,EAAAvP,KAAAwP,cAAA,EACAxO,IAAAyO,EAAAF,EAAAhM,KAAA,iDAAA,EAAAuJ,OACA8E,EAAArC,EAAAhM,KAAA,yDAAA,EAAAuJ,OAEAyC,EAAAhM,KAAA,mDAAA,EAAAqN,KAAAgB,CAAA,EAGAA,GAAAnC,EACAF,EAAAhM,KAAA,kCAAA,EAAA6N,KAAA,UAAA,CAAA,CAAA,EACA,GAAAQ,GACArC,EAAAhM,KAAA,kCAAA,EAAA6N,KAAA,UAAA,CAAA,CAAA,CAEA,EAGAS,OAAA,SAAA9O,GACA/B,IAAAoD,EAAApE,KACA,GAAA+C,EAAA+O,OAAA,IAAA/O,EAAA+O,OAAA,IAAA/O,EAAA+O,QAGAC,aAAA/R,KAAAgS,WAAA,EACAhS,KAAAgS,YAAAtQ,WAAA,WACA0C,EAAA6N,eAAAlP,CAAA,CACA,EAAA,GAAA,EACA,EAEAkP,eAAA,SAAAlP,GACA/B,IAAAkR,EAAAhT,EAAA6D,EAAA4N,MAAA,EAAAwB,IAAA,EAAAC,SAAA,EAAAC,YAAA,EACAC,EAAApT,EAAA6D,EAAA4N,MAAA,EAAAnI,QAAA,gDAAA,EAAAjF,KAAA,wBAAA,EAAAwI,SAAA,EACAwG,EAAArT,EAAA6D,EAAA4N,MAAA,EAAAnI,QAAA,gDAAA,EAAAjF,KAAA,6BAAA,EAIAiP,GAFAD,EAAA/O,KAAA,EACA8O,EAAAhP,OAAA,EAAAkI,KAAA,EACA,CAAA,GAEAtM,EAAAwH,KAAA4L,EAAA,SAAA3L,EAAAC,GACA5F,IAAAyR,EAAAvT,EAAAc,IAAA,EAAAuD,KAAA,mBAAA,EACAmP,EAAA,IAAAC,OAAA,IAAAT,EAAA,IAAA,GAAA,EACA,CAAA,EAAAO,EAAA7B,KAAA,EAAAyB,YAAA,EAAA/R,QAAA4R,CAAA,GACAM,EAAA,CAAA,EACAtT,EAAAwH,KAAA+L,EAAA,WACAvT,EAAAc,IAAA,EAAA4H,KAAA1I,EAAAc,IAAA,EAAA4Q,KAAA,EAAAhC,QAAA8D,EAAA,mDAAA,CAAA,CACA,CAAA,EACAxT,EAAAc,IAAA,EAAAwL,KAAA,GAEAtM,EAAAc,IAAA,EAAAwD,KAAA,CAEA,CAAA,EACAgP,IACAD,EAAA/G,KAAA,EACA8G,EAAAhP,OAAA,EAAAE,KAAA,EAEA,EAEAoP,KAAA,SAAA7P,GACA7D,EAAA6D,EAAA4N,MAAA,EAAAxP,SAAA,wBAAA,EAAA4G,SAAA,EAAArF,YAAA,wBAAA,EACAxD,EAAA6D,EAAA4N,MAAA,EAAArN,OAAA,EAAAyE,SAAA,EAAAxE,KAAA,GAAA,EAAAb,YAAA,wBAAA,EACA1B,IAAA6R,EAAA3T,EAAA6D,EAAA4N,MAAA,EAAA7P,KAAA,MAAA,EACAE,IAAAsR,EAAApT,EAAA6D,EAAA4N,MAAA,EAAAnI,QAAA,+BAAA,EAAAT,SAAA,wBAAA,EAAAgE,SAAA,EAEAuG,EAAAQ,QAAA,EAAAF,KAAA5S,KAAA+S,cAAAF,EAAA,EACAP,EAAAhP,OAAA,EAAAvB,OAAAuQ,CAAA,CACA,EAEAS,cAAA,CACAC,GAAA,SAAAC,EAAAC,GAGA,OAFAD,EAAA/T,EAAA+T,CAAA,EAAAnS,KAAA,OAAA,GACAoS,EAAAhU,EAAAgU,CAAA,EAAApS,KAAA,OAAA,GACAmS,EACA,EACAA,EAAAC,EACA,CAAA,EAEA,CAEA,EACAC,GAAA,SAAAF,EAAAC,GAGA,OAFAD,EAAA/T,EAAA+T,CAAA,EAAAnS,KAAA,OAAA,GACAoS,EAAAhU,EAAAgU,CAAA,EAAApS,KAAA,OAAA,GACAmS,EACA,CAAA,EACAA,EAAAC,EACA,EAEA,CAEA,EACAE,QAAA,SAAAH,EAAAC,GAGA,OAFAD,EAAA/T,EAAA+T,CAAA,EAAAnS,KAAA,SAAA,GACAoS,EAAAhU,EAAAgU,CAAA,EAAApS,KAAA,SAAA,GACAmS,EACA,CAAA,EACAA,EAAAC,EACA,EAEA,CAEA,EACAG,UAAA,SAAAJ,EAAAC,GAGA,OAFAD,EAAA/T,EAAA+T,CAAA,EAAAnS,KAAA,WAAA,GACAoS,EAAAhU,EAAAgU,CAAA,EAAApS,KAAA,WAAA,GACAmS,EACA,CAAA,EACAA,EAAAC,EACA,EAEA,CAEA,CACA,EAEAhD,kBAAA,WACA,GAAA,GAAAlQ,KAAAgD,MAAAwF,QAAA,YAAA,EAAAjF,KAAA,qBAAA,EAAAuJ,OAAA,CACA9L,IAAAoD,EAAApE,KACAsT,EAAApU,EAAA,2HAAAgE,KAAA,wBAAA,EAAA,kBAAA,EACAoQ,EAAA7C,MAAA,WACArM,EAAAkI,aAAA,CACA,CAAA,EACAtM,KAAAgD,MAAAwF,QAAA,YAAA,EAAAjF,KAAA,2BAAA,EAAA8M,OAAAiD,CAAA,CACA,CACA,EAEAzD,qBAAA,WACA7P,KAAAgD,MAAAwF,QAAA,YAAA,EAAAjF,KAAA,qBAAA,EAAA+E,OAAA,CACA,EAEAqD,kBAAA,WACA3L,KAAAgD,MAAAwF,QAAA,YAAA,EAAAjF,KAAA,2BAAA,EAAAC,KAAA,CACA,CACA,CAAA,EAGAvE,SAAAK,KAAAC,MAAAoJ,SAAAiF,eAAA,SAAA9M,EAAAwM,GACA,GAAAI,MAAAJ,GAAA,IAAAA,EAYA,OAAA,KAXAtM,IAAA2M,EAAA7M,EAAA6M,QAAA1H,MAAA,GAAA,EACAsN,EAAAzS,EAAAyS,aAAAtN,MAAA,GAAA,EACA,IAAAjF,IAAA2F,EAAA,EAAAA,EAAAgH,EAAAb,OAAAnG,CAAA,GACA,GAAA2G,GAAAK,EAAAhH,IACA+G,MAAA6F,EAAA5M,IAAA,IAAA4M,EAAA5M,GACA,OAAA4M,EAAA5M,GAIA,OAAA7F,EAAAwM,KAGA,ECtuBArO,SAAAK,KAAAC,MAAAmJ,KAAA5E,SAAAxE,KAAAS,OAEA,CAEA2H,QAAA,KAMAS,OAAA,WACAxI,IAAAqD,MAAAyE,OAAA,CACAC,QAAAxI,EAAA,SAAA,EAAA6C,OAAA/B,KAAA0H,OAAA,EACAP,YAAA,eACAqM,UAAA,CAAA,EACAtM,MAAA,GACA,CAAA,EACAmB,OAAA,MAAA,CACA,CAEA,CAAA,EClBApJ,SAAAK,KAAAmU,QAAA3P,SAAAxE,KAAAS,OAEA,CAEA2T,GAAAxU,EAAA,MAAA,EAGAkL,OAAA,CACAuJ,gCAAA,SACA,EAMAvM,WAAA,aAIAwM,QAAA,SAAA7Q,GACA,GAAApD,IAAAS,OAAAI,YAAAqT,WAAA,CACA7S,IAAA8S,EAAA,IAAA7U,SAAAK,KAAAC,MAAAoJ,SAEA,OADAmL,EAAArI,aAAAvM,EAAA6D,EAAA4N,MAAA,EAAAhB,KAAA,MAAA,CAAA,EACA,CAAA,CACA,CACA,CACA,CAAA,EC9BA,IAAA1Q,SAAAK,KAAAmU,OACA,CAAA","file":"evmmodal.min.js","sourcesContent":["/* Copyright Epoq Legal Ltd 2009-2015 */\r\n\r\n//needed to support javascript changes in separate sites\r\nvar UserDocs = (typeof UserDocs == \"undefined\") ? {} : UserDocs;\r\n\r\n$(function(){","/**\r\n * Base namespace for this application. variables not in an object should live in here\r\n * @namespace\r\n */\r\n\r\n/**\r\n * UserDocs.Model\r\n * @namespace\r\n */\r\nUserDocs.Model = {};\r\n\r\n/**\r\n * UserDocs.Collection\r\n * @namespace\r\n */\r\nUserDocs.Collection = {};\r\n\r\n/**\r\n * UserDocs.Router\r\n * @namespace\r\n */\r\nUserDocs.Router = {};\r\n\r\n/**\r\n * UserDocs.View\r\n * @namespace\r\n */\r\nUserDocs.View = {};\r\n\r\n/**\r\n * UserDocs.View.Modal\r\n * @namespace\r\n */\r\nUserDocs.View.Modal = {};\r\n\r\n/** \r\n * load in default config values and allow inheriting sites to\r\n * override these AND extend existing classes to allow additional functionality \r\n * that simply a new view could not achieve \r\n */\r\n\r\nUserDocs.Config = {\r\n\textendObjects: function() {},\r\n\t\t\r\n\tload: function() {\r\n\t\tif (ele.SiteConfig) {\r\n console.log('found config!');\r\n\t\t\t$.extend(true, this, ele.SiteConfig)\r\n\t\t\tthis.extendObjects();\r\n\t\t}\r\n\t},\r\n\t\t\r\n\t/** permissions */\r\n\tpermissions: function(key){\r\n\r\n\t\tif (this.userType() === \"customer\" || ele.config.directory.indexOf('authorpreview') > -1 || (ele.config.permissions[key] && ele.config.permissions[key] > 0)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\t\r\n\tuser: ele.config.usersession,\r\n\t\t\r\n\tuserId: function() {\r\n\t\treturn this.user.id;\r\n\t},\r\n\t\r\n\tuserType: function() {\r\n\t\treturn this.user.type;\r\n\t}\r\n};","/**\r\n* adding an additional method to the base prototype model for calling our server - since we're not using a\r\n* RESTful interface and we want to be able to cancel stuff.\r\n* \r\n* @example\r\n* \r\n* UserDocs.remote(\r\n*\t\"userdocumentdelete\", //your event name and nothing else\r\n*\t{DOCUMENTID: this.id}, //your data as an object\r\n* );\r\n* \r\n* @class \t\r\n*\r\n* @param \t{String} \t\tevent\t\tthe Coldfusion event - only event is sent so we can change this method to post the event if needed!\r\n* @param \t{Object} \t\tdata \t\tA data object to send in the POST request\r\n* \r\n*/\r\n\r\nUserDocs.remote = function(event, data, message) {\r\n\r\n let checkLoggedIn = false,\r\n ajaxLoading = $('.e_ajax_loading').fadeIn();\r\n\r\n $('html').addClass(\"e_body_ajax_loading\");\r\n\r\n //headers\r\n let headers = new Headers({\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n });\r\n\r\n //set up timeouts on fetch\r\n const controller = new AbortController();\r\n const signal = controller.signal;\r\n\r\n setTimeout(() => controller.abort(), 600000);//10 minute timeout for JCT exports!\r\n\r\n //sort out the data package. Needs the session token. Needs to be\r\n //formatted as form fields\r\n data = data ? data : {};\r\n data[\"_t\"] = ele.config.usersession._t;\r\n let formData = new FormData();\r\n for (let key in data) {\r\n formData.append(key, data[key]);\r\n }\r\n //go\r\n return fetch(ele.uri.buildUrl(event, {ajax:1}),\r\n {\r\n method: data ? \"POST\" : \"GET\",\r\n body: formData,\r\n signal: signal\r\n }\r\n ).then(response => {\r\n if(!response.ok) {\r\n if(response.status === 404) throw new Error(\"Not found\")\r\n else if(response.status === 401) throw new Error(\"Unauthorized\")\r\n else if(response.status === 403) throw new Error(\"Unauthorized\")\r\n else throw new Error(\"Other error\")\r\n }\r\n else {\r\n ajaxLoading.fadeOut();\r\n $('html').removeClass(\"e_body_ajax_loading\");\r\n return response;\r\n }\r\n }).then(response => {\r\n return response.json(); //response is now the json returned from server\r\n }).catch(e => {\r\n $('html').removeClass(\"e_body_ajax_loading\");\r\n if (e.message == \"Unauthorized\") {\r\n let modal = ele.modal.confirm(\"
\" + i18n(\"js_save_failed_long\") + \"
\",\r\n function () {\r\n document.location.reload(true);\r\n }\r\n );\r\n modal.parent().find('.e_cancel').hide();\r\n } else if (e.message.indexOf(\"abort\") > -1 || e.message.indexOf(\"Failed to fetch\") > -1) {\r\n let modal = ele.modal.confirm(\"\" + i18n('js_timout_c') + \"
\");\r\n modal.parent().find('.e_cancel').hide();\r\n } else if(message){\r\n console.log(message);\r\n let modal = ele.modal.confirm(\"\" + message + \"
\");\r\n modal.parent().find('.e_cancel').hide();\r\n }\r\n throw e;\r\n });\r\n\r\n};\r\n\r\n//additionally need to handle the AJAX requests handled by Backbone. There's no way to tap into these, so wither create\r\n// a custom Model and Collection base class to extend from or set the option via the global jQuery AJAX config\r\n$.ajaxSetup({\r\n cache: false,\r\n statusCode: {\r\n 401: function () {\r\n let modal = ele.modal.confirm(\"\" + i18n(\"js_save_failed_long\") + \"
\",\r\n function() {\r\n document.location.reload(true);\r\n }\r\n );\r\n modal.parent().find('.e_cancel').hide();\r\n }\r\n }\r\n});","/**\r\n * The model representing the document created on the fly by a template\r\n * @class\r\n */\r\nUserDocs.Model.EVMDocument = Backbone.Model.extend(\r\n/** @lends UserDocs.Model.EVMDocument# */\r\n{\r\n\t/** set the field from the server to use as the unique id - can be accessed using this.id */\r\n\tidAttribute: \"DOCUMENTID\",\r\n\t\r\n\tguid: 0,\r\n\t\r\n\tEVMData: [],\r\n\r\n\t/** \r\n\t * Fetch the document\r\n\t */\r\n\tloadTrialDocument: function(templateId) {\r\n\t\tlet _this = this;\r\n return UserDocs.remote(\r\n\t\t\t\"tryDocumentAJAX\",\r\n\t\t\t{\r\n\t\t\t\tRAPIDOCSID: templateId\r\n\t\t\t}\r\n\t\t).then(async userdocument => {\r\n let document = userdocument.DOCUMENT;\r\n if (userdocument.DOCUMENTBRANDNEW == true && userdocument.TEMPLATEEXISTS == false) {\r\n _this.parse(document);\r\n _this.set(document);\r\n\r\n //fetchEVMs for this doc\r\n let EVMData = await _this.getEVMs();\r\n if (ele.config.permissions.evmdocuments) {\r\n let docList = await _this.getDocumentList();\r\n }\r\n } else {\r\n //an instance already exists. Do nothing\r\n _this.guid = userdocument.GUID;\r\n }\r\n return userdocument;\r\n\t\t}).catch(e => {\r\n\t\t //we want to UI to handle error in EVMs by just opening up the document\r\n throw new Error(\"Error\")\r\n });\r\n\t},\r\n\t\r\n\t/** \r\n\t * Fetch the document - we-re assuming that it is a user document\r\n\t */\r\n\taddItem: function(productpriceid) {\r\n\t\tlet _this = this;\r\n return UserDocs.remote(\r\n\t\t\t\"addItemAjax\",\r\n\t\t\t{\r\n\t\t\t\tPRODUCTPRICEID: productpriceid\r\n\t\t\t}\r\n ).then(async userdocument => {\r\n if (userdocument.guid) {\r\n _this.parse(userdocument);\r\n _this.set(userdocument);\r\n\r\n let EVMData = await _this.getEVMs();\r\n return userdocument;\r\n } else {\r\n throw new Error(\"Error\")\r\n }\r\n }).catch(e => {\r\n //we want to UI to handle error in EVMs by just opening up the document\r\n throw new Error(\"Error\")\r\n });\r\n\t},\r\n\r\n createDocument: function(rapidocsid, serviceid){\r\n let _this = this;\r\n return UserDocs.remote(\r\n \"createDocumentAjax\",\r\n {\r\n RAPIDOCSID: rapidocsid,\r\n SERVICEID: serviceid\r\n }).then(async function(userdocument) {\r\n\r\n if (userdocument.guid) {\r\n _this.parse(userdocument);\r\n _this.set(userdocument);\r\n\r\n return await _this.getEVMs();\r\n } else {\r\n throw new Error(\"Document not found\")\r\n }\r\n }).catch(function() {\r\n //if there's a failure (either from bad json or server failure) handle in UI\r\n throw new Error(\"Document not found\")\r\n }\r\n );\r\n },\r\n\t\r\n\t/**\r\n\t * get the evm table for this document\r\n\t */\r\n\tgetEVMs: function() {\r\n\t\tlet _this = this;\r\n return UserDocs.remote(\r\n\t\t\t\"getDocumentEVMs\",\r\n\t\t\t{\r\n\t\t\t\tDOCUMENTID: this.id\r\n\t\t\t})\r\n .then(function(data) {\r\n _this.EVMData = data.EVMS;\r\n return data.EVMs;\r\n });\r\n\t},\r\n\t\r\n\tgetExternalEVMs: function(documentId) {\r\n return UserDocs.remote(\r\n\t\t\t\"getDocumentEVMs\",\r\n\t\t\t{\r\n\t\t\t\tDOCUMENTID: documentId\r\n\t\t\t});\r\n\t},\r\n\t\r\n\tgetCommonEVMs: function(documentId) {\r\n\r\n return UserDocs.remote(\r\n\t\t\t\"getCommonEVMs\",\r\n\t\t\t{\r\n\t\t\t\tDOCUMENTID1: this.id,\r\n\t\t\t\tDOCUMENTID2: documentId\r\n\t\t\t})\r\n .then(function(data) {\r\n return data.split(\",\");\r\n });\r\n\t},\r\n\r\n\tcopyAllEVMs: function(documentId, evmList) {\r\n\t\tlet _this = this;\r\n return UserDocs.remote(\r\n\t\t\t\"copyAllEVMs\",\r\n\t\t\t{\r\n\t\t\t\tSOURCEDOCUMENTID: documentId,\r\n\t\t\t\tDESTINATIONDOCUMENTID: this.id,\r\n\t\t\t\tEVMDEFINITIONS: evmList\r\n\t\t\t})\r\n .then(function(data) {\r\n\t\t\t\t_this.EVMData = data.EVMS\r\n return data;\r\n });\r\n\t},\r\n\t\r\n\tgetRegistrationEVMs: function() {\r\n return UserDocs.remote(\"getRegistrationEVMs\");\r\n\t},\r\n\t\r\n\tcopyRegistrationEVMs: function (evmList) {\r\n\t\tlet _this = this;\r\n return UserDocs.remote(\r\n\t\t\t\"copyRegistrationEVMs\",\r\n\t\t\t{\r\n\t\t\t\tDOCUMENTID: this.id,\r\n\t\t\t\tEVMDEFINITIONS: evmList\r\n\t\t\t})\r\n .then(function(data) {\r\n _this.EVMData = data.EVMS\r\n return data;\r\n });\r\n\t},\r\n\t\r\n\t/**\r\n\t * get a list of documents with similar EVM tables\r\n\t */\r\n\tgetDocumentList: function() {\r\n\r\n return UserDocs.remote(\r\n\t\t\t\"GetCommonEVMDocuments\",\r\n\t\t\t{\r\n\t\t\t\tRAPIDOCSID: this.get(\"RAPIDOCSID\")\r\n\t\t\t})\r\n .then(function(data) {\r\n return data;\r\n });\r\n\t},\r\n\t/** \r\n\t * ELE is a little bit inconsistent with returning uppercase or lowercase keys\r\n\t * so force uppercase on all \r\n \t * @param {Object} response\r\n\t */\r\n\tparse: function(response) {\r\n\t\t$.each(response, function(i, v) {\r\n\t\t if (i != i.toUpperCase()) {\r\n\t\t\t response[i.toUpperCase()] = v;\r\n\t\t\t delete response[i];\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn response;\r\n\t}\r\n});","/**\r\n * The base view for all modals. Defines basic functions such as opening and closing the dialog library.\r\n * All complex modals used in this application (ie not confirm dialogs) should extend this class\r\n * \r\n * @example\r\n * UserDocs.View.Modal.MyModal = UserDocs.View.Modal.Base.extend({});\r\n *\r\n * @class\r\n */\r\nUserDocs.View.Modal.Base = Backbone.View.extend(\r\n/** @lends UserDocs.View.Modal.Base# */\r\n{\r\n\t/** array of buttons to add to the document */\r\n\tbuttons: [],\r\n\t\r\n\t/** an internal reference to the modal object created */\r\n\tmodal : null,\r\n\t\r\n\t/** title for the modal window */\r\n\ttitle: \"\",\r\n\t\r\n\t/** template to use for help dialog */\r\n\thelpTemplate: null,\r\n\t\r\n\t/** width of the modal */\r\n\twidth: 850,\r\n\t\r\n\t/** additional class to give to dialog */\r\n\tdialogClass: null,\r\n\r\n\t/** \r\n\t * Function called on object creation. Creates a modal using the jQuery UI Modal library extension\r\n\t * created for ELE and located in common/js/ele.modal.js and stores a reference to it\r\n\t */\r\n\tinitialize: function() {\r\n\t\tvar _this = this;\r\n\t\tvar attributes = {};\r\n\t\tif (this.model) attributes = this.model.attributes;\r\n\t\tele.modal.option('width', this.width);\r\n if(typeof this.recommendation != 'undefined'){\r\n attributes = this.recommendation;\r\n }\r\n\t\tthis.modal = ele.modal.create({\r\n\t\t\tbuttons: _this.buttons,\r\n\t\t\tcontent: this.$el.html(this.template(attributes)),\r\n\t\t\tclose: function(){\r\n\t\t\t\t_this.close();\r\n\t\t\t},\r\n\t\t\tdialogClass: _this.dialogClass,\r\n\t\t\ttitle: _this.title,\r\n\t\t\twidth: _this.width\r\n\t\t});\r\n\t\tif (this.helpTemplate) { \r\n\t\t\tthis.modal.siblings('.ui-dialog-titlebar').append(_.template($('#modal_template_help_icon').html()));\r\n\t\t\tthis.modal.siblings('.ui-dialog-titlebar').find('.docHelp').on('click', function(){\r\n\t\t\t\t_this.help();\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\t\r\n\t/** render the modal by calling 'open' on the dialog */\r\n\trender: function() {\r\n\t\tthis.resize();\r\n\t\tthis.modal.dialog(\"open\");\r\n\t},\r\n\t\r\n\t/** close the modal and then removing this object from memory */\r\n\tclose: function() {\r\n\t\tif (this.modal != null) {\r\n\t\t\tthis.modal.dialog('close');\r\n\t\t\tthis.remove();\r\n\t\t}\r\n\t}, \r\n\t\r\n\t/** hide the title bar and close button so modal cannot be hidden without call to action */\r\n\thideTitle: function() {\r\n\t\tthis.modal.closest(\".ui-dialog\").find(\".ui-dialog-titlebar\").hide();\r\n\t},\r\n\t\r\n\t/**\r\n\t * resize and reposition modal as it doesn't do it automatically \r\n\t * usually called when loading in new data\r\n\t */\r\n\tresize: function(){\r\n\t\tele.modal.resize(this.modal);\r\n\t},\r\n\t\r\n\t/** launch a help modal using the help template of the child Object */\r\n\thelp: function() {\r\n\t\tvar helpModal = new UserDocs.View.Modal.Help;\r\n\t\thelpModal.content = this.helpTemplate;\r\n\t\thelpModal.render();\r\n\t}\r\n});","/**\r\n * The View for modal used to populate EVM mappings prior to starting doc\r\n * \r\n * This is quite a hefty class as it's basically a several page app squeezed into a single modal. Short of putting it in an iframe \r\n * and having it live on its own page this was the best option\r\n * @class\r\n * @augments UserDocs.View.Modal.Base\r\n */\r\nUserDocs.View.Modal.EVMModal = UserDocs.View.Modal.Base.extend(\r\n/** @lends UserDocs.View.Modal.EVMModal# */\r\n{\r\n\t/** to be given to the generated element */\r\n\tid: \"document-evm-modal\",\r\n\t\t\t\r\n\t/** define the other views */\r\n\t$viewLoading: \t\tnull,\r\n\t$viewInit:\t\t\tnull,\r\n\t$viewTemplates:\t\tnull,\r\n\t$viewDataPicker: \tnull,\r\n\t$viewDocs: \t\t\tnull,\r\n\t$viewReg: \t\t\tnull,\r\n\t$viewSummary:\t\tnull,\r\n\t\r\n\t/** template to use for the element */\r\n\ttemplate: _.template($('#model_template_evm_loading').html()),\r\n\t\r\n\t/** template list used */\r\n\ttemplateList: {\r\n\t\t\"init\": \t\t\t$('#model_template_evm_init').html(),\r\n\t\t\"init_passdata\": \t$('#model_template_evm_init_passdata').html(),\r\n\t\t\"templates\": \t\t$('#model_template_evm_choose_template').html(),\r\n\t\t\"loading\": \t\t\t$('#model_template_evm_loading').html(),\r\n\t\t\"documents\": \t\t$('#model_template_evm_document_select').html(),\r\n\t\t\"register\": \t\t$('#model_template_evm_registration').html(),\r\n\t\t\"transfer\":\t\t\t$('#model_template_evm_transfer').html(),\r\n\t\t\"summary\":\t\t\t$('#model_template_evm_summary').html()\r\n\t},\r\n\r\n\t/** template for help dialog */\r\n\thelpTemplate: _.template($('#modal_template_evm_help').html()),\r\n\t\r\n\t/** template for help dialog */\r\n\thelpTemplateList: {\r\n\t\t\"init\": \t\t\t$('#modal_template_evm_help').html(),\r\n\t\t\"init_passdata\": \t$('#modal_template_evm_help_transfer_data').html(),\r\n\t\t\"templates\": \t\t$('#modal_template_evm_help_templates').html(),\r\n\t\t\"documents\": \t\t$('#modal_template_evm_help_documents').html(),\r\n\t\t\"register\": \t\t$('#modal_template_evm_help_reg').html(),\r\n\t\t\"transfer\": \t\t$('#modal_template_evm_help_data').html(),\r\n\t\t\"register_summary\": $('#modal_template_evm_help_reg_success').html(),\r\n\t\t\"transfer_summary\": $('#modal_template_evm_help_data_success').html()\r\n\t},\r\n\t\r\n\t/** title of the modal - replaced with a custom header in translations */\r\n\ttitle: \"\",\r\n\r\n\t/** id of selected source doc */\r\n\tcurrentDoc: null,\r\n\t\r\n\t/** a list of the source documents */\r\n\tsourceDocList: null,\r\n\t\r\n\t/** reference to our evm document */\r\n\tevmdocument: null,\r\n\r\n /** boolean to determine whether the customer can go back */\r\n allowBack: true,\r\n\r\n /** boolean to determine whether multiple documents can be transfered */\r\n allowMultiple: true,\r\n\r\n\t/** events we are listening to */\r\n\tevents: {\r\n\t\t\"change .e_evm_transfer_toggle_all\":\t\t\t\t\"toggleAllDataFields\",\r\n\t\t\"click .e_evm_transfer_form td\":\t\t\t\t\t\"toggleDataField\",\r\n\t\t\"click .e_evm_transfer_form .e_evm_transfer_data_table input\":\t\"setDataField\",\r\n\r\n\t\t\"click #e_evm_init_option_start\": \t\t\t\t\t\"openTemplate\",\r\n\t\t\"click #e_evm_summary_start\": \t\t\t\t\t\t\"openTemplate\",\r\n\t\t\"click .e_evm_finish_document\":\t\t\t\t\t\t\"openTemplate\",\r\n\r\n\t\t\"click #e_evm_init_option_document_action\":\t\t\t\"showDocumentList\",\r\n\t\t\"click #e_evm_summary_document_action\":\t\t\t\t\"showDocumentList\",\r\n\t\t\"click .e_btn_evm_select_doc\":\t\t\t\t\t\t\"showDocumentData\",\r\n\t\t\"click #e_evm_confirm_doc_data\":\t\t\t\t\t\"submitEVMDocumentTable\",\r\n\r\n\t\t\"click #e_evm_init_option_registration_action\": \t\"showRegistrationData\",\r\n\t\t\"click .e_evm_registration_confirm\":\t\t\t\t\"submitRegistrationEVMs\",\r\n\r\n\t\t\"keyup .e_evm_document_select_search_template\": \t\"search\",\r\n\t\t\"change .e_evm_document_select_search_template\": \t\"search\",\r\n\t\t\"mouseup .e_evm_document_select_search_template\": \t\"search\",\r\n\t\t\r\n\t\t\"click .e_evm_orderby a\":\t\t\t\t\t\t\t\"sort\",\r\n\t\t\r\n\t\t\"click .e_btn_back\":\t\t\t\t\t\t\t\t\"back\"\r\n\t},\r\n\t\t\t\t\r\n\tclear: function() {\r\n\t\tif (this.$viewLoading) \t\tthis.$viewLoading.hide();\r\n\t\tif (this.$viewInit) \t\tthis.$viewInit.hide();\r\n\t\tif (this.$viewTemplates) \tthis.$viewTemplates.hide();\r\n\t\tif (this.$viewDataPicker) \tthis.$viewDataPicker.hide();\r\n\t\tif (this.$viewDocs) \t\tthis.$viewDocs.hide();\r\n\t\tif (this.$viewReg) \t\t\tthis.$viewReg.hide();\r\n\t\tif (this.$viewSummary) \t\tthis.$viewSummary.hide();\r\n\t},\r\n\t\r\n\tback: function(){\r\n\t\tthis.clear();\r\n\t\tthis.currentDoc = null;\r\n\t\tthis.modal.dialog(\"option\", \"title\", i18n('js_evm_please_select_document'));\r\n\t\tthis.$viewDocs.show();\r\n\t\tthis.resize();\r\n\t},\r\n\t\r\n\tloading: function() {\r\n\t\tthis.clear();\r\n\t\tthis.$viewLoading.show();\r\n\t\tthis.resize();\r\n\t},\r\n\t\r\n\t/** used when not in conjunction with MyServices or MyDocuments */\r\n\tloadTemplate: function(url) {\r\n let _this = this;\r\n _this.removeCloseButton(); // Close button removed in all instances\r\n\t\tthis.destinationUrl = url; // keep a record of the original destination\r\n\t\tthis.model = new UserDocs.Model.EVMDocument();\r\n\t\tthis.render();\r\n\t\tif (url.indexOf(\"additem\") > 1) {\r\n\t\t\t//sites where products have price of 0.\r\n\t\t\tlet productPriceId = ele.uri.getParameterByName(url, 'productpriceid');\r\n\t\t\t\r\n\t\t\tthis.model.addItem(productPriceId).then(function(){\r\n\t\t\t\t//this is always a new document. Start the EVM process\r\n\t\t\t\tif (_this.model.get(\"GUID\")) {\r\n\t\t\t\t\t_this.evmdocument = _this.model;\r\n\t\t\t\t\t_this.$viewLoading = _this.$el.children();\r\n\t\t\t\t\t_this.loadInit(false);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.top.location.href = ele.uri.buildUrl(\"addItem\", {productpriceid:productPriceId});\r\n\t\t\t\t}\r\n\t\t\t}).catch(function() {\r\n\t\t\t //either the item is not an EVM document or the process has errored. Continue to document\r\n window.top.location.href = ele.uri.buildUrl(\"addItem\", {productpriceid:productPriceId});\r\n });\r\n\t\t\t\r\n\t\t}\r\n\t\telse if (url.indexOf(\"createdocument\") > 1) {\r\n //sites where products have price of 0.\r\n let rapidocsid = ele.uri.getParameterByName(url, 'rapidocsid');\r\n let serviceid = ele.uri.getParameterByName(url, 'serviceid');\r\n\r\n this.model.createDocument(rapidocsid, serviceid).then(function(){\r\n //this is always a new document. Start the EVM process\r\n if (_this.model.get(\"GUID\")) {\r\n _this.evmdocument = _this.model;\r\n _this.$viewLoading = _this.$el.children();\r\n _this.loadInit(false);\r\n } else {\r\n console.log('fail');\r\n //window.top.location.href = ele.uri.buildUrl(\"createdocument\", {rapidocsid:rapidocsid,serviceid:serviceid});\r\n }\r\n });\r\n }\r\n\t\telse {\r\n\t\t\t//this is a trial document\r\n let templateId = ele.uri.getParameterByName(url, 'rapidocsid');\r\n\t\t\tthis.model.loadTrialDocument(templateId)\r\n .then(function() {\r\n\t\t\t\tif (_this.model.guid != 0) {\r\n\t\t\t\t\t//document trial already exists - redirect\r\n\t\t\t\t\tlet vars = {rapidocsid:templateId};\r\n\t\t\t\t\tif (ele.uri.getParameterByName(url, 'productpriceid')) {\r\n\t\t\t\t\t\tvars.productpriceid = ele.uri.getParameterByName(url, 'productpriceid');\r\n\t\t\t\t\t}\r\n\t\t\t\t\twindow.top.location.href = ele.uri.buildUrl(\"tryDocument\", vars);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_this.evmdocument = _this.model;\r\n\t\t\t\t\t_this.$viewLoading = _this.$el.children();\r\n\t\t\t\t\t_this.loadInit(false);\r\n\t\t\t\t}\r\n\t\t\t}).catch(function () {//no docs found or error thrown - open template\r\n\t\t\t\tif (_this.model.guid != 0) {\r\n\t\t\t\t\t//document trial already exists - redirect\r\n let vars = {rapidocsid:templateId};\r\n\t\t\t\t\tif (ele.uri.getParameterByName(url, 'productpriceid')) {\r\n\t\t\t\t\t\tvars.productpriceid = ele.uri.getParameterByName(url, 'productpriceid');\r\n\t\t\t\t\t}\r\n\t\t\t\t\twindow.top.location.href = ele.uri.buildUrl(\"tryDocument\", vars);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (ele.config.permissions.evmregistration) {\r\n\t\t\t\t\t\t//hide doc option but show registration\r\n\t\t\t\t\t\t_this.evmdocument = _this.model;\r\n\t\t\t\t\t\t_this.$viewLoading = _this.$el.children();\r\n\t\t\t\t\t\t_this.loadInit(true);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t_this.evmdocument = _this.model;\r\n\t\t\t\t\t\t_this.openTemplate();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n //@parameter nodocuments: whether to force hide the document option\r\n\tloadInit: function(nodocuments) {\r\n\t if(nodocuments == false){\r\n\t nodocuments = !ele.config.usersession.lastDocument; // If there are no documents then we should not offer existing documents.\r\n }\r\n let _this = this;\r\n\t\tif (ele.config.permissions.evmregistration) {\r\n\t\t\tthis.evmdocument.getRegistrationEVMs().then(function(regData) {\r\n let registrationEVMs = _this.parseRegEvms(_this.evmdocument.EVMData, regData);\r\n\t\t\t if (Object.keys(registrationEVMs).length === 0 && (!ele.config.permissions.evmdocuments || nodocuments)) {\r\n\t\t\t //there's no reg EVMs abort AND we're not showing document option\r\n _this.openTemplate();\r\n return;\r\n }\r\n\t\t\t\t_this.$viewLoading.hide();\r\n\t\t\t\t_this.$viewInit = $(\r\n\t\t\t\t\t\t_.template(_this.templateList.init)( \r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tevms: registrationEVMs,\r\n\t\t\t\t\t\t\tnodocuments: nodocuments\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t\t_this.$viewInit.appendTo(_this.$el);\r\n\t\t\t\t_this.resize();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.$viewLoading.hide();\r\n\t\t\tthis.$viewInit = $(_.template(this.templateList.init)(this.model.attributes));\r\n\t\t\tthis.$viewInit.appendTo(this.$el);\r\n\t\t\tthis.resize();\r\n\t\t}\r\n\t},\r\n\t\t\r\n\tparseLocalEvms: function(localData) {\r\n let evms = {};\r\n\t\t_.each(localData, function(i) {\r\n\t\t\tif (i.answered && i.loopMapping == \"\" && (!i.isLoopIndex || (i.isLoopIndex && i.value !== \"0\")) && !i.defaultnotasked)\r\n\t\t\t{\r\n\t\t\t\tevms[i.name] = _.clone(i);\r\n\t\t\t\tif (i.options != undefined && i.options != \"\") evms[i.name].value = UserDocs.View.Modal.EVMModal.getOptionLabel(i, evms[i.name].value);\r\n\t\t\t\tif (i.typeName == \"date\") { evms[i.name].value = ele.date.formatDate(ele.date.flipReverseDate(evms[i.name].value)); }\r\n\t\t\t\t\r\n\t\t\t\tif (i.isLoopIndex){\r\n\t\t\t\t\tevms[i.name].children = {};\r\n\t\t\t\t\t_.each(localData, function(j){\r\n\t\t\t\t\t\tif (j.loopMapping == i.name)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tevms[i.name].children[j.name] = j;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn evms;\r\n\t},\r\n\r\n\tparseEvms: function(localData, externalData, commonData) {\r\n let evms = {};\r\n let localEVMs = {};\r\n\r\n\t\tif (commonData != \"\") {\r\n\t\t\t\r\n\t\t\t//format data into a searchable object\r\n\t\t\t_.each(localData, function(i) {\r\n\t\t\t\tlocalEVMs[i.name] = _.clone(i);\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t_.each(externalData, function(i){\r\n\t\t\t\tif (($.inArray(i.name, commonData) > -1 || i.isLoopIndex === 1) && i.answered && i.loopMapping == \"\" && !i.defaultnotasked && i.risk == 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tconsole.log('populated');\r\n\t\t\t\t\tevms[i.name] = {\r\n\t\t\t\t\t\tinsertAnswered: i.answered,\r\n\t\t\t\t\t\tinsertValue: i.value,\r\n\t\t\t\t\t\tlabel: i.label,\r\n\t\t\t\t\t\tisLoopIndex: i.isLoopIndex\r\n\t\t\t\t\t};\r\n\t\t\t\t\tif (i.options != undefined && i.options != \"\") {\r\n\t\t\t\t\t\tevms[i.name].insertValue = UserDocs.View.Modal.EVMModal.getOptionLabel(i, evms[i.name].insertValue);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i.typeName == \"date\") { evms[i.name].insertValue = ele.date.formatDate(ele.date.flipReverseDate(evms[i.name].insertValue)); }\r\n\t\t\t\t\tif(i.isLoopIndex == 0) {\r\n\t\t\t\t\t\ti.isLoopIndex = false;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ti.isLoopIndex = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i.isLoopIndex || i.isLoopIndex == 1){\r\n\t\t\t\t\t\tif ((i.isLoopIndex) && i.value === \"0\") {\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tdelete evms[i.name];\r\n\t\t\t\t\t\t} else {\r\n let loopToFlat = false;\r\n\t\t\t\t\t\t\tevms[i.name].children = {};\r\n\t\t\t\t\t\t\t_.each(externalData, function(j){\r\n\t\t\t\t\t\t\t\tif (j.loopMapping == i.name && commonData.indexOf(j.name.replace(/\\[.*?\\]/g, \"\")) > -1)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t//add source evm to list\r\n\t\t\t\t\t\t\t\t\tevms[i.name].children[j.name] = {\r\n\t\t\t\t\t\t\t\t\t\tinsertAnswered: j.answered,\r\n\t\t\t\t\t\t\t\t\t\tinsertValue: j.value,\r\n\t\t\t\t\t\t\t\t\t\tlabel: j.label\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t//see if we can find a local evm we're overwriting\r\n\t\t\t\t\t\t\t\t\tif (localEVMs[j.name]) { \r\n\t\t\t\t\t\t\t\t\t\t//find loop => existing loop\r\n\t\t\t\t\t\t\t\t\t\t$.extend(evms[i.name].children[j.name], localEVMs[j.name]);\r\n\t\t\t\t\t\t\t\t\t} else if (localEVMs[j.name.replace(/\\[.*?\\]/g, \"\")] && localEVMs[j.name.replace(/\\[.*?\\]/g, \"\")].loopControlled == 1){\r\n\t\t\t\t\t\t\t\t\t\t//find loop = > empty loop\r\n\t\t\t\t\t\t\t\t\t\t$.extend(evms[i.name].children[j.name], localEVMs[j.name.replace(/\\[.*?\\]/g, \"\")]);\r\n\t\t\t\t\t\t\t\t\t} else if (localEVMs[j.name.replace(\"[1]\", \"\")]){\r\n\t\t\t\t\t\t\t\t\t\t//find loop => flat\r\n\t\t\t\t\t\t\t\t\t\t$.extend(evms[i.name].children[j.name], localEVMs[j.name.replace(\"[1]\", \"\")]);\r\n\t\t\t\t\t\t\t\t\t\tloopToFlat = true; //we only show one layer of the loop when passing from loop => flat so flag it now\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t//no loop EVMs were found in the commonData match - remove loop index from matches.\r\n\t\t\t\t\t\t\tif (_.size(evms[i.name].children) == 0) delete evms[i.name];\r\n\t\t\t\t\t\t\t//remove secondary+ loop items\r\n\t\t\t\t\t\t\tif (loopToFlat) {\r\n\t\t\t\t\t\t\t\tevms[i.name].insertValue = Math.min(1, evms[i.name].insertValue); //set loop index to max 1\r\n\t\t\t\t\t\t\t\t_.each(evms[i.name].children, function(j, key) {\r\n\t\t\t\t\t\t\t\t\tif (key.indexOf(\"[1]\") == -1) delete evms[i.name].children[key];\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} \r\n\r\n\t\t\t\t\t//add local data\r\n\t\t\t\t\tif (localEVMs[i.name] && (!i.isLoopIndex || i.isLoopIndex == 0)) {\t\t\t\t\t\t\r\n let j = localEVMs[i.name];\r\n\t\t\t\t\t\tif (j.readOnly == 1) {\r\n\t\t\t\t\t\t\tdelete evms[i.name];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (j.options != undefined && j.options != \"\") {\r\n\t\t\t\t\t\t\t\tj.value = UserDocs.View.Modal.EVMModal.getOptionLabel(j, j.value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (j.typeName == \"date\") { j.value = ele.date.formatDate(ele.date.flipReverseDate(j.value)); }\r\n\t\t\t\t\t\t\t$.extend(evms[i.name], j);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (localEVMs[i.name + \"[1]\"]) {\r\n let j = localEVMs[i.name + \"[1]\"];\r\n\t\t\t\t\t\tif (j.readOnly == 1) {\r\n\t\t\t\t\t\t\tdelete evms[i.name];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (j.options != undefined && j.options != \"\") {\r\n\t\t\t\t\t\t\t\tj.value = UserDocs.View.Modal.EVMModal.getOptionLabel(j, j.value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (j.typeName == \"date\") { j.value = ele.date.formatDate(ele.date.flipReverseDate(j.value)); }\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$.extend(evms[i.name], j);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\treturn evms;\r\n\t},\r\n\t\r\n\tparseRegEvms: function(localData, regData) {\r\n let evms = {};\r\n\t\tif (regData) {\r\n\t\t\t_.each(localData, function(j) {\r\n\t\t\t\t_.each(regData, function(v, i) {\r\n\t\t\t\t\tif (j.name == i)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tevms[i] = _.clone(j);\r\n\t\t\t\t\t\tevms[i].insertValue = v;\r\n\t\t\t\t\t\tif (j.options != undefined && j.options != \"\") {\r\n\t\t\t\t\t\t\tevms[i].insertValue = UserDocs.View.Modal.EVMModal.getOptionLabel(j, evms[i].insertValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (evms[i].typeName == \"date\") { evms[i].insertValue = ele.date.formatDate(ele.date.flipReverseDate(evms[i].insertValue)); }\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn evms;\r\n\t},\r\n\t\r\n\t/** show the list of EVMs to select from */\r\n\tshowDataImport: function(externalData, commonData, textEdited) {\r\n\r\n\t\tthis.helpTemplate = this.helpTemplateList.transfer;\r\n\t\tthis.$viewLoading.hide();\r\n\t\tif (this.$viewDataPicker) this.$viewDataPicker.remove();\r\n\t\tthis.$viewDataPicker = $(\r\n\t\t\t_.template(this.templateList.transfer)( \r\n\t\t\t\t{\r\n\t\t\t\t\t'evmData': this.parseEvms(this.evmdocument.EVMData, externalData, commonData),\r\n\t\t\t\t\t'allowBack': this.allowBack,\r\n\t\t\t\t\t'DOCUMENTTEXTWASEDITED': textEdited\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\t\t\r\n\t\t\r\n\t\tthis.$viewDataPicker.appendTo(this.$el);\r\n\r\n\t\tthis.resize();\r\n\t},\r\n\t\r\n\t/** submit the list of EVMs */\r\n\tsubmitEVMDocumentTable: function(e) {\r\n let _this = this;\r\n let form = this.getActiveForm();\r\n let evmList = [];\r\n let fields = form.find('input.e_evm_transfer_field:checked');\r\n\t\t$.each(fields, function(i, v){\r\n\t\t\tevmList.push($(v).attr('name'))\r\n\t\t});\r\n\t\tif (evmList.length == 0) {\r\n\t\t\talert(i18n('js_evm_select_fields_error'));\r\n\t\t} else {\r\n\t\t\tthis.loading();\r\n\t\t\tthis.removeContinueButton();\r\n\t\t\tthis.evmdocument.copyAllEVMs(this.currentDoc, evmList.join(\",\")).then(function(data){\r\n\t\t\t\t_this.$viewLoading.hide();\r\n\t\t\t\t_this.helpTemplate = _this.helpTemplateList.transfer_summary;\r\n\t\t\t\t_this.modal.dialog(\"option\", \"title\", i18n('js_evm_import_successful'));\r\n\t\t\t\tif (_this.$viewSummary) _this.$viewSummary.remove();\r\n\t\t\t\t_this.$viewSummary = $(_.template(_this.templateList.summary)({'evms': _this.parseLocalEvms(_this.evmdocument.EVMData), evmList: evmList, 'failures': data.FAILURES, 'addMore': _this.allowMultiple}));\r\n\t\t\t\t_this.$viewSummary.appendTo(_this.$el);\r\n\t\t\t\t_this.resize();\r\n\t\t\t}).catch((e) => {\r\n\t\t\t console.log(\"ERROR\", e);\r\n\t\t\t\t_this.$viewLoading.hide();\r\n\t\t\t\t_this.addContinueButton();\r\n\t\t\t\t$(\"\" + i18n('js_unexpected_error') + \"
\").appendTo(_this.$el);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\t\t\r\n\t/** display a list of documents */\r\n\tshowDocumentList: function(e) {\r\n let _this = this;\r\n\t\tthis.currentDoc = null;\r\n\t\tif (this.$viewDocs) this.$viewDocs.remove();\r\n\t\tthis.loading();\r\n\t\tthis.evmdocument.getDocumentList().then(function(docData){\r\n\t\t\t_this.sourceDocList = docData;\r\n\t\t\t_this.addContinueButton();\r\n\t\t\t_this.helpTemplate = _this.helpTemplateList.documents;\r\n _this.$el.before('\" + i18n('js_unexpected_error') + \"
\").appendTo(_this.$el);\r\n\t\t});\r\n\t},\r\n\t\r\n\t/** show registration data */\r\n\tshowRegistrationData: function(e) {\r\n let _this = this;\r\n\t\tthis.loading();\r\n\t\tthis.evmdocument.getRegistrationEVMs().then(function(regData) {\r\n\t\t\t_this.helpTemplate = _this.helpTemplateList.register;\r\n\t\t\t_this.modal.dialog(\"option\", \"title\", i18n('js_evm_import_reg_to_doc'));\r\n\t\t\t_this.clear();\r\n\t\t\t_this.addContinueButton();\r\n\t\t\tif (_this.$viewReg) _this.$viewReg.remove();\r\n\t\t\t_this.$viewReg = $(_.template(_this.templateList.register)({evms: _this.parseRegEvms(_this.evmdocument.EVMData, regData)}));\r\n\t\t\t_this.$viewReg.appendTo(_this.$el);\r\n\t\t\t_this.resize();\r\n\t\t});\r\n\t},\r\n\t\r\n\t/** submit registration data */\r\n\tsubmitRegistrationEVMs: function(e) {\r\n let _this = this,\r\n\t\t\tevmList = [],\r\n\t\t\tform = this.getActiveForm(),\r\n\t\t\tfields = form.find('input.e_evm_transfer_field:checked');\r\n\t\tthis.allowMultiple = false;\r\n\t\t$.each(fields, function(i, v){\r\n\t\t\tevmList.push($(v).attr('name'))\r\n\t\t});\r\n\t\tif (evmList.length == 0) {\r\n\t\t\talert(i18n('js_evm_select_fields_error'));\r\n\t\t} else {\r\n\t\t\tthis.loading();\r\n\t\t\tthis.removeContinueButton();\r\n\t\t\tthis.evmdocument.copyRegistrationEVMs(evmList.join(\",\")).then(function(data){\r\n\t\t\t\t_this.$viewLoading.hide();\r\n\t\t\t\t_this.helpTemplate = _this.helpTemplateList.register_summary;\r\n\t\t\t\t_this.modal.dialog(\"option\", \"title\", i18n('js_evm_import_successful'));\r\n\t\t\t\tif (this.$viewSummary) this.$viewSummary.remove();\r\n\t\t\t\t_this.$viewSummary = $(_.template(_this.templateList.summary)({'evms': _this.parseLocalEvms(_this.evmdocument.EVMData), evmList: evmList, 'failures': data.FAILURES, 'addMore': _this.allowMultiple}));\r\n\t\t\t\t_this.$viewSummary.appendTo(_this.$el);\r\n\t\t\t\t_this.resize();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\t\r\n\t/**\r\n\t * Open the created document\r\n\t */\r\n\topenTemplate: function(e) {\r\n\t\tlet vars = {documentid: this.evmdocument.id};\r\n\t\tif (ele.uri.getParameterByName(this.destinationUrl, 'productpriceid')) {\r\n\t\t\tvars.productpriceid = ele.uri.getParameterByName(this.destinationUrl, 'productpriceid');\r\n\t\t}\r\n\t\t\r\n\t\tthis.close();\r\n\t\t\r\n\t\twindow.top.location.href = ele.uri.buildUrl(\"assembler\", vars);\r\n\t\t\r\n\t\treturn false;\r\n\t},\r\n\t\r\n\tsetDataField: function(e){\r\n let input = $(e.target);\r\n\t\tinput.prop(\"checked\", !input.prop(\"checked\"));\r\n\t\tthis.setDeselected(input);\r\n\t},\r\n\t\r\n\tsetDeselected: function(checkbox){\r\n let parentRow = checkbox.parent('td').parent('tr');\r\n\t\tif (checkbox.prop(\"checked\")) {\r\n\t\t\tparentRow.removeClass('deselected');\r\n\t\t\tif (parentRow.attr(\"id\") != null) {\r\n\t\t\t\tparentRow.siblings(\"[data-parent=\"+parentRow.attr(\"id\")+\"]\").removeClass('deselected');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tparentRow.addClass('deselected');\r\n\t\t\tif (parentRow.attr(\"id\") != null) {\r\n\t\t\t\tparentRow.siblings(\"[data-parent=\"+parentRow.attr(\"id\")+\"]\").addClass('deselected');\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.updateEVMCounts(checkbox);\r\n\t},\r\n\r\n getActiveForm: function() {\r\n\t return $('#document-evm-modal > div:visible .e_evm_transfer_form, #document-evm-modal > .e_evm_transfer_form:visible');\r\n },\r\n\t\r\n\ttoggleDataField:function(e){\r\n let input = $(e.target).parent().find(\"input\");\r\n\t\tif (input.length > 0) {\r\n\t\t\tinput.prop(\"checked\", !input.prop(\"checked\"));\r\n\t\t\tthis.setDeselected(input);\r\n\t\t}\r\n\t},\r\n\r\n\ttoggleAllDataFields: function(e){\r\n let _this = this;\r\n let fields = this.getActiveForm().find('.e_evm_transfer_data input[type=checkbox]');\r\n\t\tif ($(e.target).is(\":checked\")) {\r\n\t\t\tfields.prop('checked', 'checked');\r\n\t\t} else {\r\n\t\t\tfields.prop('checked', '');\r\n\t\t}\r\n\t\tfields.each(function(){\r\n\t\t\t_this.setDeselected($(this));\r\n\t\t});\r\n\t\tthis.updateEVMCounts(fields);\r\n\t},\r\n\t\r\n\tupdateEVMCounts: function(checkbox){\r\n\t\t//update counts\r\n let form = this.getActiveForm();\r\n let fields = form.find('.e_evm_transfer_data_table input[type=checkbox]').length;\r\n let selectedFields = form.find('.e_evm_transfer_data_table input[type=checkbox]:checked').length;\r\n\r\n\t\tform.find('#e_evm_fields_selected #e_evm_fields_selected_min').text(selectedFields);\r\n\r\n\t\t//if all checkboxes are deselected toggle check all\r\n\t\tif (selectedFields == fields) {\r\n\t\t\tform.find(\"[name=e_evm_transfer_toggle_all]\").prop(\"checked\", true);\r\n\t\t} else if (selectedFields == 0) {\r\n\t\t\tform.find(\"[name=e_evm_transfer_toggle_all]\").prop(\"checked\", false);\r\n\t\t}\r\n\t},\r\n\r\n\t/* take value of search box and filter divs inside sibling search container */\r\n\tsearch: function(e) {\r\n let _this = this;\r\n\t\tif (e.which==9 || e.which==17 || e.which == 91) {\r\n \t\treturn; // Ignore this event if its ctrl key or tab key \r\n \t} \r\n \tclearTimeout(this.searchTimer); \t\r\n\t\tthis.searchTimer = setTimeout(function() {\r\n\t\t\t_this.searchSiblings(e);\r\n\t\t}, 300);\r\n\t},\r\n\t\r\n\tsearchSiblings: function(e) {\r\n let searchString = $(e.target).val().toString().toLowerCase();\r\n let searchItems = $(e.target).closest('.e_evm_choose_template, .e_evm_choose_document').find('.e_evm_document_search').children();\r\n let noneFound = $(e.target).closest('.e_evm_choose_template, .e_evm_choose_document').find('.e_evm_document_search_none');\r\n\t\t\r\n\t\tnoneFound.hide();\r\n\t\tsearchItems.parent().show();\r\n let found = false;\r\n\r\n\t\t$.each(searchItems, function(i, v){\r\n let searchElements = $(this).find('.e_evm_searchable');\r\n let reg = new RegExp('(' + searchString + ')', 'i');\r\n\t\t\tif (searchElements.text().toLowerCase().indexOf(searchString) > -1) {\r\n\t\t\t\tfound = true;\r\n\t\t\t\t$.each(searchElements, function() {\r\n\t\t\t\t\t$(this).html($(this).text().replace(reg, '$1'));\r\n\t\t\t\t})\r\n\t\t\t\t$(this).show();\r\n\t\t\t} else {\r\n\t\t\t\t$(this).hide();\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (!found) {\r\n\t\t\tnoneFound.show();\r\n\t\t\tsearchItems.parent().hide();\r\n\t\t}\r\n\t},\r\n\t\r\n\tsort: function(e){\r\n\t\t$(e.target).addClass('e_evm_orderby_selected').siblings().removeClass('e_evm_orderby_selected');\r\n\t\t$(e.target).parent().siblings().find('a').removeClass('e_evm_orderby_selected');\r\n let sortKey = $(e.target).data('sort');\r\n let searchItems = $(e.target).closest('.e_evm_document_select_search').siblings('.e_evm_document_search').children();\r\n\r\n\t\tsearchItems.toArray().sort(this.sortFunctions[sortKey]);\r\n\t\tsearchItems.parent().append(searchItems);\r\n\t},\r\n\t\r\n\tsortFunctions: {\r\n\t\t'az' : function (a, b) {\r\n\t\t a = $(a).data(\"title\");\r\n\t\t b = $(b).data(\"title\");\r\n\t\t if(a > b) {\r\n\t\t return 1;\r\n\t\t } else if(a < b) {\r\n\t\t return -1;\r\n\t\t } else {\r\n\t\t return 0;\r\n\t\t }\r\n\t\t},\r\n\t\t'za': function (a, b) {\r\n\t\t a = $(a).data(\"title\");\r\n\t\t b = $(b).data(\"title\");\r\n\t\t if(a > b) {\r\n\t\t return -1;\r\n\t\t } else if(a < b) {\r\n\t\t return 1;\r\n\t\t } else {\r\n\t\t return 0;\r\n\t\t }\r\n\t\t},\r\n\t\t'updated': function (a, b) {\r\n\t\t a = $(a).data(\"updated\");\r\n\t\t b = $(b).data(\"updated\");\r\n\t\t if(a > b) {\r\n\t\t return -1;\r\n\t\t } else if(a < b) {\r\n\t\t return 1;\r\n\t\t } else {\r\n\t\t return 0;\r\n\t\t }\r\n\t\t},\r\n\t\t'relevance': function (a, b) {\r\n\t\t a = $(a).data(\"relevance\");\r\n\t\t b = $(b).data(\"relevance\");\r\n\t\t if(a > b) {\r\n\t\t return -1;\r\n\t\t } else if(a < b) {\r\n\t\t return 1;\r\n\t\t } else {\r\n\t\t return 0;\r\n\t\t }\r\n\t\t}\r\n\t},\r\n\r\n\taddContinueButton: function() {\r\n\t\tif (this.modal.closest(\".ui-dialog\").find(\".ui-button-continue\").length == 0) {\r\n let _this = this;\r\n let elem = $('');\r\n\t\t\telem.click(function(){\r\n\t\t\t\t_this.openTemplate();\r\n\t\t\t});\r\n\t\t\tthis.modal.closest(\".ui-dialog\").find(\".ui-dialog-titlebar-close\").before(elem);\r\n\t\t}\r\n\t},\r\n\r\n\tremoveContinueButton: function() {\r\n\t\tthis.modal.closest(\".ui-dialog\").find(\".ui-button-continue\").remove();\r\n\t},\r\n\t\r\n\tremoveCloseButton: function() {\r\n\t\tthis.modal.closest(\".ui-dialog\").find(\".ui-dialog-titlebar-close\").hide();\r\n\t}\r\n});\r\n\r\n/* static functions :o */\r\nUserDocs.View.Modal.EVMModal.getOptionLabel = function(data, value) {\r\n\tif (value != undefined && value != \"\") {\r\n let options = data.options.split(\"|\");\r\n let optionlabels = data.optionlabels.split(\"|\");\r\n\t\tfor (let i = 0; i < options.length; i++) {\r\n\t\t\tif (value == options[i]) {\r\n\t\t\t\tif (optionlabels[i] != undefined && optionlabels[i] != \"\") {\r\n\t\t\t\t\treturn optionlabels[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn data.value;\r\n\t}\r\n\treturn null;\r\n};","/**\r\n * Help modal used in various locations\r\n */\r\nUserDocs.View.Modal.Help = Backbone.View.extend(\r\n/** @lends UserDocs.View.Modal.Help# */\r\n{\r\n\t/* the content to be used in the help modal. Should be set before calling render */\r\n\tcontent: null,\r\n\t\r\n\t/** \r\n\t * Creates a modal using the jQuery UI Modal library extension\r\n\t * created for ELE and located in common/js/ele.modal.js\r\n\t */\r\n\trender: function() {\r\n\t\tvar dialog = ele.modal.create({\r\n content: $(\"\").append(this.content),\r\n dialogClass: \"e_modal_help\",\r\n draggable: true,\r\n width:600\r\n\t\t});\r\n\t\tdialog.dialog('open');\r\n\t}\r\n\t\r\n});","/**\r\n * The base view for this application. Initialises all objects and global events\r\n * @class\r\n */\r\n\r\nUserDocs.View.AppView = Backbone.View.extend(\r\n/** @lends UserDocs.View.AppView# */\r\n{\r\n\t/** Element used by Backbone.js to attach events and represent this view */\r\n el: $(\"body\"),\r\n\r\n\t/** The events we're listening to*/\r\n events: {\r\n\t\t\"click a.e_document_launch_evm\": \t\t\"evmOpen\"\r\n\t},\r\n\r\n\t/** \r\n\t * Initialisation function called when this object is created. \r\n\t * Create all the 'global' objects to this app and trigger some rendering \r\n\t */\r\n initialize: function() {\r\n \r\n },\r\n \r\n evmOpen: function(e) {\r\n \tif (ele.config.usersession.isloggedin) {\r\n\t \tlet evmView = new UserDocs.View.Modal.EVMModal();\r\n\t\t\tevmView.loadTemplate($(e.target).attr('href'));\r\n\t\t\treturn false;\r\n \t}\r\n }\r\n});\r\n","\r\nvar App = new UserDocs.View.AppView;\r\n});"]}