{"version":3,"file":"../my-account.js","names":["window","api","vars","lang","isIE","isEdge","isIE6To11","is","windW","windH","windOldW","windOldH","wresizetimer","resizetimeout","timerout","IframeAPIReady","youtubeSelectors","youtube_addedScriptToHead","googleMapReady","recaptchaReady","allowCaptcha","grecaptchaIds","scr","phone","tablet","desktop","desktop_medium","datepicker","dateFormat","selectors","body","header","footer","slick","edgeFriction","speed","prevArrow","nextArrow","zoomLevel","detectors","fn","components","forms","resizeCommon","modules","cookies","accessibilities","doMobileIntegration","obj","AndroidDEIMOB","postMessage","JSON","stringify","webkit","messageHandlers","callbackHandler","MobileApp","setNavTitle","title","action","content","navigate","screen","logout","setTokens","userToken","refreshToken","myEnergyLoginMenu","myEnergyLoginSupply","myEnergyLoginActivation","viewSupplyHome","viewSupplyMenu","succNetMetering","goToLoginPage","goToDashboard","billTagging","activateDigitalBill","ga","gtag","activateDigitalBillTrack","fbq","activateMonthlyPay","activateMonthlyPayTrack","activatePayOrder","activatePayOrderTrack","e","t","exports","module","define","amd","this","constructor","then","n","resolve","reject","o","f","call","r","status","reason","i","value","length","TypeError","Array","prototype","slice","_state","_handled","_value","undefined","_deferreds","l","_immediateFn","onFulfilled","onRejected","u","promise","push","c","apply","arguments","_unhandledRejectionFn","a","setTimeout","all","allSettled","race","setImmediate","console","warn","s","self","global","Error","Promise","$","widget","_create","wrap","element","burger","html","menu","_events","on","_toggleMenu","hasClass","removeClass","hide","addClass","show","jQuery","checkScreen","document","sticky","unsticky","trigger","stick_in_parent","stickyBar","_","box","boxHeight","outerHeight","offset","top","innerHeight","scrollTop","options","_initSlick","carousel","find","infinite","arrows","appendArrows","dots","rows","slidesToShow","slidesToScroll","_callMobileAppFunc","click","_createArrowContainer","log","parents","parseInt","attr","lazyLoad","parent","variableWidth","responsive","breakpoint","settings","currentSlide","nextSlide","lazy","insertAfter","_checkFun","_slideToggleFun","_resetFun","sectionContent","sectionHeader","sectionHeaderIcon","css","next","removeAttr","off","toggle","toggleClass","_getElementHeightFun","selector","each","indx","item","head","equalMinHeights","opts","_splitBoxes","leftCol","eq","rightCol","last","oddItems","clone","odd","evenItems","even","appendTo","_eqRowTop","_reMinHeight","_addClicks","row","not","cls","active","useOptsActive","activeItm","acc","getData","qsHeaderId","getParameterByName","Math","floor","index","animate","accordion","navigation","heightStyle","collapsible","create","event","ui","moveWindowToObj","beforeActivate","activate","ARIA_toggleContent","bool","Aria_controls","controlObjId","aria_slick_arrows","getWindDims","dims","viewport","width","height","checkTouchDevice","isTouch","checkFontsIconsLoad","documentElement","className","indexOf","FontFaceObserver","weight","load","disableBodyScroll","winTopMemory","position","enableBodyScroll","onEnterTriggerBtn","inpt","keyCode","which","btnId","data","setAnchors","preventDefault","lnk","target","toFocus","slc","focus","toFocusThis","focusfix","blur","onEscTriggerReset","txtId","val","btn","resetTxt","iniPostPreloader","ToPrepend","getBtnSize","w","outerWidth","h","btnDisplay","btnSizes","prel","insertBefore","prev","removePostPreloader","btnWrap","remove","datastr","defVal","str","shuffle","j","x","random","printPage","id","pageTitle","getElementById","innerHTML","printWin","open","write","close","print","getHeaderHeight","callback","objToPos","headerH","clearQueue","stop","moveWindowToScrollPoint","scrlPoint","getQueryByName","name","replace","results","RegExp","exec","location","search","decodeURIComponent","mediaQueryCallbacks","devicesToWatch","matchCallback","unmatchCallback","mediaMatch","mediaIs","checkForYouTube","addYouTubeApi","tag","createElement","src","firstScriptTag","getElementsByTagName","parentNode","recaptchaLoaded","getScrollPosition","doc","pos","left","pageXOffset","scrollLeft","clientLeft","pageYOffset","clientTop","getDate","date","parseDate","error","youtube_embed","vId","highlight","txt","text","substring","smsLnk","link","SMSLink","replaceAll","pad","preloadBodyMarkup","preloaderMarkup","preloadBody","state","instant","_toggleBodyPreloader","callBack","timer","fadeIn","fadeOut","addTextToBodyPreloader","prBody","modalLnk","modalLnkTrigger","modalId","resetForm","modal","substr","resetFields","resetCaptcha","iniCaptcha","sortByButton","backToTop","convertLnkAddToEdit","nodeId","convertLnkEditToAdd","hasCookie","key","test","encodeURIComponent","cookie","iniWaypointElements","elem","Waypoint","handler","direction","removeInlineImgSizes","img","googleMapsReady","preloadContentLikeVue","parentObj","preloadedItem","cleanBreak","url","href","setUrlParameter","history","replaceState","setUrlParameter_fn","baseUrl","split","urlQueryString","newParam","params","updateRegex","removeRegex","match","updateQueryStringParameter","uri","hash","re","separator","removeURLParameter","removeURLParameter_fn","parameter","urlparts","prefix","pars","lastIndexOf","splice","join","uniqueValues","theArray","contains","newArrr","v","arr","concat","round","devicePixelRatio","iniShareLinks","shareUrl","suffle","sanitizeString","trim","groupedArray","items","ceil","fill","map","hexToRgb","hex","m","g","b","result","validEmail","email","acceptNumber","toFix","toFixed","addCommasFilter","nStr","septhou","sepdec","x1","x2","rgx","getNumberFromCustomDec","isNaN","comma","intPart","decPart","outp","removeDotsOrCommas","elements","minHeight","tallest","redirectToJobPage","updateFavicon","matcher","matchMedia","lightSchemeIcon","querySelector","darkSchemeIcon","matches","append","getRegExpFlags","regExp","source","flags","ignoreCase","multiline","unicode","isArray","type","toString","Date","getTime","passiveListeners","special","touchstart","setup","ns","handle","addEventListener","passive","includes","touchmove","wheel","mousewheel","downloadFile","download","appendChild","removeChild","guid","crypto","getRandomValues","Uint8Array","getSvgSource","svg","axios","get","resp","catch","errors","err","equalHeights","allowOverflow","maxHeight","inputWithPasswords","closest","inptId","preventPaste","plgn","isOnScreen","scrolling","scrolltimer","clearTimeout","section","win","onScreenCls","right","bottom","bounds","headeroffset","_trigger","MSInputMethodContext","documentMode","setDefaults","regional","headerDevices","slideToggle","leftMenu","simpleMasonry","tableCharge","stickyProductBar","accordionSection","fullwidthGallery","articleCards","energyCarousel","energyToolBox","jsCallbacks","pagemode_edit","inViewport","onYouTubeIframeAPIReady","reloadWindowIfTokenExpired","methods","tokenExpired","reload","mixins","loading","errorMsgs","globalerror","getFormAction","form","getAttribute","removeDuplicates","array","filter","objName","getDataText","entry","makeid","characters","charAt","validateFields","names","validArray","forEach","valid","getAllFields","elemId","fieldsArray","iniReCaptcha","Vue","nextTick","reCaptcha","grecaptcha","render","sitekey","scrollToError","offsetY","scrollToValidation","barH","first","scrollToTop","scrollToElem","getIndex","hasValue","showErrorDialog","message","errorDialog","errorMsg","dictionary","serverErrorMsg","getAjaxResponseMessages","messages","msg","msgList","getRandomInt","max","getUrlVars","getUrlParam","defaultvalue","urlparameter","getCharPosition","string","char","appendUrlParam","URL","search_params","searchParams","urlParamExists","set","new_url","pushState","appendUrlParams","parameters","values","field","coordinatesAreValid","long","lat","trimChar","charToRemove","getCharacteristicTooltip","tooltip","getInfoWindowContentString","address","ajax","post","response","hasError","errorMessages","allItems","handleAjaxError","headers","handleAjaxSuccess","parse","changeAllNodes","currentNode","k","findNode","nodeName","currentChild","findValues","findValuesHelper","list","children","Object","keys","mixin_viewport","mounted","defineScreen","windowWidth","getWidth","alertDismissible","props","dismissible","Boolean","default","isClosed","computed","showAlertClass","dismissibleClass","wizardModel","greReady","captchaSiteKey","captchaAction","recaptchaResponse","criticalError","submitHandler","model","finalMessage","sessionId","errorFields","critical","criticalErrorCode","$refs","modalCritical","cloneModel","newData","updateModel","assign","updateModelAndContinue","$nextTick","nextStep","returnFilesAsObject","startsWith","reduce","files","getFilteredModel","fromEntries","entries","removeFilesFromModel","validate","ref","recaptchaResponseUpdate","newToken","scrollBackToForm","scrollToInfo","handleError","$el","addErrorFields","clearErrorFields","captchaEnabled","sendCaptcha","callCaptcha","execute","updateToken","token","$emit","makeFormData","createFilesPayload","from","file","dataToSend","FormData","wizardEditable","checkForDisable","editable","btnEditStr","String","btnCancelStr","btnSaveStr","disabled","isSaved","$watch","newobj","old","immediate","enableFields","disableFields","save","saved","saving","cancel","wizardHelpers","stringifyPrice","toLocaleString","minimumFractionDigits","maximumFractionDigits","transliteration","accentuations","transliterations","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","transliterate","prop","transToGreek","toUpper","accents","translit","toUpperCase","chr","wizardSteps","currentStep","allSteps","stepModel","locked","subSteps","subStepId","beforeMount","updateStepModel","updateSubSteps","keyCounter","scrollTo","z","step","current","prevStep","closeAllSteps","goToStep","num","goTo","substep","goToSupStep","isActiveStep","stepsActiveClass","indexOfSubStep","findIndex","el","getCurrentSubStepNumber","getCurrentSubStep","prevSupStep","updateSubStepId","nextSupStep","to","enableDisableButtons","btnsDisabled","disableButtons","enableButtons","disableButtonsClass","checkIfLockedFieldMixin","checkIfLockedField","fieldName","setFields","fieldObj","chartsCommon","dataset","titles","labels","colors","tooltipLabels","chartId","chartData","maxValue","formaliseData","datasets","currentMax","backgroundColor","hoverBackgroundColor","tooltipSettings","labelTextColor","titleColor","borderWidth","borderColor","displayColors","callbacks","context","dataIndex","label","unslick","$slick","beforeUnmount","bsTooltip","tooltipList","initTooltip","tooltipTriggerList","querySelectorAll","tooltipTriggerEl","bootstrap","Tooltip","setPlacement","scrlTop","dif","enableTooltips","enable","hideTooltips","removeTooltips","dispose","er","removeTooltip","getInstance","cpx_mixins","cpx","commit","steps","formScrolling","firstInvalid","supplies","selectedSupplies","updateSupplies","resetSupplies","checkAllSupplies","toggleAllSupplies","selectedSuppliesString","multiFormSubmit","returnAllFiles","allFiles","allFilesValue","finalSubmit","async","method","gotoError","gotoSuccess","commonComponents","slickCarousel","carouselArrows","template","onDestroy","onAfterChange","onBeforeChange","onBreakpoint","onEdge","onInit","onReInit","onSetPosition","onSwipe","onLazyLoaded","onLazyLoadError","destroy","reSlick","pause","play","dontAnimate","add","addBefore","removeBefore","filterData","unfilter","getOption","option","setOption","refresh","setPosition","image","imageSource","alertDanger","var","alertSuccess","eLoader","absolute","required","bPagination","maxVisibleButtons","Number","totalRecords","perPage","currentPage","inactiveClass","totalPages","startPage","endPage","min","pages","range","isDisabled","isInFirstPage","isInLastPage","onClickFirstPage","onClickPreviousPage","onClickPage","page","onClickNextPage","onClickLastPage","isPageActive","customTabs","wrapTextOnMultiple","hideNav","miniTabClass","selected","changeTab","isOpened","activeClass","manyTabs","topClass","wrapTabClass","hideNavClass","watch","newVal","bAccordion","iniAccordion","oldVal","setActive","slideUpDown","animateOnStart","_this","isOpen","checkToOpen","animated","openSlide","closeSlide","slideDown","slideUp","eCircleProgressStep","stepNumber","activePerc","completePerc","isJump","activeValue","completeValue","setActiveValue","setCompleteValue","calcVal","perc","completedClass","namedSteps","class","setCurrent","iniStep","created","getNameByIndex","previous","pop","isFirstStep","routeClass","headerClass","bodyClass","formattedNumber","float","noFloatAtZero","formattedValue","addRemoveGroup","initial","update","randomKey","expandableText","btnClassName","expanded","showToggleButton","scrollHeight","$this","maxH","ini","container","style","setProperty","getComputedStyle","getPropertyValue","expandedClass","disabledClass","accordionTabComponet","btnMoreTxt","btnHelpTxt","viewAccordionLimit","interactDiv","selectedTab","selectedGroup","loadData","sort","tabs","groups","refreshAccordion","onClickTab","onClickGroup","isExpaned","isExpanded","topNode","faqs","faq","expandSelected","doInteract","div","subTitle","bAutoCompleter","clickable","useCaptcha","records","isActive","doSearch","reset","handleSuccess","stopSearch","itemTypeClass","stopPropagate","stopPropagation","clicked","svgSourcePrint","imgSrc","getSource","fetch","ok","bTabs","activeTab","customIcons","tab","iniTabs","newTab","creditCard","contractaccount","customercode","econtractid","ev","modal_Message","cardToken","iframeSrc","origin","returnUrl","canHide","backdrop","contentAlignClass","myModal","Modal","keyboard","backdropOption","modalConfirm","closeButton","formWizard","injectedModel","autoComplete","defaultError","submitOnMount","keyCount","formId","uid","updateUnobtrusive","revert","deep","submitForm","iniSubmit","defaults","serialize","handleResponse","submitModel","__sessionid","resetUnobstrusive","removeData","validator","unobtrusive","updateAndValidate","validateDisabledFields","validField","setLoad","addToModel","econtractProduct","selectedProduct","product","addons","cancelBtn","acceptBtn","removeBtn","valMessage","hideBody","slideNow","attachedAddons","attachAddon","addonObj","setActiveProduct","isValid","accept","removeIt","openedClass","selectedClass","showLayerBtn","econtractPrdHead","verticalLogo","prNotifText","prNotifClass","cardBg","bg","cardHeadClass","econtractPrdBody","econtractHeaderMenu","econtractProductGetAttr","products","getValue","node","ret","econtractAddon","addon","selectedAddonsCount","attachedAddon","isAttached","disallowAddons","showAlert","econtractAddonBasket","selectedAddons","currSlcAddons","productObj","productAddons","isAllowedAddon","isAttachedAddon","isDisabledAddon","curr","findObjById","disables","isSelectedAddon","selectAddon","removeAddon","hiddenSteps","refname","fileUploader","inputId","acceptedExtentions","btnStr","maxFileSize","maxFileSizeStr","minFileSize","minFileSizeStr","multipleFiles","invalidFileTypeText","size","hasChanged","sizeExceeed","sizeEmpty","invalidFileType","onChange","initialCheck","inputValue","triggerFile","fileName","fileExtension","toLowerCase","acceptedExtensions","ext","readURL","editCancelFields","isEditable","touched","disable","enabled","phoneNumber","flagPath","flagName","flagExtension","iniValue","code","combinedFieldId","timeout","keypress","evt","validateFieldCombined","checkWhenValueChanged","changed","selectedFlagFile","combined","otpWrapper","emits","success","sending","sent","sentFailed","otp","requestOtp","sendOtp","alloAutoCall","countryCode","maxResends","timeOut","resendTimeout","otpCode","sendCounter","inTime","showResend","phoneUpdated","autoStart","resetSentCounter","iniOtp","updateScopedModel","startTimer","resend","handleSuccessOtpCode","otpRefCode","getDataToPost","preData","emailKey","vat","allowResend","showResendTimeout","postData","onInput","addressFinder","postalStr","chooseAreaStr","autocompleteHandler","chooseAreaHandler","iniSelectValue","postalMaxLength","minCharacters","debounceTimer","startSearch","areas","selectArea","errorSearchData","iniArea","noSearchData","searchFailed","searchCompleted","closeAutocomplete","keypressPostalCode","checkToSearch","autocompleteClicked","searchArea","selectAreaChanged","errorField","keyName","elementWithTooltip","isLink","isText","linkUrl","elementType","tooltipPlacement","customClass","tooltipEl","hideTooltip","removeEventListener","dayNightTableTable","tableData","whiteClass","cell","white","borderClass","border","doubleCellClass","double","dayIconClass","dayClass","day","dayNightTable","months","categories","extraPayload","markup","selectedDate","icons","createIcons","monthChanged","tabChanged","icon","eCardType","powerUrl","gasUrl","printSvg","cardTypeClass","imageUrl","dashboardAdv","allowSlick","iniSlick","carousel_arrows","dashboardBills","bottomAlignClass","hasSlick","cards","callMobileAppFunc","refreshSlick","cardNotify","cardId","topUrl","checked","inputSearchSimple","placeholder","buttonText","clearText","hasClear","leftMagnifier","clearInput","triggerOnInput","showClear","extraClass","friendlyAddressEdit","minLength","strEdit","strSave","strCancel","strRequired","strTooltip","canEdit","iconUrl","redirect","tooltipEdit","tooltipCancel","tooltipSave","btnAsIcon","edit","initialValue","updated","enableEdit","disableEdit","cancelEdit","ctaWrapHorizontal","addonCards","productCards","billTrackCards","showModal","infoMessage","billHistory","downloadsHandler","downloadsNoData","documentsHandler","buttonMore","tabDownload","tabDocuments","lnkView","lnkDownload","tooltipMessage","contractAccount","noData","iniFilter","historyData","types","notifyDownloads","notifyFetchDownloads","payload","showPeriod","billHistoryChoosePeriod","placeholderFrom","placeholderTo","buttonSubmit","dateFrom","dateTo","inputFrom","inputTo","successMsgs","selectedFromDate","iniDatepicker","checkToPostData","formattedDate","minDate","maxDate","changeYear","onSelect","dateText","setMinDate","setMaxDate","currentDate","today","yyyy","getFullYear","mm","getMonth","dd","billHistoryTable","columns","attachments","showMore","trClasses","redeemed","expired","filtered","pagedData","billHistoryCards","ready","showPreviewBtn","billHistoryCardsSlick","billHistoryFetchDownloads","showRefreshMsg","clickToGetData","dateHandler","contract_account","heightClass","billHistoryFetchDocuments","charts","callModalMobileApp","pieChart","initPieChart","ctx","getContext","Chart","maintainAspectRatio","plugins","legend","display","barChart","iniBarChart","categoryPercentage","barPercentage","scales","y","suggestedMax","borderRadius","topLeft","topRight","consumptionWizard","dayLabel","minDayLimit","maxDayLimit","night","nightLabel","minNightLimit","maxNightLimit","strWarningEmpty","strWarningDecimals","strWarningMaxlimitDay","strWarningMaxlimitNight","strWarningMinlimitDay","strWarningMinlimitNight","unit","strBtnSubmit","strBtnSwitchNight","strBtnSwitchDay","strBtnClear","strBtnConfirm","strBtnFinalSubmit","strBtnEdit","strBtnBack","allowMinDay","allowMinNight","strConfirmMinlimitDay","strConfirmMinlimitNight","finalResponse","warning","showCTAS","onFieldWarning","_case","switchToDay","validateStep","toSubmit","submitWithLimitWarnings","hasNight","clearField","labelByState","calcMinLimit","calcMaxLimit","calcStrWarningMinlimit","calcStrWarningMaxlimit","calcStrConfirmMinlimit","calcInitialValue","calcCurrentValue","updateValue","consumptionCtas","dayNight","consumptionField","currentValue","minLimit","maxLimit","strWarningMinlimit","strWarningMaxlimit","strConfirmMinlimit","valueLength","warningNoVal","warningDecimals","warningMaxLimit","warningMinLimit","confirmMinLimit","checkDecimals","blurred","checkHasValue","setLeftPad","resetAllWarnings","keyup","checkMinLimit","checkMaxLimit","modelAsNumber","difLen","inputLength","padLeadingZeros","warningClasses","consumptionSummary","consumptionSteps","extraClasses","toggleCheckbox","inactiveText","activeText","modelValue","newValue","programBillOptions","changedToggleCheck","detailAddon","checkHandler","removeHandler","phaseCheck","notAllowMessage","isRemoved","removedMessaged","iniAlertCloseEvent","allow","addonModalConfirm","cancelRemove","continueRemove","headerBg","youtubeSingle","autoplay","videoid","loop","controls","modestbranding","playerid","iniPlayer","playerVars","playlist","video_id","player","YT","Player","host","videoId","events","onReady","stateChange","PlayerState","ENDED","PAUSED","PLAYING","unmounted","loadVideoById","playVideo","getPlaylist","youtubeMulti","activeItem","selectedItem","activeYouTubeId","vid","greenPromoCodes","preCoupon","alwaysAllowRedeem","inputLabel","strBtnRestart","strSuccess","strInfoLearnMore","strCoupon","strWarningNoValue","isFocus","couponNumber","onFocus","stateClasses","errorClasses","redeemInSupply","noSupplies","ctaStr","errorStr","noSuppliesStr","supplyId","supplyItem","supply","showError","hasSupply","activeUrl","summaryProducts","summaryAddons","summaryProductsHead","headData","verticalLogoDynClass","suppliesNavigation","activePowerBg","activePowerBgPattern","activeGasBg","activeGasBgPattern","userHasAccessStr","userIcon","categ","contentClass","userHasAccess","activeBg","activeBgPattern","editClicked","supplyNavigation","chooseProductStep","stateClass","chooseProductSteps","stepClass","activePercent","completePercent","stepPages","disabledButtons","chooseSupplies","strPower","strGas","strChoose","selectedId","chooseThis","isSelected","unselect","chooseProductStepsHeader","opened","supplyDropdown","memberId","placeholderSearch","iconPower","iconGas","controller","AbortController","term","noResults","noResultsMessage","closeLayer","signal","getList","toggleLayer","account","selectItem","currentItem","abort","currentValueTitle","clabel","milesNBonus","infoStr","updateInfoStr","loggedinLabelStr","btnModalStr","btnLoginStr","btnBackStr","strMustBeDifferent","strInvalid","empty","invalid","notDifferent","loggedIn","cpage","userType","mileId","successMessage","redeem","redeemMessage","prefetchedData","milesIds","goToUpdateForm","cancelUpdate","getCheckDigit","inbond","number","remainder","trunc","checkDigit","userTypeClass","showInfo","bAegeanRecent","recentMilesHandler","measure","strFrom","strDate","strContract","totalMiles","total","checkedClass","bAegeanHistory","supplyChange","newSupplyId","milesId","currentMileId","memberIdChanged","redeemedCard","card","pagedRows","recentMiles","loyaltyRadioPromoList","loyaltyRedeemCalculator","miles","owed","strMilesRedeem","strRedeemAmount","strFinalOwed","finalOwe","otpMultiInput","allowCharacters","inputs","passCharacterValidation","pasteValues","beforeDestroy","onKeydown","onPaste","originalValue","one","$currentInputBox","pastedValue","onKeyUp","focusFirstEmptyInput","focusPreviousInput","$inputBox","isDigit","isCharacterOrDigits","inputType","sendNotificationForEvAddon","supplyList","ebillText","singleSelection","autoSelect","errorFieldKey","areAllSuppliesSelected","finalVal","checkSupply","textRequired","textCta","textNote","reverseClass","supplyReady","common","requestCard","accountIds","accountLabel","ownerLabel","owner","authorizedLabel","authorized","accessTypeLabel","accessType","requestDateLabel","requestDate","expiryDateLabel","expiryDate","tooltipText","isRemovable","removeButtonText","hasTooltip","powerIcon","gasIcon","statusTextNew","statusTextAccepted","statusTextDeclined","showAccountIdsDropdown","showAuthorizedUsersDropdown","cardStatusClass","statusText","NEW","ACCEPTED","DECLINED","firstAccountId","hasMultipleAccounts","additionalAccountIds","accountDropdownIconClass","firstAuthorizedUser","additionalAuthorizedUsers","authorizedDropdownIconClass","isAccepted","isGasAccount","accountId","isPowerAccount","toggleDropdown","handleIconClass","emitCardRemoved","supplyAndAddressManager","showNav","isNavVisible","requestProvider","dataArray","terms","requestsList","areItemsRemovable","approvedRequestAlertMessage","rejectedRequestAlertMessage","showEmptyListAlert","emptyListAlertMessage","showPagination","isLoading","showStatus","receivedTabLabel","sentRequestsTab","receivedRequestsTab","sentTabLabel","initialTab","modalProperties","footerCancelButton","footerAcceptButton","pageSize","itemToRemove","emailToRemove","filteredDataArray","requestType","start","filteredDataArrayLength","filteredItemsCount","replaceEmailMessage","emailPlaceholder","pageChanged","newPage","removeItem","itemId","openModalCritical","itemOwner","closeModalCritical","shouldDeleteItem","userLabelCounter","users","userImage","multipleUserText","singleUserText","renderUserLabel","imgCount","imgTags","remainingUsers","userText","benefitCard","programText","addonsText","accountExpirationText","overdueText","amountText","payBtnText","moreBtnText","programTypeClass","stable","floating","transitional","dynamic","supplyGroupTabs","hasAuthorizedAccounts","activeTabIndex","tabButtons","selectTab","filteredData","activeTabId","category","initDirective","binding","vnode","prevVnode","vm","instance","arg","toCamelCase","$data","group1","inputCleanName","dispatchEvent","Event","bubbles","Vuex","Store","mutations","iniSteps","pushToBreadCrumb","clearCurrentBreadCrumb","getters","getIndexStepByCase","selectedCase","getSteps","getSummaryStep","actions","updateBreadcrumb","keepCurrent","updateBreadcrumbArray","dispatch","dayNightTableApp","dayNightTableAppApp","dayNightTableAppDivs","createApp","component","mount","login","nav","activeTabClass","openModalRetrieveCredentials","closeModalRetrieveCredentials","loginApp","loginSelector","directive","dashboard","dashboardApp","dashboardSelector","dashboardList","tempSearch","pagesize","filterSupplyCat","activeFilter","updateSearch","animateData","filtersChanged","suppliesFilter","supplyCat","dataPower","itm","dataGas","dataSupplies","supplyCateg","renderedTabs","renderedDisabledTabs","dashboardListApp","dashboardListSelector","providesBill","scrollAndOpenMeterInfo","providesBillApp","providesBillSelector","programDetails","removeMandateHandler","createMandateHandler","activeSms","activeEmail","activeMonthlyToggle","acceptMonthlyTerms","activeEbillToggle","activeMandate","billMgmtHandler","commsMgmtHandler","saveBillMgmt","postActionName","cardDetails","paymentMethod","showInsertCardSuccessMsg","mandatoryMonthlyBill","disabledMonthlyBill","mandatoryOnlineBill","disabledOnlineBill","addonCheckRemoveHandler","addonRemoveHandler","disableNotification","disableEbillSwitch","disableMonthlyBillSwitch","cardExpiring","expDate","sM","sY","now","cardExpired","hasAddons","changedMonthlyToggle","modalConfirmMonthly","postBillMgmt","changedEbillToggle","changedComms","storeBillMgmt","ebill","sms","postRemoveMandate","postCreateMandate","changeMandate","cancelMandate","keepMandate","cancelMonthly","confirmMonthly","successCreditCard","creditCardFailed","removeCurrentAddon","showAddon","programDetailsApp","programDetailsSelector","chooseProduct","basketItem","supplyNumber","creditCardStatus","finalSubmitError","hdnSteps","payment","criticalMessage","evAddonOtpSubmitted","config","allAddons","updateBreadcrumbAndContinue","evAddon","sendEvAddon","getSupply","getContractAccount","getSelectedAddons","submitted","evAddonOtp","summaryStep","updateHdnSteps","isHdnStepActive","creditCardActive","onFinalSubmitError","showMilesBonusMessage","onFinalSubmit","finalUrl","allowedAddOn","addonId","incompatibleAddOns","excludedStatusCodes","errorEvAddon","openEVDetailModal","findAddon","isSupplyMandate","hasMandate","notAttachedAddons","chooseProductApp","chooseProductSelector","homeNews","isMobile","featuredArticles","listArticles","slickOptions","fade","cssEase","autoplaySpeed","slickListOptions","carousel_arrows_list","appendDotsToSlicks","checkMobileScreen","fetchArticles","appendDots","isFeatured","news","newslist","homeNewsApp","homeNewsDivs","knowCustomer","btnUrl","slickDefaults","iniOffers","iniLogos","offersCarousel","offersCarouselArrows","logosCarousel","logosCarouselArrows","knowCustomerApp","knowCustomerSelector","aegean","milesUser","recentSupplies","milesUpdated","aegeanApp","aegeanSelector","rewardTabs","showTab","rewardTabsApp","rewardTabsSelector","redeemMiles","amountOwed","amountFinal","redeemOptions","redeemId","namedStepsCurrent","radioOptions","handlerRedeem","handlerOtp","otpSuccess","otpCodeError","aliasPhoneNumber","paymentUrl","homeUrl","updateRedeem","watchRedeemChoise","introChosen","redeemContinue","otpSent","doPayment","namedStepsUpdateCurrent","updateFinalValue","selectedRedeemObject","redeemValue","redeemMilesApp","redeemMilesSelector","greenCity","greenCityApp","greenCitySelector","profilePage","profilePageApp","profilePageSelector","providesCaBill","providesCaBillApp","providesCaBillSelector","supportChangeAddress","addressType","postalInput","postCode","area","resetStreets","deleteItem","supportChangeAddressApp","supportChangeAddressSelector","supportGeneral","supportGeneralApp","supportGeneralSelector","supportTechnicalIssue","selectedCountrycode","optSuccess","file_1","file_2","supportTechnicalIssueApp","supportTechnicalIssueSelector","supportAddSupply","accountNumber","idNumber","modifyAccounts","removeCurrentAccount","validateAllForms","isTopFormValid","isMainFormValid","addedAccounts","supportAddSupplyApp","supportAddSupplySelector","supportUpdateDataPersonal","enableEditing","storedIdNumber","disableEditing","supportUpdateDataPersonalApp","supportUpdateDataPersonalSelector","supportUpdateDataLegal","supportUpdateDataLegalApp","supportUpdateDataLegalSelector","supportCashBack","found","ibanFor","supportCashBackApp","supportCashBackSelector","supportTechnicalLoggin","supportTechnicalLogginApp","supportTechnicalLogginSelector","supportAccessRequestPending","updateRequestItemHandler","requestAction","setRequestAction","updateItemFromList","authorizationRequestId","openModalCriticalPendingAccess","refreshProvider","closeModalCriticalPendingAccess","supportAccessRequestPendingApp","supportAccessRequestPendingSelector","supportAccessRequestHistory","hasSearchError","removeItemFromList","openModalCriticalHistoryAccess","closeModalCriticalHistoryAccess","searchInput","maxLength","simpleSearchArray","supportAccessRequestHistoryApp","supportAccessRequestHistorySelector","supportOwnerGiveAccess","emailAccount","goToPageResetModel","resetModel","keysToDelete","giveAccessSubmit","finalSubmitHandler","noAccessToSupplies","submissionFailed","supportOwnerGiveAccessApp","supportOwnerGiveAccessSelector","supportOwnerAskAccess","submitUserAskAccess","askAccessSubmit","supportOwnerAskAccessApp","supportOwnerAskAccessSelector","supportAuthorizedAskAccess","supportAuthorizedAskAccessApp","supportAuthorizedAskAccessSelector","entraChangeEmail","resendAndClearInput","codeInput","entraChangeEmailApp","entraChangeEmailSelector","entraChangePassword","entraChangePasswordApp","entraChangePasswordSelector","entraChangePhone","goToPage","entraChangePhoneApp","entraChangePhoneSelector","entraDeleteProfile","canDeleteProfile","hasCa","submitFailed","entraDeleteProfileApp","entraDeleteProfileSelector","entraChangeFullName","firstName","lastName","entraChangeFullNameApp","entraChangeFullNameSelector","entraMigrationChangeEmail","isUser","isMigrated","entraMigrationChangeEmailApp","entraMigrationChangeEmailSelector","entraResetCredentials","checkIfSingleProfile","checkUserHandler","entraResetCredentialsApp","entraResetCredentialsSelector","idenCorelLogin","accountSelection","customerType","afm","adt","selfcareRedirectLink","alertMessages","cancelHandler","showHide","showMyDeiCta","storedDataHandler","isMounted","initializeModel","updateModelFromStore","handleAsyncRequest","fetchCurrentStepAndModel","sentCurrentStepAndModel","deleteItemFromModel","goToIntroAndResetModel","nextPage","goToPending","pageMaxWidth","cancelAndResetModel","submitUserAccess","submitUserAccessHandler","userProperty","userPropertyHandler","responseData","handleResponseSteps","identificationCompleted","identificationFailed","identificationFailedErrorMessage","isSelfCare","pendingPpcConfirmation","inactiveContractAccount","identificationRejected","dedicatedError","pendingDocsIndividual","pendingDocsLegal","refKey","fileInput","hideAlert","idenCorelLoginApp","idenCorelLoginSelector"],"sources":["my-account.js"],"mappings":"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","ignoreList":[],"sourcesContent":["// jQuery.noConflict();\n\n\nwindow.api = {\n\n vars: {\n lang: 'el',\n\n isIE: false,\n isEdge: false,\n isIE6To11: false,\n is: \"desktop\",\n windW: 0,\n windH: 0,\n windOldW: 0,\n windOldH: 0,\n\n wresizetimer: 100,\n resizetimeout: 0,\n timerout: 0,\n\n IframeAPIReady: false,\n\n youtubeSelectors: [],\n youtube_addedScriptToHead: false,\n\n googleMapReady: false,\n recaptchaReady: false,\n allowCaptcha: true,\n\n grecaptchaIds: [],\n\n scr: {\n phone: 0,\n tablet: 768,\n\t\t\tdesktop: 1025,\n desktop_medium: 1440\n\t\t},\n\n datepicker: {\n dateFormat: \"dd/mm/yy\"\n },\n\n selectors: {\n body: \"body\",\n header: \".header\",\n footer: \".footer\",\n },\n\n slick: {\n edgeFriction: 0,\n speed: 300,\n prevArrow: '',\n nextArrow: ''\n },\n\n zoomLevel: 100\n\n },\n\n detectors: {},\n\n fn: {},\n\n components: {},\n\n forms: {},\n\n resizeCommon: {},\n\n modules: {},\n\n cookies: {},\n\n accessibilities: {}\n\n};\n(function () {\n function doMobileIntegration(obj) {\n if (typeof AndroidDEIMOB != \"undefined\") {\n\t\t\tAndroidDEIMOB.postMessage(JSON.stringify(obj))\n\t\t} else if (typeof webkit != \"undefined\" && typeof webkit.messageHandlers != \"undefined\" && typeof webkit.messageHandlers.callbackHandler != \"undefined\") {\n\t\t\twebkit.messageHandlers.callbackHandler.postMessage(obj)\n\t\t}\n }\n\n window.MobileApp = {\n setNavTitle: function (title) {\n var obj = {\n action: 1, \n content: {\n title: title\n }\n }\n doMobileIntegration(obj)\n },\n navigate: function (screen) {\n var obj = {\n action: 2, \n content: {\n screen: screen\n }\n }\n doMobileIntegration(obj)\n },\n logout: function () {\n var obj = {\n action: 3, \n content: {}\n }\n doMobileIntegration(obj)\n },\n setTokens: function (userToken, refreshToken) {\n var obj = {\n action: 4, \n content: {\n userToken: userToken,\n refreshToken: refreshToken\n }\n }\n doMobileIntegration(obj)\n },\n myEnergyLoginMenu: function() { // 3. MyLogin from Menu\n var obj = {\n action: 5,\n content: {}\n }\n doMobileIntegration(obj)\n },\n myEnergyLoginSupply: function() { // 3. MyLogin from Supply\n var obj = {\n action: 6,\n content: {}\n }\n doMobileIntegration(obj)\n },\n myEnergyLoginActivation: function() { // 3. MyLogin no coach activated\n var obj = {\n action: 7,\n content: {}\n }\n doMobileIntegration(obj)\n },\n viewSupplyHome: function() { // 4. Supply number from Dashboard\n var obj = {\n action: 8,\n content: {}\n }\n doMobileIntegration(obj)\n },\n viewSupplyMenu: function() { // 5. Supply number from Menu\n var obj = {\n action: 9,\n content: {}\n }\n doMobileIntegration(obj)\n },\n succNetMetering: function() { // 6. success Net Metering\n var obj = {\n action: 10,\n content: {}\n }\n doMobileIntegration(obj)\n },\n goToLoginPage: function() {\n var obj = {\n action: 13,\n content: {}\n }\n doMobileIntegration(obj)\n },\n goToDashboard: function(userToken, refreshToken) {\n var obj = {\n action: 14,\n content: {\n userToken: userToken,\n refreshToken: refreshToken\n }\n }\n doMobileIntegration(obj)\n }\n }\n})();\n\n(function () {\n window.billTagging = {\n activateDigitalBill: function () { \n if (typeof ga === \"function\") {\n ga(\"send\", \"event\", \"Mydei-Digitalbill\", \"Digitalbill\", \"Activated\");\n }\n \n if(typeof gtag === \"function\"){\n gtag('event', 'Digitalbill');\n } \n },\n // deactivateDigitalBill: function () {\n // if (typeof ga === \"function\") {\n // ga(\"send\", \"event\", \"Mydei-Digitalbill\", \"Digitalbill\", \"Deactivated\");\n // }\n // },\n activateDigitalBillTrack: function () {\n if (typeof fbq === \"function\") {\n fbq(\"trackCustom\", \"Mydei-Digitalbill\");\n }\n },\n // deactivateDigitalBillTrack: function () {\n // if (typeof fbq === \"function\") {\n // fbq(\"trackCustom\", \"Mydei-Digitalbill-deactivate\");\n // }\n // },\n\n activateMonthlyPay: function () { \n if (typeof ga === \"function\") {\n ga(\"send\", \"event\", \"Mydei-monthlypay\", \"Monthlypay\", \"Activated\");\n }\n\n if(typeof gtag === \"function\"){\n gtag('event', 'Monthlypay');\n }\n \n },\n // deactivateMonthlyPay: function () {\n // if (typeof ga === \"function\") {\n // ga(\"send\", \"event\", \"Mydei-monthlypay\", \"Monthlypay\", \"Deactivated\");\n // }\n // },\n activateMonthlyPayTrack: function () { \n if (typeof fbq === \"function\") {\n fbq(\"trackCustom\", \"Mydei-monthlypay\");\n }\n },\n // deactivateMonthlyPayTrack: function () {\n // if (typeof fbq === \"function\") {\n // fbq(\"trackCustom\", \"Mydei-monthlypay-deactivate\");\n // }\n // },\n\n activatePayOrder: function () {\n if (typeof ga === \"function\") {\n ga(\"send\", \"event\", \"Mydei-payorder\", \"Payorder\", \"Activated\");\n }\n \n if(typeof gtag === \"function\"){\n gtag('event', 'Payorder');\n }\n },\n // deactivatePayOrder: function () {\n // if (typeof ga === \"function\") {\n // ga(\"send\", \"event\", \"Mydei-payorder\", \"Payorder\", \"Deactivated\");\n // }\n // },\n activatePayOrderTrack: function () {\n if (typeof fbq === \"function\") {\n fbq(\"trackCustom\", \"Mydei-payorder\");\n } \n },\n // deactivatePayOrderTrack: function () {\n // if (typeof fbq === \"function\") {\n // fbq(\"trackCustom\", \"Mydei-payorder-deactivate\");\n // }\n // },\n };\n})();\n\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t():\"function\"==typeof define&&define.amd?define(t):t()}(0,function(){\"use strict\";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}function t(e){return new this(function(t,n){function o(e,n){if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var f=n.then;if(\"function\"==typeof f)return void f.call(n,function(t){o(e,t)},function(n){r[e]={status:\"rejected\",reason:n},0==--i&&t(r)})}r[e]={status:\"fulfilled\",value:n},0==--i&&t(r)}if(!e||\"undefined\"==typeof e.length)return n(new TypeError(typeof e+\" \"+e+\" is not iterable(cannot read property Symbol(Symbol.iterator))\"));var r=Array.prototype.slice.call(e);if(0===r.length)return t([]);for(var i=r.length,f=0;r.length>f;f++)o(f,r[f])})}function n(e){return!(!e||\"undefined\"==typeof e.length)}function o(){}function r(e){if(!(this instanceof r))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],l(e,this)}function i(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var o;try{o=n(e._value)}catch(r){return void u(t.promise,r)}f(t.promise,o)}else(1===e._state?f:u)(t.promise,e._value)})):e._deferreds.push(t)}function f(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof r)return e._state=3,e._value=t,void c(e);if(\"function\"==typeof n)return void l(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,c(e)}catch(o){u(e,o)}}function u(e,t){e._state=2,e._value=t,c(e)}function c(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;n>t;t++)i(e,e._deferreds[t]);e._deferreds=null}function l(e,t){var n=!1;try{e(function(e){n||(n=!0,f(t,e))},function(e){n||(n=!0,u(t,e))})}catch(o){if(n)return;n=!0,u(t,o)}}var a=setTimeout;r.prototype[\"catch\"]=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var n=new this.constructor(o);return i(this,new function(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}(e,t,n)),n},r.prototype[\"finally\"]=e,r.all=function(e){return new r(function(t,o){function r(e,n){try{if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var u=n.then;if(\"function\"==typeof u)return void u.call(n,function(t){r(e,t)},o)}i[e]=n,0==--f&&t(i)}catch(c){o(c)}}if(!n(e))return o(new TypeError(\"Promise.all accepts an array\"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},r.allSettled=t,r.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===r?e:new r(function(t){t(e)})},r.reject=function(e){return new r(function(t,n){n(e)})},r.race=function(e){return new r(function(t,o){if(!n(e))return o(new TypeError(\"Promise.race accepts an array\"));for(var i=0,f=e.length;f>i;i++)r.resolve(e[i]).then(t,o)})},r._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){a(e,0)},r._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var s=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw Error(\"unable to locate global object\")}();\"function\"!=typeof s.Promise?s.Promise=r:s.Promise.prototype[\"finally\"]?s.Promise.allSettled||(s.Promise.allSettled=t):s.Promise.prototype[\"finally\"]=e});\n\n/// \n\n(function ($) {\n $.widget(\"nsp.headerDevices\", {\n _create: function () {\n this.wrap = this.element;\n\n this.burger = $('.e-burger', this.wrap)\n this.html = $('html')\n this.body = $('body')\n this.menu = $('.header-devices__menu', this.wrap)\n\n this._events()\n },\n\n _events(){\n const self = this\n\n this.burger.on('click', function(){\n //$(this).closest.toggleClass('is-open')\n self._toggleMenu()\n })\n\n },\n\n _toggleMenu(){\n\n if(!this.burger.hasClass('is-open')){\n this.burger.addClass('is-open')\n this.html.addClass('noscroll-devices')\n this.body.addClass('noscroll-devices')\n this.menu.show()\n setTimeout(()=>{\n this.menu.addClass('opened')\n\n setTimeout(()=>{\n this.menu.addClass('appear')\n },100)\n },100)\n } else {\n this.burger.removeClass('is-open')\n this.html.removeClass('noscroll-devices')\n this.body.removeClass('noscroll-devices')\n this.menu.hide().removeClass('opened').removeClass('appear')\n }\n\n }\n\n\n });\n})(jQuery);\n\n/// \n\n(function ($) {\n $.widget(\"nsp.leftMenu\", {\n _create: function () {\n this.wrap = this.element;\n\n this.checkScreen() \n jQuery(document).on(\"window-resized\", ()=> {\n this.checkScreen()\n })\n },\n\n checkScreen: function () {\n if (api.vars.windH > 650) {\n this.sticky();\n } else {\n this.unsticky();\n }\n },\n\n unsticky: function () {\n if (this.wrap.hasClass(\"is_stuck\")) { \n this.wrap.trigger(\"sticky_kit:detach\");\n }\n this.wrap.addClass(\"left-menu-nav--no-sticky\")\n },\n \n sticky: function () {\n this.wrap.removeClass(\"left-menu-nav--no-sticky\")\n if (!this.wrap.hasClass(\"is_stuck\")) { \n this.wrap.stick_in_parent();\n }\n }\n\n });\n})(jQuery);\n/// \n\n(function ($) {\n $.widget(\"nsp.stickyProductBar\", {\n _create: function () {\n this.wrap = this.element;\n\n this.stickyBar();\n\n $(window).on(\"scroll\", (_) => {\n this.stickyBar();\n });\n },\n\n stickyBar() {\n const box = $(\".s-layout-main__main__ins\");\n const boxHeight =\n box.outerHeight() + box.offset().top - window.innerHeight;\n\n // console.log(\n // \"boxHeight\",\n // jQuery(window).scrollTop(),\n // box.outerHeight(),\n // box.offset().top,\n // boxHeight\n // );\n\n if ($(window).scrollTop() < boxHeight) {\n this.wrap.addClass(\"sticky\");\n } else {\n this.wrap.removeClass(\"sticky\");\n }\n },\n });\n})(jQuery);\n\n/// \n\n(function ($) {\n $.widget(\"nsp.energyCarousel\", {\n options: {\n \n },\n\n _create: function () {\n this.wrap = this.element;\n \n this._initSlick(); \n },\n\n _initSlick(){\n this.carousel = this.wrap.find(\".s-energy-otherTools__carousel\");\n\n this.carousel.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n appendArrows:this.wrap.find('.carousel_arrows'),\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n slidesToShow: 1, \n slidesToScroll:1 \n });\n },\n\n \n \n });\n})(jQuery);\n\n/// \n\n(function ($) {\n $.widget(\"nsp.energyToolBox\", {\n options: {\n \n },\n\n _create: function () {\n this.wrap = this.element;\n \n this._callMobileAppFunc(); \n },\n\n _callMobileAppFunc(){\n var btns = this.wrap.find('.s-energy-tools__cta') \n\n btns.click(function(){ \n window.MobileApp.myEnergyLoginMenu()\n }) \n },\n \n \n });\n})(jQuery);\n\n/// \n\n(function ($) {\n $.widget(\"nsp.articleCards\", {\n \n _create: function () {\n this.wrap = this.element;\n \n //this._createDotContainer();\n this._createArrowContainer()\n \n this._initSlick();\n //this._setOpacity();\n },\n\n _initSlick(){ \n\n console.log(this.wrap.parents().find('.carousel_arrows'), parseInt(this.wrap.attr('data-scrollItems')))\n\n\n this.wrap.slick({\n lazyLoad: 'progressive',\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n appendArrows:this.wrap.parent().find('.carousel_arrows'),\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow, \n rows: 0,\n slidesToShow:1,\n slidesToScroll: parseInt(this.wrap.attr('data-scrollItems')),\n variableWidth:false,\n responsive: [\n {\n breakpoint: api.vars.scr.tablet ,\n settings: {\n variableWidth: true, \n },\n }\n ],\n }); \n \n this.wrap.on('beforeChange', (slick, currentSlide, nextSlide) => {\n this.wrap.find('[data-src]').lazy();\n });\n\n }, \n \n _createArrowContainer() {\n $('
').insertAfter(this.wrap);\n },\n \n });\n})(jQuery);\n\n// \n\n(function ($) {\n $.widget(\"nsp.slideToggle\", {\n\n _create: function () {\n this.wrap = this.element;\n\n this._checkFun();\n $(document).on(\"window-resized\", () => {\n this._checkFun();\n });\n },\n\n _checkFun() {\n if (api.vars.is === 'phone') {\n this._slideToggleFun();\n } else {\n this._resetFun();\n }\n },\n\n _resetFun() {\n var sectionContent = this.wrap.find('.s-details__main');\n var sectionHeader = this.wrap.find('.s-details__header');\n var sectionHeaderIcon = this.wrap.find('.icon-chevron-up');\n\n if (!sectionContent.hasClass('hide')) {\n return;\n }\n\n sectionHeaderIcon.css('display', 'none');\n sectionHeader.next().removeClass('hide');\n sectionHeader.next().removeAttr('style');\n sectionHeader.off('click');\n },\n\n _slideToggleFun() {\n var sectionHeader = this.wrap.find('.s-details__header');\n var sectionContent = this.wrap.find('.s-details__main');\n var sectionHeaderIcon = this.wrap.find('.icon-chevron-up');\n\n if (sectionContent.hasClass('hide')) {\n return;\n }\n\n sectionHeaderIcon.css('display', 'block');\n sectionHeader.addClass('s-details__header--mobile-toggle');\n sectionContent.addClass('hide');\n sectionHeaderIcon.addClass('s-details__icon-rotate-180');\n\n sectionHeader.on('click', function () {\n $(sectionContent).toggle('slow');\n $(sectionHeaderIcon).toggleClass('s-details__icon-rotate-180');\n });\n },\n\n });\n})(jQuery);\n\n// \n\n(function ($) {\n $.widget(\"nsp.fullwidthGallery\", {\n options: {\n \n },\n\n _create: function () {\n this.wrap = this.element; \n this._initSlick();\n },\n\n _initSlick(){\n this.carousel = this.wrap.find(\".s-fullwidth-gallery__carousel\");\n\n this.carousel.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n appendArrows:this.wrap.find('.carousel_arrows'),\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n slidesToShow: 1, \n slidesToScroll: parseInt(this.carousel.attr('data-scrollItems')) \n }); \n\n },\n \n \n });\n})(jQuery);\n\n// \n\n(function ($) {\n $.widget(\"nsp.setRibbonEqHeight\", {\n\n _create: function () {\n this.wrap = this.element;\n\n this._getElementHeightFun();\n\n jQuery(document).on(\"window-resized\", () => {\n this._getElementHeightFun();\n });\n },\n\n _getElementHeightFun() {\n\n const selector = $(this.wrap).find('.b-econtract-product__head');\n $(this.wrap).find('.b-product-card').each((indx, item) => {\n const head = $('.b-product-card__head', $(item));\n const ehead = $('.b-econtract-product__head', $(item));\n if (!ehead.length) {\n selector.push(head[0]);\n }\n });\n\n selector.each((indx, item) => $(item).css('min-height', 0));\n api.fn.equalMinHeights(selector);\n },\n });\n})(jQuery);\n/// \n\n(function ($) {\n $.widget(\"nsp.simpleMasonry\", {\n opts: {\n \n },\n\n _create: function () {\n this.wrap = this.element;\n\n this._splitBoxes(); \n \n },\n _splitBoxes: function(){ \n var leftCol = this.wrap.find('.s-product-feats__left').eq(0);\n var rightCol = this.wrap.find('.s-product-feats__right').last();\n var oddItems = this.wrap.find('.b-prod-benef-box').clone().odd();\n var evenItems = this.wrap.find('.b-prod-benef-box').clone().even();\n \n oddItems.appendTo(rightCol)\n evenItems.appendTo(leftCol)\n } \n });\n})(jQuery);\n\n/// \n\n(function ($) {\n $.widget(\"nsp.tableCharge\", {\n options: {},\n\n _create: function () {\n this.wrap = this.element;\n\n this._eqRowTop();\n\n $(document).on(\"window-loaded\", ()=>{\n this._reMinHeight()\n });\n\n $(document).on(\"window-resized\", ()=>{\n this._reMinHeight()\n });\n\n if (\n this.wrap.hasClass(\"b-table-charge--day\") ||\n this.wrap.hasClass(\"b-table-charge--night\")\n ) {\n if(api.vars.windW > api.vars.scr.tablet){ \n this._addClicks();\n } \n }\n },\n\n _eqRowTop() {\n var row = this.wrap\n .parents(\".b-table-charge-row\")\n .not(\".js-row-init\");\n if (row.length) {\n if (!row.hasClass(\"js-row-init\")) {\n row.addClass(\"js-row-init\");\n api.fn.equalMinHeights($(\".b-table-charge__top\", row));\n }\n }\n },\n\n _reMinHeight(){\n var row = this.wrap.parents(\".b-table-charge-row\")\n if (row.length) {\n $(\".b-table-charge__top\", row).removeAttr(\"style\")\n api.fn.equalMinHeights($(\".b-table-charge__top\", row));\n }\n\n },\n\n _addClicks() {\n\n this.wrap.on(\"mouseover\", (e) => {\n var parent = this.wrap.parents(\".b-table-charge-bg\");\n var cls = this.wrap.hasClass(\"b-table-charge--day\")\n ? \"js-is-day\"\n : \"js-is-night\";\n \n\n if (parent.length) {\n if(cls===\"js-is-night\"){\n parent.removeClass(\"js-is-day\") \n } else if(cls===\"js-is-day\"){\n parent.removeClass(\"js-is-night\") \n }\n \n parent.addClass(cls);\n }\n });\n\n this.wrap.on(\"mouseout\", (e) => {\n var parent = this.wrap.parents(\".b-table-charge-bg\");\n\n parent.removeClass(\"js-is-day\").removeClass(\"js-is-night\") \n })\n },\n });\n})(jQuery);\n\n/// \n\n(function ($) {\n $.widget(\"nsp.accordionSection\", {\n options: {\n header: 'h3',\n active: 0,\n useOptsActive:false // if true will skip active by data\n },\n\n _create: function () {\n this.acc = this.element;\n\n var activeItm\n\n if(this.options.useOptsActive){\n activeItm = this.options.active;\n }else{\n activeItm = api.fn.getData(this.acc, \"active\", 0);\n }\n\n var qsHeaderId = api.fn.getParameterByName(\"q\");\n var header = null;\n\n if (qsHeaderId) {\n header = this.acc.find(\"#\" + qsHeaderId);\n\n if (header.length) {\n activeItm = Math.floor(header.index() / 2);\n }\n }\n\n var animate = api.fn.getData(this.acc, 'animate', 200);\n\n this.acc.accordion({\n navigation: true,\n animate: animate,\n header: this.options.header,\n heightStyle: \"content\",\n collapsible: true,\n active: activeItm,\n create: function (event, ui) {\n if (activeItm >= 0 && qsHeaderId && header.length) {\n api.fn.moveWindowToObj(header)\n }\n },\n beforeActivate: function (event, ui) {\n },\n activate: function (event, ui) {\n\n setTimeout(()=>{\n jQuery(document.body).trigger(\"accordion-activated\");\n }, animate)\n }\n });\n\n\n },\n });\n})(jQuery);\n\n(function ($) {\n\n api.accessibilities = {\n \n ARIA_toggleContent: function (obj, bool) {\n\t\t\t$(obj).attr({'aria-expanded':bool});\n\t\t},\n\n\t\tAria_controls: function (obj, controlObjId) {\n\t\t\t$(obj).attr('aria-controls', controlObjId);\n\t\t},\n\n\t\taria_slick_arrows: function(wrap){\n\t\t\twrap.find('.slick-prev').attr('aria-label', \"previous slide\")\n\t\t\twrap.find('.slick-next').attr('aria-label', \"next slide\")\n\t\t}\n\n }\n\n})(jQuery);\n/// \n/// \n\n(function ($) {\n api.fn = {\n getWindDims: function () {\n var dims = api.fn.viewport();\n api.vars.windW = dims.width;\n api.vars.windH = dims.height;\n\n api.vars.is = api.fn.is();\n\n //console.log(\"resp:\", resp)\n\n // console.log(\"is\", api.vars.is)\n },\n\n is: function () {\n if (api.vars.windW < api.vars.scr.tablet) {\n return \"phone\";\n } else if (api.vars.windW < api.vars.scr.desktop) {\n return \"tablet\";\n }\n return \"desktop\";\n },\n\n checkTouchDevice: function () {\n api.isTouch = $(\"html\").hasClass(\"touchevents\");\n },\n\n checkFontsIconsLoad: function () {\n if (document.documentElement.className.indexOf(\"font-icons-loaded\") > -1) {\n return;\n }\n var fontIcons = new FontFaceObserver(\"icons\", {\n weight: 400\n });\n\n fontIcons.load(null, 15000).then(function () {\n document.documentElement.className += \" font-icons-loaded\";\n }, function () {\n document.documentElement.className += \" font-icons-loaded\";\n });\n },\n\n disableBodyScroll: function () {\n var scrollTop = $(window).scrollTop();\n\n api.winTopMemory = scrollTop;\n\n $(\"body\").css({\n position: \"fixed\",\n width: \"100%\",\n top: -scrollTop,\n });\n $(\"html, body\").addClass(\"scrollDisabled\");\n },\n\n enableBodyScroll: function () {\n $(\"body\").css({\n position: \"static\",\n top: \"auto\",\n });\n $(window).scrollTop(api.winTopMemory);\n $(\"html, body\").removeClass(\"scrollDisabled\");\n },\n\n onEnterTriggerBtn: function () {\n $(\".triggerEnter\").on(\"keydown\", function (e) {\n var inpt = $(this);\n var code = e.keyCode ? e.keyCode : e.which;\n if (code === 13) {\n var btnId = inpt.data(\"triggerbtn\");\n $(\"#\" + btnId).trigger(\"click\");\n return false;\n }\n });\n },\n\n setAnchors: function () {\n $(\".anchorLnk\").on(\"click\", function (e) {\n e.preventDefault();\n\n var lnk = $(this);\n var target = $(lnk.attr(\"href\"));\n if (target.length) api.fn.moveWindowToObj(target);\n });\n },\n\n toFocus: function (slc) {\n $(\".toFocus\").on(\"touchstart\", function () {\n $(this).focus();\n });\n },\n\n toFocusThis: function (obj) {\n $(obj).on(\"touchstart\", function () {\n $(this).focus();\n });\n },\n\n focusfix: function (selector, className) {\n $(selector).focus(function () {\n $(this).addClass(className);\n });\n // Removes class when focus is lost\n $(selector).blur(function () {\n $(this).removeClass(className);\n });\n },\n\n viewport: function () {\n var e = window,\n a = \"inner\";\n if (!(\"innerWidth\" in window)) {\n a = \"client\";\n e = document.documentElement || document.body;\n }\n return { width: e[a + \"Width\"], height: e[a + \"Height\"] };\n },\n\n onEscTriggerReset: function () {\n function resetTxt(btn) {\n var txtId = btn.data(\"textreset\");\n $(\"#\" + txtId).val(\"\");\n btn.hide();\n }\n\n var txtId = $(\".resetTxtBtn\").data(\"textreset\");\n if ($(\"#\" + txtId).val() === \"\") {\n //$('.resetTxtBtn').hide();\n }\n\n $(\".resetTxtBtn\").on(\"click\", function (e) {\n e.preventDefault();\n var btn = $(this);\n resetTxt(btn);\n return false;\n });\n\n $(\".resetEsc\").on(\"keydown\", function (e) {\n var inpt = $(this);\n var btnId = inpt.data(\"triggerreset\");\n var btn = $(\"#\" + btnId);\n btn.show();\n var code = e.keyCode ? e.keyCode : e.which;\n if (code === 27) {\n btn.trigger(\"click\");\n //resetTxt(btn);\n return false;\n }\n });\n },\n\n /*-- PRELOADER REPLACING BUTTONS : START --*/\n iniPostPreloader: function (selector, ToPrepend) {\n function getBtnSize(btn) {\n return {\n w: btn.outerWidth(),\n h: btn.outerHeight(),\n };\n }\n\n var btn = $(selector);\n var btnDisplay = btn.css(\"display\");\n var btnSizes = getBtnSize(btn);\n var btnWrap = btn.parent();\n btn.hide();\n var prel = $(\n '
'\n );\n\n if (ToPrepend) {\n prel.insertBefore(btn);\n } else {\n prel.insertAfter(btn);\n }\n\n $(window).on(\"resize.preloader\", function () {\n var btn = prel.prev();\n btn.show();\n btnSizes = getBtnSize(btn);\n prel.css({\n width: btnSizes.w,\n height: btnSizes.h,\n });\n btn.hide();\n });\n },\n\n removePostPreloader: function (selector) {\n var btn = $(selector);\n var btnWrap = btn.parent();\n $(window).off(\"resize.preloader\");\n btnWrap.find(\".btnPreloader\").remove();\n btn.show();\n },\n /*-- PRELOADER REPLACING BUTTONS : END --*/\n\n getData: function (obj, datastr, defVal) {\n var str = \"\";\n if (typeof defVal !== \"undefined\") str = defVal;\n if (typeof obj.data(datastr) !== \"undefined\")\n str = obj.data(datastr);\n return str;\n },\n\n shuffle: function (o) {\n for (\n var j, x, i = o.length;\n i;\n j = parseInt(Math.random() * i),\n x = o[--i],\n o[i] = o[j],\n o[j] = x\n );\n return o;\n },\n\n /*-- Print Specified Element by Id --*/\n printPage: function (id, pageTitle) {\n pageTitle = pageTitle ? pageTitle : \"\";\n var html =\n \"\" +\n pageTitle +\n \"\";\n html += document.getElementById(id).innerHTML;\n html += \"\";\n var printWin = window.open(\n \"\",\n \"\",\n \"left=0,top=0,width=1,height=1,toolbar=0,scrollbars=0,status=0\"\n );\n printWin.document.write(html);\n printWin.document.close();\n printWin.focus();\n printWin.print();\n printWin.close();\n },\n\n getHeaderHeight: function () {\n return $(\".header\").outerHeight();\n },\n\n moveWindowToObj: function (obj, offset, callback) {\n var windowscrollTop = $(window).scrollTop();\n offset = !offset ? 0 : offset;\n var objToPos = 0;\n if (obj.is(\":hidden\")) {\n obj.show();\n objToPos = $(obj).offset();\n obj.hide();\n } else {\n objToPos = $(obj).offset();\n }\n\n var headerH = api.fn.getHeaderHeight();\n headerH = headerH ? headerH : 0\n\n $(\"html,body\").clearQueue();\n $(\"html,body\").stop();\n $(\"html,body\")\n .stop()\n .animate(\n { scrollTop: objToPos.top + offset - headerH },\n 400,\n function () {\n if (callback) {\n if (typeof callback === \"function\") {\n callback();\n }\n }\n }\n );\n },\n\n moveWindowToScrollPoint: function (scrlPoint, callback) {\n $(\"html,body\").clearQueue();\n $(\"html,body\").stop();\n $(\"html,body\")\n .stop()\n .animate({ scrollTop: scrlPoint.top }, 400, function () {\n if (callback) {\n if (typeof callback === \"function\") {\n callback();\n }\n }\n });\n },\n\n getQueryByName: function (name) {\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\"),\n results = regex.exec(location.search);\n return results === null\n ? \"\"\n : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n },\n\n mediaQueryCallbacks: function (\n devicesToWatch /* ['desktop', 'tablet', 'phone'] */,\n matchCallback,\n unmatchCallback\n ) {\n var mediaMatch = false;\n\n var mediaIs = api.vars.is; //.split(\" \");\n\n for (var i = 0; i < devicesToWatch.length; i++) {\n if (mediaIs.indexOf(devicesToWatch[i]) >= 0) {\n mediaMatch = true;\n }\n }\n\n if (mediaMatch) {\n if (matchCallback && typeof matchCallback() === \"function\") {\n matchCallback();\n }\n } else {\n if (\n unmatchCallback &&\n typeof unmatchCallback() === \"function\"\n ) {\n unmatchCallback();\n }\n }\n\n return mediaMatch;\n },\n\n checkForYouTube: function () {\n api.vars.youtubeSelectors = $(\".for_youtube\");\n\n if (api.vars.youtubeSelectors.length) {\n api.fn.addYouTubeApi();\n }\n },\n\n addYouTubeApi: function () {\n if (!api.fn.youtube_addedScriptToHead) {\n api.fn.youtube_addedScriptToHead = true;\n\n var tag = document.createElement(\"script\");\n tag.src = \"https://www.youtube.com/iframe_api\";\n var firstScriptTag = document.getElementsByTagName(\"script\")[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n },\n\n recaptchaLoaded: function () {\n api.vars.recaptchaReady = true;\n $(document).trigger(\"recaptcha-loaded\");\n },\n\n getScrollPosition: function () {\n var doc = document.documentElement;\n var pos = {};\n pos.left =\n (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n pos.top =\n (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n return pos;\n },\n\n getDate: function (element) {\n var date;\n try {\n date = $.datepicker.parseDate(\n api.vars.datepicker.dateFormat,\n element.value\n );\n } catch (error) {\n date = null;\n }\n return date;\n },\n\n youtube_embed: function () {\n function createEmbed(parent) {\n var youtube_embed = $(\".youtube_embed\", parent);\n\n var vId = api.fn.getData(youtube_embed, \"vid\", false);\n\n if (vId) {\n $(\n ''\n ).appendTo(youtube_embed);\n }\n }\n\n $(\".icon-video-play\").on(\"click\", function () {\n var lnk = $(this);\n createEmbed(lnk.parents(\".b-video\"));\n\n lnk.parent().hide();\n });\n //$('').appendTo(videoHolder);\n },\n\n highlight: function (selector, txt) {\n var innerHTML = selector.text();\n var index = innerHTML.indexOf(txt);\n if (index >= 0) {\n innerHTML =\n innerHTML.substring(0, index) +\n \"\" +\n innerHTML.substring(index, index + txt.length) +\n \"\" +\n innerHTML.substring(index + txt.length);\n selector.html(innerHTML);\n }\n },\n\n smsLnk: function () {\n link = new SMSLink.link();\n link.replaceAll();\n },\n\n pad: function (n) {\n if (n < 10) return \"0\" + n;\n return n;\n },\n\n preloadBodyMarkup: function () {\n return '
';\n },\n\n preloaderMarkup: function () {\n return '
';\n },\n\n preloadBody: function (state, callback, instant) {\n if (state) {\n if ($(\".preloaderBody\").length) {\n api.fn._toggleBodyPreloader(state, callback, instant);\n } else {\n $(api.fn.preloadBodyMarkup()).appendTo(\"body\");\n api.fn._toggleBodyPreloader(state, callback, instant);\n }\n } else {\n if ($(\".preloaderBody\").length) {\n api.fn._toggleBodyPreloader(state, callback, instant);\n }\n }\n },\n\n _toggleBodyPreloader: function (state, callBack, instant) {\n var timer = instant ? 0 : 300;\n\n $(\".preloaderBody__txt\").html(\"\");\n\n if (state) {\n $(\".preloaderBody\").fadeIn(timer, function () {\n $(\"body\").addClass(\"loading\");\n if (typeof callBack == \"function\") callBack();\n });\n } else {\n $(\".preloaderBody\").fadeOut(timer, function () {\n $(\"body\").removeClass(\"loading\");\n if (typeof callBack == \"function\") callBack();\n });\n }\n },\n\n addTextToBodyPreloader(txt) {\n var prBody = $(\".preloaderBody\");\n if (prBody.length) {\n if ($(\".preloaderBody__txt\").length) {\n $(\".preloaderBody__txt\").text(txt);\n } else {\n $(\n `${txt}`\n ).appendTo(prBody);\n }\n }\n },\n\n modalLnk: function () {\n $(\"body\").on(\"click.modalLnk\", \".modalLnk\", function (e) {\n e.preventDefault();\n\n\n api.fn.modalLnkTrigger($(this));\n\n\n });\n },\n\n modalLnkTrigger: function (lnk) {\n const modalId = $(lnk.attr(\"href\"));\n const resetForm = api.fn.getData(lnk, \"reset-form\", false);\n $(\".modal.show\").modal(\"hide\");\n $(modalId).modal(\"show\");\n \n $(document).trigger(\"modal-triggered\", {\n lnk, \n modalId: lnk.attr(\"href\").substr(1)\n });\n\n\n if (resetForm) {\n api.forms.resetFields($(modalId));\n }\n\n if ($(modalId).find(\".g-recaptcha\").length) {\n setTimeout(function () {\n api.forms.resetCaptcha();\n api.forms.iniCaptcha($(modalId));\n }, 500);\n }\n },\n\n modal: function (modalId, toggle) {\n var modal = $(\"#\" + modalId);\n if (modal && modal.length) {\n if (toggle === true) {\n $(\".modal.show\").modal(\"hide\");\n modal.modal(\"show\");\n } else {\n modal.modal(\"hide\");\n }\n }\n },\n\n sortByButton: function () {\n $(\"body\").on(\"click.sortByButton\", \".btn--sortby\", function (e) {\n e.preventDefault();\n\n var btn = $(this);\n if (btn.hasClass(\"asc\")) {\n btn.removeClass(\"asc\").addClass(\"desc\");\n } else if (btn.hasClass(\"desc\")) {\n btn.removeClass(\"desc\");\n } else {\n btn.addClass(\"asc\");\n }\n\n var attr = api.fn.getData(btn, \"rel\", false);\n\n if (attr) {\n $(attr).removeClass(\"asc\").removeClass(\"desc\");\n }\n });\n },\n\n backToTop: function () {\n $(\".footer .e-back-top\").on(\"click\", function (e) {\n e.preventDefault();\n api.fn.moveWindowToObj($(\".header\"));\n });\n },\n\n convertLnkAddToEdit: function (nodeId) {\n $('.e-add-note[data-node-id=\"' + nodeId + '\"]')\n .removeClass(\"e-add-note\")\n .addClass(\"e-add-note-filled\");\n },\n\n convertLnkEditToAdd: function (nodeId) {\n $('.e-add-note-filled[data-node-id=\"' + nodeId + '\"]')\n .removeClass(\"e-add-note-filled\")\n .addClass(\"e-add-note\");\n },\n\n enableBodyScroll: function () {\n $(\"body\").css({\n position: \"static\",\n top: \"auto\",\n });\n $(window).scrollTop(api.winTopMemory);\n $(\"html, body\").removeClass(\"scrollDisabled\");\n },\n\n hasCookie: function (key) {\n if (\n !key ||\n /^(?:expires|max\\-age|path|domain|secure)$/i.test(key)\n ) {\n return false;\n }\n return new RegExp(\n \"(?:^|;\\\\s*)\" +\n encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") +\n \"\\\\s*\\\\=\"\n ).test(document.cookie);\n },\n\n iniWaypointElements: function () {\n var offset = $(window).height() - 300;\n\n $(\n \".s-img-banner__text__ins, .s-img-banner__img, .s-logos-list, .s-extra-info\"\n ).each(function () {\n var elem = $(this)[0];\n var inview = new Waypoint({\n element: elem,\n handler: function (direction) {\n $(this.element).addClass(\"onScreen\");\n },\n offset: offset,\n });\n });\n },\n\n removeInlineImgSizes: function (img) {\n if (img.length) {\n img.css({\n width: \"auto\",\n height: \"auto\",\n });\n }\n },\n\n googleMapsReady: function () {\n api.vars.googleMapReady = true;\n $(document).trigger(\"google-map-ready\");\n },\n\n preloadContentLikeVue: function (parentObj, callback) {\n $(parentObj).find(\".preloader-abs\").addClass(\"loaded\");\n $(parentObj).find(\".preloader-rel\").addClass(\"loaded\");\n\n setTimeout(function () {\n $(parentObj).find(\".preloader-abs\").addClass(\"entered\");\n $(parentObj).find(\".preloader-rel\").addClass(\"entered\");\n if (typeof callBack == \"function\") callBack();\n }, 500);\n },\n\n preloadedItem: function (obj, callback) {\n $(obj).addClass(\"loaded\");\n\n setTimeout(function () {\n $(obj).addClass(\"entered\");\n if (typeof callBack == \"function\") callBack();\n }, 500);\n },\n\n cleanBreak: function (str) {\n return str\n .replace(/
/g, \"
\")\n .replace(/
/g, \"
\")\n .replace(//g, \"
\");\n },\n\n getParameterByName: function (name, url) {\n if (!url) url = window.location.href;\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return \"\";\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n },\n\n setUrlParameter: function (key, value) {\n window.history.replaceState(\n \"\",\n \"\",\n api.fn.setUrlParameter_fn(key, value)\n );\n },\n\n setUrlParameter_fn: function (key, value) {\n var url = window.location.href,\n baseUrl = url.split(\"?\")[0],\n urlQueryString =\n url.split(\"?\").length > 1 ? \"?\" + url.split(\"?\")[1] : \"\",\n newParam = key + \"=\" + value,\n params = \"?\" + newParam;\n\n // If the \"search\" string exists, then build params from it\n if (urlQueryString) {\n var updateRegex = new RegExp(\"([?&])\" + key + \"[^&]*\");\n var removeRegex = new RegExp(\"([?&])\" + key + \"=[^&;]+[&;]?\");\n\n if (\n typeof value === \"undefined\" ||\n value === null ||\n value === \"\"\n ) {\n // Remove param if value is empty\n params = urlQueryString.replace(removeRegex, \"$1\");\n params = params.replace(/[&;]$/, \"\");\n } else if (urlQueryString.match(updateRegex) !== null) {\n // If param exists already, update it\n params = urlQueryString.replace(\n updateRegex,\n \"$1\" + newParam\n );\n } else {\n // Otherwise, add it to end of query string\n params =\n urlQueryString == \"\"\n ? \"?\" + newParam\n : urlQueryString + \"&\" + newParam;\n }\n }\n\n // no parameter was set so we don't need the question mark\n params = params === \"?\" ? \"\" : params;\n\n return baseUrl + params;\n },\n\n updateQueryStringParameter: function (uri, key, value) {\n // remove the hash part before operating on the uri\n var i = uri.indexOf(\"#\");\n var hash = i === -1 ? \"\" : uri.substr(i);\n uri = i === -1 ? uri : uri.substr(0, i);\n\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\n var separator = uri.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\n\n if (!value) {\n // remove key-value pair if value is empty\n uri = uri.replace(\n new RegExp(\"([?&]?)\" + key + \"=[^&]*\", \"i\"),\n \"\"\n );\n if (uri.slice(-1) === \"?\") {\n uri = uri.slice(0, -1);\n }\n // replace first occurrence of & by ? if no ? is present\n if (uri.indexOf(\"?\") === -1) uri = uri.replace(/&/, \"?\");\n } else if (uri.match(re)) {\n uri = uri.replace(re, \"$1\" + key + \"=\" + value + \"$2\");\n } else {\n uri = uri + separator + key + \"=\" + value;\n }\n return uri + hash;\n },\n\n removeURLParameter: function (key) {\n window.history.replaceState(\n \"\",\n \"\",\n api.fn.removeURLParameter_fn(key)\n );\n },\n\n removeURLParameter_fn: function (parameter) {\n var url = window.location.href;\n //prefer to use l.search if you have a location/link object\n var urlparts = url.split(\"?\");\n if (urlparts.length >= 2) {\n var prefix = encodeURIComponent(parameter) + \"=\";\n var pars = urlparts[1].split(/[&;]/g);\n\n //reverse iteration as may be destructive\n for (var i = pars.length; i-- > 0; ) {\n //idiom for string.startsWith\n if (pars[i].lastIndexOf(prefix, 0) !== -1) {\n pars.splice(i, 1);\n }\n }\n\n return (\n urlparts[0] + (pars.length > 0 ? \"?\" + pars.join(\"&\") : \"\")\n );\n }\n return url;\n },\n\n uniqueValues: function (theArray) {\n function contains(newArrr, v) {\n for (var i = 0; i < newArrr.length; i++) {\n if (newArrr[i] === v) return true;\n }\n return false;\n }\n\n var arr = [];\n for (var i = 0; i < theArray.length; i++) {\n if (!contains(arr, theArray[i])) {\n arr.push(theArray[i]);\n }\n }\n return arr.concat([]);\n },\n\n zoomLevel: function () {\n api.vars.zoomLevel = Math.round(window.devicePixelRatio * 100);\n\n if (api.vars.zoomLevel < 100) {\n $(\"html\").addClass(\"zoomout\");\n } else {\n $(\"html\").removeClass(\"zoomout\");\n }\n },\n\n iniShareLinks: function () {\n var shareUrl = window.location.href;\n\n jQuery(\"body\").on(\"click\", \".sharemenu .slnk_fb\", function (e) {\n e.preventDefault();\n\n var lnk = jQuery(this);\n if (typeof lnk.data(\"shareurl\") == \"string\")\n shareUrl = lnk.data(\"shareurl\");\n shareUrl = shareUrl\n .replace(/(ifr=)[^\\&]+/, \"\")\n .replace(\"?&\", \"?\");\n\n window.open(\n \"https://www.facebook.com/sharer/sharer.php?u=\" +\n encodeURIComponent(shareUrl),\n \"Facebook\",\n \"width=626,height=436\"\n );\n });\n\n jQuery(\"body\").on(\"click\", \".sharemenu .slnk_twit\", function (e) {\n e.preventDefault();\n\n var lnk = jQuery(this);\n if (typeof lnk.data(\"shareurl\") == \"string\")\n shareUrl = lnk.data(\"shareurl\");\n shareUrl = shareUrl\n .replace(/(ifr=)[^\\&]+/, \"\")\n .replace(\"?&\", \"?\");\n window.open(\n \"http://twitter.com/home?status=\" +\n encodeURIComponent(shareUrl),\n \"twitter-share-dialog\",\n \"width=650,height=450\"\n );\n });\n\n jQuery(\"body\").on(\"click\", \".sharemenu .slnk_lin\", function (e) {\n e.preventDefault();\n\n var lnk = jQuery(this);\n if (typeof lnk.data(\"shareurl\") == \"string\")\n shareUrl = lnk.data(\"shareurl\");\n shareUrl = shareUrl\n .replace(/(ifr=)[^\\&]+/, \"\")\n .replace(\"?&\", \"?\");\n window.open(\n \"https://www.linkedin.com/cws/share?url=\" +\n encodeURIComponent(shareUrl),\n \"linkedin-share-dialog\",\n \"width=650,height=450\"\n );\n });\n\n jQuery(\"body\").on(\"click\", \"a.slnk_print\", function (e) {\n e.preventDefault();\n\n print();\n });\n },\n\n suffle: function (o) {\n for (\n var j, x, i = o.length;\n i;\n j = parseInt(Math.random() * i),\n x = o[--i],\n o[i] = o[j],\n o[j] = x\n );\n return o;\n },\n\n sanitizeString(str) {\n //https://stackoverflow.com/questions/23187013/is-there-a-better-way-to-sanitize-input-with-javascript\n str = str.replace(/[^a-z0-9áéíóúñü \\.,_-]/gim, \"\");\n return str.trim();\n },\n\n groupedArray(items, n) {\n return new Array(Math.ceil(items.length / n))\n .fill()\n .map((_) => items.splice(0, n));\n },\n\n hexToRgb(hex) {\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n hex = hex.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null;\n },\n\n validEmail(email) {\n var re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(email);\n },\n\n acceptNumber(phone) {\n var x = phone\n .replace(/\\D/g, \"\")\n .match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\n return !x[2]\n ? x[1]\n : \"(\" + x[1] + \") \" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\n },\n toFix (value) {\n return value.toFixed(2)\n },\n addCommasFilter (nStr, septhou, sepdec) {\n nStr += '';\n x = nStr.split('.');\n x1 = x[0];\n x2 = x.length > 1 ? sepdec + x[1] : '';\n var rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, '$1' + septhou + '$2');\n }\n return x1 + x2;\n },\n getNumberFromCustomDec: function (val) {\n \tif(!isNaN(val))\n return val\n\n \tvar comma = val.indexOf(',');\n\n \tif (comma) {\n \t\tvar intPart = val.split(',')[0];\n \t\tvar decPart = val.split(',')[1];\n \t}\n \tvar outp = \"\";\n \toutp += intPart;\n \tif (comma > 0) outp += \".\" + decPart;\n \treturn outp;\n },\n removeDotsOrCommas: function(str, comma){\n var hasComma = str.indexOf(comma);\n return str.replace(/[.,]+/g, \"\");\n },\n\n equalMinHeights: function (elements, minHeight) {\n tallest = minHeight ? minHeight : 0;\n elements.each(function () {\n if ($(this).outerHeight() > tallest) {\n tallest = $(this).outerHeight();\n }\n });\n\n return elements.each(function () {\n $(this).css(\"min-height\", tallest);\n });\n },\n\n redirectToJobPage: function () {\n $(\".s-hr__select .form-select\").on(\"change\", function () {\n var url = $(this).val();\n if (url) {\n // require a URL\n window.location = url; // redirect\n }\n return false;\n });\n },\n\n updateFavicon: function () {\n matcher = window.matchMedia(\"(prefers-color-scheme: dark)\");\n lightSchemeIcon = document.querySelector(\"link#light-scheme-icon\");\n darkSchemeIcon = document.querySelector(\"link#dark-scheme-icon\");\n\n if (matcher.matches) {\n lightSchemeIcon.remove();\n document.head.append(darkSchemeIcon);\n } else {\n document.head.append(lightSchemeIcon);\n darkSchemeIcon.remove();\n }\n },\n\n clone(obj) {\n // from just-clone https://github.com/angus-c/just#just-clone\n\n function getRegExpFlags(regExp) {\n if (typeof regExp.source.flags == \"string\") {\n return regExp.source.flags;\n } else {\n var flags = [];\n regExp.global && flags.push(\"g\");\n regExp.ignoreCase && flags.push(\"i\");\n regExp.multiline && flags.push(\"m\");\n regExp.sticky && flags.push(\"y\");\n regExp.unicode && flags.push(\"u\");\n return flags.join(\"\");\n }\n }\n if (typeof obj == \"function\") {\n return obj;\n }\n var result = Array.isArray(obj) ? [] : {};\n for (var key in obj) {\n // include prototype properties\n var value = obj[key];\n var type = {}.toString.call(value).slice(8, -1);\n if (type == \"Array\" || type == \"Object\") {\n result[key] = api.fn.clone(value);\n } else if (type == \"Date\") {\n result[key] = new Date(value.getTime());\n } else if (type == \"RegExp\") {\n result[key] = RegExp(value.source, getRegExpFlags(value));\n } else {\n result[key] = value;\n }\n }\n return result;\n },\n\n passiveListeners() {\n\n jQuery.event.special.touchstart = {\n setup: function( _, ns, handle ) {\n this.addEventListener(\"touchstart\", handle, { passive: !ns.includes(\"noPreventDefault\") });\n }\n };\n jQuery.event.special.touchmove = {\n setup: function( _, ns, handle ) {\n this.addEventListener(\"touchmove\", handle, { passive: !ns.includes(\"noPreventDefault\") });\n }\n };\n jQuery.event.special.wheel = {\n setup: function( _, ns, handle ){\n this.addEventListener(\"wheel\", handle, { passive: true });\n }\n };\n jQuery.event.special.mousewheel = {\n setup: function( _, ns, handle ){\n this.addEventListener(\"mousewheel\", handle, { passive: true });\n }\n };\n\n },\n\n downloadFile (url) {\n var a = document.createElement('A');\n a.href = url;\n a.download = url.substr(url.lastIndexOf('/') + 1);\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n },\n\n guid(){\n return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>\n (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n );\n },\n\n getSvgSource(){\n var svgs = $('[data-svg-src]:not(.loaded)');\n\n svgs.each((index, svg) => {\n var svg = $(svg)\n var url = svg.data('svg-src');\n if (svg.html().trim() === \"\" && url) {\n try {\n axios\n .get(url)\n .then((resp)=>{\n if(resp.status===200){\n svg.addClass('loaded').html(resp.data); \n }\n })\n .catch((errors) => {\n // ignore\n })\n .then(() => {\n })\n } catch (err) {\n //console.warn(err.message)\n }\n }\n })\n },\n \n equalHeights: function (elements, allowOverflow, minHeight, maxHeight) {\n \tvar tallest = (minHeight) ? minHeight : 0;\n\n \telements.each(function () {\n \t\tif (jQuery(this).height() > tallest) {\n \t\t\ttallest = jQuery(this).height();\n \t\t}\n \t});\n\n \tif ((maxHeight) && tallest > maxHeight) tallest = maxHeight;\n\n \treturn elements.each(function () {\n \t\tif (allowOverflow) {\n \t\t\tjQuery(this).height(tallest);\n \t\t} else {\n \t\t\tjQuery(this).height(tallest).css(\"overflow\", \"hidden\");\n \t\t}\n \t});\n },\n\n };\n})(jQuery);\n\n/// \n/// \n\n(function ($) {\n api.forms = {\n inputWithPasswords: function () {\n document.addEventListener(\n \"click\",\n function (e) {\n const btn = $(e.target).closest(\".btn--show-password\");\n\n if (btn.length) {\n btn.toggleClass(\"active\");\n const inptId = btn.attr(\"aria-controls\");\n const inpt = inptId ? $(\"#\" + inptId) : null;\n\n if (inpt && inpt.length) {\n if (btn.hasClass(\"active\")) {\n inpt.attr('type', \"text\")\n } else {\n inpt.attr('type', \"password\")\n }\n }\n }\n },\n true\n );\n },\n preventPaste: function () {\n document.addEventListener(\n \"paste\",\n function (e) {\n const input = $(e.target).closest(\"input.prevent-paste\");\n if (input.length) {\n e.preventDefault();\n }\n },\n true\n );\n } \n };\n})(jQuery);\n\n/// \n/// \n\n\n(function ($) {\n\n\t$.widget(\"nsp.inViewport\", {\n\t\toptions: {\n\t\t\toffset:100,\n\t\t\tcls: \"onScreen\"\n\t\t},\n\t\t_create: function () {\n\t\t\tvar plgn = this;\n\t\t\tvar section = plgn.element;\n\n\t\t\t$(document).on(\"window-loaded\", ()=> {\n\t\t\t\tplgn.isOnScreen();\n\t\t\t})\n\t\t\tplgn.isOnScreen();\n\n\t\t\tplgn.scrolling = false;\n\t\t\tplgn.scrolltimer = 0;\n\t\t\t$(window).on('scroll', function () {\n\t\t\t\tplgn.scrolling = true;\n\t\t\t\tclearTimeout(plgn.scrolltimer);\n\t\t\t\tscrolltimer = setTimeout(function () {\n\t\t\t\t\tplgn.isOnScreen();\n\t\t\t\t}, 300);\n\t\t\t});\n\n\t\t\t$(window).on('resize', function () {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tplgn.isOnScreen();\n\t\t\t\t}, 300);\n\t\t\t});\n\n\t\t},\n\t\tisOnScreen: function () {\n\t\t\tvar plgn = this;\n\t\t\tvar section = plgn.element;\n\n\t\t\tvar win = $(window);\n\n\t\t\tsection.onScreenCls = !section.onScreenCls ? plgn.options.cls : section.onScreenCls;\n\n\n\t\t\tvar viewport = {\n\t\t\t\ttop: win.scrollTop(),\n\t\t\t\tleft: win.scrollLeft()\n\t\t\t};\n\t\t\tviewport.right = viewport.left + win.width();\n\t\t\tviewport.bottom = viewport.top + win.height();\n\n\t\t\tvar bounds = section.offset();\n\t\t\tbounds.right = bounds.left + section.outerWidth();\n\t\t\tbounds.bottom = bounds.top + section.outerHeight();\n\n\t\t\tvar headeroffset = 0;\n\t\t\tif ($('.header__outer').length) {\n\t\t\t\theaderoffset = $('.header__outer').outerHeight();\n\t\t\t}\n\n\t\t\tvar offset = headeroffset + plgn.options.offset;\n\n\n\t\t\tif (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top + offset || viewport.top > bounds.bottom - offset)) {\n\t\t\t\tsection.addClass(section.onScreenCls);\n\t\t\t\tsection.addClass(\"onScreenOnce\");\n\n\t\t\t\tplgn._trigger('onScreen', null, { item: section });\n\n\t\t\t} else {\n\t\t\t\tsection.removeClass(section.onScreenCls);\n\n\t\t\t\tplgn._trigger('offScreen', null, { item: section });\n\t\t\t}\n\n\n\t\t}\n\t});\n\n\n})(jQuery);\n(function ($) {\n $(function () {\n api.fn.addYouTubeApi();\n\n jQuery(document).on(\"youtubeReady\", () => {\n api.vars.IframeAPIReady = true;\n\n });\n\n\t\t\n\n api.fn.passiveListeners();\n\n api.fn.checkTouchDevice();\n\n api.vars.isIE = !!window.MSInputMethodContext && !!document.documentMode;\n\n var lang = $(\"html\").attr(\"lang\");\n if (lang) api.vars.lang = lang;\n\n jQuery.datepicker.setDefaults(jQuery.datepicker.regional[\"\" + api.vars.lang + \"\"]);\n\n //api.components.iniResponsive();\n\n api.fn.toFocus();\n api.fn.getWindDims();\n api.fn.onEnterTriggerBtn();\n api.fn.onEscTriggerReset();\n api.fn.zoomLevel();\n api.fn.iniShareLinks();\n api.fn.modalLnk();\n api.fn.redirectToJobPage();\n api.fn.checkFontsIconsLoad();\n api.fn.getSvgSource();\n //api.fn.updateFavicon()\n\n // forms\n api.forms.inputWithPasswords();\n\t\tapi.forms.preventPaste()\n\n //api.components.responsiveImgs();\n\n // lazy load\n $(\"[data-src]\").lazy();\n\n $(\".header-devices\").headerDevices();\n $(\".s-details__box\").slideToggle();\n $(\".left-menu-nav\").leftMenu();\n $(\".s-product-feats__masonry-widget\").simpleMasonry();\n $(\".b-table-charge\").tableCharge();\n $(\".s-product-bar\").stickyProductBar();\n $('.b-accordion:not(.stand-alone)').accordionSection({\n\t\t\theader: '.b-accordion__head'\n\t\t})\n $('.s-fullwidth-gallery').fullwidthGallery();\n $('.s-carousel-article__carousel').articleCards()\n\n $('.s-energy-otherTools').energyCarousel();\n $('.s-energy-tools__box').energyToolBox();\n // $('.product-cards').setRibbonEqHeight();\n // $('.addon-cards').setRibbonEqHeight();\n \n $('.b-table-charge').tableCharge()\n // $('.addon-cards').setRibbonEqHeight();\n \n // ini rest page script block elements used with docReady\n $.each(jsCallbacks, function (i, val) {\n val($);\n });\n\n $(document).trigger(\"ini-ready\");\n\n // resize\n $(window).on(\"resize\", function () {\n // api.forms.resizeCaptch();\n api.fn.getWindDims();\n //api.components.responsive();\n api.fn.zoomLevel();\n\n $(document).trigger(\"window-resized\");\n });\n\n $(window).on(\"load\", function () {\n $(document).trigger(\"window-loaded\");\n });\n\n if (!api.vars.pagemode_edit) {\n $(\".inViewport\").inViewport();\n } else {\n $(\".inViewport\").removeClass(\"inViewport\");\n }\n });\n})(jQuery);\n\nwindow.onYouTubeIframeAPIReady = function () {\n jQuery(document).trigger(\"youtubeReady\");\n};\n\nconst reloadWindowIfTokenExpired = {\n methods: {\n reloadWindowIfTokenExpired(tokenExpired) {\n // if tokenExpired is true, reload window and also return true, in order to avoid proceeding to next line of code for all calls to this method\n if(!tokenExpired) return false\n if (tokenExpired === true) {\n console.warn('Window reloaded because token has expired!')\n window.location.reload()\n return true\n }\n return false\n },\n },\n}\n\nvar mixins = {\n mixins: [reloadWindowIfTokenExpired],\n data () {\n return {\n loading: true,\n errorMsgs: [],\n globalerror: \"Ενα σφάλμα προέκυψε\"\n }\n },\n methods: {\n getFormAction: function (form) {\n return form.getAttribute(\"action\");\n },\n\n removeDuplicates: function (array) {\n return array.filter((c, index) => {\n return array.indexOf(c) === index;\n });\n },\n\n getData: function (objName) {\n return typeof window[objName] !== \"undefined\"\n ? window[objName]\n : null;\n },\n\n getDataText: function (objName, val) {\n if (typeof window[objName] === \"undefined\") {\n return \"\";\n }\n var entry = window[objName].find((i) => i.value === val);\n\n if (typeof entry === \"undefined\") {\n return \"\";\n }\n\n return entry.text;\n },\n\n makeid: function (length = 10) {\n var result = \"\";\n var characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(\n Math.floor(Math.random() * charactersLength)\n );\n }\n return result;\n },\n\n validateFields: function (names) {\n if (names === \"\") {\n return true;\n }\n\n var validArray = [];\n\n names.split(\",\").forEach((item, index) => {\n validArray.push(jQuery(`*[name =\"${item.trim()}\"]`).valid());\n });\n\n if (validArray.includes(false)) {\n return false;\n }\n\n return true;\n },\n\n getAllFields: function (elemId) {\n var fieldsArray = [];\n var inputs = jQuery(`#${elemId}`).find(\":input\");\n\n inputs.each(function () {\n var name = jQuery(this).attr(\"name\");\n if (name !== \"\" && typeof name !== \"undefined\") {\n fieldsArray.push(name);\n }\n });\n\n return fieldsArray.join();\n },\n\n iniReCaptcha: function (elem) {\n var self = this;\n\n Vue.nextTick(function () {\n self.reCaptcha = jQuery(\".e-g-recaptcha\", elem);\n\n grecaptcha.render(self.reCaptcha.attr(\"id\"), {\n sitekey: self.reCaptcha.data(\"sitekey\"),\n });\n });\n },\n\n scrollToError: function (offsetY = 0) {\n Vue.nextTick(function () {\n jQuery([document.documentElement, document.body]).animate(\n {\n scrollTop: jQuery(\".alert\").offset().top - offsetY,\n },\n 100,\n \"linear\"\n );\n });\n },\n\n scrollToValidation: function (offsetY = 50) {\n Vue.nextTick(function () {\n var barH = jQuery(\".s-booking-bar\").length\n ? jQuery(\".s-booking-bar\").outerHeight()\n : 0;\n\n var elem = jQuery(\".error--text\").first();\n if (!elem.length) {\n return false;\n }\n\n jQuery([document.documentElement, document.body]).animate(\n {\n scrollTop: elem.offset().top - offsetY - barH,\n },\n 100,\n \"linear\"\n );\n });\n },\n\n scrollToTop: function () {\n Vue.nextTick(function () {\n jQuery([document.documentElement, document.body]).animate(\n {\n scrollTop: jQuery(\"html\").offset().top,\n },\n 'slow',\n \"linear\"\n );\n });\n },\n\n scrollToElem: function (elem, offsetY = 0, callback) {\n Vue.nextTick(function () {\n jQuery([document.documentElement, document.body]).animate(\n {\n scrollTop: elem.offset().top - offsetY,\n },\n 'slow',\n \"linear\",\n function () {\n if (callback) {\n if (typeof callback === \"function\") {\n callback();\n }\n }\n }\n );\n });\n },\n\n getIndex: function (index) {\n return index + 1;\n },\n\n hasValue: function (val) {\n return typeof val !== \"undefined\" && val !== null && val !== \"\";\n },\n\n showErrorDialog: function (message) {\n this.errorDialog = true;\n this.errorMsg = this.hasValue(this.dictionary)\n ? this.dictionary.serverErrorMsg\n : \"\";\n\n if (this.hasValue(message)) {\n this.errorMsg = message;\n }\n },\n\n getAjaxResponseMessages: function (messages) {\n let msg = Array.isArray(messages) ? messages[0] : messages;\n\n if (messages.length > 1 && Array.isArray(messages)) {\n let msgList = \"
    \";\n messages.forEach((item) => {\n msgList += `
  • ${item}
  • `;\n });\n msgList += \"
\";\n msg = msgList;\n }\n\n return msg;\n },\n\n getRandomInt: function (max) {\n return Math.floor(Math.random() * Math.floor(max));\n },\n\n getUrlVars: function () {\n var vars = {};\n var parts = window.location.href.replace(\n /[?&]+([^=&]+)=([^&]*)/gi,\n function (m, key, value) {\n vars[key] = value;\n }\n );\n return vars;\n },\n\n getUrlParam: function (parameter, defaultvalue) {\n var urlparameter = defaultvalue;\n if (window.location.href.indexOf(parameter) > -1) {\n urlparameter = this.getUrlVars()[parameter];\n }\n return urlparameter;\n },\n\n getCharPosition: function (string, char, index) {\n return string.split(char, index).join(char).length;\n },\n\n appendUrlParam: function (parameter, value) {\n var url = new URL(window.location.href);\n var search_params = url.searchParams;\n\n if (this.urlParamExists(parameter)) {\n search_params.set(parameter, value);\n } else {\n search_params.append(parameter, value);\n }\n\n url.search = search_params.toString();\n\n var new_url = decodeURIComponent(url.toString());\n\n history.pushState({}, null, new_url);\n },\n\n appendUrlParams: function (parameters, values) {\n var url = new URL(window.location.href);\n var search_params = url.searchParams;\n\n var i;\n for (i = 0; i < parameters.length; i++) {\n if (this.urlParamExists(parameters[i])) {\n search_params.set(parameters[i], values[i]);\n } else {\n search_params.append(parameters[i], values[i]);\n }\n }\n\n url.search = search_params.toString();\n\n var new_url = decodeURIComponent(url.toString());\n\n history.pushState({}, null, new_url);\n },\n\n urlParamExists: function (field) {\n var url = window.location.href;\n if (url.indexOf(\"?\" + field + \"=\") != -1) return true;\n else if (url.indexOf(\"&\" + field + \"=\") != -1) return true;\n return false;\n },\n\n coordinatesAreValid: function (long, lat) {\n if (!this.hasValue(long)) {\n return false;\n }\n\n if (!this.hasValue(lat)) {\n return false;\n }\n\n if (lat === 0) {\n return false;\n }\n\n if (long === 0) {\n return false;\n }\n\n return true;\n },\n\n trimChar: function (string, charToRemove) {\n while (string.charAt(0) == charToRemove) {\n string = string.substring(1);\n }\n\n while (string.charAt(string.length - 1) == charToRemove) {\n string = string.substring(0, string.length - 1);\n }\n\n return string;\n },\n\n getCharacteristicTooltip: function (item) {\n if (this.hasValue(item.tooltip)) {\n return `${item.text}: ${item.tooltip}`;\n }\n\n return item.text;\n },\n\n getInfoWindowContentString: function (item) {\n var url = this.hasValue(item.url) ? item.url : \"javascript:void(0)\";\n var className = this.hasValue(item.url) ? \"\" : \"void\";\n var target = this.hasValue(item.url) ? \"_blank\" : \"\";\n\n return `
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

${item.title}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

${item.address}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
`;\n },\n\n ajax(handler, obj){\n try {\n axios\n .post(handler, obj)\n .then((response) => {\n var { tokenExpired, hasError, errorMessages, data, allItems } = response.data;\n\n\n if (tokenExpired) {\n if (window.MobileApp && window.MobileApp.logout) {\n window.MobileApp.logout()\n }\n }\n\n if(this.reloadWindowIfTokenExpired(tokenExpired)) return\n\n if (hasError) { \n this.handleAjaxError(errorMessages);\n return false;\n } \n \n if (response.headers && response.headers[\"x-rut\"] && response.headers[\"x-rrt\"]) {\n console.log('received new token pair')\n if (window.MobileApp && window.MobileApp.setTokens) {\n window.MobileApp.setTokens(response.headers[\"x-rut\"], response.headers[\"x-rrt\"])\n }\n }\n \n this.handleAjaxSuccess(data, response.data, allItems);\n })\n .catch((errors) => {\n this.handleAjaxError([this.globalerror]);\n })\n .then(() => {\n this.loading = false;\n });\n } catch (err) {\n this.loading = false;\n this.handleAjaxError(JSON.parse(err));\n }\n },\n \n handleAjaxError(messages) {\n this.loading = false;\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n },\n\n changeAllNodes: function(currentNode, callback){\n for (var k in currentNode) {\n if (typeof currentNode[k] == \"object\" && currentNode[k] !== null)\n this.changeAllNodes(currentNode[k], callback);\n else {\n if(typeof callback === \"function\"){\n callback(currentNode)\n }\n }\n }\n }, \n findNode: function(id, currentNode, nodeName, callback) {\n var i, currentChild, result;\n\n if (id == currentNode.id) {\n return currentNode;\n } else {\n if(currentNode && currentNode[nodeName]){\n for (i = 0; i < currentNode[nodeName].length; i += 1) {\n currentChild = currentNode[nodeName][i];\n result = this.findNode(id, currentChild, callback);\n if (result) {\n if(!callback){\n return result;\n } else {\n if(typeof callback === \"function\"){\n callback(currentChild, result)\n return result;\n }\n }\n }\n }\n }\n return false;\n }\n },\n findValues(obj, key){\n return this.findValuesHelper(obj, key, []);\n },\n findValuesHelper: function(obj, key, list) {\n if (!obj) return list;\n if (obj instanceof Array) {\n for (var i in obj) {\n list = list.concat(this.findValuesHelper(obj[i], key, []));\n }\n return list;\n }\n if (obj[key]) list.push(obj);\n \n if ((typeof obj == \"object\") && (obj !== null) ){\n var children = Object.keys(obj);\n if (children.length > 0){\n for (i = 0; i < children.length; i++ ){\n list = list.concat(this.findValuesHelper(obj[children[i]], key, []));\n }\n }\n }\n return list;\n }\n\n },\n};\n\nvar mixin_viewport = {\n data () {\n return {\n screen: '' // phone, tablet, desktop\n }\n },\n mounted(){\n\n this.defineScreen()\n\n jQuery(document).on(\"ini-ready\", ()=>{\n this.defineScreen()\n })\n\n jQuery(document).on(\"window-resized\", ()=>{\n this.defineScreen()\n });\n\n },\n methods:{\n defineScreen(){\n this.screen = api.vars.is\n }\n }\n}\nconst windowWidth = {\n data () {\n return {\n windW: '' // \n }\n },\n mounted(){\n\n this.getWidth()\n\n jQuery(document).on(\"ini-ready\", ()=>{\n this.getWidth()\n })\n\n jQuery(document).on(\"window-resized\", ()=>{\n this.getWidth()\n });\n\n },\n methods:{\n getWidth(){\n this.windW = api.vars.windW\n }\n }\n}\nconst alertDismissible = {\n props: {\n dismissible:{\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n isClosed: false,\n };\n },\n methods: {\n close() {\n this.isClosed = true;\n },\n },\n computed: {\n showAlertClass() {\n return this.isClosed ? \"hide-important\" : \"show\";\n },\n dismissibleClass() {\n return this.dismissible ? \"alert-dismissible\" : \"\";\n },\n }\n};\n\nconst wizardModel = {\n data() {\n return {\n greReady: false,\n captchaSiteKey: \"\",\n captchaAction: \"\",\n recaptchaResponse: \"\",\n criticalError: false,\n submitHandler: \"\",\n model: {},\n loading: true,\n finalMessage: \"\",\n sessionId: \"\",\n globalerror: \"Ενα σφάλμα προέκυψε\",\n errorFields: []\n };\n },\n mounted() {\n // jQuery(document).on(\"ini-ready\", ()=>{\n // this.loading = api.vars.allowCaptcha\n // })\n\n this.loading = api.vars.allowCaptcha;\n\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n methods: {\n critical(criticalErrorCode) {\n this.criticalError = true;\n this.$refs.modalCritical.show(criticalErrorCode);\n },\n cloneModel() {\n this.model = api.fn.clone(newData);\n },\n updateModel(newData) { \n this.model = Object.assign(this.model, newData); //api.fn.clone(newData)\n },\n updateModelAndContinue(newData) {\n this.updateModel(newData);\n //this.model = api.fn.clone(newData)\n this.$nextTick(() => {\n this.nextStep();\n });\n },\n returnFilesAsObject() {\n // return an object from this.model with only file_* keys\n const filteredObj = Object.keys(this.model)\n .filter((key) => key.startsWith(\"file_\") && this.model[key])\n .reduce((obj, key) => {\n obj[key] = (this.$refs[key].files.length && this.$refs[key].files[0]) || null;\n return obj;\n }, {});\n return filteredObj;\n }, \n getFilteredModel(){\n // Return an object from this.model that has removed all null or undefined values\n return Object.fromEntries(Object.entries(this.model).filter(([_, v]) => v !== null && v !== undefined))\n },\n removeFilesFromModel(){\n // Remove entries from this.model that keys start with file_*\n this.model = Object.keys(this.model)\n .filter(key => !key.startsWith('file_'))\n .reduce((acc, key) => {\n acc[key] = this.model[key];\n return acc;\n }, {});\n },\n validate(ref) {\n this.$refs[ref].validate();\n },\n recaptchaResponseUpdate(newToken) {\n this.recaptchaResponse = newToken;\n },\n scrollBackToForm(e) {\n e.preventDefault();\n api.fn.moveWindowToObj(jQuery(\".s-two-sides__right\"));\n },\n scrollToInfo(e) {\n e.preventDefault();\n api.fn.moveWindowToObj(jQuery(\".s-two-sides__bottom\"));\n },\n handleError(errors) {\n this.errorMsgs = [].concat(errors);\n this.$nextTick(() => {\n if (jQuery(this.$el).find(\".alert-danger\").length)\n api.fn.moveWindowToObj(jQuery(this.$el).find(\".alert-danger\"));\n });\n },\n addErrorFields(errorFields){\n if(!errorFields || errorFields.length === 0) return\n this.errorFields = [ ...this.errorFields, ...errorFields ]\n },\n clearErrorFields(){\n this.errorFields = []\n }\n },\n};\n\n// !important: README: this mixin should be used only in apps, and not in components, because it sets the api.vars.allowCaptcha which is a global property\nconst allowCaptcha = {\n data() {\n return {\n captchaEnabled: true,\n }\n },\n mounted(){\n api.vars.allowCaptcha = this.captchaEnabled\n }\n}\nconst sendCaptcha = {\n data() {\n return {\n allowCaptcha: api.vars.allowCaptcha,\n };\n },\n methods: {\n async callCaptcha() {\n this.allowCaptcha = api.vars.allowCaptcha\n //console.log(\"allowCaptcha:\",this.allowCaptcha)\n if (this.allowCaptcha) {\n if (this.greReady) {\n try {\n return await grecaptcha.execute(this.captchaSiteKey, { action: this.captchaAction });\n } catch (e) {\n console.warn(\"invalid captcha\");\n }\n }\n\n return false;\n } else {\n return true\n }\n },\n updateToken(token) {\n this.$emit(\"tokenUpdated\", token);\n }\n },\n};\n\nconst makeFormData = {\n methods: {\n createFilesPayload(files) {\n const obj = {}\n\n Array.from(files).forEach((file, i) => {\n if (file) obj['file_' + i] = file\n })\n\n obj['fileLength'] = Object.keys(obj).length\n\n return obj\n },\n makeFormData(data) {\n const entries = Object.entries(api.fn.clone(data))\n const dataToSend = new FormData()\n entries.forEach((val) => {\n dataToSend.append(val[0], val[1])\n })\n\n return dataToSend\n },\n },\n}\n\nconst wizardEditable = {\n props: {\n // enable disable fields\n checkForDisable:{ // if true then check the editable prop\n type: Boolean,\n default: false\n },\n editable: {\n type: Boolean,\n default: false\n }, \n btnEditStr: {\n type: String,\n default: 'Edit'\n },\n btnCancelStr: {\n type: String,\n default: 'Cancel'\n },\n btnSaveStr: {\n type: String,\n default: 'Save'\n }\n },\n data () {\n\t\treturn {\n disabled: true,\n isSaved: false\n }\n },\n mounted(){\n\n this.$watch(() => this.editable, (newobj, old) => {\n this.disabled = !this.editable\n }, {\n immediate: true\n })\n\n },\n methods:{\n // enable disable fields\n enableFields(){\n this.disabled = false\n this.isSaved = false\n this.$emit(\"enabled\")\n },\n disableFields(){\n this.disabled = true\n },\n save(){\n if(this.validate()){\n this.saved()\n this.isSaved = true\n }\n },\n saved(){\n this.saving = false\n this.disableFields()\n this.updateModel()\n },\n cancel(){\n this.disableFields()\n this.$emit(\"canceled\")\n this.$nextTick(()=>{\n this.$emit(\"validate\")\n })\n }\n }\n}\nconst wizardHelpers = {\n methods:{\n // stringifyPrice(str){\n // str = api.fn.getNumberFromCustomDec(str)\n // try{\n // if(!isNaN(str))\n // str = api.fn.toFix(parseFloat(str))\n // } catch(err){\n // console.log(\"error\",str, err)\n // }\n\n // str = api.fn.addCommasFilter(str, this.comma, this.period)\n // var val = api.fn.getNumberFromCustomDec(str)\n // val = val ? val : 0\n\n // var res = api.fn.addCommasFilter(str, this.comma, this.period)\n // return res\n // }\n stringifyPrice(value){\n return value.toLocaleString(this.lang, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n })\n }\n }\n}\nvar transliteration = {\n data() {\n return {\n accentuations: { Ά: \"A\", Έ: \"Ε\", Ή: \"Η\", Ί: \"Ι\", Ό: \"Ο\", Ύ: \"Υ\", Ώ: \"Ω\" },\n transliterations: {\n A: \"Α\",\n B: \"Β\",\n C: \"\",\n D: \"\",\n E: \"E\",\n F: \"\",\n G: \"\",\n H: \"Η\",\n I: \"Ι\",\n J: \"\",\n K: \"Κ\",\n L: \"\",\n M: \"Μ\",\n N: \"Ν\",\n O: \"Ο\",\n P: \"Ρ\",\n Q: \"\",\n R: \"\",\n S: \"\",\n T: \"Τ\",\n U: \"\",\n V: \"\",\n W: \"\",\n X: \"Χ\",\n Y: \"Υ\",\n Z: \"Ζ\",\n },\n };\n },\n methods: {\n transliterate(e, prop, transToGreek) {\n var str = this.toUpper(e.target.value);\n str = this.accents(str);\n if(transToGreek)\n str = this.translit(str)\n\n this.model[prop] = str;\n },\n toUpper(str) {\n return str.toUpperCase();\n },\n accents(str) {\n return str.replace(/Ά|Έ|Ή|Ί|Ό|Ύ|Ώ/g, (chr) => this.accentuations[chr]);\n },\n translit(str) {\n return str.replace(/A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z/g, (chr) => this.transliterations[chr]);\n },\n },\n};\n\nvar wizardSteps = {\n mixins: [mixins, mixin_viewport],\n data() {\n return {\n currentStep: 0, // zero based\n allSteps: 1, // integer based\n stepModel: [{ active: true, locked: false }],\n subSteps: [], //{ \"step\": 1, \"length\": 1, \"current\": 1 }\n subStepId: \"\" // used internaly in order to track change and use it for moving window to top\n };\n },\n beforeMount() {},\n mounted() {\n this.updateStepModel();\n this.updateSubSteps();\n },\n methods: {\n updateStepModel() {\n this.keyCounter++;\n for (var i = 0; i <= this.allSteps - 1; i++) {\n this.stepModel[i] = {\n active: i == this.currentStep,\n locked: i < this.currentStep,\n };\n }\n this.scrollTo();\n },\n\n scrollTo() {\n this.$nextTick(() => {\n if (this.screen === \"phone\") {\n setTimeout(() => {\n \n if(jQuery(this.$el).find(\".step-wizard__item.active\").length) {\n this.scrollToElem(\n jQuery(this.$el).find(\".step-wizard__item.active\")\n );\n }\n \n }, 900);\n }\n });\n },\n\n updateSubSteps() {\n this.keyCounter++;\n for (var i = 0; i <= this.allSteps - 1; i++) {\n for (var z = 0; z <= this.subSteps.length - 1; z++) {\n if (this.subSteps[z].step && i == this.subSteps[z].step) {\n this.subSteps[z].current = 1;\n }\n }\n }\n },\n\n nextStep() {\n if (this.currentStep < this.allSteps) {\n this.currentStep++;\n this.updateStepModel();\n }\n },\n prevStep() {\n if (this.currentStep > 0) {\n this.currentStep--;\n this.updateStepModel();\n }\n },\n closeAllSteps() {\n for (var i = 0; i <= this.allSteps - 1; i++) {\n this.stepModel[i].active = false;\n }\n },\n goToStep(num) {\n if (num >= 1 || num < this.allSteps) {\n this.currentStep = num;\n this.updateStepModel();\n }\n },\n goTo(step, substep){\n this.goToStep(step)\n this.goToSupStep(step+1, substep)\n },\n isActiveStep(num) {\n return num == this.currentStep;\n },\n stepsActiveClass(num) {\n if (num == this.currentStep) {\n return \"active\";\n } else {\n if (num < this.currentStep) {\n return \"completed\";\n }\n }\n return \"disabled\";\n },\n\n // substeps\n indexOfSubStep(step) {\n return this.subSteps.findIndex((el) => {\n return el.step === step;\n });\n },\n getCurrentSubStepNumber(step){\n if(this.subSteps[step] && this.subSteps[step].current){\n return this.subSteps[step].current\n }\n return 1\n },\n getCurrentSubStep(step, current) {\n var index = this.indexOfSubStep(step);\n if (index >= 0) {\n return this.subSteps[index].current === current;\n }\n return false;\n },\n prevSupStep(step) {\n var index = this.indexOfSubStep(step);\n if (index >= 0) {\n if (this.subSteps[index].current > 1) {\n this.subSteps[index].current--;\n this.updateSubStepId(this.subSteps[index].current)\n } \n }\n },\n nextSupStep(step) {\n var index = this.indexOfSubStep(step);\n if (index >= 0) {\n if (this.subSteps[index].length > this.subSteps[index].current){\n this.subSteps[index].current++; \n this.updateSubStepId(this.subSteps[index].current)\n }\n }\n },\n goToSupStep(step, to) {\n var index = this.indexOfSubStep(step);\n if (index >= 0) {\n if (this.subSteps[index].length >= to){\n this.subSteps[index].current = to; \n this.updateSubStepId(this.subSteps[index].current)\n }\n }\n },\n updateSubStepId(substep){\n this.subStepId = `${this.currentStep}-${substep}`\n }\n },\n};\n\nconst enableDisableButtons = {\n data() {\n return {\n btnsDisabled: false,\n }\n },\n methods: {\n disableButtons() {\n console.log(\"disableButtons\")\n this.btnsDisabled = true\n },\n enableButtons() {\n console.log(\"enableButtons\")\n\n this.btnsDisabled = false\n },\n },\n computed: {\n disableButtonsClass() {\n return this.btnsDisabled ? 'disable' : ''\n },\n },\n}\n\nconst checkIfLockedFieldMixin = {\n methods: {\n checkIfLockedField(fieldName, obj = this.model) {\n if(!fieldName) return false;\n\n if(obj?.setFields){\n var fieldObj = obj.setFields.find(function(field) {\n return field.field === fieldName;\n });\n return fieldObj ? fieldObj.disabled : false;\n }\n\n return false\n\n }\n }\n}\n\nconst chartsCommon = {\n props: {\n dataset: {\n default() {\n return [];\n },\n },\n titles: {\n default() {\n return [];\n },\n },\n labels: {\n default() {\n return [];\n },\n },\n colors: {\n default() {\n return [];\n },\n },\n title: { default: \"\" },\n tooltipLabels: {\n default() {\n return [];\n },\n },\n },\n data() {\n return {\n chartId: \"chart-id-\" + this.makeid(),\n chartData: [],\n maxValue: 0\n };\n },\n methods:{\n formaliseData(){\n let datasets = [];\n\n this.dataset.forEach((data, index) => {\n const currentMax = Math.max(...data);\n this.maxValue = this.maxValue < currentMax ? currentMax : this.maxValue;\n\n datasets.push({\n data: data,\n backgroundColor: this.colors[index],\n labels: this.labels[index],\n tooltipLabels: this.tooltipLabels,\n hoverBackgroundColor: this.colors[index]\n });\n });\n\n this.chartData = {\n labels: this.labels,\n titles: this.titles,\n datasets: datasets,\n };\n },\n tooltipSettings(){\n return {\n labelTextColor: \"#000F1E\",\n titleColor: \"#000F1E\",\n backgroundColor: \"#fff\",\n borderWidth: 1,\n borderColor: \"#E8E8E8\",\n displayColors: false,\n callbacks: {\n title: (context) => {\n if (context.length) {\n return this.titles[context[0].dataIndex];\n }\n },\n label: (context) => {\n return this.labels[context.dataIndex];\n },\n labelTextColor: function () {\n return \"#000F1E\";\n },\n labelTextColor: function (context) {\n return \"#000F1E\";\n }\n }\n }\n }\n }\n}\nvar unslick = {\n data() {\n return {\n $slick: null\n };\n },\n beforeUnmount() {\n this.unslick()\n },\n methods: {\n unslick() {\n console.log(this.$slick)\n if (this.$slick && this.$slick.hasClass(\"slick-initialized\")) {\n this.$slick.off(\"afterchange\");\n this.$slick.off(\"beforeChange\");\n this.$slick.off(\"breakpoint\");\n this.$slick.off(\"destroy\");\n this.$slick.off(\"edge\");\n this.$slick.off(\"init\");\n this.$slick.off(\"reInit\");\n this.$slick.off(\"setPosition\");\n this.$slick.off(\"swipe\");\n this.$slick.off(\"lazyLoaded\");\n this.$slick.off(\"lazyLoadError\");\n this.$slick.removeClass(\"slick-initialized\");\n this.$slick.slick(\"unslick\");\n }\n }\n }\n}\nvar bsTooltip = {\n data(){\n return{\n tooltipList: []\n }\n },\n methods: {\n initTooltip(el) {\n var tooltipTriggerList = [].slice.call(el.querySelectorAll('[data-bs-toggle=\"tooltip\"]'));\n this.tooltipList = tooltipTriggerList.map((tooltipTriggerEl) => {\n\n var tooltip = new bootstrap.Tooltip(tooltipTriggerEl);\n tooltipTriggerEl.addEventListener(\"shown.bs.tooltip\", (el) => {\n this.setPlacement();\n });\n\n tooltipTriggerEl.addEventListener(\"hidden.bs.tooltip\", () => {\n // tooltip.dispose(); \n });\n\n tooltipTriggerEl.addEventListener(\"mouseleave\", () => {\n tooltip.hide();\n });\n \n return tooltip;\n });\n \n },\n \n setPlacement() {\n const tooltip = jQuery(\".tooltip.show.bs-tooltip-top\");\n if (tooltip.length) {\n const scrlTop = jQuery(window).scrollTop() + jQuery(\".header-devices__body\").outerHeight();\n const dif = tooltip.offset().top - scrlTop;\n\n if (dif < 0) {\n window.scrollTo(0, jQuery(window).scrollTop() + dif);\n }\n }\n },\n\n enableTooltips(){\n this.tooltipList.forEach((tooltip) => {\n tooltip.enable(); \n });\n },\n\n hideTooltips(){\n this.tooltipList.forEach((tooltip) => {\n tooltip.hide(); \n });\n },\n\n removeTooltips() {\n this.tooltipList.forEach((tooltip) => {\n if(!tooltip) return\n\n try{\n tooltip.dispose(); \n } catch (er){\n console.log(er)\n }\n \n });\n },\n\n removeTooltip(el){\n if(el == null || !el || !el.length) return\n try{\n const tooltip = bootstrap.Tooltip.getInstance(el)\n\n if(!tooltip) return\n \n tooltip.dispose(); \n \n } catch (er){\n console.log(er)\n }\n }\n },\n \n mounted() {\n this.initTooltip(document); \n },\n beforeUnmount() { \n this.removeTooltips(); \n },\n // unmounted() { \n // this.removeTooltips(); \n // },\n};\n\n\n\nconst cpx_mixins = {\n methods:{\n nextStep(){ cpx.commit('nextStep'); this.scrollTop() },\n prevStep(){ cpx.commit('prevStep'); this.scrollTop() },\n goToStep(num){ cpx.commit('goToStep', num); this.scrollTop() }\n },\n computed: {\n currentStep() { return cpx.state.currentStep},\n steps() { return cpx.state.steps},\n }\n}\nconst formScrolling = {\n methods:{\n scrollToError(form){\n const firstInvalid = form.find('.input-validation-error').first()\n\n if(firstInvalid.length)\n api.fn.moveWindowToObj(firstInvalid, -50) \n },\n scrollToTop(){\n api.fn.moveWindowToObj(jQuery('.s-layout-main__main-title').first())\n }\n }\n}\nconst supplies = {\n data() {\n return {\n supplies: window.supplies,\n model: {\n selectedSupplies: [],\n }\n };\n },\n methods: {\n updateSupplies(supplies) {\n this.model.selectedSupplies = [...supplies];\n },\n resetSupplies() {\n this.model.selectedSupplies = [];\n },\n checkAllSupplies(){\n this.model.selectedSupplies = this.supplies.map(item => item.id)\n },\n toggleAllSupplies(){\n if(this.model.selectedSupplies && this.model.selectedSupplies.length === this.supplies.length){\n this.resetSupplies()\n } else {\n this.checkAllSupplies()\n }\n }\n },\n computed:{\n selectedSuppliesString(){\n if(this.model.selectedSupplies){\n return this.model.selectedSupplies.join(',')\n }\n return ''\n }\n }\n};\n\nconst multiFormSubmit = {\n mixins: [reloadWindowIfTokenExpired],\n data(){\n return {\n errorMessages: []\n }\n },\n methods: {\n returnAllFiles() {\n const allRefs = Object.keys(this.$refs);\n const allFiles = allRefs.filter((item) => item.indexOf(\"file_\") >= 0);\n const allFilesValue = {};\n allFiles.forEach((item, i) => {\n allFilesValue[item] = (this.$refs[item].files.length && this.$refs[item].files[0]) || null;\n });\n return allFilesValue;\n },\n async finalSubmit() {\n this.loading = true;\n\n var token = await this.callCaptcha();\n if (token) {\n this.updateToken(token);\n this.$nextTick(async () => {\n const dataToSend = this.makeFormData({\n ...this.model,\n recaptchaResponse: token,\n ...this.returnAllFiles(),\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.submitHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n this.loading = false;\n\n if(this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return\n\n if (response.data.criticalError || response.data.hasError) {\n this.gotoError(response.data.errorMessages);\n } else {\n this.gotoSuccess();\n }\n } catch (errors) {\n this.loading = false;\n this.gotoError([errors]);\n }\n });\n }\n },\n gotoError(messages) {\n this.errorMessages = [...messages]\n this.$refs[\"namedSteps\"].goTo(\"failed\");\n },\n gotoSuccess() {\n this.$refs[\"namedSteps\"].goTo(\"success\");\n },\n },\n};\n\nlet commonComponents = [];\nconst slickCarousel = {\n props: {\n carouselArrows: false,\n options: {\n type: Object,\n default: function () {\n return {};\n },\n },\n },\n template: \"
\",\n mounted: function () {\n var self = this;\n //console.log(\"mounted\")\n\n this.$nextTick(() => {\n self.create();\n\n jQuery(this.$el).find('[data-src]').lazy();\n\n jQuery(this.$el).on('beforeChange', (slick, currentSlide, nextSlide)=>{\n jQuery(this.$el).find('[data-src]').lazy();\n });\n\n jQuery(this.$el).on('afterChange', (slick, currentSlide)=>{\n jQuery(this.$el).find('[data-src]').lazy();\n })\n \n });\n\n },\n beforeUnmount: function () {\n this.onDestroy()\n },\n\n methods: {\n create: function () {\n var $slick = jQuery(this.$el);\n\n if ($slick.find(\".item\").length > 1) {\n $slick.on(\"afterChange\", this.onAfterChange);\n $slick.on(\"beforeChange\", this.onBeforeChange);\n $slick.on(\"breakpoint\", this.onBreakpoint);\n $slick.on(\"destroy\", this.onDestroy);\n $slick.on(\"edge\", this.onEdge);\n $slick.on(\"init\", this.onInit);\n $slick.on(\"reInit\", this.onReInit);\n $slick.on(\"setPosition\", this.onSetPosition);\n $slick.on(\"swipe\", this.onSwipe);\n $slick.on(\"lazyLoaded\", this.onLazyLoaded);\n $slick.on(\"lazyLoadError\", this.onLazyLoadError);\n\n\n if(this.carouselArrows){\n this.options.appendArrows = $slick.parent().find('.carousel_arrows')\n // console.log(this.options, $slick.parent().find('.carousel_arrows'))\n }\n\n $slick.slick(this.options);\n }\n },\n\n destroy: function () {\n var $slick = jQuery(this.$el);\n\n if (jQuery(this.$el).hasClass(\"slick-initialized\")) {\n $slick.off(\"afterchange\", this.onAfterChange);\n $slick.off(\"beforeChange\", this.onBeforeChange);\n $slick.off(\"breakpoint\", this.onBreakpoint);\n $slick.off(\"destroy\", this.onDestroy);\n $slick.off(\"edge\", this.onEdge);\n $slick.off(\"init\", this.onInit);\n $slick.off(\"reInit\", this.onReInit);\n $slick.off(\"setPosition\", this.onSetPosition);\n $slick.off(\"swipe\", this.onSwipe);\n $slick.off(\"lazyLoaded\", this.onLazyLoaded);\n $slick.off(\"lazyLoadError\", this.onLazyLoadError);\n $slick.removeClass(\"slick-initialized\");\n jQuery(this.$el).slick(\"unslick\");\n }\n },\n\n reSlick: function () {\n this.destroy();\n this.create();\n },\n\n next: function () {\n jQuery(this.$el).slick(\"slickNext\");\n },\n\n prev: function () {\n jQuery(this.$el).slick(\"slickPrev\");\n },\n\n pause: function () {\n jQuery(this.$el).slick(\"slickPause\");\n },\n\n play: function () {\n jQuery(this.$el).slick(\"slickPlay\");\n },\n\n goTo: function (index, dontAnimate) {\n jQuery(this.$el).slick(\"slickGoTo\", index, dontAnimate);\n },\n\n currentSlide: function () {\n return jQuery(this.$el).slick(\"slickCurrentSlide\");\n },\n\n add: function (element, index, addBefore) {\n jQuery(this.$el).slick(\"slickAdd\", element, index, addBefore);\n },\n\n remove: function (index, removeBefore) {\n jQuery(this.$el).slick(\"slickRemove\", index, removeBefore);\n },\n\n filter: function (filterData) {\n jQuery(this.$el).slick(\"slickFilter\", filterData);\n },\n\n unfilter: function () {\n jQuery(this.$el).slick(\"slickUnfilter\");\n },\n\n getOption: function (option) {\n jQuery(this.$el).slick(\"slickGetOption\", option);\n },\n\n setOption: function (option, value, refresh) {\n jQuery(this.$el).slick(\"slickSetOption\", option, value, refresh);\n },\n\n setPosition: function () {\n jQuery(this.$el).slick(\"setPosition\");\n },\n\n // Events\n onAfterChange: function (event, slick, currentSlide) {\n this.$emit(\"afterchange\", event, slick, currentSlide);\n },\n\n onBeforeChange: function (event, slick, currentSlide, nextSlide) {\n this.$emit(\"beforechange\", event, slick, currentSlide, nextSlide);\n },\n\n onBreakpoint: function (event, slick, breakpoint) {\n this.$emit(\"breakpoint\", event, slick, breakpoint);\n },\n\n onDestroy: function (event, slick) {\n this.$emit(\"destroy\", event, slick);\n },\n\n onEdge: function (event, slick, direction) {\n this.$emit(\"edge\", event, slick, direction);\n },\n\n onInit: function (event, slick) {\n this.$emit(\"init\", event, slick);\n },\n\n onReInit: function (event, slick) {\n this.$emit(\"reinit\", event, slick);\n },\n\n onSetPosition: function (event, slick) {\n this.$emit(\"setposition\", event, slick);\n },\n\n onSwipe: function (event, slick, direction) {\n this.$emit(\"swipe\", event, slick, direction);\n },\n\n onLazyLoaded: function (event, slick, image, imageSource) {\n this.$emit(\"lazyloaded\", event, slick, image, imageSource);\n },\n\n onLazyLoadError: function (event, slick, image, imageSource) {\n this.$emit(\"lazyloaderror\", event, slick, image, imageSource);\n }\n },\n};\n\nconst alertDanger = {\n props: [\"msgs\", \"dismissible\"],\n template: `\n
\n
    \n
  • \n
    \n
  • \n
\n \n
`\n}\n\ncommonComponents.push({\n name: 'alert-danger',\n var: alertDanger\n})\nconst alertSuccess = {\n mixins: [alertDismissible],\n props: [\"msgs\", \"dismissible\"],\n template: `\n
\n
    \n
  • \n \n
  • \n
\n \n
`,\n \n};\n\ncommonComponents.push({\n name: \"alert-success\",\n var: alertSuccess,\n});\n\n\nconst eLoader = {\n\tprops: {\n\t\tabsolute: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tmounted: function () {\n\t},\n\ttemplate: `
`,\n}\n\n\nconst bPagination = {\n name: \"pagination\", \n props: {\n maxVisibleButtons: {\n type: Number,\n required: false,\n default: 5,\n },\n totalRecords:{\n type: Number,\n required: true,\n },\n perPage: {\n type: Number,\n default: 10\n },\n currentPage: {\n type: Number,\n default: 1,\n required: true,\n },\n },\n template: \n ``,\n computed: {\n inactiveClass(){\n if(this.totalPages<=1){\n return 'b-pagination--inactive'\n }\n return ''\n },\n totalPages() {\n return Math.ceil(this.totalRecords/ this.perPage)\n },\n startPage() {\n if (this.currentPage === 1) {\n return 1;\n }\n\n if (this.currentPage === 2) {\n return 1;\n }\n\n if (this.currentPage === this.totalPages) {\n return Math.max(this.totalPages - this.maxVisibleButtons + 1, 1);\n }\n \n return this.currentPage - 2;\n },\n endPage() {\n return Math.min(\n this.startPage + this.maxVisibleButtons - 1,\n this.totalPages\n );\n },\n pages() {\n const range = [];\n\n for (let i = Math.min(this.startPage, Math.max(this.endPage - (this.maxVisibleButtons - 1), 1)); i <= this.endPage; i += 1) {\n range.push({\n name: i,\n isDisabled: i === this.currentPage,\n });\n }\n\n return range;\n },\n isInFirstPage() {\n return this.currentPage === 1;\n },\n isInLastPage() {\n return this.currentPage === this.totalPages;\n },\n },\n methods: {\n onClickFirstPage() {\n this.$emit(\"pagechanged\", 1);\n },\n onClickPreviousPage() {\n this.$emit(\"pagechanged\", this.currentPage - 1);\n },\n onClickPage(page) {\n this.$emit(\"pagechanged\", page);\n },\n onClickNextPage() {\n this.$emit(\"pagechanged\", this.currentPage + 1);\n },\n onClickLastPage() {\n this.$emit(\"pagechanged\", this.totalPages);\n },\n isPageActive(page) {\n return this.currentPage === page;\n },\n },\n};\n\nconst customTabs = {\n props: { \n active:{\n type: Number,\n default: 0\n },\n items: {\n type: Array,\n default(){\n return []\n }\n },\n disabled: { // set disabled tabs with value 1 or enabled with value 0\n type: Array,\n default(){\n return []\n }\n },\n top: { // tabs to be top instead of bottom from horz line\n type: Boolean,\n default: false\n },\n wrapTextOnMultiple: {\n default: 0\n },\n hideNav: { // hide nav if true\n type: Boolean,\n default: false\n },\n miniTabClass: {\n type: String,\n default: ''\n }\n },\n template: \n `
\n
    \n
  • \n \n
  • \n
\n \n \n \n
`,\n data: function () {\n\t\treturn {\n selected: this.active\n }\n },\n mounted(){\n\n api.fn.getSvgSource() \n\n this.changeTab(this.active)\n },\n methods:{\n changeTab(index){\n this.selected = index\n this.$emit(\"tabChanged\", index, this.items[index])\n },\n isOpened(index){\n return this.selected === index\n },\n activeClass(index){ \n if(this.selected === index && this.items.length > 1){\n return 'ui-tabs-active'\n }\n return ''\n },\n isDisabled(index){\n if(this.disabled[index] && this.disabled[index]>0){\n return true\n }\n return false\n }\n },\n computed:{\n manyTabs(){\n if(this.items.length>2){\n return 'b-tabs__nav--multiple'\n } else if (this.items.length === 1) {\n return 'b-tabs__nav--single'\n }\n return ''\n },\n topClass(){\n if(this.top)\n return 'b-tabs--top'\n\n return ''\n },\n wrapTabClass(){\n if(this.wrapTextOnMultiple && this.wrapTextOnMultiple >= this.items.length){\n return 'b-tabs__nav--wrap-text'\n }\n },\n hideNavClass(){\n if(this.hideNav && this.items.length<2) return 'b-tabs--hide-nav'\n return ''\n }\n },\n watch: {\n active(newVal) {\n this.changeTab(newVal)\n }\n },\n}\n\nconst bAccordion = {\n props: {\n active:{\n default: 0\n },\n header:{\n type: String,\n default: \"> .b-accordion__head\"\n },\n collapsible:{\n type: Boolean,\n default: true\n }\n },\n template:`
`,\n data(){\n return {\n acc: null\n }\n },\n mounted(){\n \n this.acc = jQuery(this.$refs['accordion'])\n this.iniAccordion()\n\n this.$watch(() => this.active, (newVal, oldVal) => {\n this.setActive(newVal)\n }\n )\n },\n methods:{\n iniAccordion(){\n //console.log(this.active, this.collapsible)\n this.acc.accordion({\n heightStyle: \"content\",\n collapsible: this.collapsible,\n header: this.header,\n active: this.active,\n create: function (event, ui) {\n },\n beforeActivate: function (event, ui) {\n },\n activate: function (event, ui) {\n }\n })\n },\n setActive(num){\n this.acc.accordion( \"option\", \"active\", num );\n },\n }\n}\nconst slideUpDown = {\n props: {\n active: false,\n animateOnStart: false\n },\n template: `
\n \n
`,\n data: function () {\n return {\n _this: null,\n isOpen: false\n };\n },\n mounted() {\n this._this = jQuery(this.$el)\n \n this.checkToOpen(this.active, this.animateOnStart) \n\n\n this.$watch(\n () => this.active,\n (newVal, oldVal) => {\n this.$nextTick(()=>{\n this.checkToOpen(newVal, true)\n })\n \n }\n );\n },\n methods: {\n checkToOpen(active, animated){\n if(active){\n this.openSlide(animated)\n } else{\n this.closeSlide(animated)\n }\n },\n openSlide(animated){\n this.isOpen = true\n if(animated){\n this._this.slideDown()\n } else {\n this._this.show()\n }\n },\n closeSlide(animated){\n this.isOpen = false\n if(animated){\n jQuery(this.$el).slideUp() \n } else {\n this._this.hide()\n }\n }\n },\n computed:{\n activeClass(){\n return this.isOpen ? 'active' : ''\n }\n }\n};\n\nconst eCircleProgressStep = {\n props: {\n stepNumber: {\n default: \"1\",\n },\n activePerc: {\n type: Number,\n default: 0,\n },\n completePerc: {\n type: Number,\n default: 0,\n },\n isJump:{\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n max:120,\n activeValue: 0,\n completeValue: 0\n }\n },\n template: `\n
\n \n \n \n \n \n \n \n \n {{stepNumber}}\n \n \n
`,\n mounted(){\n this.setActiveValue(0)\n this.setCompleteValue(0) \n },\n methods:{\n calcVal(perc){\n return this.max - (perc * this.max) / 100\n },\n setActiveValue(perc){\n this.activeValue = this.calcVal(perc) \n },\n setCompleteValue(perc){\n this.completeValue = this.calcVal(perc) \n },\n \n },\n computed:{\n completedClass(){\n if(this.completePerc===100){\n return 'e-circle-progress-step--completed'\n }\n return ''\n }\n },\n watch: {\n activePerc: {\n handler(val, oldVal) {\n setTimeout(()=>{\n this.setActiveValue(this.activePerc)\n },500)\n },\n immediate: true\n },\n completePerc: {\n handler(val, oldVal) {\n setTimeout(()=>{\n this.setCompleteValue(this.completePerc)\n },500)\n },\n immediate: true\n },\n },\n};\n\nconst namedSteps = {\n props: {\n class: { default: '' },\n steps: { default() { return [] } },\n setCurrent: { default: '' },\n iniStep: { default: '' }\n },\n template: `
\n
\n \n
\n
\n \n
\n
`,\n data() {\n return {\n current: this.iniStep ? this.iniStep : this.steps[0],\n history: []\n }\n },\n created() {\n if (this.setCurrent) {\n const indx = parseInt(this.setCurrent)\n\n if (isNaN(indx) && this.getIndex(this.setCurrent) >= 0) {\n this.current = this.setCurrent\n } else {\n if (indx >= 0) {\n this.current = this.getNameByIndex(indx)\n }\n }\n }\n },\n beforeUnmount() {\n this.$emit('unmounted', this.current)\n },\n mounted() {\n this.$emit('current', this.current)\n },\n methods: {\n is(name) {\n if (this.getIndex(name) >= 0) {\n return name === this.current\n } else {\n return false\n }\n },\n getIndex(name) {\n return this.steps.indexOf(name)\n },\n getNameByIndex(indx) {\n if (indx >= 0) {\n return this.steps[indx]\n } else {\n return false\n }\n },\n goTo(name) {\n if (this.steps.indexOf(name) >= 0) {\n if (this.current) {\n this.history.push(this.current);\n }\n this.current = name\n this.$emit('went', this.current)\n this.$emit('current', this.current)\n return this.current\n } else {\n return false\n }\n },\n prev() {\n const indx = this.steps.indexOf(this.current)\n if (indx > 0) {\n this.current = this.steps[indx - 1]\n this.$emit('back', this.current)\n this.$emit('current', this.current)\n return this.current\n } else {\n return false\n }\n },\n prevStep() {\n if (this.history.length) {\n // const previous = this.history[this.history.length - 2] more accurate code but has some bugs. Needs improvement to implement it;\n const previous = this.history.pop();\n if(previous) {\n this.current = previous;\n return this.current;\n }\n }\n return false\n },\n next() {\n const indx = this.steps.indexOf(this.current)\n if (indx < this.steps.length - 1) {\n this.current = this.steps[indx + 1]\n this.$emit('forth', this.current)\n this.$emit('current', this.current)\n return this.current\n } else {\n return false\n }\n },\n get() {\n return this.current\n },\n isFirstStep(){\n const indx = this.steps.indexOf(this.current)\n return indx === 0\n }\n },\n computed: {\n routeClass() {\n return this.class === '' ? 'named-steps' : this.class\n },\n headerClass() {\n return `${this.routeClass}__header`\n },\n bodyClass() {\n return `${this.routeClass}__body`\n }\n }\n}\nconst formattedNumber = {\n props:{\n lang: {default: 'el'},\n value: {default: 0, type: Number},\n float: {default: 2, type: Number},\n noFloatAtZero: {default: false} // if true, then when value is 0, will not be floated even if the float is above 0\n },\n template:`{{formattedValue}}`,\n methods:{\n stringifyPrice(value){\n return value.toLocaleString(this.lang, {\n minimumFractionDigits: this.float,\n maximumFractionDigits: this.float\n })\n }\n },\n computed:{\n formattedValue(){\n if(this.noFloatAtZero && this.value===0){\n return 0\n }\n return this.stringifyPrice(this.value)\n }\n }\n}\nconst addRemoveGroup = {\n mixins: [mixins],\n props: {\n min: {\n type: Number,\n default: 1,\n },\n max: {\n type: Number,\n default: 4,\n },\n initial:{\n type: Number,\n default: 1\n },\n },\n data() {\n return {\n items: Array(this.initial).fill(\"\"),\n };\n },\n template: `
\n \n
`,\n methods: {\n add() {\n if (this.items.length < this.max) {\n this.items.push(\"\");\n\n this.$nextTick(() => {\n this.update();\n });\n }\n },\n remove(index) {\n this.items.splice(index, 1);\n\n this.$emit(\"removed\", index);\n },\n update() {\n this.$emit(\"updated\", this.items);\n },\n randomKey(){\n return this.makeid()\n }\n },\n};\n\nconst expandableText = {\n props: {\n maxHeight: {\n type: String,\n default: 0,\n },\n btnClassName: {\n type: String,\n default: 'btn--outline-black btn--block'\n }\n },\n template: `
\n
\n \n
\n
\n \n \n
\n
`,\n data: function () {\n return {\n expanded: false,\n showToggleButton: false,\n scrollHeight: 0,\n $this: null,\n maxH: 0,\n };\n },\n mounted() {\n this.ini();\n },\n methods: {\n ini() {\n this.container = this.$el.querySelector(\".b-expandable-text__conts\");\n\n if (this.maxHeight) {\n this.$el.style.setProperty(\"--max-height\", this.maxHeight + \"px\");\n }\n\n this.maxH = parseInt(getComputedStyle(this.container).getPropertyValue(\"--max-height\"));\n\n this.scrollHeight = this.container.scrollHeight + 80;\n\n if (this.scrollHeight > this.maxH) {\n this.showToggleButton = true;\n }\n },\n open() {\n this.expanded = true;\n this.container.style.maxHeight = `${this.scrollHeight}px`;\n },\n close() {\n this.expanded = false;\n this.container.style.maxHeight = `${this.maxH}px`;\n },\n },\n computed: {\n expandedClass() {\n return this.expanded ? \"active\" : \"\";\n },\n disabledClass() {\n return this.showToggleButton ? \"\" : \"disabled\";\n },\n },\n};\n\nconst accordionTabComponet = {\n props: { \n btnMoreTxt: \"\",\n btnHelpTxt: \"\",\n viewAccordionLimit: {\n type: Number,\n default: 5\n }, \n interactDiv: {\n type: String,\n default: \"\"\n },\n handler: {\n type: String,\n default: \"\"\n },\n }, \n template:\n `
\n
\n\n
1\">\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n \n\n \n
\n
\n
\n
\n
`,\n mixins: [mixins],\n\tdata: function () {\n\t\treturn {\n\t\t\t$this: [],\n\t\t\tdata: [],\n\t\t\tselectedTab: null,\n\t\t\tselectedGroup: null\n\t\t};\n\t},\n\n\tmounted () {\t\t\n\t\tthis.loadData()\t\t\t\n\n\t},\n\tmethods: {\n\n\t\tloadData(){\n this.loading = true;\n\n this.ajax(this.handler, { page: this.page, sort: this.sort })\n\n },\n\n\t\thandleError(errorMessages) {\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n },\n\n handleAjaxSuccess(data) { \n this.data.push(...data);\n \n\t\t\tthis.selectedTab = this.tabs[0].value\n\t\t\tthis.selectedGroup = this.groups[0].value\n\n\t\t\tthis.$nextTick(function () {\t\n\t\t\t\t\n\t\t\t\tthis.refreshAccordion()\n\t\t\t})\n },\n\t\t\n\n\t\tonClickTab: function (value) {\n\t\t\tthis.selectedTab = value\n\t\t\tthis.selectedGroup = this.groups[0].value\n\t\t\tthis.refreshAccordion()\n\t\t},\n\n\t\tonClickGroup: function (value) {\n\t\t\tthis.selectedGroup = value\n\n\t\t},\n\n\t\trefreshAccordion: function () {\n\n\t\t\tvar elem = jQuery(\".b-accordion\", jQuery(this.$el))\n\n\t\t\tif (!elem.hasClass('ui-accordion')) {\n\t\t\t\telem.accordionSection({\n\t\t\t\t\theader: '.b-accordion__head'\n\t\t\t\t})\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tthis.$nextTick(function () {\t\t\t\t\n\t\t\t\telem.accordion(\"refresh\")\n\t\t\t})\n\t\t},\n\n\t\tisExpaned(id){\n\n\t\t\tvar isExpanded = null\n\t\t\t\n\t\t\tthis.data.forEach(function (topNode) {\n\t\t\t\ttopNode.groups.forEach(function(groups){\n\t\t\t\t\tgroups.faqs.forEach(function(faq){\n\t\t\t\t\t\tif(faq.id=== id){\n\t\t\t\t\t\t\tisExpanded = groups.expanded\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\n\t\t\t\t})\n\t\t\t\t\n\t\t\t})\n\n\t\t\tif(isExpanded!==null){\n\t\t\t\treturn isExpanded\n\t\t\t}\n\n\t\t\treturn false\n\t\t},\n\n\t\texpandSelected(id){\n\n\t\t\tthis.data.forEach(function (item) {\n\t\t\t\titem.groups.forEach(function (groups) {\n\t\t\t\t\tgroups.faqs.forEach(function(faq){\n\t\t\t\t\t\tif(faq.id=== id){\n\t\t\t\t\t\t\tgroups.expanded = true\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t})\n\n\t\t\tthis.refreshAccordion()\n\t\t},\n\t\tdoInteract(){\n\t\t\tif(this.interactDiv){\n\t\t\t\tvar div = jQuery(this.interactDiv)\n\t\t\t\tif(div && div.length){\n\t\t\t\t\tdiv.slideDown()\n\t\t\t\t\tapi.fn.moveWindowToObj(div)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttabs: function () {\n\t\t\treturn this.data.map(i => ({ value: i.id, text: i.title }))\n\t\t},\n\n\t\tgroups: function () {\n\n\t\t\tif (!this.hasValue(this.selectedTab)) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\treturn this.data.find(i => i.id === this.selectedTab)\n\t\t\t\t.groups\n\t\t\t\t.map(i => ({ value: i.id, title: i.title, subTitle: i.subTitle }))\n\t\t},\n\n\t\tfaqs: function () {\n\n\t\t\tif (!this.hasValue(this.selectedTab)) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tif (!this.hasValue(this.selectedGroup)) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\treturn this.data\n\t\t\t\t.find(i => i.id === this.selectedTab)\n\t\t\t\t.groups\n\t\t\t\t.find(i => i.id === this.selectedGroup)\n\t\t\t\t.faqs\n\t\t\t\t.map(i => ({ id: i.id, title: i.title, text: i.text }))\n\t\t}\n\t},\n\twatch: {\n\t\tselectedGroup: function (val) {\n\t\t\tthis.refreshAccordion()\n\t\t}\n\t}\n}\n\nconst bAutoCompleter = {\n mixins: [mixins, sendCaptcha],\n props: {\n value: {\n type: String,\n default: ''\n },\n handler:{\n type: String,\n default: ''\n },\n clickable:{ // if clickable then not use autocomplete with url but rather emit click event to parent\n type: Boolean,\n default: false\n },\n useCaptcha: { \n type: Boolean,\n default: false\n },\n greReady: false,\n captchaSiteKey: \"\",\n captchaAction: \"\"\n },\n data() {\n return {\n loading: false,\n records: [],\n errorMsgs: [],\n }\n },\n template: \n `
\n \n \n \n
`,\n mounted() {\n\n jQuery(window).on('click.autocomplete', (e) => {\n this.close()\n })\n },\n computed: {\n isActive(){\n return this.loading || this.records.length > 0\n },\n activeClass(){\n return ''\n }\n },\n beforeUnmount: function () {\n jQuery(window).off('click.autocomplete')\n },\n methods: {\n async doSearch() {\n\n if (this.handler !== '' && this.value !== '') {\n this.loading = true\n this.reset() \n \n try {\n\n var token = \"\";\n if (this.useCaptcha) {\n token = await this.callCaptcha()\n if (token) {\n this.updateToken(token)\n }\n }\n\n axios\n .post(this.handler, { value: this.value, recaptchaResponse: token })\n .then((response) => {\n var { hasError, errorMessages, data } = response.data;\n\n if (hasError) {\n this.handleError(errorMessages);\n return false;\n }\n\n this.handleSuccess(data);\n\n })\n .catch((errors) => {\n this.handleError([this.globalerror]);\n })\n .then(() => {\n this.loading = false;\n });\n } catch (err) {\n this.loading = false;\n this.handleError(JSON.parse(err));\n }\n\n }\n },\n stopSearch(){\n this.reset() \n this.loading = false\n this.close()\n },\n close(){\n this.$emit(\"closeAutocomplete\")\n },\n handleError(messages) {\n this.loading = false\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n this.$emit(\"searchFailed\", this.errorMsgs)\n },\n handleSuccess(data) {\n \n if(data.length){\n this.records.push(...data);\n this.$emit(\"searchCompleted\")\n } else {\n this.$emit(\"noData\")\n }\n },\n reset(){\n this.records = []\n },\n itemTypeClass(item){\n if(!item.type)\n return 'b-auto-completer__item-li'\n\n if(item.type==='group'){\n return 'b-auto-completer__item-more'\n }\n return 'b-auto-completer__item-li'\n },\n stopPropagate(e){\n e.stopPropagation()\n },\n clicked(item){\n this.$emit(\"clicked\", item)\n }\n }\n}\n\nvar svgSourcePrint = {\n props: {\n src: {\n type: String,\n default: \"\",\n },\n },\n template: ``,\n data() {\n return {\n imgSrc: \"\",\n };\n },\n mounted() {\n this.getSource();\n },\n methods: {\n getSource() {\n if (this.src !== \"\") {\n fetch(this.src).then((resp) => {\n if (resp.ok) {\n resp.text().then((txt) => {\n this.imgSrc = String(txt);\n });\n }\n });\n }\n },\n },\n};\n\nconst tableCharge = {\n props: ['markup'],\n template: `\n
\n
\n`,\n}\n\nconst bTabs = {\n props: {\n activeTab:{\n type: String,\n default: ''\n },\n tabs: {\n type: Array,\n default(){\n return []\n }\n },\n customIcons: {\n default(){\n return []\n }\n }\n },\n data(){\n return {\n tab: null,\n }\n },\n template:\n `
\n
    \n
  • \n \n
  • \n
\n
`,\n mounted(){\n this.iniTabs();\n \n },\n methods:{\n iniTabs(){\n if(this.activeTab!==''){\n this.tab = this.activeTab \n } else {\n if(this.tabs.length && this.tabs[0].id)\n this.tab = this.tabs[0].id\n }\n this.$emit(\"onTabInit\", this.tab)\n },\n changeTab(newTab){\n this.tab = newTab\n this.$emit(\"onTabChanged\", this.tab)\n },\n activeClass(tab){\n if(this.tab === tab){\n return 'ui-tabs-active'\n }\n return ''\n }\n }\n}\nconst creditCard = {\n props:{\n lang: {\n type: Number,\n default: 2 // greek\n },\n contractaccount:\"\",\n customercode:\"\",\n baseUrl: {\n type: String,\n required: true\n },\n econtractid:{\n default:\"\"\n },\n },\n template:`
\n
\n \n
`,\n data() {\n return {\n token: \"\"\n }\n },\n mounted(){\n window.addEventListener('message', (ev)=> {\n this.modal_Message(ev)\n }, false);\n\n\n },\n methods:{\n modal_Message(event){\n\n try {\n var data = event.data;\n \n //console.log(\"data:\", data)\n \n if (data.type == \"CLOSE_WINDOW\") {\n console.log(\"close\")\n }\n else if (data.type == \"CARD_TOKEN\") {\n \n this.token = data.cardToken\n \n if(this.token!==''){\n this.$emit(\"token\", this.token)\n } else {\n this.$emit(\"failed\")\n }\n \n }\n else if (data.type == \"RESIZE\") {\n\n this.$emit(\"rezise\", this.token)\n\n } else if(data.type == \"FAILED\"){\n\n this.$emit(\"failed\")\n }\n\n this.$emit(\"active\")\n\n }\n catch (e) {\n this.$emit(\"failed\")\n }\n }\n },\n computed:{\n iframeSrc(){\n const origin = window.location.origin\n const returnUrl = `${this.baseUrl}lang=${this.lang}&reference=${this.customercode}&origin=${origin}&ca=${this.contractaccount}`\n \n if(this.econtractid===''){\n return returnUrl\n }\n else{\n return `${returnUrl}&eContractID=${this.econtractid}`\n }\n }\n }\n}\nconst modalCritical = { \n props: {\n id: {\n type: String,\n default: \"modalCritical\"\n },\n canHide: {\n type: Boolean,\n default: false\n },\n backdrop: {\n type: Boolean,\n default: false\n },\n contentAlignClass: {\n type: String,\n default: \"\"\n }\n },\n data() {\n return {\n criticalErrorCode: {\n type: String,\n default: null\n }\n }\n },\n template: \n `
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
`,\n data() {\n return {\n myModal: null,\n criticalErrorCode: null\n }\n },\n mounted(){\n this.myModal = new bootstrap.Modal(document.getElementById(this.id), {\n keyboard: this.canHide\n })\n },\n methods:{\n show(criticalErrorCode){\n this.criticalErrorCode = criticalErrorCode\n this.myModal.show() \n },\n hide(){\n if (this.canHide) {\n this.myModal.hide() \n }\n }\n },\n computed:{\n backdropOption(){\n return !this.backdrop ? 'static' : true\n }\n }\n}\nconst modalConfirm = { \n props: {\n id: {\n type: String,\n default: \"modalConfirm\"\n },\n closeButton: { default: false}\n },\n data() {\n return {\n criticalErrorCode: {\n type: String,\n default: null\n }\n }\n },\n template: \n `
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
`,\n data() {\n return {\n myModal: null,\n criticalErrorCode: null\n }\n },\n mounted(){\n this.myModal = new bootstrap.Modal(document.getElementById(this.id), {\n keyboard: false\n })\n },\n methods:{\n show(criticalErrorCode){\n this.criticalErrorCode = criticalErrorCode\n this.myModal.show() \n this.$emit(\"show\")\n },\n hide(){\n this.myModal.hide() \n this.$emit(\"hide\")\n }\n }\n}\nconst formWizard = {\n mixins: [mixins, sendCaptcha, wizardEditable, transliteration, checkIfLockedFieldMixin],\n props: {\n handler: \"\",\n locked: false,\n injectedModel: null,\n greReady: false,\n captchaSiteKey: \"\",\n captchaAction: \"\",\n sessionId: \"\",\n autoComplete: {\n type: String,\n default: \"on\",\n },\n defaultError: {\n type: String,\n default: \"Ενα σφάλμα προέκυψε\"\n },\n headers: {\n type: Object,\n default: function () {\n return null\n }\n },\n submitOnMount:{\n type: Boolean,\n default: false\n }\n },\n template: `
\n
\n \n \n
\n \n
\n \n \n\n \n\n
\n \n
\n\n
\n
\n
\n
`,\n data() {\n return {\n model: {},\n loading: false,\n valid: true,\n error: false,\n errorMessages: [],\n keyCount: 0,\n token: \"\",\n timer: 0,\n formId: null, \n };\n },\n mounted() {\n this.formId = \"form-\" + this._.uid;\n\n this.updateUnobtrusive();\n this.revert();\n this.$watch(\n () => this.injectedModel,\n (newobj, old) => {\n this.revert();\n this.$nextTick(() => {\n this.updateUnobtrusive();\n });\n },\n {\n deep: true,\n }\n );\n\n if(this.submitOnMount){\n setTimeout(() => {\n this.submitForm()\n },100)\n }\n },\n methods: {\n async iniSubmit() {\n if (!this.validate()) {\n this.loading = false;\n return false;\n }\n\n this.loading = true;\n this.error = false;\n\n this.token = api.vars.allowCaptcha ? await this.callCaptcha() : true;\n //this.token = this.captchaEnabled ? this.token : true;\n if (this.token) {\n this.updateToken(this.token);\n return true;\n } else {\n this.handleError(this.defaultError)\n }\n return false;\n },\n\n async submitForm() {\n if (await this.iniSubmit()) {\n this.$nextTick(async () => {\n try {\n\n if(this.headers){\n axios.defaults.headers = {...axios.defaults.headers, ...this.headers}\n }\n\n var response = await axios.post(\n this.handler,\n jQuery(this.$refs.form).serialize()\n );\n this.handleResponse(response);\n } catch (errors) {\n this.handleError(this.defaultError);\n }\n });\n }\n },\n\n async submitModel() {\n if (await this.iniSubmit()) {\n this.$nextTick(async () => {\n try {\n var response = await axios.post(this.handler, {\n ...this.model,\n recaptchaResponse: this.token,\n __sessionid: this.sessionId,\n });\n this.handleResponse(response);\n } catch (errors) {\n this.handleError(this.defaultError);\n }\n });\n }\n },\n\n handleResponse(response) {\n this.loading = false;\n var { tokenExpired, hasError, errorMessages, criticalError, criticalErrorCode, data } =\n response.data;\n\n if(this.reloadWindowIfTokenExpired(tokenExpired)) return\n\n if (criticalError) {\n this.loading = false;\n this.criticalError(criticalErrorCode);\n return false;\n }\n if (hasError) {\n this.handleError([errorMessages]);\n return false;\n }\n console.log(\"data\",data)\n this.$emit(\"success\", data, this.model);\n },\n\n criticalError(criticalErrorCode) {\n this.$emit(\"critical\", criticalErrorCode);\n },\n handleError(errorMessages) {\n this.loading = false;\n this.error = true;\n this.errorMessages = errorMessages;\n this.$emit(\"error\", errorMessages);\n },\n updateModel() {\n // console.log(\"update-model\", this.model)\n if (!this.validate()) {\n return false;\n }\n // console.log(\"form wizard current model:\",this.model)\n\n this.$emit(\"model-updated\", this.model);\n this.$emit(\"model-updated-other-actions\", this.model); \n },\n revert() {\n // get model from parent and discard current model\n if (this.injectedModel) {\n this.model = api.fn.clone(this.injectedModel); //jQuery.extend(this.model, this.injectedModel); //api.fn.clone(this.injectedModel)\n }\n },\n\n validate() {\n this.valid = jQuery(this.$refs.form).valid(); \n //console.log(\"validate\", this.valid)\n if (this.valid) {\n this.$emit(\"validated\", this.valid, this.model)\n } else {\n this.$emit(\"invalid\", jQuery(this.$refs.form))\n }\n\n // console.log(\"validate\", this.valid)\n return this.valid;\n },\n\n updateUnobtrusive() {\n clearTimeout(this.timer);\n\n this.timer = setTimeout(() => {\n this.resetUnobstrusive();\n }, 100);\n },\n\n resetUnobstrusive() {\n var form = jQuery(this.$refs.form)\n .removeData(\"validator\") /* added by the raw jquery.validate plugin */\n .removeData(\n \"unobtrusiveValidation\"\n ); /* added by the jquery unobtrusive plugin*/\n jQuery.validator.unobtrusive.parse(form);\n },\n\n updateAndValidate() {\n this.resetUnobstrusive();\n this.$nextTick(() => {\n this.validate();\n });\n },\n\n validateDisabledFields() {\n this.enableFields();\n this.$nextTick(() => {\n if (this.validate()) {\n this.disableFields();\n this.$emit(\"validatedDisabled\", this.valid);\n }\n });\n },\n\n validField(fieldName){\n const inpt = jQuery(`input[name=\"${fieldName}\"]`)\n this.$nextTick(()=>{\n inpt.valid()\n })\n },\n setLoad(bool){\n this.loading = bool\n },\n \n addToModel(data){\n this.model = {...this.model, ...data}\n }\n \n },\n};\n\nconst econtractProduct = {\n props: {\n selectedProduct: null, \n product: null, \n addons: null,\n injectedModel: null,\n cancelBtn: {\n type: String,\n default: \"Cancel\",\n },\n acceptBtn: {\n type: String,\n default: \"Accept\",\n },\n removeBtn: {\n type: String,\n default: \"Remove\",\n },\n valMessage: {\n type: String,\n default: \"The term field is required.\",\n },\n hideBody:{ // if you dont wont to open product and show only the head section and without any interaction\n type: Boolean,\n default: false\n }\n },\n template: `\n
\n \n
\n \n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n `,\n data() {\n return {\n valid: true,\n id: null,\n slideNow: false,\n attachedAddons: []\n };\n },\n created(){\n this.product.attachedAddons.forEach(attachAddon => {\n \n this.addons.forEach((addonObj)=>{\n if(addonObj.id === attachAddon){\n this.attachedAddons.push(addonObj)\n }\n })\n })\n },\n mounted() {\n this.id = this._.uid;\n\n this.setActiveProduct();\n },\n methods: {\n setActiveProduct() {\n this.slideNow = false;\n if (this.product.id !== this.selectedProduct) {\n this.$emit(\"updatedProduct\", this.product.id);\n }\n },\n isValid() {\n return (\n jQuery(this.$el).find(\".field-validation-error\").length === 0\n );\n },\n validate() {\n this.$emit(\"validate\", this.product);\n },\n accept() {\n this.validate();\n this.$nextTick(() => {\n setTimeout(() => {\n if (this.isValid()) {\n this.setActiveProduct();\n this.$emit(\"productAccepted\", this.product); \n }\n }, 500);\n });\n },\n cancel() {\n this.slideNow = false;\n\n setTimeout(() => {\n this.$emit(\"canceled\", this.product.id);\n }, 500);\n },\n removeIt() {\n this.slideNow = false;\n this.$emit(\"removed\", this.product.id);\n },\n },\n computed: {\n isOpened() {\n return this.selectedProduct === this.product.id;\n },\n openedClass() {\n return this.isOpened ? \"opened\" : \"\";\n },\n selected() {\n if (this.injectedModel.product) {\n return this.injectedModel?.product === this.product.id;\n }\n return false;\n },\n selectedClass() {\n return this.selected ? \"selected\" : \"\";\n },\n showLayerBtn() {\n return this.isOpened || this.selected ? false : true;\n },\n },\n watch: {\n isOpened: {\n handler(newVal) {\n setTimeout(() => {\n this.slideNow = newVal;\n }, 10);\n },\n },\n },\n};\n\nconst econtractPrdHead = {\n props:{\n head:null,\n verticalLogo: false,\n disabled: false,\n prNotifText: '',\n prNotifClass: ''\n\n },\n template:`
\n {{ prNotifText }}\n
\n
\n
\n \n {{head.badge.txt}}\n \"\"\n
\n
\n
\n
\n
\n
    \n
  • {{li}}
  • \n
\n
\n
\n
`,\nmounted(){\n jQuery(this.$refs.product).inViewport();\n},\ncomputed: {\n cardBg() {\n if (this.head?.bg && !this.disabled) {\n return `background-image: url(${this.head.bg})`;\n }\n return \"\";\n },\n cardHeadClass(){\n return this.verticalLogo ? 'b-product-card__head--vertical-logo' : ''\n },\n disabledClass(){\n return this.disabled ? 'disabled' : ''\n }\n},\n}\nconst econtractPrdBody = {\n props:{\n body:null,\n valMessage: {\n type: String,\n default: \"The term field is required.\",\n }\n },\n template:`
\n \n
`\n}\nconst econtractHeaderMenu = {\n props:{\n active:{\n type: Number,\n default: -1\n },\n items: {\n type: Array,\n default(){\n return []\n }\n },\n },\n template:`\n
\n
\n
    \n
  • \n \n \n
  • \n
\n
\n
\n
\n \n
\n \n
\n
`,\n data: function () {\n\t\treturn {\n selected: this.active\n }\n },\n methods:{\n toggle(ev, index){\n if(this.selected !== index){\n this.selected = index\n } else {\n this.selected = -1\n }\n jQuery(ev.target).blur()\n },\n activeClass(index){\n return this.selected === index ? 'ui-tabs-active' : ''\n },\n inactiveClass(index){\n return this.selected>=0 && this.selected !== index ? 'ui-tabs-inactive' : ''\n },\n openedClass(){\n return this.isOpened ? 'opened' : ''\n }\n },\n computed:{\n isOpened(){\n return this.selected>=0\n }\n }\n}\nconst econtractProductGetAttr = {\n props: {\n products: null,\n selectedProduct: null,\n },\n template: `\n `,\n data() {\n return {\n product: this.products.filter(\n (obj) => obj.id === this.selectedProduct\n )[0],\n };\n },\n methods: {\n getValue(val, node) {\n let ret = \"\";\n if (this.products !== null) {\n if (node) {\n try {\n ret = this.product[node] ? this.product[node][val] : \"\";\n } catch (e) {}\n } else {\n ret = this.product[val];\n }\n }\n return ret;\n },\n },\n};\n\nconst econtractAddon = {\n props: {\n addon: null,\n disabled: {default: false},\n selected: {default: false},\n cancelBtn: {\n type: String,\n default: \"Cancel\",\n },\n acceptBtn: {\n type: String,\n default: \"Accept\",\n },\n removeBtn: {\n type: String,\n default: \"Remove\",\n },\n valMessage: {\n type: String,\n default: \"The term field is required.\",\n },\n selectedAddonsCount: {\n type: Number,\n default: 0\n },\n attachedAddon: {\n type: String,\n default: \"Attached\",\n },\n isAttached: {\n default: false\n },\n disallowAddons: {\n default: false\n }\n },\n template: `\n
\n \n\n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n\n
\n
\n \n
\n
\n\n
\n
\n
{{attachedAddon}}
\n
\n
\n \n
`,\n data() {\n return {\n slideNow: false,\n open: false,\n showAlert: false\n };\n },\n mounted(){\n },\n methods: {\n setActiveProduct() {\n this.open = true;\n setTimeout(() => {\n this.slideNow = true;\n }, 10);\n },\n accept() {\n this.$refs.form?.validate();\n },\n cancel() {\n this.close();\n },\n close() {\n this.slideNow = false;\n\n setTimeout(() => {\n this.open = false;\n }, 500);\n },\n isValid(val) {\n if (val) {\n this.close();\n this.$emit(\"selected\", this.addon.id);\n }\n },\n removeIt() {\n this.close();\n this.$emit(\"removed\", this.addon.id);\n }\n },\n computed: {\n isOpened() {\n return this.open;\n },\n openedClass() {\n return this.open ? \"opened\" : \"\";\n },\n disabledClass() { \n return this.disabled ? \"disabled\" : \"\";\n },\n showLayerBtn() {\n return !this.open && !this.selected;\n }, \n selectedClass() {\n return this.selected ? \"selected\" : \"\";\n },\n },\n watch:{\n disabled: {\n handler(newVal){\n if(newVal){\n this.$nextTick(()=>{\n if(newVal){ \n this.showAlert = jQuery(this.$el).find('.b-econtract-product__alert .alert__conts').text().length >10\n this.close()\n } else { \n this.showAlert = false \n }\n \n })\n }\n },\n immediate: true\n }\n }\n};\n\nconst econtractAddonBasket = {\n props: {\n products: null,\n selectedProduct: null,\n addons: null,\n selectedAddons: {\n type: Array,\n default(){\n return []\n }\n }\n },\n template: `
\n \n
`,\n data() {\n return {\n currSlcAddons: [],\n productObj: this.products.filter(obj => obj.id === this.selectedProduct)[0],\n productAddons: this.products.filter(obj => obj.id === this.selectedProduct)[0]?.addons,\n attachedAddons: this.products.filter(obj => obj.id === this.selectedProduct)[0]?.attachedAddons \n };\n },\n created(){\n this.currSlcAddons = [...this.selectedAddons.filter(\n function(e) {\n return this.indexOf(e) < 0;\n },\n [...this.attachedAddons]\n ), ...this.products.filter(obj => obj.id === this.selectedProduct)[0]?.attachedAddons] \n },\n methods: {\n isAllowedAddon(id) {\n return this.productAddons.indexOf(id)>=0\n },\n isAttachedAddon(id){\n return this.attachedAddons.indexOf(id)>=0\n },\n isDisabledAddon(id){\n let disabled = false\n\n var dataArray = Object.values(this.currSlcAddons)\n\n dataArray.forEach((curr)=>{\n const node = this.findObjById(this.addons, curr)\n\n if(node[0].disables.indexOf(id)>=0){\n disabled = true\n } \n \n })\n\n if(this.isAttachedAddon(id)){\n disabled = true\n }\n\n //var selectedProductObj = this.products.filter(obj => obj.id === this.selectedProduct)[0]\n\n //console.log(\"selected-product\", this.selectedProduct, this.productObj)\n\n return disabled\n \n },\n isSelectedAddon(id){\n let selected = this.currSlcAddons.indexOf(id)>=0\n\n if(this.isAttachedAddon(id)){\n selected = true\n } \n\n return selected\n },\n findObjById(obj, id){\n return obj.filter(el=> el.id === id)\n },\n selectAddon(id){\n if(this.currSlcAddons.indexOf(id)<0){\n this.currSlcAddons = [...this.currSlcAddons, id]\n this.updateModel()\n }\n \n },\n removeAddon(id){\n //this.model[id] = false\n const indx = this.currSlcAddons.indexOf(id)\n if(indx>=0){\n this.currSlcAddons.splice(indx,1);\n this.updateModel()\n }\n },\n updateModel(){\n this.$emit(\"updateModel\", { \"addons\": this.currSlcAddons})\n }\n },\n};\n\nconst hiddenSteps = {\n props: {\n min: {\n type: Number,\n default: 1,\n },\n max: {\n type: Number,\n default: 1,\n },\n ini: {\n default: -1\n },\n refname: ''\n },\n template: `
`,\n data() {\n return {\n current: this.ini < this.min ? this.min : this.ini,\n };\n },\n mounted(){\n this.$emit('mounted', this.refname, this.current) \n },\n methods: {\n prev() {\n if (this.current > this.min) {\n this.current--;\n this.$emit('updated', this.refname, this.current) \n }\n },\n next() {\n if(this.current < this.max){\n this.current++;\n this.$emit('updated', this.refname, this.current) \n }\n },\n goTo(num){\n if(num <= this.max && num >= this.min){\n this.current = num;\n this.$emit('updated', this.refname, this.current) \n }\n },\n isActive(num) {\n return num === this.current;\n }\n },\n};\n\nconst fileUploader = {\n props:{\n inputId: {\n type: String,\n required: true\n },\n acceptedExtentions:{\n type: String,\n default: \".pdf,.doc,.docx,.rtf,.jpg,.gif,.png,.jpeg,.bmp\",\n },\n name: {\n type: String,\n default: \"upload-field\",\n },\n btnStr:{\n type: String,\n default: \"upload\",\n },\n maxFileSize:{\n type: Number,\n default: 50000000\n },\n maxFileSizeStr:{\n type: String,\n default: \"Max file size exceeded\",\n },\n minFileSize:{\n type: Number,\n default: 0\n },\n minFileSizeStr:{\n type: String,\n default: \"File is empty!\",\n },\n disabled:{\n default: false\n },\n multipleFiles:{\n default: \"Multiple files selected\"\n },\n invalidFileTypeText: {\n type: String,\n default: \"\"\n }\n },\n template:\n `
\n \n
\n \n \n
\n \n
{{maxFileSizeStr}}
\n
{{minFileSizeStr}}
\n
{{invalidFileTypeText}}
\n
`, \n\n data(){\n return {\n file:\"\",\n size: \"\",\n hasChanged: false,\n sizeExceeed: false,\n sizeEmpty: false,\n invalidFileType: false,\n id: null,\n inpt: null\n }\n }, \n mounted () {\n this.id = this._.uid\n\n this.inpt = jQuery(\"#\" + this.inputId)\n\n this.inpt.on(\"change\", (e)=>{\n this.onChange(e)\n })\n \n this.initialCheck()\n },\n methods:{\n initialCheck(){\n const inputValue = this.inpt[0].value\n if(inputValue){\n this.file = inputValue.split(/(\\\\|\\/)/g).pop()\n }\n },\n triggerFile() {\n this.inpt.click();\n },\n onChange(e){\n if(e && e.target && e.target.files[0]){\n const file = e.target.files[0];\n this.size = file.size;\n const fileName = file.name;\n const fileExtension = fileName.split('.').pop().toLowerCase();\n const acceptedExtensions = this.acceptedExtentions.split(',').map(ext => ext.replace('.', '').toLowerCase());\n\n // Reset error flags\n this.sizeExceeed = false;\n this.sizeEmpty = false;\n this.invalidFileType = false;\n\n // Έλεγχος μεγέθους\n if(this.size > this.maxFileSize){\n e.target.value = \"\";\n this.sizeExceeed = true;\n return;\n }\n if(this.size < this.minFileSize){\n e.target.value = \"\";\n this.sizeEmpty = true;\n return;\n }\n if(this.invalidFileTypeText) {\n // Έλεγχος τύπου αρχείου\n if(!acceptedExtensions.includes(fileExtension)){\n e.target.value = \"\";\n this.invalidFileType = true;\n return;\n }\n }\n\n // Αν όλα είναι εντάξει\n if(e.target.files.length > 1){\n this.file = this.multipleFiles;\n } else {\n this.file = fileName.split(/(\\\\|\\/)/g).pop();\n }\n this.hasChanged = true;\n\n this.readURL();\n this.$emit('changed', e);\n }\n },\n readURL(){\n\n },\n reset(){\n this.file = \"\";\n this.inpt.val(\"\");\n this.$emit('cleared');\n }\n },\n computed:{\n activeClass(){\n return this.file !=='' ? \"active\" : \"\";\n }\n }\n}\n\nconst editCancelFields = {\n props: {\n editable: {\n type: Boolean,\n default: false,\n },\n },\n template:`
\n \n
`,\n data() {\n return {\n isEditable: this.editable,\n saved: false,\n touched: false\n };\n },\n methods: {\n enable() {\n this.isEditable = true;\n this.$emit(\"enabled\");\n this.$emit(\"changed\");\n },\n disable() {\n this.isEditable = false;\n this.$emit(\"disabled\");\n this.$emit(\"changed\");\n },\n save(){\n this.saved = true\n console.log('save')\n this.disable()\n this.$emit(\"saved\");\n }\n },\n computed:{\n disabled(){\n return !this.isEditable\n },\n enabled(){\n return this.isEditable\n }\n }\n};\n\nconst phoneNumber = { \n props:{\n flagPath: {\n type: String,\n default: \"/imgs/flags\"\n },\n flagName:{\n type: String,\n default: \"flag-\"\n },\n flagExtension:{\n type: String,\n default: \"svg\"\n },\n iniValue:{\n type: String,\n default: \"\"\n },\n code:{\n default: \"\"\n },\n phone:{\n default: \"\"\n },\n combinedFieldId:{\n default: ''\n }\n },\n template:\n `
\n
\n
\"\"
\n \n
\n \n
`,\n data () {\n\t\treturn {\n selected: \"\",\n timeout: 0\n }\n },\n mounted(){\n this.selected = this.iniValue\n\n this.$watch(() => this.iniValue, (newobj, old) => {\n this.selected = this.iniValue\n })\n },\n methods:{\n update(e){\n this.selected = e.target.value\n },\n keypress(evt){\n // this.$nextTick(()=>{\n // clearTimeout(this.timeout)\n // this.timeout = setTimeout(()=>{\n // this.validateFieldCombined()\n // },100)\n // })\n\n if (evt.which < 48 || evt.which > 57)\n evt.preventDefault();\n },\n validateFieldCombined(checkWhenValueChanged){\n if(!this.combinedFieldId)\n return\n\n const field = jQuery(`#${this.combinedFieldId}`)\n \n if(!field.length)\n return\n\n if(checkWhenValueChanged){\n if(field.hasClass('input-validation-error') || field.hasClass('valid'))\n field.valid()\n } else {\n field.valid()\n }\n \n },\n changed(){\n },\n blur(){\n this.$nextTick(()=>{\n this.validateFieldCombined()\n })\n }\n },\n computed:{\n selectedFlagFile(){\n if(this.selected){\n return `${this.flagPath}/${this.flagName}${this.selected}.${this.flagExtension}`\n }\n return ''\n },\n combined(){\n return `${this.code}${this.phone}`\n }\n },\n watch:{\n combined:{\n handler(newVal){\n this.$emit('combined-phone', newVal)\n\n this.$nextTick(()=>{\n this.validateFieldCombined(true)\n })\n },\n immediate: true\n }\n }\n}\nconst otpWrapper = {\n props:{\n setCurrent: { default: 'otp'},\n },\n emits: [\"prev\", \"next\", \"success\", \"sending\", \"sent\", \"sentFailed\"],\n template:`
\n \n \n \n \n \n
`,\n data(){\n return {\n status: \"\"\n }\n },\n methods:{\n prev(){\n this.$emit('prev')\n },\n next(){\n this.$emit('next')\n },\n success(){\n this.status = \"success\"\n this.$emit('success') \n },\n sending(){\n this.status = \"sending\"\n this.$emit('sending') \n },\n sent(){\n this.status = \"sent\"\n this.$emit('sent') \n },\n sentFailed(){\n this.status = \"sentFailed\"\n this.$emit('sentFailed') \n }\n }\n}\nconst otp = {\n mixins:[sendCaptcha],\n props:{\n immediate: {\n type: Boolean,\n default: false\n },\n isActive: {\n type: Boolean,\n default: false\n },\n requestOtp:{\n type: String,\n default: \"\",\n },\n sendOtp: {\n type: String,\n default: \"\",\n },\n name: {\n type: String,\n default: \"otp\",\n },\n alloAutoCall: {\n type: Boolean,\n default: true\n },\n phone: {\n type: String,\n default: \"\", \n },\n countryCode:{\n type: String,\n default: \"\",\n }, \n injectedModel: null,\n maxResends: {\n type: Number,\n default: 5\n },\n timeOut: {\n type: Number,\n default: 200000\n },\n resendTimeout: {\n type: Number,\n default: 5000\n }, \n greReady: false,\n captchaSiteKey:\"\",\n captchaAction:\"\",\n sessionId: \"\",\n defaultError: {\n type: String,\n default: \"Ενα σφάλμα προέκυψε\"\n },\n type: { // the type defines if it is otp for phone or email. \n default: 'phone' // 2 options: phone | email\n }\n },\n template:\n `
\n
\n
\n\n \n\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
`,\n data(){\n return {\n model:{},\n loading: false,\n otpCode: \"\",\n code: \"\",\n sendCounter: 0,\n timer:0,\n inTime: true,\n showResend: true,\n error: false,\n errorMessages: [],\n phoneUpdated: false\n }\n },\n mounted(){ \n \n this.updateUnobtrusive();\n\n this.$watch(() => this.isActive, (newVal, old) => {\n this.$nextTick(()=>{\n if(this.isActive && this.phoneUpdated){\n this.autoStart()\n }\n })\n })\n\n this.$watch(() => this.injectedModel.phone, (newVal, old) => {\n if(this.type==='phone')\n this.phoneUpdated = true\n })\n\n this.$watch(() => this.injectedModel.email, (newVal, old) => {\n if(this.type==='email')\n this.phoneUpdated = true\n })\n\n if(this.immediate){\n if(this.isActive){\n this.autoStart()\n }\n }\n \n },\n methods:{\n autoStart(){\n this.phoneUpdated = false\n this.resetSentCounter()\n this.iniOtp()\n this.updateScopedModel();\n this.startTimer()\n },\n\n iniOtp(){\n this.loading = true;\n\n if(!this.alloAutoCall){\n this.handleError([this.defaultError]);\n return\n } \n\n this.resend()\n },\n handleSuccessOtpCode(data){\n this.otpCode = data.otpRefCode\n this.$emit(\"gotCode\", this.otpCode)\n\n this.startTimer()\n },\n getDataToPost(){\n const preData = {}\n\n if(this.type==='phone'){\n preData.countryCode = this.injectedModel.countryCode\n preData.phone = this.injectedModel.phone\n } else {\n preData.email = this.injectedModel.email\n preData.emailKey = this.injectedModel.emailKey\n preData.vat = this.injectedModel.vat\n }\n\n return preData\n },\n async resend(){\n\n\n if(!this.allowResend)\n return\n\n if(this.sendCounter>0) // hide resend button only after the first time\n this.showResendTimeout()\n\n this.sendCounter++\n this.loading = true;\n this.error = false;\n\n var token = await this.callCaptcha()\n if(token){\n this.updateToken(token)\n \n this.$nextTick(async ()=>{\n try { \n\n var postData = {\n ...this.getDataToPost(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n \"__sessionid\": this.sessionId,\n \"recaptchaResponse\": token\n }\n var response = await axios.post(this.requestOtp, postData)\n this.loading = false;\n var { hasError, errorMessages, criticalError, criticalErrorCode, data } = response.data;\n\n if(criticalError){\n this.criticalError(criticalErrorCode);\n return false;\n }\n if (hasError) {\n this.handleError(errorMessages);\n return false;\n }\n this.handleSuccessOtpCode(data);\n \n\n } catch (errors) {\n this.handleError([this.defaultError]);\n }\n })\n } else {\n this.handleError([this.defaultError])\n }\n },\n async submitForm(){\n\n if(!this.validate()){\n return\n }\n \n this.loading = true;\n this.error = false;\n \n\n var token = await this.callCaptcha()\n if(token){\n this.$emit(\"sending\")\n\n this.updateToken(token)\n \n this.$nextTick(async ()=>{\n try {\n var postData = { \n ...this.injectedModel,\n ...this.getDataToPost(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n code: jQuery(this.$refs.form.code).val(),\n otpRefCode: this.otpCode,\n \"__sessionid\": this.sessionId,\n \"recaptchaResponse\": token,\n }\n //jQuery(this.$refs.form).serialize()\n var response = await axios.post(this.sendOtp, postData)\n this.$emit(\"sent\")\n this.loading = false;\n var { hasError, errorMessages, criticalError, criticalErrorCode, data } = response.data;\n\n if(criticalError){\n this.criticalError(criticalErrorCode);\n return false;\n }\n\n if (hasError) {\n this.handleError(errorMessages);\n return false;\n }\n\n this.handleSuccess(data);\n\n\n } catch (errors) {\n this.$emit(\"sentFailed\")\n this.handleError([this.defaultError]);\n }\n })\n } else {\n this.handleError([this.defaultError])\n }\n \n },\n keypress(evt){\n if (evt.which < 48 || evt.which > 57)\n evt.preventDefault();\n }, \n onInput(evt){\n this.error = false\n this.$emit(\"onInput\", evt)\n },\n criticalError(criticalErrorCode) {\n this.$emit(\"critical\", criticalErrorCode)\n },\n handleError(errorMessages) {\n this.error = true\n this.loading = false;\n this.errorMessages = errorMessages\n this.$emit(\"error\", errorMessages)\n },\n handleSuccess(data) {\n this.$emit(\"success\", data)\n },\n validate(){\n return jQuery(this.$refs.form).valid()\n },\n updateUnobtrusive(){\n var form = jQuery(this.$refs.form)\n .removeData(\"validator\") /* added by the raw jquery.validate plugin */\n .removeData(\n \"unobtrusiveValidation\"\n ); /* added by the jquery unobtrusive plugin*/\n jQuery.validator.unobtrusive.parse(form);\n },\n updateScopedModel(){\n // get model from parent and discard current model\n if(this.injectedModel){ \n this.model = api.fn.clone(this.injectedModel) //jQuery.extend(this.model, this.injectedModel); //api.fn.clone(this.injectedModel) \n \n }\n },\n resetSentCounter(){\n this.sendCounter = 0\n \n },\n startTimer(){\n this.inTime = true\n clearTimeout(this.timer)\n this.timer = setTimeout(()=>{\n this.inTime = false\n }, this.timeOut)\n },\n showResendTimeout(){\n this.showResend = false\n\n setTimeout(()=>{\n this.showResend = true\n }, this.resendTimeout)\n }\n },\n computed:{\n allowResend(){\n return this.sendCounter< this.maxResends\n }\n }\n}\nconst addressFinder = {\n mixins: [mixins, sendCaptcha],\n props: {\n postalStr:{\n type: String,\n default: \"Postal Code\",\n },\n chooseAreaStr:{\n type: String,\n default: \"Choose Area\",\n },\n autocompleteHandler: {\n type: String,\n default: \"\",\n },\n chooseAreaHandler: {\n type: String,\n default: \"\",\n },\n inputValue: {\n type: String,\n default: \"\",\n },\n iniSelectValue: {\n type: String,\n default: \"\"\n },\n postalMaxLength:{\n type: Number,\n default: 5\n },\n minCharacters: {\n type: Number,\n default: 3,\n },\n greReady: false,\n captchaSiteKey: \"\",\n captchaAction: \"\"\n },\n template: \n `
\n
\n \n\n \n\n
\n \n \n\n \n \n\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
`,\n data() {\n return {\n debounceTimer:0,\n startSearch: false,\n search: \"\",\n id: null,\n loading: false,\n areas: [],\n selectArea: this.iniSelectValue,\n errorSearchData: false\n }\n },\n mounted(){\n\n \n this.id = this._.uid;\n\n this.iniArea()\n\n \n\n this.$watch(() => this.inputValue, (newVal, oldVal) => {\n this.search = newVal\n },{\n immediate: true\n })\n },\n methods: {\n noSearchData(){\n this.errorSearchData = true\n this.loading = false\n },\n searchFailed(){\n this.loading = false\n },\n searchCompleted(){\n this.loading = false\n },\n closeAutocomplete(){\n\n },\n keypressPostalCode(evt) {\n if (evt.which < 48 || evt.which > 57)\n evt.preventDefault();\n },\n checkToSearch(ev){\n var val = ev.target.value\n this.search = val\n this.errorSearchData = false\n clearTimeout(this.debounceTimer);\n\n this.$emit(\"postalInput\", val)\n\n this.debounceTimer = setTimeout(() => {\n if (val.length >= this.minCharacters) {\n this.loading = true\n this.startSearch = true;\n this.iniArea()\n this.$refs[\"autocompleter\"].doSearch()\n } else {\n \n }\n }, 500);\n },\n autocompleteClicked(item){\n this.search = item.id\n this.$emit(\"autocompleteClicked\", item, item.id)\n this.startSearch = false;\n this.searchArea()\n },\n async searchArea() {\n var token = await this.callCaptcha()\n if (token){\n this.updateToken(token)\n if (this.chooseAreaHandler !== '' && this.search !== '') {\n this.loading = true\n\n try {\n var response = await axios.post(\n this.chooseAreaHandler,\n {\n value: this.search,\n recaptchaResponse: token\n })\n this.loading = false;\n var { hasError, errorMessages, data } = response.data;\n\n if (hasError) {\n this.handleError(errorMessages);\n return false;\n }\n\n this.areas = [].concat(data)\n\n } catch (err) {\n this.handleError(err);\n }\n\n }\n }\n \n },\n handleError(messages) {\n this.loading = false;\n let errorMsgs\n if(messages){\n errorMsgs = this.hasValue(messages) ? messages : [];\n }\n this.$emit(\"searchFailed\", errorMsgs)\n },\n selectAreaChanged(){\n this.$emit(\"selectAreaChanged\", this.selectArea)\n },\n iniArea(){\n this.selectArea = this.iniSelectValue\n this.areas = []\n\n this.$nextTick(()=> this.selectAreaChanged())\n \n }\n }\n}\nconst errorField = {\n props: {\n errorFields: {\n type: Array,\n default() {\n return []\n },\n },\n keyName: {\n type: String,\n default: '',\n },\n },\n template: `
\n \n
`,\n\n computed: {\n errorMessages() {\n if (\n Array.isArray(this.errorFields) &&\n this.errorFields.length\n ) {\n const errorField = this.errorFields.find( el => el.field === this.keyName )\n if (errorField) return errorField.messages\n }\n return []\n },\n },\n}\n\nconst elementWithTooltip = {\n //mixins: [bsTooltip],\n props: {\n title: { default: '' },\n isLink: {\n type: Boolean,\n default: false\n },\n isText: {\n type: Boolean,\n default: false\n },\n linkUrl: {\n type: String,\n default: \"\"\n },\n target: {\n type: String,\n default: \"\"\n },\n elementType: {\n type: String,\n default: \"\"\n },\n tooltipPlacement: {\n type: String,\n default: 'top'\n },\n customClass: {\n type: String,\n default: \"\"\n }\n },\n template: `\n\n \n \n \n\n \n `,\n data() {\n return {\n tooltip: null,\n tooltipEl: null,\n }\n },\n created() {},\n async mounted() {\n this.tooltipEl = this.$refs.element\n await this.$nextTick()\n\n this.initTooltip()\n },\n beforeUnmount() {\n this.removeTooltip()\n },\n methods: {\n initTooltip() {\n this.tooltip = new bootstrap.Tooltip(this.tooltipEl)\n\n this.tooltipEl.addEventListener('shown.bs.tooltip', this.setPlacement)\n\n this.tooltipEl.addEventListener('mouseleave', this.hideTooltip)\n },\n setPlacement() {\n const tooltip = jQuery(this.tooltipEl)\n if (tooltip.length) {\n const scrlTop =\n jQuery(window).scrollTop() +\n jQuery('.header-devices__body').outerHeight()\n const dif = tooltip.offset().top - scrlTop\n\n if (dif < 0) {\n window.scrollTo(0, jQuery(window).scrollTop() + dif)\n }\n }\n },\n hideTooltip(){\n this.tooltip.hide()\n },\n removeTooltip() {\n this.tooltipEl.removeEventListener('shown.bs.tooltip', this.setPlacement)\n\n this.tooltipEl.removeEventListener('mouseleave', this.hideTooltip)\n //const tooltip = bootstrap.Tooltip.getInstance(this.tooltipEl )\n\n if (!this.tooltip) return\n\n //console.log('tooltip', tooltip)\n\n try {\n this.tooltip.dispose()\n } catch (er) {\n console.log(er)\n }\n },\n },\n}\n\nconst dayNightTableTable = {\n props: {\n tableData: {\n default() {\n return null;\n },\n },\n },\n template: `
\n \n
`,\n methods: {\n whiteClass(cell){\n return cell.white ? 'b-table-grid-charge__cell--white' : ''\n },\n borderClass(cell){\n return cell.border ? '' : 'b-table-grid-charge__cell--no-border'\n },\n doubleCellClass(cell){\n return cell.double ? 'b-table-grid-charge__cell--double' : ''\n }\n },\n computed: {\n dayIconClass() {\n if (this.dayClass) {\n //return this.tableData.day ? \"icon-sun\" : \"icon-moon\";\n return \"\";\n }\n return \"\";\n },\n dayClass() {\n if (this.tableData) {\n return this.tableData.day ? \"b-table-grid-charge--day\" : \"b-table-grid-charge--night\";\n }\n return \"\";\n },\n },\n};\n\nconst dayNightTable = {\n props: {\n handler: { default: \"\" },\n months: {\n type: Object,\n default() {\n return [];\n },\n },\n categories: {\n type: Object,\n default() {\n return [];\n },\n },\n extraPayload:{\n default(){\n return {}\n }\n }\n },\n template: `\n
\n \n
\n
\n \n
\n
1\">\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
`,\n data() {\n return {\n markup: \"\",\n loading: true,\n selectedTab: \"\",\n selectedDate: this.months[0]?.id,\n icons: []\n };\n },\n mounted() {\n this.createIcons()\n },\n methods: {\n monthChanged(e) {\n if (!e) {\n this.selectedDate = this.months[0]?.id;\n } else {\n this.selectedDate = e.target.value;\n }\n this.update();\n },\n tabChanged(id) {\n this.selectedTab = id;\n this.update();\n },\n async update() {\n this.markup = \"\";\n this.loading = true;\n const resp = await axios.post(this.handler, { tab: this.selectedTab, date: this.selectedDate, ...this.extraPayload });\n this.markup = resp.data.data;\n this.loading = false;\n\n // console.log('update', this.markup)\n },\n async getSource(src) {\n if (src !== \"\") {\n const resp = await fetch(src);\n if (resp.ok) {\n const txt = await resp.text()\n return String(txt); \n } else {\n return \"\"\n }\n }\n },\n async createIcons(){\n for (const el of this.categories) {\n this.icons.push(await this.getSource(el.icon))\n };\n }\n },\n computed: {\n },\n};\n\nconst eCardType = {\n props: {\n type: { default: \"power\" },\n powerUrl: { default: \"\" },\n gasUrl: { default: \"\" },\n text: { default: \"\" },\n printSvg: { default: false}\n },\n template: `
\n \n \n\n {{text}}\n
`,\n computed: {\n cardTypeClass(){\n return this.type === 'power' ? 'e-card-type--power' : 'e-card-type--gas'\n },\n imageUrl(){\n return this.type === 'power' ? this.powerUrl : this.gasUrl\n }\n },\n};\n\nconst dashboardAdv = {\n mixins: [unslick],\n data() {\n return {\n windW: 0,\n allowSlick: false\n };\n },\n template: `
\n
\n \n
\n
\n
`,\n mounted() {\n this.$slick = jQuery(this.$refs.slick)\n\n jQuery(document).on(\"ini-ready\", () => {\n this.checkScreen();\n });\n\n jQuery(document).on(\"window-resized\", () => {\n this.checkScreen();\n });\n },\n methods: {\n checkScreen() {\n this.windW = api.vars.windW;\n this.allowSlick = false;\n\n if (this.windW >= 1025 && this.windW <= 1440) {\n this.allowSlick = true;\n }\n },\n iniSlick() {\n this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true,\n slidesToShow: 2,\n appendArrows: jQuery(this.$refs.carousel_arrows),\n });\n }\n },\n watch: {\n allowSlick: {\n handler(newVal) {\n if (newVal) {\n this.iniSlick();\n } else {\n this.unslick();\n }\n }\n }\n }\n};\n\nconst dashboardBills = {\n mixins: [unslick],\n props: {\n bottomAlignClass: {\n type: String,\n default: \"\"\n }\n },\n data() {\n return {\n hasSlick: false\n };\n },\n template: `
\n
\n \n
\n
\n
`,\n mounted() {\n \n this.$slick = jQuery(this.$refs.slick);\n const items = jQuery('.item ',this.$slick)\n const cards = jQuery('.card ',this.$slick)\n\n if(items.length>1 || cards.length >= 1){\n this.iniSlick();\n } else {\n items.find('.b-card').addClass('b-card--full-width')\n items.addClass('item--single')\n }\n \n }, \n methods: {\n iniSlick() {\n this.hasSlick = true\n\n this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true,\n slidesToShow: 3,\n appendArrows: jQuery(this.$refs.carousel_arrows),\n responsive: [\n {\n breakpoint: 1860,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: api.vars.scr.desktop_medium,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: api.vars.scr.tablet,\n settings: {\n slidesToShow: 1,\n },\n },\n ],\n });\n },\n\n callMobileAppFunc(){ \n window.MobileApp.viewSupplyHome()\n },\n\n async refreshSlick(){\n \n this.$slick.slick(\"unslick\");\n\n await this.$nextTick();\n\n this.iniSlick();\n\n }\n }\n};\n\nconst cardNotify = {\n mixins: [mixins],\n props: {\n cardId: {\n type: String,\n default: \"\",\n },\n handler: {\n type: String,\n default: \"\",\n },\n options: {\n type: Array,\n default() {\n return [];\n },\n },\n topUrl: {\n type: String,\n default: \"\"\n }\n },\n template: `
\n \n \n \n \n
\n \n
\n \n \n
\n
\n
\n \n
\n
\n
\n \n
    \n
  • \n \n \n
  • \n
\n \n
\n
\n
\n
\n
`,\n data() {\n return {\n id: null,\n model: [],\n loading: false\n };\n },\n created() {\n this.id = this.makeid();\n\n for(option of this.options){\n this.model.push(option.checked)\n }\n },\n mounted() {\n if (this.handler !== \"\") {\n //this.postData();\n }\n },\n methods: {\n postData() {\n this.errorMsgs = []\n this.loading = true;\n\n this.ajax(this.handler, { \"card-id\": this.cardId, data: this.model });\n },\n handleAjaxSuccess(data) {\n // console.log(data);\n this.model.splice(0, this.model.length, ...data);\n\n },\n clicked() {\n setTimeout(() => {\n this.postData();\n });\n },\n },\n};\n\nconst inputSearchSimple = {\n props: {\n value: {\n type: String,\n default: \"\",\n },\n inputId: {\n type: String,\n default: \"search-input\",\n },\n placeholder: {\n type: String,\n default: \"Search...\",\n },\n buttonText: {\n type: String,\n default: \"search\",\n },\n clearText: {\n type: String,\n default: \"clear search\",\n },\n hasClear: {\n type: Boolean,\n default: true\n },\n leftMagnifier: {\n type: Boolean,\n default: false\n }\n },\n template: `
\n \n
\n \n \n
\n
`,\n data() {\n return {\n search: \"\",\n };\n },\n mounted() {\n this.search = this.value;\n },\n methods: {\n clearInput() {\n this.search = \"\";\n this.$emit(\"cleared\", this.search);\n },\n triggerOnInput() {\n this.$emit(\"searchUpdated\", this.search);\n }\n },\n computed: {\n showClear() {\n return this.search !== \"\" && this.hasClear;\n },\n extraClass(){\n return this.leftMagnifier ? 'input-search--left-search' : ''\n }\n },\n};\n\nconst friendlyAddressEdit = {\n mixins: [mixins],\n props: {\n handler: {\n type: String,\n default: \"\",\n },\n value: {\n type: String,\n default: \"\",\n },\n minLength: {\n type: Number,\n default: 1,\n },\n strEdit: {\n type: String,\n default: \"Edit\",\n },\n strSave: {\n type: String,\n default: \"Save\",\n },\n strCancel: {\n type: String,\n default: \"Cancel\",\n },\n strRequired: {\n type: String,\n default: \"Required field\",\n },\n strTooltip: {\n type: String,\n default: \"\",\n },\n canEdit: {\n type: Boolean,\n default: true,\n },\n iconUrl: {\n type: String,\n default: \"\",\n },\n // if redirect is set, user will be redirected to the page without editing! Skipping all the process!!!\n redirect: {\n type: String,\n default: \"\"\n },\n tooltipEdit: {\n type: String,\n default: \"\"\n },\n tooltipCancel: {\n type: String,\n default: \"\"\n },\n tooltipSave: {\n type: String,\n default: \"\"\n },\n btnAsIcon: {\n type:Boolean,\n default: false\n }\n },\n template: `
\n \n
\n \n
\n
\n \n
\n\n
\n
\n \n
\n
\n

\n \n
\n
\n \n \n \n
\n
\n
\n \n
\n \n \n
`,\n data() {\n return {\n loading: false,\n edit: false,\n initialValue: this.value,\n val: this.value,\n };\n },\n mounted() {\n //this.initTooltip(document);\n },\n updated() {\n //this.initTooltip(document);\n },\n methods: {\n async enableEdit() {\n this.edit = true;\n //this.hideTooltips()\n await this.$nextTick()\n },\n disableEdit() {\n this.edit = false;\n //this.hideTooltips()\n },\n cancelEdit() {\n this.disableEdit();\n this.val = this.initialValue;\n this.$emit('canceled')\n },\n save() {\n if (this.val.length >= this.minLength) {\n this.postData();\n }\n },\n postData() {\n this.errorMsgs = [];\n this.loading = true;\n\n this.ajax(this.handler, { data: this.val });\n },\n handleAjaxSuccess(data) {\n this.initialValue = data;\n this.$emit('saved');\n this.cancelEdit();\n },\n isValid() {\n return this.val.length >= this.minLength;\n },\n\n },\n computed: {\n ctaWrapHorizontal() {\n return !this.btnAsIcon ? 'b-provide-hero__cta-wrap' : 'b-provide-hero__cta-wrap--horizontal';\n }\n }\n};\n\nconst addonCards = {\n mixins: [unslick],\n template: `
\n
\n \n
\n
\n
`,\n mounted() {\n this.$slick = jQuery(this.$refs.slick);\n\n this.iniSlick();\n },\n methods:{\n iniSlick() {\n this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true,\n slidesToShow: 3,\n appendArrows: jQuery(this.$refs.carousel_arrows),\n responsive: [\n {\n breakpoint: 1693,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 830,\n settings: {\n slidesToShow: 1,\n },\n },\n ]\n });\n }\n }\n}\n\n\nconst productCards = {\n mixins: [unslick],\n template: `
\n
\n \n
\n
\n
`,\n mounted() {\n this.$slick = jQuery(this.$refs.slick);\n\n this.iniSlick();\n },\n methods:{\n iniSlick() {\n this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true,\n slidesToShow: 3,\n appendArrows: jQuery(this.$refs.carousel_arrows),\n responsive: [\n {\n breakpoint: 2080,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 1460,\n settings: {\n slidesToShow: 1,\n },\n },\n {\n breakpoint: api.vars.scr.tablet,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: api.vars.scr.tablet - 1,\n settings: {\n slidesToShow: 1,\n },\n },\n ]\n });\n }\n }\n}\nconst billTrackCards = {\n mixins: [unslick],\n data() {\n return {\n windW: 0,\n allowSlick: false\n };\n },\n template: `
\n
\n \n
\n
\n
`,\n mounted() {\n this.$slick = jQuery(this.$refs.slick);\n\n jQuery(document).on(\"ini-ready\", () => {\n this.checkScreen();\n });\n\n jQuery(document).on(\"window-resized\", () => {\n this.checkScreen();\n });\n },\n methods: {\n checkScreen() {\n this.windW = api.vars.windW;\n this.allowSlick = false;\n\n if (this.windW >= api.vars.scr.tablet) {\n this.allowSlick = true;\n }\n\n },\n iniSlick() {\n\n /*this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true,\n slidesToShow: 3,\n appendArrows: jQuery(this.$refs.carousel_arrows),\n responsive: [\n {\n breakpoint: 1640,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 830,\n settings: {\n slidesToShow: 1,\n },\n },\n ]\n });*/\n },\n },\n watch: {\n allowSlick: {\n handler(newVal) {\n if (newVal) {\n this.iniSlick();\n } else {\n this.unslick();\n }\n }\n },\n },\n};\n\nconst modal = {\n mixins: [mixins],\n props: {},\n template: `
\n
\n
\n
\n
\n \n
\n
\n

\n
    \n
  1. {{item}}
  2. \n
\n
\n \n
\n
\n
`,\n props:[\"id\", \"imgLogo\", \"text\", \"list\", \"buttonText\", \"buttonUrl\", \"showModal\"],\n data() {\n return {\n myModal: null,\n };\n },\n created() {},\n mounted() {\n console.log(\"this.showModal\", this.showModal)\n this.myModal = new bootstrap.Modal(document.getElementById(this.id), {\n keyboard: false\n })\n\n if(this.showModal === true){ \n this.myModal.show() \n jQuery('.modal-backdrop').appendTo('.s-charts'); \n jQuery('body').removeClass(\"modal-open\")\n jQuery('body').css('overflow', 'auto')\n }\n\n \n },\n methods: {\n \n },\n};\n\nconst infoMessage = {\n props: {\n message: { default: \"\" },\n },\n template: ``,\n mounted() {\n var tooltip = new bootstrap.Tooltip(this.$el);\n this.$el.addEventListener(\"shown.bs.tooltip\", (el) => {\n this.setPlacement(el);\n });\n\n },\n methods: {\n setPlacement(el) {\n const tooltip = jQuery(el.target);\n if (tooltip.length) {\n const scrlTop = jQuery(window).scrollTop() + jQuery(\".header-devices__body\").outerHeight();\n const dif = tooltip.offset().top - scrlTop;\n\n if (dif < 0) {\n window.scrollTo(0, jQuery(window).scrollTop() + dif);\n }\n }\n },\n },\n};\n\nconst billHistory = {\n mixins: [mixins, windowWidth],\n props: {\n downloadsHandler: {\n type: String,\n default: \"\",\n },\n downloadsNoData: {\n type: String,\n default: \"\",\n },\n documentsHandler: {\n type: String,\n default: \"\",\n },\n buttonMore: {\n type: String,\n default: \"See more\",\n },\n tabDownload: {\n type: String,\n default: \"\",\n },\n tabDocuments: {\n type: String,\n default: \"\",\n },\n perPage: {\n type: Number,\n default: 5,\n },\n lnkView: {\n type: String,\n default: \"view\",\n },\n lnkDownload: {\n type: String,\n default: \"download\",\n },\n tooltipMessage: {\n type: String,\n default: \"\",\n },\n contractAccount:{\n type: String,\n default: \"\",\n },\n noData:{\n type: String,\n default: \"No data found.\"\n }\n },\n template: `
\n
\n\n
    \n
  • \n
    \n \n
    \n
  • \n
  • \n
    \n \n
    \n
  • \n
  • \n
    \n \n
    \n
  • \n
\n\n \n\n \n\n \n\n \n
`,\n data() {\n var iniFilter = -1;\n if (\n window.historyData &&\n window.historyData.types &&\n window.historyData.types.length\n ) {\n iniFilter = window.historyData.types[0].value;\n }\n return {\n history: window.historyData,\n filter: iniFilter,\n notifyDownloads: false,\n };\n },\n mounted() {\n this.initTooltip();\n },\n methods: {\n initTooltip() {\n var tooltipTriggerList = [].slice.call(\n this.$el.querySelectorAll('[data-bs-toggle=\"tooltip\"]:not(.direct-tooltip)')\n );\n var tooltipList = tooltipTriggerList.map((tooltipTriggerEl) => {\n var tooltip = new bootstrap.Tooltip(tooltipTriggerEl);\n tooltipTriggerEl.addEventListener(\"shown.bs.tooltip\", (el) => {\n this.setPlacement();\n });\n return tooltip;\n });\n },\n setPlacement() {\n const tooltip = jQuery(\".tooltip.show.bs-tooltip-top\");\n if (tooltip.length) {\n const scrlTop =\n jQuery(window).scrollTop() +\n jQuery(\".header-devices__body\").outerHeight();\n const dif = tooltip.offset().top - scrlTop;\n\n if (dif < 0) {\n window.scrollTo(0, jQuery(window).scrollTop() + dif);\n }\n }\n },\n\n notifyFetchDownloads(payload, handler) {\n // this.notifyDownloads = true;\n\n if( this.$refs[\"downloads\"]){\n this.$refs[\"downloads\"].postData(payload , handler);\n }\n \n }, \n \n },\n computed:{\n showPeriod(){\n return this.filter === -1 ? true : false\n }\n }\n};\nconst billHistoryChoosePeriod = {\n mixins: [mixins],\n props:{\n handler: {\n type: String,\n default: \"\",\n },\n label: {\n type: String,\n default: \"Choose Dates\",\n },\n placeholderFrom: {\n type: String,\n default: \"From\",\n },\n placeholderTo: {\n type: String,\n default: \"To\",\n },\n buttonSubmit: {\n type: String,\n default: \"Submit\",\n }, \n dateFrom: {\n default: \"\"\n },\n dateTo: {\n default: \"\"\n }, \n strRequired:{\n type: String,\n default: \"Required field\",\n },\n contractAccount:{\n type: String,\n default: \"\",\n }\n },\n template:`
\n\n
\n\n \n
{{label}}
\n\n
\n \n
\n
\n \n
\n\n \n
\n \n \n\n \n
`,\n data(){\n return {\n inputFrom: null,\n inputTo: null,\n loading: false,\n valid: true,\n successMsgs: [],\n errorMsgs:[],\n selectedFromDate:null\n }\n },\n mounted(){\n this.inputFrom = jQuery(this.$refs.inputFrom)\n this.inputTo = jQuery(this.$refs.inputTo)\n\n this.iniDatepicker();\n //this.setDefaultDates()\n },\n methods:{\n checkToPostData(){\n this.successMsgs = []\n this.valid = this.isValid()\n\n if(this.valid){\n // this.postData()\n this.$emit('changed-date', {\n from: this.formattedDate(this.inputFrom.datepicker(\"getDate\")), \n to: this.formattedDate(this.inputTo.datepicker(\"getDate\")) \n } , this.handler)\n }\n },\n\n\n iniDatepicker () { \n this.inputFrom.datepicker({\n minDate:new Date(this.dateFrom),\n maxDate:new Date(this.dateTo),\n dateFormat: \"dd/mm/yy\",\n changeYear: true, \n onSelect: (dateText, obj) => {\n this.setMinDate() \n }\n })\n\n this.inputTo.datepicker({\n minDate:new Date(this.dateFrom),\n maxDate:new Date(this.dateTo),\n dateFormat: \"dd/mm/yy\",\n changeYear: true,\n onSelect: (dateText, obj) => {\n this.setMaxDate()\n }\n })\n },\n // setDefaultDates(){\n // if(this.dateFrom!==''){\n // const d = new Date(this.dateFrom)\n // this.inputFrom.datepicker( \"setDate\", d);\n // this.inputFrom.val(this.formattedDate(d)) \n // this.setMinDate() \n // }\n // if(this.dateTo!==''){\n // const d = new Date(this.dateTo)\n // this.inputTo.datepicker( \"setDate\", d);\n // this.inputTo.val(this.formattedDate(d))\n // this.setMaxDate()\n // }\n // },\n \n setMinDate(){\n let currentDate = this.inputFrom.datepicker(\"getDate\");\n this.inputTo.datepicker( \"option\", \"minDate\", currentDate)\n },\n setMaxDate(){\n let currentDate = this.inputTo.datepicker(\"getDate\");\n this.inputFrom.datepicker( \"option\", \"maxDate\", currentDate)\n },\n\n formattedDate(today){ \n const yyyy = today.getFullYear();\n let mm = today.getMonth() + 1; // Months start at 0!\n let dd = today.getDate();\n if (dd < 10) dd = '0' + dd;\n if (mm < 10) mm = '0' + mm;\n return yyyy + '-' + mm + '-' + dd;\n },\n \n isValid(){\n if(this.inputFrom && this.inputTo){\n return this.inputFrom.val() !=='' && this.inputTo.val() !==''\n }\n return true\n }\n }\n}\nconst billHistoryTable = {\n props: {\n columns: {\n default() {\n return [];\n } \n },\n records: {\n default() {\n return [];\n }, \n },\n filter: { default: 0 },\n buttonMore: { default: \"See more\" },\n lnkView: { default: \"view\" },\n lnkDownload: { default: \"download\" },\n attachments: { default: true },\n perPage: { default: 4 },\n tooltipMessage: { default: \"\" },\n },\n template: ` \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
{{col}}
\n
\n\n
\n \n
\n
\n `,\n data() {\n return {\n page: 1,\n };\n },\n methods: {\n showMore() {\n this.page = this.page + 1;\n },\n trClasses(item) {\n if (item.redeemed) {\n return 'redeemed'\n }\n if (item.type === 2) {\n return 'paid'\n }\n return ''\n },\n\n inactiveClass(item){\n if(item.status && (item.status === 'PENDING' || item.status === 'NEW')){\n return 'inactive'\n }\n\n return ''\n },\n expired(item){\n return item.status && (item.status === 'EXPIRED' || item.status === 'FAILED')? true : false \n } \n },\n computed: {\n filtered() {\n if (this.filter > 0) {\n return this.records.filter((el) => el.type === this.filter);\n }\n return this.records;\n },\n pagedData() { \n const arr = [].concat(this.filtered);\n return arr.splice(0, Number(this.page * this.perPage));\n },\n \n },\n watch: {\n filter: {\n handler() {\n this.page = 1;\n },\n },\n },\n};\n\nconst billHistoryCards = {\n mixins: [unslick],\n props: [\n \"columns\",\n \"filter\",\n \"records\",\n \"lnkView\",\n \"lnkDownload\",\n \"lastCol\",\n \"tooltipMessage\",\n \"noData\"\n ],\n template: `
\n\n \n\n
`,\n data() {\n return {\n ready: true,\n };\n },\n\n computed: {\n filtered() {\n if (this.filter > 0) {\n return this.records.filter((el) => el.type === this.filter);\n }\n return this.records;\n }, \n showPreviewBtn(){\n return this.filter !== -1 ? true : false\n }\n },\n watch: {\n filter: {\n handler() {\n this.ready = false;\n\n this.$nextTick(() => {\n this.ready = true;\n });\n },\n },\n },\n};\n\nconst billHistoryCardsSlick = {\n mixins: [unslick],\n props:[],\n template:`
\n \n
\n
`, \n data(){\n return {\n }\n },\n mounted() {\n\n this.$slick = jQuery(this.$refs.slick);\n\n this.iniSlick();\n \n }, \n methods: {\n iniSlick() {\n this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true,\n slidesToShow: 2,\n appendArrows: jQuery(this.$refs.carousel_arrows),\n responsive: [\n {\n breakpoint: api.vars.scr.tablet - 1,\n settings: {\n slidesToShow: 1,\n },\n },\n ]\n })\n } \n }\n}\nconst billHistoryFetchDownloads = {\n mixins: [mixins, windowWidth],\n props:{ \n handler:{\n type: String,\n default: \"\",\n }, \n noData:{\n type: String,\n default: \"\",\n },\n buttonMore: {\n type: String,\n default: \"See more\",\n },\n perPage:{\n type: Number,\n default: 5\n },\n lnkView: {\n type: String,\n default: \"view\",\n },\n lnkDownload: {\n type: String,\n default: \"download\",\n },\n // notify:{\n // type: Boolean,\n // default: false\n // },\n contractAccount:{\n type: String,\n default: \"\",\n },\n filter:{\n type: Number,\n default: \"\",\n },\n noData:{\n type: String,\n default: \"No data found.\"\n }\n },\n template:`
\n\n \n \n
\n

{{noData}}

\n
\n\n \n \n \n\n
`,\n data() {\n return {\n id: null,\n data: {},\n // hasNotify: this.notify,\n showRefreshMsg:false,\n errorMsgs :[]\n };\n },\n mounted() {\n if (this.handler !== \"\") {\n this.postData();\n }\n },\n methods:{\n clickToGetData(){\n // this.hasNotify = false\n this.postData()\n },\n postData(payload, dateHandler) {\n const handler = dateHandler ? dateHandler : this.handler \n \n\n let obj = { \n \"contract_account\": this.contractAccount\n }\n\n if(payload && (payload.from || payload.to)){\n\n obj = {\n ...obj,\n ...payload\n } \n }\n \n this.data = []\n this.errorMsgs = []\n this.loading = true; \n \n this.ajax(handler, obj);\n },\n\n handleAjaxSuccess(data) { \n this.data = data\n\n this.$nextTick(()=>{\n var pendingElem = data.data.filter(x => x.status === 'PENDING') \n if(pendingElem.length){ \n this.showRefreshMsg = true\n }else{ \n this.showRefreshMsg = false\n }\n }) \n },\n },\n watch:{\n // notify(newVal){\n // this.hasNotify = newVal\n // }\n },\n computed:{\n // showNotify(){\n // return this.hasNotify\n // },\n heightClass(){ \n return this.data === null ? 'b-bill-history-fetch-downloads--sml' : ''\n }, \n }\n}\nconst billHistoryFetchDocuments = {\n mixins: [mixins, windowWidth],\n props: {\n handler:{\n type: String,\n default: \"\",\n },\n contractAccount:{\n type: String,\n default: \"\",\n }, \n buttonMore: {\n type: String,\n default: \"See more\",\n },\n perPage:{\n type: Number,\n default: 5\n },\n lnkView: {\n type: String,\n default: \"view\",\n },\n lnkDownload: {\n type: String,\n default: \"download\",\n },\n filter:{\n type: Number,\n default: \"\",\n },\n noData:{\n type: String,\n default: \"No data found.\"\n } \n },\n template: ` \n
\n\n \n \n \n\n \n\n
\n `,\n data() {\n return {\n records: []\n };\n },\n mounted() {\n if (this.handler !== \"\") {\n this.postData();\n } \n },\n methods: {\n postData() {\n this.records = []\n this.errorMsgs = []\n this.loading = true; \n \n this.ajax(this.handler, { \"contract_account\": this.contractAccount});\n },\n handleAjaxSuccess(data) { \n this.records = data\n },\n\n \n } \n};\n\nconst charts = {\n mixins: [mixins],\n props: {},\n template: `\n
\n \n\n
\n

{{title}}

\n {{primaryButton}}\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n \n \n
`,\n props:[\"title\", \"primaryButton\", \"squareButton\", \"primaryBtnUrl\", \"squareBtnUrl\", \"primaryBtnTarget\", \"squareBtnTarget\", \"squareLabel\", \"squareMeters\"],\n data() {\n return {};\n },\n created() {},\n mounted() {\n \n \n },\n methods: {\n callMobileAppFunc(){ \n window.MobileApp.myEnergyLoginSupply()\n },\n callModalMobileApp(){\n window.MobileApp.myEnergyLoginActivation()\n }\n },\n};\n\nconst pieChart = {\n mixins: [mixins, chartsCommon],\n props: {},\n template: `\n
{{title}}
\n
\n \n
`,\n data() {\n return {\n chartId: 'chart-id-' + this.makeid()\n };\n },\n created() {},\n mounted() {\n this.elem = jQuery(this.$el);\n\n setTimeout((_) => {\n this.initPieChart();\n });\n },\n methods: {\n initPieChart() {\n const ctx = document.getElementById(this.chartId).getContext('2d');\n \n this.formaliseData()\n\n const myChart = new Chart(ctx, {\n type: 'doughnut',\n data: this.chartData,\n options: {\n responsive:true,\n maintainAspectRatio: false,\n plugins: {\n legend: { display: false },\n tooltip: this.tooltipSettings()\n }\n }\n });\n }\n },\n};\n\nconst barChart = {\n mixins: [mixins, chartsCommon], \n template: `
{{title}}
\n
\n \n
`,\n mounted() {\n setTimeout((_) => {\n this.iniBarChart();\n });\n },\n methods: {\n\n iniBarChart() {\n const ctx = document.getElementById(this.chartId).getContext(\"2d\");\n\n this.formaliseData()\n\n const myChart = new Chart(ctx, {\n type: \"bar\",\n data: this.chartData,\n options: {\n categoryPercentage: 0.5,\n barPercentage: 0.9,\n scales: {\n y: {\n suggestedMax: this.maxValue * 1.2,\n },\n },\n responsive: true,\n maintainAspectRatio: false,\n legend: { display: false },\n borderRadius: {\n topLeft: 4,\n topRight: 4,\n },\n // interaction: { mode: 'nearest' },\n plugins: {\n legend: { display: false },\n tooltip: this.tooltipSettings()\n },\n },\n });\n },\n },\n};\n\nconst consumptionWizard = {\n mixins: [mixins],\n props:{\n handler: {default: \"\"},\n day: {default: \"\"},\n dayLabel: { default: \"\"},\n minDayLimit: {default: 0},\n maxDayLimit: {default: 0},\n night: {default: \"\"},\n nightLabel: { default: \"\"},\n minNightLimit: {default: 0},\n maxNightLimit: {default: 0},\n\n\n strWarningEmpty: {default: \"Required field\"},\n strWarningDecimals: {default: \"Warning decimals\"},\n strWarningMaxlimitDay: {default: \"Warning above day max limit\"},\n strWarningMaxlimitNight: {default: \"Warning above night max limit\"},\n strWarningMinlimitDay: {default: \"Warning below min limit\"},\n strWarningMinlimitNight: {default: \"Warning below min limit\"},\n unit: {default: \"kWh\"},\n isOpened:{default: true},\n \n strBtnSubmit: {default: \"submit\"},\n strBtnSwitchNight: {default: \"night\"},\n strBtnSwitchDay: {default: \"day\"},\n strBtnClear: {default: \"clear\"},\n strBtnConfirm: {default: \"confirm\"},\n strBtnFinalSubmit: {default: \"final submit\"},\n strBtnEdit: {default: \"edit\"},\n strBtnBack: {default: \"back\"},\n\n allowMinDay:{default: false},\n allowMinNight:{default: false},\n strConfirmMinlimitDay: {default: \"Warning below min day limit\"},\n strConfirmMinlimitNight: {default: \"Warning below min night limit\"},\n\n },\n template:`\n
\n
\n \n \n \n \n \n \n \n
\n\n \n\n
\n\n \n\n \n\n\n \n \n \n \n\n \n
\n \n
\n\n
\n
\n \n
\n\n\n
\n `,\n data(){\n return{\n state: \"day\",\n finalResponse: null,\n loading: false,\n warning: \"\",\n\n model:{\n day: this.day,\n night: this.night\n },\n touched:{\n day: false,\n night: false\n },\n showCTAS: true\n }\n },\n mounted(){\n },\n methods:{\n onFieldWarning(_case){\n this.warning = _case \n },\n finalSubmit(){\n this.state = \"summary\"\n this.errorMsgs = []\n this.loading = true;\n\n this.ajax(this.handler, this.model);\n },\n handleAjaxSuccess(data) {\n this.finalResponse = data\n this.model.day = data.day\n this.model.night = data.night\n },\n switchToDay(){\n this.state = 'day'\n this.warning = \"\"\n },\n validateStep(){\n this.$refs.field.validate()\n\n this.$nextTick(()=>{\n if(this.warning===''){\n this.toSubmit()\n }\n })\n },\n submitWithLimitWarnings(){\n if(this.warning==='' || this.warning==='maxlimit' || this.warning==='confirmMinlimit'){\n this.toSubmit()\n }\n },\n toSubmit(){\n this.warning = \"\"\n this.touched[this.state] = true\n this.model[this.state] = this.$refs.field.getValue()\n\n if(this.state==='day'){\n if(this.hasNight){\n this.state = 'night'\n } else {\n this.finalSubmit()\n }\n } else {\n this.finalSubmit()\n }\n },\n clearField(){\n this.$refs.field.clearField()\n this.$nextTick(()=>{\n this.model[this.state] = this.$refs.field.getValue()\n })\n },\n edit(){\n this.state = \"day\"\n }\n },\n computed:{\n labelByState(){\n if(this.state==='day'){\n return this.dayLabel\n } else {\n return this.nightLabel\n }\n },\n hasNight(){\n return this.night !== ''\n },\n calcMinLimit(){\n if(this.state==='day'){\n return this.minDayLimit\n } else {\n return this.minNightLimit\n }\n },\n calcMaxLimit(){\n if(this.state==='day'){\n return this.maxDayLimit\n } else {\n return this.maxNightLimit\n }\n },\n calcStrWarningMinlimit(){\n if(this.state==='day'){\n return this.strWarningMinlimitDay\n } else {\n return this.strWarningMinlimitNight\n }\n },\n calcStrWarningMaxlimit(){\n if(this.state==='day'){\n return this.strWarningMaxlimitDay\n } else {\n return this.strWarningMaxlimitNight\n }\n },\n calcStrConfirmMinlimit(){\n if(this.state==='day'){\n return this.strConfirmMinlimitDay\n } else {\n return this.strConfirmMinlimitNight\n }\n },\n calcInitialValue(){\n if(this.state==='day'){\n return this.day\n } else {\n return this.night\n }\n },\n calcCurrentValue(){\n return this.model[this.state]\n },\n updateValue(){\n return this.touched[this.state]\n }\n \n }\n}\nconst consumptionCtas = {\n props:{\n hasNight: {default: true},\n dayNight: { default: \"day\" },\n warning: { default: ''},\n strBtnSubmit: {default: \"submit\"},\n strBtnSwitchNight: {default: \"night\"},\n strBtnSwitchDay: {default: \"day\"},\n strBtnClear: {default: \"clear\"},\n strBtnConfirm: {default: \"confirm\"},\n strBtnFinalSubmit: {default: \"final submit\"},\n allowMinDay:{default: false},\n allowMinNight:{default: false},\n },\n template:`
\n \n \n
`\n}\nconst consumptionField = {\n props: {\n updateValue: { default: false },\n placeholder: { default: \"\" },\n currentValue: { default: \"\" },\n label: { default: \"\" },\n dayNight: { default: \"day\" },\n minLimit: { default: 0 },\n maxLimit: { default: 0 },\n unit: { default: \"\" },\n strWarningEmpty: { default: \"\" },\n strWarningDecimals: { default: \"\" },\n strWarningMinlimit: { default: \"\" },\n strWarningMaxlimit: { default: \"\" },\n\n allowMinDay:{default: false},\n allowMinNight:{default: false},\n strConfirmMinlimit: { default: \"\" }\n },\n template: `
\n \n
\n
\n \n
{{unit}}
\n
\n
\n
\n
\n
\n
\n
\n \n
`,\n data() {\n return {\n model: \"\",\n valueLength: this.placeholder.length,\n warningNoVal: false,\n warningDecimals: false,\n warningMaxLimit: false,\n warningMinLimit: false,\n confirmMinLimit: false,\n disabled: false\n };\n },\n created() {\n if (this.updateValue) {\n this.model = this.currentValue;\n }\n },\n methods: {\n onInput(ev){\n this.checkDecimals()\n this.model = this.model.replace(/[^0-9]/g, '').replace(/(\\..*?)\\..*/g, '$1');\n },\n blurred() {\n this.checkHasValue();\n //this.checkMinLimit();\n this.checkDecimals()\n //this.checkMaxLimit()\n this.setLeftPad();\n },\n resetAllWarnings() {\n this.warningDecimals = false;\n this.warningMinLimit = false;\n this.warningMaxLimit = false;\n this.confirmMinLimit = false\n this.warningNoVal = false;\n },\n keyup(e) {\n this.warningMinLimit = false;\n this.warningMaxLimit = false;\n this.confirmMinLimit = false\n this.warningNoVal = false;\n //this.resetAllWarnings();\n\n // const n = this.modelAsNumber;\n // if (!Number.isInteger(n)) {\n // this.warningDecimals = true;\n // } else {\n // this.warningDecimals = false;\n // }\n },\n validate() {\n this.checkMinLimit();\n this.checkMaxLimit();\n this.checkHasValue();\n },\n checkDecimals(){\n if(this.model.indexOf('.')>=0){\n this.warningDecimals = true;\n } else {\n this.warningDecimals = false;\n }\n },\n checkMaxLimit() {\n if (this.model !== \"\") {\n this.disabled = true\n const n = this.modelAsNumber;\n const c = +this.maxLimit;\n if (n > c) {\n this.warningMaxLimit = true;\n } else {\n this.warningMaxLimit = false;\n }\n }\n },\n checkMinLimit() {\n if (this.model !== \"\") {\n this.disabled = true\n const n = this.modelAsNumber;\n const c = +this.minLimit;\n if (n < c) {\n if(this.dayNight === 'day' && this.allowMinDay || this.dayNight === 'night' && this.allowMinNight){\n this.warningMinLimit = false;\n this.confirmMinLimit = true\n } else {\n this.warningMinLimit = true;\n this.confirmMinLimit = false\n }\n } else {\n this.warningMinLimit = false;\n this.confirmMinLimit = false\n }\n }\n },\n checkHasValue() { \n if (this.model === \"\") {\n this.warningNoVal = true;\n } else {\n this.warningNoVal = false;\n }\n },\n setLeftPad() {\n const m = String(this.model);\n const difLen = m.length - this.inputLength;\n if (m.length) {\n if (difLen < 0) {\n this.model = this.padLeadingZeros(this.model, this.inputLength);\n }\n }\n },\n padLeadingZeros(num, size) {\n var s = String(num) + \"\";\n while (s.length < size) s = \"0\" + s;\n return s;\n },\n getValue() {\n return this.model;\n },\n clearField() {\n this.disabled = false\n this.resetAllWarnings();\n this.model = \"\";\n },\n },\n computed: {\n warningClasses() {\n if (this.warningNoVal) {\n return \"warning warning--value\";\n }\n if (this.warningDecimals) {\n return \"warning warning--decimal\";\n }\n if (this.warningMaxLimit) {\n return \"warning warning--maxlimit\";\n }\n if (this.warningMinLimit) {\n return \"warning warning--minlimit\";\n }\n if (this.confirmMinLimit) {\n return \"warning warning--minlimit\";\n }\n return \"\";\n },\n inputLength() {\n return this.placeholder.length;\n },\n modelAsNumber() {\n return +this.model;\n },\n },\n watch: {\n warningClasses() {\n if (this.warningNoVal) {\n this.$emit(\"warning\", \"value\");\n } else if (this.warningDecimals) {\n this.$emit(\"warning\", \"decimal\");\n } else if (this.warningMaxLimit) {\n this.$emit(\"warning\", \"maxlimit\");\n } else if (this.warningMinLimit) {\n this.$emit(\"warning\", \"minlimit\");\n } else if (this.confirmMinLimit) {\n this.$emit(\"warning\", \"confirmMinlimit\");\n } else {\n this.$emit(\"warning\", \"\");\n }\n },\n },\n};\n\nconst consumptionSummary = {\n props: {\n errorMsgs: {default(){return []}},\n strBtnEdit: {default: \"edit\"},\n strBtnBack: {default: \"back\"},\n unit: {default: \"kWh\"},\n data: {default(){return null}}\n },\n template:`
\n \n \n
`,\nmounted: function () {\n window.MobileApp.succNetMetering()\n},\n\n}\nconst consumptionSteps = {\n props:{\n state: { default: \"day\" },\n },\n template:`
\n
1
\n
\n
2
\n
`,\n methods:{\n extraClasses(current){\n if(this.state===current){\n return 'active'\n }\n if(current==='day' && (this.state==='night' || this.state==='summary')){\n return 'completed'\n }\n if(current==='night' && this.state==='summary'){\n return 'completed'\n }\n }\n }\n}\nconst toggleCheckbox = {\n mixins: [mixins],\n template: `
\n \n
`,\n props: {\n inactiveText: {\n type: String,\n required: true\n }, \n activeText: {\n type: String,\n required: true\n }, \n modelValue: Boolean,\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue', 'change', 'input'],\n data() {\n return {\n active: this.modelValue\n };\n },\n created() {\n\n },\n mounted() {\n \n },\n methods: {\n updateValue() {\n this.$emit('update:modelValue', this.active)\n this.$emit('change', this.active)\n },\n inputValue() {\n this.$emit('input', this.active)\n }\n },\n watch: {\n modelValue(newValue) {\n this.active = newValue\n }\n },\n};\n\nconst programBillOptions = {\n mixins: [mixins],\n props: {},\n template: ``,\n props:[],\n data() {\n return {\n active:null\n };\n },\n created() {\n\n },\n mounted() {\n console.log('program bill')\n \n },\n methods: {\n changedToggleCheck(isActive){\n console.log('emit', isActive )\n this.active = isActive\n }\n },\n};\n\nconst detailAddon = {\n mixins: [mixins],\n props: {\n id:{default: ''},\n bg:{default: ''},\n checkHandler:{default: ''},\n removeHandler:{default: ''}\n },\n template: `
\n \n\n \n\n \n \n\n \n \n \n \n \n \n
`,\n data() {\n return {\n loading: false,\n phaseCheck: true,\n notAllowMessage: [],\n isRemoved: false,\n removedMessaged: [],\n errorMsgs: []\n };\n },\n created() {},\n mounted() {\n this.iniAlertCloseEvent()\n },\n methods: {\n remove(){\n this.errorMsgs = []\n this.phaseCheck = true\n this.notAllowMessage = []\n this.loading = true;\n\n this.ajax(this.checkHandler, { id: this.id})\n },\n handleAjaxSuccess(data) {\n if(this.phaseCheck){\n if(data.allow){\n this.$refs.addonModalConfirm.show()\n } else {\n this.notAllowMessage.push(data.message)\n }\n } else {\n this.removedMessaged.push(data)\n this.isRemoved = true\n }\n },\n cancelRemove(){\n this.$refs.addonModalConfirm.hide()\n },\n continueRemove(){\n this.errorMsgs = []\n this.phaseCheck = false\n this.notAllowMessage = []\n this.removedMessaged = []\n this.loading = true;\n\n this.$refs.addonModalConfirm.hide()\n\n this.ajax(this.removeHandler, { id: this.id})\n },\n iniAlertCloseEvent(){\n jQuery(this.$el).on('click', '.alert-success .btn-close', (ev)=>{\n this.$emit('alert-removed', ev)\n })\n }\n },\n computed:{\n headerBg() {\n return `background-image:url(${this.bg})`\n },\n }\n};\n\nconst youtubeSingle = {\n mixins: [mixins],\n props: {\n width: { type: Number, default: 480 },\n height: { type: Number, default: 320 },\n autoplay: {\n type: Number,\n default: 1,\n validator: (v) => Number(v) === 0 || Number(v) === 1,\n },\n videoid: { type: String, required: true },\n loop: {\n type: Number,\n default: 1,\n validator: (v) => Number(v) === 0 || Number(v) === 1,\n },\n controls: {\n type: Number,\n default: 0,\n validator: (v) => Number(v) === 0 || Number(v) === 1,\n },\n modestbranding: {\n type: Number,\n default: 1,\n validator: (v) => Number(v) === 0 || Number(v) === 1,\n },\n },\n template: `
\n \n
\n
\n
\n
`,\n data() {\n return {\n ready: 0,\n playerid: \"youtube-vue-player-\" + this.makeid(),\n };\n },\n mounted() {\n if (api.vars.IframeAPIReady) {\n this.iniPlayer();\n } else {\n jQuery(document).on(\"youtubeReady\", () => {\n this.iniPlayer();\n });\n }\n },\n methods: {\n iniPlayer() {\n let playerVars = {\n autoplay: this.autoplay,\n loop: this.loop,\n controls: this.controls,\n modestbranding: this.modestbranding,\n playlist: this.video_id,\n };\n\n this.player = new window.YT.Player(this.playerid, {\n host: \"https://www.youtube.com\",\n width: this.width,\n height: this.height,\n videoId: this.videoid,\n playerVars: playerVars,\n events: {\n onReady: (e) => {\n this.$emit(\"ready\");\n },\n stateChange: (e) => {\n if (e.data === window.YT.PlayerState.ENDED) {\n this.$emit(\"ended\");\n } else if (e.data === window.YT.PlayerState.PAUSED) {\n this.$emit(\"paused\");\n } else if (e.data === window.YT.PlayerState.PLAYING) {\n this.$emit(\"played\");\n }\n },\n },\n });\n }\n },\n unmounted() {\n if (this.player) this.player.destroy();\n delete this.player;\n },\n watch: {\n videoid() {\n this.player.loadVideoById(this.videoid);\n if (this.autoplay > 0) this.player.playVideo();\n },\n list() {\n this.player.getPlaylist(this.list);\n if (this.autoplay > 0) this.player.playVideo();\n },\n },\n};\n\nconst youtubeMulti = {\n props:{\n items: {default(){return []}},\n active: {default: 0}\n },\n template:`
\n
\n
\n
\n \n \n
\n \"\"\n
\n
\n
\n \n
\n \n
\n
\n {{item.txt}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
`,\n data(){\n return{\n activeItem: this.active\n }\n },\n methods:{\n activeClass(index){\n return this.isActive(index) ? 'active' : ''\n },\n setActive(index){\n this.activeItem = index\n },\n isActive(index){\n return index === this.activeItem\n }\n },\n computed:{\n selectedItem(){\n return this.items[this.activeItem]\n },\n activeYouTubeId(){\n if(this.selectedItem && this.selectedItem.vid){\n return this.selectedItem.vid\n }\n return null\n }\n }\n}\nconst greenPromoCodes = {\n mixins: [mixins],\n props:{\n preCoupon: { default: ''},\n contractAccount: { default: '' },\n alwaysAllowRedeem: { default: false },\n placeholder: { default: ''},\n inputLabel:{ default: ''},\n inputLength: { default: 5},\n strBtnSubmit: { default: 'Submit'},\n strBtnRestart: { default: 'Restart'},\n strSuccess: {default: \"\"},\n strInfoLearnMore: {default: \"\"},\n strCoupon: {default: \"\"},\n handler: { default: \"\" },\n strWarningNoValue: { default: \"Required field\" },\n },\n template:`
\n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
{{strCoupon}}
\n
{{couponNumber}}
\n
\n \n
\n
\n
\n
`,\n data(){\n return {\n model:'',\n isFocus: false,\n results: false,\n loading: false,\n warning: \"\",\n couponNumber: \"\"\n }\n },\n created(){\n\n },\n mounted() {\n // shortcut for testings:\n //this.val=\"tet\"\n //this.checkToPostData()\n this.$nextTick(()=>{\n if(this.preCoupon){\n this.couponNumber = this.preCoupon\n this.results = true\n }\n })\n },\n methods:{\n onInput(ev){\n this.model = this.model.replace(/[^0-9A-Za-z-]/g, '').replace(/(\\..*?)\\..*/g, '$1');\n this.warning = \"\"\n },\n onFocus(){\n this.isFocus = true\n },\n blurred(){\n this.isFocus = false\n },\n keyup(){\n\n },\n getData(){\n if(this.model===''){\n this.warning = this.strWarningNoValue\n return\n }\n this.errorMsgs = []\n this.loading = true\n this.warning = \"\"\n this.couponNumber = \"\"\n\n this.ajax(this.handler, { data: this.model, contractAccount: this.contractAccount });\n },\n handleAjaxSuccess(data) {\n this.results = true\n this.couponNumber = data\n },\n handleAjaxError(messages) {\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n console.log('handleAjaxError', this.errorMsgs)\n this.warning = this.errorMsgs[0]\n }\n },\n computed:{\n disabled(){\n return false\n },\n stateClasses(){\n if(this.isFocus){\n return 'focused'\n }\n return ''\n },\n errorClasses(){ \n return this.warning!=='' ? 'warning warning--value' : ''\n }\n }\n}\nconst redeemInSupply = {\n props:{\n noSupplies: { default: false},\n supplies: { default(){return []}},\n ctaStr: { default: 'Redeem'},\n errorStr: { default: 'No supply selected'},\n noSuppliesStr: { default: 'No supplies found'}\n\n },\n template:`
\n
\n
\n \n {{errorStr}}\n
\n \n {{ctaStr}}\n \n
\n \n
`,\n data(){\n return {\n url: '',\n supplyId: '',\n supplyItem: null,\n error: false\n }\n },\n mounted(){\n console.log('redeem-in-supply')\n },\n methods:{\n update(supplyId, supply){\n this.error = false\n this.supplyId = supplyId\n this.supplyItem = supply\n },\n showError(){\n this.error = true\n }\n },\n computed:{\n hasSupply(){\n return this.supplyId ? true : false\n },\n activeUrl(){\n if(this.hasSupply && this.supplyItem && this.supplyItem.url){\n return this.supplyItem.url\n }\n return ''\n }\n }\n}\nconst summaryProducts = {\n props: {\n product: {\n type: Object,\n default: null\n }\n },\n template: `\n
\n {{ product.prNotifText }}\n\n \n\n
\n \n \n\n \n\n \n \n
\n\n
`,\n};\n\nconst summaryAddons = {\n props: {\n addon: {\n type: Object,\n default: null\n },\n },\n template: `\n\n
\n\n \n\n
\n \n \n\n \n\n \n \n
\n\n
`,\n};\nconst summaryProductsHead = {\n props: {\n headData: {\n type: Object,\n default: null,\n },\n verticalLogo: {\n type: Boolean,\n default: false\n }\n },\n \n template: `
\n
\n
\n
\n \n {{headData.badge.txt}}\n \"\"\n
\n
\n
`,\ncomputed: {\n verticalLogoDynClass() {\n return this.verticalLogo === true ? 'b-product-card__head--vertical-logo' : '';\n },\n},\n}\nconst suppliesNavigation = {\n // mixins: [unslick],\n props: {\n supplies: {\n default() {\n return [];\n },\n },\n powerUrl: { default: \"\" },\n gasUrl: { default: \"\" },\n activePowerBg: { default: \"\" },\n activePowerBgPattern: { default: \"\" },\n activeGasBg: { default: \"\" },\n activeGasBgPattern: { default: \"\" },\n userHasAccessStr: {\n type: Array,\n default: []\n },\n userIcon: { default: \"\" }\n },\n template: `
\n\n
\n
\n\n \n \n \n
\n
\n \"\"\n \"\"\n
\n \n \n \n \n
\n
\n \n
{{item.address}}
\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n
`,\n data() {\n return {\n windW: 0,\n allowSlick: false,\n \n };\n },\n mounted() {\n console.log('User Icon:', this.userIcon);\n\n \n this.$slick = jQuery(this.$refs.slick);\n\n this.iniSlick()\n\n // jQuery(document).on(\"ini-ready\", () => {\n // this.checkScreen();\n // });\n\n // jQuery(document).on(\"window-resized\", () => {\n // this.checkScreen();\n // });\n },\n computed: {},\n methods: {\n checkScreen() {\n this.windW = api.vars.windW;\n this.allowSlick = false;\n\n if (this.windW >= api.vars.scr.tablet) {\n this.allowSlick = true;\n }\n },\n image(item) {\n return item.categ === \"power\" ? this.powerUrl : this.gasUrl;\n },\n iniSlick() {\n this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n appendArrows: jQuery(this.$el).find(\".carousel_arrows\"),\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true,\n slidesToShow: 4,\n responsive: [\n {\n breakpoint: 1980,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 1100,\n settings: {\n slidesToShow: 1,\n },\n },\n {\n breakpoint: api.vars.scr.desktop,\n settings: {\n slidesToShow: 1,\n arrows: false\n },\n },\n ],\n });\n },\n link(item) {\n return item.active ? \"#\" : item.url;\n },\n activeClass(item) {\n return item.active ? \"b-supplies-navigation__link--active\" : \"\";\n },\n contentClass(item) {\n return item.userHasAccess ? \"b-supplies-navigation__content-pad\" : \"\";\n },\n activeBg(item) {\n return item.active\n ? item.type === \"power\"\n ? this.activePowerBg\n : this.activeGasBg\n : \"\";\n },\n activeBgPattern(item) {\n return item.active\n ? item.type === \"power\"\n ? this.activePowerBgPattern\n : this.activeGasBgPattern\n : \"\";\n },\n editClicked() {\n this.$emit('edit-clicked');\n },\n },\n // watch: {\n // allowSlick: {\n // handler(newVal) {\n // if (newVal) {\n // this.iniSlick();\n // } else {\n // this.unslick();\n // }\n // },\n // },\n // },\n};\n\nconst supplyNavigation = {\n mixins: [unslick],\n template: `
\n
\n
\n \n
\n
\n\n
`,\n mounted() {\n this.$slick = jQuery(this.$refs.slick);\n\n this.iniSlick();\n },\n methods: {\n iniSlick() {\n this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: false,\n slidesToShow: 3,\n // appendArrows: jQuery(this.$refs.carousel_arrows),\n responsive: [\n {\n breakpoint: 1920,\n settings: {\n slidesToShow: 3,\n },\n },\n {\n breakpoint: 1440,\n settings: {\n slidesToShow: 2.5,\n },\n },\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 2.25,\n },\n },\n {\n breakpoint: api.vars.scr.tablet,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 520,\n settings: {\n slidesToShow: 1.25,\n },\n },\n ]\n });\n },\n }\n}\nconst chooseProductStep = {\n mixins: [cpx_mixins],\n props:{\n stepNumber: {default: 0},\n activePerc: { default: 100},\n completePerc: {default: 0},\n stateClass: {default:''},\n isJump: { default: false},\n step: { default: null}\n },\n template: `\n
\n
\n \n \n
\n
\n
{{step.lbl}}
\n
    \n
  • \n
    {{selected.label}}
    \n
  • \n
\n
\n
`, \n};\n\nconst chooseProductSteps = {\n mixins: [cpx_mixins],\n template: `
\n
\n \n \n \n \n
\n
`,\n methods: {\n stepClass(index) {\n if (this.currentStep > index) {\n return \"completed\";\n }\n if (this.currentStep === index) {\n return \"active\";\n }\n return \"disabled\";\n },\n activePercent(index) {\n if (this.currentStep >= index) {\n return 100;\n }\n return 0\n },\n completePercent(index){\n if (this.currentStep > index) {\n return 100;\n }\n return 0\n }\n }\n};\n\nconst stepPages = {\n mixins: [cpx_mixins],\n props:{\n step: {default: 0},\n disabledButtons: {default: false}\n },\n template:`
\n

\n \n

\n\n
\n
\n \n
\n \n
\n \n
\n
\n\n
\n \n
\n \n
`,\n computed:{\n isActive(){\n return this.step === this.currentStep\n },\n disableButtonsClass(){\n return this.disabledButtons ? 'disable': ''\n }\n }\n}\nconst chooseSupplies = {\n props: {\n supplies: {\n default() {\n return [];\n },\n },\n powerUrl: { default: \"\" },\n gasUrl: { default: \"\" },\n strPower: { default: \"power\" },\n strGas: { default: \"gas\" },\n strChoose: { default: \"choose\" },\n strCancel: { default: \"cancel\" },\n selected: {default: null}\n },\n template: `
\n
\n
\n
\n
\n \"\"\n {{strPower}}\n
\n
\n \"\"\n {{strGas}}\n
\n
{{supply.title}}
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
`,\n data() {\n return {\n checked: this.selected ? true : false,\n selectedId: this.selected,\n };\n },\n methods: {\n chooseThis(which) {\n this.checked = true;\n this.selectedId = which.id;\n this.$emit('onSelect', which.id)\n },\n isSelected(which){\n if(this.selectedId && this.selectedId === which.id){\n return true\n }\n return false\n },\n unselect(){\n this.checked = false\n this.selectedId = null\n this.$emit('onSelect', null)\n },\n activeClass(which){\n if(this.selectedId && this.selectedId === which.id){\n return 'active'\n }\n return ''\n }\n },\n \n};\n\nconst chooseProductStepsHeader = {\n mixins: [cpx_mixins],\n template: `
\n\n \n\n
\n\n
\n \n
\n \n\n
\n
`,\n data(){\n return {\n opened: false\n }\n },\n methods: {\n toggle(){\n this.opened = !this.opened\n }\n },\n computed:{\n step(){\n if(this.steps[this.currentStep]){\n return this.steps[this.currentStep]\n }\n return null\n }\n }\n};\n\nconst supplyDropdown = {\n mixins: [mixins],\n props: {\n handler: { default: \"\" },\n memberId: { default: \"\" },\n value: { default: \"\" },\n placeholder: { default: \"\" },\n placeholderSearch: { default: \"Search...\" },\n iconPower: { default: \"\" },\n iconGas: { default: \"\" },\n preData: { default: function(){ return []}},\n disabled: {default: false}\n },\n template: `
\n
\n
\n \n \n
\n
`,\n data() {\n return {\n val: this.value,\n open: false,\n controller: new AbortController(),\n list: [],\n loading: false,\n term: \"\",\n noResults: false,\n noResultsMessage: \"\"\n };\n },\n mounted() {\n document.addEventListener(\"click\",(event) => {\n if (event.target.closest(\".supply-dropdown\") || event.target.closest('.supply-dropdown__search__cta')) {\n return false;\n } else {\n this.closeLayer();\n }\n },\n { signal: this.controller.signal }\n );\n\n this.$nextTick(()=>{\n this.getList()\n })\n\n },\n methods: {\n toggleLayer() {\n if(!this.disabled){\n this.open = !this.open;\n }\n },\n closeLayer() {\n this.open = false;\n },\n getList(){\n if(this.preData.length){\n this.list = [].concat(this.preData)\n }\n },\n search(){\n if(this.term.length>=3){\n this.update()\n }\n },\n update(){\n this.list = []\n this.loading = true;\n this.errorMsgs = []\n this.noResults = false\n this.noResultsMessage = \"\"\n this.ajax(this.handler, { \"memberId\": this.memberId, \"term\": this.term });\n },\n handleAjaxSuccess(data){\n if(data.records.length){\n this.list = [].concat(data.records)\n //this.$emit('onSelect', this.val)\n } else {\n this.noResults = true\n this.noResultsMessage = data.noResults\n }\n },\n icon(categ){\n if(!categ || !categ.length){\n return false\n }\n return categ === 'power' ? this.iconPower : this.iconGas\n },\n title(item){\n return `${item.account} - ${item.address}`\n },\n selectItem(id){\n if(id){\n if(this.val !== id){\n this.val = id \n } else {\n return\n }\n } else {\n this.val = \"\"\n }\n this.$emit('onSelect', this.val, this.currentItem )\n this.closeLayer()\n },\n selectedClass(id){\n return this.val === id ? 'active': ''\n }\n },\n beforeUnmount() {\n this.controller.abort();\n },\n computed: {\n currentItem(){\n if(this.list){\n if(this.val !== \"\"){\n return this.list.find((item)=>item.id===this.val)\n }\n }\n return null\n },\n currentValue() {\n if(this.currentItem){\n return `${this.currentItem.account} - ${this.currentItem.address}`\n }\n return this.placeholder\n },\n currentValueTitle(){\n if(this.currentItem){\n return `${this.currentItem.account} - ${this.currentItem.address}` \n }\n return this.placeholder\n },\n openedClass(){\n return this.open ? 'supply-dropdown--active' : ''\n },\n clabel(){\n\n },\n disabledClass(){\n return this.disabled ? 'supply-dropdown--disabled' : ''\n }\n },\n};\n\nconst milesNBonus = {\n mixins: [mixins],\n props: {\n preData: { default: function(){return null}},\n handler: { default: \"\" },\n value: { default: \"\" },\n placeholder: { default: \"\" },\n infoStr: { default: \"\" },\n updateInfoStr: { default: \"\" },\n loggedinLabelStr: { default: \"\" },\n btnModalStr: { default: \"ID\" },\n btnLoginStr: { default: \"Login\" },\n btnBackStr: { default: \"Back\" },\n btnSaveStr: { default: \"Save\" },\n btnCancelStr: { default: \"Cancel\" },\n strRequired: { default: \"Required field\" },\n strMustBeDifferent: { default: \"Id must be different\" },\n strInvalid: { default: \"Invalid FFN\" }\n },\n template: `
\n \n\n \n\n \n\n
`,\n data() {\n return {\n inputId: null,\n val: this.value,\n loading: false,\n valid: true,\n empty: false,\n invalid: false,\n notDifferent: false,\n loggedIn: false,\n cpage: \"form\",\n userType: \"\",\n mileId: \"\",\n successMessage: \"\",\n redeem: true,\n redeemMessage: \"\"\n };\n },\n created(){\n this.inputId = this.makeid();\n\n },\n mounted() {\n // shortcut for testings:\n //this.val=\"tet\"\n //this.checkToPostData()\n this.$nextTick(()=>{\n if(this.preData){\n this.prefetchedData()\n }\n })\n },\n methods:{\n checkToPostData(){\n this.valid = this.isValid()\n\n if(this.val===this.mileId){\n this.notDifferent = true\n return\n }\n\n if(this.valid){\n this.postData()\n }\n },\n prefetchedData(){\n this.loggedIn = true\n this.userType = this.preData.type\n this.cpage = \"summary\"\n this.mileId = this.preData.id\n this.redeem = this.preData.redeem\n this.redeemMessage = this.preData.redeemMessage\n },\n postData() {\n this.loading = true;\n this.errorMsgs = []\n //this.userType = \"\"\n this.successMessage = \"\";\n\n this.ajax(this.handler, { \"val\": this.val });\n },\n\n handleAjaxSuccess(data){\n this.loggedIn = true\n this.userType = data.type\n this.successMessage = data.successMessage\n this.cpage = \"summary\"\n this.mileId = data.id\n this.redeem = data.redeem\n this.redeemMessage = data.redeemMessage\n this.$emit(\"postSuccess\", { \"milesIds\": data.milesIds, \"history\": data.history })\n }, \n handleAjaxError(messages) {\n this.valid = false\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n },\n goToUpdateForm(){\n this.val = \"\"\n this.successMessage = \"\";\n this.cpage = \"updateForm\"\n },\n cancelUpdate(){\n this.cpage = \"summary\"\n },\n onInput(){\n this.valid = true\n this.empty = false\n this.invalid = false;\n this.notDifferent = false\n },\n getCheckDigit(inbond) {\n let number = inbond/7;\n let remainder = (Math.trunc(10*number) - 10*Math.trunc(number))/10;\n return Math.ceil(7*remainder);\n },\n isValid(){\n if (!this.val) {\n this.empty = true;\n return false;\n }\n if (!/^1\\d{8}$/.test(this.val)) {\n this.empty = false;\n this.invalid = true;\n return false;\n };\n let inbond = Math.trunc(Number(this.val)/10);\n let checkDigit = Number(this.val) % 10;\n if (this.getCheckDigit(inbond) !== checkDigit) {\n this.empty = false;\n this.invalid = true;\n return false;\n };\n\n this.empty = false;\n this.notDifferent = false;\n this.invalid = false;\n return true;\n }\n },\n computed:{\n errorClasses(){\n return this.valid ? '' : 'input-validation-error'\n },\n userTypeClass(){\n return this.userType\n },\n stateClass(){\n return this.loggedIn ? 'b-miles-bonus--loggedin' : ''\n },\n showInfo(){\n return this.infoStr!=='' && !this.loggedIn\n }\n }\n};\n\nconst bAegeanRecent = {\n mixins: [mixins],\n props: {\n memberId: { default: \"\" },\n recentMilesHandler: { default: \"\" },\n measure: { default: \"miles\" },\n strFrom: { default: \"From\" },\n strDate: { default: \"Reg. date\" },\n strContract: { default: \"Contract\" },\n },\n template: `
\n
\n \n
\n
\n
\n \n
\n
`,\n data() {\n return {\n loading: false,\n records: [],\n noResults: false,\n noResultsMessage: \"\",\n totalMiles: \"\"\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.update()\n })\n },\n methods: {\n update(val) {\n const supply = val ? val : \"\"\n this.records = []\n this.loading = true;\n this.errorMsgs = []\n this.noResults = false\n this.noResultsMessage = \"\"\n this.totalMiles = \"\"\n\n this.ajax(this.recentMilesHandler, { \"memberId\": this.memberId, \"supply\": supply });\n },\n handleAjaxSuccess(data) {\n this.totalMiles = data.total\n\n if (data.records.length) {\n this.records = [].concat(data.records)\n\n } else {\n this.noResults = true\n this.noResultsMessage = data.noResults\n }\n },\n checkedClass(item) {\n if (item.checked) {\n return 'b-card--miles--checked'\n }\n return ''\n }\n }\n}\nconst bAegeanHistory = {\n mixins: [mixins, windowWidth],\n props: {\n memberId: { default: \"\" },\n handler: {default:\"\"},\n milesIds: { default(){ return []} },\n buttonMore: { default: \"See more\" },\n perPage: { default: 6}\n },\n template:`
\n
\n \n \n
\n\n
\n
\n \n
\n
`,\n data() {\n return {\n loading: false,\n columns: [],\n rows: [],\n noResults: false,\n noResultsMessage: \"\",\n page: 1,\n supplyId: \"\",\n totalMiles: \"\"\n }\n },\n mounted(){\n\n },\n methods:{\n supplyChange(newSupplyId){\n this.supplyId = newSupplyId\n this.update()\n },\n update(){\n this.page = 1\n this.columns = []\n this.rows = []\n this.loading = true;\n this.errorMsgs = []\n this.noResults = false\n this.noResultsMessage = \"\"\n this.totalMiles = \"\"\n\n this.ajax(this.handler, {\n \"milesId\": this.$refs.currentMileId.value,\n \"supplyId\": this.supplyId\n });\n },\n handleAjaxSuccess(data){\n this.totalMiles = data.total\n\n if(data.rows.length){\n this.columns = [].concat(data.columns)\n this.rows = [].concat(data.rows)\n } else {\n this.noResults = true\n this.noResultsMessage = data.noResults\n }\n },\n memberIdChanged(){\n this.update()\n },\n \n showMore(){\n this.page = this.page + 1\n },\n redeemedCard(card){\n if(card.redeemed){\n return 'redeemed'\n }\n return ''\n }\n },\n computed:{\n pagedRows(){\n const arr = [].concat(this.rows)\n return arr.splice(0, Number(this.page * this.perPage))\n }\n },\n watch:{\n milesIds: {\n handler(){\n this.$nextTick(()=>{\n this.update()\n })\n },\n immediate: true\n }\n }\n};\n\nconst recentMiles = {\n mixins: [unslick],\n data() {\n return {\n $slick: null\n };\n },\n template: `
\n
\n \n
\n
\n
`,\n mounted() {\n this.$slick = jQuery(this.$refs.slick);\n\n jQuery(()=>{\n // console.log(\"slick\", typeof slick)\n\n })\n // console.log(Vue.version)\n\n\n this.iniSlick();\n \n }, \n methods: {\n iniSlick() {\n\n this.$slick.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true,\n slidesToShow: 3,\n appendArrows: jQuery(this.$refs.carousel_arrows),\n responsive: [\n {\n breakpoint: 1732,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 1220,\n settings: {\n slidesToShow: 1,\n },\n },\n ]\n });\n }\n }\n};\n\nconst loyaltyRadioPromoList = {\n props: {\n value: { default: ''},\n items: { \n default(){ \n return [{\n 'id': 'rd-spl-1',\n 'title': 'Yes',\n 'text': 'Lorem ipsum',\n 'value': 'true',\n 'name': 'radio-group'\n }]\n }}\n },\n template:`\n
\n
    \n
  • \n \n \n
  • \n
\n \n
\n `,\n data() {\n return {\n model: this.value\n }\n },\n watch:{\n model:{\n handler(newVal){\n this.$emit('updated', newVal)\n }\n }\n }\n}\nconst loyaltyRedeemCalculator = {\n props:{\n lang: {default: 'el'},\n value: {default: 0, type: Number},\n miles: {default: 0, type: Number},\n owed: {default: 0, type: Number},\n strMilesRedeem: {default: ''},\n strRedeemAmount: {default: ''},\n strFinalOwed: {default: ''},\n },\n template:`
\n
\n
{{strMilesRedeem}}
\n
\n
\n
\n
{{strRedeemAmount}}
\n
\n
\n
\n
{{strFinalOwed}}
\n
\n
\n
`,\n computed:{\n finalOwe(){\n return this.owed - this.value\n }\n },\n watch:{\n \"value\": {\n handler(newVal){\n this.$emit('finalValue', this.finalOwe)\n }, \n immediate: true\n }\n }\n}\n// https://stackoverflow.com/questions/11804064/pasting-multiple-numbers-over-multiple-input-fields\n// https://jsfiddle.net/D7jVR/\nconst otpMultiInput = {\n props: {\n inputLength: {\n type: Number,\n default: 6,\n },\n allowCharacters: {\n type: Boolean,\n default: true,\n },\n initialValue: {\n type: String,\n default: \"\",\n },\n },\n template: `\n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n `,\n data() {\n return {\n inputs: null,\n currentValue: \"\",\n };\n },\n async mounted() {\n this.inputs = jQuery(this.$el).find(\".b-otp-multi-input__input\");\n\n if (this.initialValue) {\n if (this.passCharacterValidation(this.initialValue)) {\n this.pasteValues(this.initialValue);\n this.updateValue();\n \n }\n }\n },\n beforeDestroy() {\n this.inputs.off(\"paste\").off(\"focus\");\n },\n methods: {\n onKeydown(e) {},\n onInput(e) {\n var $this = jQuery(e.target);\n var code = e.keyCode || e.which;\n\n const str = $this.val();\n if (!$this.hasClass(\"fromPaste\") && str && str.length) {\n $this.val(str.charAt(0));\n }\n },\n onPaste(e) {\n var $this = jQuery(e.target);\n var originalValue = $this.val();\n\n $this.val(\"\").addClass(\"fromPaste\");\n\n $this.one(\"input.fromPaste\", (e) => {\n $currentInputBox = jQuery(e.target);\n\n var pastedValue = $currentInputBox.val().trim();\n\n if (this.passCharacterValidation(pastedValue)) {\n this.pasteValues(pastedValue);\n } else {\n $this.val(originalValue);\n }\n\n this.inputs.attr(\"maxlength\", 1);\n });\n\n this.inputs.attr(\"maxlength\", 6);\n\n setTimeout(() => {\n $this.removeClass(\"fromPaste\");\n });\n },\n onKeyUp(e) {\n var code = e.keyCode || e.which;\n //\n if (!this.allowCharacters) {\n if (this.passCharacterValidation(e.target.value)) {\n this.updateValue();\n this.focusFirstEmptyInput();\n } else {\n jQuery(e.target).val(\"\");\n }\n }\n\n setTimeout(() => {\n jQuery(e.target).removeClass(\"focused\");\n if (code === 8) {\n this.focusPreviousInput(e);\n }\n }, 1);\n },\n\n onFocus(e) {\n if (!jQuery(e.target).hasClass(\"focused\")) {\n setTimeout(() => {\n jQuery(e.target).removeClass(\"focused\");\n }, 100);\n }\n },\n pasteValues(element) {\n var values = element.split(\"\");\n jQuery(values).each((index) => {\n var $inputBox = this.inputs.eq(index);\n $inputBox.val(values[index]);\n });\n },\n focusFirstEmptyInput() {\n for (let i = 0; i < this.inputLength; i++) {\n var $inputBox = this.inputs.eq(i);\n if ($inputBox.val() === \"\") {\n $inputBox.addClass(\"focused\").trigger(\"focus\");\n return;\n }\n }\n },\n focusPreviousInput(e) {\n var $currentInputBox = jQuery(e.target);\n var index = this.inputs.index($currentInputBox);\n if (index > 0) {\n var $prevInputBox = this.inputs.eq(index - 1);\n $prevInputBox.addClass(\"focused\").trigger(\"focus\");\n }\n },\n async updateValue() {\n this.currentValue = \"\";\n\n this.inputs.each((index) => {\n var $inputBox = this.inputs.eq(index);\n this.currentValue += $inputBox.val();\n });\n\n this.currentValue = this.currentValue.trim();\n\n await this.$nextTick()\n\n this.$emit(\"input\", this.currentValue);\n\n },\n isDigit(value) {\n return !isNaN(value);\n },\n isCharacterOrDigits(value) {\n return /[a-zA-Z0-9]/.test(value);\n },\n passCharacterValidation(value) {\n if (!this.allowCharacters) {\n return this.isDigit(value);\n }\n return this.isCharacterOrDigits(value);\n },\n },\n computed: {\n inputType() {\n return this.allowCharacters ? \"text\" : \"number\";\n },\n },\n};\n\nconst sendNotificationForEvAddon = {\n mixins: [mixins],\n props: {\n handler: {\n type: String,\n default: \"\",\n },\n },\n template: `
\n \n
\n \n
\n \n
`,\n data() {\n return {\n loading: false,\n };\n },\n mounted() {\n if (this.handler) {\n //this.postData();\n }\n },\n methods: {\n postData() {\n if (!this.handler) {\n console.warn(\"sendNotificationForEvAddon: No handler specified\");\n return\n }\n\n this.errorMsgs = [];\n this.loading = true;\n\n this.ajax(this.handler);\n },\n handleAjaxSuccess(){\n console.log(\"handleAjaxSuccess\")\n }\n },\n};\n\nconst supplyList = {\n props:{\n ebillText:{ default: ''},\n supplies: { default(){return []}},\n selected: { default(){return []}},\n powerUrl: { default: ''},\n gasUrl: { default: ''},\n singleSelection: {default: false},\n autoSelect: {default: false},\n errorFields: { default(){return []}},\n errorFieldKey: { default: 'contract-account-'},\n },\n template: `
\n\n
\n \n
    \n
  • \n \n \n\n \n\n
  • \n
\n
`,\n data(){\n return {\n selectedSupplies: [...this.selected],\n }\n },\n created(){\n if(this.supplies.length===1 && this.autoSelect){\n if(this.singleSelection){\n this.selectedSupplies = this.supplies[0].id\n\n } else {\n this.selectedSupplies = [this.supplies[0].id]\n }\n }\n },\n methods:{\n \n resetSupplies() {\n this.selectedSupplies = [];\n },\n checkAllSupplies(){\n this.selectedSupplies = this.supplies.map(item => item.id)\n },\n toggleAllSupplies(){\n if(this.singleSelection) return\n\n if(this.selectedSupplies.length === this.supplies.length){\n this.resetSupplies()\n } else {\n this.checkAllSupplies()\n }\n },\n\n // updateSelectedSupplies(){\n // this.selectedSupplies = this.supplies.map(supply => supply.id)\n // }\n },\n computed:{\n inputType(){\n return this.singleSelection ? 'radio' : 'checkbox'\n },\n areAllSuppliesSelected(){\n return this.selectedSupplies.length === this.supplies.length\n }\n },\n watch:{\n // supplies:{\n // handler(newVal){\n // console.log('supplies', newVal)\n // this.updateSelectedSupplies()\n // }\n // },\n selectedSupplies:{\n handler(newVal){\n const finalVal = this.singleSelection ? [newVal] : newVal\n this.$emit('updated', finalVal)\n }\n }\n }\n};\n\nconst checkSupply = {\n mixins: [reloadWindowIfTokenExpired, sendCaptcha],\n props: {\n handler: {default: \"\"},\n greReady: {default: false},\n captchaSiteKey: {default: \"\"},\n captchaAction: {default: \"\"},\n sessionId: {default: \"\"},\n iniValue: { default: \"\"},\n label: { default: \"Account\" },\n index: { default: 0 },\n placeholder: { default: \"Account\" },\n textRequired: { default: \"Mandatory field\" },\n textCta: { default: \"Submit\" },\n textNote: { default: \"\" },\n defaultError: { default: \"An error occurred\" },\n reverseClass: {\n type: String,\n default: \"\"\n }\n },\n template: `
\n\n
\n\n \n\n \n\n
\n \n \n \n
`,\n data() {\n return {\n account: this.iniValue,\n loading: false,\n error: false,\n errorMessages: [],\n supplyReady: this.iniValue ? true : false\n };\n },\n created() {\n axios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\n },\n mounted(){\n this.$refs['form'].updateUnobtrusive()\n },\n methods: {\n async finalSubmit() {\n this.loading = true;\n this.error = false;\n this.supplyReady = false\n\n var token = await this.callCaptcha();\n if (token) {\n this.updateToken(token);\n\n\n this.$nextTick(async () => {\n try {\n const postData = {\n account: this.account,\n __sessionid: this.sessionId,\n recaptchaResponse: token,\n }; \n\n const response = await axios.post(this.handler, postData);\n this.loading = false;\n var { tokenExpired, hasError, errorMessages, criticalError, data } = response.data;\n\n if(this.reloadWindowIfTokenExpired(tokenExpired)) return\n\n if (criticalError) {\n this.criticalError();\n return false;\n }\n\n if (hasError) {\n this.handleError(errorMessages);\n return false;\n }\n if(data){\n this.handleSuccess();\n } else {\n this.handleError(errorMessages);\n }\n\n } catch (errors) {\n this.handleError();\n }\n });\n } else {\n this.handleError();\n }\n },\n handleError(errorMessages) {\n if(!errorMessages || !errorMessages.length){\n errorMessages = [this.defaultError]\n }\n this.error = true;\n this.loading = false;\n this.errorMessages = errorMessages;\n this.$emit(\"error\", errorMessages);\n },\n handleSuccess() {\n this.supplyReady = true\n this.$emit(\"success\", this.account);\n }, \n criticalError() {\n this.$emit(\"critical\")\n },\n },\n computed:{\n isDisabled(){\n return this.supplyReady\n }\n }\n};\n\nconst requestCard = {\n template: `\n
\n
{{ statusText }}
\n
\n
\n
\n
\n {{ accountLabel }}\n
\n
\n \n \n \n {{ firstAccountId }}\n \n \n
\n \n \n
\n
\n
\n
\n
\n
{{ ownerLabel }}
\n
\n {{ owner }}\n
\n
\n
\n
\n {{ authorizedLabel }}\n
\n
\n \n {{ firstAuthorizedUser }}\n \n
\n \n
\n
\n
\n
\n
\n {{ accessTypeLabel }}\n \n \n \n
\n {{ accessType }}\n
\n
\n {{ requestDateLabel }}\n
\n {{ requestDate }}\n
\n
\n
\n {{ expiryDateLabel }}\n
\n {{ expiryDate }}\n
\n
\n
\n \n
\n
\n
\n
\n
\n `,\n props: {\n status: {\n type: String,\n required: true,\n validator: (value) => ['NEW', 'ACCEPTED', 'DECLINED'].includes(value)\n },\n accountIds: {\n type: Array,\n default: () => ['-']\n },\n accountLabel: {\n type: String,\n default: 'Παροχές'\n },\n ownerLabel: {\n type: String,\n required: true\n },\n owner: {\n type: String,\n default: '-'\n },\n authorizedLabel: {\n type: String,\n required: true\n },\n authorized: {\n type: Array,\n default: () => ['-']\n },\n accessTypeLabel: {\n type: String,\n required: true\n },\n accessType: {\n type: String,\n default: '-'\n },\n requestDateLabel: {\n type: String,\n required: true\n },\n requestDate: {\n type: String,\n default: '-'\n },\n expiryDateLabel: {\n type: String,\n required: true\n },\n expiryDate: {\n type: String,\n default: '-'\n },\n tooltipText: {\n type: String,\n default: '-'\n },\n isRemovable: {\n type: Boolean,\n default: false\n },\n removeButtonText: {\n type: String,\n default: 'Κατάργηση'\n },\n hasTooltip: {\n type: Boolean,\n default: false\n },\n powerIcon: {\n type: String,\n default: \"\"\n },\n gasIcon: {\n type: String,\n default: \"\"\n },\n statusTextNew: {\n type: String,\n default: ''\n },\n statusTextAccepted: {\n type: String,\n default: ''\n },\n statusTextDeclined: {\n type: String,\n default: ''\n },\n tooltipText: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n showAccountIdsDropdown: false,\n showAuthorizedUsersDropdown: false\n };\n },\n computed: {\n cardStatusClass() {\n return `b-request-card--${this.status}`;\n },\n statusText() {\n const statusMap = {\n NEW: this.statusTextNew,\n ACCEPTED: this.statusTextAccepted,\n DECLINED: this.statusTextDeclined\n };\n return statusMap[this.status];\n },\n firstAccountId() {\n return this.accountIds[0] || '-';\n },\n hasMultipleAccounts() {\n return this.accountIds.length > 1;\n },\n additionalAccountIds() {\n return this.accountIds.slice(1);\n },\n accountDropdownIconClass() {\n return {\n 'b-request-card__dropdown-icon--collapsed': this.showAccountIdsDropdown,\n 'b-request-card__dropdown-icon--expanded': !this.showAccountIdsDropdown\n };\n },\n firstAuthorizedUser() {\n return this.authorized[0] || '-';\n },\n additionalAuthorizedUsers() {\n return this.authorized.slice(1) || [];\n },\n authorizedDropdownIconClass() {\n return {\n 'b-request-card__dropdown-icon--collapsed': this.authorized.length > 1 && this.showAuthorizedUsersDropdown,\n 'b-request-card__dropdown-icon--expanded': this.authorized.length > 1 && !this.showAuthorizedUsersDropdown\n };\n },\n isAccepted() {\n return this.status === 'ACCEPTED';\n },\n },\n methods: {\n isGasAccount(accountId) {\n return accountId.startsWith('700') || accountId.startsWith('7000');\n },\n isPowerAccount(accountId) {\n return accountId.startsWith('300') || accountId.startsWith('3000');\n },\n toggleDropdown(key) {\n this.showAccountIdsDropdown = !this.showAccountIdsDropdown;\n },\n handleIconClass(accountId) {\n if (this.isPowerAccount(accountId)) {\n return 'b-request-card__item__ca--power';\n } else if (this.isGasAccount(accountId)) {\n return 'b-request-card__item__ca--gas';\n }\n return '';\n },\n toggleDropdown(type) {\n if (type === 'accountIds') {\n this.showAccountIdsDropdown = !this.showAccountIdsDropdown;\n } else if (type === 'authorizedUsers') {\n this.showAuthorizedUsersDropdown = !this.showAuthorizedUsersDropdown;\n }\n },\n emitCardRemoved() {\n this.isAccepted && this.$emit(\"cardRemoved\");\n }\n }\n};\n\nconst supplyAndAddressManager = {\n mixins: [mixins],\n props: {\n showNav: {\n type:Boolean,\n default: false\n }\n },\n template: `\n
\n \n
\n `,\n data() {\n return {\n edit: !this.showNav,\n };\n },\n\n methods: {\n enableEdit() {\n this.edit = true;\n },\n disableEdit() {\n this.edit = false;\n }\n },\n computed: {\n isNavVisible() {\n if(this.showNav && !this.edit) {\n return true\n } \n return false\n }\n }\n\n};\n\nconst requestProvider = {\n mixins: [mixins],\n props: {\n search: {\n type: String,\n default: \"\",\n },\n handler: {\n type: String,\n default: \"\",\n },\n },\n template: ``,\n data() {\n return {\n dataArray: [],\n loading: false,\n hasError: false,\n };\n },\n mounted() {\n this.getData();\n },\n methods: {\n async getData() {\n if (!this.handler) return;\n\n this.loading = true;\n this.hasError = false;\n\n this.ajax(this.handler, { value: this.search });\n },\n\n handleAjaxSuccess(data) {\n this.loading = false;\n\n this.dataArray = data.map(item => ({\n ...item,\n terms: false,\n hasError: false,\n }));\n },\n },\n};\n\nconst requestsList = {\n template: `\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n \n \n {{ approvedRequestAlertMessage }}\n
\n \n \n
\n
\n \n {{ emptyListAlertMessage }}\n
\n 0\"\n :total-records=\"filteredItemsCount\"\n :max-visible-buttons=\"5\"\n :per-page=\"pageSize\"\n :current-page=\"page\"\n @pagechanged=\"pageChanged\"\n >\n \n \n \n \n \n \n \n `,\n props: {\n dataArray: {\n type: Array,\n default: [],\n },\n areItemsRemovable: {\n type: Boolean,\n default: false,\n },\n approvedRequestAlertMessage: {\n type: String,\n default: '',\n },\n rejectedRequestAlertMessage: {\n type: String,\n default: '',\n },\n showEmptyListAlert: {\n type: Boolean,\n default: true,\n },\n emptyListAlertMessage: {\n type: String,\n default: '',\n },\n showPagination: {\n type: Boolean,\n default: true,\n },\n isLoading: {\n type: Boolean,\n default: false,\n },\n showStatus: {\n type: Boolean,\n default: true\n },\n receivedTabLabel: {\n type: String,\n default: ''\n },\n sentRequestsTab: {\n type: String,\n default: ''\n },\n receivedRequestsTab: {\n type: String,\n default: ''\n },\n sentTabLabel: {\n type: String,\n default: ''\n },\n initialTab: {\n type: String,\n default: '',\n },\n modalProperties: {\n type: Object,\n default: () => ({\n 'header': '',\n 'body': '',\n 'footerCancelButton': '',\n 'footerAcceptButton': '',\n }),\n },\n ownerLabel: {\n type: String,\n default: ''\n },\n authorizedLabel: {\n type: String,\n default: ''\n },\n accessTypeLabel: {\n type: String,\n default: ''\n },\n requestDateLabel: {\n type: String,\n default: ''\n },\n expiryDateLabel: {\n type: String,\n default: ''\n },\n powerIcon: {\n type: String,\n default: ''\n },\n gasIcon: {\n type: String,\n default: ''\n },\n statusTextNew: {\n type: String,\n default: ''\n },\n statusTextAccepted: {\n type: String,\n default: ''\n },\n statusTextDeclined: {\n type: String,\n default: ''\n },\n tooltipText: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n activeTab: this.initialTab || '',\n pageSize: 8,\n page: 1,\n itemToRemove: null,\n emailToRemove: '',\n };\n },\n computed: {\n filteredDataArray() {\n const filtered = (this.dataArray ?? []).filter(item => item.requestType === this.activeTab);\n const start = (this.page - 1) * this.pageSize;\n return filtered.slice(start, start + this.pageSize);\n },\n filteredDataArrayLength() {\n return this.filteredDataArray.length;\n },\n filteredItemsCount() {\n return (this.dataArray ?? []).filter(item => item.requestType === this.activeTab).length;\n },\n replaceEmailMessage() {\n const emailPlaceholder = '{email}';\n\n if (this.modalProperties.body.includes(emailPlaceholder)) {\n return this.modalProperties.body.replace(emailPlaceholder, this.emailToRemove);\n }\n\n return this.modalProperties.body;\n }\n },\n methods: {\n pageChanged(newPage) {\n this.page = newPage;\n },\n changeTab(tab) {\n this.activeTab = tab;\n this.page = 1;\n this.$emit('hideAlert');\n },\n removeItem(itemId) {\n this.$emit('removeItem', itemId);\n },\n openModalCritical({ itemId, itemOwner }) {\n this.itemToRemove = itemId;\n this.emailToRemove = itemOwner;\n this.$refs['modalCriticalRequestList'].show();\n },\n closeModalCritical(shouldDeleteItem) {\n this.$refs['modalCriticalRequestList'].hide();\n shouldDeleteItem && this.removeItem(this.itemToRemove);\n },\n },\n};\n\nconst userLabelCounter = {\n mixins: [mixins],\n props: {\n users: {\n type: Array,\n default: () => []\n }, \n userImage: {\n type: String,\n default: \"\"\n },\n multipleUserText: {\n type: String,\n default: \"\"\n },\n singleUserText: {\n type: String,\n default: \"\"\n }\n },\n template: `\n
\n `,\n data() {\n return {\n\n };\n },\n\n methods: {\n renderUserLabel() {\n\n if (this.users.length === 1) {\n return `
${this.users[0]}
`;\n } else {\n const imgCount = Math.min(this.users.length, 3);\n const imgTags = Array.from({ length: imgCount })\n .map(() => `\"\"`)\n .join('');\n const remainingUsers = this.users.length - imgCount;\n const userText = (this.users.length <= 4) ? this.singleUserText : this.multipleUserText;\n const remainingUsersText = remainingUsers > 0 ? ` + ${remainingUsers} ${userText}` : '';\n\n return `\n
\n ${imgTags}${remainingUsersText}\n
`;\n }\n }\n },\n};\n\nconst benefitCard = {\n mixins: [mixins],\n props: {\n cards: {\n type: Array,\n default: []\n },\n userImage: {\n type: String,\n default: \"\"\n },\n userText: {\n type: String,\n default: \"\"\n },\n programText: {\n type: String,\n default: \"\"\n },\n addonsText: {\n type: String,\n default: \"\"\n },\n accountExpirationText: {\n type: String,\n default: \"\"\n },\n overdueText: {\n type: String,\n default: \"\"\n },\n amountText: {\n type: String,\n default: \"\"\n },\n gasIcon: {\n type: String,\n default: \"\"\n },\n powerIcon: {\n type: String,\n default: \"\"\n },\n payBtnText: {\n type: String,\n default: \"\"\n },\n moreBtnText: {\n type: String,\n default: \"\"\n }\n },\n template: `\n\n
\n
\n \n
\n \n \n \n
\n \n \n \n
\n {{card.address}}\n
\n
\n \n
\n
\n
{{programText}}
\n
\n {{card.programText}}\n {{card.programTypeText}}\n
\n
\n \n
\n
{{addonsText}}
\n
{{card.addons.join(' ')}}
\n
\n
\n \n
\n
\n
{{accountExpirationText}}
\n
{{card.accountExpiration}}
\n
\n \n
\n
{{overdueText}}
\n
{{card.overdue}}
\n
\n \n
\n
{{amountText}}
\n
{{card.amount}}
\n
\n
\n \n \n \n
\n \n
\n
\n `,\n data() {\n return {\n };\n },\n\n mounted() { \n },\n\n methods: {\n programTypeClass(type) {\n const types = {\n stable: 'e-pr-notif--stable',\n floating: 'e-pr-notif--floating',\n transitional: 'e-pr-notif--transitional',\n dynamic: 'e-pr-notif--dynamic',\n 'dynamic-white': 'e-pr-notif--dynamic-white',\n }\n return types[type];\n }\n },\n\n};\n\nconst supplyGroupTabs = {\n mixins: [mixins],\n props: {\n tabs: {\n type: Array,\n default: []\n },\n cards: {\n type: Array,\n default: []\n },\n hasAuthorizedAccounts: {\n type: Boolean,\n default: true,\n }\n },\n template: `\n
\n\n
\n \n
\n \n \n\n\n
`,\n\n data() {\n return {\n activeTabIndex: 0,\n tabButtons: true\n };\n },\n\n mounted() {\n },\n\n methods: {\n selectTab(id) {\n this.activeTabIndex = id;\n this.$emit('tabChanged', id);\n },\n activeClass(id) {\n return this.activeTabIndex === id ? 'active' : '';\n },\n },\n computed: {\n filteredData() {\n if (this.activeTabId === this.tabs[this.activeTabIndex].id &&\n this.tabs.length > 1) {\n return this.cards.filter(card => card.category === this.tabs[this.activeTabIndex].id);\n } else {\n this.tabButtons = false;\n console.log(this.cards);\n return this.cards;\n }\n },\n activeTabId() {\n if (this.activeTabIndex >= 0) {\n\n return this.tabs[this.activeTabIndex].id;\n }\n return null;\n\n }\n }\n};\n\nconst initDirective = {\n created(el, binding, vnode, prevVnode) {\n const vm = binding.instance\n var arg = toCamelCase(binding.arg)\n vm.$data[arg] = binding.value\n }\n}\n\nfunction toCamelCase(str) {\n return str.toLowerCase().replace(/-(.)/g, function(match, group1) {\n return group1.toUpperCase();\n }); \n}\nconst inputCleanName = {\n mounted(el) {\n el.addEventListener('input', (event) => {\n const value = event.target.value\n\n // Check if the string contains at least one alphanumeric character\n const hasAlphanumeric = /[a-zA-Z0-9\\u0370-\\u03FF\\u1F00-\\u1FFF]/.test(value);\n\n // If no alphanumeric characters exist, remove any non-alphanumeric characters (allow spaces within words)\n let newValue = value\n if (!hasAlphanumeric) {\n newValue = newValue.replace(/[^a-zA-Z0-9\\u0370-\\u03FF\\u1F00-\\u1FFF\\s]/g, '');\n }\n\n // Only update if the value has changed to prevent infinite loops\n if (newValue !== value) {\n // Update the input value\n event.target.value = newValue\n\n // Emit an input event to ensure Vue updates its model\n setTimeout(() => {\n event.target.dispatchEvent(new Event('input', { bubbles: true }))\n }, 0)\n }\n })\n\n // Handle `blur` event to trim spaces at the start and end\n el.addEventListener('blur', (event) => {\n event.target.value = event.target.value.trim()\n\n // Emit an input event to ensure Vue updates its model\n event.target.dispatchEvent(new Event('input', { bubbles: true }))\n })\n },\n}\n\nconst cpx = new Vuex.Store({\n // c.p.x. C(choose) P(product) X(store)\n state: {\n currentStep: 0,\n steps: [],\n },\n mutations: {\n iniSteps: (state, data) => {\n state.steps.splice(0, 0, ...data);\n },\n nextStep: (state) => {\n if(state.currentStep < state.steps.length - 1)\n state.currentStep++\n },\n prevStep(state) {\n if (state.currentStep > 0) {\n state.currentStep--;\n }\n },\n goToStep(state, num) {\n if (num >= 0 || num < state.steps.length - 1) {\n state.currentStep = num;\n }\n },\n pushToBreadCrumb(state, obj){\n const { val, step } = obj\n state.steps[step].selected.push({id: val.id, label: val.label})\n },\n clearCurrentBreadCrumb(state, step){\n state.steps[step].selected.splice(0)\n }\n },\n getters:{\n getIndexStepByCase: (state) => (selectedCase) => {\n return state.steps.findIndex(step => step.selectedCase === selectedCase)\n },\n getSteps: (state) => () =>{\n return state.steps\n },\n getSummaryStep: (state) => () =>{\n // products = summary step\n return state.steps.find(step => step.selectedCase === 'products')\n }\n },\n actions:{\n updateBreadcrumb({commit, state}, obj){\n const { val, step, keepCurrent } = obj\n\n if(!keepCurrent)\n commit('clearCurrentBreadCrumb', step)\n\n const selected = state.steps[step].selected\n const currentIndex = selected.findIndex(el=> el.id === val.id )\n if(currentIndex<0) commit('pushToBreadCrumb', {step: step, val: val})\n },\n updateBreadcrumbArray({commit, dispatch }, obj){\n const { array, step } = obj\n commit('clearCurrentBreadCrumb', step)\n for(let i=0; i{\n this.tabChanged = true\n },100)\n },\n\n suppliesFilter(supplyCat) {\n this.activeFilter = supplyCat;\n this.filterSupplyCat = supplyCat\n this.page = 1;\n this.animateData()\n },\n callMobileAppFunc(){ \n window.MobileApp.viewSupplyMenu()\n }\n },\n computed: {\n dataPower() {\n return this.data.filter((itm) => itm.categ === \"power\");\n },\n dataGas() {\n return this.data.filter((itm) => itm.categ === \"gas\");\n },\n dataSupplies() {\n return this.data.filter((item) => item.supplyCateg === this.filterSupplyCat);\n },\n filteredData() {\n if (this.activeTab === 1) {\n return this.dataPower;\n } else if (this.activeTab === 2) {\n return this.dataGas;\n }\n\n if(this.activeFilter) {\n return this.dataSupplies\n }\n return this.data;\n },\n pagedData(){\n var arr = this.filteredData.concat([]);\n return arr.splice((this.page - 1) * this.pagesize, this.pagesize);\n },\n allItems(){\n return this.filteredData.length\n },\n renderedTabs() {\n let tabs = [];\n tabs.push(`${this.tabs[0]} (${this.data.length})`);\n tabs.push(`${this.tabs[1]} (${this.dataPower.length})`);\n tabs.push(`${this.tabs[2]} (${this.dataGas.length})`);\n return tabs;\n },\n renderedDisabledTabs() {\n let tabs = [];\n tabs.push(this.data.length ? 0 : 1);\n tabs.push(this.dataPower.length ? 0 : 1);\n tabs.push(this.dataGas.length ? 0 : 1);\n return tabs;\n }, \n },\n};\n\nconst dashboardListApp = Vue.createApp(dashboardList);\nconst dashboardListSelector = \"#dashboard-list-app\";\nif (document.querySelector(dashboardListSelector)) {\n dashboardListApp\n .directive(\"init\", initDirective)\n .component(\"custom-tabs\", customTabs)\n .component(\"input-search-simple\", inputSearchSimple)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"b-pagination\", bPagination)\n .component(\"user-label-counter\", userLabelCounter)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(dashboardListSelector);\n}\n\nconst providesBill = {\n mixins: [mixins, bsTooltip, unslick],\n data:{\n return(){\n \n }\n },\n mounted() {\n // jQuery('.b-accordion:not(.s-self-metering__accordion)').accordionSection({\n // \theader: '> .b-accordion__head'\n // })\n var tooltipTriggerList = [].slice.call(\n document.querySelectorAll('[data-bs-toggle=\"tooltip\"]:not(.direct-tooltip)')\n );\n var tooltipList = tooltipTriggerList.map( (tooltipTriggerEl) =>{\n var tooltip = new bootstrap.Tooltip(tooltipTriggerEl);\n tooltipTriggerEl.addEventListener('shown.bs.tooltip', (el) => {\n //this.setPlacement()\n \n })\n return tooltip\n });\n\n },\n methods: {\n scrollAndOpenMeterInfo(ev, ref) {\n var target = this.$refs[ref]; \n \n if (target) {\n var lnk = jQuery(ev.target.closest('.s-self-metering__head__cta'))\n \n lnk.blur()//.hide()\n\n // setTimeout(()=>{\n // lnk.show()\n // },1000)\n\n target.setActive(0);\n var selector = jQuery('[data-selector=\"' + ref + '\"]'); \n \n\n if (selector && selector.length) {\n this.scrollToElem(selector, 32);\n //selector.trigger('focus')\n }\n //api.fn.moveWindowToObj(selector)\n }\n },\n },\n};\n\nconst providesBillApp = Vue.createApp(providesBill);\nconst providesBillSelector = \"#provides-bill-app\";\nif (document.querySelector(providesBillSelector)) {\n providesBillApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"friendly-address-edit\", friendlyAddressEdit)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .component(\"addon-cards\", addonCards)\n .component(\"info-message\", infoMessage)\n .component(\"product-cards\", productCards)\n .component(\"bill-track-cards\", billTrackCards)\n .component(\"bill-history\", billHistory)\n .component(\"bill-history-choose-period\", billHistoryChoosePeriod)\n .component(\"bill-history-table\", billHistoryTable) \n .component(\"bill-history-cards\", billHistoryCards)\n .component(\"bill-history-cards-slick\", billHistoryCardsSlick)\n .component(\"bill-history-fetch-downloads\", billHistoryFetchDownloads)\n .component(\"bill-history-fetch-documents\", billHistoryFetchDocuments)\n .component(\"charts\", charts)\n .component(\"pie-chart\", pieChart)\n .component(\"bar-chart\", barChart)\n .component(\"modal\", modal)\n .component(\"b-accordion\", bAccordion)\n .component(\"consumption-wizard\", consumptionWizard)\n .component(\"consumption-field\", consumptionField)\n .component(\"consumption-summary\", consumptionSummary)\n .component(\"consumption-ctas\", consumptionCtas)\n .component(\"consumption-steps\", consumptionSteps)\n .component(\"card-notify\", cardNotify)\n .component(\"toggle-checkbox\", toggleCheckbox)\n .component(\"program-bill-options\", programBillOptions)\n .component(\"youtube-single\", youtubeSingle)\n .component(\"youtube-multi\", youtubeMulti)\n .component(\"green-promo-codes\", greenPromoCodes)\n .component(\"slick-carousel\", slickCarousel)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"supplies-navigation\", suppliesNavigation)\n .component(\"supply-navigation\", supplyNavigation)\n .component(\"supply-and-address-manager\", supplyAndAddressManager)\n .component(\"user-label-counter\", userLabelCounter)\n .mount(providesBillSelector);\n}\n\nconst programDetails = {\n mixins: [mixins, bsTooltip],\n props: [],\n data() {\n return {\n removeMandateHandler: null,\n createMandateHandler: null,\n\n loading: false,\n contractAccount: null,\n\n activeSms: null,\n activeEmail: null,\n\n activeMonthlyToggle: null,\n acceptMonthlyTerms: false,\n activeEbillToggle: null,\n activeMandate: null,\n\n billMgmtHandler: null,\n commsMgmtHandler: null,\n\n saveBillMgmt: {},\n postActionName: \"\",\n\n cardDetails: null,\n paymentMethod: null,\n showInsertCardSuccessMsg: false,\n\n mandatoryMonthlyBill: false,\n disabledMonthlyBill: false,\n mandatoryOnlineBill: false,\n disabledOnlineBill: false,\n\n addonCheckRemoveHandler: \"\",\n addonRemoveHandler: \"\",\n addons: [],\n disableNotification: false,\n };\n },\n computed: {\n disableEbillSwitch() {\n if (this.disabledOnlineBill) return true;\n return this.activeEbillToggle && this.mandatoryOnlineBill;\n },\n disableMonthlyBillSwitch() {\n if (this.disabledMonthlyBill) return true;\n return this.activeMonthlyToggle && this.mandatoryMonthlyBill;\n },\n\n cardExpiring() {\n if (!this.activeMandate) return false;\n if (!this.cardDetails) return false;\n if (!this.cardDetails.expDate) return false;\n let [sM, sY] = this.cardDetails.expDate.split(\"/\");\n let m = parseInt(sM) - 1;\n let y = parseInt(sY);\n if (isNaN(m) || isNaN(y)) return false;\n const now = new Date();\n return now.getFullYear() == y && now.getMonth() == m;\n },\n cardExpired() {\n if (!this.activeMandate) return false;\n if (!this.cardDetails) return false;\n if (!this.cardDetails.expDate) return false;\n let [sM, sY] = this.cardDetails.expDate.split(\"/\");\n let m = parseInt(sM) - 1;\n let y = parseInt(sY);\n if (isNaN(m) || isNaN(y)) return false;\n const now = new Date();\n return (\n now.getFullYear() > y || (now.getFullYear() == y && now.getMonth() > m)\n );\n },\n hasAddons() {\n return this.addons.length > 0;\n },\n },\n created() {},\n mounted() {\n var tooltipTriggerList = [].slice.call(\n this.$el.querySelectorAll(\n '[data-bs-toggle=\"tooltip\"]:not(.direct-tooltip)'\n )\n );\n var tooltipList = tooltipTriggerList.map((tooltipTriggerEl) => {\n var tooltip = new bootstrap.Tooltip(tooltipTriggerEl);\n tooltipTriggerEl.addEventListener(\"shown.bs.tooltip\", (el) => {\n this.setPlacement();\n });\n return tooltip;\n });\n },\n methods: {\n setPlacement() {\n const tooltip = jQuery(\".tooltip.show.bs-tooltip-top\");\n if (tooltip.length) {\n const scrlTop =\n jQuery(window).scrollTop() +\n jQuery(\".header-devices__body\").outerHeight();\n const dif = tooltip.offset().top - scrlTop;\n\n if (dif < 0) {\n window.scrollTo(0, jQuery(window).scrollTop() + dif);\n }\n }\n },\n changedMonthlyToggle(active) {\n if (active) {\n this.acceptMonthlyTerms = false;\n this.$refs.modalConfirmMonthly.show();\n window.billTagging.activateMonthlyPay();\n window.billTagging.activateMonthlyPayTrack();\n } else {\n this.postBillMgmt();\n }\n },\n\n changedEbillToggle(active) {\n if (!active) {\n // && !this.disabledMonthlyBill) { //d.delegkos: Commented out the monthly bill prop since it is not visible to the UI\n this.activeMonthlyToggle = false;\n } else {\n this.activeEmail = true;\n window.billTagging.activateDigitalBill();\n window.billTagging.activateDigitalBillTrack();\n }\n this.postBillMgmt();\n },\n\n changedComms() {\n this.postBillMgmt();\n },\n\n storeBillMgmt() {\n this.saveBillMgmt = {\n activeMonthlyToggle: this.activeMonthlyToggle,\n activeEbillToggle: this.activeEbillToggle,\n activeEmail: this.activeEmail,\n activeSms: this.activeSms,\n };\n },\n postBillMgmt() {\n this.postActionName = \"billMgmgt\";\n const payload = {\n contractAccount: this.contractAccount,\n //monthlyBill: this.activeMonthlyToggle, // Client requested to not sent monthlyBill flag\n ebill: this.activeEbillToggle,\n email: this.activeEmail,\n sms: this.activeSms,\n };\n\n this.errorMsgs = [];\n this.loading = true;\n\n this.$nextTick(function () {\n this.ajax(this.handler, payload);\n });\n },\n postRemoveMandate() {\n this.postActionName = \"removeMandate\";\n const payload = {\n contractAccount: this.contractAccount,\n };\n\n this.errorMsgs = [];\n this.loading = true;\n\n this.$nextTick(function () {\n this.ajax(this.removeMandateHandler, payload);\n });\n },\n postCreateMandate(token) {\n this.postActionName = \"createMandate\";\n const payload = {\n contractAccount: this.contractAccount,\n token,\n };\n\n this.errorMsgs = [];\n this.loading = true;\n\n this.$nextTick(function () {\n this.ajax(this.createMandateHandler, payload);\n });\n },\n\n handleAjaxSuccess(data) {\n console.log(\"hi from ajax\");\n\n if (this.postActionName === \"createMandate\") {\n this.activeMandate = true;\n this.cardDetails = data;\n this.showInsertCardSuccessMsg = true;\n } else if (this.postActionName === \"removeMandate\") {\n this.cardDetails = null;\n this.activeMandate = false;\n this.paymentMethod = data;\n } else if (this.postActionName === \"billMgmgt\") {\n this.mandatoryMonthlyBill = data.mandatoryMonthlyBill;\n this.mandatoryOnlineBill = data.mandatoryOnlineBill;\n }\n this.postActionName = \"\";\n },\n\n handleAjaxError(messages) {\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n if (this.postActionName === \"billMgmgt\") {\n this.activeEbillToggle = this.saveBillMgmt.activeEbillToggle;\n this.activeMonthlyToggle = this.saveBillMgmt.activeMonthlyToggle;\n this.activeEmail = this.saveBillMgmt.activeEmail;\n this.activeSms = this.saveBillMgmt.activeSms;\n } else if (this.postActionName === \"removeMandate\") {\n this.activeMandate = true;\n } else if (this.postActionName === \"createMandate\") {\n this.activeMandate = false;\n this.cardDetails = null;\n }\n\n this.$refs.modalCritical.show();\n },\n\n changeMandate(active) {\n if (!active && this.cardDetails) {\n this.$refs.modalConfirm.show();\n }\n\n if (active) {\n window.billTagging.activatePayOrderTrack();\n window.billTagging.activatePayOrder();\n }\n },\n cancelMandate() {\n this.activeMandate = false;\n this.$refs.modalConfirm.hide();\n this.postRemoveMandate();\n },\n keepMandate() {\n this.activeMandate = true;\n this.$refs.modalConfirm.hide();\n },\n\n cancelMonthly() {\n this.activeMonthlyToggle = false;\n this.$refs.modalConfirmMonthly.hide();\n },\n confirmMonthly() {\n this.activeEbillToggle = true;\n this.$refs.modalConfirmMonthly.hide();\n this.postBillMgmt();\n },\n successCreditCard(token) {\n this.postCreateMandate(token);\n },\n creditCardFailed() {\n this.activeMandate = false\n this.$refs.modalCritical.show()\n },\n closeModalCritical() {\n this.$refs.modalCritical.hide();\n },\n removeCurrentAddon(id) {\n var index = this.addons.indexOf(id);\n this.addons.splice(index, 1);\n // jQuery(this.$el).on('click', '.alert-success .btn-close', (ev)=>{\n // setTimeout(()=>{\n // var wrapper = jQuery(ev.target).parents('.s-details__product-wrap')\n // var alert = jQuery(ev.target).parents('.s-details__addon')\n // alert.remove()\n // if (wrapper.length && wrapper.is(':empty')){\n // var row = wrapper.parents('.s-details__row')\n // if(row.length){\n // row.hide()\n // }\n // }\n // },100)\n // })\n },\n showAddon(id) {\n return this.addons.indexOf(id) >= 0;\n },\n },\n watch() {},\n};\n\nconst programDetailsApp = Vue.createApp(programDetails);\nconst programDetailsSelector = \"#program-details-app\";\nif (document.querySelector(programDetailsSelector)) {\n programDetailsApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"friendly-address-edit\", friendlyAddressEdit)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .component(\"modal\", modal)\n .component(\"toggle-checkbox\", toggleCheckbox)\n .component(\"credit-card\", creditCard)\n .component(\"modal-confirm\", modalConfirm)\n .component(\"modal-critical\", modalCritical)\n .component(\"detail-addon\", detailAddon)\n .component(\"slick-carousel\", slickCarousel)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"supplies-navigation\", suppliesNavigation)\n .component(\"supply-navigation\", supplyNavigation)\n .component(\"user-label-counter\", userLabelCounter)\n .component(\"supply-and-address-manager\", supplyAndAddressManager)\n .mount(programDetailsSelector);\n}\n\nconst chooseProduct = {\n // cpx for vuex store, instead of store it is defined as cpx\n mixins: [mixins, cpx_mixins, wizardModel, makeFormData, sendCaptcha, bsTooltip],\n data() {\n return {\n captchaEnabled: true,\n disallowAddons: false,\n addons: [],\n basketItem: null,\n supplyNumber: '',\n contractAccount: '',\n supplies: [],\n model: {\n // \"addons\": [ \"ad2\", \"ad3\" ]\n },\n btnsDisabled: false,\n creditCardStatus: \"\",\n finalSubmitError: false,\n hdnSteps: {},\n payment: null,\n iniStep:0,\n criticalMessage: '',\n evAddonOtpSubmitted: false,\n products: []\n };\n },\n created() {\n this.addons = window.config.allAddons;\n this.supplies = window.config.supplies;\n this.basketItem = window.config.basketItem;\n this.payment = window.config.payment;\n this.model.basketItem = this.basketItem.id;\n this.products = window.config.products;\n },\n mounted() {\n this.loading = false;\n\n api.vars.allowCaptcha = this.captchaEnabled;\n\n if (this.supplyNumber !== '' && this.supplyNumber != null) {\n this.model.supply = this.supplyNumber;\n }\n\n if (this.contractAccount !== '' && this.contractAccount != null) {\n this.model.contractAccount = this.contractAccount;\n }\n\n cpx.commit(\"iniSteps\", window.config.steps);\n //\n //\n if (this.iniStep) {\n if (this.supplyNumber) {\n this.updateBreadcrumb(\"supply\");\n }\n this.goToStep(this.iniStep);\n }\n\n //this.$refs['modalEvAddonDetails'].show()\n\n //this.finalSubmitError = true;\n //this.nextStep();\n // this.goToStep(2);\n\n //this.updateBreadcrumbAndContinue(\"basket\")\n //this.finalSubmitError = true;\n //this.goToStep(4);\n },\n methods: {\n updateBreadcrumbAndContinue(which) {\n this.$nextTick(() => {\n if(which===\"basket\"){\n\n if(this.basketItem.evAddon){\n if(!this.evAddonOtpSubmitted){\n this.sendEvAddon()\n return;\n }\n }\n\n this.updateModel({addons: [...this.attachedAddons] })\n }\n\n this.updateBreadcrumb(which);\n this.nextStep();\n });\n },\n updateBreadcrumb(which) {\n const step = cpx.getters.getIndexStepByCase(which);\n if (step >= 0) {\n if (which === \"basket\") {\n cpx.dispatch(\"updateBreadcrumb\", { val: this.basketItem, step: step });\n\n } else if (which === \"supply\") {\n const supply = this.getSupply();\n this.model.contractAccount = this.getContractAccount();\n if (supply) cpx.dispatch(\"updateBreadcrumb\", { val: supply, step: step });\n\n } else if (which === \"addons\") {\n const addons = this.getSelectedAddons();\n if (addons && addons.length) cpx.dispatch(\"updateBreadcrumbArray\", { array: addons, step: step });\n\n } else if (which === 'products') {\n cpx.dispatch(\"updateBreadcrumb\", { val: this.products, step: step });\n }\n \n else if (which === \"payment\") {\n cpx.dispatch(\"updateBreadcrumb\", { val: this.payment, step: step });\n }\n }\n },\n\n sendEvAddon(submitted){\n \n\n if(!submitted){\n // if evAddonOtp can show popup\n if (this.basketItem.evAddonOtp){\n this.$refs['modalEvAddon'].show()\n } else {\n // submit evAddon\n this.evAddonOtpSubmitted = true\n this.$refs['modal-ev-addon-form'].submitForm()\n return\n }\n } else {\n this.evAddonOtpSubmitted = true\n }\n\n //console.log(this.model.supply)\n\n if(this.evAddonOtpSubmitted){\n this.$refs['modalEvAddon'].hide()\n\n if(this.model.supply){\n const summaryStep = cpx.getters.getSummaryStep()\n //console.log(summStep.step)\n if(summaryStep && summaryStep.step){\n this.goToStep(summaryStep.step)\n } else {\n this.finalSubmit()\n }\n } else {\n this.nextStep()\n }\n }\n\n\n },\n\n scrollTop() {\n this.$nextTick(() => {\n setTimeout(() => {\n this.scrollToElem(jQuery(\".g-choose-product-app\"));\n }, 100);\n });\n },\n getSupply() {\n if (this.model.supply) {\n return this.supplies.find((el) => el.id === this.model.supply);\n }\n return null;\n },\n getContractAccount() {\n if (this.model.supply) {\n return this.supplies.find((el) => el.id === this.model.supply).contractaccount;\n }\n return null;\n },\n getSelectedAddons() {\n if (this.model.addons && this.model.addons.length) {\n var addons = [];\n for (var i = 0; i < this.model.addons.length; i++) {\n let addon = this.addons.find((el) => el.id === this.model.addons[i]);\n console.log(addon);\n addons.push({\n id: addon.id,\n label: addon.label,\n });\n }\n return addons;\n }\n return false;\n },\n updateHdnSteps(ref, current) {\n this.hdnSteps[ref] = current;\n },\n isHdnStepActive(ref, num) {\n return this.hdnSteps[ref] === num;\n },\n creditCardActive() {\n console.log(\"creditCardActive\");\n this.creditCardStatus = \"active\";\n },\n successCreditCard(token) {\n console.log(\"success\", token);\n this.finalSubmit();\n },\n creditCardFailed() {\n console.log(\"creditCardFailed\");\n this.creditCardStatus = \"failed\";\n\n this.$refs['hidden-steps-1'].goTo(1);\n },\n async finalSubmit() {\n this.disableButtons();\n this.loading = true;\n this.finalSubmitError = false;\n this.criticalMessage = '';\n\n var token = this.captchaEnabled ? await this.callCaptcha() : true;\n //token = this.captchaEnabled ? token : true;\n if (token) {\n this.updateToken(token);\n this.$nextTick(async () => {\n const dataToSend = this.makeFormData({\n ...this.model,\n __sessionid: this.sessionId,\n recaptchaResponse: token,\n attachedAddons: this.basketItem.attachedAddons\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.submitHandler,\n data: dataToSend,\n //headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if(this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return\n\n if (response.data.criticalError) {\n //this.critical(response.data.criticalErrorCode);\n this.criticalMessage = response.data.errorMessages;\n this.onFinalSubmitError();\n } else {\n if (!response.data.hasError && response.data.data && response.data.data.success) {\n this.model.showMilesBonusMessage = response.data.data.showMilesBonusMessage;\n this.onFinalSubmit();\n } else {\n this.onFinalSubmitError();\n }\n }\n\n this.loading = false;\n this.enableButtons();\n } catch (errors) {\n this.onFinalSubmitError();\n }\n\n });\n } else {\n this.onFinalSubmitError();\n }\n },\n onFinalSubmitError() {\n this.loading = false;\n this.enableButtons();\n this.finalSubmitError = true;\n this.evAddonOtp = false;\n //this.goToStep(3);\n this.nextStep();\n\n },\n onFinalSubmit() {\n const url = window.location.href;\n let returnUrl = '/thank-you';\n if (url.slice(-1) === '/') {\n returnUrl = 'thank-you';\n }\n const finalUrl = `${url}${returnUrl}`;\n\n this.updateBreadcrumb(\"payment\");\n window.history.pushState({ href: finalUrl }, '', finalUrl);\n\n this.nextStep();\n },\n disableButtons() {\n this.btnsDisabled = true;\n },\n enableButtons() {\n this.btnsDisabled = false;\n },\n allowedAddOn(addonId) {\n const supply = this.getSupply();\n const addon = this.addons.find(x => x.id === addonId);\n\n //if(!addon && supply.incompatibleAddOns.length && addon.excludedStatusCodes.length) return false\n\n try{\n return !supply.incompatibleAddOns.filter(x => x === addonId).length \n && !addon.excludedStatusCodes.filter(x => x === supply.status).length\n } catch (e){\n return false\n }\n },\n errorEvAddon(){\n // if(!this.basketItem.evAddonOtp){\n // this.evAddonOtpSubmitted = false\n // //this.finalSubmitError = true;\n // //this.criticalMessage = '';\n // this.onFinalSubmitError()\n // }\n if(!this.basketItem.evAddonOtp){\n this.evAddonOtpSubmitted = false\n this.finalSubmitError = true;\n //this.nextStep();\\\n //this.criticalMessage = '';\n //this.goToStep(2);\n }\n \n },\n openEVDetailModal(){\n this.$refs['modalEvAddon'].hide()\n this.$refs['modalEvAddonDetails'].show()\n },\n findAddon(addonId) {\n return this.addons.find(x => x.id === addonId);\n }\n },\n computed:{\n isSupplyMandate(){\n const supply = this.getSupply();\n if (supply) {\n return supply.hasMandate;\n }\n return null;\n },\n attachedAddons() {\n return [...this.basketItem.addons.filter(\n function (e) {\n return this.indexOf(e) >= 0;\n },\n [...this.basketItem.attachedAddons]\n )];\n },\n notAttachedAddons() { \n return this.addons\n .filter(addon => this.attachedAddons.indexOf(addon.id) < 0)\n .filter(addon => this.model.addons.indexOf(addon.id) >= 0);\n }\n }\n};\n\nconst chooseProductApp = Vue.createApp(chooseProduct);\nconst chooseProductSelector = \"#choose-product-app\";\nif (document.querySelector(chooseProductSelector)) {\n chooseProductApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"b-accordion\", bAccordion)\n .component(\"modal-critical\", modalCritical)\n .component(\"modal-confirm\", modalConfirm)\n .component(\"choose-product-step\", chooseProductStep)\n .component(\"choose-product-steps\", chooseProductSteps)\n .component(\"choose-supplies\", chooseSupplies)\n .component(\"step-pages\", stepPages)\n .component(\"form-wizard\", formWizard)\n .component(\"econtract-product\", econtractProduct)\n .component(\"econtract-prd-body\", econtractPrdBody)\n .component(\"econtract-prd-head\", econtractPrdHead)\n .component(\"econtract-product-get-attr\", econtractProductGetAttr)\n .component(\"econtract-addon\", econtractAddon)\n .component(\"econtract-addon-basket\", econtractAddonBasket)\n .component(\"e-circle-progress-step\", eCircleProgressStep)\n .component(\"slide-up-down\", slideUpDown)\n .component(\"hidden-steps\", hiddenSteps)\n .component(\"credit-card\", creditCard)\n .component(\"choose-product-steps-header\", chooseProductStepsHeader)\n .component(\"b-tabs\", bTabs)\n .component(\"day-night-table-table\", dayNightTableTable)\n .component(\"day-night-table\", dayNightTable)\n .component(\"table-charge\", tableCharge)\n .component(\"otp-multi-input\", otpMultiInput)\n .component(\"send-notification-for-ev-addon\", sendNotificationForEvAddon)\n .component(\"expandable-text\", expandableText)\n .component(\"summary-products\", summaryProducts)\n .component(\"summary-addons\", summaryAddons)\n .component(\"summary-products-head\", summaryProductsHead)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(chooseProductSelector);\n}\n\nconst homeNews = {\n mixins: [mixins],\n data() {\n return {\n // default\n $this: [],\n isLoading: false, \n\n handler:null,\n isMobile: false,\n featuredArticles:[],\n listArticles:[],\n \n\n slickOptions: {\n lazyLoad: 'progressive',\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: false,\n dots: true,\n rows: 0,\n slidesToShow: 1,\n fade: true,\n cssEase: 'linear',\n autoplay: true,\n autoplaySpeed: 7000,\n responsive: [\n {\n breakpoint: api.vars.scr.tablet - 1,\n settings: {\n edgeFriction: api.vars.slick.edgeFriction, \n slidesToShow: 1, \n fade: false,\n variableWidth:true,\n autoplay: false,\n dots:false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n appendArrows: jQuery(this.$refs.carousel_arrows) \n },\n } \n ], \n },\n\n slickListOptions: {\n responsive: [\n {\n breakpoint: api.vars.scr.tablet - 1,\n settings: {\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n dots: true,\n variableWidth:true,\n rows: 0,\n slidesToShow: 1,\n autoplay: false,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n appendArrows: jQuery(this.$refs.carousel_arrows_list) \n },\n } \n ],\n \n },\n\n // server error dialog\n errorMsgs: [],\n }\n },\n \n mounted(){\n \n console.log('ref',jQuery(this.$refs.carousel_arrows) )\n\n api.fn.getWindDims();\n\n this.appendDotsToSlicks()\n\n this.$nextTick(() => {\n\n this.checkMobileScreen()\n \n jQuery(document).on(\"window-resized\", ()=> {\n this.checkMobileScreen()\n })\n \n this.fetchArticles()\n });\n },\n\n methods:{\n\n appendDotsToSlicks(){\n\n this.slickOptions.responsive[0].settings.appendDots = jQuery(this.$el).find(\".feature-slick-dots\")\n\n this.slickOptions.responsive[0].settings.appendArrows = jQuery(this.$el).find(\".carousel_arrows_features\")\n \n this.slickListOptions.responsive[0].settings.appendDots = jQuery(this.$el).find(\".list-slick-dots\")\n\n this.slickListOptions.responsive[0].settings.appendArrows = jQuery(this.$el).find(\".carousel_arrows_list\")\n },\n\n checkMobileScreen (){ \n this.isMobile = api.vars.windW < api.vars.scr.tablet - 1;\n },\n\n fetchArticles: function () {\n this.isLoading = true;\n\n axios\n .post(this.handler)\n .then((response) => { \n\n // response has error\n if (response.data.hasError) {\n this.handleError(errorMessages);\n return false;\n } \n\n this.featuredArticles = response.data.data.records.filter(i => i.isFeatured == \"true\") \n this.listArticles = response.data.data.records.filter(i => i.isFeatured == \"false\") \n\n this.$nextTick(function(){ \n this.$refs.news.reSlick() \n if(this.$refs.newslist)\n this.$refs.newslist.reSlick() \n })\n\n // Dom actions\n this.isLoading = false;\n })\n .catch((errors) => {\n this.handleError([errors]);\n // console.error(errors);\n });\n },\n\n handleError: function (messages) {\n\t\t\tthis.errorMsgs = this.hasValue(messages) ? messages : []\n\t\t\tthis.isLoading = false\n\t\t},\n \n \n }\n}\n\nlet homeNewsApp = [];\nconst homeNewsDivs = document.querySelectorAll(\".s-news-home\");\nif (homeNewsDivs.length) {\n for (let i = 0; i < homeNewsDivs.length; ++i) {\n\t\tif (homeNewsDivs[i].id && homeNewsDivs[i].id !== \"\") {\n\t\t\thomeNewsApp.push(Vue.createApp({...homeNews}));\n homeNewsApp[i].component(\"alert-danger\", alertDanger)\n homeNewsApp[i].component(\"slick-carousel\", slickCarousel)\n\t\t\thomeNewsApp[i].directive('init', initDirective);\n\t\t\thomeNewsApp[i].mount(`#${homeNewsDivs[i].id}`);\n\t\t}\n\t}\n}\n// const newsApp = Vue.createApp(homeNews)\n// newsApp.directive('init', initDirective);\n// if(document.querySelector(\"#home-news\"))\n// newsApp.mount('#home-news')\nconst knowCustomer = {\n mixins: [mixins, bsTooltip],\n data(){\n return {\n handler:'',\n btnUrl: '',\n slickDefaults:{\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: true,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true\n }\n }\n },\n mounted(){\n this.getData()\n this.iniOffers()\n this.iniLogos()\n },\n methods:{\n getData(){\n this.ajax(this.handler)\n },\n handleAjaxSuccess(data){\n this.btnUrl = data.url\n },\n iniOffers(){\n jQuery(this.$refs.offersCarousel).slick({\n ...this.slickDefaults,\n appendArrows: jQuery(this.$refs.offersCarouselArrows) \n });\n },\n iniLogos(){\n jQuery(this.$refs.logosCarousel).slick({\n ...this.slickDefaults,\n appendArrows: jQuery(this.$refs.logosCarouselArrows) \n });\n }\n }\n}\n\nconst knowCustomerApp = Vue.createApp(knowCustomer);\nconst knowCustomerSelector = \"#know-customer-app\";\nif (document.querySelector(knowCustomerSelector)){ \n knowCustomerApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(knowCustomerSelector)\n}\nconst aegean = {\n mixins: [mixins, bsTooltip],\n data(){\n return {\n milesUser: null,\n recentSupplies: [],\n supplies: [],\n memberId: \"\",\n milesIds: [],\n history: false\n }\n },\n mounted(){\n //this.showModal('modalMilesNBonus')\n },\n methods:{\n showModal(modalId){\n this.$refs[modalId].show()\n },\n milesUpdated(obj){\n const { milesIds, history } = obj\n\n console.log(\"history\", history)\n\n this.milesIds = [].concat(milesIds)\n\n this.history = history\n\n this.$nextTick(()=>{\n\n this.$refs['supplyDropdown-1'].update()\n this.$refs['supplyDropdown-2'].update()\n })\n\n }\n }\n}\n\nconst aegeanApp = Vue.createApp(aegean);\nconst aegeanSelector = \"#aegean-app\";\nif (document.querySelector(aegeanSelector)){ \n aegeanApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"b-accordion\", bAccordion)\n .component(\"miles-n-bonus\", milesNBonus)\n .component(\"modal-critical\", modalCritical)\n .component(\"supply-dropdown\", supplyDropdown)\n .component(\"b-aegean-recent\", bAegeanRecent)\n .component(\"b-aegean-history\", bAegeanHistory)\n .component(\"recent-miles\", recentMiles)\n .component(\"bill-history-table\", billHistoryTable)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(aegeanSelector)\n}\nconst rewardTabs = {\n data(){\n return {\n tab: 0\n }\n },\n mounted() {\n // jQuery(document).on(\"reward-tab\", (item)=>{\n // console.log('reward-tab', item)\n // });\n },\n methods: {\n tabChanged(indx, item) {\n this.tab = indx\n jQuery(document).trigger(\"reward-tab\", item);\n this.showTab()\n },\n showTab(){\n jQuery('.s-reward-tab').removeClass('active')\n jQuery(`.s-reward-tab[data-tab=\"${this.tab}\"]`).addClass('active')\n }\n },\n};\n\njQuery(window).on(\"load\", function () {\n const rewardTabsApp = Vue.createApp(rewardTabs);\n const rewardTabsSelector = \"#reward-tabs-app\";\n\n if (document.querySelector(rewardTabsSelector)) {\n rewardTabsApp.component(\"custom-tabs\", customTabs).mount(rewardTabsSelector);\n }\n});\n\nconst redeemMiles = {\n // cpx for vuex store, instead of store it is defined as cpx\n mixins: [mixins, cpx_mixins, wizardModel, wizardHelpers, mixin_viewport, makeFormData, bsTooltip],\n data() {\n return {\n lang:'el',\n amountOwed: 0,\n amountFinal: 0,\n redeemOptions: [],\n contractAccount: '',\n model: {\n redeem: '',\n redeemId: '',\n otp: ''\n },\n namedSteps:['intro', 'choose-redeem', 'redeem-otp', 'redeem-error', 'redeem-success', 'payment'],\n namedStepsCurrent: \"\",\n btnsDisabled: false,\n radioOptions: [],\n handlerRedeem: \"\",\n handlerOtp: \"\",\n otpSuccess: false,\n otpCodeError: false,\n globalerror: \"\",\n aliasPhoneNumber: \"\",\n paymentUrl: \"\",\n homeUrl: \"\"\n };\n },\n mounted(){\n\n \n\n if(window.config && window.config.redeemOptions && window.config.radioOptions){\n this.amountOwed = window.config.amountOwed\n this.amountFinal = window.config.amountOwed\n this.redeemOptions = [].concat(window.config.redeemOptions)\n \n this.radioOptions = [].concat(window.config.radioOptions)\n \n }\n\n cpx.commit(\"iniSteps\", window.config.steps);\n \n this.loading = false\n },\n methods:{\n updateRedeem(val){\n this.model.redeem = val\n },\n watchRedeemChoise(){\n this.$nextTick(()=>{\n if(this.$refs.namedSteps && this.namedSteps.length){\n this.introChosen()\n\n // debug shortcut\n //this.$nextTick(()=>{\n //this.$refs.namedSteps.goTo('payment')\n // })\n\n } else {\n setTimeout(()=>{\n this.watchRedeemChoise()\n },500)\n }\n })\n },\n introChosen(){\n this.model.redeemId = ''\n this.amountFinal = this.amountOwed\n\n if(this.model.redeem===\"true\"){\n this.$refs.namedSteps.goTo('choose-redeem')\n\n } else if(this.model.redeem===\"false\"){\n this.$refs.namedSteps.goTo('payment')\n }\n },\n async redeemContinue(){\n \n this.loading = true\n\n const dataToSend = this.makeFormData({\n \"redeemId\": this.model.redeemId,\n \"contractAccount\": this.contractAccount\n })\n\n try{\n\n var response = await axios({\n method: \"post\",\n url: this.handlerRedeem,\n data: dataToSend\n })\n this.loading = false\n\n if(this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return\n \n if (response.data.hasError || !response.data || !response.data.data || response.data.data.success === false) {\n this.$refs.namedSteps.goTo('redeem-error')\n } else {\n this.aliasPhoneNumber = response.data.data.phoneNumber\n this.$refs.namedSteps.goTo('redeem-otp')\n }\n \n\n \n\n } catch (errors) {\n this.loading = false\n this.$refs.namedSteps.goTo('redeem-error')\n }\n\n },\n async otpSent(){\n\n this.loading = true\n this.otpSuccess = false\n this.otpCodeError = false\n\n const dataToSend = this.makeFormData({\n \"otp\": this.model.otp\n })\n\n try{\n\n var response = await axios({\n method: \"post\",\n url: this.handlerOtp,\n data: dataToSend,\n //headers: { \"Content-Type\": \"multipart/form-data\" }\n })\n this.loading = false\n\n if(this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return\n\n if(!response.data.hasError && !response.data.data.success){\n this.otpCodeError = true\n\n } else {\n\n if (response.data.hasError || !response.data || !response.data.data || response.data.data.success === false) {\n this.$refs.namedSteps.goTo('redeem-error')\n } else {\n this.otpSuccess = true\n this.paymentUrl = response.data.data.paymentUrl\n this.$refs.namedSteps.goTo('redeem-success')\n }\n\n }\n\n \n\n } catch (errors) {\n this.loading = false\n this.$refs.namedSteps.goTo('redeem-error')\n }\n },\n doPayment(){\n\n },\n namedStepsUpdateCurrent(val){\n this.namedStepsCurrent = val\n }, \n disableButtons() {\n this.btnsDisabled = true;\n },\n enableButtons() {\n this.btnsDisabled = false;\n },\n updateFinalValue(newVal){\n this.amountFinal = newVal\n }\n },\n computed:{\n selectedRedeemObject(){\n return this.model && this.model.redeemId !=='' ? this.redeemOptions.find(el=>el.id=== this.model.redeemId) : null\n },\n redeemValue(){\n return this.model && this.model.redeemId !=='' ? (this.selectedRedeemObject ? this.selectedRedeemObject.value : 0) : 0\n },\n redeemMiles(){\n return this.model && this.model.redeemId !=='' ? (this.selectedRedeemObject ? this.selectedRedeemObject.miles : 0) : 0\n },\n\n },\n watch:{\n 'model.redeem': {\n handler(newVal){\n this.watchRedeemChoise()\n },\n immediate: true\n }\n }\n}\n\nconst redeemMilesApp = Vue.createApp(redeemMiles);\nconst redeemMilesSelector = \"#redeem-miles-app\";\nif (document.querySelector(redeemMilesSelector)) {\n redeemMilesApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"modal-critical\", modalCritical)\n .component(\"modal-confirm\", modalConfirm)\n .component(\"choose-product-step\", chooseProductStep)\n .component(\"choose-product-steps\", chooseProductSteps)\n .component(\"choose-product-steps-header\", chooseProductStepsHeader)\n .component(\"step-pages\", stepPages)\n .component(\"form-wizard\", formWizard)\n .component(\"e-circle-progress-step\", eCircleProgressStep)\n .component(\"named-steps\", namedSteps)\n .component(\"loyalty-radio-promo-list\", loyaltyRadioPromoList)\n .component(\"loyalty-redeem-calculator\", loyaltyRedeemCalculator)\n .component(\"formatted-number\", formattedNumber)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(redeemMilesSelector);\n}\nconst greenCity = {\n mixins: [bsTooltip],\n data() {\n return {\n supplies: [],\n memberId: \"\",\n };\n },\n mounted() {\n // jQuery(document).on(\"reward-tab\", (item)=>{\n // console.log('reward-tab', item)\n // });\n },\n};\n\nconst greenCityApp = Vue.createApp(greenCity);\nconst greenCitySelector = \".s-green-city-app\";\nif (document.querySelector(greenCitySelector)) {\n greenCityApp\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"redeem-in-supply\", redeemInSupply)\n .component(\"supply-dropdown\", supplyDropdown)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(greenCitySelector);\n}\n\nconst profilePage = {\n mixins: [mixins, bsTooltip],\n data:{\n return(){\n \n }\n },\n mounted() {\n this.initTooltip(document);\n\n },\n methods: {\n\n },\n};\n\nconst profilePageApp = Vue.createApp(profilePage);\nconst profilePageSelector = \"#profile-app\";\nif (document.querySelector(profilePageSelector)) {\n profilePageApp\n .component(\"friendly-address-edit\", friendlyAddressEdit)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(profilePageSelector);\n}\n\nconst providesCaBill = {\n mixins: [mixins, bsTooltip],\n data: {\n return() {\n }\n }\n};\n\nconst providesCaBillApp = Vue.createApp(providesCaBill);\nconst providesCaBillSelector = \"#provides-ca-bill-app\";\nif (document.querySelector(providesCaBillSelector)) {\n providesCaBillApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"info-message\", infoMessage)\n .component(\"bill-history\", billHistory)\n .component(\"bill-history-choose-period\", billHistoryChoosePeriod)\n .component(\"bill-history-table\", billHistoryTable)\n .component(\"bill-history-cards\", billHistoryCards)\n .component(\"bill-history-fetch-downloads\", billHistoryFetchDownloads)\n .component(\"bill-history-fetch-documents\", billHistoryFetchDocuments)\n .component(\"bill-history-cards-slick\", billHistoryCardsSlick)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(providesCaBillSelector);\n}\n\nconst supportChangeAddress = {\n mixins: [supplies, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n supplyNumber: \"\",\n loading: true,\n greReady: false,\n model: {\n addressType: \"address\",\n },\n };\n },\n mounted() {\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n methods: {\n postalInput(val) {\n this.model.postCode = val;\n this.$nextTick(() => jQuery('[name=\"postcode\"]').valid());\n },\n autocompleteClicked(item, val){\n this.model.postCode = val;\n this.$nextTick(()=> jQuery('[name=\"postcode\"]').valid())\n },\n selectAreaChanged(val) {\n this.model.area = val;\n this.$nextTick(() => jQuery('[name=\"area\"]').valid());\n },\n resetStreets(){\n this.deleteItem(\"box\")\n this.deleteItem(\"street\")\n this.deleteItem(\"streetNumber\")\n },\n deleteItem(key){\n if(this.model[key]){\n delete this.model[key] \n }\n }\n },\n watch:{\n \"model.addressType\":{\n handler(){\n this.resetStreets()\n }\n }\n }\n};\n\nconst supportChangeAddressApp = Vue.createApp(supportChangeAddress);\nconst supportChangeAddressSelector = \"#support-change-address-app\";\nif (document.querySelector(supportChangeAddressSelector)) {\n supportChangeAddressApp\n .directive(\"init\", initDirective)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"supply-list\", supplyList)\n .component(\"error-field\", errorField)\n .component(\"b-auto-completer\", bAutoCompleter)\n .component(\"address-finder\", addressFinder)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportChangeAddressSelector);\n}\n\nconst supportGeneral = {\n mixins: [supplies, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n supplyNumber:'',\n loading: true,\n greReady: false,\n model: {},\n };\n },\n mounted() {\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n methods: {\n \n },\n};\n\nconst supportGeneralApp = Vue.createApp(supportGeneral);\nconst supportGeneralSelector = \"#support-general-app\";\nif (document.querySelector(supportGeneralSelector)) {\n supportGeneralApp\n .directive(\"init\", initDirective)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"b-accordion\", bAccordion)\n .component(\"supply-list\", supplyList)\n .component(\"error-field\", errorField)\n .component(\"file-uploader\", fileUploader)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportGeneralSelector);\n}\n\nconst supportTechnicalIssue = {\n mixins: [reloadWindowIfTokenExpired, wizardSteps, wizardModel, makeFormData, sendCaptcha, bsTooltip],\n data() {\n return {\n selectedCountrycode: \"\",\n finalSubmitError: false,\n globalerror: \"\",\n model: {\n category: \"\",\n countryCode: \"\",\n },\n hdnSteps: {},\n };\n },\n mounted() {\n //this.goToStep(3)\n\n this.model.countryCode = this.selectedCountrycode;\n },\n methods: {\n optSuccess() {\n this.finalSubmit();\n },\n async finalSubmit() {\n // add currentStep\n this.closeAllSteps();\n this.loading = true;\n this.finalSubmitError = false;\n\n var token = await this.callCaptcha();\n if (token) {\n this.updateToken(token);\n this.$nextTick(async () => {\n const dataToSend = this.makeFormData({\n ...this.model,\n recaptchaResponse: token,\n file_1: (this.$refs[\"file_1\"].files.length && this.$refs[\"file_1\"].files[0]) || null,\n file_2: (this.$refs[\"file_2\"].files.length && this.$refs[\"file_2\"].files[0]) || null,\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.submitHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if(this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return\n\n if (response.data.criticalError) this.critical(response.data.criticalErrorCode);\n if (!response.data.hasError) {\n this.finalMessage = response.data.data.message;\n } else {\n this.onFinalSubmitError();\n }\n\n this.loading = false;\n this.nextStep();\n } catch (errors) {\n this.loading = false;\n this.handleError([this.globalerror]);\n }\n });\n }\n },\n onFinalSubmitError() {\n this.loading = false;\n this.finalSubmitError = true;\n },\n\n updateHdnSteps(ref, current) {\n this.hdnSteps[ref] = current;\n },\n isHdnStepActive(ref, num) {\n return this.hdnSteps[ref] === num;\n },\n },\n};\n\nvar supportTechnicalIssueApp = Vue.createApp(supportTechnicalIssue);\nvar supportTechnicalIssueSelector = \"#v-app-technical-support-form\";\nif (document.querySelector(supportTechnicalIssueSelector)) {\n supportTechnicalIssueApp\n .directive(\"init\", initDirective)\n .component(\"expandable-text\", expandableText)\n .component(\"custom-tabs\", customTabs)\n .component(\"accordion-tabs\", accordionTabComponet)\n .component(\"form-wizard\", formWizard)\n .component(\"slide-up-down\", slideUpDown)\n .component(\"modal-critical\", modalCritical)\n //.component('business-partners', businessPartners)\n .component(\"phone-number\", phoneNumber)\n .component(\"file-uploader\", fileUploader)\n .component(\"hidden-steps\", hiddenSteps)\n .component(\"otp\", otp)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportTechnicalIssueSelector);\n}\n\nconst supportAddSupply = {\n mixins: [multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n accountNumber:'',\n loading: true,\n greReady: false,\n model: {\n supplies: []\n }, \n idNumber: ''\n };\n },\n created(){\n },\n mounted() {\n this.model.idNumber = this.idNumber\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n methods: {\n modifyAccounts(index, account){\n\n for(let i = 0; i{\n this.$refs['topForm'].validate()\n })\n\n },\n removeCurrentAccount(index){\n console.log(index)\n if(this.model.supplies[index]){\n this.model.supplies.splice(index, 1)\n }\n },\n validateAllForms(){\n const isTopFormValid = this.$refs['topForm'].validate()\n const isMainFormValid = this.$refs['mainForm'] ? this.$refs['mainForm'].validate() : false\n\n if(isTopFormValid && isMainFormValid){\n this.finalSubmit()\n }\n }\n },\n computed:{\n addedAccounts(){\n if(this.model.supplies){\n return this.model.supplies.join(',')\n }\n return ''\n }\n }\n};\n\nconst supportAddSupplyApp = Vue.createApp(supportAddSupply);\nconst supportAddSupplySelector = \"#support-add-supply-app\";\nif (document.querySelector(supportAddSupplySelector)) {\n supportAddSupplyApp\n .directive(\"init\", initDirective)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"b-accordion\", bAccordion)\n .component(\"supply-list\", supplyList)\n .component(\"error-field\", errorField)\n .component(\"file-uploader\", fileUploader)\n .component(\"check-supply\", checkSupply)\n .component(\"add-remove-group\", addRemoveGroup)\n .component(\"edit-cancel-fields\", editCancelFields)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportAddSupplySelector);\n}\n\nconst supportUpdateDataPersonal = {\n mixins: [multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {},\n idNumber: ''\n };\n },\n mounted() {\n this.model.idNumber = this.idNumber\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n methods:{\n async enableEditing(){\n this.$refs['editFields'].enable()\n await this.$nextTick();\n\n this.storedIdNumber = this.model.idNumber\n },\n disableEditing(){\n this.$refs['editFields'].disable()\n\n this.model.idNumber = this.idNumber\n },\n validateAllForms(){\n const isTopFormValid = this.$refs['topForm'].validate()\n const isMainFormValid = this.$refs['mainForm'].validate()\n\n if(isTopFormValid && isMainFormValid){\n this.finalSubmit()\n }\n }\n }\n};\n\n\nconst supportUpdateDataPersonalApp = Vue.createApp(supportUpdateDataPersonal);\nconst supportUpdateDataPersonalSelector = \"#support-update-data-personal-app\";\nif (document.querySelector(supportUpdateDataPersonalSelector)) {\n supportUpdateDataPersonalApp\n .directive(\"init\", initDirective)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"file-uploader\", fileUploader)\n .component(\"edit-cancel-fields\", editCancelFields)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportUpdateDataPersonalSelector);\n}\n\nconst supportUpdateDataLegal = {\n mixins: [multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {}\n };\n },\n mounted() {\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n methods:{\n }\n};\n\n\nconst supportUpdateDataLegalApp = Vue.createApp(supportUpdateDataLegal);\nconst supportUpdateDataLegalSelector = \"#support-update-data-legal-app\";\nif (document.querySelector(supportUpdateDataLegalSelector)) {\n supportUpdateDataLegalApp\n .directive(\"init\", initDirective)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"file-uploader\", fileUploader)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportUpdateDataLegalSelector);\n}\n\nconst supportCashBack = {\n mixins: [supplies, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n supplyNumber:'',\n loading: true,\n greReady: false,\n found: true,\n model: {\n addressType: 'address',\n ibanFor: 'client'\n },\n };\n },\n mounted() {\n if(!this.found && this.supplies.length){\n this.$refs['modalCritical'].show()\n }\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n}\n\n\nconst supportCashBackApp = Vue.createApp(supportCashBack);\nconst supportCashBackSelector = \"#support-cash-back-app\";\nif (document.querySelector(supportCashBackSelector)) {\n supportCashBackApp\n .directive(\"init\", initDirective)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"file-uploader\", fileUploader)\n .component(\"supply-list\", supplyList)\n .component(\"error-field\", errorField)\n .component('modal-critical', modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportCashBackSelector);\n}\n\nconst supportTechnicalLoggin = {\n mixins: [supplies, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n supplyNumber:'',\n loading: true,\n greReady: false,\n model: {},\n };\n },\n mounted() {\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n \n });\n },\n methods: {\n \n },\n};\n\nconst supportTechnicalLogginApp = Vue.createApp(supportTechnicalLoggin);\nconst supportTechnicalLogginSelector = \"#support-technical-app\";\nif (document.querySelector(supportTechnicalLogginSelector)) {\n supportTechnicalLogginApp\n .directive(\"init\", initDirective)\n .component(\"svg-source-print\", svgSourcePrint)\n .component(\"e-card-type\", eCardType)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"b-accordion\", bAccordion)\n .component(\"supply-list\", supplyList)\n .component(\"error-field\", errorField)\n .component(\"file-uploader\", fileUploader)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportTechnicalLogginSelector);\n}\n\n\nconst supportAccessRequestPending = {\n mixins: [wizardModel, sendCaptcha, makeFormData, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n hasError: false,\n errorMessages: [],\n updateRequestItemHandler: \"\",\n requestAction: \"\",\n };\n },\n mounted() {\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n methods: {\n setRequestAction(requestAction) {\n this.requestAction = requestAction;\n },\n async updateItemFromList(itemId) {\n if (!this.updateRequestItemHandler) return;\n\n const item = this.$refs.requestProvider.dataArray.find(item => item.id === itemId);\n if (!item) return;\n\n item.hasError = false;\n\n this.loading = true;\n\n\n var token = await this.callCaptcha();\n if (token) {\n await this.$nextTick();\n const dataToSend = this.makeFormData({\n ...{\n \"authorizationRequestId\": itemId,\n \"status\": this.requestAction\n }\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.updateRequestItemHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n this.openModalCriticalPendingAccess();\n }\n\n if (response.data.hasError) {\n item.hasError = true;\n this.errorMessages = response.data.errorMessages;\n }\n\n if (!response.data.hasError) {\n this.loading = false;\n this.refreshProvider();\n }\n } catch (errors) {\n this.loading = false;\n }\n }\n },\n refreshProvider() {\n if (!this.$refs.requestProvider) return;\n\n this.$refs.requestProvider.getData();\n },\n openModalCriticalPendingAccess() {\n this.$refs['modalCriticalPendingAccess'].show();\n },\n closeModalCriticalPendingAccess() {\n this.$refs['modalCriticalPendingAccess'].hide();\n },\n },\n};\n\nconst supportAccessRequestPendingApp = Vue.createApp(supportAccessRequestPending);\nconst supportAccessRequestPendingSelector = \"#support-access-request-pending-app\";\nif (document.querySelector(supportAccessRequestPendingSelector)) {\n supportAccessRequestPendingApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"b-pagination\", bPagination)\n .component(\"request-provider\", requestProvider)\n .component(\"request-card\", requestCard)\n .component(\"requests-list\", requestsList)\n .component(\"form-wizard\", formWizard)\n .component(\"modal-critical\", modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportAccessRequestPendingSelector);\n}\n\nconst supportAccessRequestHistory = {\n mixins: [sendCaptcha, makeFormData, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n hasError: false,\n errorMessages: [],\n updateRequestItemHandler: \"\",\n tempSearch: null,\n hasSearchError: null,\n };\n },\n mounted() {\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n });\n },\n methods: {\n\n async removeItemFromList(itemId) {\n if (!this.updateRequestItemHandler) return;\n\n const item = this.$refs.requestProvider.dataArray.find(item => item.id === itemId);\n if (!item) return;\n\n item.hasError = false;\n\n this.loading = true;\n\n var token = await this.callCaptcha();\n if (token) {\n await this.$nextTick();\n const dataToSend = this.makeFormData({\n ...{\n \"authorizationRequestId\": itemId,\n \"status\": 'DECLINED'\n }\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.updateRequestItemHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (response.data.criticalError) {\n this.openModalCriticalHistoryAccess();\n }\n\n if (response.data.hasError) {\n item.hasError = true;\n this.errorMessages = response.data.errorMessages;\n }\n\n if (!response.data.hasError) {\n this.loading = false;\n this.refreshProvider();\n }\n } catch (errors) {\n this.loading = false;\n }\n }\n },\n\n refreshProvider() {\n if (!this.$refs.requestProvider) return;\n\n this.$refs.requestProvider.getData();\n },\n openModalCriticalHistoryAccess() {\n this.$refs['modalCriticalHistoryAccess'].show();\n },\n closeModalCriticalHistoryAccess() {\n this.$refs['modalCriticalHistoryAccess'].hide();\n },\n updateSearch(val) {\n const minLength = this.$refs.searchInput.$el.getAttribute('data-val-minlength');\n const maxLength = this.$refs.searchInput.$el.getAttribute('data-val-maxlength');\n\n this.hasSearchError = \"\";\n\n console.log(val, val.length);\n\n\n if (val.length < minLength && val.length > 0) {\n this.hasSearchError = this.$refs.searchInput.$el.getAttribute('data-val-minlength-message');\n this.tempSearch = null;\n } else if (val.length > maxLength) {\n this.hasSearchError = this.$refs.searchInput.$el.getAttribute('data-val-maxlength-message');\n this.tempSearch = null;\n } else if (val.length == 0) {\n this.hasSearchError = null;\n this.tempSearch = null;\n } else {\n this.tempSearch = val;\n }\n },\n simpleSearchArray(array) {\n\n if (!this.tempSearch && this.tempSearch !== 0) {\n return array;\n }\n return array.filter(item =>\n item.accountIds.includes(this.tempSearch) || item.owner === this.tempSearch || item.authorized.includes(this.tempSearch)\n );\n }\n },\n};\n\nconst supportAccessRequestHistoryApp = Vue.createApp(supportAccessRequestHistory);\nconst supportAccessRequestHistorySelector = \"#support-access-request-history-app\";\nif (document.querySelector(supportAccessRequestHistorySelector)) {\n supportAccessRequestHistoryApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"b-pagination\", bPagination)\n .component(\"request-card\", requestCard)\n .component(\"request-provider\", requestProvider)\n .component(\"requests-list\", requestsList)\n .component(\"modal-critical\", modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .component(\"input-search-simple\", inputSearchSimple)\n .mount(supportAccessRequestHistorySelector);\n}\n\nconst supportOwnerGiveAccess = {\n mixins: [supplies, multiFormSubmit, wizardModel, makeFormData, allowCaptcha, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {\n selectedSupplies: [],\n emailAccount: [],\n accessType: \"\",\n terms: false\n },\n hasError: false,\n errorMessages: [],\n accessType: \"\"\n };\n },\n mounted() {\n this.model.accessType = this.accessType\n },\n methods: {\n\n removeCurrentAccount(index) {\n if (this.model.emailAccount[index]) {\n this.model.emailAccount.splice(index, 1);\n }\n },\n\n goToPageResetModel(page) {\n this.$refs['supportOwnerGiveAccess'].goTo(page);\n this.resetModel();\n },\n\n resetModel() {\n const keysToDelete = {\n selectedSupplies: [],\n emailAccount: [],\n email: '',\n terms: false,\n };\n Object.keys(keysToDelete).forEach(key => {\n this.model[key] = keysToDelete[key];\n });\n },\n\n async giveAccessSubmit() {\n this.loading = true;\n this.hasError = false;\n\n var token = await this.callCaptcha();\n\n if (token) {\n this.updateToken(token);\n await this.$nextTick();\n const dataToSend = this.makeFormData({\n ...this.model,\n recaptchaResponse: token,\n });\n\n // dataToSend.append('recaptchaResponse', token);\n\n try {\n var response = await axios({ \n method: \"post\",\n url: this.finalSubmitHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n }else if (response.data.hasError) {\n this.hasError = true;\n this.errorMessages = response.data.errorMessages;\n this.addErrorFields(response.data.errorFields)\n } else if(response.data.noAccessToSupplies) {\n this.noAccessToSupplies = true\n } else if(response.data.submissionFailed) {\n this.$refs['supportOwnerGiveAccess'].goTo('fail')\n } else {\n this.$refs['supportOwnerGiveAccess'].goTo('success')\n }\n\n this.loading = false;\n\n } catch (errors) {\n this.loading = false;\n }\n }\n }\n },\n};\n\nconst supportOwnerGiveAccessApp = Vue.createApp(supportOwnerGiveAccess);\nconst supportOwnerGiveAccessSelector = \"#support-owner-give-access-app\";\nif (document.querySelector(supportOwnerGiveAccessSelector)) {\n supportOwnerGiveAccessApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"modal-critical\", modalCritical)\n .component(\"form-wizard\", formWizard)\n .component(\"supply-list\", supplyList)\n .component(\"error-field\", errorField)\n .component(\"alert-danger\", alertDanger)\n .component(\"e-card-type\", eCardType)\n .component(\"add-remove-group\", addRemoveGroup)\n .component(\"named-steps\", namedSteps)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportOwnerGiveAccessSelector);\n}\n\nconst supportOwnerAskAccess = {\n mixins: [supplies, multiFormSubmit, wizardModel, makeFormData, allowCaptcha, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {\n accessType: \"\",\n email: \"\",\n contractAccount: [],\n terms: false,\n },\n accessType: \"\",\n hasError: false,\n errorMessages: [],\n };\n },\n mounted() {\n jQuery(document).on(\"recaptcha-loaded\", () => {\n this.loading = false;\n this.greReady = true;\n this.model.accessType = this.accessType;\n });\n },\n methods: {\n async submitUserAskAccess() {\n this.loading = true;\n this.hasError = false;\n },\n removeCurrentAccount(index) {\n if (this.model.contractAccount[index]) {\n this.model.contractAccount.splice(index, 1);\n }\n },\n\n goToPageResetModel(page) {\n this.$refs['supportOwnerAskAccess'].goTo(page);\n this.resetModel();\n },\n\n resetModel() {\n const keysToDelete = {\n accessType: \"\",\n email: \"\",\n contractAccount: [],\n terms: false,\n };\n Object.keys(keysToDelete).forEach(key => {\n this.model[key] = keysToDelete[key];\n });\n },\n\n async askAccessSubmit() {\n this.loading = true;\n this.hasError = false;\n\n var token = await this.callCaptcha();\n if (token) {\n this.updateToken(token);\n await this.$nextTick();\n const dataToSend = this.makeFormData({\n ...this.model,\n recaptchaResponse: token,\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.finalSubmitHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n } else if (response.data.hasError) {\n this.hasError = true;\n this.errorMessages = response.data.errorMessages;\n this.addErrorFields(response.data.errorFields);\n } else if(!response.data.hasError && response.data.submissionFailed) {\n this.submissionFailed = true\n this.$refs['supportOwnerAskAccess'].goTo('fail');\n } else {\n this.$refs['supportOwnerAskAccess'].goTo('success');\n }\n\n this.loading = false;\n\n } catch (errors) {\n this.loading = false;\n }\n }\n\n\n }\n },\n};\n\nconst supportOwnerAskAccessApp = Vue.createApp(supportOwnerAskAccess);\nconst supportOwnerAskAccessSelector = \"#support-owner-ask-access-app\";\nif (document.querySelector(supportOwnerAskAccessSelector)) {\n supportOwnerAskAccessApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"named-steps\", namedSteps)\n .component(\"form-wizard\", formWizard)\n .component(\"add-remove-group\", addRemoveGroup)\n .component(\"error-field\", errorField)\n .component(\"modal-critical\", modalCritical)\n .component(\"alert-danger\", alertDanger)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportOwnerAskAccessSelector);\n}\n\nconst supportAuthorizedAskAccess = {\n mixins: [supplies, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n};\n\nconst supportAuthorizedAskAccessApp = Vue.createApp(supportAuthorizedAskAccess);\nconst supportAuthorizedAskAccessSelector = \"#support-authorized-ask-access-app\";\nif (document.querySelector(supportAuthorizedAskAccessSelector)) {\n supportAuthorizedAskAccessApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"form-wizard\", formWizard)\n .component(\"error-field\", errorField)\n .component(\"modal-critical\", modalCritical)\n .component(\"alert-danger\", alertDanger)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(supportAuthorizedAskAccessSelector);\n}\n\nconst entraChangeEmail = {\n mixins: [enableDisableButtons, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {\n email: \"\",\n },\n countryCode:\"\",\n phone:\"\"\n };\n },\n mounted() {\n this.model.countryCode = this.countryCode\n this.model.phone = this.phone\n },\n \n methods: {\n resendAndClearInput() {\n this.$refs.codeInput.value = '';\n this.$refs.codeInput.dispatchEvent(new Event('input'));\n this.$refs.otp.resend();\n },\n }\n};\n\nconst entraChangeEmailApp = Vue.createApp(entraChangeEmail);\nconst entraChangeEmailSelector = \"#entra-change-email\";\nif (document.querySelector(entraChangeEmailSelector)) {\n entraChangeEmailApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"b-accordion\", bAccordion)\n .component(\"otp-wrapper\", otpWrapper)\n .component(\"otp\", otp)\n .component('phone-number', phoneNumber)\n .component('modal-critical', modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(entraChangeEmailSelector);\n}\n\nconst entraChangePassword = {\n mixins: [enableDisableButtons, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {\n email: \"\",\n },\n countryCode:\"\",\n phone:\"\"\n };\n },\n mounted() {\n this.model.countryCode = this.countryCode\n this.model.phone = this.phone\n }\n};\n\nconst entraChangePasswordApp = Vue.createApp(entraChangePassword);\nconst entraChangePasswordSelector = \"#entra-change-password\";\nif (document.querySelector(entraChangePasswordSelector)) {\n entraChangePasswordApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"b-accordion\", bAccordion)\n .component(\"otp-wrapper\", otpWrapper)\n .component(\"otp\", otp)\n .component('phone-number', phoneNumber)\n .component('modal-critical', modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(entraChangePasswordSelector);\n}\n\nconst entraChangePhone = {\n mixins: [enableDisableButtons, multiFormSubmit, allowCaptcha, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n //loading: true,\n greReady: false,\n model: {\n email: \"\",\n },\n countryCode: \"\",\n phone: \"\",\n finalMessage: \"\"\n };\n },\n mounted() {\n this.model.countryCode = this.countryCode;\n this.model.phone = this.phone;\n console.log(\"captchaEnabled\", this.captchaEnabled, \"loading\", this.loading)\n },\n\n methods: {\n resendAndClearInput() {\n this.$refs.codeInput.value = '';\n this.$refs.codeInput.dispatchEvent(new Event('input'));\n this.$refs.otp.resend();\n },\n\n goToPage(data) {\n if(data.url) {\n window.location.href = data.url\n } else {\n this.$refs['mainNamedSteps'].goTo('success'); \n this.finalMessage = data?.message;\n }\n }\n },\n\n\n};\n\nconst entraChangePhoneApp = Vue.createApp(entraChangePhone);\nconst entraChangePhoneSelector = \"#entra-change-phone\";\nif (document.querySelector(entraChangePhoneSelector)) {\n entraChangePhoneApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"b-accordion\", bAccordion)\n .component(\"otp-wrapper\", otpWrapper)\n .component(\"otp\", otp)\n .component('phone-number', phoneNumber)\n .component('modal-critical', modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(entraChangePhoneSelector);\n}\n\nconst entraDeleteProfile = {\n mixins: [reloadWindowIfTokenExpired, enableDisableButtons, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n finalSubmitError: false,\n greReady: false,\n model: {\n email: \"\",\n },\n countryCode: \"\",\n phone: \"\",\n canDeleteProfile: true,\n hasCa: true\n };\n },\n mounted() {\n this.model.countryCode = this.countryCode;\n this.model.phone = this.phone;\n this.model.hasCa = this.hasCa;\n },\n methods: {\n resendAndClearInput() {\n this.$refs.codeInput.value = '';\n this.$refs.codeInput.dispatchEvent(new Event('input'));\n this.$refs.otp.resend();\n },\n\n async finalSubmit() {\n this.loading = true;\n this.finalSubmitError = false;\n var token = await this.callCaptcha();\n token = this.captchaEnabled ? token : true;\n\n if (token) {\n this.updateToken(token);\n this.$nextTick(async () => {\n\n const dataToSend = this.makeFormData({\n \"__sessionid\": this.sessionId,\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.submitHandler,\n data: dataToSend,\n // headers: { \"Content-Type\": \"multipart/form-data\" }\n });\n\n this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)\n\n this.loading = false;\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n }\n\n if (!response.data.hasError) {\n this.$refs['mainNamedSteps'].goTo('success');\n } else {\n this.submitFailed();\n }\n\n } catch (errors) {\n this.submitFailed();\n }\n });\n }\n },\n submitFailed() {\n this.loading = false;\n this.$refs['mainNamedSteps'].goTo('failedSubmit');\n this.finalSubmitError = true;\n }\n }\n};\n\n\nconst entraDeleteProfileApp = Vue.createApp(entraDeleteProfile);\nconst entraDeleteProfileSelector = \"#entra-delete-profile\";\nif (document.querySelector(entraDeleteProfileSelector)) {\n entraDeleteProfileApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"b-accordion\", bAccordion)\n .component(\"otp-wrapper\", otpWrapper)\n .component(\"otp\", otp)\n .component('phone-number', phoneNumber)\n .component('modal-critical', modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(entraDeleteProfileSelector);\n}\nconst entraChangeFullName = {\n mixins: [enableDisableButtons, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {\n firstName: \"\",\n lastName: \"\",\n },\n firstName: \"\",\n lastName: \"\",\n };\n },\n mounted() {\n this.model.firstName = this.firstName;\n this.model.lastName = this.lastName;\n },\n};\n\nconst entraChangeFullNameApp = Vue.createApp(entraChangeFullName);\nconst entraChangeFullNameSelector = \"#entra-change-full-name\";\nif (document.querySelector(entraChangeFullNameSelector)) {\n entraChangeFullNameApp\n .directive(\"init\", initDirective)\n .directive(\"input-clean-name\", inputCleanName)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"modal-critical\", modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(entraChangeFullNameSelector);\n}\n\nconst entraMigrationChangeEmail = {\n mixins: [reloadWindowIfTokenExpired, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {\n email: \"\",\n terms: \"\"\n },\n email: \"\",\n terms: \"\",\n hasError: \"\",\n errorMsg: []\n };\n },\n\n mounted() {\n this.model.email = this.email;\n this.model.terms = this.terms\n },\n\n methods: {\n\n async finalSubmit() {\n this.loading = true;\n var token = await this.callCaptcha();\n token = this.captchaEnabled ? token : true;\n\n if (token) {\n this.updateToken(token);\n const step = this.$refs['mainNamedSteps'];\n\n this.$nextTick(async () => {\n const dataToSend = this.makeFormData({\n \"__sessionid\": this.sessionId,\n \"email\": this.model.email,\n \"terms\": this.model.terms\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.submitHandler,\n data: dataToSend,\n });\n\n this.loading = false;\n \n if(this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n }\n\n if (response.data.hasError) {\n this.hasError = true;\n this.errorMsg = response.data.errorMessages;\n }\n\n if (!response.data.hasError) {\n if (!response.data.isUser) step.goTo('not-user');\n else if (response.data.isMigrated) step.goTo('migrated');\n else if (!response.data.isMigrated) step.goTo('not-migrated');\n }\n } catch (errors) {\n this.hasError = true;\n this.loading = false;\n }\n });\n\n }\n },\n }\n\n};\n\nconst entraMigrationChangeEmailApp = Vue.createApp(entraMigrationChangeEmail);\nconst entraMigrationChangeEmailSelector = \"#entra-migration-change-email\";\nif (document.querySelector(entraMigrationChangeEmailSelector)) {\n entraMigrationChangeEmailApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"modal-critical\", modalCritical)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(entraMigrationChangeEmailSelector);\n}\n\nconst entraResetCredentials = {\n mixins: [enableDisableButtons, multiFormSubmit, wizardModel, makeFormData, sendCaptcha, formScrolling],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {},\n countryCode: \"\",\n phone: \"\",\n hasError: false,\n errorMessages: [],\n finalMessage: \"\",\n };\n },\n methods: {\n async checkIfSingleProfile() {\n this.loading = true;\n this.hasError = false;\n\n var token = await this.callCaptcha();\n\n if (token) {\n this.updateToken(token);\n await this.$nextTick();\n\n const step = this.$refs['mainNamedSteps'];\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.checkUserHandler,\n data: { ...this.model },\n headers: { \"Content-Type\": \"application/json\" },\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n } else if (response.data.hasError) {\n this.hasError = true;\n this.errorMessages = response.data.errorMessages;\n this.finalMessage = response.data.errorMessages[0];\n step.goTo('failedUser');\n } else if (!response.data.data) {\n this.critical(response.data.criticalErrorCode);\n } else if (!response.data.hasError) {\n this.model.countryCode = response?.data?.data?.countryCode || '';\n this.model.phone = response?.data?.data?.phone || '';\n step.goTo('otp');\n }\n\n this.loading = false;\n\n } catch (errors) {\n this.loading = false;\n }\n }\n },\n\n async finalSubmit() {\n this.loading = true;\n\n var token = await this.callCaptcha();\n if (token) {\n this.updateToken(token);\n await this.$nextTick();\n\n const step = this.$refs['mainNamedSteps'];\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.submitHandler,\n data: { ...this.model },\n //headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n } else if (response.data.hasError) {\n this.hasError = true;\n this.finalMessage = response.data.errorMessages[0];\n step.goTo('failedUser');\n } else if (!response.data.hasError) {\n this.finalMessage = response.data.data.message;\n this.nextStep();\n }\n\n this.loading = false;\n } catch (errors) {\n this.loading = false;\n this.handleError([this.globalerror]);\n }\n }\n },\n\n resendAndClearInput() {\n this.$refs.codeInput.value = \"\";\n this.$refs.codeInput.dispatchEvent(new Event(\"input\"));\n this.$refs.otp.resend();\n },\n },\n};\n\nconst entraResetCredentialsApp = Vue.createApp(entraResetCredentials);\nconst entraResetCredentialsSelector = \"#entra-reset-credentials\";\nif (document.querySelector(entraResetCredentialsSelector)) {\n entraResetCredentialsApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"named-steps\", namedSteps)\n .component(\"b-accordion\", bAccordion)\n .component(\"otp-wrapper\", otpWrapper)\n .component(\"otp\", otp)\n .component(\"phone-number\", phoneNumber)\n .component(\"modal-critical\", modalCritical)\n .mount(entraResetCredentialsSelector);\n}\n\nconst idenCorelLogin = {\n mixins: [reloadWindowIfTokenExpired, wizardSteps, wizardModel, makeFormData, sendCaptcha, multiFormSubmit, bsTooltip],\n data() {\n return {\n loading: true,\n greReady: false,\n model: {\n accountSelection: \"\",\n customerType: \"\",\n afm: \"\",\n adt: \"\",\n email: \"\",\n accessType: \"\",\n terms: false,\n dataArray: [],\n contractAccount: [],\n selfcareRedirectLink: \"\"\n },\n hasError: false,\n accountSelection: \"\",\n accessType: \"\",\n errorMessages: [],\n alertMessages: [],\n cancelHandler: \"\",\n showHide: false,\n showAlert: false,\n showMyDeiCta: false,\n updateRequestItemHandler: \"\",\n requestAction: \"\",\n selfcareRedirectLink: \"\",\n storedDataHandler: \"\",\n isMounted: true,\n };\n },\n mounted() {\n this.initializeModel();\n },\n\n methods: {\n initializeModel() {\n this.model.customerType = this.customerType;\n this.model.accountSelection = this.accountSelection;\n this.model.accessType = this.accessType;\n this.model.selfcareRedirectLink = this.selfcareRedirectLink;\n },\n updateModelFromStore(data) {\n if (data && typeof data === 'object') {\n return JSON.parse(JSON.stringify(data));\n } \n },\n handleAsyncRequest(step) {\n this.isMounted ? this.fetchCurrentStepAndModel() : this.sentCurrentStepAndModel(step);\n },\n async fetchCurrentStepAndModel() {\n this.loading = true;\n this.hasError = false;\n await this.$nextTick();\n \n try {\n var response = await axios({\n method: \"post\",\n url: this.storedDataHandler,\n data: null,\n headers: { \"Content-Type\": \"application/json\" }\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n }\n\n if (response.data.hasError) {\n this.hasError = true;\n this.errorMessages = response.data.errorMessages;\n }\n \n if (!response.data.hasError) {\n this.loading = false;\n this.model = this.updateModelFromStore(response.data.data) \n this.initializeModel();\n this.isMounted = false; \n }\n } catch (errors) {\n this.loading = false;\n }\n },\n async sentCurrentStepAndModel(step) {\n this.loading = true;\n this.hasError = false;\n\n await this.$nextTick();\n\n const dataToSend = {\n ...this.model,\n \"currentStep\": step\n }\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.storedDataHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"application/json\" }\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n }\n\n if (response.data.hasError) {\n this.hasError = true;\n this.errorMessages = response.data.errorMessages;\n }\n\n if (!response.data.hasError) {\n this.loading = false;\n this.model = this.updateModelFromStore(response.data.data)\n }\n\n } catch (errors) {\n this.loading = false;\n }\n\n },\n\n goToPageResetModel(page) {\n this.$refs['loginNamedSteps'].goTo(page);\n this.resetModel();\n },\n\n resetModel() {\n const keysToDelete = ['afm', 'adt', 'email', 'legalAfm', 'file_1', 'file_2', 'file_3', 'file_4', 'file_5'];\n keysToDelete.forEach(this.deleteItemFromModel);\n this.model.customerType = 'individual';\n this.model.dataArray = [];\n this.model.contractAccount = [];\n this.model.terms = false;\n },\n\n deleteItemFromModel(key) {\n if (this.model[key]) {\n delete this.model[key];\n }\n },\n\n goToIntroAndResetModel() {\n this.$refs['loginNamedSteps'].goTo('intro');\n this.resetModel();\n },\n\n nextPage() {\n if (this.model.accountSelection === 'user-account') {\n this.$refs['loginNamedSteps'].goTo('identification');\n } if (this.model.accountSelection === 'other-account') {\n this.$refs['loginNamedSteps'].goTo('step-authorization');\n }\n },\n\n goToPending(){\n this.$refs['loginNamedSteps'].goTo('step-pending');\n },\n\n pageMaxWidth() {\n if (this.$refs['loginNamedSteps'] && this.$refs['loginNamedSteps'].is('step-request-details')) {\n return 's-iden-corel-login__layout--desktop-view';\n } else {\n return '';\n }\n },\n setRequestAction(requestAction) {\n this.requestAction = requestAction;\n },\n\n async cancelAndResetModel() {\n this.loading = true;\n this.hasError = false;\n\n var token = await this.callCaptcha();\n\n if (token) {\n await this.$nextTick();\n const dataToSend = this.makeFormData({\n ...this.model\n });\n\n try {\n\n var response = await axios({\n method: \"post\",\n url: this.cancelHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return;\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n }\n\n if (response.data.hasError) {\n this.hasError = true;\n this.errorMessages = response.data.errorMessages;\n }\n\n if (!response.data.hasError) {\n if (this.$refs['loginNamedSteps'] && this.$refs['loginNamedSteps'].is('file-upload')) {\n this.$refs['loginNamedSteps'].goTo('identification');\n }\n\n this.resetModel();\n this.loading = false;\n }\n\n } catch (errors) {\n this.loading = false;\n }\n }\n },\n\n async submitUserAccess() {\n this.loading = true;\n this.hasError = false;\n this.clearErrorFields();\n\n var token = await this.callCaptcha();\n\n if (token) {\n await this.$nextTick();\n const dataToSend = this.makeFormData({\n ...this.model\n });\n\n try {\n const step = this.$refs['loginNamedSteps'];\n var response = await axios({\n method: \"post\",\n url: this.submitUserAccessHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n }\n\n if (response.data.hasError) {\n this.hasError = true;\n this.errorMessages = response.data.errorMessages;\n this.addErrorFields(response.data.errorFields);\n }\n\n if (!response.data.hasError) {\n this.loading = false;\n this.showAlert = true;\n this.goToPageResetModel('step-request-details');\n }\n\n } catch (errors) {\n this.loading = false;\n }\n this.loading = false;\n }\n },\n\n async userProperty() {\n this.loading = true;\n this.hasError = false;\n \n try {\n const token = await this.callCaptcha();\n if (!token) return;\n \n this.updateToken(token);\n await this.$nextTick();\n \n const dataToSend = this.makeFormData({\n ...this.model,\n recaptchaResponse: token,\n });\n \n const step = this.$refs['loginNamedSteps'];\n const response = await axios.post(this.userPropertyHandler, dataToSend, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n \n if (this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return;\n \n const responseData = response.data;\n if (responseData.criticalError) {\n return this.critical(responseData.criticalErrorCode);\n }\n \n if (responseData.hasError) {\n this.handleError(responseData, step);\n return;\n }\n \n this.handleResponseSteps(responseData, step);\n \n } catch (error) {\n console.error(error);\n this.hasError = true;\n } finally {\n this.loading = false;\n }\n },\n \n\n handleError(responseData, step) {\n this.hasError = true;\n this.errorMessages = responseData.errorMessages;\n const customerType = this.model.customerType;\n \n if (customerType === 'individual' || customerType === 'legal') {\n this.model.customerType = customerType;\n step.goTo('identification');\n }\n },\n \n handleResponseSteps(responseData, step) {\n if (responseData.identificationCompleted) {\n step.goTo('step-success');\n } else if (responseData.identificationFailed) {\n this.identificationFailedErrorMessage = true;\n step.goTo('step-fail');\n } else if (responseData.isSelfCare) {\n window.location.href = this.selfcareRedirectLink;\n } else if (responseData.pendingPpcConfirmation) {\n step.goTo('step-pending');\n } else if (responseData.inactiveContractAccount) {\n step.goTo('step-inactive-account');\n } else if (responseData.identificationRejected) {\n step.goTo('step-identification-rejected');\n } else if (responseData.dedicatedError) {\n step.goTo('dedicated-error');\n } else if (this.model.customerType === 'individual') {\n step.goTo(responseData.pendingDocsIndividual ? 'file-upload' : 'step-pending');\n } else if (this.model.customerType === 'legal') {\n step.goTo(responseData.pendingDocsLegal ? 'file-upload' : 'step-pending');\n }\n },\n \n\n async finalSubmit() {\n this.loading = true;\n this.hasError = false;\n\n var token = await this.callCaptcha();\n\n if (token) {\n this.updateToken(token);\n\n await this.$nextTick();\n\n const dataToSend = new FormData();\n\n Object.keys(this.model).forEach(key => {\n dataToSend.append(key, this.model[key]);\n });\n\n\n dataToSend.append('recaptchaResponse', token);\n\n const fileKeys = [\"file_1\", \"file_2\", \"file_3\", \"file_4\", \"file_5\"];\n fileKeys.forEach(refKey => {\n const fileInput = this.$refs[refKey];\n if (fileInput && fileInput.files.length > 0) {\n dataToSend.append(refKey, fileInput.files[0]);\n }\n });\n\n try {\n const step = this.$refs['loginNamedSteps'];\n\n var response = await axios({\n method: \"post\",\n url: this.finalSubmitHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (this.reloadWindowIfTokenExpired(response?.data?.tokenExpired)) return;\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n } else if (response.data.hasError) {\n this.hasError = true;\n this.errorMessages = response.data.errorMessages;\n } else if (!response.data.hasError) {\n step.goTo('step-pending');\n }\n\n this.resetModel();\n this.loading = false;\n\n } catch (errors) {\n this.loading = false;\n }\n }\n },\n\n async updateItemFromList(itemId) {\n if (!this.updateRequestItemHandler) return;\n\n const item = this.$refs.requestProvider.dataArray.find(item => item.id === itemId);\n if (!item) return;\n\n item.hasError = false;\n\n this.loading = true;\n\n var token = await this.callCaptcha();\n if (token) {\n await this.$nextTick();\n const dataToSend = this.makeFormData({\n ...{\n \"authorizationRequestId\": itemId,\n \"status\": this.requestAction\n }\n });\n\n try {\n var response = await axios({\n method: \"post\",\n url: this.updateRequestItemHandler,\n data: dataToSend,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n });\n\n if (response.data.criticalError) {\n this.critical(response.data.criticalErrorCode);\n }\n\n if (response.data.hasError) {\n item.hasError = true;\n this.errorMessages = response.data.errorMessages;\n }\n\n if (!response.data.hasError) {\n this.showMyDeiCta = true;\n this.loading = false;\n this.refreshProvider();\n }\n } catch (errors) {\n this.loading = false;\n }\n }\n },\n\n // Add remove group & Check supply component methods\n removeCurrentAccount(index) {\n if (this.model.contractAccount[index]) {\n this.model.contractAccount.splice(index, 1);\n }\n },\n\n hideAlert() {\n this.showAlert = false;\n },\n\n refreshProvider() {\n if (!this.$refs.requestProvider) return;\n\n this.$refs.requestProvider.getData();\n }\n },\n\n\n computed: {\n // addedAccounts() {\n // if (this.model.supplies) {\n // return this.model.supplies.join(',');\n // }\n // return '';\n // },\n },\n};\n\nconst idenCorelLoginApp = Vue.createApp(idenCorelLogin);\nconst idenCorelLoginSelector = \"#iden-corel-login-app\";\nif (document.querySelector(idenCorelLoginSelector)) {\n idenCorelLoginApp\n .directive(\"init\", initDirective)\n .component(\"e-loader\", eLoader)\n .component(\"alert-danger\", alertDanger)\n .component(\"alert-success\", alertSuccess)\n .component(\"form-wizard\", formWizard)\n .component(\"file-uploader\", fileUploader)\n .component(\"named-steps\", namedSteps)\n .component(\"modal-critical\", modalCritical)\n .component(\"check-supply\", checkSupply)\n .component(\"add-remove-group\", addRemoveGroup)\n .component(\"request-provider\", requestProvider)\n .component(\"request-card\", requestCard)\n .component(\"requests-list\", requestsList)\n .component(\"b-pagination\", bPagination)\n .component(\"error-field\", errorField)\n .component(\"element-with-tooltip\", elementWithTooltip)\n .mount(idenCorelLoginSelector);\n}\n//# sourceMappingURL=maps/my-account.js.map"]}