{"version":3,"sources":["dist/ts/ts.modules.js"],"names":["getAsNumber","val","parseFloat","LlCartDirective","$rootScope","toaster","$http","$modal","_this","this","restrict","scope","requestItems","changes","canAddSupplier","requestGuid","templateUrl","link","elem","attr","angular","isUndefined","http","rs","get","then","d","categoryDic","data","e","pop","categoryForRequestDic","calculate","item","pNet","NetPrice","q","Quantity","taxCode","TaxCode","tax","discount","Discount","NetValue","GrossPrice","GrossValue","TaxValue","wasRequestsListChanged","deleteBasketItem","array","idx","splice","addRequestItem","Tax","push","modal","addSupplier","modalInstance","open","animation","controller","$scope","$modalInstance","requestItem","ok","close","removeData","SupplierNip","undefined","cancel","dismiss","resolve","result","put","$broadcast","id","Factory","dir","$inject","DataChooserDirective","require","openResultModel","forItem","_self","config","onSelect","model","JSON","parse","bind","keyCode","preventDefault","DataChooserModalCtrl","getRemoteData","filter","post","url","label","desc","items","onSelectItem","PartnerPanelContentDirective","PartnerPanelService","setCurrentTab","tab","currentTab","openResponse","_url","top","location","href","process","Guid","Request","PrepareRequest","systemMediaMarkt","PartnerMediaMarktPanelCtrl","PartnerMediaMarktPanelDir","template","user","requestId","PartnerMediaMarktAgreementCtrl","getAgreementDocumentList","acceptAgreementDocumentList","refresh","isLoaded","Result","showDocument","fileId","window","acceptAllDocuments","confirm","reload","console","error","PartnerMediaMarktAgreementDir","PartnerMediaMarktInitialPaymentCtrl","getInitialPaymentData","resendInitialPaymentData","sendInitialPaymentNotificatication","checkStatus","PartnerMediaMarktInitialPaymentDir","PartnerMediaMarktSendDeliveryCtrl","getSendDeliveryData","acceptSendDeliveryData","acceptSendDelivery","PartnerMediaMarktSendDeliveryDir","PartnerMediaMarktDefaultCtrl","getOrderData","PartnerMediaMarktDefaultDir","module","directive","PartnerPanelMenuDirective","addNewRequest","cancelNewRequest","list","PartnerPanelRequestFormDirective","$location","sendRequest","processRequest","simulateRequest","isSimulation","FullRecalculation","PartnerUserGuid","PartnerUserName","LastName","FirstName","PartnerName","Partner","SaveInProcess","SendProposal","Simulation","UserExternalId","ExternalId","ClientGoBackUrl","SendOfferRequest","StatusCode","AggragatedCalulationId","indexOf","onCloseClick","size","Error","Message","getCategories","GetCategories","_","map","i","ProductCategory","$on","req","SaveDataEmail","Requestors","RequestItems","SendOfferToClient","GetOfferResponseList","GetOfferResponse","PartnerPanelDirective","_data","request","partner","GenerateAgreementButtonDirective","$parse","$toaster","generateAgreement","AggragatedCalculation_Guid","agreementNumber","element","attrs","ngModel","GenerateAgreement","_model","RequestFormDirective","$service","Categories","deleteRequestItem","formatDecimals","_num","toFixed","__num","calculateFromGross","pGross","updateTotals","NetValueTotal","TaxValueTotal","GrossValueTotal","forEach","updateCurrentItemData","currentItem","getProductData","Name","selectedValue","ProductDiscountAllowed","ProductDiscounts","ProductPriceChangeBlock","ProductTaxChangeBlock","onProductSelected","CategoryLevel1","ProductCategories","ProductPaneltyFee","ProductAddInfo","ProductTypeName","ProductName","ProductTaxCode","ProductNetPrice","ProductGrossPrice","IgnoreValidation","getCategoriesForProduct","populateProductCategories","a1","a2","defaultValue","arr","slice","allProducts","getAllProducts","$watch","n","o","selectedProduct","RequestService","productId","itemName","prototype","destruct","NumberDirective","formatAsNumber","_val","replace","pos","diff","length","substring","parseAsNumber","__val","$parsers","$formatters","css","evt","getter","valStr","$","target","_keyCode","parseInt","which","_key","key","toLowerCase","AutoCompleteDirective","$filterFilter","ngRequired","ngDisabled","filterLocal","valueField","onSelectRef","showAutocomplete","isFiltering","currentValue","Date","getTime","name","placeholder","filteredData","filterData","onKeyPressed","onSelectValue","getValueFiled","v","matchValue","v0","trim","v1","FormValidationDirective","successCallback","ctrl","errors","$root","el","type","nodeName","parent","addClass","iterValidationOverForm","form","Object","keys","hasOwnProperty","SetValidityForName","$name","formValue","formName","modelValue","$modelValue","valueName","isNipOk","$valid","isEmailOk","isPhoneOk","isSaveDataContactPersonOK","isNameOk","isCategoryOk","isTaxOk","checkIfExcluded","$setValidity","maxValue","isNetValueOk","isQuantityOk","isAgreedOk","document","querySelector","attributes","value","$submitted","newVal","oldVal","$setPristine","$timeout","ngScrollWatcherDirective","clientConsents","ClientConsentsSrv","getConsentList","processStage","getProcessConsents","orderId","ClientConsentsCtrl","formRequest","stage","step","consents","processConsents","initCheckbox","consentGuid","consentInitialValue","Consents","_processConsent","Agreed","isCollapsed","consent","found","j","_consent","consentsModel","checkAll","selectAll","ClientConsentsDir","simpleForm","ClientConsentsNewDir","ClientConsentsInnerDir","ClientConsentsInfoDir","service","clientDirectives","ngProcessMultiStepsCtrl","numberOfSteps","userLogged","currentStep","isVisible","partnerPosition","position","ngProcessMultiSteps","ngProcessSideDrawerCtrl","showDrawer","isDrawerVisible","closeDrawer","isDrawerAvaiable","ngProcessSideDrawer","ngCreateOfferCartCtrl","ngCreateOfferCart","ngCreateOfferCartStationaryCtrl","ngCreateOfferCartStationary","ngCreateOfferClientDataCtrl","ngCreateOfferClientData","ngClientDataCtrl","editData","isEdited","saveData","onSave","ngClientData","isEditable","ngClientAddressDataCtrl","RequestorAddresses","Confirmed","Required","ngClientAddressData","ngClientDocumentsDataSrv","$q","getDocuments","sendConfirmation","fileIds","ngClientDocumentsDataCtrl","Documents","sendMessageToLeaseLink","RequestId","confirmDocument","params","_params","Role","callBack","showRequest","confirmDocumentWithNoReaload","doc","FileId","ngClientDocumentsData","ngClientDeliveryDataCtrl","RequestorDeliveryAddress","copy","address","stringify","ngClientDeliveryData","ngClientCollectDataCtrl","RequestorCollectAddress","TypeOfItemCollect","RequestorSelfCollectAddress","ngClientCollectData","ngClientSelfCollectDataCtrl","ngClientSelfCollectData","ngClientSelfCollectDataListCtrl","selectedAddress","getExternalStoreAddresses","ADDRESSES","mapRequestModelToFormModel","mapFormModelToRequestModel","PostalCode","postcode","District","voivodeship","City","city","ShopName","Street","street","requestModel","formModel","ngClientSelfCollectDataList","ngClientSelfCollectDataSrv","partnerName","ngProductDeliveryAddressCtrl","categoryFilter","ngProductDeliveryAddress","ngServiceDeliveryAddressCtrl","ngServiceDeliveryAddress","AddressNewFormCtrl","streetPrefixes","_isFormValidated","isAutoCompleteDisabled","isFormValidated","setTimeout","AddressNewFormDirective","isRequired","hideSpecificPlace","liteForm","AddressNewFormLiteDirective","FrontFooterDirective","FrontHelpDirective","$sce","s","html","toLocaleLowerCase","renderHelpFromBackend","trustAsHtml","paymentType","processType","logged","ngShowHeader","ngClientInfoMessageService","$window","showInfoMessage","showMessage","ShowMessage","messageBody","MessageBody","messageShown","sessionStorage","getItem","infoMessage","setItem","ClientInfoMessageDirective","ClientInfoMessageCtrl"],"mappings":"AAAA,YAs6BA,SAASA,aAAYC,GACjB,MAAmB,gBAARA,GACAC,WAAWD,GAEfA,EAz6BX,GAAIE,iBAAmB,WACnB,QAASA,GAAgBC,EAAYC,EAASC,EAAOC,GACjD,GAAIC,GAAQC,IACZA,MAAKL,WAAaA,EAClBK,KAAKJ,QAAUA,EACfI,KAAKH,MAAQA,EACbG,KAAKF,OAASA,EACdE,KAAKC,SAAW,KAChBD,KAAKE,OAEDC,aAAc,IAEdC,QAAS,IAETC,eAAgB,IAEhBC,YAAa,KAEjBN,KAAKO,YAAc,uCACnBP,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,GAE3BC,QAAQC,YAAYV,EAAMG,kBAC1BH,EAAMG,gBAAiB,GAE3BH,EAAMW,KAAOd,EAAMF,KACnB,IAAIiB,GAAKf,EAAMJ,UAEfO,GAAMW,KAAKE,IAAI,wCAAwCC,KAAK,SAAUC,GAClEf,EAAMgB,YAAcD,EAAEE,MACvB,SAAUC,GACTrB,EAAMH,QAAQyB,IAAI,QAAS,oBAAqB,iDAGnB,mBAAtBnB,GAAMI,cACbJ,EAAMI,YAAc,IACxBJ,EAAMW,KAAKE,IAAI,gEAAuEb,EAAMI,aAAaU,KAAK,SAAUC,GAEpHf,EAAMoB,sBAAwBL,EAAEE,MACjC,SAAUC,GACTrB,EAAMH,QAAQyB,IAAI,QAAS,oBAAqB,iDAepDnB,EAAMqB,UAAY,SAAUC,GACxB,GAAIC,GAAOhC,WAAW+B,EAAKE,UACvBC,EAAIlC,WAAW+B,EAAKI,UACpBC,EAAUL,EAAKM,QACfC,EAAkB,MAAXF,EAAkB,EAAIpC,WAAWoC,GACxCG,EAAWvC,WAAW+B,EAAKS,UAAY,IAC3CT,GAAKU,SAAYT,EAAOE,GAAM,EAAIK,EAAW,KAC7CR,EAAKW,WAAcV,GAAQ,EAAIM,EAAM,KACrCP,EAAKY,WAAeZ,EAAa,UAAK,EAAIO,EAAM,KAChDP,EAAKa,SAAYb,EAAKY,WAAaZ,EAAKU,SAExChC,EAAME,QAAQkC,wBAAyB,GAG3CpC,EAAMqC,iBAAmB,SAAUC,EAAOC,GACtCD,EAAME,OAAOD,EAAK,GAClBvC,EAAME,QAAQkC,wBAAyB,GAG3CpC,EAAMyC,eAAiB,WACnB,GAAInB,IACAM,QAAS,KACTc,IAAK,KACLhB,SAAU,EAEd1B,GAAMC,aAAa0C,KAAKrB,GACxBtB,EAAME,QAAQkC,wBAAyB,GAE3CpC,EAAM4C,MAAQ/C,EAAMD,OACpBI,EAAM6C,YAAc,SAAUvB,GAC1B,GAAIwB,GAAgB9C,EAAM4C,MAAMG,MAC5BC,WAAW,EACX3C,YAAa,sCACb4C,YAAa,SAAU,iBAAkB,cAAe,SAAUC,EAAQC,EAAgBC,GAClFF,EAAOE,YAAcA,EACrBF,EAAOG,GAAK,WACRF,EAAeG,MAAMJ,EAAOE,cAEhCF,EAAOK,WAAa,WAChBL,EAAOE,YAAYI,YAAcC,OACjCN,EAAeG,MAAMJ,EAAOE,cAEhCF,EAAOQ,OAAS,WACZP,EAAeQ,QAAQ,aAGnC3D,MAAOA,EACP4D,SACIR,YAAa,WACT,MAAO9B,MAInBwB,GAAce,OAAO/C,KAAK,WACtB,GAAIjB,GAAQC,IACZE,GAAMW,KAAKmD,IAAI,sBAAwB9D,EAAMI,YAAaJ,EAAMC,cAAca,KAAK,SAAUC,GAEzFH,EAAGmD,WAAW,wBAA0BC,GAAIhE,EAAMI,eACnD,SAAUc,GACTrB,EAAMH,QAAQyB,IAAI,QAAS,oBAAqB,kDAErD,gBASf,MALA3B,GAAgByE,QAAU,WACtB,GAAIC,GAAM,SAAUzE,EAAYC,EAASC,EAAOC,GAAU,MAAO,IAAIJ,GAAgBC,EAAYC,EAASC,EAAOC,GAEjH,OADAsE,GAAIC,SAAW,aAAc,UAAW,QAAS,UAC1CD,GAEJ1E,KAEP4E,qBAAwB,WACxB,QAASA,GAAqBxE,GAC1B,GAAIC,GAAQC,IACZA,MAAKF,OAASA,EACdE,KAAKC,SAAW,IAChBD,KAAKuE,QAAU,UAEfvE,KAAKwE,gBAAkB,SAAUC,GAC7B,GAAIC,GAAQ3E,EACRiD,EAAgBjD,EAAMD,OAAOmD,MAC7BC,WAAW,EACX3C,YAAa,0CACb4C,WAAY,uBACZW,SACIa,OAAQ,WAAc,MAAOD,GAAMC,UAI3C3B,GAAce,OAAO/C,KAAK,SAAUQ,GACK,mBAA1BkD,GAAMC,OAAOC,UACpBF,EAAMC,OAAOC,SAASH,EAASjD,IAEpC,eAGPxB,KAAK2E,UACL3E,KAAKE,OACD0E,SAAU,0BACVH,QAAS,0BAEbzE,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,EAAMmE,GACrC,GAAIH,GAAQ3E,CAEZ2E,GAAMC,OAASG,KAAKC,MAAMrE,EAAqB,gBAAK,MACpDgE,EAAMC,OAAOC,SAAW1E,EAAM0E,SAE9BnE,EAAKuE,KAAK,UAAW,SAAU5D,GAET,MAAdA,EAAE6D,SAAiC,KAAd7D,EAAE6D,UACvB7D,EAAE8D,iBAEFR,EAAMF,gBAAgBtE,EAAMuE,aAU5C,MALAH,GAAqBH,QAAU,WAC3B,GAAIC,GAAM,SAAUtE,GAAU,MAAO,IAAIwE,GAAqBxE,GAE9D,OADAsE,GAAIC,SAAW,UACRD,GAEJE,KAEPa,qBAAwB,WACxB,QAASA,GAAqB/B,EAAQC,EAAgBxD,EAAO8E,GACzD,GAAI5E,GAAQC,IACZA,MAAKoD,OAASA,EACdpD,KAAKqD,eAAiBA,EACtBrD,KAAKH,MAAQA,EACbG,KAAK2E,OAASA,EAEd3E,KAAKoF,cAAgB,SAAUC,GAC3B,MAAOtF,GAAMF,MAAMyF,KAAKvF,EAAM4E,OAAOY,KAAOF,OAAQ,IAExD,IAAIX,GAAQ1E,IAEZoD,GAAOoC,MAAQd,EAAMC,OAAOa,OAAS,QACrCpC,EAAOqC,KAAOf,EAAMC,OAAOc,MAAQ,OACnCrC,EAAOsC,SAEPtC,EAAOuC,aAAe,SAAUnE,GAC5B6B,EAAeG,MAAMhC,IAGzBkD,EAAMU,cAAc,IAAIpE,KAAK,SAAUC,GACnCmC,EAAOsC,MAAQzE,EAAEE,MAClB,SAAUC,MAIjB,MADA+D,GAAqBd,SAAW,SAAU,iBAAkB,QAAS,UAC9Dc,KAIPS,6BAAgC,WAChC,QAASA,GAA6BC,GAClC,GAAI9F,GAAQC,IACZA,MAAK6F,oBAAsBA,EAC3B7F,KAAKC,SAAW,IAChBD,KAAKO,YAAc,mDACnBP,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,GAC/B,GAAIgE,GAAQ3E,CAEZG,GAAM4F,cAAgB,SAAUC,GAC5B7F,EAAM8F,WAAaD,GAGvB7F,EAAM+F,aAAe,SAAU/B,GAC3B,GACIgC,GAAO,yBAA2BhC,CACtCiC,KAAIC,SAASC,KAAOH,GAGnBhG,EAAMoG,SAAYpG,EAAMoG,QAAQC,OAEjCrG,EAAMsG,QAAU9B,EAAMmB,oBAAoBY,mBAStD,MALAb,GAA6BzB,QAAU,WACnC,GAAIC,GAAM,SAAUyB,GAAuB,MAAO,IAAID,GAA6BC,GAEnF,OADAzB,GAAIC,SAAW,uBACRD,GAEJwB,KAGPc,kBACJ,SAAWA,GAEP,GAAIC,GAA8B,WAC9B,QAASA,GAA2BvD,IAGpC,MADAuD,GAA2BtC,SAAW,UAC/BsC,KAEPC,EAA6B,WAC7B,QAASA,KACL5G,KAAKC,SAAW,KAChBD,KAAK6G,SAAW,wqBAChB7G,KAAKmD,WAAawD,EAClB3G,KAAKE,OACD4G,KAAM,IACNC,UAAW,IACXT,QAAS,KAQjB,MALAM,GAA0BzC,QAAU,WAChC,GAAIlD,GAAI,WAAc,MAAO,IAAI2F,GAEjC,OADA3F,GAAW,WACJA,GAEJ2F,IAEXF,GAAiBE,0BAA4BA,CAE7C,IAAII,GAAkC,WAClC,QAASA,GAA+B5D,EAAQvD,EAAOD,GACnD,GAAIG,GAAQC,IACZA,MAAKoD,OAASA,EACdpD,KAAKH,MAAQA,EACbG,KAAKJ,QAAUA,EACfI,KAAKuF,IAAM,kCACXvF,KAAKiH,yBAA2B,WAC5B,GAAIf,GAAOnG,EAAMwF,IAAM,IAAMxF,EAAMqD,OAAO2D,SAC1C,OAAOhH,GAAMF,MAAMkB,IAAImF,IAE3BlG,KAAKkH,4BAA8B,WAC/B,GAAIhB,GAAOnG,EAAMwF,IAAM,IAAMxF,EAAMqD,OAAO2D,SAC1C,OAAOhH,GAAMF,MAAMmE,IAAIkC,GAE3B,IAAIxB,GAAQ1E,IACZoD,GAAO+D,QAAU,WACb/D,EAAOgE,UAAW,EAClB1C,EAAMuC,2BAA2BjG,KAAK,SAAUC,GAC5CmC,EAAOjC,KAAOF,EAAEE,KAAKkG,OACrBjE,EAAOgE,UAAW,KAI1BhE,EAAOkE,aAAe,SAAUC,GAC5BC,OAAOvE,KAAK,yBAA2BsE,IAG3CnE,EAAOqE,mBAAqB,WACpBC,QAAQ,sDACRhD,EAAMwC,8BAA8BlG,KAAK,SAAUC,GAC/CrB,EAAQyB,IAAI,UAAW,aAAc,iCAErC8E,IAAIC,SAASuB,UACd,SAAUvG,GACTxB,EAAQyB,IAAI,QAAS,OAAQ,4CAC7BuG,QAAQC,MAAMzG,MAI1BgC,EAAOgE,UAAW,EAClBhE,EAAO+D,UAGX,MADAH,GAA+B3C,SAAW,SAAU,QAAS,WACtD2C,KAEPc,EAAiC,WACjC,QAASA,KACL9H,KAAKmD,WAAa6D,EAClBhH,KAAKC,SAAW,KAChBD,KAAKO,YAAc,qFAOvB,MALAuH,GAA8B3D,QAAU,WACpC,GAAIlD,GAAI,WAAc,MAAO,IAAI6G,GAEjC,OADA7G,GAAW,WACJA,GAEJ6G,IAEXpB,GAAiBoB,8BAAgCA,CAEjD,IAAIC,GAAuC,WACvC,QAASA,GAAoC3E,EAAQvD,EAAOD,GACxD,GAAIG,GAAQC,IACZA,MAAKoD,OAASA,EACdpD,KAAKH,MAAQA,EACbG,KAAKJ,QAAUA,EACfI,KAAKuF,IAAM,uCACXvF,KAAKgI,sBAAwB,WACzB,GAAI9B,GAAOnG,EAAMwF,IAAM,IAAMxF,EAAMqD,OAAO2D,SAC1C,OAAOhH,GAAMF,MAAMkB,IAAImF,IAE3BlG,KAAKiI,yBAA2B,WAC5B,GAAI/B,GAAOnG,EAAMwF,IAAM,IAAMxF,EAAMqD,OAAO2D,SAC1C,OAAOhH,GAAMF,MAAMmE,IAAIkC,GAE3B,IAAIxB,GAAQ1E,IACZoD,GAAO+D,QAAU,WACb/D,EAAOgE,UAAW,EAClB1C,EAAMsD,wBAAwBhH,KAAK,SAAUC,GACzCmC,EAAOjC,KAAOF,EAAEE,KAAKkG,OACrBjE,EAAOgE,UAAW,KAI1BhE,EAAO8E,mCAAqC,WACpCR,QAAQ,mEACRhD,EAAMuD,2BAA2BjH,KAAK,SAAUC,GAC5CrB,EAAQyB,IAAI,UAAW,qBAAsB,2CAG9C,SAAUD,GACTxB,EAAQyB,IAAI,QAAS,OAAQ,gDAC7BuG,QAAQC,MAAMzG,MAK1BgC,EAAO+E,YAAc,WACjBhC,IAAIC,SAASuB,UAEjBvE,EAAOgE,UAAW,EAClBhE,EAAO+D,UAGX,MADAY,GAAoC1D,SAAW,SAAU,QAAS,WAC3D0D,KAEPK,EAAsC,WACtC,QAASA,KACLpI,KAAKmD,WAAa4E,EAClB/H,KAAKC,SAAW,KAChBD,KAAKO,YAAc,2FAOvB,MALA6H,GAAmCjE,QAAU,WACzC,GAAIlD,GAAI,WAAc,MAAO,IAAImH,GAEjC,OADAnH,GAAW,WACJA,GAEJmH,IAEX1B,GAAiB0B,mCAAqCA,CAEtD,IAAIC,GAAqC,WACrC,QAASA,GAAkCjF,EAAQvD,EAAOD,GACtD,GAAIG,GAAQC,IACZA,MAAKoD,OAASA,EACdpD,KAAKH,MAAQA,EACbG,KAAKJ,QAAUA,EACfI,KAAKuF,IAAM,qCACXvF,KAAKsI,oBAAsB,WACvB,GAAIpC,GAAOnG,EAAMwF,IAAM,IAAMxF,EAAMqD,OAAO2D,SAC1C,OAAOhH,GAAMF,MAAMkB,IAAImF,IAE3BlG,KAAKuI,uBAAyB,WAC1B,GAAIrC,GAAOnG,EAAMwF,IAAM,IAAMxF,EAAMqD,OAAO2D,SAC1C,OAAOhH,GAAMF,MAAMmE,IAAIkC,GAE3B,IAAIxB,GAAQ1E,IACZoD,GAAO+D,QAAU,WACb/D,EAAOgE,UAAW,EAClB1C,EAAM4D,sBAAsBtH,KAAK,SAAUC,GACvCmC,EAAOjC,KAAOF,EAAEE,KAAKkG,OACrBjE,EAAOgE,UAAW,KAI1BhE,EAAOoF,mBAAqB,WAExB9D,EAAM6D,yBAAyBvH,KAAK,SAAUC,GAC1CrB,EAAQyB,IAAI,UAAW,wBAAyB,yCAEhD8E,IAAIC,SAASuB,UACd,SAAUvG,GACTxB,EAAQyB,IAAI,QAAS,OAAQ,sDAC7BuG,QAAQC,MAAMzG,MAItBgC,EAAOgE,UAAW,EAClBhE,EAAO+D,UAGX,MADAkB,GAAkChE,SAAW,SAAU,QAAS,WACzDgE,KAEPI,EAAoC,WACpC,QAASA,KACLzI,KAAKmD,WAAakF,EAClBrI,KAAKC,SAAW,KAChBD,KAAKO,YAAc,yFAOvB,MALAkI,GAAiCtE,QAAU,WACvC,GAAIlD,GAAI,WAAc,MAAO,IAAIwH,GAEjC,OADAxH,GAAW,WACJA,GAEJwH,IAEX/B,GAAiB+B,iCAAmCA,CAEpD,IAAIC,GAAgC,WAChC,QAASA,GAA6BtF,EAAQvD,EAAOD,GACjD,GAAIG,GAAQC,IACZA,MAAKoD,OAASA,EACdpD,KAAKH,MAAQA,EACbG,KAAKJ,QAAUA,EACfI,KAAKuF,IAAM,gCACXvF,KAAK2I,aAAe,WAChB,GAAIzC,GAAOnG,EAAMwF,IAAM,IAAMxF,EAAMqD,OAAO2D,SAC1C,OAAOhH,GAAMF,MAAMkB,IAAImF,GAE3B,IAAIxB,GAAQ1E,IACZoD,GAAO+D,QAAU,WACb/D,EAAOgE,UAAW,EAClB1C,EAAMiE,eAAe3H,KAAK,SAAUC,GAChCmC,EAAOjC,KAAOF,EAAEE,KAAKkG,OACrBjE,EAAOgE,UAAW,KAG1BhE,EAAOgE,UAAW,EAClBhE,EAAO+D,UAGX,MADAuB,GAA6BrE,SAAW,SAAU,QAAS,WACpDqE,KAEPE,EAA+B,WAC/B,QAASA,KACL5I,KAAKmD,WAAauF,EAClB1I,KAAKC,SAAW,KAChBD,KAAKO,YAAc,mFAOvB,MALAqI,GAA4BzE,QAAU,WAClC,GAAIlD,GAAI,WAAc,MAAO,IAAI2H,GAEjC,OADA3H,GAAW,WACJA,GAEJ2H,IAEXlC,GAAiBkC,4BAA8BA,GAChDlC,mBAAqBA,sBACxB/F,QAAQkI,OAAO,gBAAiB,eAC3BC,UAAU,2BAA4BpC,iBAAiBE,0BAA0BzC,WACjF2E,UAAU,+BAAgCpC,iBAAiBoB,8BAA8B3D,WACzF2E,UAAU,oCAAqCpC,iBAAiB0B,mCAAmCjE,WACnG2E,UAAU,kCAAmCpC,iBAAiB+B,iCAAiCtE,WAC/F2E,UAAU,6BAA8BpC,iBAAiBkC,4BAA4BzE,UAG1F,IAAI4E,2BAA6B,WAC7B,QAASA,GAA0BlD,EAAqBlG,GACpD,GAAII,GAAQC,IACZA,MAAK6F,oBAAsBA,EAC3B7F,KAAKL,WAAaA,EAClBK,KAAKC,SAAW,IAChBD,KAAKO,YAAc,gDACnBP,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,GAE/BR,EAAM8I,cAAgB,WAClB9I,EAAM8F,WAAa,cACnB9F,EAAMsG,QAAUzG,EAAM8F,oBAAoBY,iBAC1C1G,EAAMJ,WAAWsE,WAAW,2BAGhC/D,EAAM+I,iBAAmB,WACrB/I,EAAM8F,WAAa,IAGvB9F,EAAMiH,QAAU,aAYhBjH,EAAMgJ,QAENhJ,EAAMiH,WAQd,MALA4B,GAA0B5E,QAAU,WAChC,GAAIC,GAAM,SAAUyB,EAAqBlG,GAAc,MAAO,IAAIoJ,GAA0BlD,EAAqBlG,GAEjH,OADAyE,GAAIC,SAAW,sBAAuB,cAC/BD,GAEJ2E,KAIPI,iCAAoC,WACpC,QAASA,GAAiCtD,EAAqBjG,EAASD,EAAYyJ,EAAWtJ,GAC3F,GAAIC,GAAQC,IACZA,MAAK6F,oBAAsBA,EAC3B7F,KAAKJ,QAAUA,EACfI,KAAKL,WAAaA,EAClBK,KAAKoJ,UAAYA,EACjBpJ,KAAKF,OAASA,EACdE,KAAKC,SAAW,IAChBD,KAAKO,YAAc,wDACnBP,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,GAC/B,GAAIgE,GAAQ3E,CAEZG,GAAMmJ,YAAc,WAChBnJ,EAAMoJ,gBAAe,IAGzBpJ,EAAMqJ,gBAAkB,WACpBrJ,EAAMoJ,gBAAe,IAGzBpJ,EAAMoJ,eAAiB,SAAUE,GAE7BtJ,EAAMsG,QAAQiD,mBAAoB,EAClCvJ,EAAMsG,QAAQkD,gBAAkBxJ,EAAM4G,KAAKP,KAC3CrG,EAAMsG,QAAQmD,gBAAkBzJ,EAAM4G,KAAK8C,SAAW,KAAO1J,EAAM4G,KAAK+C,UACxE3J,EAAMsG,QAAQsD,YAAc5J,EAAM4G,KAAKiD,QACvC7J,EAAMsG,QAAQwD,eAAgB,CAC9B,IAAIC,GAAgBT,KAAiB,CACrCtJ,GAAMsG,QAAQ0D,WAAaV,EAC3BtJ,EAAMsG,QAAQ2D,eAAiBjK,EAAM4G,KAAKsD,WAE1ClK,EAAMsG,QAAQ6D,gBAAkB,yBAEhC3F,EACKmB,oBACAyE,iBAAiBpK,EAAMsG,QAASyD,GAChCjJ,KAAK,SAAUC,GAChB,GAAyB,KAArBA,EAAEE,KAAKoJ,WAAmB,CAE1B,GAAIC,GAAyBvJ,EAAEE,KAAKkG,OAAOmD,sBAE3C,IADAtK,EAAMsG,QAAQgE,uBAAyBA,EACnCtK,EAAM4G,OAAS,SAAU,UAAU2D,QAAQvK,EAAM4G,KAAKsD,iBAAoB,CAC1ElK,EAAMwK,aAAe,WACjBlD,OAAOpB,SAASC,KAAO,uBAEP3B,GAAM5E,OAAOmD,MAC7BC,WAAW,EACX2D,SAAU,8hCACV3G,MAAOA,EACPyK,KAAM,WAKVzK,GAAM+F,aAAauE,OAGtB,CACD,GAAI3C,GAAS5G,GAAKA,EAAEE,MAAQF,EAAEE,KAAKyJ,OAAS3J,EAAEE,KAAKyJ,MAAMC,QAAY,IAAM5J,EAAEE,KAAKyJ,MAAMC,QAAU,IAAO5J,EAAEE,KAAKyJ,KAChHlG,GAAM9E,QAAQyB,IAAI,QAAS,2BAA4BwG,KAE5D,SAAUzG,GACT,GAAIyG,GAASzG,GAAKA,EAAED,MAAQC,EAAED,KAAKyJ,OAASxJ,EAAED,KAAKyJ,MAAMC,QAAY,IAAMzJ,EAAED,KAAKyJ,MAAMC,QAAU,IAAO,EACzGnG,GAAM9E,QAAQyB,IAAI,QAAS,2BAA4B,qDAAuDwG,MAItH3H,EAAM4K,cAAgB,WAClBpG,EAAMmB,oBAAoBkF,gBAAgB/J,KAAK,SAAUC,GAAKf,EAAMgB,YAAc8J,EAAEC,IAAIhK,EAAEE,KAAM,SAAU+J,GAAK,OAASC,gBAAiBD,EAAEC,oBAA0B,SAAU/J,GAC3KsD,EAAM9E,QAAQyB,IAAI,QAAS,oBAAqB,kDAIxDqD,EAAM/E,WAAWyL,IAAI,yBAA0B,SAAUhK,GAErDlB,EAAMsG,QAAU9B,EAAMmB,oBAAoBY,mBAG9CvG,EAAMgB,eAENhB,EAAM4K,iBAQd,MALA3B,GAAiChF,QAAU,WACvC,GAAIC,GAAM,SAAUyB,EAAqBjG,EAASD,EAAYyJ,EAAWtJ,GAAU,MAAO,IAAIqJ,GAAiCtD,EAAqBjG,EAASD,EAAYyJ,EAAWtJ,GAEpL,OADAsE,GAAIC,SAAW,sBAAuB,UAAW,aAAc,YAAa,UACrED,GAEJ+E,KAGPtD,oBAAuB,WACvB,QAASA,GAAoBhG,GACzB,GAAIE,GAAQC,IACZA,MAAKH,MAAQA,EAEbG,KAAK+K,cAAgB,WAEjB,GAAI7E,GAAO,sCACX,OAAOnG,GAAMF,MAAMkB,IAAImF,IAG3BlG,KAAKyG,eAAiB,WAClB,GAAI4E,IACAC,cAAe,GACfC,gBACAC,eAEQ1J,QAAS,KACTc,IAAK,GACLhB,SAAU,EACVF,SAAU,EACVS,WAAY,EACZD,SAAU,EACVG,SAAU,EACVD,WAAY,IAIxB,OAAOiJ,IAGXrL,KAAKyL,kBAAoB,SAAUvH,GAC/B,MAAOnE,GAAMF,MAAMyF,KAAK,wBAA0BpB,IAItDlE,KAAK0L,qBAAuB,WACxB,GAAIxF,GAAO,+CACX,OAAOnG,GAAMF,MAAMyF,KAAKY,OAG5BlG,KAAKsK,iBAAmB,SAAUe,EAAKpB,GACnC,GAAI/D,GAAO,oCAAsC+D,CAEjD,OAAOlK,GAAMF,MAAMyF,KAAKY,EAAMmF,IAElCrL,KAAK2L,iBAAmB,SAAUzH,GAC9B,GAAIgC,GAAO,qBAAuBhC,CAClC,OAAOnE,GAAMF,MAAMkB,IAAImF,IAI/B,MADAL,GAAoBxB,SAAW,SACxBwB,KAKP+F,sBAAyB,WACzB,QAASA,GAAsB/F,GAC3B7F,KAAK6F,oBAAsBA,EAC3B7F,KAAKC,SAAW,IAChBD,KAAKO,YAAc,2CACnBP,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,GAC/B,GAAImL,GAAQ/G,KAAKC,MAAMrE,EAAqB,gBAAK,KACjDR,GAAM4G,KAAO+E,EAAM/E,KACnB5G,EAAMoG,QAAUuF,EAAMvF,QACtBpG,EAAMsG,QAAUqF,EAAMC,QACtB5L,EAAM6L,QAAUF,EAAME,SAQ9B,MALAH,GAAsBzH,QAAU,WAC5B,GAAIC,GAAM,SAAUyB,GAAuB,MAAO,IAAI+F,GAAsB/F,GAE5E,OADAzB,GAAIC,SAAW,uBACRD,GAEJwH,KAIPI,iCAAoC,WACpC,QAASA,GAAiCnM,EAAOoM,EAAQC,GACrD,GAAInM,GAAQC,IACZA,MAAKH,MAAQA,EACbG,KAAKiM,OAASA,EACdjM,KAAKkM,SAAWA,EAChBlM,KAAKC,SAAW,KAEhBD,KAAKmM,kBAAoB,SAAUtH,GAC/B,GAAIU,GAAM,+BAAiCV,EAAMuH,0BACjD,OAAOrM,GAAMF,MAAMyF,KAAKC,GAAO8G,gBAAiBxH,EAAM0B,QAE1DvG,KAAKQ,KAAO,SAAUN,EAAOoM,EAASC,GAClC,GAAI7H,GAAQ3E,EAERyM,EAAUzM,EAAMkM,OAAOM,EAAe,QAE1CrM,GAAMuM,kBAAoB,WACtB,GAAIC,GAASF,EAAQtM,EACrBwE,GACKyH,kBAAkBO,GAClB1L,KAAK,SAAUC,GAChByD,EAAMwH,SAAS7K,IAAI,UAAW,gCAC/B,SAAUD,GACTsD,EAAMwH,SAAS7K,IAAI,QAAS,0CAIxCrB,KAAK6G,SAAW,uGAOpB,MALAmF,GAAiC7H,QAAU,WACvC,GAAIC,GAAM,SAAUvE,EAAOoM,EAAQC,GAAY,MAAO,IAAIF,GAAiCnM,EAAOoM,EAAQC,GAE1G,OADA9H,GAAIC,SAAW,QAAS,SAAU,WAC3BD,GAEJ4H,KAIPW,qBAAwB,WACxB,QAASA,GAAqBC,GAC1B,GAAI7M,GAAQC,IACZA,MAAK4M,SAAWA,EAChB5M,KAAKC,SAAW,IAChBD,KAAKO,YAAc,8CACnBP,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,GAE/BR,EAAMyC,eAAiB,WACnB,GAAInB,IACAM,QAAS,KACTc,IAAK,KACLhB,SAAU,EACViL,cAEJ3M,GAAMsG,QAAQgF,aAAa3I,KAAKrB,IAGpCtB,EAAM4M,kBAAoB,SAAUrK,GAChCvC,EAAMsG,QAAQgF,aAAa9I,OAAOD,EAAK,IAG3CvC,EAAMqB,UAAY,SAAUC,GACxB,GAAIC,GAAOhC,WAAW+B,EAAKE,UACvBC,EAAIlC,WAAW+B,EAAKI,UACpBC,EAAUL,EAAKM,QACfC,EAAkB,MAAXF,EAAkB,EAAIpC,WAAWoC,GACxCG,EAAWvC,WAAW+B,EAAKS,UAAY,IAC3CT,GAAKU,SAAYT,EAAOE,GAAM,EAAIK,EAAW,KAC7CR,EAAKW,WAAcV,GAAQ,EAAIM,EAAM,KACrCP,EAAKY,WAAeZ,EAAa,UAAK,EAAIO,EAAM,KAChDP,EAAKa,SAAYb,EAAKY,WAAaZ,EAAKU,UAE5ChC,EAAM6M,eAAiB,SAAUvN,GAC7B,GAAIwN,GAAOxN,EAAIyN,QAAQ,GACnBC,EAAQzN,WAAWuN,EACvB,OAAOE,IAGXhN,EAAMiN,mBAAqB,SAAU3L,GACjC,GAAI4L,GAAS3N,WAAW+B,EAAKW,YACzBR,EAAIlC,WAAW+B,EAAKI,UACpBC,EAAUL,EAAKM,QACfC,EAAkB,MAAXF,EAAkB,EAAIpC,WAAWoC,GACxCG,EAAWvC,WAAW+B,EAAKS,UAAY,IAC3CT,GAAKY,WAAcgL,EAASzL,GAAM,EAAIK,EAAW,KACjDR,EAAKE,SAAY0L,GAAU,EAAIrL,EAAM,KACrCP,EAAKU,SAAYV,EAAKY,YAAc,EAAIL,EAAM,KAC9CP,EAAKa,SAAYb,EAAKY,WAAaZ,EAAKU,UAG5ChC,EAAMmN,aAAe,WACjBnN,EAAMoN,cAAgB,EACtBpN,EAAMqN,cAAgB,EACtBrN,EAAMsN,gBAAkB,EACxBtN,EAAMsG,QAAQgF,aAAaiC,QAAQ,SAAUrM,GACzClB,EAAMoN,eAAkBlM,EAAEc,UAAY,EACtChC,EAAMqN,eAAkBnM,EAAEiB,UAAY,EACtCnC,EAAMsN,iBAAoBpM,EAAEgB,YAAc,KAIlDlC,EAAMwN,sBAAwB,SAAUC,GACpC5N,EAAM6M,SAASgB,eAAeD,EAAYE,MAAM7M,KAAK,SAAUC,GAC3D,GAAI6M,GAAgB7M,EAAEE,IAClB2M,KACIA,EAAcC,yBACdJ,EAAYI,uBAAyBD,EAAcC,wBACnDD,EAAcE,mBACdL,EAAYK,iBAAmBF,EAAcE,kBAC7CF,EAAcG,0BACdN,EAAYM,wBAA0BH,EAAcG,yBACpDH,EAAcI,wBACdP,EAAYO,sBAAwBJ,EAAcI,2BAKlEhO,EAAMiO,kBAAoB,SAAUR,EAAaG,GAC7CH,EAAYE,KAAO,GACnBF,EAAYS,eAAiB,GAC7BT,EAAY7L,QAAU,GACtB6L,EAAYjM,SAAW,GACvBiM,EAAYxL,WAAa,GACzBwL,EAAYU,qBACZV,EAAYW,kBAAoB,KAChCX,EAAYY,eAAiB,GAC7BZ,EAAYa,gBAAkB,GAC1BV,EAAcW,cACdd,EAAYE,KAAOC,EAAcW,aAEjCX,EAAcY,iBACdf,EAAY7L,QAAUgM,EAAcY,gBACpCZ,EAAca,kBACdhB,EAAYjM,SAAWoM,EAAca,iBACrCb,EAAcc,oBACdjB,EAAYxL,WAAa2L,EAAcc,mBAEvCd,EAAcC,yBACdJ,EAAYI,uBAAyBD,EAAcC,wBACnDD,EAAcE,mBACdL,EAAYK,iBAAmBF,EAAcE,kBAC7CF,EAAcG,0BACdN,EAAYM,wBAA0BH,EAAcG,yBACpDH,EAAcI,wBACdP,EAAYO,sBAAwBJ,EAAcI,uBAClDJ,EAAcQ,oBACdX,EAAYW,kBAAoBR,EAAcQ,mBAC9CR,EAAcS,iBACdZ,EAAYY,eAAiBT,EAAcS,gBAC3CT,EAAcU,kBACdb,EAAYa,gBAAkBV,EAAcU,iBAC5CV,EAAce,mBACdlB,EAAYkB,iBAAmBf,EAAce,kBAEjD3O,EAAMqB,UAAUoM,GAChBzN,EAAM4O,wBAAwBnB,IAGlCzN,EAAM6O,0BAA4B,SAAUC,EAAIC,EAAIC,GAChD,GAAIC,IAAOH,GAAMC,GAAIG,OACrB,OAAOD,IAGXjP,EAAMmP,eACNnP,EAAMoP,eAAiB,WACnBvP,EAAM6M,SAAS0C,iBAAiBtO,KAAK,SAAUC,GAC3Cf,EAAMmP,YAAcpO,EAAEE,QAG9BjB,EAAM4O,wBAA0B,SAAUtN,GACtCzB,EAAM6M,SAAS9B,cAActJ,EAAKqM,MAAM7M,KAAK,SAAUC,GACnDO,EAAKqL,WAAa5L,EAAEE,QAI5BjB,EAAMqP,OAAO,uBAAwB,SAAUC,EAAGC,GAC1CD,IAAMC,GACNvP,EAAMmN,iBACX,GACHnN,EAAMoP,iBAENpP,EAAMoN,cAAgB,EACtBpN,EAAMqN,cAAgB,EACtBrN,EAAMsN,gBAAkB,EACxBtN,EAAMwP,oBAQd,MALA/C,GAAqBxI,QAAU,WAC3B,GAAIC,GAAM,SAAUuL,GAAkB,MAAO,IAAIhD,GAAqBgD,GAEtE,OADAvL,GAAIC,SAAW,kBACRD,GAEJuI,KAEPgD,eAAkB,WAClB,QAASA,GAAe9P,GACpB,GAAIE,GAAQC,IACZA,MAAKH,MAAQA,EACbG,KAAK4N,eAAiB,SAAU1J,GAC5B,GAAIqB,GAAM,uCACV,OAAOxF,GAAMF,MAAMyF,KAAKC,GAAOqK,UAAW1L,KAE9ClE,KAAKsP,eAAiB,WAClB,GAAI/J,GAAM,uCACV,OAAOxF,GAAMF,MAAMyF,KAAKC,IAE5BvF,KAAK8K,cAAgB,SAAU+E,GAC3B,GAAItK,GAAM,4CACV,OAAOxF,GAAMF,MAAMyF,KAAKC,GAAOF,OAAQwK,KAO/C,MAJAF,GAAeG,UAAUC,SAAW,WAChC/P,KAAKH,MAAQ,MAEjB8P,EAAetL,SAAW,SACnBsL,KAWPK,gBAAmB,WACnB,QAASA,GAAgB/D,GACrB,GAAIlM,GAAQC,IACZA,MAAKiM,OAASA,EACdjM,KAAKC,SAAW,IAChBD,KAAKuE,QAAU,UACfvE,KAAKiQ,eAAiB,SAAUzQ,GAC5B,GAAI0Q,GAAO,MACQ,iBAAR1Q,GACP0Q,EAAQ1Q,GAAO,OAEK,mBAARA,KACZ0Q,GAAQ1Q,GAAO,GAAGyN,QAAQ,IAE9BiD,EAAOA,EAAKC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,GAE3C,IAAIC,GAAMF,EAAKzF,QAAQ,IACnB2F,UACAF,GAAQ,MACZ,IAAIG,GAAOH,EAAKI,OAASF,CACzB,IAAIC,GAAQ,EACRH,EAAOA,EAAKK,UAAU,EAAGH,EAAM,OAG/B,KAAK,GAAIlF,GAAI,EAAGA,EAAImF,EAAMnF,IACtBgF,GAAQ,GAIhB,OAAOA,IAEXlQ,KAAKwQ,cAAgB,SAAUhR,GAE3B,GAAI0Q,GAAO,GACQ,iBAAR1Q,GACP0Q,GAAQ1Q,GAAO,KAAK2Q,QAAQ,IAAK,KAAKA,QAAQ,IAAK,IAE/B,mBAAR3Q,KACZ0Q,GAAQ1Q,GAAO,GAAGyN,QAAQ,GAE9B,IAAIwD,GAAQhR,WAAWyQ,EACvB,OAAOnQ,GAAMgN,eAAe0D,IAEhCzQ,KAAK+M,eAAiB,SAAUvN,GAC5B,GAAIwN,GAAOxN,EAAIyN,QAAQ,EACvB,OAAOxN,YAAWuN,IAEtBhN,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,EAAMmE,GACrCA,EAAM6L,SAAS7N,KAAK9C,EAAMyQ,eAC1B3L,EAAM8L,YAAY9N,KAAK9C,EAAMkQ,gBAE7BxP,EAAKC,KAAK,OAAQ,QAClBD,EAAKmQ,IAAI,aAAc,SAiBvBnQ,EAAKuE,KAAK,OAAQ,SAAU6L,GACxB,GAAIC,GAAS/Q,EAAMkM,OAAOvL,EAAc,SACpClB,EAAMsR,EAAO5Q,GACb6Q,EAAUvR,EAAMA,EAAIyN,QAAQ,GAAGkD,QAAQ,IAAK,KAAKA,QAAQ,IAAK,IAAM,MACxEa,GAAEH,EAAII,QAAQzR,IAAIuR,KAEtBtQ,EAAKuE,KAAK,WAAY,SAAU6L,GAC5B,GAAIK,GAAWC,SAASN,EAAI5L,SAAW4L,EAAIO,OACvCC,GAAQR,EAAIS,KAAO,IAAIC,aAI3B,KAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI9G,QAAQyG,UACrD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,SAAU,YAAa,MAAO,aAAc,YAAa,UAAW,aAAazG,QAAQ4G,QAIzJ,WADAR,GAAI3L,oBAWpB,MALA8K,GAAgB7L,QAAU,WACtB,GAAIC,GAAM,SAAU6H,GAAU,MAAO,IAAI+D,GAAgB/D,GAEzD,OADA7H,GAAIC,SAAW,UACRD,GAEJ4L,KAGPwB,sBAAyB,WACzB,QAASA,GAAsBvF,EAAQpM,EAAO4R,GAC1C,GAAI1R,GAAQC,IACZA,MAAKiM,OAASA,EACdjM,KAAKH,MAAQA,EACbG,KAAKyR,cAAgBA,EACrBzR,KAAKE,OACDsM,QAAS,IACTkF,WAAY,IACZC,WAAY,IACZpM,IAAK,IACLqM,YAAa,IACbC,WAAY,IACZxM,OAAQ,IACRT,SAAU,IACVkN,YAAa,KAEjB9R,KAAKuE,SAAW,WAChBvE,KAAKmQ,SAAU,EACfnQ,KAAK6G,SAAW,whBAChB7G,KAAKC,SAAW,IAChBD,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,GAG/BR,EAAM6R,kBAAmB,EACzB7R,EAAM8R,aAAc,EACpB9R,EAAM+R,aAAetO,OAErBzD,EAAMgE,GAAKxD,EAAS,KAAK,GAAKwR,OAAQC,UACtCjS,EAAMkS,KAAO1R,EAAW,KACxBR,EAAAA,SAAcQ,EAAK,SACnBR,EAAMmS,YAAc3R,EAAkB,YACtCR,EAAMoS,gBACNpS,EAAMiB,QAENjB,EAAMqP,OAAO,OAAQ,WACjBrP,EAAMoS,aAAevS,EAAM0R,cAAcvR,EAAMiB,KAAMjB,EAAMqS,cAG3DrS,EAAM0R,aACN1R,EAAMqP,OAAO,UAAW,SAAUC,EAAGC,GAC7BD,IAAMC,GAAKvP,EAAM8R,eAAgB,IACjC9R,EAAMoS,aAAevS,EAAM0R,cAAcvR,EAAMiB,KAAMjB,EAAMqS,eAEhE,GAGPrS,EAAMsS,aAAe,SAAUpR,GAC3B,GAAkB,KAAdA,EAAE6D,QAGF,GAFA7D,EAAE8D,iBAEEhF,EAAM6R,oBAAqB,EAAO,CAClC7R,EAAM6R,kBAAmB,CACzB,IAAI1M,GAAUnF,EAAY,OACtBqF,EAAMrF,EAAMqF,GAChBxF,GAAMF,MAAMyF,KAAKC,GAAOF,OAAQA,IAAUrE,KAAK,SAAUC,GACrDf,EAAMiB,KAAOF,EAAEE,WAInBjB,GAAM6R,kBAAmB,EACzB7R,EAAMuS,cAAcvS,EAAM+R,kBAG7B,IAAkB,KAAd7Q,EAAE6D,SAEP,GAAI/E,EAAM6R,oBAAqB,EAAM,CACjC3Q,EAAE8D,iBACFhF,EAAM8R,aAAc,CACpB,IAAI5B,GAAMlQ,EAAMoS,aAAa7H,QAAQvK,EAAM+R,aACvC7B,GAAM,EACNA,IAGAA,EAAM,EAEVlQ,EAAM+R,aAAe/R,EAAMoS,aAAalC,GACxClQ,EAAMsM,QAAUtM,EAAMwS,cAAcxS,EAAM+R,mBAG7C,IAAkB,KAAd7Q,EAAE6D,SAEP,GAAI/E,EAAM6R,oBAAqB,EAAM,CACjC3Q,EAAE8D,iBACFhF,EAAM8R,aAAc,CACpB,IAAI5B,GAAMlQ,EAAMoS,aAAa7H,QAAQvK,EAAM+R,aACvC7B,GAAMlQ,EAAMoS,aAAahC,OAAS,EAClCF,IAGAA,EAAMlQ,EAAMoS,aAAahC,OAAS,EAEtCpQ,EAAM+R,aAAe/R,EAAMoS,aAAalC,GACxClQ,EAAMsM,QAAUtM,EAAMwS,cAAcxS,EAAM+R,mBAG3B,MAAd7Q,EAAE6D,SAEP7D,EAAE8D,iBACFhF,EAAM6R,kBAAmB,GAGrB7R,EAAM0R,cACN1R,EAAM8R,aAAc,IAKhC9R,EAAMuS,cAAgB,SAAUE,GAC5BzS,EAAM+R,aAAeU,EACrBzS,EAAMsM,QAAUtM,EAAMwS,cAAcxS,EAAM+R,cAC1C/R,EAAM6R,kBAAmB,EAEK,kBAAnB7R,GAAM0E,UAAwD,mBAAtB1E,GAAM4R,aACrD5R,EAAM0E,SAAS1E,EAAM4R,YAAaa,IAI1CzS,EAAM0S,WAAa,SAAUD,GACzB,MAAOA,KAAMzS,EAAM+R,cAGvB/R,EAAMwS,cAAgB,SAAUC,GAC5B,MAAIzS,GAAM2R,YAAcc,EACbA,EAAEzS,EAAM2R,YAEZc,GAGXzS,EAAMqS,WAAa,SAAUI,GACzB,GAAIzS,EAAM0R,aAAe1R,EAAM8R,eAAgB,EAAM,CACjD,GAAIa,IAAM3S,EAAMwS,cAAcC,IAAM,IAAIG,OAAOvB,cAC3CwB,GAAM7S,EAAMsM,SAAW,IAAIsG,OAAOvB,aACtC,IAAW,KAAPwB,GAAaF,EAAGpI,QAAQsI,QACxB,OAAO,EAEf,OAAO,IASnB,MALAvB,GAAsBrN,QAAU,WAC5B,GAAIC,GAAM,SAAU6H,EAAQpM,EAAO4R,GAAiB,MAAO,IAAID,GAAsBvF,EAAQpM,EAAO4R,GAEpG,OADArN,GAAa,SAAK,SAAU,QAAS,gBAC9BA,GAEJoN,KASPwB,wBAA2B,WAC3B,QAASA,KACLhT,KAAKC,SAAW,KAChBD,KAAKuE,QAAU,QACfvE,KAAKE,OACD+S,gBAAiB,KAErBjT,KAAK6G,SAAW,wIAChB7G,KAAKQ,KAAO,SAAUN,EAAOO,EAAM8L,EAAO2G,GACtChT,EAAMiT,UACNjT,EAAM4G,KAAO5G,EAAMkT,MAAMtM,IAIzB,KAFA,GAAIuM,GAAK1S,QAAQ2L,QAAQ7L,GACrB6S,EAAOD,EAAG,GAAGE,SACF,QAARD,GACHD,EAAKA,EAAGG,SACRF,EAAOD,EAAG,GAAGE,QAEjBF,GAAGI,SAAS,sBAQZvT,EAAMwT,uBAAyB,SAAUC,EAAMR,GAa3C,MAZsB,mBAAXA,KACPA,MACJxS,QAAQ8M,QAAQmG,OAAOC,KAAKF,GAAO,SAAUrC,GAChB,gBAAdqC,GAAKrC,KACRqC,EAAKrC,GAAKwC,eAAe,eACzBC,EAAmBJ,EAAKrC,GAAM6B,EAAQQ,EAAKK,OAEtCL,EAAKrC,GAAKwC,eAAe,iBAA2B,iBAARxC,GACjDpR,EAAMwT,uBAAuBC,EAAKrC,GAAM6B,MAI7CA,EAWX,IAAIY,GAAqB,SAAUE,EAAWd,EAAQe,GAClD,GAAIC,GAAaF,EAAUG,YACvBC,EAAYJ,EAAUD,KAC1B,QAAQK,GACJ,IAAK,wBACD,GAAIC,GAAUL,EAAUM,MACnBD,KACDnB,EAAOkB,GAAa,qBACxB,MACJ,KAAK,gBACD,GAAIG,GAAYP,EAAUM,MACrBC,KACDrB,EAAOkB,GAAa,8BACxB,MACJ,KAAK,gBACD,GAAII,GAAYR,EAAUM,MACrBE,KACDtB,EAAOkB,GAAa,gCACxB,MACJ,KAAK,wBACD,GAAIK,GAA4BT,EAAUM,MACrCG,KACDvB,EAAOkB,GAAa,2CACxB,MACJ,KAAK,OACD,GAAIM,GAAWV,EAAUM,MACpBI,KACDxB,EAAOkB,GAAa,kCACxB,MACJ,KAAK,iBACD,GAAIO,GAAeX,EAAUM,MACxBK,KACDzB,EAAOkB,GAAa,gCACxB,MACJ,KAAK,UACD,GAAIQ,GAAUZ,EAAUM,MACnBM,KACD1B,EAAOkB,GAAa,6BACxB,MACJ,KAAK,WAED,GAAIS,EAAgBT,EAAWH,GAAW,CACtCD,EAAUc,aAAaV,GAAW,EAClC,OAEJ,GAAIW,GAAY9U,EAAM4G,OAAS,SAAU,UAAU2D,QAAQvK,EAAM4G,KAAKsD,iBAAqB,IAAQ,IAC/F6K,EAAed,GAAca,CACjCf,GAAUc,aAAaV,EAAWY,GAE7BA,IACD9B,EAAOkB,GAAa,gFAAsGW,EAAW,aACzI,MACJ,KAAK,WACD,GAAIE,GAAef,EAAa,CAChCF,GAAUc,aAAaV,EAAWa,GAC7BA,IACD/B,EAAOkB,GAAa,+BACxB,MACJ,KAAK,SACD,GAAIc,GAAahB,KAAe,CAChCF,GAAUc,aAAaV,EAAWc,GAC7BA,IACDhC,EAAOkB,GAAa,2IACxB,MACJ,SACI,SAURS,EAAkB,SAAU1C,EAAM8B,GAClC,GAAIzT,GAAO2U,SAASC,cAAc,gBAAkBnB,EAAW,kBAAyB9B,EAAO,IAG/F,OAFK3R,KACDA,EAAO2U,SAASC,cAAc,aAAenB,EAAW,kBAAyB9B,EAAO,SACxF3R,IAAQA,EAAK6U,WAAW,wBAC4C,QAA7D7U,EAAK6U,WAAW,sBAAsBC,MAAMhE,cAQ3DrR,GAAMqP,OAAO,WAAc,MAAO2D,GAAKsC,YAAe,SAAUC,EAAQC,GAChED,IACAvV,EAAMiT,OAASjT,EAAMwT,uBAAuBR,GACxCA,EAAKqB,QACLrU,EAAM+S,kBACVC,EAAKyC,mBAUrB,MALA3C,GAAwB7O,QAAU,WAC9B,GAAIC,GAAM,SAAUxE,EAASgW,GAAY,MAAO,IAAI5C,GAEpD,OADA5O,GAAa,WACNA,GAEJ4O,KAGP6C,yBAA4B,WAC5B,QAASA,KACL7V,KAAKC,SAAW,IAChBD,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,KAQvC,MALAmV,GAAyB1R,QAAU,WAC/B,GAAIlD,GAAI,WAAc,MAAO,IAAI4U,GAEjC,OADA5U,GAAW,WACJA,GAEJ4U,KAEPC,gBACJ,SAAWA,GACP,GAAIC,GAAqB,WACrB,QAASA,GAAkBlW,GACvB,GAAIE,GAAQC,IACZA,MAAKH,MAAQA,EAEbG,KAAKgW,eAAiB,SAAUjK,EAASkK,GACrC,GAAI1Q,GAAM,yBAOV,OANIwG,KACAxG,GAAO,YAAc,GAErB0Q,IACA1Q,GAAO,iBAAmB,GAEvBxF,EAAMF,MAAMkB,IAAIwE,IAG3BvF,KAAKkW,mBAAqB,SAAUC,GAChC,GAAI5Q,GAAM,2CAA6C4Q,CACvD,OAAOpW,GAAMF,MAAMkB,IAAIwE,IAI/B,MADAwQ,GAAkB1R,SAAW,SACtB0R,IAEXD,GAAeC,kBAAoBA,CACnC,IAAIK,GAAsB,WACtB,QAASA,GAAmBhT,EAAQwJ,GAChC,GAAI7M,GAAQC,IACZA,MAAK4M,SAAWA,EAEhBxJ,EAAO+D,QAAU,WAEb,GAAI4E,GAAU3I,EAAOiT,YAAYvM,aAAe,YAM5CwM,EAAQlT,EAAOmT,IACnBxW,GAAM6M,SAASoJ,eAAejK,EAASuK,GAAOtV,KAAK,SAAUC,GACzDmC,EAAOoT,SAAWvV,EAAEE,KAAKkG,QAC1B,SAAUjG,MAEbrB,EAAM6M,SAASsJ,mBAAmB9S,EAAOiT,YAAY7L,wBAAwBxJ,KAAK,SAAUC,GACxFmC,EAAOqT,gBAAkBxV,EAAEE,KAAKkG,QACjC,SAAUjG,OAEjBgC,EAAOsT,aAAe,SAAUC,GAE5B,IAAK,GADDC,IAAsB,EACjB1L,EAAI,EAAGA,GAAK9H,EAAOiT,YAAY9K,WAAW,GAAGsL,SAASvG,OAAS,EAAGpF,IAAK,CAC5E,GAAI4L,GAAkB1T,EAAOiT,YAAY9K,WAAW,GAAGsL,SAAS3L,EAC5D4L,GAAgBvQ,OAASoQ,IAErBC,IADAE,EAAgBC,QAQ5B,OAASA,OAAQH,EAAqBI,aAAa,IAGvD5T,EAAOmM,OAAO,gBAAiB,SAAUC,EAAGC,GAExC,IAAK,GADDoE,GAAOD,OAAOC,KAAKrE,GACdtE,EAAI,EAAGA,GAAK2I,EAAKvD,OAAS,EAAGpF,IAAK,CAIvC,IAAK,GAHDoG,GAAMuC,EAAK3I,GACX+L,EAAUzH,EAAE8B,GACZ4F,GAAQ,EACHC,EAAI,EAAGA,GAAK/T,EAAOiT,YAAY9K,WAAW,GAAGsL,SAASvG,OAAS,EAAG6G,IAAK,CAC5E,GAAIC,GAAWhU,EAAOiT,YAAY9K,WAAW,GAAGsL,SAASM,EACzD,IAAIC,EAAS7Q,OAAS+K,EAAK,CACvB8F,EAASL,OAASE,EAAQF,OAC1BG,GAAQ,CACR,QAGJA,KAAU,GACV9T,EAAOiT,YAAY9K,WAAW,GAAGsL,SAAShU,MACtC0D,KAAM+K,EACNyF,OAAQE,EAAQF,YAI7B,GAEH3T,EAAOmM,OAAO,cAAe,WACrBnM,EAAOiT,aAAejT,EAAOiT,YAAY9K,YAAcnI,EAAOiT,YAAY9K,WAAW+E,OAAS,IAC9FlN,EAAOiT,YAAY9K,WAAW,GAAGsL,SAAWzT,EAAOiT,YAAY9K,WAAW,GAAGsL,aAC7EzT,EAAO+D,aAIf/D,EAAOmM,OAAO,WAAY,WAEtB,IAAK,GADDsE,GAAOD,OAAOC,KAAKzQ,EAAOiU,eACrBnM,EAAI,EAAGA,GAAK2I,EAAKvD,OAAS,EAAGpF,IAAK,CACvC,GAAImG,GAAOwC,EAAK3I,EAChB9H,GAAOiU,cAAchG,GAAM0F,OAAU3T,EAAOkU,YAAa,KAIjElU,EAAOmM,OAAO,YAAa,WAEvB,IAAK,GADDsE,GAAOD,OAAOC,KAAKzQ,EAAOiU,eACrBnM,EAAI,EAAGA,GAAK2I,EAAKvD,OAAS,EAAGpF,IAAK,CACvC,GAAImG,GAAOwC,EAAK3I,EAChB9H,GAAOiU,cAAchG,GAAM0F,OAAU3T,EAAOmU,aAAc,KAIlEnU,EAAOoT,YACPpT,EAAOqT,mBACPrT,EAAOiU,iBACPjU,EAAOmU,WAAY,EAGvB,MADAnB,GAAmB/R,SAAW,SAAU,qBACjC+R,IAEXN,GAAeM,mBAAqBA,CACpC,IAAIoB,GAAqB,WACrB,QAASA,KACLxX,KAAKC,SAAW,KAChBD,KAAK6G,SAAW,4rEAChB7G,KAAKmD,WAAaiT,EAClBpW,KAAKE,OACDqW,KAAM,IACNF,YAAa,IACbiB,SAAU,IACVG,WAAY,KAQpB,MALAD,GAAkBrT,QAAU,WACxB,GAAIlD,GAAI,WAAc,MAAO,IAAIuW,GAEjC,OADAvW,GAAW,WACJA,GAEJuW,IAEX1B,GAAe0B,kBAAoBA,CACnC,IAAIE,GAAwB,WACxB,QAASA,KACL1X,KAAKC,SAAW,KAChBD,KAAK6G,SAAW;AAChB7G,KAAKmD,WAAaiT,EAClBpW,KAAKE,OACDqW,KAAM,IACNF,YAAa,IACbiB,SAAU,KAQlB,MALAI,GAAqBvT,QAAU,WAC3B,GAAIlD,GAAI,WAAc,MAAO,IAAIyW,GAEjC,OADAzW,GAAW,WACJA,GAEJyW,IAEX5B,GAAe4B,qBAAuBA,CACtC,IAAIC,GAA0B,WAC1B,QAASA,KACL3X,KAAKC,SAAW,KAChBD,KAAK6G,SAAW,gmCAChB7G,KAAKmD,WAAaiT,EAClBpW,KAAKE,OACDqW,KAAM,IACNF,YAAa,IACbiB,SAAU,KAQlB,MALAK,GAAuBxT,QAAU,WAC7B,GAAIlD,GAAI,WAAc,MAAO,IAAI0W,GAEjC,OADA1W,GAAW,WACJA,GAEJ0W,IAEX7B,GAAe6B,uBAAyBA,CACxC,IAAIC,GAAyB,WACzB,QAASA,KACL5X,KAAK6G,SAAW,yPAOpB,MALA+Q,GAAsBzT,QAAU,WAC5B,GAAIlD,GAAI,WAAc,MAAO,IAAI2W,GAEjC,OADA3W,GAAW,WACJA,GAEJ2W,IAEX9B,GAAe8B,sBAAwBA,GACxC9B,iBAAmBA,oBACtBnV,QAAQkI,OAAO,sBAAuB,eACjCC,UAAU,mBAAoBgN,eAAe0B,kBAAkBrT,WAC/D2E,UAAU,sBAAuBgN,eAAe4B,qBAAqBvT,WACrE2E,UAAU,wBAAyBgN,eAAe6B,uBAAuBxT,WACzE2E,UAAU,uBAAwBgN,eAAe8B,sBAAsBzT,WACvE0T,QAAQ,oBAAqB/B,eAAeC,kBACjD,IAAI+B,mBACJ,SAAWA,GAEP,GAAIC,GAA2B,WAC3B,QAASA,GAAwB3U,GAgB7B,OAdAA,EAAO4U,cAAiB5U,EAAO2I,SAAW3I,EAAO6U,WAAc,EAAI,EACnE7U,EAAO8U,YAAc,EACrB9U,EAAO+U,WAAY,EACnB/U,EAAOgV,gBAAoBhV,EAAO2I,SAAW3I,EAAO6U,WAAc,MAAQ,SACtE7U,EAAOiV,UAAYjV,EAAOiV,UAAYjV,EAAOgV,gBAC7ChV,EAAO+U,WAAY,EAEb/U,EAAOiV,SAIbjV,EAAO+U,WAAY,EAHnB/U,EAAO+U,WAAY,EAMf/U,EAAOmT,MACX,IAAK,QACDnT,EAAO8U,YAAc,CACrB,MACJ,KAAK,QACD9U,EAAO8U,YAAc,CACrB,MACJ,KAAK,QACD9U,EAAO8U,YAAc,CACrB,MACJ,KAAK,QACD9U,EAAO8U,YAAc,CACrB,MACJ,KAAK,QACD9U,EAAO8U,YAAc,CACrB,MACJ,KAAK,QACD9U,EAAO8U,YAAc,GAKjC,MADAH,GAAwB1T,SAAW,UAC5B0T,KAEPO,EAAuB,WACvB,QAASA,KACLtY,KAAKmD,WAAa4U,EAClB/X,KAAKC,SAAW,KAChBD,KAAKE,OACDqW,KAAM,IACNxK,QAAS,IACTsM,SAAU,IACVJ,WAAY,KAEhBjY,KAAKO,YAAc,6CAOvB,MALA+X,GAAoBnU,QAAU,WAC1B,GAAIC,GAAM,WAAc,MAAO,IAAIkU,GAEnC,OADAlU,GAAa,WACNA,GAEJkU,IAEXR,GAAiBQ,oBAAsBA,CAEvC,IAAIC,GAA2B,WAC3B,QAASA,GAAwBnV,GAC7BA,EAAOoV,WAAa,WAChBpV,EAAOqV,iBAAkB,GAE7BrV,EAAOsV,YAAc,WACjBtV,EAAOqV,iBAAkB,GAG7BrV,EAAOqV,iBAAkB,EAEzBrV,EAAOuV,iBAAoBvV,EAAO6U,YAAc7U,EAAO2I,UAAY,EAGvE,MADAwM,GAAwBlU,SAAW,UAC5BkU,KAEPK,EAAuB,WACvB,QAASA,KACL5Y,KAAKmD,WAAaoV,EAClBvY,KAAKC,SAAW,KAChBD,KAAKmQ,SAAU,EACfnQ,KAAKE,OACDqW,KAAM,IACNxK,QAAS,IACTkM,WAAY,KAEhBjY,KAAKO,YAAc,sDAOvB,MALAqY,GAAoBzU,QAAU,WAC1B,GAAIC,GAAM,WAAc,MAAO,IAAIwU,GAEnC,OADAxU,GAAa,WACNA,GAEJwU,IAEXd,GAAiBc,oBAAsBA,CAEvC,IAAIC,GAAyB,WACzB,QAASA,GAAsBzV,IAG/B,MADAyV,GAAsBxU,SAAW,UAC1BwU,KAEPC,EAAqB,WACrB,QAASA,KACL9Y,KAAKmD,WAAa0V,EAClB7Y,KAAKC,SAAW,KAChBD,KAAKO,YAAc,4DAOvB,MALAuY,GAAkB3U,QAAU,WACxB,GAAIC,GAAM,WAAc,MAAO,IAAI0U,GAEnC,OADA1U,GAAa,WACNA,GAEJ0U,IAEXhB,GAAiBgB,kBAAoBA,CAErC,IAAIC,GAAmC,WACnC,QAASA,GAAgC3V,IAGzC,MADA2V,GAAgC1U,SAAW,UACpC0U,KAEPC,EAA+B,WAC/B,QAASA,KACLhZ,KAAKmD,WAAa4V,EAClB/Y,KAAKC,SAAW,KAChBD,KAAKO,YAAc,uEAOvB,MALAyY,GAA4B7U,QAAU,WAClC,GAAIC,GAAM,WAAc,MAAO,IAAI4U,GAEnC,OADA5U,GAAa,WACNA,GAEJ4U,IAEXlB,GAAiBkB,4BAA8BA,CAE/C,IAAIC,GAA+B,WAC/B,QAASA,GAA4B7V,IAGrC,MADA6V,GAA4B5U,SAAW,UAChC4U,KAEPC,EAA2B,WAC3B,QAASA,KACLlZ,KAAKmD,WAAa8V,EAClBjZ,KAAKC,SAAW,KAChBD,KAAKO,YAAc,mEAOvB,MALA2Y,GAAwB/U,QAAU,WAC9B,GAAIC,GAAM,WAAc,MAAO,IAAI8U,GAEnC,OADA9U,GAAa,WACNA,GAEJ8U,IAEXpB,GAAiBoB,wBAA0BA,CAG3C,IAAIC,GAAoB,WACpB,QAASA,GAAiB/V,GAEtBA,EAAOgW,SAAW,WACdhW,EAAOiW,UAAW,GAEtBjW,EAAOkW,SAAW,WACdlW,EAAOiW,UAAW,EACW,kBAAlBjW,GAAOmW,QACdnW,EAAOmW,OAAOnW,EAAO0I,UAI7B1I,EAAOiW,UAAW,EAGtB,MADAF,GAAiB9U,SAAW,UACrB8U,KAEPK,EAAgB,WAChB,QAASA,KACLxZ,KAAKmD,WAAagW,EAClBnZ,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACT2N,WAAY,IACZF,OAAQ,KAEZvZ,KAAKO,YAAc,iDAOvB,MALAiZ,GAAarV,QAAU,WACnB,GAAIlD,GAAI,WAAc,MAAO,IAAIuY,GAEjC,OADAvY,GAAW,WACJA,GAEJuY,IAEX1B,GAAiB0B,aAAeA,CAEhC,IAAIE,GAA2B,WAC3B,QAASA,GAAwBtW,GAE7BA,EAAOgW,SAAW,WACdhW,EAAOiW,UAAW,EAClBjW,EAAO0I,QAAQ6N,mBAAmB,GAAGC,WAAY,GAErDxW,EAAOsE,QAAU,WACbtE,EAAO0I,QAAQ6N,mBAAmB,GAAGC,WAAY,GAGrDxW,EAAO0I,QAAQ6N,mBAAmB,GAAGE,UAAW,EAEhDzW,EAAOkW,SAAW,WACdlW,EAAOiW,UAAW,EAElBjW,EAAO0I,QAAQ6N,mBAAmB,GAAGE,UAAW,EAEnB,kBAAlBzW,GAAOmW,QACdnW,EAAOmW,OAAOnW,EAAO0I,UAI7B1I,EAAOiW,UAAW,EAGtB,MADAK,GAAwBrV,SAAW,UAC5BqV,KAEPI,EAAuB,WACvB,QAASA,KACL9Z,KAAKmD,WAAauW,EAClB1Z,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACT2N,WAAY,IACZF,OAAQ,KAEZvZ,KAAKO,YAAc,yDAOvB,MALAuZ,GAAoB3V,QAAU,WAC1B,GAAIlD,GAAI,WAAc,MAAO,IAAI6Y,GAEjC,OADA7Y,GAAW,WACJA,GAEJ6Y,IAEXhC,GAAiBgC,oBAAsBA,CACvC,IAAIC,GAA4B,WAC5B,QAASA,GAAyBla,EAAOma,GACrC,GAAIja,GAAQC,IACZA,MAAKH,MAAQA,EACbG,KAAKga,GAAKA,EACVha,KAAKia,aAAe,SAAU/V,EAAIoP,GAC9B,GAAI/N,GAAM,+CAAiDrB,EAAK,SAAWoP,CAC3E,OAAOvT,GAAMF,MAAMkB,IAAIwE,IAE3BvF,KAAKka,iBAAmB,SAAUhW,EAAIiW,GAClC,GAAI5U,GAAM,qBAAuBrB,CACjC,OAAOnE,GAAMF,MAAMyF,KAAKC,EAAK4U,IAIrC,MADAJ,GAAyB1V,SAAW,QAAS,MACtC0V,IAEXjC,GAAiBiC,yBAA2BA,CAE5C,IAAIK,GAA6B,WAC7B,QAASA,GAA0Bza,EAAYyD,EAAQyU,EAASjY,GAC5DI,KAAKoD,OAASA,EACdpD,KAAK6X,QAAUA,EACf7X,KAAKJ,QAAUA,EACfwD,EAAOiX,aACPjX,EAAOgI,IAAI,sBAAuB,SAAUyF,GACxCzN,EAAO6W,iBAEX7W,EAAO6W,aAAe,WAClBpC,EAAQoC,aAAa7W,EAAO0I,QAAQtB,uBAAwB,cACvDxJ,KAAK,SAAUC,GAChBmC,EAAOiX,UAAYpZ,EAAEE,KAAKkG,cAGlCjE,EAAOkE,aAAe,SAAUC,GAC5BC,OAAOvE,KAAK,gCAAkCsE,IAGlDnE,EAAOkX,uBAAyB,WAC5B3a,EAAWsE,WAAW,4BAA8BsW,UAAWnX,EAAO0I,QAAQtB,0BAElFpH,EAAOoX,gBAAkB,SAAUjT,EAAQkT,GACvC,GAAIC,GAAUD,MACVvW,EAAKd,EAAO0I,QAAQtB,uBACpB2P,IACJA,GAAQtX,KAAK0E,IACY,KAArBnE,EAAO0D,KAAK6T,MAAejT,QAAQ,kEACnCmQ,EAAQqC,iBAAiBhW,EAAIiW,GAASnZ,KAAK,SAAUC,GACjDrB,EAAQyB,IAAI,UAAW,0BAA2B,oCAC9CqZ,GAAuC,kBAArBA,GAAQE,SAC1BF,EAAQE,WAIRxX,EAAOyX,YAAY3W,IAExB,SAAU9C,GACTxB,EAAQyB,IAAI,QAAS,0BAA2B,qDAI5D+B,EAAO0X,6BAA+B,SAAUC,GAC5C3X,EAAOoX,gBAAgBO,EAAIC,QAAUJ,SAAU,WAAcG,EAAInB,WAAY,MAEjFxW,EAAO6W,eAIX,MADAG,GAA0B/V,SAAW,aAAc,SAAU,2BAA4B,WAClF+V,KAEPa,EAAyB,WACzB,QAASA,GAAsBtb,GAC3BK,KAAKL,WAAaA,EAClBK,KAAKmD,WAAaiX,EAClBpa,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACThF,KAAM,KAEV9G,KAAKQ,KAAO,SAAUN,EAAOO,EAAMC,KAEnCV,KAAKO,YAAc,2DAOvB,MALA0a,GAAsB9W,QAAU,WAC5B,GAAIlD,GAAI,SAAUtB,GAAc,MAAO,IAAIsb,GAAsBtb,GAEjE,OADAsB,GAAW,SAAK,cACTA,GAEJga,IAEXnD,GAAiBmD,sBAAwBA,CAEzC,IAAIC,GAA4B,WAC5B,QAASA,GAAyB9X,GAE9BA,EAAOgW,SAAW,WACdhW,EAAOiW,UAAW,EAClBjW,EAAO0I,QAAQqP,yBAAyBvB,WAAY,GAExDxW,EAAOsE,QAAU,WACbtE,EAAO0I,QAAQqP,yBAAyBvB,WAAY,GAExDxW,EAAOgY,KAAO,WACV,GAAIC,GAAUvW,KAAKC,MAAMD,KAAKwW,UAAUlY,EAAO0I,QAAQ6N,mBAAmB,IAC1E0B,GAAQzB,WAAY,EACpBxW,EAAO0I,QAAQqP,yBAA2BE,GAG9CjY,EAAO0I,QAAQqP,yBAAyBtB,UAAW,EAEnDzW,EAAOkW,SAAW,WACdlW,EAAOiW,UAAW,EAElBjW,EAAO0I,QAAQqP,yBAAyBtB,UAAW,EAEtB,kBAAlBzW,GAAOmW,QACdnW,EAAOmW,OAAOnW,EAAO0I,UAKjC,MADAoP,GAAyB7W,SAAW,UAC7B6W,KAEPK,EAAwB,WACxB,QAASA,KACLvb,KAAKmD,WAAa+X,EAClBlb,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACT2N,WAAY,IACZF,OAAQ,KAEZvZ,KAAKO,YAAc,0DAOvB,MALAgb,GAAqBpX,QAAU,WAC3B,GAAIlD,GAAI,WAAc,MAAO,IAAIsa,GAEjC,OADAta,GAAW,WACJA,GAEJsa,IAEXzD,GAAiByD,qBAAuBA,CAExC,IAAIC,GAA2B,WAC3B,QAASA,GAAwBpY,GAE7BA,EAAOgW,SAAW,WACdhW,EAAOiW,UAAW,EAClBjW,EAAO0I,QAAQ2P,wBAAwB7B,WAAY,GAEvDxW,EAAOsE,QAAU,WAC4B,IAArCtE,EAAO0I,QAAQ4P,oBACftY,EAAO0I,QAAQ2P,wBAAwB5B,UAAW,EAClDzW,EAAO0I,QAAQ6P,4BAA4B9B,UAAW,GAE1DzW,EAAO0I,QAAQ2P,wBAAwB7B,WAAY,GAEvDxW,EAAOgY,KAAO,WACV,GAAIC,GAAUvW,KAAKC,MAAMD,KAAKwW,UAAUlY,EAAO0I,QAAQ6N,mBAAmB,IAC1E0B,GAAQzB,WAAY,EACpBxW,EAAO0I,QAAQ2P,wBAA0BJ,GAG7CjY,EAAO0I,QAAQ2P,wBAAwB5B,UAAW,EAElDzW,EAAOkW,SAAW,WACdlW,EAAOiW,UAAW,EAElBjW,EAAO0I,QAAQ2P,wBAAwB5B,UAAW,EAClDzW,EAAO0I,QAAQ6P,4BAA4B9B,UAAW,EAEzB,kBAAlBzW,GAAOmW,QACdnW,EAAOmW,OAAOnW,EAAO0I,UAKjC,MADA0P,GAAwBnX,SAAW,UAC5BmX,KAEPI,EAAuB,WACvB,QAASA,KACL5b,KAAKmD,WAAaqY,EAClBxb,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACT2N,WAAY,IACZF,OAAQ,KAEZvZ,KAAKO,YAAc,gEAOvB,MALAqb,GAAoBzX,QAAU,WAC1B,GAAIlD,GAAI,WAAc,MAAO,IAAI2a,GAEjC,OADA3a,GAAW,WACJA,GAEJ2a,IAEX9D,GAAiB8D,oBAAsBA,CAEvC,IAAIC,GAA+B,WAC/B,QAASA,GAA4BzY,GAEjCA,EAAOgW,SAAW,WACdhW,EAAOiW,UAAW,EAClBjW,EAAO0I,QAAQ6P,4BAA4B/B,WAAY,GAE3DxW,EAAOsE,QAAU,WAC4B,IAArCtE,EAAO0I,QAAQ4P,oBACftY,EAAO0I,QAAQ2P,wBAAwB5B,UAAW,EAClDzW,EAAO0I,QAAQ6P,4BAA4B9B,UAAW,GAE1DzW,EAAO0I,QAAQ6P,4BAA4B/B,WAAY,GAG3DxW,EAAO0I,QAAQ6P,4BAA4B9B,UAAW,EAEtDzW,EAAOkW,SAAW,WACdlW,EAAOiW,UAAW,EAElBjW,EAAO0I,QAAQ6P,4BAA4B9B,UAAW,EACtDzW,EAAO0I,QAAQ2P,wBAAwB5B,UAAW,EAErB,kBAAlBzW,GAAOmW,QACdnW,EAAOmW,OAAOnW,EAAO0I,UAKjC,MADA+P,GAA4BxX,SAAW,UAChCwX,KAEPC,EAA2B,WAC3B,QAASA,KACL9b,KAAKmD,WAAa0Y,EAClB7b,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACT2N,WAAY,IACZF,OAAQ,KAEZvZ,KAAKO,YAAc,qEAOvB,MALAub,GAAwB3X,QAAU,WAC9B,GAAIlD,GAAI,WAAc,MAAO,IAAI6a,GAEjC,OADA7a,GAAW,WACJA,GAEJ6a,IAEXhE,GAAiBgE,wBAA0BA,CAE3C,IAAIC,GAAmC,WACnC,QAASA,GAAgC3Y,EAAQyU,GAC7C7X,KAAK6X,QAAUA,EAEfzU,EAAO4Y,mBACPnE,EAAQoE,0BAA0B7Y,EAAO0I,QAAQhC,aAC5C9I,KAAK,SAAUC,GAChBmC,EAAO8Y,UAAYjb,EAAEE,KACrBiC,EAAO4Y,gBAAgBX,QAAUjY,EAAO+Y,2BAA2B/Y,EAAO0I,QAAQ6P,+BAEtFvY,EAAOgW,SAAW,WACdhW,EAAOiW,UAAW,EAClBjW,EAAO0I,QAAQ6P,4BAA4B/B,WAAY,GAE3DxW,EAAOsE,QAAU,WAC4B,IAArCtE,EAAO0I,QAAQ4P,oBACftY,EAAO0I,QAAQ2P,wBAAwB5B,UAAW,EAClDzW,EAAO0I,QAAQ6P,4BAA4B9B,UAAW,GAE1DzW,EAAO0I,QAAQ6P,4BAA4B/B,WAAY,GAE3DxW,EAAOgZ,2BAA6B,WAChChZ,EAAO0I,QAAQ6P,4BAA4BU,WAAajZ,EAAO4Y,gBAAgBX,QAAQiB,SACvFlZ,EAAO0I,QAAQ6P,4BAA4BY,SAAWnZ,EAAO4Y,gBAAgBX,QAAQmB,YACrFpZ,EAAO0I,QAAQ6P,4BAA4Bc,KAAOrZ,EAAO4Y,gBAAgBX,QAAQqB,KACjFtZ,EAAO0I,QAAQ6P,4BAA4BgB,SAAWvZ,EAAO4Y,gBAAgBX,QAAQjJ,KACrFhP,EAAO0I,QAAQ6P,4BAA4BiB,OAASxZ,EAAO4Y,gBAAgBX,QAAQwB,OACnFzZ,EAAO0I,QAAQ6P,4BAA4B/B,WAAY,GAE3DxW,EAAO+Y,2BAA6B,SAAUW,GAC1C,GAAIC,IACAT,SAAUQ,EAAaT,WACvBG,YAAaM,EAAaP,SAC1BG,KAAMI,EAAaL,KACnBrK,KAAM0K,EAAaH,SACnBE,OAAQC,EAAaF,OAEzB,OAAOG,IAGX3Z,EAAO0I,QAAQ6P,4BAA4B9B,UAAW,EAEtDzW,EAAOkW,SAAW,WACdlW,EAAOiW,UAAW,EAElBjW,EAAO0I,QAAQ6P,4BAA4B9B,UAAW,EACtDzW,EAAO0I,QAAQ2P,wBAAwB5B,UAAW,EAErB,kBAAlBzW,GAAOmW,QACdnW,EAAOmW,OAAOnW,EAAO0I,UAKjC,MADAiQ,GAAgC1X,SAAW,SAAU,8BAC9C0X,KAEPiB,EAA+B,WAC/B,QAASA,KACLhd,KAAKmD,WAAa4Y,EAClB/b,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACT2N,WAAY,IACZF,OAAQ,KAEZvZ,KAAKO,YAAc,0EAOvB,MALAyc,GAA4B7Y,QAAU,WAClC,GAAIlD,GAAI,WAAc,MAAO,IAAI+b,GAEjC,OADA/b,GAAW,WACJA,GAEJ+b,IAEXlF,GAAiBkF,4BAA8BA,CAC/C,IAAIC,GAA8B,WAC9B,QAASA,GAA2Bpd,EAAOma,GACvC,GAAIja,GAAQC,IACZA,MAAKH,MAAQA,EACbG,KAAKga,GAAKA,EACVha,KAAKic,0BAA4B,SAAUiB,GACvC,GAAI3X,GAAM,0DAA4D2X,CACtE,OAAOnd,GAAMF,MAAMkB,IAAIwE,IAI/B,MADA0X,GAA2B5Y,SAAW,QAAS,MACxC4Y,IAEXnF,GAAiBmF,2BAA6BA,CAE9C,IAAIE,GAAgC,WAChC,QAASA,GAA6B/Z,GAElCA,EAAOgW,SAAW,aAElBhW,EAAOQ,OAAS,aAEhBR,EAAOkW,SAAW,WAIe,kBAAlBlW,GAAOmW,QACdnW,EAAOmW,OAAOnW,EAAO0I,UAG7B1I,EAAOga,eAAiB,SAAU5b,GAC9B,MAAgC,iBAAxBA,EAAKgN,iBAA8D,WAAxBhN,EAAKgN,iBAIhE,MADA2O,GAA6B9Y,SAAW,UACjC8Y,KAEPE,EAA4B,WAC5B,QAASA,KACLrd,KAAKmD,WAAaga,EAClBnd,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACT2N,WAAY,IACZF,OAAQ,KAEZvZ,KAAKO,YAAc,8DAOvB,MALA8c,GAAyBlZ,QAAU,WAC/B,GAAIlD,GAAI,WAAc,MAAO,IAAIoc,GAEjC,OADApc,GAAW,WACJA,GAEJoc,IAEXvF,GAAiBuF,yBAA2BA,CAE5C,IAAIC,GAAgC,WAChC,QAASA,GAA6Bla,GAElCA,EAAOgW,SAAW,aAElBhW,EAAOQ,OAAS,aAEhBR,EAAOkW,SAAW,WAIe,kBAAlBlW,GAAOmW,QACdnW,EAAOmW,OAAOnW,EAAO0I,UAG7B1I,EAAOga,eAAiB,SAAU5b,GAC9B,MAAgC,UAAxBA,EAAKgN,iBAIrB,MADA8O,GAA6BjZ,SAAW,UACjCiZ,KAEPC,EAA4B,WAC5B,QAASA,KACLvd,KAAKmD,WAAama,EAClBtd,KAAKC,SAAW,KAChBD,KAAKE,OACD4L,QAAS,IACT2N,WAAY,IACZF,OAAQ,KAEZvZ,KAAKO,YAAc,8DAOvB,MALAgd,GAAyBpZ,QAAU,WAC/B,GAAIlD,GAAI,WAAc,MAAO,IAAIsc,GAEjC,OADAtc,GAAW,WACJA,GAEJsc,IAEXzF,GAAiByF,yBAA2BA,CAE5C,IAAIC,GAAsB,WACtB,QAASA,GAAmBpa,GAExBA,EAAOqa,gBACH,MACA,QACA,QACA,OACA,QACA,MACA,OACA,MACA,QACA,QACA,QACA,QACA,MACA,OACA,SAGJra,EAAOsa,kBAAmB,EAC1Bta,EAAOua,uBAAyB,WAC5B,MAAOva,GAAOsa,kBAElBta,EAAOmM,OAAO,kBAAmB,WACzBnM,EAAOwa,kBAAoBxa,EAAOsa,kBAClCG,WAAW,WACPza,EAAOsa,iBAAmBta,EAAOwa,iBAClC,OAKf,MADAJ,GAAmBnZ,SAAW,UACvBmZ,KAEPM,EAA2B,WAC3B,QAASA,KACL9d,KAAKmD,WAAaqa,EAClBxd,KAAKO,YAAc,oCACnBP,KAAKC,SAAW,KAChBD,KAAKE,OACDmb,QAAS,IACT0C,WAAY,IACZC,kBAAmB,IACnBJ,gBAAiB,IACjBK,SAAU,KAQlB,MALAH,GAAwB3Z,QAAU,WAC9B,GAAIlD,GAAI,WAAc,MAAO,IAAI6c,GAEjC,OADA7c,GAAW,WACJA,GAEJ6c,IAEXhG,GAAiBgG,wBAA0BA,CAC3C,IAAII,GAA+B,WAC/B,QAASA,KACLle,KAAKmD,WAAaqa,EAClBxd,KAAKO,YAAc,wCACnBP,KAAKC,SAAW,KAChBD,KAAKE,OACDmb,QAAS,IACT0C,WAAY,IACZC,kBAAmB,IACnBJ,gBAAiB,IACjBK,SAAU,KAQlB,MALAC,GAA4B/Z,QAAU,WAClC,GAAIlD,GAAI,WAAc,MAAO,IAAIid,GAEjC,OADAjd,GAAW,WACJA,GAEJid,IAEXpG,GAAiBoG,4BAA8BA,CAE/C,IAAIC,GAAwB,WACxB,QAASA,KACLne,KAAKC,SAAW,IAChBD,KAAK6G,SAAW,smBAQpB,MALAsX,GAAqBha,QAAU,WAC3B,GAAIC,GAAM,WAAc,MAAO,IAAI+Z,GAEnC,OADA/Z,GAAa,WACNA,GAEJ+Z,IAEXrG,GAAiBqG,qBAAuBA,CAExC,IAAIC,GAAsB,WACtB,QAASA,GAAmBve,EAAOwe,GAC/B,GAAIte,GAAQC,IACZA,MAAKH,MAAQA,EACbG,KAAKqe,KAAOA,EACZre,KAAKC,SAAW,IAChBD,KAAK6G,SAAW,yEAChB7G,KAAKQ,KAAO,SAAU8d,EAAGjL,EAAI9G,GACzB+R,EAAEC,KAAO,EACT,IAAIjI,GAAQnQ,IAAIC,SAASC,KAAKmY,mBAM9B,IALAF,EAAEhI,MAAQA,EACVgI,EAAEG,sBAAwB,WACtB,MAAO1e,GAAMse,KAAKK,YAAYJ,EAAEC,OAGhCjI,EAAM7L,QAAQ,qBACX6L,EAAM7L,QAAQ,wBACd6L,EAAM7L,QAAQ,6BACd6L,EAAM7L,QAAQ,uBACd6L,EAAM7L,QAAQ,oBACjB6T,EAAEhI,MAAQ,oBAET,IAAIA,EAAM7L,QAAQ,mBAChB6L,EAAM7L,QAAQ,6BACjB6T,EAAEhI,MAAQ,2BAET,IAAIA,EAAM7L,QAAQ,8BAChB6L,EAAM7L,QAAQ,4BACjB6T,EAAEhI,MAAQ,+BAET,IAAIA,EAAM7L,QAAQ,sCAChB6L,EAAM7L,QAAQ,uCAA0C,CAC3D6T,EAAEhI,MAAQ,oCAEV,IAAIqI,GAAeL,GAAKA,EAAEK,YAAgB,IAAML,EAAEK,YAAe,EACjEL,GAAEhI,OAASqI,MAENrI,GAAM7L,QAAQ,2BAChB6L,EAAM7L,QAAQ,iCACjB6T,EAAEhI,MAAQ,8BAGd,IAAIvK,GAAU,WACVuS,GAAExX,MAAQwX,EAAExX,KAAKiD,QACjBgC,EAAUuS,EAAExX,KAAKiD,QAEZuU,EAAEvS,SAAWuS,EAAEvS,QAAQjC,YAC5BiC,EAAUuS,EAAEvS,QAAQjC,YAEfwU,EAAEvS,UACPA,EAAUuS,EAAEvS,SAEhBuS,EAAEM,YAAc,qBAChBN,EAAEO,QAAS,CACX,IAAItZ,GAAM,yBAA2BwG,EAAU,UAAYuS,EAAEhI,MAAQ,gBAAkBgI,EAAEM,YAAc,WAAaN,EAAEO,MACtH9e,GAAMF,MAAMkB,IAAIwE,GAAKvE,KAAK,SAAUC,GAChCqd,EAAEC,KAAOtd,EAAEE,QAUvB,MALAid,GAAmBja,QAAU,WACzB,GAAIC,GAAM,SAAUvE,EAAOwe,GAAQ,MAAO,IAAID,GAAmBve,EAAOwe,GAExE,OADAja,GAAa,SAAK,QAAS,QACpBA,GAEJga,IAEXtG,GAAiBsG,mBAAqBA,CAEtC,IAAIU,GAAgB,WAChB,QAASA,KACL9e,KAAKC,SAAW,KAChBD,KAAKE,OACD6L,QAAS,KAEb/L,KAAKO,YAAc,2CAOvB,MALAue,GAAa3a,QAAU,WACnB,GAAIC,GAAM,WAAc,MAAO,IAAI0a,GAEnC,OADA1a,GAAa,WACNA,GAEJ0a,IAEXhH,GAAiBgH,aAAeA,CAChC,IAAIC,GAA8B,WAC9B,QAASA,GAA2Blf,EAAOC,EAAQkf,GAC/Chf,KAAKH,MAAQA,EACbG,KAAKF,OAASA,EACdE,KAAKgf,QAAUA,EA0BnB,MAxBAD,GAA2BjP,UAAUmP,gBAAkB,WACnD,GAAIlf,GAAQC,IACZA,MAAKH,MAAMkB,IAAI,2CAA2CC,KAAK,SAAU+C,GACrE,GAAImb,GAAcnb,EAAO5C,KAAKge,YAC1BC,EAAcrb,EAAO5C,KAAKke,YAC1BC,EAAkF,SAAnEvf,EAAMif,QAAQO,eAAeC,QAAQ,yBACxD,IAAIN,IAAgBI,EAAc,CAC9B,GAAItc,GAAgBjD,EAAMD,OAAOmD,MAC7BC,WAAW,EACX3C,YAAa,4BACb4C,WAAY,wBACZW,SACI2b,YAAa,WACT,MAAOL,MAInBpc,GAAce,OAAO/C,KAAK,WAAc,MAAOgK,IAAM,WACjDjL,EAAMif,QAAQO,eAAeG,QAAQ,0BAA0B,SAK/EX,EAA2B1a,SAAW,QAAS,SAAU,WAClD0a,IAEXjH,GAAiBiH,2BAA6BA,CAC9C,IAAIY,GAA8B,WAC9B,QAASA,GAA2BZ,GAChC/e,KAAK+e,2BAA6BA,EAClC/e,KAAKC,SAAW,IAChBD,KAAK6G,SAAW,GAChBkY,EAA2BE,kBAQ/B,MALAU,GAA2Bxb,QAAU,WACjC,GAAIC,GAAM,SAAU2a,GAA8B,MAAO,IAAIY,GAA2BZ,GAExF,OADA3a,GAAa,SAAK,8BACXA,GAEJub,IAEX7H,GAAiB6H,2BAA6BA,CAC9C,IAAIC,GAAyB,WACzB,QAASA,GAAsBxc,EAAQC,EAAgBoc,GACnDzf,KAAKoD,OAASA,EACdpD,KAAKqD,eAAiBA,EACtBrD,KAAKyf,YAAcA,EACnBrc,EAAOqc,YAAcA,EACrBrc,EAAOQ,OAAS,WACZP,EAAeQ,QAAQ,WAI/B,MADA+b,GAAsBvb,SAAW,SAAU,iBAAkB,eACtDub,IAEX9H,GAAiB8H,sBAAwBA,GAC1C9H,mBAAqBA","file":"ts.modules.min.js","sourcesContent":["\"use strict\";\nvar LlCartDirective = (function () {\n function LlCartDirective($rootScope, toaster, $http, $modal) {\n var _this = this;\n this.$rootScope = $rootScope;\n this.toaster = toaster;\n this.$http = $http;\n this.$modal = $modal;\n this.restrict = \"AE\";\n this.scope = {\n // przedmioty kalkulacji\n requestItems: \"=\",\n // obiekt ze zmianami, dla powiadomień ( {wasItemAdded: ..., wasItemDeleted: ..., wasItemChanged: ...} )\n changes: \"=\",\n // czy ma się pojawić przycisk \"Dodaj dostawcę\"\n canAddSupplier: \"@\",\n // requestGuid\n requestGuid: '@'\n };\n this.templateUrl = \"/WWW/partials/modules/cart.form.html\";\n this.link = function (scope, elem, attr) {\n // wartość domyślna canAddSupplier\n if (angular.isUndefined(scope.canAddSupplier)) {\n scope.canAddSupplier = false;\n }\n scope.http = _this.$http;\n var rs = _this.$rootScope;\n // pobranie danych slownikowych\n scope.http.get('/OfferBusinessData/GetCategoryLevels').then(function (d) {\n scope.categoryDic = d.data;\n }, function (e) {\n _this.toaster.pop('error', \"Pobieranie danych\", \"Pobieranie danych nie przebiegło poprawnie.\");\n });\n // pobranie produktów partnera, na którego założona jest sprawa + ewentualnych dodatych produktów domyślnych\n if (typeof scope.requestGuid === \"undefined\")\n scope.requestGuid = \"\";\n scope.http.get('/OfferBusinessData/GetCategoryLevelsForRequest' + '?calculationId=' + scope.requestGuid).then(function (d) {\n // zmienna przechowująca produkty partnera, na którego jest założona sprawa - pobierane przy edycji koszyka na sprawie\n scope.categoryForRequestDic = d.data;\n }, function (e) {\n _this.toaster.pop('error', \"Pobieranie danych\", \"Pobieranie danych nie przebiegło poprawnie.\");\n });\n // rekalkulacja\n // scope.calculate = function (item) {\n // var pNet = parseFloat(item.NetPrice);\n // var pGross = parseFloat(item.GrossPrice);\n // var q = parseFloat(item.Quantity);\n // var taxCode = item.TaxCode;\n // var tax = parseFloat(taxCode == 'zw' ? \"0\" : parseFloat(taxCode).toString());\n // item.NetValue = parseFloat((pNet * q).toString());\n // item.GrossPrice = parseFloat((pNet * (1 + tax / 100)).toString());\n // item.GrossValue = parseFloat((item.NetValue * (1 + tax / 100)).toString());\n // item.TaxValue = item.GrossValue - item.NetValue;\n // scope.changes.wasRequestsListChanged = true;\n // };\n scope.calculate = function (item) {\n var pNet = parseFloat(item.NetPrice);\n var q = parseFloat(item.Quantity);\n var taxCode = item.TaxCode;\n var tax = (taxCode == \"zw\" ? 0 : parseFloat(taxCode));\n var discount = parseFloat(item.Discount || \"0\");\n item.NetValue = (pNet * q) * (1 - discount / 100);\n item.GrossPrice = (pNet * (1 + tax / 100));\n item.GrossValue = ((item.NetValue) * (1 + tax / 100));\n item.TaxValue = (item.GrossValue - item.NetValue);\n //console.debug(\"calculate\", item);\n scope.changes.wasRequestsListChanged = true;\n };\n // usunięcie pozycji\n scope.deleteBasketItem = function (array, idx) {\n array.splice(idx, 1);\n scope.changes.wasRequestsListChanged = true;\n };\n // dodanie pozycji\n scope.addRequestItem = function () {\n var item = {\n TaxCode: \"23\",\n Tax: \"23\",\n Quantity: 1\n };\n scope.requestItems.push(item);\n scope.changes.wasRequestsListChanged = true;\n };\n scope.modal = _this.$modal;\n scope.addSupplier = function (item) {\n var modalInstance = scope.modal.open({\n animation: true,\n templateUrl: '/WWW/partials/addSupplierModal.html',\n controller: ['$scope', '$modalInstance', 'requestItem', function ($scope, $modalInstance, requestItem) {\n $scope.requestItem = requestItem;\n $scope.ok = function () {\n $modalInstance.close($scope.requestItem);\n };\n $scope.removeData = function () {\n $scope.requestItem.SupplierNip = undefined;\n $modalInstance.close($scope.requestItem);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n }],\n scope: scope,\n resolve: {\n requestItem: function () {\n return item;\n }\n }\n });\n modalInstance.result.then(function () {\n var _this = this;\n scope.http.put('/api/ProductUpdate/' + scope.requestGuid, scope.requestItems).then(function (d) {\n //scope.categoryDic = d.data;\n rs.$broadcast('showRequestBroadcast', { id: scope.requestGuid });\n }, function (e) {\n _this.toaster.pop('error', \"Pobieranie danych\", \"Pobieranie danych nie przebiegło poprawnie.\");\n });\n }, function () { });\n };\n };\n }\n LlCartDirective.Factory = function () {\n var dir = function ($rootScope, toaster, $http, $modal) { return new LlCartDirective($rootScope, toaster, $http, $modal); };\n dir.$inject = [\"$rootScope\", \"toaster\", \"$http\", \"$modal\"];\n return dir;\n };\n return LlCartDirective;\n}());\nvar DataChooserDirective = (function () {\n function DataChooserDirective($modal) {\n var _this = this;\n this.$modal = $modal;\n this.restrict = \"A\";\n this.require = \"ngModel\";\n // otworzenie modalu\n this.openResultModel = function (forItem) {\n var _self = _this;\n var modalInstance = _this.$modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/data.chooser.html',\n controller: 'DataChooserModalCtrl',\n resolve: {\n config: function () { return _self.config; }\n }\n });\n // wybranie elementu\n modalInstance.result.then(function (item) {\n if (typeof _self.config.onSelect !== \"undefined\") {\n _self.config.onSelect(forItem, item);\n }\n }, function () {\n });\n };\n this.config = {};\n this.scope = {\n onSelect: \"=emqDataChooserOnSelect\",\n forItem: \"=emqDataChooserForItem\"\n };\n this.link = function (scope, elem, attr, model) {\n var _self = _this;\n // konfiguracja\n _self.config = JSON.parse(attr['emqDataChooser'] || \"{}\");\n _self.config.onSelect = scope.onSelect;\n // podmapowanie zdarzenia\n elem.bind('keydown', function (e) {\n // F1 - otwarcie dailogu\n if (e.keyCode === 112 || e.keyCode === 13) {\n e.preventDefault();\n // pobieranie danych z uslugi\n _self.openResultModel(scope.forItem);\n }\n });\n };\n }\n DataChooserDirective.Factory = function () {\n var dir = function ($modal) { return new DataChooserDirective($modal); };\n dir.$inject = ['$modal'];\n return dir;\n };\n return DataChooserDirective;\n}());\nvar DataChooserModalCtrl = (function () {\n function DataChooserModalCtrl($scope, $modalInstance, $http, config) {\n var _this = this;\n this.$scope = $scope;\n this.$modalInstance = $modalInstance;\n this.$http = $http;\n this.config = config;\n // pobranie dancyh\n this.getRemoteData = function (filter) {\n return _this.$http.post(_this.config.url, { filter: (filter) });\n };\n var _self = this;\n // informacje do popbrania \n $scope.label = _self.config.label || 'label';\n $scope.desc = _self.config.desc || 'desc';\n $scope.items = [];\n // potwierdzenie wyboru\n $scope.onSelectItem = function (item) {\n $modalInstance.close(item);\n };\n // pobranie danych\n _self.getRemoteData(\"\").then(function (d) {\n $scope.items = d.data;\n }, function (e) {\n });\n }\n DataChooserModalCtrl.$inject = ['$scope', '$modalInstance', '$http', 'config'];\n return DataChooserModalCtrl;\n}());\n//module llPartnerPanel {\n// content\nvar PartnerPanelContentDirective = (function () {\n function PartnerPanelContentDirective(PartnerPanelService) {\n var _this = this;\n this.PartnerPanelService = PartnerPanelService;\n this.restrict = \"A\";\n this.templateUrl = \"/WWW/partials/modules/partner.panel.content.html\";\n this.link = function (scope, elem, attr) {\n var _self = _this;\n // ustawienie zakladki\n scope.setCurrentTab = function (tab) {\n scope.currentTab = tab;\n };\n // przejscie na oferte\n scope.openResponse = function (id) {\n var _self = _this;\n var _url = \"/process/choose.offer/\" + id;\n top.location.href = _url;\n };\n // zmienne\n if (!scope.process || !scope.process.Guid) {\n //scope.currentTab = 'new_request';\n scope.Request = _self.PartnerPanelService.PrepareRequest();\n }\n };\n }\n PartnerPanelContentDirective.Factory = function () {\n var dir = function (PartnerPanelService) { return new PartnerPanelContentDirective(PartnerPanelService); };\n dir.$inject = ['PartnerPanelService'];\n return dir;\n };\n return PartnerPanelContentDirective;\n}());\n//} \nvar systemMediaMarkt;\n(function (systemMediaMarkt) {\n // glowna dyrektywa\n var PartnerMediaMarktPanelCtrl = (function () {\n function PartnerMediaMarktPanelCtrl($scope) {\n }\n PartnerMediaMarktPanelCtrl.$inject = ['$scope'];\n return PartnerMediaMarktPanelCtrl;\n }());\n var PartnerMediaMarktPanelDir = (function () {\n function PartnerMediaMarktPanelDir() {\n this.restrict = \"AE\";\n this.template = \"
\\n \\n
\\n\\n \\n \\n \\n \\n\\n\\n
\\n\\n\\n
\";\n this.controller = PartnerMediaMarktPanelCtrl;\n this.scope = {\n user: \"=\",\n requestId: \"@\",\n process: \"=\"\n };\n }\n PartnerMediaMarktPanelDir.Factory = function () {\n var d = function () { return new PartnerMediaMarktPanelDir(); };\n d['$inject'] = [];\n return d;\n };\n return PartnerMediaMarktPanelDir;\n }());\n systemMediaMarkt.PartnerMediaMarktPanelDir = PartnerMediaMarktPanelDir;\n // dyrektywa oddrukowania umowy i potwierdzenia umowy\n var PartnerMediaMarktAgreementCtrl = (function () {\n function PartnerMediaMarktAgreementCtrl($scope, $http, toaster) {\n var _this = this;\n this.$scope = $scope;\n this.$http = $http;\n this.toaster = toaster;\n this.url = \"/api/PartnerMediaMarktAgreement\";\n this.getAgreementDocumentList = function () {\n var _url = _this.url + \"/\" + _this.$scope.requestId;\n return _this.$http.get(_url);\n };\n this.acceptAgreementDocumentList = function () {\n var _url = _this.url + \"/\" + _this.$scope.requestId;\n return _this.$http.put(_url);\n };\n var _self = this;\n $scope.refresh = function () {\n $scope.isLoaded = false;\n _self.getAgreementDocumentList().then(function (d) {\n $scope.data = d.data.Result;\n $scope.isLoaded = true;\n });\n };\n // pokazanie dokumentu\n $scope.showDocument = function (fileId) {\n window.open(\"/document/show?fileId=\" + fileId);\n };\n // potwierdzenie wszystkich\n $scope.acceptAllDocuments = function () {\n if (confirm(\"Czy na pewno chcesz potwierdzić podpisanie umowy?\")) {\n _self.acceptAgreementDocumentList().then(function (d) {\n toaster.pop(\"success\", \"Akceptacja\", \"Umowa zaakceptowana poprawnie\");\n // przekierowanie do kolejnego kroku\n top.location.reload();\n }, function (e) {\n toaster.pop(\"error\", \"Błąd\", \"Wystąpił błąd podczas akceptowania umowy\");\n console.error(e);\n });\n }\n };\n $scope.isLoaded = false;\n $scope.refresh();\n }\n PartnerMediaMarktAgreementCtrl.$inject = ['$scope', '$http', 'toaster'];\n return PartnerMediaMarktAgreementCtrl;\n }());\n var PartnerMediaMarktAgreementDir = (function () {\n function PartnerMediaMarktAgreementDir() {\n this.controller = PartnerMediaMarktAgreementCtrl;\n this.restrict = \"AE\";\n this.templateUrl = \"/WWW/partials/modules/partner.panel.media.markt/partner.media.markt.agreement.html\";\n }\n PartnerMediaMarktAgreementDir.Factory = function () {\n var d = function () { return new PartnerMediaMarktAgreementDir(); };\n d['$inject'] = [];\n return d;\n };\n return PartnerMediaMarktAgreementDir;\n }());\n systemMediaMarkt.PartnerMediaMarktAgreementDir = PartnerMediaMarktAgreementDir;\n // dyrektywa wygenerowania platnosc\n var PartnerMediaMarktInitialPaymentCtrl = (function () {\n function PartnerMediaMarktInitialPaymentCtrl($scope, $http, toaster) {\n var _this = this;\n this.$scope = $scope;\n this.$http = $http;\n this.toaster = toaster;\n this.url = \"/api/PartnerMediaMarktInitialPayment\";\n this.getInitialPaymentData = function () {\n var _url = _this.url + \"/\" + _this.$scope.requestId;\n return _this.$http.get(_url);\n };\n this.resendInitialPaymentData = function () {\n var _url = _this.url + \"/\" + _this.$scope.requestId;\n return _this.$http.put(_url);\n };\n var _self = this;\n $scope.refresh = function () {\n $scope.isLoaded = false;\n _self.getInitialPaymentData().then(function (d) {\n $scope.data = d.data.Result;\n $scope.isLoaded = true;\n });\n };\n // potwierdzenie wszystkich\n $scope.sendInitialPaymentNotificatication = function () {\n if (confirm(\"Czy na pewno chcesz wysłać jeszcze raz informacje o płatności?\")) {\n _self.resendInitialPaymentData().then(function (d) {\n toaster.pop(\"success\", \"Ponownie płatności\", \"Informacja została przesłana poprawnie\");\n // przekierowanie do kolejnego kroku\n //top.location.reload();\n }, function (e) {\n toaster.pop(\"error\", \"Błąd\", \"Wystąpił błąd podczas przesyłania informacji\");\n console.error(e);\n });\n }\n };\n //sprawdzenie statusu = przeladowanie strony\n $scope.checkStatus = function () {\n top.location.reload();\n };\n $scope.isLoaded = false;\n $scope.refresh();\n }\n PartnerMediaMarktInitialPaymentCtrl.$inject = ['$scope', '$http', 'toaster'];\n return PartnerMediaMarktInitialPaymentCtrl;\n }());\n var PartnerMediaMarktInitialPaymentDir = (function () {\n function PartnerMediaMarktInitialPaymentDir() {\n this.controller = PartnerMediaMarktInitialPaymentCtrl;\n this.restrict = \"AE\";\n this.templateUrl = \"/WWW/partials/modules/partner.panel.media.markt/partner.media.markt.initial.payment.html\";\n }\n PartnerMediaMarktInitialPaymentDir.Factory = function () {\n var d = function () { return new PartnerMediaMarktInitialPaymentDir(); };\n d['$inject'] = [];\n return d;\n };\n return PartnerMediaMarktInitialPaymentDir;\n }());\n systemMediaMarkt.PartnerMediaMarktInitialPaymentDir = PartnerMediaMarktInitialPaymentDir;\n // dyrektywa potwierdzenia wydania towaru\n var PartnerMediaMarktSendDeliveryCtrl = (function () {\n function PartnerMediaMarktSendDeliveryCtrl($scope, $http, toaster) {\n var _this = this;\n this.$scope = $scope;\n this.$http = $http;\n this.toaster = toaster;\n this.url = \"/api/PartnerMediaMarktSendDelivery\";\n this.getSendDeliveryData = function () {\n var _url = _this.url + \"/\" + _this.$scope.requestId;\n return _this.$http.get(_url);\n };\n this.acceptSendDeliveryData = function () {\n var _url = _this.url + \"/\" + _this.$scope.requestId;\n return _this.$http.put(_url);\n };\n var _self = this;\n $scope.refresh = function () {\n $scope.isLoaded = false;\n _self.getSendDeliveryData().then(function (d) {\n $scope.data = d.data.Result;\n $scope.isLoaded = true;\n });\n };\n // potwierdzenie wszystkich\n $scope.acceptSendDelivery = function () {\n //if (confirm(\"Czy na pewno chcesz potwierdzić wydanie towaru?\")) {\n _self.acceptSendDeliveryData().then(function (d) {\n toaster.pop(\"success\", \"Potwierdzenie wydania\", \"Wydanie towaru potwierdzono poprawnie\");\n // przekierowanie do kolejnego kroku\n top.location.reload();\n }, function (e) {\n toaster.pop(\"error\", \"Błąd\", \"Wystąpił błąd podczas potwierdzania wydania towaru\");\n console.error(e);\n });\n //}\n };\n $scope.isLoaded = false;\n $scope.refresh();\n }\n PartnerMediaMarktSendDeliveryCtrl.$inject = ['$scope', '$http', 'toaster'];\n return PartnerMediaMarktSendDeliveryCtrl;\n }());\n var PartnerMediaMarktSendDeliveryDir = (function () {\n function PartnerMediaMarktSendDeliveryDir() {\n this.controller = PartnerMediaMarktSendDeliveryCtrl;\n this.restrict = \"AE\";\n this.templateUrl = \"/WWW/partials/modules/partner.panel.media.markt/partner.media.markt.send.delivery.html\";\n }\n PartnerMediaMarktSendDeliveryDir.Factory = function () {\n var d = function () { return new PartnerMediaMarktSendDeliveryDir(); };\n d['$inject'] = [];\n return d;\n };\n return PartnerMediaMarktSendDeliveryDir;\n }());\n systemMediaMarkt.PartnerMediaMarktSendDeliveryDir = PartnerMediaMarktSendDeliveryDir;\n // dyrektywa domyslna\n var PartnerMediaMarktDefaultCtrl = (function () {\n function PartnerMediaMarktDefaultCtrl($scope, $http, toaster) {\n var _this = this;\n this.$scope = $scope;\n this.$http = $http;\n this.toaster = toaster;\n this.url = \"/api/PartnerMediaMarktDefault\";\n this.getOrderData = function () {\n var _url = _this.url + \"/\" + _this.$scope.requestId;\n return _this.$http.get(_url);\n };\n var _self = this;\n $scope.refresh = function () {\n $scope.isLoaded = false;\n _self.getOrderData().then(function (d) {\n $scope.data = d.data.Result;\n $scope.isLoaded = true;\n });\n };\n $scope.isLoaded = false;\n $scope.refresh();\n }\n PartnerMediaMarktDefaultCtrl.$inject = ['$scope', '$http', 'toaster'];\n return PartnerMediaMarktDefaultCtrl;\n }());\n var PartnerMediaMarktDefaultDir = (function () {\n function PartnerMediaMarktDefaultDir() {\n this.controller = PartnerMediaMarktDefaultCtrl;\n this.restrict = \"AE\";\n this.templateUrl = \"/WWW/partials/modules/partner.panel.media.markt/partner.media.markt.default.html\";\n }\n PartnerMediaMarktDefaultDir.Factory = function () {\n var d = function () { return new PartnerMediaMarktDefaultDir(); };\n d['$inject'] = [];\n return d;\n };\n return PartnerMediaMarktDefaultDir;\n }());\n systemMediaMarkt.PartnerMediaMarktDefaultDir = PartnerMediaMarktDefaultDir;\n})(systemMediaMarkt || (systemMediaMarkt = {}));\nangular.module(\"ll.mediamark\", ['ngSanitize'])\n .directive(\"llPartnerMediaMarktPanel\", systemMediaMarkt.PartnerMediaMarktPanelDir.Factory())\n .directive(\"llPartnerMediaMarktAgreement\", systemMediaMarkt.PartnerMediaMarktAgreementDir.Factory())\n .directive(\"llPartnerMediaMarktInitialPayment\", systemMediaMarkt.PartnerMediaMarktInitialPaymentDir.Factory())\n .directive(\"llPartnerMediaMarktSendDelivery\", systemMediaMarkt.PartnerMediaMarktSendDeliveryDir.Factory())\n .directive(\"llPartnerMediaMarktDefault\", systemMediaMarkt.PartnerMediaMarktDefaultDir.Factory());\n//module llPartnerPanel {\n// menu\nvar PartnerPanelMenuDirective = (function () {\n function PartnerPanelMenuDirective(PartnerPanelService, $rootScope) {\n var _this = this;\n this.PartnerPanelService = PartnerPanelService;\n this.$rootScope = $rootScope;\n this.restrict = \"A\";\n this.templateUrl = \"/WWW/partials/modules/partner.panel.menu.html\";\n this.link = function (scope, elem, attr) {\n // dodanie nowego elementu\n scope.addNewRequest = function () {\n scope.currentTab = 'new_request';\n scope.Request = _this.PartnerPanelService.PrepareRequest();\n _this.$rootScope.$broadcast(\"leaselink::new_request\");\n };\n // anulowanie dodawania\n scope.cancelNewRequest = function () {\n scope.currentTab = '';\n };\n // pobranie danych\n scope.refresh = function () {\n /*\n this\n .PartnerPanelService\n .GetOfferResponseList()\n .then(\n (d) => {\n scope.list = d.data;\n });\n */\n };\n // zmienne\n scope.list = [];\n // domyslan akcja \n scope.refresh();\n };\n }\n PartnerPanelMenuDirective.Factory = function () {\n var dir = function (PartnerPanelService, $rootScope) { return new PartnerPanelMenuDirective(PartnerPanelService, $rootScope); };\n dir.$inject = ['PartnerPanelService', '$rootScope'];\n return dir;\n };\n return PartnerPanelMenuDirective;\n}());\n//} \n'use strict';\nvar PartnerPanelRequestFormDirective = (function () {\n function PartnerPanelRequestFormDirective(PartnerPanelService, toaster, $rootScope, $location, $modal) {\n var _this = this;\n this.PartnerPanelService = PartnerPanelService;\n this.toaster = toaster;\n this.$rootScope = $rootScope;\n this.$location = $location;\n this.$modal = $modal;\n this.restrict = \"A\";\n this.templateUrl = \"/WWW/partials/modules/partner.panel.request.form.html\";\n this.link = function (scope, elem, attr) {\n var _self = _this;\n // wyslanie i zapisanie\n scope.sendRequest = function () {\n scope.processRequest(false);\n };\n // symulacja\n scope.simulateRequest = function () {\n scope.processRequest(true);\n };\n // zapisanie oferty\n scope.processRequest = function (isSimulation) {\n //pelne przeliczenie\n scope.Request.FullRecalculation = true;\n scope.Request.PartnerUserGuid = scope.user.Guid;\n scope.Request.PartnerUserName = scope.user.LastName + \", \" + scope.user.FirstName;\n scope.Request.PartnerName = scope.user.Partner;\n scope.Request.SaveInProcess = true;\n var SendProposal = (isSimulation !== true);\n scope.Request.Simulation = isSimulation;\n scope.Request.UserExternalId = scope.user.ExternalId;\n //scope.Request.OfferCreationSource = \"ProcessOfferByPartner\";\n scope.Request.ClientGoBackUrl = '/ProcessOfferByPartner'; //?externalId=' + scope.user.ExternalId;\n // wyslanie \n _self\n .PartnerPanelService\n .SendOfferRequest(scope.Request, SendProposal)\n .then(function (d) {\n if (d.data.StatusCode == 200) {\n //_self.toaster.pop('success', \"Przygotowanie kalkulacji\", \"Przygotowanie kalkulacji przebiegło poprawnie.\");\n var AggragatedCalulationId = d.data.Result.AggragatedCalulationId;\n scope.Request.AggragatedCalulationId = AggragatedCalulationId;\n if (scope.user && ['DHMLEA', 'CCMLEA'].indexOf(scope.user.ExternalId) !== -1) {\n scope.onCloseClick = function () {\n window.location.href = 'https://leaselink.pl';\n };\n var modalInstance = _self.$modal.open({\n animation: true,\n template: \"\\n
\\n
\\n
\\n

Aleeeee extra \\u017Ce z nami wsp\\u00F3\\u0142pracujesz.

\\n

Bardzo si\\u0119 staramy aby\\u015B by\\u0142 z nas zadowolony.

\\n
\\n
\\n

Skontaktujemy si\\u0119 z Tob\\u0105 z informacj\\u0105 zwrotn\\u0105 dotycz\\u0105c\\u0105 tego Klienta i tej transakcji.

\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \",\n scope: scope,\n size: 'lg'\n });\n }\n else {\n // od razu otwarcie\n scope.openResponse(AggragatedCalulationId);\n }\n }\n else {\n var error = (d && d.data && d.data.Error && d.data.Error.Message) ? (\" \" + d.data.Error.Message + \".\") : d.data.Error;\n _self.toaster.pop('error', \"Przygotowanie kalkulacji\", error);\n }\n }, function (e) {\n var error = (e && e.data && e.data.Error && e.data.Error.Message) ? (\" \" + e.data.Error.Message + \".\") : \"\";\n _self.toaster.pop('error', \"Przygotowanie kalkulacji\", \"Przygotowanie kalkulacji nie przebiegło poprawnie.\" + error);\n });\n };\n // pobranie kategorii\n scope.getCategories = function () {\n _self.PartnerPanelService.GetCategories().then(function (d) { scope.categoryDic = _.map(d.data, function (i) { return { ProductCategory: i.ProductCategory }; }); }, function (e) {\n _self.toaster.pop('error', \"Pobieranie danych\", \"Pobieranie danych nie przebiegło poprawnie.\");\n });\n };\n // dodanie zdarzenia nasluchu\n _self.$rootScope.$on(\"leaselink::new_request\", function (e) {\n // przygotowanie nowego zapytania\n scope.Request = _self.PartnerPanelService.PrepareRequest();\n });\n // zmienne\n scope.categoryDic = [];\n // domyslnie\n scope.getCategories();\n };\n }\n PartnerPanelRequestFormDirective.Factory = function () {\n var dir = function (PartnerPanelService, toaster, $rootScope, $location, $modal) { return new PartnerPanelRequestFormDirective(PartnerPanelService, toaster, $rootScope, $location, $modal); };\n dir.$inject = ['PartnerPanelService', 'toaster', '$rootScope', '$location', '$modal'];\n return dir;\n };\n return PartnerPanelRequestFormDirective;\n}());\n//module llPartnerPanel {\nvar PartnerPanelService = (function () {\n function PartnerPanelService($http) {\n var _this = this;\n this.$http = $http;\n // pobranie kategorii\n this.GetCategories = function () {\n // pobranie danych slownikowych\n var _url = '/OfferBusinessData/GetCategoryLevels';\n return _this.$http.get(_url);\n };\n // przygotowanie oferty\n this.PrepareRequest = function () {\n var req = {\n SaveDataEmail: \"\",\n Requestors: [{}],\n RequestItems: [\n {\n TaxCode: \"23\",\n Tax: 23,\n Quantity: 1,\n NetPrice: 0,\n GrossPrice: 0,\n NetValue: 0,\n TaxValue: 0,\n GrossValue: 0\n }\n ]\n };\n return req;\n };\n // wyslanie ofert\n this.SendOfferToClient = function (id) {\n return _this.$http.post(\"/system/process/send/\" + id);\n };\n // \n // pobranie listy ofert\n this.GetOfferResponseList = function () {\n var _url = \"/ProcessOfferByPartner/GetOffersInProcessList\";\n return _this.$http.post(_url, {});\n };\n // wyslanie oferty do przeliczenia\n this.SendOfferRequest = function (req, SendProposal) {\n var _url = \"/api/OfferForClient?SendProposal=\" + SendProposal;\n //console.debug(_url);\n return _this.$http.post(_url, req);\n };\n this.GetOfferResponse = function (id) {\n var _url = '/OfferRequest/get/' + id;\n return _this.$http.get(_url);\n };\n }\n PartnerPanelService.$inject = ['$http'];\n return PartnerPanelService;\n}());\n//} \n//module llPartnerPanel {\n// dyrektywa tworzenia panelu partnera\nvar PartnerPanelDirective = (function () {\n function PartnerPanelDirective(PartnerPanelService) {\n this.PartnerPanelService = PartnerPanelService;\n this.restrict = \"A\";\n this.templateUrl = \"/WWW/partials/modules/partner.panel.html\";\n this.link = function (scope, elem, attr) {\n var _data = JSON.parse(attr['llPartnerPanel'] || \"{}\");\n scope.user = _data.user;\n scope.process = _data.process;\n scope.Request = _data.request;\n scope.partner = _data.partner;\n };\n }\n PartnerPanelDirective.Factory = function () {\n var dir = function (PartnerPanelService) { return new PartnerPanelDirective(PartnerPanelService); };\n dir.$inject = ['PartnerPanelService'];\n return dir;\n };\n return PartnerPanelDirective;\n}());\n//} \n// dyrektywa do generowania umow\nvar GenerateAgreementButtonDirective = (function () {\n function GenerateAgreementButtonDirective($http, $parse, $toaster) {\n var _this = this;\n this.$http = $http;\n this.$parse = $parse;\n this.$toaster = $toaster;\n this.restrict = \"AE\";\n // generowanie umowy\n this.generateAgreement = function (model) {\n var url = \"/document/generateAgreement/\" + model.AggragatedCalculation_Guid;\n return _this.$http.post(url, { agreementNumber: model.Guid });\n };\n this.link = function (scope, element, attrs) {\n var _self = _this;\n // pobranie ngModel\n var ngModel = _this.$parse(attrs[\"ngModel\"]);\n // generowanie umowy\n scope.GenerateAgreement = function () {\n var _model = ngModel(scope);\n _self\n .generateAgreement(_model)\n .then(function (d) {\n _self.$toaster.pop('success', 'Pomyślnie dodano nową umowę');\n }, function (e) {\n _self.$toaster.pop('error', 'Błąd podczas dodawania nowej umowy');\n });\n };\n };\n this.template = \"\\n \\n \";\n }\n GenerateAgreementButtonDirective.Factory = function () {\n var dir = function ($http, $parse, $toaster) { return new GenerateAgreementButtonDirective($http, $parse, $toaster); };\n dir.$inject = ['$http', '$parse', 'toaster'];\n return dir;\n };\n return GenerateAgreementButtonDirective;\n}());\n'use strict';\n// zapytanie\nvar RequestFormDirective = (function () {\n function RequestFormDirective($service) {\n var _this = this;\n this.$service = $service;\n this.restrict = \"A\";\n this.templateUrl = \"/WWW/partials/modules/request.form.new.html\";\n this.link = function (scope, elem, attr) {\n // dodanie pozycji\n scope.addRequestItem = function () {\n var item = {\n TaxCode: \"23\",\n Tax: \"23\",\n Quantity: 1,\n Categories: []\n };\n scope.Request.RequestItems.push(item);\n };\n // usuniecie pozycji\n scope.deleteRequestItem = function (idx) {\n scope.Request.RequestItems.splice(idx, 1);\n };\n // rekalkulacja netto\n scope.calculate = function (item) {\n var pNet = parseFloat(item.NetPrice);\n var q = parseFloat(item.Quantity);\n var taxCode = item.TaxCode;\n var tax = (taxCode == \"zw\" ? 0 : parseFloat(taxCode));\n var discount = parseFloat(item.Discount || \"0\");\n item.NetValue = (pNet * q) * (1 - discount / 100);\n item.GrossPrice = (pNet * (1 + tax / 100));\n item.GrossValue = ((item.NetValue) * (1 + tax / 100));\n item.TaxValue = (item.GrossValue - item.NetValue);\n };\n scope.formatDecimals = function (val) {\n var _num = val.toFixed(2);\n var __num = parseFloat(_num);\n return __num;\n };\n // rekalkulacja brutto\n scope.calculateFromGross = function (item) {\n var pGross = parseFloat(item.GrossPrice);\n var q = parseFloat(item.Quantity);\n var taxCode = item.TaxCode;\n var tax = (taxCode == 'zw' ? 0 : parseFloat(taxCode));\n var discount = parseFloat(item.Discount || \"0\");\n item.GrossValue = (pGross * q) * (1 - discount / 100);\n item.NetPrice = (pGross / (1 + tax / 100));\n item.NetValue = (item.GrossValue / (1 + tax / 100));\n item.TaxValue = (item.GrossValue - item.NetValue);\n };\n // aktualizacja sum\n scope.updateTotals = function () {\n scope.NetValueTotal = 0;\n scope.TaxValueTotal = 0;\n scope.GrossValueTotal = 0;\n scope.Request.RequestItems.forEach(function (e) {\n scope.NetValueTotal += (e.NetValue || 0);\n scope.TaxValueTotal += (e.TaxValue || 0);\n scope.GrossValueTotal += (e.GrossValue || 0);\n });\n };\n // pobranie danych o produkcie jak wroca na koszyk\n scope.updateCurrentItemData = function (currentItem) {\n _this.$service.getProductData(currentItem.Name).then(function (d) {\n var selectedValue = d.data;\n if (selectedValue) {\n if (selectedValue.ProductDiscountAllowed)\n currentItem.ProductDiscountAllowed = selectedValue.ProductDiscountAllowed;\n if (selectedValue.ProductDiscounts)\n currentItem.ProductDiscounts = selectedValue.ProductDiscounts;\n if (selectedValue.ProductPriceChangeBlock)\n currentItem.ProductPriceChangeBlock = selectedValue.ProductPriceChangeBlock;\n if (selectedValue.ProductTaxChangeBlock)\n currentItem.ProductTaxChangeBlock = selectedValue.ProductTaxChangeBlock;\n }\n });\n };\n // wybranie produktu\n scope.onProductSelected = function (currentItem, selectedValue) {\n currentItem.Name = \"\";\n currentItem.CategoryLevel1 = \"\";\n currentItem.TaxCode = \"\";\n currentItem.NetPrice = \"\";\n currentItem.GrossPrice = \"\";\n currentItem.ProductCategories = [];\n currentItem.ProductPaneltyFee = null;\n currentItem.ProductAddInfo = \"\";\n currentItem.ProductTypeName = \"\";\n if (selectedValue.ProductName)\n currentItem.Name = selectedValue.ProductName;\n //if (selectedValue.ProductCategory) currentItem.CategoryLevel1 = selectedValue.ProductCategory;\n if (selectedValue.ProductTaxCode)\n currentItem.TaxCode = selectedValue.ProductTaxCode;\n if (selectedValue.ProductNetPrice)\n currentItem.NetPrice = selectedValue.ProductNetPrice;\n if (selectedValue.ProductGrossPrice)\n currentItem.GrossPrice = selectedValue.ProductGrossPrice;\n //if (selectedValue.ProductCategories) currentItem.ProductCategories = _.map(selectedValue.ProductCategories, (i: string) => { return { ProductCategory: i }; });\n if (selectedValue.ProductDiscountAllowed)\n currentItem.ProductDiscountAllowed = selectedValue.ProductDiscountAllowed;\n if (selectedValue.ProductDiscounts)\n currentItem.ProductDiscounts = selectedValue.ProductDiscounts;\n if (selectedValue.ProductPriceChangeBlock)\n currentItem.ProductPriceChangeBlock = selectedValue.ProductPriceChangeBlock;\n if (selectedValue.ProductTaxChangeBlock)\n currentItem.ProductTaxChangeBlock = selectedValue.ProductTaxChangeBlock;\n if (selectedValue.ProductPaneltyFee)\n currentItem.ProductPaneltyFee = selectedValue.ProductPaneltyFee;\n if (selectedValue.ProductAddInfo)\n currentItem.ProductAddInfo = selectedValue.ProductAddInfo;\n if (selectedValue.ProductTypeName)\n currentItem.ProductTypeName = selectedValue.ProductTypeName;\n if (selectedValue.IgnoreValidation)\n currentItem.IgnoreValidation = selectedValue.IgnoreValidation;\n // przeliczenie\n scope.calculate(currentItem);\n scope.getCategoriesForProduct(currentItem);\n };\n // nalenienie tabeli produktow\n scope.populateProductCategories = function (a1, a2, defaultValue) {\n var arr = (a1 || a2).slice();\n return arr;\n };\n //pobranie wszystkich produktów\n scope.allProducts = {};\n scope.getAllProducts = function () {\n _this.$service.getAllProducts().then(function (d) {\n scope.allProducts = d.data;\n });\n };\n scope.getCategoriesForProduct = function (item) {\n _this.$service.getCategories(item.Name).then(function (d) {\n item.Categories = d.data;\n });\n };\n // watchers\n scope.$watch('Request.RequestItems', function (n, o) {\n if (n !== o)\n scope.updateTotals();\n }, true);\n scope.getAllProducts();\n // zmienne \n scope.NetValueTotal = 0;\n scope.TaxValueTotal = 0;\n scope.GrossValueTotal = 0;\n scope.selectedProduct = {};\n };\n }\n RequestFormDirective.Factory = function () {\n var dir = function (RequestService) { return new RequestFormDirective(RequestService); };\n dir.$inject = ['RequestService'];\n return dir;\n };\n return RequestFormDirective;\n}());\nvar RequestService = (function () {\n function RequestService($http) {\n var _this = this;\n this.$http = $http;\n this.getProductData = function (id) {\n var url = \"/ProcessOfferByPartner/GetProductData\";\n return _this.$http.post(url, { productId: id });\n };\n this.getAllProducts = function () {\n var url = \"/ProcessOfferByPartner/GetProductList\";\n return _this.$http.post(url);\n };\n this.getCategories = function (itemName) {\n var url = \"/ProcessOfferByPartner/GetProductCatgories\";\n return _this.$http.post(url, { filter: itemName });\n };\n }\n RequestService.prototype.destruct = function () {\n this.$http = null;\n };\n RequestService.$inject = ['$http'];\n return RequestService;\n}());\n// funcja konwersji string/number na number\nfunction getAsNumber(val) {\n if (typeof val === \"string\") {\n return parseFloat(val);\n }\n return val;\n}\n;\n// dyrektywa formatujaca liczby\nvar NumberDirective = (function () {\n function NumberDirective($parse) {\n var _this = this;\n this.$parse = $parse;\n this.restrict = \"A\";\n this.require = \"ngModel\";\n this.formatAsNumber = function (val) {\n var _val = \"0,00\";\n if (typeof val === \"string\") {\n _val = (val || \"0,00\");\n }\n else if (typeof val !== \"undefined\") {\n _val = (val || 0).toFixed(2);\n }\n _val = _val.replace(\".\", \",\").replace(\" \", \"\");\n // sprawdzenie liczy miejsc dziesietnych\n var pos = _val.indexOf(\",\");\n if (pos === -1)\n _val += \",00\";\n var diff = _val.length - pos;\n if (diff >= 3) {\n _val = _val.substring(0, pos + 3);\n }\n else {\n for (var i = 0; i < diff; i++) {\n _val += \"0\";\n }\n }\n //console.debug(\"formatAsNumber\", val, _val);\n return _val;\n };\n this.parseAsNumber = function (val) {\n //console.debug(\"parseAsNumber\", val);\n var _val = \"0\";\n if (typeof val === \"string\") {\n _val = (val || \"0\").replace(\",\", \".\").replace(\" \", \"\");\n }\n else if (typeof val !== \"undefined\") {\n _val = (val || 0).toFixed(2);\n }\n var __val = parseFloat(_val);\n return _this.formatDecimals(__val);\n };\n this.formatDecimals = function (val) {\n var _num = val.toFixed(2);\n return parseFloat(_num);\n };\n this.link = function (scope, elem, attr, model) {\n model.$parsers.push(_this.parseAsNumber);\n model.$formatters.push(_this.formatAsNumber);\n // dodanie formatowania liczby\n elem.attr(\"step\", \"0.01\");\n elem.css(\"text-align\", \"right\");\n //console.debug(attr);\n /*\n 17 + 65 - ctrl+a\n 46 - delete\n 8 - backspace\n 17 + 88 - ctrl+x\n 17 + 86 - ctrl+v\n 37 - arrow left\n 39 - arrow right\n 45 - minus\n 44 - coma\n 48-57 - upper 0..9\n 110 - coma - numeric\n 96 - 105 - 0..9 - numeric\n 109 - minus - numeric\n */\n elem.bind(\"blur\", function (evt) {\n var getter = _this.$parse(attr[\"ngModel\"]);\n var val = getter(scope);\n var valStr = (val ? val.toFixed(2).replace(\".\", \",\").replace(\" \", \"\") : \"0,00\");\n $(evt.target).val(valStr);\n });\n elem.bind(\"keypress\", function (evt) {\n var _keyCode = parseInt(evt.keyCode || evt.which);\n var _key = (evt.key || \"\").toLowerCase();\n //console.debug(_keyCode);\n //if ((48 <= _keyCode && _keyCode <= 57) || [44, 45].indexOf(_keyCode) !== -1) {\n //if ([\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \",\", \"-\", \"delete\", \"backspace\", \"tab\", \"arrowright\", \"arrowleft\", \"arrowup\", \"arrowdown\"].indexOf(_key) !== -1) {\n if ([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 44, 45].indexOf(_keyCode) !== -1\n || [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \",\", \"-\", \"delete\", \"backspace\", \"tab\", \"arrowright\", \"arrowleft\", \"arrowup\", \"arrowdown\"].indexOf(_key) !== -1) {\n }\n else {\n evt.preventDefault();\n return;\n }\n });\n };\n }\n NumberDirective.Factory = function () {\n var dir = function ($parse) { return new NumberDirective($parse); };\n dir.$inject = ['$parse'];\n return dir;\n };\n return NumberDirective;\n}());\n// autocomplete\nvar AutoCompleteDirective = (function () {\n function AutoCompleteDirective($parse, $http, $filterFilter) {\n var _this = this;\n this.$parse = $parse;\n this.$http = $http;\n this.$filterFilter = $filterFilter;\n this.scope = {\n ngModel: \"=\",\n ngRequired: \"=\",\n ngDisabled: \"=\",\n url: \"@\",\n filterLocal: \"@\",\n valueField: \"@\",\n filter: \"=\",\n onSelect: \"=\",\n onSelectRef: \"=\"\n };\n this.require = ['ngModel'];\n this.replace = true;\n this.template = \"\\n
\\n \\n
\\n \\n
\\n
\\n \";\n this.restrict = \"A\";\n this.link = function (scope, elem, attr) {\n //console.debug(\"AutoCompleteDirective\");\n // zmienne\n scope.showAutocomplete = false;\n scope.isFiltering = false;\n scope.currentValue = undefined;\n // parametry\n scope.id = attr['id'] || (new Date()).getTime();\n scope.name = attr['name'];\n scope.class = attr['class'];\n scope.placeholder = attr['placeholder'];\n scope.filteredData = [];\n scope.data = [];\n // przefiltorwane dane\n scope.$watch('data', function () {\n scope.filteredData = _this.$filterFilter(scope.data, scope.filterData);\n });\n // filtowanie lokalne\n if (scope.filterLocal) {\n scope.$watch('ngModel', function (n, o) {\n if (n !== o && scope.isFiltering === true) {\n scope.filteredData = _this.$filterFilter(scope.data, scope.filterData);\n }\n }, true);\n }\n // nacisineicie enter\n scope.onKeyPressed = function (e) {\n if (e.keyCode === 13) {\n e.preventDefault();\n // pobranie danych\n if (scope.showAutocomplete === false) {\n scope.showAutocomplete = true;\n var filter = (scope.filter);\n var url = scope.url;\n _this.$http.post(url, { filter: filter }).then(function (d) {\n scope.data = d.data;\n });\n }\n else {\n scope.showAutocomplete = false;\n scope.onSelectValue(scope.currentValue);\n }\n }\n else if (e.keyCode === 38) {\n // do gory\n if (scope.showAutocomplete === true) {\n e.preventDefault();\n scope.isFiltering = false;\n var pos = scope.filteredData.indexOf(scope.currentValue);\n if (pos > 0) {\n pos--;\n }\n else {\n pos = 0;\n }\n scope.currentValue = scope.filteredData[pos];\n scope.ngModel = scope.getValueFiled(scope.currentValue);\n }\n }\n else if (e.keyCode === 40) {\n // do dołu\n if (scope.showAutocomplete === true) {\n e.preventDefault();\n scope.isFiltering = false;\n var pos = scope.filteredData.indexOf(scope.currentValue);\n if (pos < scope.filteredData.length - 1) {\n pos++;\n }\n else {\n pos = scope.filteredData.length - 1;\n }\n scope.currentValue = scope.filteredData[pos];\n scope.ngModel = scope.getValueFiled(scope.currentValue);\n }\n }\n else if (e.keyCode === 27) {\n // ESC\n e.preventDefault();\n scope.showAutocomplete = false;\n }\n else {\n if (scope.filterLocal) {\n scope.isFiltering = true;\n }\n }\n };\n // wybranie pozycji\n scope.onSelectValue = function (v) {\n scope.currentValue = v;\n scope.ngModel = scope.getValueFiled(scope.currentValue);\n scope.showAutocomplete = false;\n // delegacja wyboru\n if (typeof scope.onSelect === \"function\" && typeof scope.onSelectRef !== \"undefined\") {\n scope.onSelect(scope.onSelectRef, v);\n }\n };\n // sprawdzenie\n scope.matchValue = function (v) {\n return v === scope.currentValue;\n };\n // pobranie pola do rawrotsci\n scope.getValueFiled = function (v) {\n if (scope.valueField && v) {\n return v[scope.valueField]; //\n }\n return v;\n };\n // filtr\n scope.filterData = function (v) {\n if (scope.filterLocal && scope.isFiltering === true) {\n var v0 = (scope.getValueFiled(v) || \"\").trim().toLowerCase();\n var v1 = (scope.ngModel || \"\").trim().toLowerCase();\n if (v1 !== \"\" && v0.indexOf(v1) === -1)\n return false;\n }\n return true;\n };\n };\n }\n AutoCompleteDirective.Factory = function () {\n var dir = function ($parse, $http, $filterFilter) { return new AutoCompleteDirective($parse, $http, $filterFilter); };\n dir['$inject'] = ['$parse', '$http', 'filterFilter'];\n return dir;\n };\n return AutoCompleteDirective;\n}());\n/**\n * Dyrektywa do implementacji niestandardowych reguł walidacyjnych.\n * Należy pamiętać, że wszystkie podformatki muszą mieć unikalne nazwy.\n * Dyrektywa musi być zagnieżdżona wewnątrz elementu
\n * successCallback to zwykle metoda, którą wykonywał ng-click, wywoływana, jeśli formatka jest OK\n * Więc przycisk submit formatki musi być klikalny, nie disabled (o to dba successCallback).\n */\nvar FormValidationDirective = (function () {\n function FormValidationDirective() {\n this.restrict = \"AE\";\n this.require = \"^form\";\n this.scope = {\n successCallback: \"=\"\n };\n this.template = \"\\n \";\n this.link = function (scope, elem, attrs, ctrl) {\n scope.errors = {}; // set błędów\n scope.user = scope.$root.user;\n // dodanie klasy CSS do formatki\n var el = angular.element(elem);\n var type = el[0].nodeName;\n while (type != 'FORM') {\n el = el.parent();\n type = el[0].nodeName;\n }\n el.addClass('ll-form-validation');\n /**\n * Funkcja rekurencyjna pomocnicza, iterująca po wszystkich inputach formatki, a także\n * formatek zagnieżdżonych.\n * @param form Formatka do sprawdzenia.\n * @param errors Set wykrytych błędów. Jeśli nie podany to zostanie automatycznie stworzony.\n * @returns Errors z uzupełnionymi błędami.\n */\n scope.iterValidationOverForm = function (form, errors) {\n if (typeof errors === \"undefined\")\n errors = {};\n angular.forEach(Object.keys(form), function (key) {\n if (typeof form[key] === 'object') {\n if (form[key].hasOwnProperty('$modelValue')) {\n SetValidityForName(form[key], errors, form.$name);\n }\n else if (form[key].hasOwnProperty('$$parentForm') && key !== '$$parentForm') {\n scope.iterValidationOverForm(form[key], errors);\n }\n }\n });\n return errors;\n };\n /**\n * Funkcja lokalna przypisująca reguły walidacyjne w zależności od nazwy inputu.\n * Jeśli dyrektywa ma być używa na nowych formatkach, należy zadbać o dodanie\n * w tej funkcji nazw inputów, które chcemy obsłużyć.\n * @param formValue Input formatki.\n * @param errors Set błędów.\n * @returns True, jeśli input jest $valid, False w przeciwnym przypadku lub jeśli\n * nie znaleziono takiego zdefiniowanego pola.\n */\n var SetValidityForName = function (formValue, errors, formName) {\n var modelValue = formValue.$modelValue;\n var valueName = formValue.$name;\n switch (valueName) {\n case 'IdentificationNumber1':\n var isNipOk = formValue.$valid;\n if (!isNipOk)\n errors[valueName] = \"Nieprawidłowy NIP.\";\n break;\n case 'SaveDataEmail':\n var isEmailOk = formValue.$valid;\n if (!isEmailOk)\n errors[valueName] = \"Nieprawidłowy adres e-mail.\";\n break;\n case 'SaveDataPhone':\n var isPhoneOk = formValue.$valid;\n if (!isPhoneOk)\n errors[valueName] = \"Nieprawidłowy numer telefonu.\";\n break;\n case 'SaveDataContactPerson':\n var isSaveDataContactPersonOK = formValue.$valid;\n if (!isSaveDataContactPersonOK)\n errors[valueName] = \"Nieprawidłowy imię i nazwisko Handlowca.\";\n break;\n case 'Name':\n var isNameOk = formValue.$valid;\n if (!isNameOk)\n errors[valueName] = \"Nieprawidłowa nazwa przedmiotu.\";\n break;\n case 'CategoryLevel1':\n var isCategoryOk = formValue.$valid;\n if (!isCategoryOk)\n errors[valueName] = \"Wybierz kategorię przedmiotu.\";\n break;\n case 'TaxCode':\n var isTaxOk = formValue.$valid;\n if (!isTaxOk)\n errors[valueName] = \"Nieprawidłowy kod podatku.\";\n break;\n case 'NetValue':\n // if (!scope.checkNetValue) break; // omijanie sprawdzania wartości\n if (checkIfExcluded(valueName, formName)) {\n formValue.$setValidity(valueName, true);\n break;\n }\n var maxValue = (scope.user && ['DHMLEA', 'CCMLEA'].indexOf(scope.user.ExternalId) !== -1 ? 50000 : 100000);\n var isNetValueOk = modelValue <= maxValue;\n formValue.$setValidity(valueName, isNetValueOk);\n //if (!isNetValueOk) errors[valueName] = \"Nieprawidłowa wartość przedmiotu. LEASELINK finansuje przedmioty od wartości 500 zł do 100000 zł netto.\";\n if (!isNetValueOk)\n errors[valueName] = \"Nieprawid\\u0142owa warto\\u015B\\u0107 przedmiotu. LEASELINK finansuje przedmioty do warto\\u015Bci \" + maxValue + \" z\\u0142 netto.\";\n break;\n case 'Quantity':\n var isQuantityOk = modelValue > 0;\n formValue.$setValidity(valueName, isQuantityOk);\n if (!isQuantityOk)\n errors[valueName] = \"Ilość musi być większa od 0.\";\n break;\n case 'Agreed':\n var isAgreedOk = modelValue === true;\n formValue.$setValidity(valueName, isAgreedOk);\n if (!isAgreedOk)\n errors[valueName] = \"Prosimy o wyrażenie zgód niezbędnych dla procesu. Brak Twojej zgody uniemożliwi nam kontakt z Tobą, a także dalsze realizowanie wniosku.\";\n break;\n default:\n return;\n }\n };\n /**\n * Sprawdzenie czy pole ma atrybut 'validation-exclude' i zwrócenie jej wartości jako boolean.\n * @param name Nazwa (name) pola do sprawdzenia.\n * @param formName Nazwa rodzica (name), musi być ng-form albo form.\n * @returns True, jeśli pole ma atrybut 'validation-exclude' ustawione na true.\n * W każdym innym przypadku false.\n */\n var checkIfExcluded = function (name, formName) {\n var elem = document.querySelector('ng-form[name=' + formName + '] > ' + 'input[name=' + name + ']');\n if (!elem)\n elem = document.querySelector('form[name=' + formName + '] > ' + 'input[name=' + name + ']');\n if (elem && elem.attributes['validation-exclude'])\n return elem.attributes['validation-exclude'].value.toLowerCase() == 'true';\n return false;\n };\n // pierwsze sprawdzenie, po wyrenderowaniu DOM, dlatego $timeout\n // this.$timeout(() => {\n // scope.errors = scope.iterValidationOverForm(ctrl);\n // });\n // sprawdzamy czy do wysłania - jeśli tak, to sprawdzamy poprawność formatki\n scope.$watch(function () { return ctrl.$submitted; }, function (newVal, oldVal) {\n if (newVal) {\n scope.errors = scope.iterValidationOverForm(ctrl);\n if (ctrl.$valid)\n scope.successCallback();\n ctrl.$setPristine();\n }\n });\n };\n }\n FormValidationDirective.Factory = function () {\n var dir = function (toaster, $timeout) { return new FormValidationDirective(); };\n dir['$inject'] = [];\n return dir;\n };\n return FormValidationDirective;\n}());\n// scroll watcher\nvar ngScrollWatcherDirective = (function () {\n function ngScrollWatcherDirective() {\n this.restrict = \"A\";\n this.link = function (scope, elem, attr) {\n };\n }\n ngScrollWatcherDirective.Factory = function () {\n var d = function () { return new ngScrollWatcherDirective(); };\n d['$inject'] = [];\n return d;\n };\n return ngScrollWatcherDirective;\n}());\nvar clientConsents;\n(function (clientConsents) {\n var ClientConsentsSrv = (function () {\n function ClientConsentsSrv($http) {\n var _this = this;\n this.$http = $http;\n // pobranie zestawu zgod\n this.getConsentList = function (partner, processStage) {\n var url = '/api/RodoConstent?type=';\n if (partner) {\n url += '&partner=' + (partner);\n }\n if (processStage) {\n url += '&processStage=' + (processStage);\n }\n return _this.$http.get(url);\n };\n // pobranie zgod na procesie\n this.getProcessConsents = function (orderId) {\n var url = '/api/get-rodo-consent-for-offer?orderId=' + orderId;\n return _this.$http.get(url);\n };\n }\n ClientConsentsSrv.$inject = ['$http'];\n return ClientConsentsSrv;\n }());\n clientConsents.ClientConsentsSrv = ClientConsentsSrv;\n var ClientConsentsCtrl = (function () {\n function ClientConsentsCtrl($scope, $service) {\n var _this = this;\n this.$service = $service;\n // pobranie danych\n $scope.refresh = function () {\n // pobranie stage\n var partner = $scope.formRequest.PartnerName || 'LEASELINK';\n // // chwilowa klazula na wyłączność\n // if (['BOSBANK', 'ING-BANK'].indexOf(partner.toUpperCase()) === -1) {\n // partner = 'LEASELINK';\n // }\n //const partner = 'LEASELINK';\n var stage = $scope.step;\n _this.$service.getConsentList(partner, stage).then(function (d) {\n $scope.consents = d.data.Result;\n }, function (e) { });\n // pobranie zgód rodo \n _this.$service.getProcessConsents($scope.formRequest.AggragatedCalulationId).then(function (d) {\n $scope.processConsents = d.data.Result;\n }, function (e) { });\n };\n $scope.initCheckbox = function (consentGuid) {\n var consentInitialValue = false;\n for (var i = 0; i <= $scope.formRequest.Requestors[0].Consents.length - 1; i++) {\n var _processConsent = $scope.formRequest.Requestors[0].Consents[i];\n if (_processConsent.Guid === consentGuid) {\n if (_processConsent.Agreed) {\n consentInitialValue = true;\n }\n else {\n consentInitialValue = false;\n }\n }\n }\n return { Agreed: consentInitialValue, isCollapsed: false };\n };\n // obserwacja zmian\n $scope.$watch('consentsModel', function (n, o) {\n var keys = Object.keys(n);\n for (var i = 0; i <= keys.length - 1; i++) {\n var key = keys[i];\n var consent = n[key];\n var found = false;\n for (var j = 0; j <= $scope.formRequest.Requestors[0].Consents.length - 1; j++) {\n var _consent = $scope.formRequest.Requestors[0].Consents[j];\n if (_consent.Guid === key) {\n _consent.Agreed = consent.Agreed;\n found = true;\n break;\n }\n }\n if (found !== true) {\n $scope.formRequest.Requestors[0].Consents.push({\n Guid: key,\n Agreed: consent.Agreed\n });\n }\n }\n }, true);\n // obserwacja forma\n $scope.$watch('formRequest', function () {\n if ($scope.formRequest && $scope.formRequest.Requestors && $scope.formRequest.Requestors.length > 0) {\n $scope.formRequest.Requestors[0].Consents = $scope.formRequest.Requestors[0].Consents || [];\n $scope.refresh();\n }\n });\n // zmiana check all\n $scope.$watch('checkAll', function () {\n var keys = Object.keys($scope.consentsModel);\n for (var i = 0; i <= keys.length - 1; i++) {\n var _key = keys[i];\n $scope.consentsModel[_key].Agreed = ($scope.checkAll === true);\n }\n });\n // zmiana check all\n $scope.$watch('selectAll', function () {\n var keys = Object.keys($scope.consentsModel);\n for (var i = 0; i <= keys.length - 1; i++) {\n var _key = keys[i];\n $scope.consentsModel[_key].Agreed = ($scope.selectAll === true);\n }\n });\n // lista zgód\n $scope.consents = [];\n $scope.processConsents = [];\n $scope.consentsModel = {};\n $scope.selectAll = false;\n }\n ClientConsentsCtrl.$inject = ['$scope', 'ClientConsentsSrv'];\n return ClientConsentsCtrl;\n }());\n clientConsents.ClientConsentsCtrl = ClientConsentsCtrl;\n var ClientConsentsDir = (function () {\n function ClientConsentsDir() {\n this.restrict = \"AE\";\n this.template = \"\\n
0\\\" class=\\\"client-consents-container\\\">\\n \\n \\n \\n \\n
\\n
1\\\">\\n \\n
\\n\\n \\n\\n
\\n
*Prosimy o wyra\\u017Cenie zg\\u00F3d na kontakt niezb\\u0119dnych dla realizacji Twojej oferty. Ze wzgl\\u0119du na ca\\u0142kowicie on-lineowy charakter naszego procesu, od poznania oferty, a\\u017C po zawarcie transakcji, brak Twojej zgody uniemo\\u017Cliwi nam spe\\u0142nienie Twoich potrzeb w ci\\u0105gu kilku minut, 24/7/365. Podanie numeru NIP, numeru telefonu oraz adresu e-mail nie jest wymogiem ustawowym, jednak\\u017Ce jest wymagane je\\u015Bli chc\\u0105 Pa\\u0144stwo skorzysta\\u0107 z naszych us\\u0142ug.
\\n
\\n \";\n this.controller = ClientConsentsCtrl;\n this.scope = {\n step: \"@\",\n formRequest: \"=\",\n checkAll: \"=\",\n simpleForm: \"=\" // ukrywa napis pod zgodami\n };\n }\n ClientConsentsDir.Factory = function () {\n var d = function () { return new ClientConsentsDir(); };\n d['$inject'] = [];\n return d;\n };\n return ClientConsentsDir;\n }());\n clientConsents.ClientConsentsDir = ClientConsentsDir;\n var ClientConsentsNewDir = (function () {\n function ClientConsentsNewDir() {\n this.restrict = \"AE\";\n this.template = \"\\n
\\n \\n \\n \\n \\n
\\n\\n \\n\\n \\n\\n
\\n
*Prosimy o wyra\\u017Cenie zg\\u00F3d na kontakt niezb\\u0119dnych dla realizacji oferty Klienta. Ze wzgl\\u0119du na ca\\u0142kowicie on-lineowy charakter naszego procesu, od poznania oferty, a\\u017C po zawarcie transakcji, brak zgody uniemo\\u017Cliwi nam spe\\u0142nienie jego potrzeb w ci\\u0105gu kilku minut, 24/7/365. Podanie numeru NIP, numeru telefonu oraz adresu e-mail nie jest wymogiem ustawowym, jednak\\u017Ce jest wymagane je\\u015Bli chc\\u0105 Pa\\u0144stwo skorzysta\\u0107 z naszych us\\u0142ug. Klient w dowolnej chwili mo\\u017Ce usun\\u0105\\u0107 swoje zgody.
\\n\\n
\\n \";\n this.controller = ClientConsentsCtrl;\n this.scope = {\n step: \"@\",\n formRequest: \"=\",\n checkAll: \"=\"\n };\n }\n ClientConsentsNewDir.Factory = function () {\n var d = function () { return new ClientConsentsNewDir(); };\n d['$inject'] = [];\n return d;\n };\n return ClientConsentsNewDir;\n }());\n clientConsents.ClientConsentsNewDir = ClientConsentsNewDir;\n var ClientConsentsInnerDir = (function () {\n function ClientConsentsInnerDir() {\n this.restrict = \"AE\";\n this.template = \"\\n\\n \\n\\n\\n \";\n this.controller = ClientConsentsCtrl;\n this.scope = {\n step: \"@\",\n formRequest: \"=\",\n checkAll: \"=\"\n };\n }\n ClientConsentsInnerDir.Factory = function () {\n var d = function () { return new ClientConsentsInnerDir(); };\n d['$inject'] = [];\n return d;\n };\n return ClientConsentsInnerDir;\n }());\n clientConsents.ClientConsentsInnerDir = ClientConsentsInnerDir;\n var ClientConsentsInfoDir = (function () {\n function ClientConsentsInfoDir() {\n this.template = \"\\n
\\n \\n
\\n \";\n }\n ClientConsentsInfoDir.Factory = function () {\n var d = function () { return new ClientConsentsInfoDir(); };\n d['$inject'] = [];\n return d;\n };\n return ClientConsentsInfoDir;\n }());\n clientConsents.ClientConsentsInfoDir = ClientConsentsInfoDir;\n})(clientConsents || (clientConsents = {}));\nangular.module(\"ll.client.consents\", ['ngSanitize'])\n .directive(\"llClientConsents\", clientConsents.ClientConsentsDir.Factory())\n .directive(\"llClientConsentsNew\", clientConsents.ClientConsentsNewDir.Factory())\n .directive(\"llClientConsentsInner\", clientConsents.ClientConsentsInnerDir.Factory())\n .directive(\"llClientConsentsInfo\", clientConsents.ClientConsentsInfoDir.Factory())\n .service(\"ClientConsentsSrv\", clientConsents.ClientConsentsSrv);\nvar clientDirectives;\n(function (clientDirectives) {\n /** process stage */\n var ngProcessMultiStepsCtrl = (function () {\n function ngProcessMultiStepsCtrl($scope) {\n //zmienne\n $scope.numberOfSteps = ($scope.partner && $scope.userLogged) ? 6 : 5;\n $scope.currentStep = 0;\n $scope.isVisible = false;\n $scope.partnerPosition = (($scope.partner && $scope.userLogged) ? 'top' : 'bottom');\n if ($scope.position && $scope.position == $scope.partnerPosition) {\n $scope.isVisible = true;\n }\n else if (!$scope.position) {\n $scope.isVisible = true;\n }\n else {\n $scope.isVisible = false;\n }\n // przemapowanie krokow\n switch ($scope.step) {\n case \"step0\":\n $scope.currentStep = 0;\n break;\n case \"step1\":\n $scope.currentStep = 1;\n break;\n case \"step2\":\n $scope.currentStep = 2;\n break;\n case \"step3\":\n $scope.currentStep = 3;\n break;\n case \"step4\":\n $scope.currentStep = 4;\n break;\n case \"step5\":\n $scope.currentStep = 5;\n break;\n }\n }\n ngProcessMultiStepsCtrl.$inject = ['$scope'];\n return ngProcessMultiStepsCtrl;\n }());\n var ngProcessMultiSteps = (function () {\n function ngProcessMultiSteps() {\n this.controller = ngProcessMultiStepsCtrl;\n this.restrict = \"AE\";\n this.scope = {\n step: \"@\",\n partner: \"=\",\n position: \"@\",\n userLogged: \"=\"\n };\n this.templateUrl = \"/WWW/partials/process.steps.directive.html\";\n }\n ngProcessMultiSteps.Factory = function () {\n var dir = function () { return new ngProcessMultiSteps(); };\n dir['$inject'] = [];\n return dir;\n };\n return ngProcessMultiSteps;\n }());\n clientDirectives.ngProcessMultiSteps = ngProcessMultiSteps;\n /** side up drawer */\n var ngProcessSideDrawerCtrl = (function () {\n function ngProcessSideDrawerCtrl($scope) {\n $scope.showDrawer = function () {\n $scope.isDrawerVisible = true;\n };\n $scope.closeDrawer = function () {\n $scope.isDrawerVisible = false;\n };\n // zmienne\n $scope.isDrawerVisible = false;\n // czy wogole dostepy\n $scope.isDrawerAvaiable = ($scope.userLogged && $scope.partner) || false; // ['MEDMRK'].indexOf($scope.partner) !== -1;\n }\n ngProcessSideDrawerCtrl.$inject = ['$scope'];\n return ngProcessSideDrawerCtrl;\n }());\n var ngProcessSideDrawer = (function () {\n function ngProcessSideDrawer() {\n this.controller = ngProcessSideDrawerCtrl;\n this.restrict = \"AE\";\n this.replace = true;\n this.scope = {\n step: \"@\",\n partner: \"=\",\n userLogged: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/process.drawer.directive.html\";\n }\n ngProcessSideDrawer.Factory = function () {\n var dir = function () { return new ngProcessSideDrawer(); };\n dir['$inject'] = [];\n return dir;\n };\n return ngProcessSideDrawer;\n }());\n clientDirectives.ngProcessSideDrawer = ngProcessSideDrawer;\n /** koszyk na createoffer */\n var ngCreateOfferCartCtrl = (function () {\n function ngCreateOfferCartCtrl($scope) {\n }\n ngCreateOfferCartCtrl.$inject = ['$scope'];\n return ngCreateOfferCartCtrl;\n }());\n var ngCreateOfferCart = (function () {\n function ngCreateOfferCart() {\n this.controller = ngCreateOfferCartCtrl;\n this.restrict = \"AE\";\n this.templateUrl = \"/WWW/partials/modules/client.offer/create.offer.cart.html\";\n }\n ngCreateOfferCart.Factory = function () {\n var dir = function () { return new ngCreateOfferCart(); };\n dir['$inject'] = [];\n return dir;\n };\n return ngCreateOfferCart;\n }());\n clientDirectives.ngCreateOfferCart = ngCreateOfferCart;\n /** koszyk stacjonarny na createoffer */\n var ngCreateOfferCartStationaryCtrl = (function () {\n function ngCreateOfferCartStationaryCtrl($scope) {\n }\n ngCreateOfferCartStationaryCtrl.$inject = ['$scope'];\n return ngCreateOfferCartStationaryCtrl;\n }());\n var ngCreateOfferCartStationary = (function () {\n function ngCreateOfferCartStationary() {\n this.controller = ngCreateOfferCartStationaryCtrl;\n this.restrict = \"AE\";\n this.templateUrl = \"/WWW/partials/modules/client.offer/create.offer.cart.stationary.html\";\n }\n ngCreateOfferCartStationary.Factory = function () {\n var dir = function () { return new ngCreateOfferCartStationary(); };\n dir['$inject'] = [];\n return dir;\n };\n return ngCreateOfferCartStationary;\n }());\n clientDirectives.ngCreateOfferCartStationary = ngCreateOfferCartStationary;\n /** dane klienta na createOffer */\n var ngCreateOfferClientDataCtrl = (function () {\n function ngCreateOfferClientDataCtrl($scope) {\n }\n ngCreateOfferClientDataCtrl.$inject = ['$scope'];\n return ngCreateOfferClientDataCtrl;\n }());\n var ngCreateOfferClientData = (function () {\n function ngCreateOfferClientData() {\n this.controller = ngCreateOfferClientDataCtrl;\n this.restrict = \"AE\";\n this.templateUrl = \"/WWW/partials/modules/client.offer/create.offer.client.data.html\";\n }\n ngCreateOfferClientData.Factory = function () {\n var dir = function () { return new ngCreateOfferClientData(); };\n dir['$inject'] = [];\n return dir;\n };\n return ngCreateOfferClientData;\n }());\n clientDirectives.ngCreateOfferClientData = ngCreateOfferClientData;\n /** edycja elementow */\n /** edycja dnaych klienta*/\n var ngClientDataCtrl = (function () {\n function ngClientDataCtrl($scope) {\n //metody\n $scope.editData = function () {\n $scope.isEdited = true;\n };\n $scope.saveData = function () {\n $scope.isEdited = false;\n if (typeof $scope.onSave === \"function\") {\n $scope.onSave($scope.request);\n }\n };\n // zmienne\n $scope.isEdited = false;\n }\n ngClientDataCtrl.$inject = ['$scope'];\n return ngClientDataCtrl;\n }());\n var ngClientData = (function () {\n function ngClientData() {\n this.controller = ngClientDataCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n isEditable: \"@\",\n onSave: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/request.client.data.html\";\n }\n ngClientData.Factory = function () {\n var d = function () { return new ngClientData(); };\n d['$inject'] = [];\n return d;\n };\n return ngClientData;\n }());\n clientDirectives.ngClientData = ngClientData;\n /** edycja danych adresowych klienta*/\n var ngClientAddressDataCtrl = (function () {\n function ngClientAddressDataCtrl($scope) {\n //metody\n $scope.editData = function () {\n $scope.isEdited = true;\n $scope.request.RequestorAddresses[0].Confirmed = false;\n };\n $scope.confirm = function () {\n $scope.request.RequestorAddresses[0].Confirmed = true;\n };\n // ustawienie informacji o adresie korespondecyjnym \n $scope.request.RequestorAddresses[0].Required = true;\n // zapisanie danych\n $scope.saveData = function () {\n $scope.isEdited = false;\n // ustawienie informacji o adresie korespondecyjnym \n $scope.request.RequestorAddresses[0].Required = true;\n // zapisanie danych\n if (typeof $scope.onSave === \"function\") {\n $scope.onSave($scope.request);\n }\n };\n // zmienne\n $scope.isEdited = false;\n }\n ngClientAddressDataCtrl.$inject = ['$scope'];\n return ngClientAddressDataCtrl;\n }());\n var ngClientAddressData = (function () {\n function ngClientAddressData() {\n this.controller = ngClientAddressDataCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n isEditable: \"@\",\n onSave: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/request.client.address.data.html\";\n }\n ngClientAddressData.Factory = function () {\n var d = function () { return new ngClientAddressData(); };\n d['$inject'] = [];\n return d;\n };\n return ngClientAddressData;\n }());\n clientDirectives.ngClientAddressData = ngClientAddressData;\n var ngClientDocumentsDataSrv = (function () {\n function ngClientDocumentsDataSrv($http, $q) {\n var _this = this;\n this.$http = $http;\n this.$q = $q;\n this.getDocuments = function (id, type) {\n var url = '/api/SecuredBusinessProcessDocumentsForUser/' + id + '?type=' + type;\n return _this.$http.get(url);\n };\n this.sendConfirmation = function (id, fileIds) {\n var url = \"/document/confirm/\" + id;\n return _this.$http.post(url, fileIds);\n };\n }\n ngClientDocumentsDataSrv.$inject = ['$http', '$q'];\n return ngClientDocumentsDataSrv;\n }());\n clientDirectives.ngClientDocumentsDataSrv = ngClientDocumentsDataSrv;\n /** wyswietlanie dokumentow */\n var ngClientDocumentsDataCtrl = (function () {\n function ngClientDocumentsDataCtrl($rootScope, $scope, service, toaster) {\n this.$scope = $scope;\n this.service = service;\n this.toaster = toaster;\n $scope.Documents = [];\n $scope.$on('selfsevice::refresh', function (evt) {\n $scope.getDocuments();\n });\n $scope.getDocuments = function () {\n service.getDocuments($scope.request.AggragatedCalulationId, 'AGREEMENTS')\n .then(function (d) {\n $scope.Documents = d.data.Result || [];\n });\n };\n $scope.showDocument = function (fileId) {\n window.open(\"/Message/ShowDocument?fileId=\" + fileId);\n };\n // wyslanie wiadomosci\n $scope.sendMessageToLeaseLink = function () {\n $rootScope.$broadcast(\"send::messageToLeaselink\", { RequestId: $scope.request.AggragatedCalulationId });\n };\n $scope.confirmDocument = function (fileId, params) {\n var _params = params || {};\n var id = $scope.request.AggragatedCalulationId;\n var fileIds = [];\n fileIds.push(fileId);\n if ($scope.user.Role === '' || confirm(\"Czy na pewno chcesz potwierdzić zapoznanie się z dokumentem?\")) {\n service.sendConfirmation(id, fileIds).then(function (d) {\n toaster.pop('success', \"Potwierdzanie dokumentu\", \"Dokument potwierdzono poprawnie.\");\n if (_params && typeof _params.callBack === \"function\") {\n _params.callBack();\n }\n else {\n // pokazanie zapytania\n $scope.showRequest(id);\n }\n }, function (e) {\n toaster.pop('error', \"Potwierdzanie dokumentu\", \"Wystąpił błąd podczas potwierdzania dokumentu.\");\n });\n }\n };\n $scope.confirmDocumentWithNoReaload = function (doc) {\n $scope.confirmDocument(doc.FileId, { callBack: function () { doc.Confirmed = true; } });\n };\n $scope.getDocuments();\n }\n ;\n ngClientDocumentsDataCtrl.$inject = ['$rootScope', '$scope', 'ngClientDocumentsDataSrv', 'toaster'];\n return ngClientDocumentsDataCtrl;\n }());\n var ngClientDocumentsData = (function () {\n function ngClientDocumentsData($rootScope) {\n this.$rootScope = $rootScope;\n this.controller = ngClientDocumentsDataCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n user: \"=\",\n };\n this.link = function (scope, elem, attr) {\n };\n this.templateUrl = \"/WWW/partials/modules/request.client.documents.data.html\";\n }\n ngClientDocumentsData.Factory = function () {\n var d = function ($rootScope) { return new ngClientDocumentsData($rootScope); };\n d['$inject'] = ['$rootScope'];\n return d;\n };\n return ngClientDocumentsData;\n }());\n clientDirectives.ngClientDocumentsData = ngClientDocumentsData;\n /** edycja danych adresowych podpisania umowy*/\n var ngClientDeliveryDataCtrl = (function () {\n function ngClientDeliveryDataCtrl($scope) {\n //metody\n $scope.editData = function () {\n $scope.isEdited = true;\n $scope.request.RequestorDeliveryAddress.Confirmed = false;\n };\n $scope.confirm = function () {\n $scope.request.RequestorDeliveryAddress.Confirmed = true;\n };\n $scope.copy = function () {\n var address = JSON.parse(JSON.stringify($scope.request.RequestorAddresses[0]));\n address.Confirmed = false;\n $scope.request.RequestorDeliveryAddress = address;\n };\n // dodanie informacji o zmianie adresu\n $scope.request.RequestorDeliveryAddress.Required = true;\n // zapisanie \n $scope.saveData = function () {\n $scope.isEdited = false;\n // dodanie informacji o zmianie adresu\n $scope.request.RequestorDeliveryAddress.Required = true;\n // zapisanie \n if (typeof $scope.onSave === \"function\") {\n $scope.onSave($scope.request);\n }\n };\n }\n ngClientDeliveryDataCtrl.$inject = ['$scope'];\n return ngClientDeliveryDataCtrl;\n }());\n var ngClientDeliveryData = (function () {\n function ngClientDeliveryData() {\n this.controller = ngClientDeliveryDataCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n isEditable: \"@\",\n onSave: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/request.client.delivery.data.html\";\n }\n ngClientDeliveryData.Factory = function () {\n var d = function () { return new ngClientDeliveryData(); };\n d['$inject'] = [];\n return d;\n };\n return ngClientDeliveryData;\n }());\n clientDirectives.ngClientDeliveryData = ngClientDeliveryData;\n /** edycja danych adresowych odbioru sprzętu*/\n var ngClientCollectDataCtrl = (function () {\n function ngClientCollectDataCtrl($scope) {\n //metody\n $scope.editData = function () {\n $scope.isEdited = true;\n $scope.request.RequestorCollectAddress.Confirmed = false;\n };\n $scope.confirm = function () {\n if ($scope.request.TypeOfItemCollect === 1) {\n $scope.request.RequestorCollectAddress.Required = true;\n $scope.request.RequestorSelfCollectAddress.Required = false;\n }\n $scope.request.RequestorCollectAddress.Confirmed = true;\n };\n $scope.copy = function () {\n var address = JSON.parse(JSON.stringify($scope.request.RequestorAddresses[0]));\n address.Confirmed = false;\n $scope.request.RequestorCollectAddress = address;\n };\n // dodanie informacji o zmianie adresu\n $scope.request.RequestorCollectAddress.Required = true;\n // zapisanie \n $scope.saveData = function () {\n $scope.isEdited = false;\n // dodanie informacji o zmianie adresu\n $scope.request.RequestorCollectAddress.Required = true;\n $scope.request.RequestorSelfCollectAddress.Required = false;\n // zapisanie \n if (typeof $scope.onSave === \"function\") {\n $scope.onSave($scope.request);\n }\n };\n }\n ngClientCollectDataCtrl.$inject = ['$scope'];\n return ngClientCollectDataCtrl;\n }());\n var ngClientCollectData = (function () {\n function ngClientCollectData() {\n this.controller = ngClientCollectDataCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n isEditable: \"@\",\n onSave: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/request.client.collect.adress.data.html\";\n }\n ngClientCollectData.Factory = function () {\n var d = function () { return new ngClientCollectData(); };\n d['$inject'] = [];\n return d;\n };\n return ngClientCollectData;\n }());\n clientDirectives.ngClientCollectData = ngClientCollectData;\n /** edycja danych adresowych odbioru sprzętu*/\n var ngClientSelfCollectDataCtrl = (function () {\n function ngClientSelfCollectDataCtrl($scope) {\n //metody\n $scope.editData = function () {\n $scope.isEdited = true;\n $scope.request.RequestorSelfCollectAddress.Confirmed = false;\n };\n $scope.confirm = function () {\n if ($scope.request.TypeOfItemCollect === 0) {\n $scope.request.RequestorCollectAddress.Required = false;\n $scope.request.RequestorSelfCollectAddress.Required = true;\n }\n $scope.request.RequestorSelfCollectAddress.Confirmed = true;\n };\n // dodanie informacji o zmianie adresu\n $scope.request.RequestorSelfCollectAddress.Required = true;\n // zapisanie \n $scope.saveData = function () {\n $scope.isEdited = false;\n // dodanie informacji o zmianie adresu\n $scope.request.RequestorSelfCollectAddress.Required = true;\n $scope.request.RequestorCollectAddress.Required = false;\n // zapisanie \n if (typeof $scope.onSave === \"function\") {\n $scope.onSave($scope.request);\n }\n };\n }\n ngClientSelfCollectDataCtrl.$inject = ['$scope'];\n return ngClientSelfCollectDataCtrl;\n }());\n var ngClientSelfCollectData = (function () {\n function ngClientSelfCollectData() {\n this.controller = ngClientSelfCollectDataCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n isEditable: \"@\",\n onSave: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/request.client.self.collect.adress.data.html\";\n }\n ngClientSelfCollectData.Factory = function () {\n var d = function () { return new ngClientSelfCollectData(); };\n d['$inject'] = [];\n return d;\n };\n return ngClientSelfCollectData;\n }());\n clientDirectives.ngClientSelfCollectData = ngClientSelfCollectData;\n /** edycja danych adresowych odbioru sprzętu*/\n var ngClientSelfCollectDataListCtrl = (function () {\n function ngClientSelfCollectDataListCtrl($scope, service) {\n this.service = service;\n //metody\n $scope.selectedAddress = {};\n service.getExternalStoreAddresses($scope.request.PartnerName)\n .then(function (d) {\n $scope.ADDRESSES = d.data;\n $scope.selectedAddress.address = $scope.mapRequestModelToFormModel($scope.request.RequestorSelfCollectAddress);\n });\n $scope.editData = function () {\n $scope.isEdited = true;\n $scope.request.RequestorSelfCollectAddress.Confirmed = false;\n };\n $scope.confirm = function () {\n if ($scope.request.TypeOfItemCollect === 0) {\n $scope.request.RequestorCollectAddress.Required = false;\n $scope.request.RequestorSelfCollectAddress.Required = true;\n }\n $scope.request.RequestorSelfCollectAddress.Confirmed = true;\n };\n $scope.mapFormModelToRequestModel = function () {\n $scope.request.RequestorSelfCollectAddress.PostalCode = $scope.selectedAddress.address.postcode;\n $scope.request.RequestorSelfCollectAddress.District = $scope.selectedAddress.address.voivodeship;\n $scope.request.RequestorSelfCollectAddress.City = $scope.selectedAddress.address.city;\n $scope.request.RequestorSelfCollectAddress.ShopName = $scope.selectedAddress.address.name;\n $scope.request.RequestorSelfCollectAddress.Street = $scope.selectedAddress.address.street;\n $scope.request.RequestorSelfCollectAddress.Confirmed = false;\n };\n $scope.mapRequestModelToFormModel = function (requestModel) {\n var formModel = {\n postcode: requestModel.PostalCode,\n voivodeship: requestModel.District,\n city: requestModel.City,\n name: requestModel.ShopName,\n street: requestModel.Street\n };\n return formModel;\n };\n // dodanie informacji o zmianie adresu\n $scope.request.RequestorSelfCollectAddress.Required = true;\n // zapisanie \n $scope.saveData = function () {\n $scope.isEdited = false;\n // dodanie informacji o zmianie adresu\n $scope.request.RequestorSelfCollectAddress.Required = true;\n $scope.request.RequestorCollectAddress.Required = false;\n // zapisanie \n if (typeof $scope.onSave === \"function\") {\n $scope.onSave($scope.request);\n }\n };\n }\n ngClientSelfCollectDataListCtrl.$inject = ['$scope', 'ngClientSelfCollectDataSrv'];\n return ngClientSelfCollectDataListCtrl;\n }());\n var ngClientSelfCollectDataList = (function () {\n function ngClientSelfCollectDataList() {\n this.controller = ngClientSelfCollectDataListCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n isEditable: \"@\",\n onSave: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/request.client.self.collect.adress.data.list.html\";\n }\n ngClientSelfCollectDataList.Factory = function () {\n var d = function () { return new ngClientSelfCollectDataList(); };\n d['$inject'] = [];\n return d;\n };\n return ngClientSelfCollectDataList;\n }());\n clientDirectives.ngClientSelfCollectDataList = ngClientSelfCollectDataList;\n var ngClientSelfCollectDataSrv = (function () {\n function ngClientSelfCollectDataSrv($http, $q) {\n var _this = this;\n this.$http = $http;\n this.$q = $q;\n this.getExternalStoreAddresses = function (partnerName) {\n var url = '/offerBusinessData/GetExternalStoreAddresses?storeName=' + partnerName;\n return _this.$http.get(url);\n };\n }\n ngClientSelfCollectDataSrv.$inject = ['$http', '$q'];\n return ngClientSelfCollectDataSrv;\n }());\n clientDirectives.ngClientSelfCollectDataSrv = ngClientSelfCollectDataSrv;\n /** edycja adresów dostaw produktów (EDEN)*/\n var ngProductDeliveryAddressCtrl = (function () {\n function ngProductDeliveryAddressCtrl($scope) {\n //metody\n $scope.editData = function () {\n };\n $scope.cancel = function () {\n };\n $scope.saveData = function () {\n // dodanie informacji o zmianie adresu\n //$scope.request.ProductDeliveryAddress.Required = true;\n // zapisanie \n if (typeof $scope.onSave === \"function\") {\n $scope.onSave($scope.request);\n }\n };\n $scope.categoryFilter = function (item) {\n return (item.ProductTypeName == \"FILTR DO WODY\" || item.ProductTypeName == \"EXPRESS\");\n };\n }\n ngProductDeliveryAddressCtrl.$inject = ['$scope'];\n return ngProductDeliveryAddressCtrl;\n }());\n var ngProductDeliveryAddress = (function () {\n function ngProductDeliveryAddress() {\n this.controller = ngProductDeliveryAddressCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n isEditable: \"@\",\n onSave: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/request.product.delivery.address.html\";\n }\n ngProductDeliveryAddress.Factory = function () {\n var d = function () { return new ngProductDeliveryAddress(); };\n d['$inject'] = [];\n return d;\n };\n return ngProductDeliveryAddress;\n }());\n clientDirectives.ngProductDeliveryAddress = ngProductDeliveryAddress;\n /** edycja adresów instalacji do umowy serwisowej (EDEN)*/\n var ngServiceDeliveryAddressCtrl = (function () {\n function ngServiceDeliveryAddressCtrl($scope) {\n //metody\n $scope.editData = function () {\n };\n $scope.cancel = function () {\n };\n $scope.saveData = function () {\n // dodanie informacji o zmianie adresu\n //$scope.request.ProductDeliveryAddress.Required = true;\n // zapisanie \n if (typeof $scope.onSave === \"function\") {\n $scope.onSave($scope.request);\n }\n };\n $scope.categoryFilter = function (item) {\n return (item.ProductTypeName == \"SERWIS\");\n };\n }\n ngServiceDeliveryAddressCtrl.$inject = ['$scope'];\n return ngServiceDeliveryAddressCtrl;\n }());\n var ngServiceDeliveryAddress = (function () {\n function ngServiceDeliveryAddress() {\n this.controller = ngServiceDeliveryAddressCtrl;\n this.restrict = \"AE\";\n this.scope = {\n request: \"=\",\n isEditable: \"@\",\n onSave: \"=\"\n };\n this.templateUrl = \"/WWW/partials/modules/request.service.delivery.address.html\";\n }\n ngServiceDeliveryAddress.Factory = function () {\n var d = function () { return new ngServiceDeliveryAddress(); };\n d['$inject'] = [];\n return d;\n };\n return ngServiceDeliveryAddress;\n }());\n clientDirectives.ngServiceDeliveryAddress = ngServiceDeliveryAddress;\n /** dyrektywa edycji adresu*/\n var AddressNewFormCtrl = (function () {\n function AddressNewFormCtrl($scope) {\n // lista prefixow\n $scope.streetPrefixes = [\n 'AL.',\n 'BULW.',\n 'DROGA',\n 'INNE',\n 'OGRÓD',\n 'OS.',\n 'PARK',\n 'PL.',\n 'RONDO',\n 'RYNEK',\n 'SKWER',\n 'SZOSA',\n 'UL.',\n 'WYB.',\n 'WYSPA'\n ];\n // to musi tak byc poniewaz watcher a autocomplete za pozno sie inicjuje\n $scope._isFormValidated = false;\n $scope.isAutoCompleteDisabled = function () {\n return $scope._isFormValidated;\n };\n $scope.$watch('isFormValidated', function () {\n if ($scope.isFormValidated !== $scope._isFormValidated) {\n setTimeout(function () {\n $scope._isFormValidated = $scope.isFormValidated;\n }, 100);\n }\n });\n }\n AddressNewFormCtrl.$inject = ['$scope'];\n return AddressNewFormCtrl;\n }());\n var AddressNewFormDirective = (function () {\n function AddressNewFormDirective() {\n this.controller = AddressNewFormCtrl;\n this.templateUrl = \"/WWW/partials/addressNewForm.html\";\n this.restrict = \"AE\";\n this.scope = {\n address: \"=\",\n isRequired: \"=\",\n hideSpecificPlace: \"=\",\n isFormValidated: \"=\",\n liteForm: \"=\"\n };\n }\n AddressNewFormDirective.Factory = function () {\n var d = function () { return new AddressNewFormDirective(); };\n d['$inject'] = [];\n return d;\n };\n return AddressNewFormDirective;\n }());\n clientDirectives.AddressNewFormDirective = AddressNewFormDirective;\n var AddressNewFormLiteDirective = (function () {\n function AddressNewFormLiteDirective() {\n this.controller = AddressNewFormCtrl;\n this.templateUrl = \"/WWW/partials/addressNewFormLite.html\";\n this.restrict = \"AE\";\n this.scope = {\n address: \"=\",\n isRequired: \"=\",\n hideSpecificPlace: \"=\",\n isFormValidated: \"=\",\n liteForm: \"=\"\n };\n }\n AddressNewFormLiteDirective.Factory = function () {\n var d = function () { return new AddressNewFormLiteDirective(); };\n d['$inject'] = [];\n return d;\n };\n return AddressNewFormLiteDirective;\n }());\n clientDirectives.AddressNewFormLiteDirective = AddressNewFormLiteDirective;\n /*nowa stopka*/\n var FrontFooterDirective = (function () {\n function FrontFooterDirective() {\n this.restrict = \"E\";\n this.template = \"\\n\\n
\\n\\n \\n\\n
\\n\\n\\n\\n\\n \";\n }\n ;\n FrontFooterDirective.Factory = function () {\n var dir = function () { return new FrontFooterDirective(); };\n dir['$inject'] = [];\n return dir;\n };\n return FrontFooterDirective;\n }());\n clientDirectives.FrontFooterDirective = FrontFooterDirective;\n /* helper */\n var FrontHelpDirective = (function () {\n function FrontHelpDirective($http, $sce) {\n var _this = this;\n this.$http = $http;\n this.$sce = $sce;\n this.restrict = \"E\";\n this.template = \"\\n
\\n \";\n this.link = function (s, el, attrs) {\n s.html = '';\n var stage = top.location.href.toLocaleLowerCase();\n s.stage = stage;\n s.renderHelpFromBackend = function () {\n return _this.$sce.trustAsHtml(s.html);\n };\n // koszyka\n if (stage.indexOf('createoffer') !== -1\n || stage.indexOf('oferta_otwarta') !== -1\n || stage.indexOf('oferta_dla_partnera') !== -1\n || stage.indexOf('process/order') !== -1\n || stage.indexOf('stacjonarny') !== -1) {\n s.stage = 'process-order';\n }\n else if (stage.indexOf('offer/get') !== -1\n || stage.indexOf('process/choose.offer') !== -1) {\n s.stage = 'process-choose.offer';\n }\n else if (stage.indexOf('offerclientdata/edit') !== -1\n || stage.indexOf('process/client.data') !== -1) {\n s.stage = 'process-client.data.loan';\n }\n else if (stage.indexOf('payment/selectpaymentchannel') !== -1\n || stage.indexOf('process/choose.payment.channel') !== -1) {\n s.stage = 'process-choose.payment.channel.for';\n // pobranie rodzaju platnosci\n var paymentType = (s && s.paymentType) ? ('.' + s.paymentType) : '';\n s.stage += paymentType;\n }\n else if (stage.indexOf('selfservice/index') !== -1\n || stage.indexOf('client/service/process') !== -1) {\n s.stage = 'process-agreement.data.loan';\n }\n // opracowanie partnera\n var partner = 'LEASELINK';\n if (s.user && s.user.Partner) {\n partner = s.user.Partner;\n }\n else if (s.partner && s.partner.PartnerName) {\n partner = s.partner.PartnerName;\n }\n else if (s.partner) {\n partner = s.partner;\n }\n s.processType = 'OperationalLeasing';\n s.logged = false;\n var url = '/personalisation/help/' + partner + '?stage=' + s.stage + '&processType=' + s.processType + '&logged=' + s.logged;\n _this.$http.get(url).then(function (d) {\n s.html = d.data;\n });\n };\n }\n ;\n FrontHelpDirective.Factory = function () {\n var dir = function ($http, $sce) { return new FrontHelpDirective($http, $sce); };\n dir['$inject'] = ['$http', '$sce'];\n return dir;\n };\n return FrontHelpDirective;\n }());\n clientDirectives.FrontHelpDirective = FrontHelpDirective;\n // pokazanie naglowka z logiem i powitaniem w zaleznosci od partnera \n var ngShowHeader = (function () {\n function ngShowHeader() {\n this.restrict = \"AE\";\n this.scope = {\n partner: \"=\"\n };\n this.templateUrl = \"/WWW/partials/show.header.directive.html\";\n }\n ngShowHeader.Factory = function () {\n var dir = function () { return new ngShowHeader(); };\n dir['$inject'] = [];\n return dir;\n };\n return ngShowHeader;\n }());\n clientDirectives.ngShowHeader = ngShowHeader;\n var ngClientInfoMessageService = (function () {\n function ngClientInfoMessageService($http, $modal, $window) {\n this.$http = $http;\n this.$modal = $modal;\n this.$window = $window;\n }\n ngClientInfoMessageService.prototype.showInfoMessage = function () {\n var _this = this;\n this.$http.get(\"/process/helper/get-client-notification\").then(function (result) {\n var showMessage = result.data.ShowMessage;\n var messageBody = result.data.MessageBody;\n var messageShown = _this.$window.sessionStorage.getItem(\"clientInfoMessageShown\") === \"true\";\n if (showMessage && !messageShown) {\n var modalInstance = _this.$modal.open({\n animation: true,\n templateUrl: 'clientInfoMessageTemplate',\n controller: 'ClientInfoMessageCtrl',\n resolve: {\n infoMessage: function () {\n return messageBody;\n }\n }\n });\n modalInstance.result.then(function () { return _; }, function () {\n _this.$window.sessionStorage.setItem(\"clientInfoMessageShown\", true);\n });\n }\n });\n };\n ngClientInfoMessageService.$inject = ['$http', '$modal', '$window'];\n return ngClientInfoMessageService;\n }());\n clientDirectives.ngClientInfoMessageService = ngClientInfoMessageService;\n var ClientInfoMessageDirective = (function () {\n function ClientInfoMessageDirective(ngClientInfoMessageService) {\n this.ngClientInfoMessageService = ngClientInfoMessageService;\n this.restrict = \"E\";\n this.template = \"\";\n ngClientInfoMessageService.showInfoMessage();\n }\n ;\n ClientInfoMessageDirective.Factory = function () {\n var dir = function (ngClientInfoMessageService) { return new ClientInfoMessageDirective(ngClientInfoMessageService); };\n dir['$inject'] = ['ngClientInfoMessageService'];\n return dir;\n };\n return ClientInfoMessageDirective;\n }());\n clientDirectives.ClientInfoMessageDirective = ClientInfoMessageDirective;\n var ClientInfoMessageCtrl = (function () {\n function ClientInfoMessageCtrl($scope, $modalInstance, infoMessage) {\n this.$scope = $scope;\n this.$modalInstance = $modalInstance;\n this.infoMessage = infoMessage;\n $scope.infoMessage = infoMessage;\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n }\n ClientInfoMessageCtrl.$inject = ['$scope', '$modalInstance', 'infoMessage'];\n return ClientInfoMessageCtrl;\n }());\n clientDirectives.ClientInfoMessageCtrl = ClientInfoMessageCtrl;\n})(clientDirectives || (clientDirectives = {}));\n"]}