{"version":3,"sources":["Feature.ts","Gender.ts","KnownGameIds.ts","SportType.ts","CreateNewRelicConsole.ts","Email.ts","FormattedDateTime.ts","Header.ts","NotificationBar.ts","NewPopup.ts","Vat.ts","cookiePopup.ts","scorito-shared.ts","handlebars-helpers.ts","scorito.ts","ApiResultCode.ts","UserPredictionStatusApiSettings.ts","LeagueApiSettings.ts","Profile.ts","TabController.ts","Participants/ParticipantsRenderer.ts","Upgrade/ViewModels/UpgradeParticipantModel.ts","SettingsController.ts","Sales/Steps/ViewModel/StepModel.ts","DateTimes.ts","Numbers.ts","ApiResult.ts","Dictionary.ts","Authentication.ts","BaseList.ts","Storage.ts","LeagueRepository.ts","API.ts","Countries.ts","Country.ts","GameInfo.ts","Market.ts","MarketRound.ts","MarketRounds.ts","PlatformRepository.ts","Translations.ts","TermsAndConditionsController.ts","TranslationStorageData.ts","TranslationController.ts","Territory/IRegion.ts","SalesApiSettings.ts","UserApiSettings.ts","PlatformApiSettings.ts","UserRepository.ts","AdyenAuthResult.ts","CartRenderType.ts","ClientAdminTabType.ts","ConfigurationStatusType.ts","ConfigurationStepType.ts","DiscountType.ts","FaqType.ts","GeneralTabType.ts","HeaderIconColorType.ts","LeagueAdminTabType.ts","ManagementInvitationStatus.ts","MarketingTabType.ts","PackageType.ts","RoleType.ts","SettingsStepType.ts","UserValidationPopupRedirectPage.ts","SalesAccountData.ts","AccountData/AccountDataRepository.ts","Actions/ActionsRepository.ts","Administrator/AdministratorRepository.ts","Advertisement/AdvertisementRepository.ts","Brochure/BrochureRepository.ts","Client/ClientRepository.ts","Articles/ArticleRepository.ts","Deals/DealsRepository.ts","Coupon/CouponRepository.ts","Faq/FaqRepository.ts","FooterImage/FooterImageRepository.ts","Interstitials/InterstitialRepository.ts","Invite/InviteRepository.ts","OptIns/OptInRepository.ts","PackageOptions/PackageOptionsRepository.ts","Participants/ParticipantRepository.ts","Payment/PaymentRepository.ts","Purchases/PurchaseRepository.ts","Ranking/RankingRepository.ts","SalesPackage/SalesPackageRepository.ts","SalesUser/SalesUserRepository.ts","SteamReferral/SteamReferralRepository.ts","SubLeague/SubleagueRepository.ts","Tabs/TabsRepository.ts","Territory/TerritoryRepository.ts","UserPredictionStatus/UserPredictionStatusRepository.ts","Actions/DTO/ClientActions.ts","Actions/DTO/LeagueActions.ts","Actions/DTO/LeagueActionsCollection.ts","Actions/DTO/MarketActions.ts","Actions/DTO/MarketActionsCollection.ts","Administrator/DTO/Administrator.ts","Administrator/DTO/Administrators.ts","Administrator/DTO/InviteModel.ts","Advertisement/DTO/Advertisement.ts","Advertisement/DTO/Advertisements.ts","Brochure/DTO/SendBrochureModel.ts","Client/DTO/ClientMarket.ts","Client/DTO/ClientMarketHeader.ts","Client/DTO/ClientMarketSettings.ts","Client/DTO/ClientMarkets.ts","Articles/DTO/Article.ts","Articles/DTO/Articles.ts","Deals/DTO/CalculatedDeal.ts","Deals/DTO/CalculatedOrder.ts","Deals/DTO/CombiDeal.ts","Deals/DTO/CombiDeals.ts","Deals/DTO/Deal.ts","Deals/DTO/Deals.ts","Deals/DTO/EarlyBirdDiscount.ts","Deals/DTO/MarketDealResult.ts","Deals/DTO/MarketDealResults.ts","Coupon/DTO/Coupon.ts","Faq/DTO/FaqCategories.ts","Faq/DTO/FaqCategory.ts","Faq/DTO/FaqQuestion.ts","Faq/DTO/FaqQuestions.ts","Interstitials/DTO/Interstitial.ts","Interstitials/DTO/Interstitials.ts","Invite/DTO/InviteContent.ts","PackageOptions/DTO/PackageOption.ts","PackageOptions/DTO/PackageOptionDescription.ts","PackageOptions/DTO/PackageOptionsResult.ts","Participants/DTO/Participant.ts","Participants/DTO/Participants.ts","Payment/DTO/Amount.ts","Payment/DTO/Issuer.ts","Payment/DTO/Issuers.ts","Payment/DTO/PaymentMethod.ts","Payment/DTO/PaymentMethodGroup.ts","Payment/DTO/PaymentMethods.ts","Payment/DTO/PaymentSession.ts","Purchases/DTO/Discount.ts","Purchases/DTO/Invoice.ts","Purchases/DTO/Purchase.ts","Purchases/DTO/PurchaseDetail.ts","Purchases/DTO/PurchaseStatus.ts","Purchases/DTO/Purchases.ts","SalesPackage/DTO/MarketSalesPackage.ts","SalesPackage/DTO/MarketSalesPackagesResult.ts","SalesPackage/DTO/SalesPackageType.ts","SalesUser/DTO/SalesUser.ts","SalesUser/DTO/SalesUserRoles.ts","SubLeague/DTO/InviteMail.ts","SubLeague/DTO/SubLeague.ts","SubLeague/DTO/SubLeagues.ts","Tabs/DTO/GameTab.ts","Tabs/DTO/GameTabs.ts","Tabs/DTO/MarketTab.ts","UserPredictionStatus/DTO/PredictableRoundModel.ts","UserPredictionStatus/DTO/UserPredictionStatus.ts","UserPredictionStatus/DTO/UserPredictionStatuses.ts","CallingCodeDropDownRenderer.ts","CropperConfig.ts","PurchaseInformationModel.ts","Invite/ExplanationRenderer.ts","Invite/ExplanationRendererModel.ts","LoadingOverlay/LoadingOverlayRenderer.ts","Package/PackageOptionPopUpRenderer.ts","Package/PackageOptionsTableRenderer.ts","Client/ViewModels/ClientMarketHeaderModel.ts","Client/ViewModels/ClientMarketModel.ts","Client/ViewModels/ClientMarketSettingsModel.ts","Client/ViewModels/ClientMarketsModel.ts","Faq/ViewModels/FaqCategoriesModel.ts","Faq/ViewModels/FaqCategoryModel.ts","Package/ViewModels/PackageOptionModel.ts","Package/ViewModels/PackageOptionPopUpModel.ts","Package/ViewModels/PackageOptionsTableModel.ts","AdditionalDealModel.ts","CartModel.ts","PackageRowModel.ts","PersonalizePopupRenderer.ts","SummaryModel.ts","CombidealRowModel.ts","PromotionalBlockModel.ts","Toast.ts","ManagementController.ts","ActionsController.ts","Articles/ArticleControllerHelper.ts","Articles/ArticlesRenderer.ts","Help/HelpControllerHelper.ts","Help/HelpRenderer.ts","Invite/InviteControllerHelper.ts","Participants/ParticipantMailMode.ts","Participants/ParticipantsControllerHelper.ts","ClientAdministratorTabController.ts","ClientAdministratorRenderer.ts","ConfigurationController.ts","HelpController.ts","InviteController.ts","ParticipantsController.ts","SubleagueController.ts","UpgradeController.ts","Marketing/MarketingController.ts","Marketing/MarketingRenderer.ts","SubLeagues/SubLeaguesRenderer.ts","Upgrade/UpgradeRenderer.ts","ViewModels/BrandingPackageModel.ts","ViewModels/ClientAdministratorStepModel.ts","ViewModels/LandingPageModel.ts","ViewModels/LeagueNameModel.ts","ViewModels/LogoTakeOverModel.ts","ViewModels/MultiSubLeaguesModel.ts","ViewModels/PromotionalPackageModel.ts","ViewModels/RankingLogoModel.ts","ViewModels/WelcomeEmailModel.ts","Marketing/Advertisements/AdvertisementsController.ts","Marketing/Advertisements/AdvertisementsRenderer.ts","Marketing/Interstitials/InterstitialsController.ts","Marketing/Interstitials/InterstitialsRenderer.ts","Marketing/OptIn/OptInController.ts","Marketing/OptIn/OptInRenderer.ts","Marketing/ViewModels/MarketingTabModel.ts","SubLeagues/ViewModels/LeagueSlideModel.ts","Upgrade/ViewModels/UpgradeButtonModel.ts","Upgrade/ViewModels/UpgradeInformationModel.ts","Upgrade/ViewModels/UpgradeModel.ts","LeagueAdministratorSettingsRenderer.ts","ViewModels/LeagueAdministratorStepModel.ts","ViewModels/RankingSettingsViewModel.ts","ViewModels/SettingsCompletionModel.ts","LeagueAdministratorTabController.ts","ArticleController.ts","GeneralTabController.ts","AdministratorController.ts","CompanyDetailsController.ts","PurchasesController.ts","Administrator/AdministratorInviteModel.ts","Administrator/AdministratorModel.ts","Administrator/AdministratorRenderer.ts","Administrator/AdministratorsModel.ts","Purchases/PurchaseRenderer.ts","ViewModels/CompanyDetailsModel.ts","ClientAdministratorController.ts","GeneralController.ts","LeagueAdministratorController.ts","HeaderActionsRow/HeaderActionsRowRenderer.ts","HeaderStatusOverview/HeaderStatusOverviewRenderer.ts","HeaderStatusOverview/ViewModels/HeaderStatusOverviewModel.ts","Sales/BusinessController.ts","Sales/CartController.ts","Sales/CheckoutController.ts","Sales/ClientInformationModel.ts","Sales/InvitationController.ts","Sales/OrderController.ts","Sales/OrderInformationModel.ts","Sales/SalesPackageController.ts","Sales/UserValidationController.ts","Sales/Checkout/CheckoutProgressRenderer.ts","Sales/Checkout/CheckoutProgressStep.ts","Sales/Checkout/CheckoutRenderer.ts","Sales/Checkout/PaymentMethodsRenderer.ts","Sales/Clients/ClientsRenderer.ts","Sales/Deals/DealsTableRenderer.ts","Sales/Help/HelpRenderer.ts","Sales/Menu/BrochurePopupRenderer.ts","Sales/Menu/BrochureRenderer.ts","Sales/Menu/GameTabsRenderer.ts","Sales/Menu/HeaderRenderer.ts","Sales/Menu/MarketTabsRenderer.ts","Sales/Menu/PromotionalVideoRenderer.ts","Sales/Order/CouponRenderer.ts","Sales/OrderForm/OrderFormRenderer.ts","Sales/Questions/QuestionsRenderer.ts","Sales/SalesPackage/SalesPackageImagePopupRenderer.ts","Sales/SalesPackage/SalesPackageItemsRenderer.ts","Sales/SalesPackage/SalesPackageSideViewRenderer.ts","Sales/Steps/StepsRenderer.ts","Sales/UserValidation/PopupRenderer.ts","Sales/Checkout/ViewModels/CheckoutInformationModel.ts","Sales/Checkout/ViewModels/CheckoutProgressModel.ts","Sales/Checkout/ViewModels/PaymentInformationModel.ts","Sales/Clients/ViewModels/ClientsCarouselModel.ts","Sales/Deals/ViewModels/DealModel.ts","Sales/Deals/ViewModels/DealsTableModel.ts","Sales/Deals/ViewModels/DealsTierModel.ts","Sales/Menu/ViewModels/BrochurePromotionalBlockModel.ts","Sales/Menu/ViewModels/GameTabModel.ts","Sales/Menu/ViewModels/GameTabsModel.ts","Sales/Menu/ViewModels/MarketTabModel.ts","Sales/Menu/ViewModels/MarketTabsModel.ts","Sales/Menu/ViewModels/VideoPromotionalBlockModel.ts","Sales/Order/Cart/CartRenderer.ts","Sales/Order/Cart/SummaryRenderer.ts","Sales/Order/Combideals/CombidealsRenderer.ts","Sales/Order/Total/TotalRenderer.ts","Sales/OrderForm/ViewModel/OrderFormModel.ts","Sales/Questions/ViewModel/QuestionsModel.ts","Sales/SalesPackage/ViewModels/SalesPackageProgressModel.ts","Sales/SalesPackage/ViewModels/SalesPackageViewModel.ts"],"names":["Feature","Gender","KnownGameIds","SportType","packageBudget","LandingPage","LogoTakeOver","packageBusiness","__spreadArray","Articles","SubLeagues","SubLeagueRanking","packageProfessional","Advertisements","Interstitials","OptIns","isFeatureSupported","packageType","feature","Business","PackageType","Budget","indexOf","Professional","createNewRelicConsole","parentConsole","window","location","hostname","hasOwnProperty","Error","newrelic","addEventListener","e","noticeError","JSON","stringify","onerror","message","source","lineno","colno","error","__assign","optionalParams","_i","arguments","length","apply","Email","Validate","email","test","FormattedDateTime","moment","format","this","_dayLongMonthLongWithYearAndTimeFormat","_dayShortMonthShortWithTimeFormat","_dayMiddleMonthShortWithTimeFormat","_moment","DayLongMonthLongWithYearAndTime","DayShortMonthShortWithTime","DayMiddleMonthShortWithTime","Formatted","FromUtcDate","date","FromUtcJson","toString","FromUtcDateAndFormat","FromUtcJsonAndFormat","json","_defaultFormat","momentInstance","utc","tz","userTimeZone","locale","uiCulture","LANGUAGE_SELECTOR_ID","LANGUAGE_SELECTOR_BTN_ID","LANGUAGE_SELECTOR_DROPDOWN_ID","LANGUAGE_SELECTOR_DROPDOWN_CLASS","LANGUAGE_SELECTOR_DROPDOWN_VISIBLE_CLASS","LANGUAGE_SELECTOR_DROPDOWN_CULTURES_ID","sortLanguagesDropdownAsc","languageDropdownCultures","document","getElementById","elements","getElementsByClassName","cultureElementMap","i","cultureItem","culture","innerHTML","push","element","sorted","sort","a","b","map","concat","outerHTML","join","LanguageSelector","languageSelectorEl","initLanguageSelectorEl","languageSelectorBtnEl","initLanguageSelectorBtnEl","languageSelectorDropdownEl","initLanguageSelectorDropdownEl","backdropEl","undefined","prototype","openDropdown","createBackdropEl","appendChild","classList","add","closeDropdown","remove","destroyBackdropEl","_this","out","onclick","createElement","style","position","top","bottom","left","right","zIndex","el","languageSelector","NotificationBar","$","ready","current","_a","pathname","split","navbarItemEls","len","_b","getAttribute","toLowerCase","newPopup","name","popup","all","off","first","clone","attr","appendTo","togglePopup","id","value","doScroll","scrollTop","addClass","removeClass","triggerHandler","jQuery","DisplayHandler","html","slideDown","delay","slideUp","Display","_","debounce","Vat","validate","vat","PLACEHOLDER","CookieLocalStorageRepository","languageKey","deleteCookieSettingsInLocalStorage","localStorage","removeItem","getCookieSettingsFromLocalStorage","getItem","userHasAcceptedCookies","settings","setUserHasAcceptedCookies","setItem","CookiePopupController","cookieRepository","cookiePopupContainerId","languageSelectorId","show","disableScroll","initPopup","display","hide","enableScroll","teardownPopup","body","overflow","initLanguageSelector","deselectAll","wrappers","forEach","otherFlag","querySelector","checked","querySelectorAll","currentCookieCulture","wrapper","flag","input","cookieLocalStorageRepository","kmpStringSearch","pattern","text","caseInsensitive","lsp","j","charAt","fallbackCopyTextToClipboard","clipboardData","setData","err","textArea","width","height","padding","border","outline","boxShadow","background","focus","select","execCommand","removeChild","copyTextToClipboard","deferred","Deferred","navigator","clipboard","writeText","then","resolve","reject","promise","parseEnum","enumType","property","enumMember","toUpperCase","Handlebars","registerHelper","lvalue","rvalue","options","operator","hash","operators","==","l","r","===","!=","<",">","<=",">=","typeof","result","fn","inverse","trim","+","-","/","*","string","maxLength","substr","max","statement","console","log","MSJsonDateObject","jsdate","Date","parseInt","lang","strg","maxResidualLength","clippedString","replace","amount","formatMask","numeral","NumeralData","formatCurrency","key","values","templateString","TranslationData","get","isLowerCase","addedKey","translationKey","translation","object","SafeString","column","numberOfColumns","propertyName","n","block","accum","maxAmount","currentAmount","ret","Value","collection","skip","take","firstPart","Math","round","maxItem","url","overrideWidth","overrideHeight","classes","fallbackExtension","altDescription","fallbackExtensionSafe","percentageAsFloat","toFixed","abs","toLocaleString","minimumFractionDigits","nbr","conditional","part","datetime","data","template","_switch_value_","_switch_break_","Object","keys","String","args","match","number","toggleModifiers","modifiers","each","addModifiers","removeModifiers","toggleDisabled","disabled","removeAttr","toggleHtml","baseClass","classAttribute","modifier","classToAdd","hasClass","hasModifier","modifierClass","whenAll","deferreds","lastResolved","wrappedDeferreds","always","when","removeClickListeners","prop","formatUrlWithProtocol","startsWith","substring","removeUrlParameter","parameter","urlparts","prefix","encodeURIComponent","pars","lastIndexOf","splice","isValidHttpUrl","URL","protocol","isNumeric","isNaN","parseFloat","isFinite","search","pos","CustomEvent","event","params","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","NodeList","callback","thisArg","call","isNullOrEmpty","ApiResultCode","ApiSettings","League","Platform","Shared","BusinessManagement","ClientAdministrator","LeagueAdministrator","DateTimeFormatType","Culture","index","ApiResult","resultCode","content","isSuccess","fromJson","ResultCode","ErrorMessage","Content","Dictionary","internalDict","getKeys","isNotNull","v","getValues","vals","put","val","Authentication","isLoggedIn","apiToken","getUserId","API","parseJwt","_token","sub","BaseList","list","any","count","multiple","Array","t","last","LocalStorageProxy","HasLocalStorageSupport","SetItem","SetCookie","GetItem","GetCookie","DeleteItem","nameEQ","ca","cookie","c","days","expiration","setTime","getTime","toUTCString","Repository","apiSettings","checkPoolName","regionId","marketId","SubLeagueName","ajax","checkLeagueName","type","dataType","contentType","headers","Accept-Language","done","fail","sendPrivateMessage","subLeagueId","recipientUserId","subject","isFromBusiness","sendPrivateMessageUrl","processData","Content-Type","removeParticipant","participantUserId","deleteParticipantUrl","_super","Countries","getByCode","code","find","getByCallingCode","countryCallingCode","getById","getCountryCallingCodes","sortByName","localeCompare","chain","sortBy","country","sortOrder","sortByCallingCodes","__extends","Country","isNetherlands","Id","Name","Code","RegionId","Order","CountryCallingCode","GameInfo","onlineDate","signUpDeadline","gameId","title","description","sportType","eventName","marketName","gameName","isOnline","isAfter","daysBeforeOnlineDate","online","hour","minute","second","millisecond","momentNow","diff","OnlineDate","SignUpDeadline","GameId","Title","Description","EventName","MarketName","GameName","marketFromJson","marketPredictionItems","MarketPredictionItems","order","MarketRound","deadlineDeficitInMilliseconds","deadline","formattedDateTime","Deadline","DeadlineDeficitInMilliseconds","MarketRounds","marketRound","marketRoundId","gameInfoCache","activeAndUpcoming","sendBusinessMessageAnonymous","sendBusinessMessageAnonymousUrl","getGameInfo","cacheKey","gameInfo","gameInfoUrl","getCountries","countries","getAllCountriesUrl","userAgent","cache","status","InitializeAuthorization","token","serverTimestamp","version","ClientTimeIsValid","clientUtc","floor","base64","jsonPayload","decodeURIComponent","atob","charCodeAt","slice","parse","Translations","TermsAndConditionsController","instance","isReady","onDomLoaded","on","bind","GetInstance","GetTermsAndConditionsContent","success","TranslationStorageData","dateModified","translationData","fromStorageData","TranslationController","initialize","translationsUrl","translationStorageKey","storageData","loadTranslations","mapObject","async","newData","objKey","translationsKey","getRegionById","SalesApiSettings","gameTabUrl","GameTabUrl","dealsForMarketUrl","DealsForMarketUrl","discountForMarketUrl","DiscountForMarketUrl","combiDealsUrl","CombiDealsUrl","packageOptionUrl","PackageOptionUrl","packageOptionLayoverUrl","PackageOptionLayoverUrl","calculateDealUrl","CalculateDealUrl","calculateOrderUrl","CalculateOrderUrl","couponUrl","CouponUrl","faqUrl","FaqUrl","faqCategoryUrl","FaqCategoryUrl","footerCarouselImagesUrl","FooterCarouselImageUrl","salesAccountDataUrl","SalesAccountDataUrl","paymentUrl","PaymentUrl","createSessionUrl","CreateSessionUrl","createSalesAccountDataUrl","CreateSalesAccountDataUrl","createBusinessLinkUrl","CreateBusinessLinkUrl","paymentMethodsUrl","PaymentMethodsUrl","clientMarketDataUrl","ClientMarketDataUrl","clientMarketSettingsUrl","ClientMarketSettingsUrl","saveClientAdministratorUrl","SaveClientAdministratorUrl","deleteClientAdministratorUrl","DeleteClientAdministratorUrl","saveClientLogoUrl","SaveClientLogoUrl","saveLeagueNameUrl","SaveLeagueNameUrl","saveClientHeaderColorUrl","SaveClientHeaderColorUrl","saveClientHeaderIconUrl","SaveClientHeaderIconUrl","upgradeDealsUrl","UpgradeDealsUrl","packageUpgradesUrl","PackageUpgradesUrl","saveLandingPageLogoUrl","SaveLandingPageLogoUrl","saveOptinRequiredUrl","SaveOptinRequiredUrl","saveRankingLogoUrl","SaveRankingLogoUrl","saveSubLeagueRankingLogoUrl","SaveSubLeagueRankingLogoUrl","saveHasOpenedAdminsUrl","SaveHasOpenedAdminsUrl","calculateUpgradeUrl","CalculateUpgradeUrl","saveLogoTakeOverUrl","SaveLogoTakeOverUrl","saveHeaderIconColorUrl","SaveHeaderIconColorUrl","saveWelcomeEmailUrl","SaveWelcomeEmailUrl","sendExampleEmailUrl","SendExampleEmailUrl","sendExampleSubLeagueEmailUrl","SendExampleSubLeagueEmailUrl","hasSeenEmailUrl","HasSeenEmailUrl","subLeagueWelcomeEmailUrl","SubLeagueWelcomeEmailUrl","inviteMailContentUrl","InviteMailContentUrl","deleteArticleUrl","DeleteArticleUrl","saveBackgroundColorUrl","SaveBackgroundColorUrl","companyDetailsUrl","CompanyDetailsUrl","hasChangedSubLeagueSettingUrl","HasChangedSubLeagueSettingUrl","articlesUrl","ArticlesUrl","articleHeaderImageUrl","ArticleHeaderImageUrl","purchasesUrl","PurchasesUrl","purchaseInvoiceUrl","PurchaseInvoiceUrl","purchaseDetailUrl","PurchaseDetailUrl","participantsUrl","ParticipantsUrl","subLeaguesUrl","SubLeaguesUrl","administratorsUrl","AdministratorsUrl","deleteAdminUrl","DeleteAdminUrl","deleteInvitationUrl","DeleteInvitationUrl","inviteAdminUrl","InviteAdminUrl","validateInviteUrl","ValidateInviteUrl","acceptInviteUrl","AcceptInviteUrl","declineInviteUrl","DeclineInviteUrl","subLeagueInviteUrl","SubLeagueInviteUrl","updateSubLeagueNameUrl","UpdateSubLeagueNameUrl","subLeagueAdministratorsUrl","SubLeagueAdministratorsUrl","deleteSubLeagueAdminUrl","DeleteSubLeagueAdminUrl","sendReminderUrl","SendReminderUrl","frontendOrderingAndFilteringThreshold","FrontendOrderingAndFilteringThreshold","getSubLeaguesUrl","GetSubLeaguesUrl","getSubLeaguesAnonymousUrl","GetSubLeaguesAnonymousUrl","getSubLeagueAdminsUrl","GetSubLeagueAdminsUrl","nameLeagueActionsUrl","NameLeagueActionsUrl","rankingLogoLeagueActionsUrl","RankingLogoLeagueActionsUrl","welcomeEmailLeagueActionsUrl","WelcomeEmailLeagueActionsUrl","leagueActionsCollectionByMarketUrl","LeagueActionsCollectionByMarketUrl","getInviteMailUrl","GetInviteMailContentUrl","userPredictionStatusUrl","UserPredictionStatusUrl","requestOptInUrl","RequestOptInUrl","advertisementUrl","AdvertisementUrl","advertisementImageUrl","AdvertisementImageUrl","interstitialUrl","InterstitialUrl","interstitialImageUrl","InterstitialImageUrl","sendSubLeagueMessageUrl","SendSubLeagueMessageUrl","rankingRequestUrl","RankingRequestUrl","getMarketSalesPackagesByRegionUrl","GetMarketSalesPackagesByRegionUrl","getMarketSalesPackagesByCountryUrl","GetMarketSalesPackagesByCountryUrl","saveSalesPackageImageUrl","SaveSalesPackageImageUrl","promotionalPackageUrl","PromotionalPackageUrl","brandingPackageUrl","BrandingPackageUrl","brochureUrl","BrochureUrl","steamReferralUrl","SteamReferralUrl","UserApiSettings","requestEmailChangeUrl","RequestEmailChangeUrl","confirmEmailChangeUrl","ConfirmEmailChangeUrl","passwordChangeUrl","PasswordChangeUrl","checkUserEmailUrl","CheckUserEmailUrl","checkUsernameUrl","CheckUsernameUrl","lostPasswordUrl","LostPasswordUrl","genderUrl","GenderUrl","nameUrl","NameUrl","phoneNumberUrl","PhoneNumberUrl","birthDateUrl","BirthDateUrl","profileDetailsUrl","ProfileDetailsUrl","UserPredictionStatusApiSettings","baseUrl","BaseUrl","SendPrivateMessageUrl","DeleteParticipantUrl","CheckLeagueName","ActiveAndUpcomingForRegionUrl","GetAllCountriesUrl","SendBusinessMessageAnonymousUrl","GameInfoUrl","Profile","userId","userName","fullName","year","amountOfGames","profileImageUrl","nationalityFlagUrl","favoriteFootballTeam","firstname","middlename","lastname","showOnProfile","birthdate","countryId","timeZoneId","genderId","street","housenumber","zipcode","city","UserId","UserName","FullName","Year","AmountOfGames","ProfileImageUrl","NationalityFlagUrl","FavoriteFootballTeam","Firstname","Middlename","Lastname","ShowOnProfile","Birthdate","CountryId","TimeZoneId","Street","Housenumber","Zipcode","City","UserRepository","userApiSettings","checkUsername","username","accepts","checkEmail","currentLanguage","getProfileDetails","sendPasswordResetMail","setGender","gender","setName","firstName","lastName","setPhoneNumber","phoneNumber","setBirthDate","birthDate","AdyenAuthResult","CartRenderType","ClientAdminTabType","ConfigurationStatusType","ConfigurationStepType","DiscountTypes","FaqType","GeneralTabType","HeaderIconColorType","LeagueAdminTabType","ManagementInvitationStatus","MarketingTabType","RoleType","SettingsStepType","UserValidationPopupRedirectPage","SalesAccountData","isLoggedInWithBusinessAccount","isClientAdministrator","companyOrganisationName","companyAddress","companyZipCode","companyCityName","companyCountryId","companyPhoneNumber","companyVatNumber","invoiceRecipientName","invoiceRecipientEmail","purchaseOrderNumber","administratorGender","administratorName","administratorInfix","administratorSurname","administratorPhoneNumber","administratorEmail","administratorFullName","companyVATNumber","poNumber","compareData","other","updateUser","updateCompany","IsLoggedInWithBusinessAccount","IsClientAdministrator","CompanyOrganisationName","CompanyAddress","CompanyZipCode","CompanyCityName","CompanyCountryId","CompanyPhoneNumber","CompanyVATNumber","InvoiceRecipientName","InvoiceRecipientEmail","PONumber","AdministratorGender","AdministratorName","AdministratorInfix","AdministratorSurname","AdministratorPhoneNumber","AdministratorEmail","AccountDataRepository","saveCompanyDetails","companyDetails","_apiSettings","getSalesAccountData","createSalesAccount","checkoutData","orderData","paymentData","password","extend","isAdult","createBusinessLink","ActionsRepository","getByMarket","LeagueActionsCollection","markNameComplete","markRankingLogoComplete","markWelcomeEmailComplete","AdministratorRepository","platformApiSettings","deleteAdmin","apiResult","deleteSubLeagueAdmin","Accept","sendReminder","invitationId","sendMessage","inviteSubLeague","inviteModel","deleteInvitation","inviteLinkId","administrators","Administrators","href","getBySubLeague","invite","validateInvite","acceptInvite","declineInvite","AdvertisementRepository","createOrUpdate","advertisement","uploadHeaderImage","formData","delete","advertisementId","BrochureRepository","requestBrochure","emailAddress","requestSettings","SendBrochureModel","ClientRepository","getClientMarketHeader","ClientMarketHeader","getClientMarketSettings","ClientMarketSettings","saveClientAdministrator","clientId","countryCode","deleteClientAdministrator","saveLeagueName","subLeagueName","PoolId","saveLogoTakeOverLogo","saveLogoTakeOverColor","color","saveLogoTakeOverHeaderIcon","headerIconId","saveLandingPageLogo","saveOptInRequired","optInRequired","saveRankingLogo","saveSalesPackageImage","salesPackageType","path","SalesPackageType","BrandingPackage","PromotionalPackage","confirmPromotional","saveHasOpenedAdmins","saveWelcomeEmail","emailTitle","emailBody","Body","sendExampleWelcomeEmail","hasSeenEmail","hasChangedSubLeagueSetting","multiSubLeaguesModel","SubLeagueIsAllowedToChangeRankingLogo","subLeagueIsAllowedToChangeRankingLogo","SubLeagueIsAllowedToChangeEmail","subLeagueIsAllowedToChangeEmail","SubLeagueIsAllowedToChangeName","subLeagueIsAllowedToChangeName","requestPreviewPrint","confirmPreviewPrint","ArticleRepository","article","saveHeaderImage","articleId","DealsRepository","calculateUpgrade","participantUpgradeDealId","packageUpgradeDealId","payByInvoice","vatNumber","couponCode","salesPackageIdsWithAmounts","CalculatedOrder","getPackageUpgrades","Deals","getDealsForMarket","MarketDealResult","getDiscountForMarket","EarlyBirdDiscount","getCalculatedDeal","dealId","CalculatedDeal","getCombiDealsForMarket","CombiDeals","calculateOrder","requestBody","CouponRepository","validateCoupon","Coupon","FaqRepository","getCategories","faqType","FaqCategories","getFaqForGame","FaqQuestions","FooterImageRepository","getFooterImageUrlsForRegion","FooterCarouselImageUrls","InterstitialRepository","interstitial","interstitialId","InviteRepository","getInviteMailContent","inviteMail","InviteContent","OptInRepository","request","PackageOptionsRepository","packageOptionsCache","getPackageOptions","PackageOptionsResult","getPackageOptionLayoverContent","packageOptionId","PackageOptionDescription","ParticipantRepository","pageIndex","participantsPerPage","Participants","sendMessageToSubLeague","PaymentRepository","savePayment","clientData","checkoutSessionReference","createSession","getPaymentMethods","PaymentMethods","PurchaseRepository","purchases","Purchases","getInvoice","orderId","invoice","Invoice","getDetails","createPurchaseDetail","RankingRepository","subleagueId","SalesPackageRepository","getSalesPackagesByMarketAndRegion","MarketSalesPackagesResult","getSalesPackagesByMarketAndCountry","SalesUserRepository","SalesUser","SteamReferralRepository","create","organization","address","participantCount","package","SubLeagueRepository","salesApiSettings","getInviteLink","leagueId","getMine","createSubLeague","adminOneIsUser","adminOne","adminTwo","adminOneFirstName","adminOneLastName","adminOneEmail","adminTwoFirstName","adminTwoLastName","adminTwoEmail","deleteSubLeague","updateSubLeagueName","getWelcomeEmail","TabsRepository","GetGamesAndMarkets","GameTabs","regions","TerritoryRepository","getRegions","region","UserPredictionStatusRepository","controller","userIds","regionPath","UserPredictionStatuses","ClientActions","marketActionsCollection","getActionsForMarket","marketActions","ClientId","MarketActionsCollection","LeagueActions","nameCompleted","rankingLogoCompleted","welcomeEmailCompleted","isComplete","actionCount","LeagueId","MarketId","NameCompleted","RankingLogoCompleted","WelcomeEmailCompleted","getByLeagueId","getByMarketId","filter","totalActions","reduce","memo","actions","update","leagueActionsCollection","leagueIds","getLeagueIds","contains","leagueActions","MarketActions","clientActions","Administrator","managementInvitationStatus","isPrimary","phoneNumberCountryId","inviteDate","getFullName","isAcceptedAdmin","Accepted","isPending","Pending","isAccepted","isDeclined","Declined","getStatusLabel","invitationStatusText","formattedInviteDate","momentLocale","local","toISOString","EmailAddress","FirstName","IsPrimary","LastName","PhoneNumber","PhoneNumberCountryId","InviteDate","getByUserId","administrator","getByEmailAddress","getByInviteLinkId","hasForEmailAddress","some","hasMultipleAdmins","sortByPrimaryAdmin","admin","reverse","getStatusList","statusList","InviteModel","Advertisement","imageName","imagePath","imageLink","isActive","ImageName","ImagePath","ImageLink","IsActive","getActive","ClientMarket","openActionCount","hasPurchased","addOpenActionCount","hasOpenActions","OpenActionCount","HasPurchased","paidByClient","paidByOther","maxSponsoredParticipantCount","sponsoredParticipantCount","SponsoredCount","PaidByOtherCount","MaximumSponsored","headerBackgroundColor","headerIconColorType","headerLogo","landingPageLogo","hasOpenedAdmins","leagueName","rankingPageLogo","welcomeEmailBody","welcomeEmailTitle","welcomeEmailImageUrl","welcomeEmailHasSeenOrChanged","promotionalPackageImageUrl","brandingPackageImageUrl","isPreviewPrintCooldownActive","hasAcceptedPreviewPrint","hasRequestedPreviewPrint","hasNewPromotionalPackageLogoToSend","qrCodeUrl","HeaderBackgroundColor","HeaderLogo","LandingPageLogo","OptInRequired","HasOpenedAdmins","LeagueName","RankingPageLogo","WelcomeEmailBody","WelcomeEmailTitle","WelcomeEmailImageUrl","WelcomeEmailHasSeenOrChanged","PromotionalPackageImageUrl","BrandingPackageImageUrl","IsPreviewPrintCooldownActive","HasAcceptedPreviewPrint","HasRequestedPreviewPrint","HasNewPromotionalPackageLogoToSend","QrCodeUrl","ClientMarkets","clientMarkets","updateWithLeagueActions","clientMarket","leagueActionsForMarket","market","Article","authorUserId","authorFullname","poolId","articleImageUrl","hasCallToActionButton","callToActionButtonText","callToActionButtonUrl","isDraftArticle","publicationDate","formattedDate","momentPublicationDate","setIsDraftArticle","isDraft","ArticleId","AuthorUserId","AuthorFullname","ArticleImageUrl","HasCallToActionButton","CallToActionButtonText","CallToActionButtonUrl","IsDraftArticle","PublicationDate","hasConceptArticles","hasPublishedArticles","subtotal","discount","total","earlyBirdDiscount","Subtotal","Total","dealsSubTotal","combiDealDiscount","trophyPackageCost","promotionalPackageCost","brandingPackageCost","totalExcVAT","percentageVAT","couponPercentageDiscount","couponDiscount","invoiceCost","netTotal","payByInvoiceCost","shippingCostsInEuro","DealsSubTotal","CombiDealDiscount","TrophyPackageCost","PromotionalPackageCost","BrandingPackageCost","TotalExcVAT","PercentageVAT","VAT","CouponPercentageDiscount","CouponDiscount","InvoiceCost","NetTotal","PayByInvoiceCost","ShippingCostsInEuro","CombiDeal","dealMarketId","dealGameId","discountPercentage","DealMarketId","DealGameId","DiscountPercentage","getByDealMarketId","cd","combiDeal","Deal","price","upgradeFromPackageId","imageUrl","upgradeOnly","updateImageUrl","Package","ParticipantCount","Price","UpgradeFromPackageId","ImageUrl","UpgradeOnly","getByDealId","u","getUpgrade","currentSelectedPackage","deal","expiryDate","isExpired","Discount","ExpiryDate","marketDeals","getByTablePosition","participants","md","getByParticipantCount","filterByType","filterRegularOnly","getRecommendedDeal","requestedParticipants","packageDeals","previous","next","MarketDeals","marketDeal","MarketDealResults","mdr","marketDealResult","isValid","IsValid","faqCategories","categories","model","FaqCategory","languageId","header","faqQuestions","Faqs","LanguageId","Header","FaqQuestion","question","answer","Question","Answer","questions","Interstitial","mailContent","uniqueInviteUrl","universalInviteUrl","hasSubLeagues","isMainLeague","hasNull","MailContent","UniqueInviteUrl","UniversalInviteUrl","HasSubLeagues","PackageOption","importantDifference","label","isImportantDifference","IsImportantDifference","Label","hasSlider","imageUrls","ImageUrls","s","HasSlider","packageOptions","packageOption","Participant","fullLastName","userPredictionStatusList","FullLastName","UserPredictionStatusList","currentPage","pagesCount","predictionStatusColumns","prefixId","AcceptedParticipants","participant","CurrentPage","PagesCount","PoolName","PredictionStatusColumns","Amount","currency","Currency","Issuer","getLogoUrl","cdnUrl","brandCode","Issuers","issuer","PaymentMethod","logoUrl","paymentGroupType","issuers","hasIssuers","BrandCode","LogoUrl","BusinessPaymentGroupType","PaymentMethodGroup","businessPaymentGroupType","paymentMethods","toLocaleLowerCase","_d","_c","primaryPaymentMethods","secondaryPaymentMethods","hasSecondaryPaymentMethods","singleSecondaryPaymentGroup","reducedAllPaymentMethods","firstPaymentGroup","allPaymentMethods","PrimaryPaymentMethods","SecondaryPaymentMethods","PaymentSession","channel","Channel","CountryCode","expiresAt","ExpiresAt","merchantAccount","MerchantAccount","reference","Reference","returnUrl","ReturnUrl","sessionData","SessionData","shopperReference","ShopperReference","shopperStatement","ShopperStatement","getConfig","enviroment","clientKey","onPaymentCompleted","environment","session","authResult","onError","component","payload","serialize","getCulture","percentage","Percentage","invoiceFile","invoiceNumber","InvoiceFile","InvoiceNumber","base64ToArrayBuffer","binaryString","binaryLen","bytes","Uint8Array","ascii","Purchase","packageName","participantAmount","paymentAmount","purchaseStatus","hasPaid","PurchaseStatus","Paid","invoiceInProgress","InvoiceInProgress","OrderId","PackageName","ParticipantAmount","PaymentAmount","hasDiscount","isUpgrade","participantsText","CouponCode","dealIds","DealIds","SalesPackageIdsWithAmounts","salesPackagePersonalizationTexts","SalesPackagePersonalizationTexts","headerImageUrl","HeaderImageUrl","mainDealId","MainDealId","IsUpgrade","PackageUpgradeDealId","ParticipantUpgradeDealId","purchase","createMarketSalesPackageFromJson","Type","minPurchasesRequired","MinPurchasesRequired","inStock","InStock","marketSalesPackages","minPurchaseByType","hasSalesPackagesOfType","x","getSalesPackagesByPageType","pageType","TrophyPackage","p","MarketSalesPackages","marketSalesPackage","MinPurchaseByType","hasSalesPackage","salesPackageTypes","salesPackage","mainLeagueId","roles","clientMarketHeader","updateMainLeagueId","isSubLeagueAdministrator","containsMarket","hasPurchasedMarket","firstOrDefaultMarket","hasPromotionalPackage","hasBrandingPackage","MainLeagueId","SalesUserRoles","UserRoles","ClientMarketParticipantStatistics","SalesPackageTypes","SubLeagueAdministrator","role","InviteMail","headerImage","HeaderImage","SubLeague","adminStatusList","admins","numberOfParticipants","numberOfParticipantsWithCompletedPrediction","subLeagueRank","logoFileName","updateLogoFileName","updateAdminStatusList","Admins","IsMainLeague","AdminStatusList","NumberOfParticipants","NumberOfParticipantsWithCompletedPrediction","SubLeagueRank","LogoFileName","subLeagues","sl","findIndex","league","getSubLeagues","getMainLeague","containsUser","subLeague","GameTab","salesImageUrl","carouselImageUrls","marketTabs","salesHeaderImageUrl","MarketTabs","marketTab","MarketTab","BackgroundImageUrl","StoreHeaderImageUrl","CarrouselImageUrls","defaultSelectedGameId","defaultSelectedMarketId","gameTabs","getByGameId","g","m","gameTab","DefaultSelectedGameId","DefaultSelectedMarketId","PredictableRoundModel","IsComplete","UserPredictionStatus","predictableRoundModels","PredictableRoundModels","itemData","predictableRoundData","CallingCodeDropDownRenderer","renderTemplate","callingCodeDropDownTemplate","compile","cropperConfig","file","additionalSettings","viewMode","zoomable","autoCropArea","modal","PurchaseInformationModel","updateCoupon","setVatNumber","updatePayByInvoice","getSalesPackageIds","ExplanationRenderer","explanationTemplate","fetch","response","blob","blobURL","createObjectURL","ExplanationRendererModel","catch","createEmpty","LoadingOverlayRenderer","showLoadingOverlay","overlayConfig","config","firstLabelKey","initialMessageDelay","secondLabelKey","secondMessageDelay","thirdLabelKey","setTimeout","hideLoadingOverlay","PackageOptionPopUpRenderer","bindHtmlElements","_packageOptionPopUpTemplate","PackageOptionsTableRenderer","packageoptions","recommendedPackage","_packageoptionsTableTemplate","_packageoptionsTableRowTemplate","registerPartial","packageOptionModels","po","PackageOptionModel","packageoptionsTable","PackageOptionsTableModel","ClientMarketHeaderModel","totalParticipants","remainder","fromDto","ClientMarketModel","ClientMarketSettingsModel","landingPageModel","leagueNameModel","logoTakeOverModel","rankingLogoModel","promotionalPackageModel","brandingPackageModel","welcomeEmailModel","isConfigurationComplete","budgetConfigurationCheck","hasCompletedAdmins","hasCompletedLeagueName","hasCompletedLandingPage","hasCompletedRankingPage","hasCompletedWelcomeEmail","professionalConfigurationCheck","hasCompletedLogoTakeOver","hasCompletedSubLeagues","promotionalPackageConfigurationCheck","hasCompletedPromotionalPackage","brandingPackageConfigurationCheck","hasCompletedBrandingPackage","hasCorporate","hasCompleted","actionsLeft","openActionCountBudget","openActionCountBusiness","openActionCountCorporate","updateLandingPage","updateRankingPageLogo","updateLeagueName","salesUser","logoTakeOver","LogoTakeOverModel","rankingLogo","RankingLogoModel","welcomeEmail","WelcomeEmailModel","multiSubLeagues","MultiSubLeaguesModel","landingPage","LandingPageModel","LeagueNameModel","PromotionalPackageModel","BrandingPackageModel","ClientMarketsModel","FaqCategoriesModel","updateIsOpen","faqCategory","FaqCategoryModel","isOpen","isIncludedForBudget","isIncludedForBusiness","isIncludedForCorporate","PackageOptionPopUpModel","images","carouselImages","hasCarousel","currentPackage","shouldBudgetBeDisabled","shouldBusinessBeDisabled","AdditionalDealModel","selected","CartModel","addMainPackage","setIsMainPackage","getByType","PackageRowModel","marketImageUrl","setIsParticipantUpgrade","isParticipantUpgrade","setIsPackageUpgrade","isPackageUpgrade","isMainPackage","game","updateDeal","newDeal","additionalDeals","d","setDiscount","discountTypeId","discountType","setAdditionalDeals","deals","maxCount","PersonalizePopupRenderer","personalizePopupTemplate","SummaryModel","isFree","hasShippingCosts","renderTotalExVAT","companyLabel","vatLabel","CombidealRowModel","discountedPrice","PromotionalBlockModel","Toast","clearTimeout","displayLabel","labelKey","ManagementController","userPredictionStatusApiSettings","leagueApiSettings","leagueActionsEnabled","showPopup","URLSearchParams","has","history","replaceState","scoritoPopup","elementId","popupTitle","contentHtml","widthInPixels","follow","close","clearLocalStorage","ClientInformationModel","deleteFromLocalStorage","OrderInformationModel","CheckoutInformationModel","CheckoutProgressModel","PaymentInformationModel","UserValidationController","createNewAccountLocalStorageKey","UpgradeInformationModel","localStorageKey","getNavigationData","elem","currentTarget","toggleClientAdminCard","toggleSubLeagueAdminCard","hideHeaderBlock","hideClientAdminTabAndContent","Marketing","Configuration","Help","Invite","Upgrade","hideSubLeagueAdminTabAndContent","Settings","toggleGeneralCard","toggleGeneralContent","CompanyDetails","click","tab","open","ActionsController","getInstance","hideTabsActionCount","headerStatusOverviewRenderer","renderEmpty","loadSalesUser","salesUserRepository","resetAllTabs","handleMarketSwitch","HeaderStatusOverviewModel","isPollingParticipantCount","dispatchEvent","MarketSwitchEvent","headerActionsRenderer","handleTabDisplay","shouldOpenConfigurationTab","hasClientAdminRole","hasSubLeagueRole","hideGeneralTab","hideNewGameTab","openLeagueTab","initialTab","openTab","pollParticipantUpgrade","maxAttempts","baseTimeout","attempsTimeoutIncrease","attemps","finishPoll","refresh","executePoll","updatedParticipantCount","pow","platformSettings","salesSettings","clientRepository","articleRepository","userPredictionStatusRepository","HeaderStatusOverviewRenderer","HeaderActionsRowRenderer","loadPage","css","settingsCompletedLocalStorageKey","initialTabKey","initalTabType","initalTabTypeLocalStorageKey","ClientAdministratorController","LeagueAdministratorController","GeneralController","exception","item","ids","toggle","SubLeagueChangeEvent","marketLeagueActionsCollection","getLeagueActionsByMarketAndSubLeague","headerElem","completeLeagueName","completeRankingLogoName","completeWelcomeMail","completeClientAction","_instance","TabController","shouldCheckConfigurationComplete","setTabDataLoaded","loaded","tabDataLoaded","checkConfigurationComplete","settingsModel","clientSettings","loadData","displayErrorMessage","removePreload","initEventListeners","getMainLeagueId","ArticleControllerHelper","selectedSubLeagueId","userRepository","subLeagueRepository","isSubLeagueTab","updateSelectedSubLeagueId","onDone","profileData","articles","subLeaguesResult","updateDropdown","articlesRenderer","renderMyArticles","bindClickOnArticle","bindNewArticleButton","renderHeaderImage","selectedSubLeague","dropdown","empty","append","Option","selectedArticleId","hasUnsavedChanges","setFormData","leagueChanged","bindPage","bindChangeImage","bindSaveButton","bindPublishButton","bindChangeToDraftButton","checkForChecked","bindUpdateCounter","bindUpdateCallToActionButton","bindDeleteArticle","stylePage","editor","CKEDITOR","instances","destroy","removePlugins","addCss","button","is","unbind","image","FormData","cropper","aspectRatio","isCropping","nrOfCharacters","target","validateArticle","titleElem","messageElem","imageElem","getData","validateCallToAction","saveImage","saveArticle","existingArticle","getNewArticleFromForm","mainLeague","resetFormData","getCroppedCanvas","toBlob","hasCallToAction","callToActionText","callToActionUrl","callToActionButtonLink","publishArticle","linkElem","isCallToActionValid","callToActionButtonTextElem","showDeleteArticlePopup","showSaveArticlePopup","showPublishArticlePopup","switchArticle","callToActionCheckbox","onDoNotSaveClick","onSaveClick","onDoNotPublishClick","onPublishClick","ArticlesRenderer","articleHeaderTemplate","hasImageUrl","isEmpty","articlesTemplate","articleTemplate","HelpControllerHelper","faqRepository","accountDataRepository","loadTabData","helpRenderer","platformRepository","accountData","faqCategoriesModel","openQuestions","renderContactForm","bindSendEmail","initializeCountryData","countryCodes","category","toggleSlide","questionContainer","contentPlaceholder","children","outerHeight","valid","helpTab","businessElement","business","nameElement","emailElement","firstDigitsElement","firstDigits","lastDigitsElement","lastDigits","messageElement","HelpRenderer","callBack","helpCategoriesTemplate","questionsTemplate","contactTemplate","InviteControllerHelper","inviteRepository","isClientAdmin","inviteContent","failure","scrollTo","sel","range","getSelection","createRange","selectNodeContents","removeAllRanges","addRange","ParticipantMailMode","SupportedGameTypes","FootballTournament","FootballMatchDuel","FootballTournamentManager","ParticipantsControllerHelper","tabSelector","participantsRepository","leagueRepository","isSubLeaguesFeatureSupported","rankingRepository","dd","CyclingManager","requestStorageKey","loadPoolParticipantData","participantsRenderer","momentOnlineDate","processParticipants","bindSearchbar","bindMailAllButton","bindSendMailButton","bindParticipantClick","handleRankingClick","processParticipantsPredictionStatusses","participantsByShardIdDictionary","processedParticipants","groupBy","getShardId","participantsPerShardId_1","def","shardId","marketDeferred","upsDeferred","markets","userPredictionStatusses","sortedUserPredictionStatusses","sortedMarketPredictionItems","marketIndex","userPredictionStatus","statusIndex","predictionItem","predictableRoundIndex","finalUserPredictionStatus","handleDeleteClick","deleteButton","row","closest","participantId","participantMailMode","All","Manual","setMode","drawSearch","participantUserName","nrOfParticipants","handleMailClick","radioButton","participantRepository","ParticipantsRenderer","loadPerPageAndProcessServerSide","styleParticipantDataTableServerSideProcessing","storageDate","participantsString","subjectElem","userToEmail","checkedUsers","renderServerSideTemplate","dataTable","columns","orderable","render","defaultContent","sanitized","table","class","DataTable","bInfo","lengthChange","pageLength","language","emptyTable","infoEmpty","createdRow","initComplete","draw","mode","rows","invalidate","onDraw","processing","serverSide","beforeSend","xhr","setRequestHeader","getColumns","columnDefinition","ClientAdministratorTabController","tabType","initCustomTabEventListeners","TabSwitchEvent","ResetTabDataLoadedEvent","ClientAdministratorRenderer","renderStepHeaderTemplate","keepSlidesOpenState","configurationHeaderTemplate","configurationStepType","isSlideOpen","step","stepContainer","renderAdminTemplate","configurationAdminTemplate","getStepSelector","renderMainLeagueNameTemplate","configurationMainLeagueNameTemplate","MainLeagueName","renderLogoTakeOverStepTemplate","configurationLogoTakeOverTemplate","configurationLogoTakeOverNotAvailableTemplate","renderLandingTemplate","configurationLandingTemplate","LandingsPage","renderRankingLogoTemplate","configurationRankingLogoTemplate","RankingLogo","renderMailingTextTemplate","configurationMailingTextTemplate","MailingText","renderSubleaguesTemplate","configurationSubLeaguesTemplate","configurationSubLeaguesNotAvailableTemplate","renderPromotionalPackage","configurationPromotionalPackageTemplate","renderBrandingPackage","configurationBrandingPackageTemplate","ConfigurationController","configurationCompletedLocalStorageKey","ConfigurationChangedEvent","administratorRepository","logoTakeOverState","iconType","AdministratorsModel","fromDTO","clientMarketSettings","loadStepsHeader","loadStepsContent","clientAdministratorRenderer","ClientAdministratorStepModel","toStepAdministrators","bindHeaderClick","toStepMainLeagueName","toStepLogoTakeOver","toStepLandingsPage","toStepRankingLogo","toStepMailingText","toStepSubLeagues","loadSalesPackagesStepHeader","toStepPromotionalPackage","toStepBrandingPackage","bindAddAdminButtonClick","bindDeleteAdminButtonClick","bindDeleteInvitationClick","bindCheckLeagueNameClick","bindLogoTakeOverUploadLogo","bindLogoTakeOverCropLogo","bindLogoTakeOverHeaderIcon","bindLogoTakeOverSetColor","bindLogoTakeOverSaveButton","bindUploadLandingPageLogo","bindOptinRequiredRadio","bindUploadRankingPageLogo","bindCropRankingPageLogo","bindSaveWelcomeEmail","bindSendTestEmail","bindEmailCheckmark","bindSubLeagues","bindUploadPromotionalPackageLogo","bindCropPromotionalPackageLogo","bindConfirmPromotional","bindUploadBrandingPackageLogo","bindCropBrandingPackageLogo","bindBrandingPackageButtons","determineBrandingPackageButtonState","bindUpgradeButton","countryDropDown","countryCodeDropDown","clientAdminContentElem","stepType","shouldOpenSlide","checkConfigurationCompletion","parent","callingCode","onDeleteAdmin","onDeleteInvitation","managementInvitationLinkId","exec","createFirstSubleague","profile","adminOneModel","AdministratorModel","adminTwoModel","subLeaguesRepository","optinRequired","isWithinMargin","bindCropLandingPageLogo","preview","updateImage","minContainerHeight","requestAnimationFrame","removeProp","animate","newColor","newIconType","logoTakeOverColorApiResult","logoTakeOverHeaderIconApiResult","updateHeaderIcon","updateBackgroundColor","changeLogoTakeOverHeaderIcon","picker","colorCodeTextElement_1","phoneHeaderColorElement_1","colorPickerContainerElement_1","ua","spectrum","flat","chooseText","toHexString","validHex","updateHeaderColor","backgroundColor","hex","rawHex","Number","colorType","White","Black","uploadButton","cropButton","titleElement","bodyElement","complete","hasEditedButNotSaved","markMailComplete","targetNode","mailingTextObserver","disconnect","MutationObserver","mutationsList","observer","oldValue","observe","attributes","attributeOldValue","hasSaved","reloadSubLeagueActions","setChangeRankingLogo","setChangeEmail","setChangeName","exampleContainer","warningText","res","ok","uploadCroppedImage","imageType","confirmButton","actionsRepository","nextStepLabelKey","nextStepTabType","confirmPrintButtonHandler","disableBrandingPackageStep","updateFinalPrintRequested","previewPrintButton","confirmPrintButton","agreeTermsCheckbox","updatePreviewPrintRequested","agreeTermsContainer","warningMessage","descriptionMessage","hasCompletedImageUpload","maxSizeInMegaBytes","size","HelpController","helpControllerHelper","BusinessClientAdmin","InviteController","inviteControllerHelper","explanationRenderer","ParticipantsController","upsSettings","upsRepository","platformRepo","leagueRepo","participantsControllerHelper","SubLeagueController","styleSubLeagueDataTable","orderFixed","handleRowClick","handleDeleteButtonClick","bindSubLeagueSearchbar","bindAdminCheckbox","isChecked","updateAdminOneCheckBox","bindValidateCreateSubLeague","bindCreateSubLeagueButton","adminOneChecked","isSubLeagueCreationValid","clearFields","leagues","subLeaguesRenderer","renderOverview","bindDeleteSubLeague","FailureReason","stopPropagation","showDeleteSubLeaguePopup","showDeleteSubLeagueAdministratorPopup","slideRow","handleAdminInvitations","firstAdminContainer","secondAdminContainer","subLeagueAdmins","renderSubLeagueAdmin","bindSubLeagueSlide","adjustHeight","renderRow","bindActionsDropdown","oldRow","closeSlide","isLoadingSubLeagueSlide","slideModel","LeagueSlideModel","openSlide","adminContainer","firstNameElem","lastNameElem","emailElem","leagueInput","leagueNameDeferred","subLeagueNameApiResult","formElem","renderEditSubLeagueAdmin","SubLeaguesRenderer","UpgradeController","participantUpgradePackage","currentParticipants","loadUpgrades","upgradeRenderer","resetSideView","selectedPackageUpgrade","selectedParticipantUpgrade","deadlinePassed","dealRepository","salesAccountData","renderParticipantsTable","changeTable","bindParticipantButtons","loadSalesPackages","salesPackageRepository","renderUpgradeSalesPackagesTemplate","SalesPackageProgressModel","createWithAlteredPageOrder","saveToLocalStorage","recommendedDeal","getFromLocalStorage","_f","_e","summary","cart","renderSideView","preloadParticipantsTable","preloadPackageOptionsTable","packageOptionsRepository","packageUpgrades","renderPackageOptionsTable","bindPackageOptionRow","renderUpgradeButtons","bindUpgradeButtons","packageOptionPopUpRenderer","bxSlider","speed","auto","pager","controls","responsive","slideWidth","UpgradeRenderer","MarketingController","optInController","OptInController","advertisementsController","AdvertisementsController","articleControllerHelper","interstitialsController","InterstitialsController","loadTabsHeader","loadTabContent","marketingRenderer","renderTabHeaderTemplate","MarketingTabModel","toTabArticles","toTabAdvertisements","toTabInterstitials","toTabOptIns","marketingContentElem","MarketingRenderer","marketingHeaderTemplate","marketingTabType","tabContainer","rowTemplate","leagueAdminDetailsTemplate","inviteAdminFormTemplate","slideTemplate","appendedRow","data-league-id","insertAfter","renderMainLeagueAdminContent","renderSubLeagueAdminContent","slideElement","slide","placeholder","onRendered","mainLeagueAdminSlideTemplate","subLeagueAdminSlideTemplate","rowClass","replaceWith","UpgradeModel","createPreload","packageOptionsModel","renderPackageOptionsTableTemplate","packageOptionsTableTemplate","packageOptionsTableRowTemplate","packageOptionsTable","orderOverviewSideViewTemplate","orderOverviewGameTemplate","games","o","salesPackages","sideBar","pageTopPadding","titleHeight","scrollInView","scroll","throttle","currentScroll","bottomContainer","maxBottomPosition","bottomPosition","selectedPackage","upgrades","upgradeButtonsTemplate","UpgradeButtonModel","upgradeSalesPackagesTemplate","packageTypes","filteredData","maxPackage","getStatusName","getStepMap","updateSlide","stepAdjustment","Completed","InComplete","getSlideTitle","statusType","UnAvailable","laptopImageUrl","phoneImageUrl","hasCompletedOptIn","isNull","getTitle","imageSrc","isAvailable","isBlack","isWhite","isAllowed","subLeagueIsNotAllowedToChangeRankingLogo","subLeagueIsNotAllowedToChangeEmail","subLeagueIsNotAllowedToChangeName","cropped","imgUrl","hasSeenOrChanged","bool","advertisementRepository","advertisements","advertisementsRenderer","renderUploadedAdvertisements","bindClickOnAdvertisement","bindToggleActive","bindInput","renderActiveAdvertisement","bindClickOnActive","renderExampleAdvertisement","bindNewAdvertisementButton","renderAdvertisementActivateButton","bindDeleteButton","activeAdvertisement","getNewAdvertisementFromForm","link","validateAdvertisement","nameElem","saveForm","existingAdvertisement","selectedAdvertisementId","showSaveAdvertisementPopup","showDeleteAdvertisementPopup","switchAdvertisement","advertisement_1","currentActive","AdvertisementsRenderer","advertisementsTemplate","advertisementsNotAvailableTemplate","advertisementsHeaderImageTemplate","advertisementsActiveTemplate","hasActiveAdvertisement","mockImagePath","advertisementsExampleTemplate","advertisementsUploadedTemplate","advertisementTemplate","advertisementsActivateButton","interstitialRepository","interstitials","interstitialsRenderer","renderUploadedInterstitials","bindClickOnInterstitial","renderActiveInterstitial","renderExampleInterstitial","bindNewInterstitialButton","renderInterstitialActivateButton","activeInterstitial","getNewInterstitialFromForm","validateInterstitial","existingInterstitial","selectedInterstitialId","showSaveInterstitialPopup","showDeleteInterstitialPopup","switchInterstitial","interstitial_1","interstitial_2","InterstitialsRenderer","interstitialsTemplate","interstitialsNotAvailableTemplate","interstitialsHeaderImageTemplate","interstitialsActiveTemplate","hasActiveInterstitial","interstitialsExampleTemplate","interstitialsUploadedTemplate","interstitialTemplate","interstitialsActivateButton","optInRenderer","bindClickListeners","optInRepository","OptInRenderer","optInTemplate","optInUnavailableTemplate","requested","labelkey","inviteLink","inviteUrl","isIncluded","isSelected","isDisabled","upgrade","clientAdminTabType","setParticipantUpgrade","participantUpgrade","updateCountry","setCouponCode","getDealIds","storageObject","UpgradeParticipantModel","currentIndex","nextIndex","indexes","previousIndex","min","uniq","LeagueAdministratorSettingsRenderer","settingsStepType","renderNameTemplate","configurationNameTemplate","isEnabled","rankingPreviewTemplate","renderRankingPreview","LeagueAdministratorStepModel","slideOpen","RankingSettingsViewModel","SettingsCompletionModel","fromLocalStorage","localStorageObject_1","model_1","LeagueAdministratorTabController","selectedSubLeagueIsMainLeague","subLeagueApiResult","toggleDropdown","visible","bindLeagueDropdown","SetSelectedSubLeagueEvent","selectedLeague","ArticleController","BusinessSubleague","SettingsController","subLeaguesModel","settingsCompletionModel","settingsRenderer","bindNameSlide","bindRankingLogoSlide","bindCropRankingLogoSlide","getWelcomeMail","leagueAdminContentElem","markCompletion","uploadInput","exampleLogoContainer","inviteMail_1","bindSendExampleEmail","mailValidation","getMailValidation","checkConfigurationCompletionFromLocalStorage","subLeagueCompletion","showConfigurationCompletePopup","GeneralTabController","AdministratorController","formatPhoneNumber","_administratorRepository","_platformRepository","_administratorRenderer","bindButtons","_callingCodeDropDownRenderer","which","bindDeleteAdminClick","bindInviteButtonClick","editableAdminClass","inputClass","validateForm","isFirstAdmin","isValidFirstName","isInputNotEmpty","isValidLastName","isValidEmail","isEmailValid","isValidPhoneNumber","inputField","AdministratorRenderer","CompanyDetailsController","loadAccountData","bindContactForm","fullPhoneNumber","toggleVatField","zipCode","invoiceVatNumber","invoiceRecipient","invoiceEmail","isFormValid","company","CompanyDetailsModel","emptyFieldsError","emailInvalidError","invalidVatError","sendButton","hasErrors","isRemoved","PurchasesController","_purchaseRepository","_purchaseRenderer","bindOnDownloadInvoice","bindPaymentButtons","downloadInvoice","_tabsRepository","_accountDataRepository","details","updateStep","CheckoutProgressStep","Three","setIsUpgrade","Blob","fileName","download","PurchaseRenderer","AdministratorInviteModel","roleType","hasAccount","HasAccount","getCallingCode","getPhoneNumber","administratorsTemplate","administratorTemplate","administratorEnabledTemplate","administratorDisabledTemplate","hasOnlyOneAdmin","purchasesTemplate","purchaseTemplate","upsApiSettings","handleTabChange","contentElement","bindListeners","handleTabClick","bundleParticipants","otherParticipants","totalBundle","isPollingParticipants","hasActionCount","lowRemainderBundle","lowBundle","getRemainderBundle","getTotalParticipants","getOtherParticipants","getIsPollingParticipants","BusinessController","orderpageUrl","_indexedGameTabs","loadFromLocalStorage","selectDeal","orderInformation","getOrderInformationFromLocalStorage","selectedDeal","_marketDealResult","_selectedPackageType","_selectedPackageParticipants","calculatorClick","renderPackageOptionTable","_selectedDealId","tryInitClientAccountData","_clientAdminData","handleMarketClick","resetDropdownMarketId","_selectedMarketId","selectedDropdownMarketId","pushState","updatePackageTitle","refreshMarketTabs","refreshPromotionalBlock","refreshBrochure","refreshPackageOptionTable","refreshMarketDeals","showMarketDropdown","_selectedGameId","CyclingTeamManager","DartsManager","GpManager","GpTeamManager","_salesUserRepository","loadCountryCodeData","_selectedCountry","_footerImageRepository","_dealsRepository","_packageOptionsRepository","_faqRepository","_brochureRepository","_steamReferralRepository","_cdnUrl","_dealsTableRenderer","DealsTableRenderer","_packageOptionsTableRenderer","_packageOptionPopUpRenderer","_promotionalVideoRenderer","PromotionalVideoRenderer","_marketTabsRenderer","MarketTabsRenderer","_gameTabsRenderer","GameTabsRenderer","_orderFormRenderer","OrderFormRenderer","_stepsRenderer","StepsRenderer","_questionsRenderer","QuestionsRenderer","_clientsRenderer","ClientsRenderer","_helpRenderer","_headerRenderer","HeaderRenderer","_brochureRenderer","BrochureRenderer","_brochurePopupRenderer","BrochurePopupRenderer","_clientInformation","saveClientInformation","_regionId","_orderpageUrl","stepModel","StepModel","questionsModel","QuestionsModel","initGamesAndMarketsHeader","initClientsFooter","saveOrderInformationToLocalStorage","getRequestedParticipants","gamesTabs","marketIdHash","_gameTabs","initHeader","refreshGameTabs","initHelpPage","adaptiveHeight","pause","selectedIndex","_headerSlider","startSlide","gametypeClick","goToSlide","refreshHelpPage","marketChange","centerDeal","getRecommendedPackage","renderTemplateWithNewDeals","_earlyBirdDiscount","dealClick","getDeal","renderTemplateWithNewSelection","renderOrderForm","packageOptionClick","renderPackageOptionPopUp","withDeal","preSelectDeal","renderEmptyTemplate","packageId","change","brochureRequestedKey","subtract","errorMessage","responseJSON","errors","_packageOptions","faq","faqClick","termsAndConditionsController","helpTabClick","orderButtonClick","selectedMarket","renderMarketError","selectedCountry","renderError","not","toggleClass","calculation","viewModel","OrderFormModel","client","packageDescription","selectedMarketId","showMarkets","getClientInformationFromLocalStorage","hasClient","clientCompany","clientName","adminFirstname","adminLastname","clientGender","getPreamble","adminGender","renderAlreadyPurchased","renderTemplateWithNewModel","clientInformation","getClientInformationFromUrl","adminEmail","Male","Female","CartController","updateCartCallback","_dealsByMarket","initializeUpgradeCart","upgradeInformation","_salesPackageRepository","_marketSalesPackages","calculateUpgradeOrder","addSalesPackagesToModel","cartModel","salesPackageIds","getPurchaseInformationModel","salesPackageId","subtitle","canPersonalize","subTitle","totalPrice","renderUpgradeCart","packageDeal","rowModel","participantDeal","_cartRenderer","bindParticipantsDropdown","bindPersonalizeButton","Event","updateCart","setvatNumber","calculatedOrder","_hideSummary","_summaryRenderer","_updateCartCallback","updateCartHandler","renderType","createCartModel","renderCart","getMarketDealsByDealId","deleteUpgradeInformation","_g","_j","_h","isEmptyIgnoreSalesPackages","getMarketId","purchaseInformationModel","_personalizePopupRenderer","CartRenderer","SummaryRenderer","initializeCart","hideSummary","combiDeals","_mainMarketDiscount","_combiDealMarkets","initializeCombiDeals","getCombiDealsActions","mainDeal","combi","mainMarketId","mainPackageRow","EarlyBird","getMarketIdForDeal","getDealsForMarketId","bindPackageRows","addDealToCart","setSalesPackageInCart","OnlySideView","bindPackageRowDropdown","bindPackageRowDeleteButton","consolidateCombideals","previousDeal","removeDeals","addDeals","getDealByParticipantCount","getMarketDealResult","getGameIdForMarket","getCombiDealMarkets","CheckoutController","orderUrl","managementUrl","checkoutUrl","adyenClientKey","adyenEnviroment","updateDomLoadedStep","checkoutProgressModel","One","urlParams","Authorised","loadCartData","cartController","loadOrderData","calculateFormMargin","calculatePaymentMethodMargin","isStepOne","isValidatingUser","progress","saveDetailsToLocalStorage","Two","createAccountIfNecessary","createdNewAccount","returnAfterLogin","checkoutProgressRenderer","switchStep","isStepTwo","hasMissingData","initializeAdyenCheckout","shouldGoToSalesPackagePage","setShouldInitiallyGoToCurrentPage","isStepThree","prefillCheckoutData","fillConfirmPaymentMethod","fillOrderCheck","fillConfirmAdmin","deferred_1","passwordError","emailMatchError","invoiceEmailInvalidError","passwordLengthError","emailInUseError","invalidUsernameError","repeatPassword","repeatEmail","isAlphaNumeric","emailAvailable","handleErrors","usernameInUseError","showSalesPackageCountryMessage","hasSalesPackageOrderInForeignCountry","showSalesPackageAddressMessage","showAddressMessage","countryCallingCodes","loadPaymentData","alphaNumericField","RegExp","loadSalesAccountData","adminPhoneNumber","prefillData","savePaymentDataToLocalStorage","paymentMethodElement","adminPhone","territoryRepository","_k","_m","_l","paymentRepository","paymentMethodsRenderer","handlePaymentMethodClick","prefillPaymentMethodData","invoiceSelected","checkoutInformationModel","adminCountryCallingCode","paymentInformationModel","paymentMethodContainer","uncheckPaymentMethods","namePrefix","paymentMethodLabelKey","infix","updateAccountData","createBusinessAccount","expireAfter","setDate","getDate","trackOrder","dataLayer","transactionAffiliation","transactionTotal","transactionTax","transactionId","valueOf","transactionProducts","sku","quantity","adyenCheckout","setStatus","AdyenCheckout","checkout","unmount","openFirstPaymentMethod","showStoredPaymentMethods","setStatusAutomatically","onSelect","onReady","beforeSubmit","mount","checkoutRenderer","CheckoutRenderer","CheckoutProgressRenderer","PaymentMethodsRenderer","totalRenderer","TotalRenderer","initializeInvoiceCheckout","renderOrderSummary","onhashchange","newURL","oldURL","getStepFromUrlHash","originalEvent","persisted","reload","from","returnDefaultStepOne","currentStep","renderSideViewTemplate","importSetupId","agentId","ctpId","timestamp","InvitationController","hasAccepted","businessWebsiteUrl","mainWebsiteUrl","headerWaitTextElem","headerTextElem","acceptedInvite","startTimer","declinedInvite","btoa","agree","timer","seconds","interval","setInterval","clearInterval","OrderController","displayCouponBlock","_couponRepository","_cartController","renderCombiDeals","_orderInformation","_upgradeInformation","_combidealsRenderer","CombidealsRenderer","_couponRenderer","CouponRenderer","_userValidationController","renderHeader","initializePage","purchaseInformation","initializeCouponBlock","displayPopup","bindNavigationButtons","bindCouponBlock","filteredCombideals","bindCombidealRows","bindCombidealRowDropdown","bindCombidealRowAddButton","addToCartClick","couponBlockHeaderClick","couponConfirmClick","keyCode","before","coupon","blur","gameHeaderImageUrl","SalesPackageController","renderPage","page","_salesPackageProgressModel","updatePage","_salesPackageItemsRenderer","bindSalesPackageItemsRendererButtons","updateNavigationButtons","getSelectionStateByType","getSelectionStateForPackages","determineNextPage","updateSalesPackageAmount","newAmount","_salesPackageImagePopupRenderer","hover","safeAmount","MAX_CSHARP_SAFE_INT32","packageRow","updateAmountButtons","_salesPackageSideViewRenderer","calculateState","amountSelected","minimumRequired","filteredSalesPackages","selectionStates","state","nextPage","prevPage","determinePreviousPage","determineInitialPage","shouldInitiallyGoToCurrentPage","pageOrder","indexOfCurrentPage","SalesPackageSideViewRenderer","SalesPackageItemsRenderer","SalesPackageImagePopupRenderer","SalesPackage","initialPage","redirectPage","redirectUrl","_checkoutUrl","_popupRenderer","PopupRenderer","_redirectToLoginReturnUrl","proceedToCheckout","initializePopup","showExtendAccount","showAccountCheck","popupPlaceholder","renderAccountCheck","bindAccountCheck","renderExtendAccount","bindExtendAccount","redirectToLogin","createNewAccount","checkoutProgressTemplate","checkoutProgress","orderOverviewSalesPackageTemplate","paymentMethodsTemplate","expirationDate","withinEventDeadline","isBefore","invoiceDeadline","creditcardGroups","secondaryCreditcardGroups","finalPaymentMethods","primaryPaymentGroups","creditcardGroup","secondaryCreditcardGroup","_clientsTemplate","ClientsCarouselModel","multipleSlides","renderTemplateForModel","DealsTableModel","_viewModel","middleTier","setSelectedDeal","dealsTable","_dealsTableTemplate","_dealsTableRowTemplate","faqModel","_faqTabTemplate","_faqQuestionTemplate","brochurePopupTemplate","_brochureTemplate","brochureModel","BrochurePromotionalBlockModel","selectedGame","_gameTabsTemplate","GameTabsModel","GameTabModel","_headerTemplate","_marketTabsTemplate","MarketTabsModel","MarketTabModel","videoModel","VideoPromotionalBlockModel","getVideoPromotionalBlockModel","videoUrl","_couponTemplate","_alreadyPurchasedorderFormTemplate","renderTemplateWithModel","hasError","hasMarketError","_orderFormTemplate","_questionsTemplate","salesPackageImagePopupTemplate","salesPackageItemsTemplate","salesPackageTitleKey","salesPackagesViewModels","SalesPackageViewModel","salesPackageTitle","selectionByType","selectionStateByPackages","isCartEmpty","visibility","_stepsTemplate","_accountCheckTemplate","setTitle","_extendAccountTemplate","renderLogin","_loginTemplate","renderForgotPassword","_forgotPasswordTemplate","administratorCountryId","_imagesPerSlide","slides","DealModel","lesser","middle","upper","hasDeal","lesserTier","upperTier","discountLabel","DateTimeData","getValue","ShortDateOnly","middleParticipantCount","indexedDealTiers","participantCountArray","DealsTierModel","setDeal","dealsTableModel","greaterTier","middleIndex","budgetDeal","businessDeal","corporateDeal","setPrice","budgetPrice","businessPrice","corporatePrice","getType","isBrochure","isVideo","brochureUrlLabel","thumbnail","saleHeaderUrl","DateTimes","indexSuffix","videoUrlLabel","videoUrls","models","_packageRowTemplate","_salesPackageRowTemplate","_summaryTemplate","_summaryGamesTemplate","_model","cdrm","renderCombideals","_combidealsTemplate","_combidealRowTemplate","_totalTemplate","firstImageUrl","defaultFormat","formatType","getDateTimeFormat","getDefaultFormat","getGermanFormat","Short","Middle","Long","DateOnlyLong","TimeOnly","TimeOnlyWithNotationShort","TimeOnlyWithNotationLong","DateOnly","DateOnlyWithYear","MiddleDateOnly","MiddleDateNumber","DayFullMonthYear","Unknown","Dutch","Belgium","France","Spanish","German","English","Numbers","defaultCurrencyFormat"],"mappings":"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","file":"Business.min.js","sourcesContent":["enum Feature {\n LandingPage = 0,\n LogoTakeOver = 1,\n Articles = 2,\n SubLeagues = 3,\n SubLeagueRanking = 4,\n Advertisements = 5,\n Interstitials = 6,\n OptIns = 7\n}\n\nconst packageBudget = [\n Feature.LandingPage,\n Feature.LogoTakeOver\n];\n\nconst packageBusiness = [\n ...packageBudget,\n Feature.Articles,\n Feature.SubLeagues,\n Feature.SubLeagueRanking\n];\n\nconst packageProfessional = [\n ...packageBusiness,\n Feature.Advertisements,\n Feature.Interstitials,\n Feature.OptIns\n];\n\nconst isFeatureSupported = (packageType: Business.PackageType, feature: Feature) => {\n if (packageType === Business.PackageType.Budget) {\n return packageBudget.indexOf(feature) > -1;\n }\n\n if (packageType === Business.PackageType.Business) {\n return packageBusiness.indexOf(feature) > -1;\n }\n\n if (packageType === Business.PackageType.Professional) {\n return packageProfessional.indexOf(feature) > -1;\n }\n}","enum Gender {\n Unknown = 0,\n Male = 1,\n Female = 2\n}","enum KnownGameIds {\n FootballTournament = 1,\n TennisManager = 2,\n CyclingManager = 3,\n FootballManager = 4,\n FootballMatchDuel = 7,\n CyclingTeamManager = 9,\n DartsManager = 10,\n GpManager = 11,\n GpTeamManager = 12,\n FootballTournamentManager = 13\n}\n","enum SportType {\n Football = 0,\n Tennis = 1,\n Cycling = 2\n}","function createNewRelicConsole(parentConsole: Console): Console {\n if (window.location.hostname.indexOf(\"local\") > -1) {\n return parentConsole;\n }\n\n if (!window.hasOwnProperty('newrelic')) {\n throw new Error('New relic does not exist on \"window\"');\n }\n\n const newrelic = (window as any).newrelic;\n\n if (!newrelic) {\n throw new Error('New relic has not been initialized');\n }\n\n window.addEventListener('unhandledrejection', function (e) {\n try {\n newrelic.noticeError(JSON.stringify(e));\n }\n catch (e) { }\n });\n\n window.onerror = function (message, source, lineno, colno, error) {\n try {\n newrelic.noticeError(JSON.stringify({ message, source, lineno, colno, error }));\n }\n catch (e) { parentConsole.error(JSON.stringify(e)); }\n };\n\n return {\n ...parentConsole,\n\n error: (message?: any, ...optionalParams: Error[]) => {\n parentConsole.error(message, ...optionalParams);\n\n // @see: https://docs.newrelic.com/docs/browser/new-relic-browser/browser-agent-spa-api/noticeerror-browser-agent-api\n newrelic.noticeError(message);\n }\n };\n}","class Email {\n public static Validate(email: string): boolean{\n var re = /^(([^<>()[\\]\\\\.,;:\\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}","class FormattedDateTime {\n private static _defaultFormat: string = 'DD-MM-YYYY HH:mm:ss';\n\n private _moment: moment.Moment;\n\n private _dayLongMonthLongWithYearAndTimeFormat: string = 'dddd DD MMMM YYYY HH:mm';\n private _dayShortMonthShortWithTimeFormat: string = 'dd DD MMM HH:mm';\n private _dayMiddleMonthShortWithTimeFormat: string = 'ddd DD MMM HH:mm';\n\n public DayLongMonthLongWithYearAndTime: string;\n public DayShortMonthShortWithTime: string;\n public DayMiddleMonthShortWithTime: string;\n\n public Formatted: string;\n\n constructor(moment: moment.Moment, format: string) {\n this._moment = moment;\n this.DayLongMonthLongWithYearAndTime = moment.format(this._dayLongMonthLongWithYearAndTimeFormat);\n this.DayShortMonthShortWithTime = moment.format(this._dayShortMonthShortWithTimeFormat);\n this.DayMiddleMonthShortWithTime = moment.format(this._dayMiddleMonthShortWithTimeFormat);\n this.Formatted = moment.format(format);\n }\n\n public static FromUtcDate(date: Date): FormattedDateTime{\n return this.FromUtcJson(date.toString());\n }\n\n public static FromUtcDateAndFormat(date: Date, format: string): FormattedDateTime{\n return this.FromUtcJsonAndFormat(date.toString(), format);\n }\n\n public static FromUtcJson(json: string): FormattedDateTime{\n return this.FromUtcJsonAndFormat(json, this._defaultFormat);\n }\n\n public static FromUtcJsonAndFormat(json: string, format: string): FormattedDateTime{\n var momentInstance = moment.utc(json);\n momentInstance.tz(userTimeZone);\n momentInstance.locale(uiCulture);\n return new FormattedDateTime(momentInstance, format);\n }\n}","const LANGUAGE_SELECTOR_ID = \"language-selector\";\nconst LANGUAGE_SELECTOR_BTN_ID = \"language-selector__btn\";\nconst LANGUAGE_SELECTOR_DROPDOWN_ID = \"language-selector-dropdown\";\nconst LANGUAGE_SELECTOR_DROPDOWN_CLASS = \"language-selector-dropdown-wrapper\";\nconst LANGUAGE_SELECTOR_DROPDOWN_VISIBLE_CLASS = \"language-selector-dropdown-wrapper--visible\";\nconst LANGUAGE_SELECTOR_DROPDOWN_CULTURES_ID = \"language-selector-dropdown-cultures\";\n\nconst sortLanguagesDropdownAsc = () => {\n const languageDropdownCultures = document.getElementById(LANGUAGE_SELECTOR_DROPDOWN_CULTURES_ID);\n const elements = document.getElementsByClassName(\"culture sort-asc\");\n\n let cultureElementMap = [];\n\n for (var i = 0; i < elements.length; i++) {\n const cultureItem = elements[i];\n\n const label = cultureItem.getElementsByClassName(\"culture__label\")[0];\n const culture = label.innerHTML;\n\n cultureElementMap.push({ culture, element: cultureItem });\n }\n\n const sorted = cultureElementMap.sort((a, b) => {\n if (a.culture < b.culture) return -1;\n if (a.culture > b.culture) return 1;\n return 0;\n });\n\n languageDropdownCultures.innerHTML = sorted.map(i => `${i.element.outerHTML}`).join(\"\");\n};\n\nclass LanguageSelector {\n private readonly languageSelectorEl: HTMLElement;\n private readonly languageSelectorBtnEl: HTMLElement;\n private readonly languageSelectorDropdownEl: HTMLElement;\n private backdropEl: HTMLDivElement | undefined;\n\n constructor() {\n this.languageSelectorEl = this.initLanguageSelectorEl();\n this.languageSelectorBtnEl = this.initLanguageSelectorBtnEl();\n this.languageSelectorDropdownEl = this.initLanguageSelectorDropdownEl();\n this.backdropEl = undefined;\n }\n\n public openDropdown(): void {\n this.backdropEl = this.createBackdropEl();\n this.languageSelectorEl.appendChild(this.backdropEl);\n const el = this.languageSelectorDropdownEl.getElementsByClassName(LANGUAGE_SELECTOR_DROPDOWN_CLASS)[0];\n\n el.classList.add(LANGUAGE_SELECTOR_DROPDOWN_VISIBLE_CLASS);\n }\n\n public closeDropdown(): void {\n const el = this.languageSelectorDropdownEl.getElementsByClassName(LANGUAGE_SELECTOR_DROPDOWN_CLASS)[0];\n\n el.classList.remove(LANGUAGE_SELECTOR_DROPDOWN_VISIBLE_CLASS);\n\n this.destroyBackdropEl(this.backdropEl);\n this.backdropEl = undefined;\n }\n\n private initLanguageSelectorEl(): HTMLElement {\n const out = document.getElementById(LANGUAGE_SELECTOR_ID);\n\n return out;\n }\n\n private initLanguageSelectorBtnEl(): HTMLElement {\n const out = document.getElementById(LANGUAGE_SELECTOR_BTN_ID);\n\n out.onclick = () => this.openDropdown();\n\n return out;\n }\n\n private initLanguageSelectorDropdownEl(): HTMLElement {\n const out = document.getElementById(LANGUAGE_SELECTOR_DROPDOWN_ID);\n\n return out;\n }\n\n private createBackdropEl(): HTMLDivElement {\n const out = document.createElement(\"div\");\n\n out.style.position = \"fixed\";\n out.style.top = \"0\";\n out.style.bottom = \"0\";\n out.style.left = \"0\";\n out.style.right = \"0\";\n out.style.zIndex = \"100\";\n\n out.onclick = () => this.closeDropdown();\n\n return out;\n }\n\n private destroyBackdropEl(el: HTMLDivElement): void {\n el.remove();\n }\n}\n\nlet languageSelector = undefined;\n\n$(document).ready(() => {\n var current = location.pathname.split(\"/\")[1] ?? \"\";\n\n const navbarItemEls = document.getElementsByClassName(\"navbar__item\");\n\n for (var i = 1, len = navbarItemEls.length; i < len; i++) {\n const href = navbarItemEls[i].getAttribute(\"href\").split(\"/\")[1] ?? \"\";\n\n if (href.toLowerCase() === current.toLowerCase()) {\n navbarItemEls[i].classList.add(\"navbar__item--active\");\n break;\n }\n }\n\n languageSelector = new LanguageSelector();\n\n sortLanguagesDropdownAsc();\n});","class NotificationBar {\n\n private static DisplayHandler = (message: string) => {\n $(\".notification-bar__content\").html(message);\n $(\".notification-bar\").slideDown(\"fast\").delay(5000).slideUp(\"fast\");\n }\n\n static Display = _.debounce((message: string) => NotificationBar.DisplayHandler(message), 50, true);\n}","interface JQueryStatic {\n togglePopup(id: string, value: boolean, doScroll: boolean);\n newPopup(id: string);\n}\n\n(function ($) {\n $.newPopup = function (name: string) {\n const all = $(\"body > #\" + name);\n if (!all || all.length === 0) {\n const popup = $('.' + name).first().clone(false);\n popup.attr('id', name);\n popup.appendTo(\"body\");\n $(\"#\" + name + \" *\").off();\n all.off();\n return $(\"body > #\" + name);\n }\n $(\"#\" + name + \" *\").off();\n all.off();\n return all;\n };\n $.togglePopup = function (id: string, value: boolean, doScroll: boolean = true) {\n const popup = $('body > ' + id);\n let scrollTop = $('body').scrollTop() || $('html').scrollTop();\n if (value) {\n $(\"html,body\").addClass('noscroll');\n $(\"html,body\").removeClass('okscroll');\n popup.removeClass('popup--close');\n popup.addClass('popup--open');\n if (doScroll) $(\"body,html\").scrollTop(scrollTop);\n $(id).triggerHandler(\"open\");\n } else {\n $(\"html,body\").removeClass('noscroll');\n $(\"html,body\").addClass('okscroll');\n popup.removeClass('popup--open');\n popup.addClass('popup--close');\n if (doScroll) $(\"body,html\").scrollTop(scrollTop);\n $(id).triggerHandler(\"close\");\n }\n };\n}(jQuery));","class Vat {\n public static validate(vat: string): boolean {\n if (!vat)\n return false;\n\n if (vat.length < 5 || vat.length > 25) {\n return false;\n }\n if (!/\\d/.test(vat)) {\n return false;\n }\n if (!/[A-Z]/.test(vat)) {\n return false;\n }\n return true;\n }\n\n public static readonly PLACEHOLDER = \"VAT_PLACEHOLDER\";\n}","/// \n\nclass CookieLocalStorageRepository {\n private readonly languageKey = \"LANGUAGE_KEY\";\n\n public deleteCookieSettingsInLocalStorage(): void {\n localStorage.removeItem(this.languageKey);\n }\n\n public getCookieSettingsFromLocalStorage(): string | undefined {\n const serializedSettings = localStorage.getItem(this.languageKey);\n\n return serializedSettings\n }\n\n public userHasAcceptedCookies(): boolean {\n const settings = this.getCookieSettingsFromLocalStorage();\n\n return settings != null && settings.length > 0;\n }\n\n public setUserHasAcceptedCookies() {\n localStorage.setItem(this.languageKey, \"true\") \n }\n}\n\ntype CheckboxState = {\n label: string;\n info: string;\n checked: boolean;\n disabled: boolean;\n};\n\nclass CookiePopupController {\n private readonly cookiePopupContainerId = \"cookiePopupContainer\";\n private readonly languageSelectorId = \"languageSelector\";\n\n private readonly cookieRepository: CookieLocalStorageRepository;\n\n constructor(cookieRepository: CookieLocalStorageRepository) {\n this.cookieRepository = cookieRepository;\n }\n\n public show(): void {\n this.disableScroll();\n this.initPopup();\n\n const containerEl = document.getElementById(this.cookiePopupContainerId);\n containerEl.style.display = \"block\";\n }\n\n public hide(): void {\n const containerEl = document.getElementById(this.cookiePopupContainerId);\n containerEl.style.display = \"none\";\n\n this.enableScroll();\n this.teardownPopup();\n }\n\n private enableScroll(): void {\n document.body.style.overflow = \"visible\";\n }\n\n private disableScroll(): void {\n document.body.style.overflow = \"hidden\";\n }\n\n private initPopup(): void {\n this.initLanguageSelector();\n }\n\n private teardownPopup(): void {\n $(`#${this.cookiePopupContainerId}`).remove();\n }\n\n private initLanguageSelector(): void {\n const languageSelectorEl = document.getElementById(this.languageSelectorId);\n\n const wrappers = languageSelectorEl.querySelectorAll(\".cookie-popup__culture-flag-wrapper\");\n\n const deselectAll = () => wrappers.forEach(i => {\n const otherFlag = i.querySelector(\".cookie-popup__culture-flag\");\n const input = i.querySelector(\"input\");\n\n input.checked = false;\n otherFlag.classList.remove(\"cookie-popup__culture-flag--selected\");\n });\n\n if (currentCookieCulture) {\n deselectAll();\n }\n\n wrappers.forEach(wrapper => {\n const flag = wrapper.querySelector(\".cookie-popup__culture-flag\");\n const input = wrapper.querySelector(\"input\");\n\n wrapper.addEventListener(\"click\", () => {\n this.cookieRepository.setUserHasAcceptedCookies();\n\n deselectAll();\n\n input.checked = true;\n flag.classList.add(\"cookie-popup__culture-flag--selected\");\n });\n\n if (input.value === currentCookieCulture) {\n input.checked = true;\n flag.classList.add(\"cookie-popup__culture-flag--selected\");\n }\n });\n }\n}\n\nconst cookieLocalStorageRepository = new CookieLocalStorageRepository();\n\nif (!cookieLocalStorageRepository.userHasAcceptedCookies()) {\n $(window).ready(() => {\n const cookiePopupController = new CookiePopupController(cookieLocalStorageRepository);\n\n cookiePopupController.show();\n });\n}","if (!String.prototype.format) {\n String.prototype.format = function () {\n var args = arguments;\n return this.replace(/{(\\d+)}/g, (match, number) => typeof args[number] != \"undefined\"\n ? args[number]\n : match);\n };\n}\n\n(function ($) {\n $.fn.toggleModifiers = function (show: boolean, ...modifiers: string[]) {\n return this.each(function () {\n if (show) $(this).addModifiers(...modifiers);\n else $(this).removeModifiers(...modifiers);\n });\n };\n}(jQuery));\n\n(function ($) {\n $.fn.toggleDisabled = function (disabled: boolean) {\n return this.each(function () {\n if (disabled) $(this).attr('disabled', 'disabled');\n else $(this).removeAttr('disabled');\n });\n };\n}(jQuery));\n\n(function ($) {\n $.fn.toggleHtml = function (show: boolean, html: string | undefined) {\n return this.each(function () {\n if (show) $(this).html(html);\n else $(this).html(null);\n });\n };\n}(jQuery));\n\n(function ($) {\n $.fn.addModifiers = function (...modifiers: string[]) {\n return this.each(function () {\n const classAttribute = $(this).attr(\"class\");\n if (!classAttribute)\n return;\n\n const classList = classAttribute.split(\" \");\n if (classList.length < 1)\n return;\n const baseClass = classList[0].split(\"--\")[0].split(\"[\")[0];\n modifiers.forEach(modifier => {\n const classToAdd = `${baseClass}--${modifier}`;\n if (!$(this).hasClass(classToAdd))\n $(this).addClass(`${baseClass}--${modifier}`);\n });\n });\n };\n}(jQuery));\n\n(function ($) {\n $.fn.removeModifiers = function (...modifiers: string[]) {\n return this.each(function () {\n const classAttribute = $(this).attr(\"class\");\n if (!classAttribute)\n return;\n\n const classList = classAttribute.split(\" \");\n if (classList.length < 1)\n return;\n\n const baseClass = classList[0];\n modifiers.forEach(modifier => {\n $(this).removeClass(`${baseClass}--${modifier}`);\n });\n });\n };\n}(jQuery));\n\n\n(function ($) {\n $.fn.hasModifier = function (modifier: string) {\n const classAttribute = $(this).attr(\"class\");\n if (!classAttribute)\n return false;\n\n const classList = classAttribute.split(\" \");\n if (classList.length < 1)\n return false;\n\n const baseClass = classList[0];\n const modifierClass = `${baseClass}--${modifier}`;\n return $(this).hasClass(modifierClass);\n };\n}(jQuery));\n\n(function ($) {\n $.whenAll = function (...deferreds: JQueryPromise[]) {\n var lastResolved = 0;\n var wrappedDeferreds = [];\n\n for (var i = 0; i < deferreds.length; i++) {\n wrappedDeferreds.push($.Deferred());\n if (deferreds[i] && deferreds[i].always) {\n deferreds[i].always(wrappedDeferreds[lastResolved++].resolve);\n } else {\n wrappedDeferreds[lastResolved++].resolve(deferreds[i]);\n }\n }\n\n return $.when.apply($, wrappedDeferreds).promise();\n };\n}(jQuery));\n\n(function ($) {\n $.fn.removeClickListeners = function () {\n return this.each(function () {\n $(this).prop(\"click\", null).off(\"click\");\n });\n };\n}(jQuery));\n\nfunction kmpStringSearch(pattern: string, text: string, caseInsensitive: boolean = false) { // Knuth-Morris-Pratt algorithm (string search, string.Contains, string.includes alternative)\n if (pattern.length == 0)\n return 0; // Immediate match\n if (caseInsensitive) {\n pattern = pattern.toLowerCase();\n text = text.toLowerCase();\n }\n // Compute longest suffix-prefix table\n var lsp = [0]; // Base case\n for (var i = 1; i < pattern.length; i++) {\n var j = lsp[i - 1]; // Start by assuming we're extending the previous LSP\n while (j > 0 && pattern.charAt(i) != pattern.charAt(j))\n j = lsp[j - 1];\n if (pattern.charAt(i) == pattern.charAt(j))\n j++;\n lsp.push(j);\n }\n\n // Walk through text string\n var j = 0; // Number of chars matched in pattern\n for (var i = 0; i < text.length; i++) {\n while (j > 0 && text.charAt(i) != pattern.charAt(j))\n j = lsp[j - 1]; // Fall back in the pattern\n if (text.charAt(i) == pattern.charAt(j)) {\n j++; // Next char matched, increment position\n if (j == pattern.length)\n return i - (j - 1);\n }\n }\n return -1; // Not found\n}\n\n\nfunction fallbackCopyTextToClipboard(text) { // IE, oude safari etc\n let value = false;\n if ((window as any).clipboardData) {\n try {\n value = (window as any).clipboardData.setData('Text', text) ?? false;\n }\n catch (err) { }\n }\n if (!value) {\n var textArea = document.createElement(\"textarea\");\n\n textArea.style.position = \"fixed\";\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.width = '2em';\n textArea.style.height = '2em';\n textArea.style.padding = '0';\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none';\n textArea.style.background = 'transparent';\n textArea.value = text;\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n try {\n value = document.execCommand('copy');\n if (value !== false) value = true;\n } catch (err) {\n value = false;\n }\n document.body.removeChild(textArea);\n }\n return value;\n}\nfunction copyTextToClipboard(text): JQueryPromise {\n var deferred = $.Deferred();\n if (!navigator.clipboard || !navigator.clipboard.writeText) {\n const didCopy = fallbackCopyTextToClipboard(text);\n if (didCopy) deferred.resolve(true);\n else deferred.reject(false);\n }\n else {\n navigator.clipboard.writeText(text).then(function () {\n deferred.resolve(true);\n }, function (err) {\n deferred.reject(false);\n });\n }\n return deferred.promise();\n}\n\nfunction parseEnum(value: string | null | undefined, enumType: T): T[keyof T] | undefined {\n if (!value) {\n return undefined;\n }\n for (const property in enumType) {\n const enumMember = enumType[property];\n if (typeof enumMember === \"string\") {\n if (enumMember.toUpperCase() === value.toUpperCase()) {\n const key = enumMember as string as keyof typeof enumType;\n return enumType[key];\n }\n }\n if (typeof enumMember === \"number\") {\n if (enumMember.toString() === value) {\n return enumMember;\n }\n }\n }\n return undefined;\n}\n\nconst formatUrlWithProtocol = (url: string) => {\n if (!\"http://\".startsWith(url.substring(0, 7)) && !\"https://\".startsWith(url.substring(0, 8))) {\n return `http${url.startsWith(\"http://\") ? \"\" : \"s\"}://${url}`;\n }\n return url;\n}","// {{#compare Value OtherValue operator='=='}}{{/compare}}\nHandlebars.registerHelper('compare', function (lvalue, rvalue, options) {\n if (arguments.length < 3)\n throw new Error(\"Handlebars Helper 'compare' needs 2 parameters\");\n\n var operator = options.hash.operator || \"==\";\n\n var operators = {\n '==': function (l, r) { return l == r; },\n '===': function (l, r) { return l === r; },\n '!=': function (l, r) { return l != r; },\n '<': function (l, r) { return l < r; },\n '>': function (l, r) { return l > r; },\n '<=': function (l, r) { return l <= r; },\n '>=': function (l, r) { return l >= r; },\n 'typeof': function (l, r) { return typeof l == r; }\n }\n\n if (!operators[operator])\n throw new Error(\"Handlebars Helper 'compare' doesn't know the operator \" + operator);\n\n var result = operators[operator](lvalue, rvalue);\n if (options.fn) {\n if (result) {\n return options.fn(this);\n }\n else {\n return options.inverse(this);\n }\n }\n else { // used as non-block helper\n return result;\n }\n\n});\n\n//{{math 1 1, operator='+'}}\n//2\nHandlebars.registerHelper(\"math\", function (lvalue, rvalue, options) {\n if (arguments.length < 3)\n throw new Error(\"Handlebars Helper 'math' needs 2 parameters\");\n\n var operator = options.hash.operator.trim();\n\n var operators = {\n '+': function (l, r) { return l + r; },\n '-': function (l, r) { return l - r; },\n '/': function (l, r) { return l / r; },\n '*': function (l, r) { return l * r; }\n }\n\n if (!operators[operator])\n throw new Error(\"Handlebars Helper 'math' doesn't know the operator \" + operator);\n\n return operators[operator](lvalue, rvalue);\n});\n\n//foo.bar = 'abcdefg'\n//{{chop foo.bar 4}}\n//abcd\nHandlebars.registerHelper(\"chop\", function (string, maxLength) {\n if (typeof (string) == 'undefined' || string == null) {\n return \"\";\n }\n if (string.length > maxLength) {\n return string.substr(0, maxLength) + \"…\";\n }\n else {\n return string;\n }\n});\n\n//{{HideAbove 10 foo.bar}}\nHandlebars.registerHelper(\"HideAbove\", function (max, input) {\n if (input > max) {\n return \" \";\n }\n else {\n return input;\n }\n});\n\nHandlebars.registerHelper('debug', function (statement, options) {\n if (arguments.length < 2) {\n throw new Error(\"debug requires a statement\");\n }\n window.console && console.log(statement);\n});\n\n//{{FormatMSDateTime foo.bar}}\n// : woensdag 25-03-1987 00:00:00\nHandlebars.registerHelper('FormatMSDateTime', function (MSJsonDateObject) {\n if (MSJsonDateObject == null)\n return null;\n var jsdate = new Date(parseInt(MSJsonDateObject.substr(6)));\n var momentDate = moment(jsdate).lang(\"nl\");\n\n return momentDate.format(\"DD-MM-YYYY HH:mm:ss\");\n});\n\n//{{FormatMSDateSimple foo.bar}}\n// : 25-03-1987\nHandlebars.registerHelper('FormatMSDateSimple', function (MSJsonDateObject) {\n if (MSJsonDateObject == null)\n return null;\n var jsdate = new Date(parseInt(MSJsonDateObject.substr(6)));\n var momentDate = moment(jsdate).lang('nl');\n return momentDate.format('DD-MM-YYYY');\n});\n\n//{{FormatMSDateExplicit foo.bar \"dd/mm/yyyy\"}}\nHandlebars.registerHelper('FormatMSDateExplicit', function (MSJsonDateObject, format) {\n if (MSJsonDateObject == null)\n return null;\n var jsdate = new Date(parseInt(MSJsonDateObject.substr(6)));\n var momentDate = moment(jsdate).lang('nl');\n return momentDate.format(format);\n});\n\n// Foo.Bar = banana 2015|2016\n//{{ClipYearsFromString Foo.Bar}}\n// banana\nHandlebars.registerHelper(\"ClipYearsFromString\", function (strg, maxResidualLength) {\n if (typeof (strg) == 'undefined') return \"\";\n\n var pattern = /(\\b\\d{4}.\\b|\\b\\d{4}\\b)/g;\n\n var clippedString = strg.replace(pattern, \"\");\n\n if (typeof (maxResidualLength) == \"number\" && maxResidualLength > 0) {\n if (clippedString.length > maxResidualLength) {\n clippedString = clippedString.substr(0, maxResidualLength) + \"…\";\n }\n }\n return clippedString;\n});\n\nHandlebars.registerHelper('Currency', function (amount) {\n var formatMask;\n if (amount < 100 && amount > 0) {\n formatMask = \"0,000.00\";\n }\n else {\n formatMask = \"0,000\";\n if (amount % 1 !== 0) {\n formatMask += \".00\";\n }\n }\n\n return \"€ \" + numeral(amount).format(formatMask);\n});\n\nHandlebars.registerHelper('CurrencyWithDecimal', function (amount) {\n return \"€ \" + numeral(amount).format(\"0,000.00\");\n});\n\nHandlebars.registerHelper('CurrencyWithoutDecimal', (amount) => `€ ${NumeralData.formatCurrency(amount, \"0,0\")}`);\n\nHandlebars.registerHelper('FormatDecimalAsCurency', function (amount) {\n var formatMask;\n if (amount < 1000) {\n formatMask = \"0,000.00\";\n\n }\n else {\n formatMask = \"0,000\";\n }\n\n return numeral(amount).format(formatMask);\n});\n\nHandlebars.registerHelper('FormatNumberWithDot', function (amount) {\n var formatMask = \"0,000\";\n\n return numeral(amount).format(formatMask);\n});\n\n\n\nHandlebars.registerHelper(\"TranslateHelper\", function (key: string, ...values: (string | undefined)[]) {\n const templateString = TranslationData.get(key);\n return format(templateString, ...values);\n});\n\nHandlebars.registerHelper('CaseHelper', function (key, isLowerCase) {\n if (typeof (key) == 'undefined' || key == null)\n return \"\";\n\n if (isLowerCase)\n return key.toLowerCase();\n else\n return key.toUpperCase();\n});\n\nHandlebars.registerHelper('TranslateWithKeyHelper', function (key, addedKey) {\n const translationKey = key + addedKey;\n const translation = TranslationData[translationKey];\n return translation ? translation : translationKey;\n});\n\n\nHandlebars.registerHelper('ToJsonHelper', function (object) {\n return new Handlebars.SafeString(JSON.stringify(object));\n});\n\nHandlebars.registerHelper(\"IncHelper\", function (value, options) {\n if (!value)\n return 1;\n\n return parseInt(value) + 1;\n});\n\nHandlebars.registerHelper(\"columnIncHelper\", function (column, value, numberOfColumns) {\n return (parseInt(column)) + (parseInt(value) * parseInt(numberOfColumns));\n});\n\nHandlebars.registerHelper('FirstHelper', function (object, propertyName) {\n return _.first(object)[propertyName];\n});\n\nHandlebars.registerHelper('ForHelper', function (n, block) {\n var accum = '';\n for (var i = 0; i < n; ++i)\n accum += block.fn(i);\n return accum;\n});\n\nHandlebars.registerHelper(\"FillupAmountHelper\", function (maxAmount, currentAmount, options) {\n var ret = \"\";\n for (var i = 0, l = maxAmount - currentAmount; i < l; i++) {\n ret = ret + options.fn({ Value: i + currentAmount });\n }\n return ret;\n});\nHandlebars.registerHelper(\"FillupHelper\", function (maxAmount, collection, options) {\n var ret = \"\";\n for (var i = 0, l = maxAmount - collection.length; i < l; i++) {\n ret = ret + options.fn({ Value: i + collection.length });\n }\n return ret;\n});\n\nHandlebars.registerHelper('SkipAndTakeHelper', function (skip, take, collection, options) {\n var ret = \"\";\n var maxAmount = take;\n if (take > collection.length)\n maxAmount = collection.length;\n\n for (var i = skip, l = maxAmount; i < l; i++) {\n ret = ret + options.fn(collection[i]);\n }\n return ret;\n});\n\nHandlebars.registerHelper('BisectHelper', function (firstPart, collection, options) {\n if (collection == null)\n return;\n\n var ret = \"\";\n var amount = Math.round(collection.length / 2);\n var maxItem = collection.length;\n var skip = 0;\n\n if (firstPart)\n skip = amount;\n else\n maxItem = amount;\n\n for (var i = skip, l = maxItem; i < l; i++) {\n ret = ret + options.fn(collection[i]);\n }\n\n return ret;\n});\n\nHandlebars.registerHelper(\"SafeSvgImage\", function (url, overrideWidth, overrideHeight, classes, fallbackExtension, altDescription) {\n\n if (url == undefined || url === \"\") {\n return \"\" + altDescription + \"\";\n }\n\n if (url.toLowerCase().indexOf(\".svg\") === -1) {\n return \"\" + altDescription + \"\";\n }\n\n var fallbackExtensionSafe = fallbackExtension.indexOf(\".\") > -1 ? fallbackExtension : \".\" + fallbackExtension;\n\n var fallbackUrl = url.replace(\".svg\", fallbackExtensionSafe);\n\n return \"\" + altDescription + \"\";\n\n});\n\nHandlebars.registerHelper('FormatPercentage', function (percentageAsFloat) {\n if (percentageAsFloat == null) return '---';\n\n if (percentageAsFloat.toFixed(1) === '100.0') return '100';\n\n var roundedFloat = Math.abs(Math.round(percentageAsFloat * 10) / 10);\n return roundedFloat.toLocaleString(uiCulture, { minimumFractionDigits: 1 });\n});\n\n\nHandlebars.registerHelper(\"FormatNumber\", function (nbr) {\n if (typeof (nbr) == 'undefined' || nbr == null) {\n return \"\";\n }\n return nbr.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\n});\n\nHandlebars.registerHelper('if_even', function (conditional, options) {\n if ((conditional % 2) == 0) {\n return options.fn(this);\n } else {\n return options.inverse(this);\n }\n});\n\nHandlebars.registerHelper('SplitOnWhiteSpaceHelper', function (key, part) {\n var splittedString = TranslationData[key].split(\" \");\n return splittedString[part];\n});\n\nHandlebars.registerHelper(\"FormatDate\", function (datetime, format) {\n if (moment) {\n return moment(datetime).format(format);\n }\n else {\n return datetime;\n }\n});\n\nHandlebars.registerHelper(\"StringFormat\", function (data, template) {\n var replaceFormat = \"{0}\";\n return template.replace(replaceFormat, data);\n\n});\n\nHandlebars.registerHelper(\"switch\", function (value, options) {\n this._switch_value_ = value;\n this._switch_break_ = false;\n var html = options.fn(this); // Process the body of the switch block\n delete this._switch_break_;\n delete this._switch_value_;\n return html;\n});\n\nHandlebars.registerHelper(\"case\", function (value, options) {\n if (value == this._switch_value_) {\n this._switch_break_ = true;\n return options.fn(this);\n }\n});\n\nHandlebars.registerHelper(\"if_hasValues\", function (conditional, options) {\n if (Object.keys(conditional).length > 0)\n return options.fn(this);\n});\n\nHandlebars.registerHelper(\"default\", function (value, options) {\n if (!this._switch_break_)\n return options.fn(this);\n});\n\nHandlebars.registerHelper('times', function (n, block) {\n var accum = '';\n for (var i = 0; i < n; ++i)\n accum += block.fn(i);\n return accum;\n});","function removeUrlParameter(url: string, parameter: string) {\n //prefer to use l.search if you have a location/link object\n var urlparts = url.split('?');\n if (urlparts.length >= 2) {\n\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 urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : '');\n }\n return url;\n}\n\nfunction isValidHttpUrl(string) {\n let url;\n\n try {\n url = new URL(string);\n } catch (_) {\n return false;\n }\n\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n}\n\nfunction isNumeric(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (search, pos) {\n return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n };\n}\n\n(function () {\n if (typeof window.CustomEvent === \"function\") return false;\n\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: null };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n\n (window as any).CustomEvent = CustomEvent;\n})();\n\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = function (callback, thisArg) {\n thisArg = thisArg || window;\n for (var i = 0; i < this.length; i++) {\n callback.call(thisArg, this[i], i, this);\n }\n };\n}\n\nString.isNullOrEmpty = (value: string | null | undefined) => {\n return value === \"\" || value == null;\n};\n\nconst format = (templateString: string, ...values: (string | undefined)[]): string => {\n return templateString.replace(/{(\\d+)}/g, (match, index) => {\n const value = values[index];\n return value != null ? value : match;\n });\n}\n","enum ApiResultCode { \n Ok = 0,\n Failure = 1,\n DatabaseError = 2,\n ProcessError = 3,\n ConstraintFail = 4,\n DeadlinePassed = 5,\n NotAllowedToGetData = 6\n}","module ApiSettings {\n export class UserPredictionStatusApiSettings {\n public readonly baseUrl: string;\n\n constructor(apiSettings: any) {\n this.baseUrl = apiSettings.BaseUrl;\n }\n }\n} ","module League {\n export class ApiSettings {\n public readonly sendPrivateMessageUrl: string;\n public readonly deleteParticipantUrl: string;\n public readonly checkLeagueName: string;\n public readonly baseUrl: string;\n\n constructor(apiSettings: any) {\n this.sendPrivateMessageUrl = apiSettings.SendPrivateMessageUrl;\n this.deleteParticipantUrl = apiSettings.DeleteParticipantUrl;\n this.checkLeagueName = apiSettings.CheckLeagueName;\n this.baseUrl = apiSettings.BaseUrl;\n }\n }\n}","module Platform {\n export class Profile {\n public userId: number;\n public userName: string;\n public fullName: string;\n public year: number;\n public amountOfGames: number;\n public profileImageUrl: string;\n public nationalityFlagUrl: string;\n public favoriteFootballTeam: string;\n public firstname: string;\n public middlename: string;\n public lastname: string;\n public showOnProfile: boolean;\n public email: string;\n public birthdate: Date;\n public countryId: number;\n public timeZoneId: number;\n public genderId: number;\n public street: string;\n public housenumber: string;\n public zipcode: string;\n public city: string;\n\n constructor(\n userId: number,\n userName: string,\n fullName: string,\n year: number,\n amountOfGames: number,\n profileImageUrl: string,\n nationalityFlagUrl: string,\n favoriteFootballTeam: string,\n firstname: string,\n middlename: string,\n lastname: string,\n showOnProfile: boolean,\n email: string,\n birthdate: string,\n countryId: number,\n timeZoneId: number,\n genderId: number,\n street: string,\n housenumber: string,\n zipcode: string,\n city: string) {\n this.userId = userId;\n this.userName = userName;\n this.fullName = fullName;\n this.year = year;\n this.amountOfGames = amountOfGames;\n this.profileImageUrl = profileImageUrl;\n this.nationalityFlagUrl = nationalityFlagUrl;\n this.favoriteFootballTeam = favoriteFootballTeam;\n this.firstname = firstname;\n this.middlename = middlename;\n this.lastname = lastname;\n this.showOnProfile = showOnProfile;\n this.email = email;\n this.birthdate = new Date(birthdate);\n this.countryId = countryId;\n this.timeZoneId = timeZoneId;\n this.genderId = genderId;\n this.street = street;\n this.housenumber = housenumber;\n this.zipcode = zipcode;\n this.city = city;\n }\n\n public static fromJson = (data: any): Profile => {\n return new Profile(\n data.UserId,\n data.UserName,\n data.FullName,\n data.Year,\n data.AmountOfGames,\n data.ProfileImageUrl,\n data.NationalityFlagUrl,\n data.FavoriteFootballTeam,\n data.Firstname,\n data.Middlename,\n data.Lastname,\n data.ShowOnProfile,\n data.Email,\n data.Birthdate,\n data.CountryId,\n data.TimeZoneId,\n data.Gender,\n data.Street,\n data.Housenumber,\n data.Zipcode,\n data.City);\n }\n }\n}","module Shared {\n export abstract class TabController {\n protected marketId: number;\n protected clientId: number;\n protected salesUser: Business.SalesUser;\n protected clientSettings: Business.ClientMarketSettingsModel;\n protected readonly shouldCheckConfigurationComplete: boolean;\n\n protected salesApiSettings: ApiSettings.SalesApiSettings;\n protected platformApiSettings: Platform.ApiSettings;\n protected clientRepository: Business.IClientRepository;\n protected tabDataLoaded: boolean;\n protected cdnUrl: string;\n\n protected constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings,\n clientRepository: Business.IClientRepository, shouldCheckConfigurationComplete: boolean) {\n this.cdnUrl = cdnUrl;\n this.salesApiSettings = salesApiSettings;\n this.platformApiSettings = platformApiSettings;\n this.clientRepository = clientRepository;\n this.shouldCheckConfigurationComplete = shouldCheckConfigurationComplete;\n this.initEventListeners();\n }\n\n protected abstract loadData: (isConfigurationComplete?: boolean) => void;\n\n protected abstract removePreload: () => void;\n\n protected setTabDataLoaded = (loaded: boolean): void => {\n this.tabDataLoaded = loaded;\n }\n\n protected checkConfigurationComplete = (): void => {\n this.clientRepository.getClientMarketSettings(this.marketId).done((settings: Business.ClientMarketSettings) => {\n const settingsModel = Business.ClientMarketSettingsModel.fromDto(settings, this.salesUser, this.cdnUrl);\n this.clientSettings = settingsModel;\n this.loadData(settingsModel.isConfigurationComplete());\n }).fail(err => {\n this.displayErrorMessage(err);\n }).always(() => {\n this.removePreload();\n });\n }\n\n protected initEventListeners = () => {\n addEventListener(Business.ManagementController.MarketSwitchEvent, (event: CustomEvent) => {\n this.marketId = event.detail.marketId;\n this.salesUser = event.detail.salesUser;\n this.clientId = this.salesUser.clientId;\n this.setTabDataLoaded(false);\n });\n }\n\n protected getMainLeagueId = (): number | null => {\n return this.salesUser?.mainLeagueId;\n }\n\n protected displayErrorMessage = (error: JQueryXHR): void => {\n let labelKey = \"Common.ErrorOnPage\";\n if (error?.status === 403) {\n labelKey = \"Business.Management.AccessDenied\";\n }\n else if (_.contains([413], error?.status)) {\n labelKey = \"Business.Management.Configuration.ImageTooLargeError\";\n }\n NotificationBar.Display(TranslationData.get(labelKey));\n }\n }\n}","module BusinessManagement {\n export class ParticipantsRenderer {\n private template: HandlebarsTemplateDelegate;\n private dataTable;\n public participantMailMode: ParticipantMailMode;\n\n constructor() {\n this.participantMailMode = ParticipantMailMode.Manual;\n }\n\n public renderTemplate = (participants: Business.Participants, tabSelector: string, prefixId: string, bindHtmlElements: Function): void => {\n if (this.template == null) {\n this.template = Handlebars.compile($(\"#participants-template\").html());\n }\n\n $(`${tabSelector} .business-participants__participants-placeholder`).html(this.template(prefixId));\n\n if (this.dataTable) {\n this.dataTable.destroy();\n }\n\n const columns: any[] = [\n {\n \"orderable\": false,\n \"data\": \"userId\",\n\n \"render\": () => {\n return `
`;\n }\n },\n {\n \"data\": \"firstName\",\n title: TranslationData.get(\"Common.FirstName\"),\n defaultContent: \"\",\n \"render\": $.fn.dataTable.render.text()\n },\n {\n \"data\": \"fullLastName\",\n title: TranslationData.get(\"Common.LastName\"),\n defaultContent: \"\",\n \"render\": $.fn.dataTable.render.text()\n },\n {\n title: TranslationData.get(\"User.Username\"),\n defaultContent: \"\",\n \"data\": \"username\",\n \"render\": function (data, type, row) {\n var sanitized = $.fn.dataTable.render.text().display(data, type, row);\n return '' + sanitized + '';\n }\n }];\n participants.predictionStatusColumns.forEach((column, index) => {\n columns.push({\n class: \"business-participants-row__center\",\n data: `userPredictionStatusList.${index}`,\n title: column,\n render: (isComplete, type, row) => {\n if (isComplete) {\n return ``\n }\n return ``\n }\n })\n })\n\n columns.push({\n class: \"business-participants-row__center\",\n title: `
\n \n \n
`,\n \"orderable\": false,\n \"render\": () => {\n if (this.participantMailMode === ParticipantMailMode.All) {\n return ``;\n }\n return ``;\n }\n });\n\n const table = $(`table[id='${prefixId}']:visible`);\n\n this.dataTable = table.DataTable({\n \"bInfo\": false,\n \"lengthChange\": false,\n \"pageLength\": 10,\n \"order\": [[1, \"asc\"]],\n \"language\": {\n \"emptyTable\": TranslationData.get(\"Business.Participants.EmptyTable\"),\n \"infoEmpty\": TranslationData.get(\"Business.Participants.EmptyTable\"),\n },\n \"createdRow\": function (row, data, index) {\n $(row).addClass(\"business-participants-row\");\n $(row).attr(\"data-participant-id\", data.userId);\n },\n data: participants.list,\n columns: columns,\n initComplete: () => {\n table.find(\"thead tr\").addClass(\"business-participants__table-header\");\n table.find(\"thead tr\").removeClass(\"business-participants-row__center\");\n table.find(\"th\").addClass(\"business-participants__table-header-text\");\n bindHtmlElements();\n }\n });\n\n\n $(\".dataTables_filter\").hide();\n $(\".sorting\").css(\"background-image\", \"\");\n }\n\n public drawSearch = (search: string) => {\n this.dataTable.search(search).draw();\n }\n\n public setMode = (mode: ParticipantMailMode) => {\n this.participantMailMode = mode;\n this.dataTable.rows().invalidate().draw();\n }\n\n private getColumns(isMainLeague: boolean): Array {\n var columnDefinition: Array = [\n {\n \"class\": \"business-participants-row__center\",\n \"orderable\": false,\n \"data\": \"userId\",\n \"render\": () => {\n return isMainLeague\n ? \"\"\n : `
`;\n }\n },\n {\n \"data\": \"firstName\",\n \"render\": $.fn.dataTable.render.text()\n },\n {\n \"data\": \"lastName\",\n \"render\": $.fn.dataTable.render.text()\n },\n {\n \"data\": \"userName\",\n \"render\": function (data, type, row) {\n var sanitized = $.fn.dataTable.render.text().display(data, type, row);\n return '' + sanitized + '';\n }\n }\n ]\n\n columnDefinition.push({\n \"class\": \"business-participants-row__center\",\n \"orderable\": false,\n \"render\": () => {\n if (this.participantMailMode === ParticipantMailMode.All) {\n return ``;\n }\n return ``;\n }\n });\n\n return columnDefinition;\n }\n\n public renderServerSideTemplate = (prefixId: string, url: string, isMainLeague: boolean, onDraw: Function) => {\n if (this.dataTable) {\n this.dataTable.destroy();\n }\n\n this.dataTable = $(`table[id='${prefixId}']:visible`).DataTable({\n \"bInfo\": false,\n \"lengthChange\": false,\n \"processing\": true,\n \"serverSide\": true,\n \"ajax\": {\n \"url\": url,\n \"beforeSend\": function (xhr) {\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + API._token);\n }\n },\n \"columns\": this.getColumns(isMainLeague),\n \"createdRow\": function (row, data, index) {\n $(row).addClass(\"business-participants-row\");\n $(row).attr(\"data-participant-id\", data.userId);\n },\n \"pageLength\": 10,\n \"order\": [[1, \"asc\"]],\n \"language\": {\n \"emptyTable\": TranslationData.get(\"Business.Participants.EmptyTable\"),\n \"infoEmpty\": TranslationData.get(\"Business.Participants.EmptyTable\"),\n }\n });\n\n $(\".dataTables_filter\").hide();\n\n this.dataTable.on('draw', () => {\n onDraw();\n });\n }\n }\n}","module ClientAdministrator {\n export class UpgradeParticipantModel {\n public participantCount: number;\n public price: number;\n\n constructor(participantCount: number, price: number) {\n this.participantCount = participantCount;\n this.price = price;\n }\n }\n}","/// \n\nimport cropperConfig = Business.cropperConfig;\nmodule LeagueAdministrator {\n import LeagueAdministratorStepModel = Business.LeagueAdministratorStepModel;\n import ConfigurationStatusType = Business.ConfigurationStatusType;\n import LeagueAdminTabType = Business.LeagueAdminTabType;\n import RankingSettingsViewModel = Business.RankingSettingsViewModel;\n import SubLeague = Business.SubLeague;\n import IMailValidation = Business.IMailValidation;\n import SettingsStepType = Business.SettingsStepType;\n import ActionsController = Business.ActionsController;\n import LeagueActions = Business.LeagueActions;\n\n export class SettingsController extends LeagueAdministratorTabController {\n private static settingsCompletedLocalStorageKey = `sales.SettingsCompleted.${location.hostname}`;\n\n private readonly settingsRenderer: Business.LeagueAdministratorSettingsRenderer;\n private readonly actionsRepository: Business.ActionsRepository;\n private readonly leagueActionsEnabled: boolean;\n private readonly settingsCompletionModel: SettingsCompletionModel;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, clientRepository: Business.IClientRepository, leagueActionsEnabled: boolean) {\n super(cdnUrl, salesApiSettings, platformApiSettings, LeagueAdminTabType.Settings, clientRepository, true);\n this.settingsRenderer = new Business.LeagueAdministratorSettingsRenderer();\n this.actionsRepository = new Business.ActionsRepository(salesApiSettings);\n this.leagueActionsEnabled = leagueActionsEnabled;\n this.settingsCompletionModel = SettingsCompletionModel.fromLocalStorage();\n }\n\n protected loadTabData = (isConfigurationComplete: boolean): void => {\n const subLeague = this.leagues.getById(this.selectedSubLeagueId);\n if (!subLeague)\n return;\n\n if (this.salesUser.isSubLeagueAdministrator() && !this.salesUser.isClientAdministrator()) {\n ActionsController.getInstance().initialize(this.marketId, 0, this.salesUser.leagueActionsCollection.getByMarketId(this.marketId));\n }\n\n let leagueActions;\n if (this.leagueActionsEnabled)\n leagueActions = ActionsController.getInstance().getLeagueActionsByMarketAndSubLeague(this.marketId, this.selectedSubLeagueId);\n else\n leagueActions = this.settingsCompletionModel.get(this.selectedSubLeagueId.toString());\n\n const subLeaguesModel = this.clientSettings.multiSubLeaguesModel;\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.Name, subLeaguesModel.subLeagueIsAllowedToChangeName ? (leagueActions?.nameCompleted ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete) : ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.RankingLogo, subLeaguesModel.subLeagueIsAllowedToChangeRankingLogo ? (leagueActions?.rankingLogoCompleted ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete) : ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.MailingText, subLeaguesModel.subLeagueIsAllowedToChangeEmail ? (leagueActions?.welcomeEmailCompleted ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete) : ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\n\n this.settingsRenderer.renderNameTemplate(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, subLeague.getLogoUrl(this.cdnUrl), subLeaguesModel.subLeagueIsAllowedToChangeName), () => {\n this.bindNameSlide(subLeague);\n });\n\n this.settingsRenderer.renderRankingLogoTemplate(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, subLeague.getLogoUrl(this.cdnUrl), subLeaguesModel.subLeagueIsAllowedToChangeRankingLogo), () => {\n this.bindRankingLogoSlide(subLeague);\n this.bindCropRankingLogoSlide(subLeague);\n });\n\n this.getWelcomeMail(subLeaguesModel, subLeague.leagueId);\n ActionsController.getInstance().refresh(this.marketId, this.selectedSubLeagueId);\n\n $(\".league-administrator-dropdown__select-list[val='\" + this.getMainLeagueId() + \"'\").remove();\n $(\".subleague-ranking-logo-slide__crop-button\").hide()\n };\n\n protected leagueChanged = (): void => {\n this.loadTabData(true);\n };\n\n private bindHeaderClick = () => {\n const leagueAdminContentElem = $(\".league-administrator__tabs-content\");\n leagueAdminContentElem.find(\".configuration-header-placeholder\").removeClickListeners();\n leagueAdminContentElem.find(\".configuration-header-placeholder\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const stepType: SettingsStepType = +elem.closest(\".league-administrator-settings__step\").data(\"step-id\");\n const contentPlaceholder = elem.next();\n const shouldOpenSlide = !contentPlaceholder.hasModifier(\"open\");\n\n this.settingsRenderer.toggleSlide(stepType, shouldOpenSlide);\n\n if (stepType === SettingsStepType.Name && shouldOpenSlide) {\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.Name, ConfigurationStatusType.Completed, true), () => { this.bindHeaderClick() });\n this.markCompletion(SettingsStepType.Name);\n }\n\n if (stepType === SettingsStepType.RankingLogo && !shouldOpenSlide) {\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.RankingLogo, ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\n this.markCompletion(SettingsStepType.RankingLogo);\n }\n\n if (stepType === SettingsStepType.MailingText && !shouldOpenSlide) {\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.MailingText, ConfigurationStatusType.Completed, false), () => { this.bindHeaderClick() });\n this.markCompletion(SettingsStepType.MailingText);\n }\n });\n }\n\n private bindNameSlide = (subLeague: SubLeague): void => {\n $(\".subleague-name-slide__input\").on(\"change input\", e => {\n const elem = $(e.currentTarget);\n const leagueName = elem.val();\n\n if (leagueName === \"\" || leagueName.length > 25 || leagueName.length < 5) {\n elem.addModifiers(\"invalid\");\n $(\".subleague-name-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameLengthError\")).show();\n $(\".subleague-name-slide__save-button\").addModifiers(\"disabled\");\n }\n else {\n elem.removeModifiers(\"invalid\");\n $(\".subleague-name-slide__error-message\").hide();\n $(\".subleague-name-slide__save-button\").removeModifiers(\"disabled\");\n }\n });\n\n $(\".subleague-name-slide__save-button\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n\n if (elem.hasModifier(\"disabled\"))\n return;\n\n elem.addModifiers(\"disabled\");\n const leagueName = $(\".subleague-name-slide__input\").val();\n this.subLeagueRepository.updateSubLeagueName(this.selectedSubLeagueId, leagueName).done(apiResult => {\n if (apiResult.isSuccess()) {\n subLeague.leagueName = leagueName;\n this.updateDropdown();\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.Name, ConfigurationStatusType.Completed, true), () => { this.bindHeaderClick() });\n this.settingsRenderer.renderRankingPreview(new RankingSettingsViewModel(leagueName, this.marketId, subLeague.getLogoUrl(this.cdnUrl), true));\n\n this.markCompletion(SettingsStepType.Name);\n\n $(\".subleague-name-slide__input\").removeModifiers(\"invalid\");\n $(\".subleague-name-slide__error-message\").hide();\n\n if (subLeague.isMainLeague) {\n $(\".main-league-slide_input,.ranking-logo-slide__subleague-name\").text(leagueName);\n $(\".main-league-slide__input\").val(leagueName);\n }\n Business.Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n $(\".subleague-name-slide__input\").addModifiers(\"invalid\");\n $(\".subleague-name-slide__error-message\").text(apiResult.message).show();\n elem.removeModifiers(\"disabled\");\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n elem.removeModifiers(\"disabled\");\n });\n });\n }\n\n private bindRankingLogoSlide = (subLeague: SubLeague): void => {\n const uploadButton = $(\".subleague-ranking-logo-slide__upload-button\");\n const uploadInput = $(\".subleague-ranking-logo-slide__input\");\n const exampleLogoContainer = $(\".subleague-ranking-logo-slide__logo-example-container\");\n\n uploadButton.on(\"click\", _ => {\n uploadInput.click();\n });\n\n exampleLogoContainer.on(\"click\", _ => {\n uploadInput.click();\n })\n\n uploadInput.on(\"change\", () => {\n const file = uploadInput.prop(\"files\")[0];\n if (!file) {\n return NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }\n\n const formData = new FormData();\n formData.append(\"fileData\", file);\n uploadButton.addModifiers(\"disabled\");\n this.subLeagueRepository.saveRankingLogo(this.selectedSubLeagueId, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.RankingLogo, ConfigurationStatusType.Completed, true), () => { this.bindHeaderClick() });\n this.settingsRenderer.renderRankingLogoTemplate(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, apiResult.content, true), () => {\n this.bindRankingLogoSlide(subLeague);\n this.bindCropRankingLogoSlide(subLeague);\n $(\".subleague-ranking-logo-slide__crop-button\").hide()\n })\n this.settingsRenderer.renderRankingPreview(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, apiResult.content, true));\n $(\".subleague-ranking-logo-slide__ranking-preview .ranking-preview__ranking-logo-container\").addModifiers(\"active\");\n\n this.markCompletion(SettingsStepType.RankingLogo);\n\n Business.Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n\n if (file?.type != \"image/gif\") {\n var $image_elem = $(\".subleague-ranking-logo-slide__logo-example\")\n $image_elem.cropper(cropperConfig(file, {\n preview: \".ranking-preview__ranking-logo-preview\",\n aspectRatio: 1,\n }));\n $(\".subleague-ranking-logo-slide__upload-button\").hide()\n $(\".subleague-ranking-logo-slide__crop-button\").show()\n $(\".ranking-preview__ranking-logo\").hide()\n exampleLogoContainer.off()\n }\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n }).always(() => {\n uploadButton.removeModifiers(\"disabled\");\n });\n });\n $(\".subleague-ranking-logo-slide__ranking-preview .ranking-preview__ranking-logo-container\").addModifiers(\"active\");\n }\n\n private bindCropRankingLogoSlide = (subLeague: SubLeague) => {\n const cropButton = $(\".subleague-ranking-logo-slide__crop-button\");\n cropButton.bind(\"click\", () => {\n const $image_elem = $(\".subleague-ranking-logo-slide__logo-example\")\n const cropper = $image_elem.data(\"cropper\")\n cropper.getCroppedCanvas().toBlob((blob) => {\n const formData = new FormData();\n formData.append(\"fileData\", blob, \"cropped_image\");\n\n cropButton.addModifiers(\"disabled\");\n this.subLeagueRepository.saveRankingLogo(this.selectedSubLeagueId, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.settingsRenderer.renderStepHeaderTemplate(LeagueAdministratorStepModel.create(SettingsStepType.RankingLogo, ConfigurationStatusType.Completed, true), () => { this.bindHeaderClick() });\n this.settingsRenderer.renderRankingLogoTemplate(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, apiResult.content, true), () => {\n this.bindRankingLogoSlide(subLeague);\n })\n this.settingsRenderer.renderRankingPreview(new RankingSettingsViewModel(subLeague.leagueName, this.marketId, apiResult.content, true));\n $(\".subleague-ranking-logo-slide__ranking-preview .ranking-preview__ranking-logo-container\").addModifiers(\"active\");\n\n this.markCompletion(SettingsStepType.RankingLogo);\n\n Business.Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n\n $(\".subleague-ranking-logo-slide__upload-button\").show()\n $(\".subleague-ranking-logo-slide__crop-button\").hide()\n $(\".ranking-preview__ranking-logo\").show()\n\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n }).always(() => {\n cropButton.removeModifiers(\"disabled\");\n });\n })\n })\n }\n\n private getWelcomeMail = (subLeaguesModel: Business.MultiSubLeaguesModel, leagueId: number): void => {\n this.subLeagueRepository.getWelcomeEmail(leagueId).done(apiResult => {\n if (apiResult.isSuccess()) {\n const inviteMail = Business.InviteMail.fromJson(apiResult.content);\n\n this.settingsRenderer.renderMailingTextTemplate(new Business.WelcomeEmailModel(inviteMail.title, inviteMail.body, inviteMail.headerImage, inviteMail.headerLogo, false), subLeaguesModel.subLeagueIsAllowedToChangeEmail, () => {\n if (subLeaguesModel.subLeagueIsAllowedToChangeEmail) {\n CKEDITOR.replace(\"subleague-mailing-text-slide__mail-message\");\n CKEDITOR.instances[\"subleague-mailing-text-slide__mail-message\"].setData(inviteMail.body);\n CKEDITOR.instances[\"subleague-mailing-text-slide__mail-message\"].on(\"change\", () => {\n $(\".subleague-mailing-text-slide__button--save\").removeModifiers(\"disabled\");\n $(\".subleague-mailing-text-slide__button--example\").removeModifiers(\"disabled\");\n });\n $(\".subleague-mailing-text-slide__email-title-input\").on(\"change input\", () => {\n $(\".subleague-mailing-text-slide__button--save\").removeModifiers(\"disabled\");\n $(\".subleague-mailing-text-slide__button--example\").removeModifiers(\"disabled\");\n });\n\n this.bindSaveWelcomeEmail();\n this.bindSendExampleEmail();\n }\n });\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n });\n }\n\n private bindSaveWelcomeEmail = () => {\n $(\".subleague-mailing-text-slide__button--save\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n\n if (elem.hasModifier(\"disabled\"))\n return;\n\n const mailValidation = this.getMailValidation();\n if (!mailValidation.valid)\n return;\n\n elem.addModifiers(\"disabled\");\n this.subLeagueRepository.saveWelcomeEmail(this.selectedSubLeagueId, mailValidation.title, mailValidation.body).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.Saved\");\n\n this.markCompletion(SettingsStepType.MailingText);\n }\n else {\n elem.removeModifiers(\"disabled\");\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n elem.removeModifiers(\"disabled\");\n this.displayErrorMessage(err);\n });\n });\n }\n\n private bindSendExampleEmail = () => {\n $(\".subleague-mailing-text-slide__button--example\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n\n if (elem.hasModifier(\"disabled\"))\n return;\n\n const mailValidation = this.getMailValidation();\n if (!mailValidation.valid)\n return;\n\n elem.addModifiers(\"disabled\");\n this.subLeagueRepository.sendExampleWelcomeEmail(this.selectedSubLeagueId, mailValidation.title, mailValidation.body).done((apiResult) => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.ExampleSend\");\n }\n else {\n elem.removeModifiers(\"disabled\");\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n elem.removeModifiers(\"disabled\");\n this.displayErrorMessage(err);\n });\n });\n }\n\n private getMailValidation = (): IMailValidation => {\n let valid = true;\n\n const titleElement = $(\".subleague-mailing-text-slide__email-title-input\");\n const title = titleElement.val();\n\n const bodyElement = $(\".cke_editor_subleague-mailing-text-slide__mail-message\");\n const body = CKEDITOR.instances[\"subleague-mailing-text-slide__mail-message\"].getData();\n\n if (title === undefined || title === \"\") {\n valid = false;\n titleElement.addModifiers(\"invalid\");\n }\n\n if (body === undefined || body === \"\") {\n valid = false;\n bodyElement.addModifiers(\"invalid\");\n }\n return { valid, title, body };\n }\n\n private markCompletion = (stepType: SettingsStepType) => {\n if (this.leagueActionsEnabled) {\n const leagueActions = ActionsController.getInstance().getLeagueActionsByMarketAndSubLeague(this.marketId, this.selectedSubLeagueId);\n switch (stepType) {\n case SettingsStepType.Name:\n if (!leagueActions?.nameCompleted) {\n this.actionsRepository.markNameComplete(this.selectedSubLeagueId);\n ActionsController.getInstance().completeLeagueName(this.marketId, this.selectedSubLeagueId);\n }\n break;\n case SettingsStepType.RankingLogo:\n if (!leagueActions?.rankingLogoCompleted) {\n this.actionsRepository.markRankingLogoComplete(this.selectedSubLeagueId);\n ActionsController.getInstance().completeRankingLogoName(this.marketId, this.selectedSubLeagueId);\n }\n break;\n case SettingsStepType.MailingText:\n if (!leagueActions?.welcomeEmailCompleted) {\n this.actionsRepository.markWelcomeEmailComplete(this.selectedSubLeagueId);\n ActionsController.getInstance().completeWelcomeMail(this.marketId, this.selectedSubLeagueId);\n }\n break;\n }\n this.checkConfigurationCompletion();\n }\n else {\n this.checkConfigurationCompletionFromLocalStorage(stepType);\n }\n }\n\n private checkConfigurationCompletionFromLocalStorage = (stepType: SettingsStepType) => {\n let subLeagueCompletion = this.settingsCompletionModel.get(this.selectedSubLeagueId.toString());\n if (!subLeagueCompletion) {\n subLeagueCompletion = new LeagueActions(this.marketId, this.selectedSubLeagueId, false, false, false);\n }\n\n switch (stepType) {\n case SettingsStepType.Name:\n subLeagueCompletion.nameCompleted = true;\n break;\n case SettingsStepType.RankingLogo:\n subLeagueCompletion.rankingLogoCompleted = true;\n break;\n case SettingsStepType.MailingText:\n subLeagueCompletion.welcomeEmailCompleted = true;\n break;\n }\n\n this.settingsCompletionModel.put(this.selectedSubLeagueId.toString(), subLeagueCompletion);\n localStorage.setItem(Business.ManagementController.settingsCompletedLocalStorageKey, this.settingsCompletionModel.toString());\n\n if (!subLeagueCompletion.isComplete())\n return;\n\n this.showConfigurationCompletePopup();\n\n }\n\n private checkConfigurationCompletion = () => {\n const leagueActions = ActionsController.getInstance().getLeagueActionsByMarketAndSubLeague(this.marketId, this.selectedSubLeagueId);\n if (leagueActions == null || !leagueActions.isComplete())\n return;\n\n const key = `${SettingsController.settingsCompletedLocalStorageKey}.${this.selectedSubLeagueId}`;\n if (localStorage.getItem(key)) return;\n\n localStorage.setItem(key, \"true\");\n\n this.showConfigurationCompletePopup();\n }\n\n private showConfigurationCompletePopup = (): void => {\n const popup = $.scoritoPopup({\n elementId: \"section-completed-popup\",\n popupTitle: $(\".section-completed-popup-content\").data(\"title\"),\n contentHtml: $(\".section-completed-popup-content\").html(),\n widthInPixels: 591,\n follow: [false, false],\n });\n\n $(\".section-completed-popup__description\").text(TranslationData.get(\"Business.Management.SectionCompletedDescription\")?.format(TranslationData.get(\"Business.TabSettings\")?.toLowerCase(), TranslationData.get(\"Business.Management.Configuration.GoToInvite\")?.toLowerCase()));\n $(\".section-completed-popup__continue-button\").on(\"click\", () => {\n popup.close();\n $(`.league-administrator__tab[data-tab-id=${LeagueAdminTabType.Invite}]`).click();\n });\n }\n }\n}","module Business {\n export class StepModel {\n public cdnUrl: string;\n\n constructor(cdnUrl: string) {\n this.cdnUrl = cdnUrl;\n }\n\n }\n}","enum DateTimeFormatType {\n Short,\n Middle,\n Long,\n TimeOnly,\n TimeOnlyWithNotationShort,\n TimeOnlyWithNotationLong,\n ShortDateOnly,\n DateOnlyLong,\n DateOnly,\n DateOnlyWithYear,\n MiddleDateOnly,\n MiddleDateNumber,\n DayFullMonthYear\n}\n\nclass DateTimes {\n private readonly defaultFormat = \"DD-MM-YYYY HH:mm:ss\";\n\n public getValue(date: any, formatType?: DateTimeFormatType): string {\n const instance = moment.utc(date);\n\n instance.locale(uiCulture);\n\n return instance.format(this.getDateTimeFormat(formatType));\n }\n\n private getDateTimeFormat(formatType?: DateTimeFormatType) {\n switch (uiCulture) {\n case \"de-DE\":\n return this.getGermanFormat(formatType);\n default:\n return this.getDefaultFormat(formatType);\n }\n };\n\n private getDefaultFormat(formatType?: DateTimeFormatType) {\n switch (formatType) {\n case DateTimeFormatType.Short:\n return \"DD-MM-YY\";\n case DateTimeFormatType.Middle:\n return \"ddd DD MMM HH:mm u\";\n case DateTimeFormatType.Long:\n return \"dddd DD MMMM YYYY HH:mm uur\";\n case DateTimeFormatType.DateOnlyLong:\n return \"dddd DD MMMM\";\n case DateTimeFormatType.TimeOnly:\n return \"HH:mm\";\n case DateTimeFormatType.TimeOnlyWithNotationShort:\n return \"HH:mm u\";\n case DateTimeFormatType.TimeOnlyWithNotationLong:\n return \"HH:mm uur\";\n case DateTimeFormatType.ShortDateOnly:\n return \"D MMMM YYYY\";\n case DateTimeFormatType.DateOnly:\n return \"DD-MM\";\n case DateTimeFormatType.DateOnlyWithYear:\n return \"DD-MM-YYYY\";\n case DateTimeFormatType.MiddleDateOnly:\n return \"ddd DD MMM\";\n case DateTimeFormatType.MiddleDateNumber:\n return \"dd DD-MM\";\n case DateTimeFormatType.DayFullMonthYear:\n return \"DD MMMM YYYY\";\n default:\n return this.defaultFormat;\n };\n }\n\n private getGermanFormat(formatType?: DateTimeFormatType) {\n switch (formatType) {\n case DateTimeFormatType.Short:\n return \"DD.MM.YY\";\n case DateTimeFormatType.Middle:\n return \"ddd D. MMM HH:mm u\";\n case DateTimeFormatType.Long:\n return \"dddd, D. MMMM YYYY, HH:mm [Uhr]\";\n case DateTimeFormatType.TimeOnly:\n return \"HH:mm\";\n case DateTimeFormatType.TimeOnlyWithNotationShort:\n return \"HH:mm u\";\n case DateTimeFormatType.TimeOnlyWithNotationLong:\n return \"HH:mm [Uhr]\";\n case DateTimeFormatType.DateOnlyLong:\n return \"dddd D. MMMM\";\n case DateTimeFormatType.ShortDateOnly:\n return \"D. MMMM YYYY\";\n case DateTimeFormatType.MiddleDateOnly:\n return \"ddd D. MMM\";\n default:\n return this.getDefaultFormat(formatType);\n }\n }\n}\n\nvar DateTimeData = new DateTimes();","enum Culture {\n Dutch = \"nl-nl\",\n Belgium = \"nl-be\",\n France = \"fr\",\n Spanish = \"es-es\",\n German = \"de\",\n English = \"en-gb\",\n Unknown = \"na-NA\"\n}\n\nconst getCulture = (): Culture => {\n switch (uiCulture) {\n default: return Culture.Unknown;\n case \"nl-NL\": return Culture.Dutch;\n case \"nl-BE\": return Culture.Belgium;\n case \"fr-FR\": return Culture.France;\n case \"es-ES\": return Culture.Spanish;\n case \"de-DE\": return Culture.German;\n case \"en-GB\": return Culture.English;\n }\n};\n\nnumeral.locale(getCulture().toString());\n\nclass Numbers {\n private readonly defaultCurrencyFormat = \"\";\n\n public formatCurrency(value: any, format?: string): string {\n return numeral(value).format(format ?? this.defaultCurrencyFormat);\n }\n}\n\nNumeralData = new Numbers();","/// \n\nclass ApiResult {\n public readonly resultCode: ApiResultCode;\n public readonly message: string;\n public readonly content: any;\n\n private constructor(resultCode: ApiResultCode, message: string, content: any) {\n this.resultCode = resultCode;\n this.message = message;\n this.content = content;\n }\n\n public isSuccess(): boolean {\n return this.resultCode === 0;\n }\n\n public static fromJson(data: any) {\n return new ApiResult(data.ResultCode, data.ErrorMessage, data.Content);\n }\n}","/// \n\nclass Dictionary implements IDictionary {\n\n private internalDict: { [key in K]?: V };\n\n constructor() {\n this.internalDict = {};\n }\n\n public getKeys() {\n let keys: K[] = [];\n for (let key in this.internalDict) {\n keys.push(key);\n }\n\n return keys;\n }\n\n // Type predicate to ensure v exists\n private isNotNull(v: V | undefined): v is V {\n return v != null && typeof v !== \"undefined\";\n }\n\n public getValues() {\n let vals: V[] = [];\n\n for (let key in this.internalDict) {\n let v = this.internalDict[key];\n if (this.isNotNull(v)) {\n vals.push(v);\n }\n }\n\n return vals;\n }\n\n public get(key: K) {\n let v = this.internalDict[key];\n return this.isNotNull(v)\n ? v\n : null;\n }\n\n public put(key: K, val: V): void {\n this.internalDict[key] = val;\n }\n\n public toString = (): string => {\n return JSON.stringify(this.internalDict);\n }\n}","class Authentication {\n\n public static isLoggedIn() {\n return apiToken != null && apiToken !== \"\";\n }\n\n public static getUserId(): number {\n return parseInt(API.parseJwt(API._token)?.sub ?? 0);\n }\n}","class BaseList {\n public list: Array;\n\n constructor(list?: Array) {\n this.list = list ? list : new Array();\n }\n\n public add(t: T): void {\n this.list.push(t);\n }\n\n public count(): number {\n return this.list.length;\n }\n\n public any = (): boolean => {\n return this.count() > 0;\n }\n\n public multiple = (): boolean => {\n return this.count() > 1;\n }\n\n public first(): T {\n return _.first(this.list);\n }\n\n public last(): T {\n return _.last(this.list);\n }\n\n public map(callback: (value: T, index: number) => U): U[] {\n return this.list.map((value, index) => {\n return callback(value, index);\n });\n }\n\n public each(callback: (value: T, index: number) => U): void {\n _.each(this.list, (value, index) => {\n callback(value, index);\n });\n }\n}","class LocalStorageProxy {\n private static HasLocalStorageSupport(): boolean {\n if (typeof localStorage !== 'undefined') {\n try {\n localStorage.setItem('feature_test', 'yes');\n if (localStorage.getItem('feature_test') === 'yes') {\n localStorage.removeItem('feature_test');\n return true;\n } else {\n return false;\n }\n } catch (e) {\n return false;\n }\n } else {\n return false;\n }\n }\n\n public static SetItem(key: string, value: string): void {\n if (LocalStorageProxy.HasLocalStorageSupport()) {\n localStorage.setItem(key, value);\n }\n else {\n LocalStorageProxy.SetCookie(key, value, 365);\n }\n }\n\n public static GetItem(key: string): string {\n if (LocalStorageProxy.HasLocalStorageSupport()) {\n return localStorage.getItem(key);\n }\n else {\n return LocalStorageProxy.GetCookie(key);\n }\n }\n\n public static DeleteItem(key: string): void {\n if (LocalStorageProxy.HasLocalStorageSupport()) {\n return localStorage.removeItem(key);\n }\n else {\n return LocalStorageProxy.SetCookie(key,\"\",-1);\n }\n }\n\n private static GetCookie(key: string): string{\n var nameEQ = key + \"=\";\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0) {\n var value = c.substring(nameEQ.length, c.length);\n return value;\n }\n }\n return null;\n }\n\n private static SetCookie(key: string, value: string, days: number): void{\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n var expiration: string = \"; expires=\" + date.toUTCString();\n var cookie = key + \"=\" + value + expiration + \"; path=/\";\n document.cookie = cookie;\n }\n}","\n\nmodule League {\n\n export class Repository {\n private readonly apiSettings: ApiSettings;\n\n public constructor(apiSettings: ApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public checkPoolName = (regionId: number, marketId: number, name: string): JQueryPromise => {\n const deferred = $.Deferred();\n\n const data = JSON.stringify({ SubLeagueName: name });\n\n API.ajax({\n url: `${this.apiSettings.checkLeagueName}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n },\n data\n })\n .done((data: any) => deferred.resolve(data.Content))\n .fail((data: any) => deferred.reject(data));\n\n return deferred.promise();\n };\n\n public sendPrivateMessage = (subLeagueId: number, recipientUserId: number, subject: string, message: string, isFromBusiness: boolean = false): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.sendPrivateMessageUrl}/${subLeagueId}/${recipientUserId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n subject,\n message,\n isFromBusiness\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public removeParticipant = (subLeagueId: number, participantUserId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.deleteParticipantUrl}/${subLeagueId}/${participantUserId}`,\n type: \"DELETE\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n }\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n }\n}","/// \n\nclass API {\n public static _token: string;\n\n static ajax(settings: JQueryAjaxSettings): any {\n if (!this._token) {\n NotificationBar.Display(TranslationData['Identity.API.NoAccessToken'])\n }\n settings.headers[\"Authorization\"] = \"Bearer \" + this._token\n if (window.navigator.userAgent.toLowerCase().indexOf('trident/') != -1) {\n settings.cache = false;\n settings.dataType = 'json';\n }\n\n return $.ajax(settings).fail(err => {\n if (err?.status === 401) {\n NotificationBar.Display(TranslationData['Identity.API.NoAccessToken']);\n }\n });\n }\n\n static InitializeAuthorization(token: string, serverTimestamp: number, version: string) {\n if (this.ClientTimeIsValid(serverTimestamp)) {\n this._token = token;\n }\n else {\n NotificationBar.Display(TranslationData['Identity.API.ClientTimeOffset']);\n }\n }\n\n private static ClientTimeIsValid(serverTimestamp: number): boolean {\n\n var maxDiff = 3600 * 6; // UTC cannot be more off sync than 6 hours\n var clientUtc = Math.floor((new Date().getTime()) / 1000);\n var diff = Math.abs(serverTimestamp - clientUtc);\n\n return diff < maxDiff;\n }\n\n static parseJwt(token: string) {\n if (!token)\n return null;\n\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n\n return JSON.parse(jsonPayload);\n };\n}","/// \n/// \n\nmodule Platform {\n\n export class Countries extends BaseList {\n\n public getByCode = (code: string): Country => {\n return _.find(this.list, c => c.code?.toLowerCase() === code?.toLowerCase());\n }\n\n public getByCallingCode = (countryCallingCode: string): Country => {\n return _.find(this.list, c => c.countryCallingCode?.toLowerCase() === countryCallingCode?.toLowerCase());\n }\n\n public getById = (id: number): Country => {\n return _.find(this.list, c => c.id === id);\n }\n\n public getCountryCallingCodes = (): Array => {\n return this.list.map(c => c.countryCallingCode);\n }\n\n public static fromJson(data: any): Countries {\n const list = new Array();\n _.each(data, (country: any) => {\n list.push(Country.fromJson(country));\n });\n return new this(list);\n }\n\n public sortByName = (): Countries => {\n const list = _(this.list.sort((a, b) => a.name.localeCompare(b.name)))\n .chain()\n .sortBy((country: Country) => country.sortOrder)\n .sortBy((country: Country) => country.sortOrder != null)\n .value();\n\n return new Countries(list);\n }\n\n public sortByCallingCodes = (): Countries => {\n const list = _(this.list).chain()\n .sortBy((country: Country) => +country.countryCallingCode)\n .sortBy((country: Country) => country.sortOrder)\n .sortBy((country: Country) => country.sortOrder != null)\n .value();\n\n return new Countries(list);\n }\n\n\n }\n} ","module Platform {\n export class Country {\n public id: number;\n public name: string;\n public code: string;\n public regionId: number;\n public sortOrder: number;\n public countryCallingCode: string;\n\n constructor(id: number, name: string, code: string, regionId: number, sortOrder: number, countryCallingCode: string) {\n this.id = id;\n this.name = name;\n this.code = code;\n this.regionId = regionId;\n this.sortOrder = sortOrder;\n this.countryCallingCode = countryCallingCode;\n }\n\n public isNetherlands = (): boolean => {\n return Country.isNetherlands(this.code);\n }\n\n public static isNetherlands = (code: string) => {\n return code === \"NLD\";\n }\n\n public static fromJson(data: any): Country {\n return new this(data.Id, data.Name, data.Code, data.RegionId, data.Order, data.CountryCallingCode);\n }\n }\n} ","/// \n\nmodule Platform {\n export class GameInfo {\n public onlineDate: string;\n public signUpDeadline: string;\n public gameId: number;\n public title: string;\n public description: string;\n public sportType: SportType;\n public eventName: string;\n public marketName: string;\n public gameName: string;\n\n constructor(onlineDate: string, signUpDeadline: string, gameId: number, title: string, description: string, sportType: SportType, eventName: string, marketName: string, gameName: string) {\n this.onlineDate = onlineDate;\n this.signUpDeadline = signUpDeadline;\n this.gameId = gameId;\n this.title = title;\n this.description = description;\n this.sportType = sportType;\n this.eventName = eventName;\n this.marketName = marketName;\n this.gameName = gameName;\n }\n\n public isOnline = (): boolean => {\n return moment.utc().isAfter(moment.utc(this.onlineDate));\n }\n\n public daysBeforeOnlineDate = (): number => {\n const online = moment.utc(this.onlineDate).hour(0).minute(0).second(0).millisecond(0);\n const momentNow = moment.utc().hour(0).minute(0).second(0).millisecond(0);\n return Math.abs(momentNow.diff(online, 'days'));\n }\n\n public static fromJson(data: any): GameInfo {\n return new GameInfo(data.OnlineDate, data.SignUpDeadline, data.GameId, data.Title, data.Description, data.SportType, data.EventName, data.MarketName, data.GameName);\n }\n }\n}","module Platform {\n type MarketPredictionItem = {\n name: string;\n order: number;\n };\n\n export interface Market {\n id: number;\n gameId: number;\n marketPredictionItems: MarketPredictionItem[];\n }\n\n export const marketFromJson = (data: any): Market => ({\n id: data.Id,\n gameId: data.GameId,\n marketPredictionItems: data.MarketPredictionItems.map(i => ({\n name: i.Name,\n order: i.Order,\n })),\n });\n} ","/// \n\nmodule Platform {\n export class MarketRound {\n public deadlineDeficitInMilliseconds: number;\n public id: number;\n public order: number;\n public name: string;\n public deadline: FormattedDateTime;\n\n constructor(deadlineDeficitInMilliseconds: number, id: number, order: number,\n name: string, deadline: FormattedDateTime) {\n this.deadlineDeficitInMilliseconds = deadlineDeficitInMilliseconds;\n this.id = id;\n this.order = order;\n this.name = name;\n this.deadline = deadline;\n }\n\n public static fromJson(data: any): MarketRound {\n const formattedDateTime = FormattedDateTime.FromUtcJson(data.Deadline);\n return new MarketRound(data.DeadlineDeficitInMilliseconds, data.Id, data.Order, data.Name, formattedDateTime);\n }\n }\n}","module Platform {\n export class MarketRounds {\n public list: Array;\n\n constructor(list: Array) {\n this.list = list;\n }\n\n public static fromJson(data: any): MarketRounds {\n const list = new Array();\n _.each(data, (marketRound: any) => {\n list.push(MarketRound.fromJson(marketRound));\n });\n\n return new this(list);\n }\n\n public getById(marketRoundId: number): MarketRound {\n return _.find(this.list, (marketRound: MarketRound) => {\n return marketRound.id === marketRoundId;\n });\n }\n\n }\n}","/// \n/// \n/// \n/// \n/// \n\nmodule Platform {\n\n export class Repository {\n private readonly apiSettings: ApiSettings;\n private readonly marketId: number;\n private countries: Countries;\n private readonly gameInfoCache: Dictionary = new Dictionary();\n\n public constructor(apiSettings: ApiSettings, marketId: number) {\n this.apiSettings = apiSettings;\n this.marketId = marketId;\n }\n\n public activeAndUpcoming = (regionId: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.activeAndUpcoming}/${regionId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n deferred.resolve(data.Content.map(i => Platform.marketFromJson(i)));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred;\n };\n\n public getCountries(): JQueryPromise {\n const deferred = $.Deferred();\n if (this.countries != null) {\n deferred.resolve(this.countries);\n }\n else {\n $.ajax({\n url: `${this.apiSettings.getAllCountriesUrl}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n this.countries = Countries.fromJson(data.Content);\n this.countries = this.countries.sortByCallingCodes();\n deferred.resolve(this.countries);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n }\n return deferred.promise();\n }\n\n public sendBusinessMessageAnonymous = (data: FormData): JQueryPromise => {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this.apiSettings.sendBusinessMessageAnonymousUrl}`,\n type: \"POST\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n },\n processData: false,\n contentType: false,\n data: data\n }).done((data: any) => {\n deferred.resolve(data);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public getGameInfo = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n const cacheKey = `gameInfo.${marketId}`;\n const gameInfo = this.gameInfoCache.get(cacheKey);\n\n if (gameInfo) {\n return deferred.resolve(gameInfo);\n }\n\n $.ajax({\n url: `${this.apiSettings.gameInfoUrl}/${marketId}/${uiCulture}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n },\n }).done((data: any) => {\n const gameInfo = GameInfo.fromJson(data.Content);\n this.gameInfoCache.put(cacheKey, gameInfo);\n deferred.resolve(gameInfo);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","class Translations {\n\n public get = (key: string): string => {\n if (key == null)\n return \"\";\n\n return this[key] ?? key;\n }\n}","module Shared {\n\n export class TermsAndConditionsController {\n\n private url: string;\n private culture: string;\n\n private static instance: TermsAndConditionsController;\n\n public static GetInstance(): TermsAndConditionsController{\n return this.instance;\n }\n\n constructor(url: string, culture: string){\n TermsAndConditionsController.instance = this;\n this.url = url;\n this.culture = culture;\n\n if (!jQuery.isReady) {\n $(document).on(\"ready\", this.onDomLoaded.bind(this));\n }\n else {\n this.onDomLoaded();\n }\n\n }\n\n private onDomLoaded(): void{\n \n }\n\n public GetTermsAndConditionsContent(): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: this.url + \"?culture=\" + this.culture,\n type: 'GET',\n dataType: \"json\",\n success: (data) => { deferred.resolve(data); },\n error: (data) => { deferred.reject(data);}\n });\n return deferred.promise();\n }\n }\n}","class TranslationStorageData {\n public readonly dateModified: Date;\n public readonly translationData: Object;\n\n constructor(dateModified: Date, translationData: Object) {\n this.dateModified = dateModified;\n this.translationData = translationData;\n }\n\n public static fromStorageData(data: string): TranslationStorageData {\n const json = JSON.parse(data);\n return new this(json.dateModified, json.translationData);\n }\n}","/// \n/// \n\nvar TranslationData: Translations = new Translations();\n\nclass TranslationController {\n private constructor() { }\n\n private static readonly translationsKey = `translations`;\n private static readonly translationStorageKey = `${TranslationController.translationsKey}:${uiCulture}`;\n\n public static initialize(dateModified: Date, translationsUrl: string): void {\n const data = LocalStorageProxy.GetItem(this.translationStorageKey);\n\n if (!data) {\n TranslationController.loadTranslations(dateModified, translationsUrl);\n }\n else {\n const storageData = TranslationStorageData.fromStorageData(data);\n if (storageData.dateModified < dateModified) {\n TranslationController.loadTranslations(dateModified, translationsUrl);\n }\n else {\n _.mapObject(storageData.translationData, (value: string, key: string) => {\n TranslationData[key] = value;\n });\n }\n }\n }\n\n private static loadTranslations(dateModified: Date, url: string): void {\n $.ajax({\n url: `${url}/labels/frontend/${uiCulture}.json`,\n async: false\n }).done((json: string) => {\n const newData = new TranslationStorageData(dateModified, json);\n\n Object.keys(localStorage).forEach(objKey => {\n if (objKey.indexOf(TranslationController.translationsKey, 0) > -1) {\n LocalStorageProxy.DeleteItem(objKey);\n }\n });\n\n LocalStorageProxy.SetItem(this.translationStorageKey, JSON.stringify(newData));\n _.mapObject(newData.translationData, (value: string, key: string) => {\n TranslationData[key] = value;\n });\n }).fail(err => {\n console.error(`Failed to load translations: ${err}`);\n });\n }\n}","interface IRegion {\n regionId: number;\n description: string;\n culture: string;\n}\n\nconst getRegionById = (regions: IRegion[], regionId: number) => _.find(regions, r => r.regionId === regionId);","module ApiSettings {\n export class SalesApiSettings\n {\n public gameTabUrl: string;\n public dealsForMarketUrl: string;\n public discountForMarketUrl: string;\n public combiDealsUrl: string;\n public packageOptionUrl: string;\n public packageOptionLayoverUrl: string;\n public calculateDealUrl: string;\n public calculateOrderUrl: string;\n public couponUrl: string;\n public faqUrl: string;\n public faqCategoryUrl: string;\n public footerCarouselImagesUrl: string;\n public salesAccountDataUrl: string;\n public paymentUrl: string;\n public createSessionUrl: string;\n public createSalesAccountDataUrl: string;\n public createBusinessLinkUrl: string;\n public paymentMethodsUrl: string;\n public clientMarketDataUrl: string;\n public clientMarketSettingsUrl: string;\n public saveClientAdministratorUrl: string;\n public deleteClientAdministratorUrl: string;\n public saveClientLogoUrl: string;\n public saveLeagueNameUrl: string;\n public saveClientHeaderColorUrl: string;\n public saveClientHeaderIconUrl: string;\n public saveRankingLogoUrl: string;\n public saveSubLeagueRankingLogoUrl: string;\n public saveHasOpenedAdminsUrl: string;\n public upgradeDealsUrl: string;\n public packageUpgradesUrl: string;\n public saveLandingPageLogoUrl: string;\n public saveOptinRequiredUrl: string;\n public calculateUpgradeUrl: string;\n public saveLogoTakeOverUrl: string;\n public saveBackgroundColorUrl: string;\n public saveHeaderIconColorUrl: string;\n public saveWelcomeEmailUrl: string;\n public sendExampleEmailUrl: string;\n public sendExampleSubLeagueEmailUrl: string;\n public hasSeenEmailUrl: string;\n public subLeagueWelcomeEmailUrl: string;\n public inviteMailContentUrl: string;\n public deleteArticleUrl: string;\n public companyDetailsUrl: string;\n public hasChangedSubLeagueSettingUrl: string;\n public articlesUrl: string;\n public articleHeaderImageUrl: string;\n public purchasesUrl: string;\n public purchaseInvoiceUrl: string;\n public purchaseDetailUrl: string;\n public participantsUrl: string;\n public subLeaguesUrl: string;\n public administratorsUrl: string;\n public deleteAdminUrl: string;\n public deleteInvitationUrl: string;\n public inviteAdminUrl: string;\n public validateInviteUrl: string;\n public acceptInviteUrl: string;\n public declineInviteUrl: string;\n public subLeagueAdministratorsUrl: string;\n public deleteSubLeagueAdminUrl: string;\n public sendReminderUrl: string;\n public subLeagueInviteUrl: string;\n public frontendOrderingAndFilteringThreshold: number;\n public updateSubLeagueNameUrl: string;\n public getSubLeaguesUrl: string;\n public getSubLeaguesAnonymousUrl: string;\n public getSubLeagueAdminsUrl: string;\n public nameLeagueActionsUrl: string;\n public rankingLogoLeagueActionsUrl: string;\n public welcomeEmailLeagueActionsUrl: string;\n public leagueActionsCollectionByMarketUrl: string;\n public getInviteMailUrl: string;\n public userPredictionStatusUrl: string;\n public requestOptInUrl: string;\n public advertisementUrl: string;\n public saveSalesPackageImageUrl: string;\n public promotionalPackageUrl: string;\n public advertisementImageUrl: string;\n public interstitialUrl: string;\n public interstitialImageUrl: string;\n public rankingRequestUrl: string;\n public sendSubLeagueMessageUrl: string;\n public getMarketSalesPackagesByRegionUrl: string;\n public getMarketSalesPackagesByCountryUrl: string;\n public brandingPackageUrl: string;\n public brochureUrl: string;\n public steamReferralUrl: string;\n\n constructor(apiSettings: any) {\n this.gameTabUrl = apiSettings.GameTabUrl;\n this.dealsForMarketUrl = apiSettings.DealsForMarketUrl;\n this.discountForMarketUrl = apiSettings.DiscountForMarketUrl;\n this.combiDealsUrl = apiSettings.CombiDealsUrl;\n this.packageOptionUrl = apiSettings.PackageOptionUrl;\n this.packageOptionLayoverUrl = apiSettings.PackageOptionLayoverUrl;\n this.calculateDealUrl = apiSettings.CalculateDealUrl;\n this.calculateOrderUrl = apiSettings.CalculateOrderUrl;\n this.couponUrl = apiSettings.CouponUrl;\n this.faqUrl = apiSettings.FaqUrl;\n this.faqCategoryUrl = apiSettings.FaqCategoryUrl;\n this.footerCarouselImagesUrl = apiSettings.FooterCarouselImageUrl;\n this.salesAccountDataUrl = apiSettings.SalesAccountDataUrl;\n this.paymentUrl = apiSettings.PaymentUrl;\n this.createSessionUrl = apiSettings.CreateSessionUrl;\n this.createSalesAccountDataUrl = apiSettings.CreateSalesAccountDataUrl;\n this.createBusinessLinkUrl = apiSettings.CreateBusinessLinkUrl;\n this.paymentMethodsUrl = apiSettings.PaymentMethodsUrl;\n this.clientMarketDataUrl = apiSettings.ClientMarketDataUrl;\n this.clientMarketSettingsUrl = apiSettings.ClientMarketSettingsUrl;\n this.saveClientAdministratorUrl = apiSettings.SaveClientAdministratorUrl;\n this.deleteClientAdministratorUrl = apiSettings.DeleteClientAdministratorUrl;\n this.saveClientLogoUrl = apiSettings.SaveClientLogoUrl;\n this.saveLeagueNameUrl = apiSettings.SaveLeagueNameUrl;\n this.saveClientHeaderColorUrl = apiSettings.SaveClientHeaderColorUrl;\n this.saveClientHeaderIconUrl = apiSettings.SaveClientHeaderIconUrl;\n this.upgradeDealsUrl = apiSettings.UpgradeDealsUrl;\n this.packageUpgradesUrl = apiSettings.PackageUpgradesUrl;\n this.saveLandingPageLogoUrl = apiSettings.SaveLandingPageLogoUrl;\n this.saveOptinRequiredUrl = apiSettings.SaveOptinRequiredUrl;\n this.saveRankingLogoUrl = apiSettings.SaveRankingLogoUrl;\n this.saveSubLeagueRankingLogoUrl = apiSettings.SaveSubLeagueRankingLogoUrl;\n this.saveHasOpenedAdminsUrl = apiSettings.SaveHasOpenedAdminsUrl;\n this.calculateUpgradeUrl = apiSettings.CalculateUpgradeUrl;\n this.saveLogoTakeOverUrl = apiSettings.SaveLogoTakeOverUrl;\n this.saveHeaderIconColorUrl = apiSettings.SaveHeaderIconColorUrl;\n this.saveWelcomeEmailUrl = apiSettings.SaveWelcomeEmailUrl;\n this.sendExampleEmailUrl = apiSettings.SendExampleEmailUrl;\n this.sendExampleSubLeagueEmailUrl = apiSettings.SendExampleSubLeagueEmailUrl;\n this.hasSeenEmailUrl = apiSettings.HasSeenEmailUrl;\n this.subLeagueWelcomeEmailUrl = apiSettings.SubLeagueWelcomeEmailUrl;\n this.inviteMailContentUrl = apiSettings.InviteMailContentUrl;\n this.deleteArticleUrl = apiSettings.DeleteArticleUrl;\n this.saveBackgroundColorUrl = apiSettings.SaveBackgroundColorUrl;\n this.companyDetailsUrl = apiSettings.CompanyDetailsUrl;\n this.hasChangedSubLeagueSettingUrl = apiSettings.HasChangedSubLeagueSettingUrl;\n this.articlesUrl = apiSettings.ArticlesUrl;\n this.articleHeaderImageUrl = apiSettings.ArticleHeaderImageUrl;\n this.purchasesUrl = apiSettings.PurchasesUrl;\n this.purchaseInvoiceUrl = apiSettings.PurchaseInvoiceUrl;\n this.purchaseDetailUrl = apiSettings.PurchaseDetailUrl;\n this.participantsUrl = apiSettings.ParticipantsUrl;\n this.subLeaguesUrl = apiSettings.SubLeaguesUrl;\n this.administratorsUrl = apiSettings.AdministratorsUrl;\n this.deleteAdminUrl = apiSettings.DeleteAdminUrl;\n this.deleteInvitationUrl = apiSettings.DeleteInvitationUrl;\n this.inviteAdminUrl = apiSettings.InviteAdminUrl;\n this.validateInviteUrl = apiSettings.ValidateInviteUrl;\n this.acceptInviteUrl = apiSettings.AcceptInviteUrl;\n this.declineInviteUrl = apiSettings.DeclineInviteUrl;\n this.subLeagueInviteUrl = apiSettings.SubLeagueInviteUrl;\n this.updateSubLeagueNameUrl = apiSettings.UpdateSubLeagueNameUrl;\n this.subLeagueAdministratorsUrl = apiSettings.SubLeagueAdministratorsUrl;\n this.deleteSubLeagueAdminUrl = apiSettings.DeleteSubLeagueAdminUrl;\n this.sendReminderUrl = apiSettings.SendReminderUrl;\n this.frontendOrderingAndFilteringThreshold = apiSettings.FrontendOrderingAndFilteringThreshold;\n this.getSubLeaguesUrl = apiSettings.GetSubLeaguesUrl;\n this.getSubLeaguesAnonymousUrl = apiSettings.GetSubLeaguesAnonymousUrl;\n this.getSubLeagueAdminsUrl = apiSettings.GetSubLeagueAdminsUrl;\n this.nameLeagueActionsUrl = apiSettings.NameLeagueActionsUrl;\n this.rankingLogoLeagueActionsUrl = apiSettings.RankingLogoLeagueActionsUrl;\n this.welcomeEmailLeagueActionsUrl = apiSettings.WelcomeEmailLeagueActionsUrl;\n this.leagueActionsCollectionByMarketUrl = apiSettings.LeagueActionsCollectionByMarketUrl;\n this.getInviteMailUrl = apiSettings.GetInviteMailContentUrl;\n this.userPredictionStatusUrl = apiSettings.UserPredictionStatusUrl;\n this.requestOptInUrl = apiSettings.RequestOptInUrl;\n this.advertisementUrl = apiSettings.AdvertisementUrl;\n this.advertisementImageUrl = apiSettings.AdvertisementImageUrl;\n this.interstitialUrl = apiSettings.InterstitialUrl;\n this.interstitialImageUrl = apiSettings.InterstitialImageUrl;\n this.sendSubLeagueMessageUrl = apiSettings.SendSubLeagueMessageUrl;\n this.rankingRequestUrl = apiSettings.RankingRequestUrl;\n this.getMarketSalesPackagesByRegionUrl = apiSettings.GetMarketSalesPackagesByRegionUrl;\n this.getMarketSalesPackagesByCountryUrl = apiSettings.GetMarketSalesPackagesByCountryUrl;\n this.saveSalesPackageImageUrl = apiSettings.SaveSalesPackageImageUrl;\n this.promotionalPackageUrl = apiSettings.PromotionalPackageUrl;\n this.brandingPackageUrl = apiSettings.BrandingPackageUrl;\n this.brochureUrl = apiSettings.BrochureUrl;\n this.steamReferralUrl = apiSettings.SteamReferralUrl;\n }\n }\n}\n","module ApiSettings {\n\n export class UserApiSettings {\n public readonly requestEmailChangeUrl: string;\n public readonly confirmEmailChangeUrl: string;\n public readonly passwordChangeUrl: string;\n public readonly checkUserEmailUrl: string;\n public readonly checkUsernameUrl: string;\n public readonly lostPasswordUrl: string;\n public readonly genderUrl: string;\n public readonly nameUrl: string;\n public readonly phoneNumberUrl: string;\n public readonly birthDateUrl: string;\n public readonly profileDetailsUrl: string;\n\n constructor(apiSettings: any) {\n this.requestEmailChangeUrl = apiSettings.RequestEmailChangeUrl;\n this.confirmEmailChangeUrl = apiSettings.ConfirmEmailChangeUrl;\n this.passwordChangeUrl = apiSettings.PasswordChangeUrl;\n this.checkUserEmailUrl = apiSettings.CheckUserEmailUrl;\n this.checkUsernameUrl = apiSettings.CheckUsernameUrl;\n this.lostPasswordUrl = apiSettings.LostPasswordUrl;\n this.genderUrl = apiSettings.GenderUrl;\n this.nameUrl = apiSettings.NameUrl;\n this.phoneNumberUrl = apiSettings.PhoneNumberUrl;\n this.birthDateUrl = apiSettings.BirthDateUrl;\n this.profileDetailsUrl = apiSettings.ProfileDetailsUrl;\n }\n }\n} ","module Platform {\n export class ApiSettings {\n public readonly activeAndUpcoming: string;\n public readonly getAllCountriesUrl: string;\n public readonly sendBusinessMessageAnonymousUrl: string;\n public readonly gameInfoUrl: string;\n public readonly sendPrivateMessageUrl: string;\n public readonly deleteParticipantUrl: string;\n public readonly checkLeagueName: string;\n public readonly baseUrl: string;\n \n constructor(apiSettings: any) {\n this.activeAndUpcoming = apiSettings.ActiveAndUpcomingForRegionUrl;\n this.getAllCountriesUrl = apiSettings.GetAllCountriesUrl;\n this.sendBusinessMessageAnonymousUrl = apiSettings.SendBusinessMessageAnonymousUrl;\n this.gameInfoUrl = apiSettings.GameInfoUrl;\n this.sendPrivateMessageUrl = apiSettings.SendPrivateMessageUrl;\n this.deleteParticipantUrl = apiSettings.DeleteParticipantUrl;\n this.checkLeagueName = apiSettings.CheckLeagueName;\n this.baseUrl = apiSettings.BaseUrl;\n }\n }\n}","/// \n/// \n/// \n/// \n/// \n\nmodule Business {\n export class UserRepository {\n private readonly userApiSettings: ApiSettings.UserApiSettings;\n\n constructor(userApiSettings: ApiSettings.UserApiSettings) {\n this.userApiSettings = userApiSettings;\n }\n\n public checkUsername = (username: string): JQueryPromise => {\n const deferred = $.Deferred();\n $.ajax({\n url: this.userApiSettings.checkUsernameUrl,\n type: \"POST\",\n dataType: \"json\",\n data: JSON.stringify({ username }),\n accepts: \"application/json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result = ApiResult.fromJson(data);\n deferred.resolve(result.isSuccess());\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public checkEmail = (email: string): JQueryPromise => {\n const deferred = $.Deferred();\n $.ajax({\n url: this.userApiSettings.checkUserEmailUrl,\n type: \"POST\",\n dataType: \"json\",\n data: JSON.stringify({ email, currentLanguage: uiCulture }),\n accepts: \"application/json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result = ApiResult.fromJson(data);\n deferred.resolve(result.isSuccess());\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public sendPasswordResetMail(email: string): JQueryPromise {\n const deferred = $.Deferred();\n\n $.ajax({\n url: this.userApiSettings.lostPasswordUrl,\n type: \"PUT\",\n processData: true,\n dataType: \"json\",\n data: JSON.stringify({ email }),\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done(() => {\n deferred.resolve(true);\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public setGender(gender: Gender): JQueryPromise {\n const deferred = $.Deferred();\n\n API.ajax({\n url: this.userApiSettings.genderUrl,\n type: \"POST\",\n dataType: \"json\",\n data: JSON.stringify({ gender }),\n accepts: \"application/json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done(data => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public setName(firstName: string, lastName: string): JQueryPromise {\n const deferred = $.Deferred();\n\n API.ajax({\n url: this.userApiSettings.nameUrl,\n type: \"POST\",\n dataType: \"json\",\n data: JSON.stringify({ firstName, lastName }),\n accepts: \"application/json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done(data => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public setPhoneNumber(countryCallingCode: string, phoneNumber: string): JQueryPromise {\n const deferred = $.Deferred();\n\n API.ajax({\n url: this.userApiSettings.phoneNumberUrl,\n type: \"POST\",\n dataType: \"json\",\n data: JSON.stringify({ phoneNumber: `${countryCallingCode} ${phoneNumber}` }),\n accepts: \"application/json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done(data => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public setBirthDate(birthDate: Date): JQueryPromise {\n const deferred = $.Deferred();\n\n API.ajax({\n url: this.userApiSettings.birthDateUrl,\n type: \"POST\",\n dataType: \"json\",\n data: JSON.stringify({ birthdate: birthDate }),\n accepts: \"application/json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done(data => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public getProfileDetails = (): JQueryPromise =>{\n const deferred = $.Deferred();\n\n API.ajax({\n url: this.userApiSettings.profileDetailsUrl,\n type: \"GET\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done(data => {\n deferred.resolve(Platform.Profile.fromJson(data.Content));\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","module Business {\n export enum AdyenAuthResult {\n Authorised = 0,\n Refused = 1,\n Cancelled = 2,\n Pending = 3,\n Error = 4,\n None = 5\n }\n}","module Business {\n export enum CartRenderType {\n All = 0,\n OnlySideView = 1\n }\n}","module Business {\n export enum ClientAdminTabType {\n Upgrade = 0,\n Configuration = 1,\n Invite = 2,\n SubLeagues = 3,\n Participants = 4,\n Marketing = 5,\n Help = 6\n }\n}","module Business {\n export enum ConfigurationStatusType {\n Completed = 0,\n InComplete = 1,\n UnAvailable = 2\n }\n}","module Business {\n export enum ConfigurationStepType {\n Administrators = 0,\n MainLeagueName = 1,\n LogoTakeOver = 2,\n LandingsPage = 3,\n RankingLogo = 4,\n MailingText = 5,\n SubLeagues = 6,\n PromotionalPackage = 7,\n BrandingPackage = 8\n }\n}","module Business {\n export enum DiscountTypes {\n EarlyBird = 1,\n CombiDeal = 2\n }\n}","module Business {\n export enum FaqType {\n Order = 1,\n BusinessClientAdmin = 2,\n BusinessSubleague = 3,\n BusinessClientAdminAndSubleague = 4\n }\n}","module Business {\n export enum GeneralTabType {\n CompanyDetails = 0,\n Purchases = 1,\n Administrator = 2\n }\n}","module Business {\n export enum HeaderIconColorType {\n None = 0,\n White = 1,\n Black = 2\n }\n}","module Business {\n export enum LeagueAdminTabType {\n Settings = 0,\n Invite = 1,\n Participants = 2,\n Articles = 3,\n Help = 4\n }\n}","module Business {\n export enum ManagementInvitationStatus {\n Pending = 1,\n Accepted = 2,\n Declined = 3,\n Expired = 4\n }\n} ","module Business {\n export enum MarketingTabType {\n Articles = 0,\n Advertisements = 1,\n Interstitials = 2,\n OptIns = 3\n }\n}","module Business {\n export enum PackageType {\n Budget = 1,\n Business = 2,\n Professional = 3\n }\n}","module Business {\n export enum RoleType {\n ClientAdministrator = 1,\n SubLeagueAdministrator = 2\n }\n}","module Business {\n export enum SettingsStepType {\n Name = 0,\n RankingLogo = 1,\n MailingText = 2\n }\n}","module Business {\n export enum UserValidationPopupRedirectPage {\n Order = 0,\n SalesPackage = 1\n }\n}","/// \n\nmodule Business {\n export class SalesAccountData {\n public isLoggedInWithBusinessAccount: boolean;\n public isClientAdministrator: boolean;\n\n public companyOrganisationName: string;\n public companyAddress: string;\n public companyZipCode: string;\n public companyCityName: string;\n public companyCountryId: number;\n public companyPhoneNumber: string;\n public companyVATNumber: string;\n\n public invoiceRecipientName: string;\n public invoiceRecipientEmail: string;\n public poNumber: string;\n\n public administratorGender: Gender;\n public administratorName: string;\n public administratorInfix: string;\n public administratorSurname: string;\n\n public administratorPhoneNumber: string;\n public administratorEmail: string;\n\n constructor(isLoggedInWithBusinessAccount: boolean,\n isClientAdministrator: boolean,\n companyOrganisationName: string,\n companyAddress: string,\n companyZipCode: string,\n companyCityName: string,\n companyCountryId: number,\n companyPhoneNumber: string,\n companyVatNumber: string,\n invoiceRecipientName: string,\n invoiceRecipientEmail: string,\n purchaseOrderNumber: string,\n administratorGender: Gender,\n administratorName: string,\n administratorInfix: string,\n administratorSurname: string,\n administratorPhoneNumber: string,\n administratorEmail: string) {\n this.isLoggedInWithBusinessAccount = isLoggedInWithBusinessAccount;\n this.isClientAdministrator = isClientAdministrator;\n this.companyOrganisationName = companyOrganisationName;\n this.companyAddress = companyAddress;\n this.companyZipCode = companyZipCode;\n this.companyCityName = companyCityName;\n this.companyCountryId = companyCountryId;\n this.companyPhoneNumber = companyPhoneNumber;\n this.companyVATNumber = companyVatNumber;\n this.invoiceRecipientName = invoiceRecipientName;\n this.invoiceRecipientEmail = invoiceRecipientEmail;\n this.poNumber = purchaseOrderNumber;\n this.administratorGender = administratorGender;\n this.administratorName = administratorName;\n this.administratorInfix = administratorInfix;\n this.administratorSurname = administratorSurname;\n this.administratorPhoneNumber = administratorPhoneNumber;\n this.administratorEmail = administratorEmail;\n }\n\n public static fromJson = (data: any) => {\n return new SalesAccountData(data.IsLoggedInWithBusinessAccount,\n data.IsClientAdministrator,\n data.CompanyOrganisationName,\n data.CompanyAddress,\n data.CompanyZipCode,\n data.CompanyCityName,\n data.CompanyCountryId,\n data.CompanyPhoneNumber,\n data.CompanyVATNumber,\n data.InvoiceRecipientName,\n data.InvoiceRecipientEmail,\n data.PONumber,\n data.AdministratorGender,\n data.AdministratorName,\n data.AdministratorInfix,\n data.AdministratorSurname,\n data.AdministratorPhoneNumber,\n data.AdministratorEmail);\n }\n\n public compareData(other: SalesAccountData): { updateUser: boolean, updateCompany: boolean } {\n let updateUser: boolean = false;\n let updateCompany: boolean = false;\n\n if (this.administratorGender !== other.administratorGender\n || this.administratorName !== other.administratorName\n || this.administratorInfix !== other.administratorInfix\n || this.administratorSurname !== other.administratorSurname\n || this.administratorPhoneNumber !== other.administratorPhoneNumber\n || this.administratorEmail !== other.administratorEmail)\n updateUser = true;\n\n if (this.companyOrganisationName !== other.companyOrganisationName\n || this.companyAddress !== other.companyAddress\n || this.companyZipCode !== other.companyZipCode\n || this.companyCityName !== other.companyCityName\n || this.companyCountryId !== other.companyCountryId\n || this.companyPhoneNumber !== other.companyPhoneNumber)\n updateCompany = true;\n\n return { updateUser, updateCompany }\n }\n\n public administratorFullName = () => {\n let name = this.administratorName;\n if (this.administratorInfix) {\n name += \" \" + this.administratorInfix;\n }\n if (this.administratorSurname) {\n name += \" \" + this.administratorSurname;\n }\n return name;\n }\n }\n}","/// \n\nmodule Business {\n export class AccountDataRepository implements IAccountDataRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public getSalesAccountData(): JQueryPromise {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this._apiSettings.salesAccountDataUrl}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n deferred.resolve(SalesAccountData.fromJson(data.Content));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public createSalesAccount(checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel, password: string): JQueryPromise {\n const deferred = $.Deferred();\n\n $.ajax({\n url: this._apiSettings.createSalesAccountDataUrl,\n type: \"POST\",\n processData: true,\n dataType: \"json\",\n data: JSON.stringify(_.extend(checkoutData, orderData, paymentData, { password, regionId, isAdult: true })),\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public createBusinessLink(checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel): JQueryPromise {\n const deferred = $.Deferred();\n\n API.ajax({\n url: this._apiSettings.createBusinessLinkUrl,\n type: \"POST\",\n processData: true,\n dataType: \"json\",\n data: JSON.stringify(_.extend(checkoutData, orderData, paymentData, { regionId, isAdult: true })),\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public saveCompanyDetails = (companyDetails: CompanyDetailsModel): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: this._apiSettings.companyDetailsUrl,\n type: \"POST\",\n processData: true,\n dataType: \"json\",\n data: JSON.stringify(companyDetails),\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class ActionsRepository implements IActionsRepository {\n private readonly apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getByMarket = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.leagueActionsCollectionByMarketUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(LeagueActionsCollection.fromJson(data.Content));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public markNameComplete = (subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.nameLeagueActionsUrl}/${subLeagueId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public markRankingLogoComplete = (subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.rankingLogoLeagueActionsUrl}/${subLeagueId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public markWelcomeEmailComplete = (subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.welcomeEmailLeagueActionsUrl}/${subLeagueId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class AdministratorRepository implements IAdministratorRepository {\n private readonly apiSettings: ApiSettings.SalesApiSettings;\n private readonly platformApiSettings: Platform.ApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings) {\n this.apiSettings = apiSettings;\n this.platformApiSettings = platformApiSettings;\n }\n\n public deleteAdmin = (userId: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.deleteAdminUrl}/${userId}`,\n type: \"DELETE\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public deleteSubLeagueAdmin = (userId: number, subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.deleteSubLeagueAdminUrl}/${userId}/${subLeagueId}`,\n type: \"DELETE\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n\n public sendReminder = (invitationId: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.sendReminderUrl}/${invitationId}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public sendMessage = (userId: number, subLeagueId, subject: string, message: string): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.platformApiSettings.sendPrivateMessageUrl}/${subLeagueId}/${userId}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n data: JSON.stringify({ subject, message })\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public inviteSubLeague = (subLeagueId: number, inviteModel: InviteModel, invitationId?: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.inviteAdminUrl}/${subLeagueId}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n data: JSON.stringify(_.extend(inviteModel, { invitationId }))\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public deleteInvitation = (inviteLinkId: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.deleteInvitationUrl}/${inviteLinkId}`,\n type: \"DELETE\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public get = (): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.administratorsUrl}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const administrators = Administrators.fromJson(data.Content);\n deferred.resolve(administrators);\n }).fail((data: any) => {\n if (data.status === 402) {\n location.href = \"business/paymenterror\";\n }\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public getBySubLeague = (subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.subLeagueAdministratorsUrl}/${subLeagueId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const administrators = Administrators.fromJson(data.Content);\n deferred.resolve(administrators);\n }).fail((data: any) => {\n if (data.status === 402) {\n location.href = \"business/paymenterror\";\n }\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public invite = (inviteModel: InviteModel): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.inviteAdminUrl}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n data: JSON.stringify(inviteModel)\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public validateInvite = (code: string): JQueryPromise => {\n const deferred = $.Deferred();\n\n $.ajax({\n url: `${this.apiSettings.validateInviteUrl}/${code}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public acceptInvite = (code: string): JQueryPromise => {\n const deferred = $.Deferred();\n\n $.ajax({\n url: `${this.apiSettings.acceptInviteUrl}/${code}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public declineInvite = (code: string): JQueryPromise => {\n const deferred = $.Deferred();\n\n $.ajax({\n url: `${this.apiSettings.declineInviteUrl}/${code}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}\n","/// \n\nmodule Business {\n export class AdvertisementRepository implements IAdvertisementRepository {\n private apiSettings: ApiSettings.SalesApiSettings\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings\n }\n\n get(marketId: number): JQueryPromise {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.advertisementUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n if (apiResult.isSuccess()) {\n deferred.resolve(Advertisements.fromJson(apiResult.content));\n }\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public createOrUpdate = (marketId: number, advertisement: Advertisement): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.advertisementUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify(advertisement),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public uploadHeaderImage = (marketId: number, formData: FormData): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.advertisementImageUrl}/${marketId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture\n },\n data: formData,\n contentType: false,\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public delete = (marketId: number, advertisementId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.advertisementUrl}/${marketId}/${advertisementId}`,\n type: \"DELETE\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class BrochureRepository {\n private apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public requestBrochure = (marketId: number, emailAddress: string, regionId: number, culture: string): JQueryPromise => {\n const deferred = $.Deferred();\n\n const requestSettings = {\n url: `${this.apiSettings.brochureUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Content-Type': \"application/json\"\n },\n contentType: \"application/json\",\n data: JSON.stringify(new SendBrochureModel(emailAddress, regionId, culture)),\n };\n\n (Authentication.isLoggedIn()\n ? (API.ajax(requestSettings))\n : ($.ajax(requestSettings))).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class ClientRepository implements IClientRepository {\n\n private apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getClientMarketHeader = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.clientMarketDataUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n if (apiResult.isSuccess()) {\n deferred.resolve(ClientMarketHeader.fromJson(apiResult.content));\n }\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public getClientMarketSettings = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.clientMarketSettingsUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n if (apiResult.isSuccess()) {\n deferred.resolve(ClientMarketSettings.fromJson(apiResult.content));\n }\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public saveClientAdministrator = (clientId: number, firstName: string, lastName: string, email: string, countryCode: string, phoneNumber: string): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveClientAdministratorUrl}/${clientId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n firstName,\n lastName,\n email,\n phoneNumber: countryCode + \" \" + phoneNumber\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public deleteClientAdministrator = (clientId: number, email: string): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.deleteClientAdministratorUrl}/${clientId}`,\n type: \"DELETE\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n }\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveLeagueName = (marketId: number, subLeagueName: string, subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveLeagueNameUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({ SubLeagueName: subLeagueName, PoolId: subLeagueId }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveLogoTakeOverLogo = (marketId: number, formData: FormData): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveLogoTakeOverUrl}/${marketId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture\n },\n data: formData,\n contentType: false,\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveLogoTakeOverColor = (marketId: number, color: string): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.saveBackgroundColorUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n color\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveLogoTakeOverHeaderIcon = (marketId: number, headerIconId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveHeaderIconColorUrl}/${marketId}/${headerIconId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveLandingPageLogo = (marketId: number, formData: FormData): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveLandingPageLogoUrl}/${marketId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture\n },\n data: formData,\n contentType: false,\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveOptInRequired = (marketId: number, optInRequired: boolean): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveOptinRequiredUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n optInRequired\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n };\n\n public saveRankingLogo = (marketId: number, formData: FormData): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveRankingLogoUrl}/${marketId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture,\n },\n data: formData,\n contentType: false\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveSalesPackageImage = (marketId: number, salesPackageType: SalesPackageType, formData: FormData): JQueryPromise => {\n let path = \"\";\n switch (salesPackageType) {\n case SalesPackageType.BrandingPackage:\n path = \"/branding\";\n break;\n case SalesPackageType.PromotionalPackage:\n path = \"/promotional\";\n }\n\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveSalesPackageImageUrl}${path}/${marketId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture,\n },\n data: formData,\n contentType: false\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public confirmPromotional = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.promotionalPackageUrl}/send/${marketId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture,\n },\n contentType: false\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveHasOpenedAdmins = (marketId: number): JQueryPromise => {\n\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveHasOpenedAdminsUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveWelcomeEmail = (emailTitle: string, emailBody: string, marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.saveWelcomeEmailUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n Title: emailTitle,\n Body: emailBody\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public sendExampleWelcomeEmail = (emailTitle: string, emailBody: string, marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.sendExampleEmailUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n Title: emailTitle,\n Body: emailBody\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public hasSeenEmail = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.hasSeenEmailUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public hasChangedSubLeagueSetting = (marketId: number, multiSubLeaguesModel: MultiSubLeaguesModel): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.hasChangedSubLeagueSettingUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n data: JSON.stringify({\n SubLeagueIsAllowedToChangeRankingLogo: multiSubLeaguesModel.subLeagueIsAllowedToChangeRankingLogo,\n SubLeagueIsAllowedToChangeEmail: multiSubLeaguesModel.subLeagueIsAllowedToChangeEmail,\n SubLeagueIsAllowedToChangeName: multiSubLeaguesModel.subLeagueIsAllowedToChangeName,\n }),\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public delete = (): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.companyDetailsUrl}`,\n type: \"DELETE\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n }\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public requestPreviewPrint = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.brandingPackageUrl}/previewprint/${marketId}`,\n type: \"GET\",\n headers: {\n 'Accept-Language': uiCulture,\n }\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public confirmPreviewPrint = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.brandingPackageUrl}/confirmprint/${marketId}`,\n type: \"GET\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class ArticleRepository implements IArticleRepository {\n private apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n get(marketId: number, subLeagueId: number): JQueryPromise {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.articlesUrl}/${marketId}/${subLeagueId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n if (apiResult.isSuccess()) {\n deferred.resolve(Articles.fromJson(apiResult.content));\n }\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public createOrUpdate = (marketId: number, subLeagueId: number, article: Article): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.articlesUrl}/${marketId}/${subLeagueId}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify(article),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveHeaderImage = (marketId: number, subLeagueId: number, formData: FormData): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.articleHeaderImageUrl}/${marketId}/${subLeagueId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture\n },\n data: formData,\n contentType: false,\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public delete(articleId: number, subLeagueId: number): JQueryPromise {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.articlesUrl}/${articleId}/${subLeagueId}`,\n type: \"DELETE\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class DealsRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public getDealsForMarket(marketId: number): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.dealsForMarketUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: MarketDealResult = Business.MarketDealResult.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public getDiscountForMarket(marketId: number): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.discountForMarketUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: EarlyBirdDiscount = Business.EarlyBirdDiscount.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public getCalculatedDeal(dealId: number): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.calculateDealUrl}/${dealId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: CalculatedDeal = Business.CalculatedDeal.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public getCombiDealsForMarket(marketId: number): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.combiDealsUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result = CombiDeals.fromJson(data.Content.CombiDeals);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public calculateOrder(requestBody: string): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.calculateOrderUrl}`,\n type: \"POST\",\n processData: false,\n dataType: \"json\",\n contentType: \"application/json\",\n data: requestBody,\n headers: {\n 'Content-Type': 'application/json',\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: CalculatedOrder = CalculatedOrder.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public calculateUpgrade = (marketId: number, participantUpgradeDealId: number, packageUpgradeDealId: number, payByInvoice: boolean, countryId: number, vatNumber: string, couponCode: string, salesPackageIdsWithAmounts: Record): JQueryPromise => { \n const deferred = $.Deferred();\n API.ajax({\n url: `${this._apiSettings.calculateUpgradeUrl}`,\n type: \"POST\",\n processData: false,\n dataType: \"json\",\n contentType: \"application/json\",\n data: JSON.stringify({\n marketId,\n participantUpgradeDealId,\n packageUpgradeDealId,\n payByInvoice,\n countryId,\n vatNumber,\n couponCode,\n salesPackageIdsWithAmounts\n }),\n headers: {\n 'Content-Type': 'application/json',\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: CalculatedOrder = CalculatedOrder.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public getPackageUpgrades = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.upgradeDealsUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result = Deals.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class CouponRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public validateCoupon(code: string): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.couponUrl}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture\n },\n data: JSON.stringify({ code })\n }).done((data: any) => {\n var result = Coupon.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n/// \n/// \n\nmodule Business {\n export class FaqRepository implements IFaqRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public getCategories = (gameId: number, faqType: FaqType): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this._apiSettings.faqCategoryUrl}/${gameId}/${faqType}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(FaqCategories.fromJson(data.Content));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public getFaqForGame(gameId: number): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.faqUrl}/${gameId}/${FaqType.Order}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: FaqQuestions = FaqQuestions.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class FooterImageRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public getFooterImageUrlsForRegion(regionId: number): JQueryPromise> {\n const deferred = $.Deferred>();\n $.ajax({\n url: `${this._apiSettings.footerCarouselImagesUrl}/${regionId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: Array = data.Content.FooterCarouselImageUrls;\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class InterstitialRepository implements IInterstitialRepository {\n private apiSettings: ApiSettings.SalesApiSettings\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings\n }\n\n get(marketId: number): JQueryPromise {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.interstitialUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n if (apiResult.isSuccess()) {\n deferred.resolve(Interstitials.fromJson(apiResult.content));\n }\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public createOrUpdate = (marketId: number, interstitial: Interstitial): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.interstitialUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify(interstitial),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public uploadHeaderImage = (marketId: number, formData: FormData): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.interstitialImageUrl}/${marketId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture\n },\n data: formData,\n contentType: false,\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public delete = (marketId: number, interstitialId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.interstitialUrl}/${marketId}/${interstitialId}`,\n type: \"DELETE\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class InviteRepository implements IInviteRepository {\n private readonly apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getInviteMailContent = (subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.inviteMailContentUrl}/${subLeagueId}`,\n headers: {\n 'Accept-Language': uiCulture\n },\n type: \"GET\",\n dataType: \"json\",\n }).done(data => {\n const apiResult = ApiResult.fromJson(data);\n if (apiResult.isSuccess() && apiResult.content != null) {\n const inviteMail = InviteContent.fromJson(apiResult.content);\n deferred.resolve(inviteMail);\n }\n\n deferred.resolve(new InviteContent(null, null, null, false));\n }).fail(err => {\n deferred.reject(err);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class OptInRepository {\n private apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public request = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.requestOptInUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class PackageOptionsRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n private readonly packageOptionsCache = new Dictionary();\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public getPackageOptions = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n const cacheKey = `getPackageOptions:${marketId}`;\n const result = this.packageOptionsCache.get(cacheKey);\n\n if (result)\n return deferred.resolve(result);\n\n $.ajax({\n url: `${this._apiSettings.packageOptionUrl}/${marketId}/${uiCulture}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: PackageOptionsResult = Business.PackageOptionsResult.fromJson(data.Content);\n this.packageOptionsCache.put(cacheKey, result);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public getPackageOptionLayoverContent = (packageOptionId: number): JQueryPromise => {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.packageOptionLayoverUrl}/${packageOptionId}/${uiCulture}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: PackageOptionDescription = Business.PackageOptionDescription.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n }\n}","/// \n/// \n\nmodule Business {\n export class ParticipantRepository implements IParticipantRepository {\n private readonly apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public get = (subLeagueId: number, pageIndex: number, participantsPerPage: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.participantsUrl}/${subLeagueId}/${pageIndex}/${participantsPerPage}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n if (apiResult.isSuccess()) {\n deferred.resolve(Participants.fromJson(apiResult.content));\n }\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n\n public sendMessageToSubLeague = (subLeagueId: number, subject: string, message: string): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.sendSubLeagueMessageUrl}/${subLeagueId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n subject,\n message\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n }\n}","/// \n\nmodule Business {\n export class PaymentRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public savePayment = (countryId: number, checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel, clientData: ClientInformationModel, checkoutSessionReference: string) => {\n const deferred = $.Deferred();\n API.ajax({\n url: this._apiSettings.paymentUrl,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify(_.extend(checkoutData, orderData, paymentData, clientData, countryId, { checkoutSessionReference })),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public createSession = (countryId: number, checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel, clientData: ClientInformationModel) => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this._apiSettings.createSessionUrl}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify(_.extend(checkoutData, orderData, paymentData, clientData, countryId)),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public getPaymentMethods = (regionId: number, countryId: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n $.ajax({\n url: `${this._apiSettings.paymentMethodsUrl}/${regionId}/${countryId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n },\n })\n .done((data: any) => deferred.resolve(PaymentMethods.fromJson(data.Content)))\n .fail((data: any) => deferred.reject(data));\n\n return deferred.promise();\n }\n }\n}","module Business {\n export class PurchaseRepository implements IPurchaseRepository {\n private readonly apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n\n public get = (): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.purchasesUrl}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const purchases = Purchases.fromJson(data.Content);\n deferred.resolve(purchases);\n }).fail((data: any) => {\n if (data.status === 402) {\n location.href = \"business/paymenterror\";\n }\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n \n public getInvoice = (orderId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.purchaseInvoiceUrl}/${orderId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n var invoice = Invoice.fromJson(data.Content);\n deferred.resolve(invoice);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public getDetails = (orderId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.purchaseDetailUrl}/${orderId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => { \n deferred.resolve(createPurchaseDetail(data.Content));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}\n","/// \n\nmodule Business {\n export class RankingRepository {\n private apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public request = (subleagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.apiSettings.rankingRequestUrl}/${subleagueId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n deferred.resolve(apiResult);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class SalesPackageRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public getSalesPackagesByMarketAndRegion(marketId: number, regionId: number): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.getMarketSalesPackagesByRegionUrl}/${marketId}/${regionId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n var result = MarketSalesPackagesResult.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public getSalesPackagesByMarketAndCountry(marketId: number, countryId: number): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.getMarketSalesPackagesByCountryUrl}/${marketId}/${countryId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n var result = MarketSalesPackagesResult.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n\nmodule Business {\n export class SalesUserRepository implements ISalesUserRepository {\n private readonly apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public get = (marketId?: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n API.ajax({\n url: `${this.apiSettings.clientMarketDataUrl}${marketId ? \"/\" + marketId : \"\"}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(SalesUser.fromJson(data.Content));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n }\n}","/// \n\nmodule Business {\n export class SteamReferralRepository {\n private apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public create = (organization: string, address: string, fullName: string, phoneNumber: string, emailAddress: string, marketId: number, packageType: PackageType, participantCount: number): JQueryPromise => {\n const deferred = $.Deferred();\n\n const requestSettings = {\n url: `${this.apiSettings.steamReferralUrl}`,\n type: \"POST\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n 'Content-Type': \"application/json\"\n },\n contentType: \"application/json\",\n data: JSON.stringify({ organization, address, fullName, phoneNumber, emailAddress, marketId, package: PackageType[packageType], participantCount }),\n };\n\n $.ajax(requestSettings).done((data: any) => {\n deferred.resolve(data.Content);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","/// \n/// \n\nmodule Business {\n export class SubLeagueRepository implements ISubLeagueRepository {\n private readonly salesApiSettings: ApiSettings.SalesApiSettings;\n\n constructor(salesApiSettings: ApiSettings.SalesApiSettings) {\n this.salesApiSettings = salesApiSettings;\n }\n\n public getInviteLink = (leagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.subLeagueInviteUrl}/${leagueId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public get = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.subLeaguesUrl}/${marketId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public getMine = (marketId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.subLeaguesUrl}/${marketId}/mine`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public createSubLeague = (marketId: number, subLeagueName: string, adminOneIsUser: boolean, adminOne: AdministratorModel, adminTwo: AdministratorModel = undefined): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.subLeaguesUrl}/${marketId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n contentType: \"application/json\",\n data: JSON.stringify({\n subLeagueName,\n adminOneIsUser,\n adminOneFirstName: adminOne.firstName,\n adminOneLastName: adminOne.lastName,\n adminOneEmail: adminOne.emailAddress,\n adminTwoFirstName: adminTwo?.firstName,\n adminTwoLastName: adminTwo?.lastName,\n adminTwoEmail: adminTwo?.emailAddress\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public deleteSubLeague = (subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.subLeaguesUrl}/${subLeagueId}`,\n type: \"DELETE\",\n dataType: \"json\",\n processData: false,\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public updateSubLeagueName = (subLeagueId: number, subLeagueName: string): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.updateSubLeagueNameUrl}/${subLeagueId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n subLeagueName\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveRankingLogo = (subleagueId: number, formData: FormData): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.saveSubLeagueRankingLogoUrl}/${subleagueId}`,\n type: \"POST\",\n processData: false,\n headers: {\n 'Accept-Language': uiCulture,\n },\n data: formData,\n contentType: false\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public getWelcomeEmail = (subLeagueId: number): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.subLeagueWelcomeEmailUrl}/${subLeagueId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n public saveWelcomeEmail = (subLeagueId: number, title: string, body: string): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.subLeagueWelcomeEmailUrl}/${subLeagueId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n title,\n body\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n\n public sendExampleWelcomeEmail = (subLeagueId: number, title: string, body: string): JQueryPromise => {\n const deferred = $.Deferred();\n API.ajax({\n url: `${this.salesApiSettings.sendExampleSubLeagueEmailUrl}/${subLeagueId}`,\n type: \"POST\",\n dataType: \"json\",\n processData: false,\n contentType: \"application/json\",\n headers: {\n 'Content-Type': \"application/json\",\n 'Accept-Language': uiCulture,\n },\n data: JSON.stringify({\n title,\n body\n }),\n }).done((data: any) => {\n deferred.resolve(ApiResult.fromJson(data));\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n\n\n }\n}","/// \n\nmodule Business {\n export class TabsRepository {\n private _apiSettings: ApiSettings.SalesApiSettings;\n\n constructor(apiSettings: ApiSettings.SalesApiSettings) {\n this._apiSettings = apiSettings;\n }\n\n public GetGamesAndMarkets(regionId: number): JQueryPromise {\n const deferred = $.Deferred();\n $.ajax({\n url: `${this._apiSettings.gameTabUrl}/${regionId}`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const result: GameTabs = GameTabs.fromJson(data.Content);\n deferred.resolve(result);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n return deferred.promise();\n }\n }\n}","/// \n\nclass TerritoryRepository {\n private readonly apiSettings: Platform.ApiSettings;\n private regions: IRegion[];\n\n public constructor(apiSettings: Platform.ApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getRegions = (): JQueryPromise => {\n const deferred = $.Deferred();\n\n if (this.regions) {\n deferred.resolve(this.regions);\n }\n else {\n $.ajax({\n url: `${this.apiSettings.baseUrl}/territory/v1.0/region/all`,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture\n }\n }).done((data: any) => {\n const regions = _.map(data.Content, region => ({\n regionId: region.RegionId,\n description: region.Description,\n culture: region.Culture\n }));\n this.regions = regions;\n deferred.resolve(regions);\n }).fail((data: any) => {\n deferred.reject(data);\n });\n }\n return deferred.promise();\n }\n}\n","module Business {\n export class UserPredictionStatusRepository implements IUserPredictionStatusRepository {\n private readonly version = \"v1.0\";\n private readonly controller = \"userpredictionstatus/users\";\n\n private readonly apiSettings: ApiSettings.UserPredictionStatusApiSettings;\n\n constructor(apiSettings: ApiSettings.UserPredictionStatusApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public get = (regionId: number, marketId: number, userIds: number[]): JQueryPromise => {\n const regionPath = this.apiSettings.baseUrl.indexOf('local') >= 0 ? `` : `${regionId}/`;\n const url = `${this.apiSettings.baseUrl}/${regionPath}${this.version}/${this.controller}/${marketId}?${userIds.map(userId => `UserIds[]=${userId}`).join('&')}`;\n\n const deferred = $.Deferred();\n\n API.ajax({\n url,\n type: \"GET\",\n dataType: \"json\",\n headers: {\n 'Accept-Language': uiCulture,\n },\n }).done((data: any) => {\n const apiResult = ApiResult.fromJson(data);\n if (apiResult.isSuccess()) {\n deferred.resolve(UserPredictionStatuses.fromJson(apiResult.content));\n }\n }).fail((data: any) => {\n deferred.reject(data);\n });\n\n return deferred.promise();\n }\n }\n}","module Business {\n export class ClientActions {\n public clientId: number;\n public marketActionsCollection: MarketActionsCollection;\n\n constructor(clientId: number, marketActionsCollection: MarketActionsCollection) {\n this.clientId = clientId;\n this.marketActionsCollection = marketActionsCollection;\n }\n\n public static fromJson = (data: any): ClientActions => {\n return new ClientActions(data.ClientId, MarketActionsCollection.fromJson(data.MarketActionsCollection));\n }\n\n public getActionsForMarket = (marketId: number) => {\n return _.find(this.marketActionsCollection.list,\n function (marketActions) {\n return marketActions.marketId === marketId;\n });\n }\n }\n}","module Business {\n export class LeagueActions {\n public leagueId: number;\n public marketId: number;\n public nameCompleted: boolean;\n public rankingLogoCompleted: boolean;\n public welcomeEmailCompleted: boolean;\n\n constructor(leagueId: number, marketId: number, nameCompleted: boolean, rankingLogoCompleted: boolean, welcomeEmailCompleted: boolean) {\n this.leagueId = leagueId;\n this.marketId = marketId;\n this.nameCompleted = nameCompleted;\n this.rankingLogoCompleted = rankingLogoCompleted;\n this.welcomeEmailCompleted = welcomeEmailCompleted;\n }\n\n public isComplete = (): boolean => {\n return this.actionCount() <= 0;\n }\n\n public actionCount = (): number => {\n return (this.nameCompleted ? 0 : 1) + (this.rankingLogoCompleted ? 0 : 1) + (this.welcomeEmailCompleted ? 0 : 1);\n }\n\n public static fromJson = (data: any): LeagueActions => {\n return new LeagueActions(data.LeagueId, data.MarketId, data.NameCompleted, data.RankingLogoCompleted, data.WelcomeEmailCompleted);\n }\n }\n}","///\n\nmodule Business {\n export class LeagueActionsCollection extends BaseList {\n\n public getByLeagueId = (subLeagueId: number): LeagueActions => {\n return _.find(this.list, l => l.leagueId == subLeagueId);\n }\n\n public getByMarketId = (marketId: number): LeagueActionsCollection => {\n return new LeagueActionsCollection(_.filter(this.list, l => l.marketId == marketId));\n }\n\n public totalActions = (): number => {\n return _.reduce(this.list, (memo: number, actions: LeagueActions) => {\n return memo + actions.actionCount();\n }, 0);\n }\n\n public isComplete = (): boolean => {\n return this.totalActions() <= 0;\n }\n\n public update = (leagueActionsCollection: LeagueActionsCollection): void => {\n const leagueIds = leagueActionsCollection.getLeagueIds();\n this.list = _.reject(this.list, l => {\n return _.contains(leagueIds, l.leagueId);\n });\n\n leagueActionsCollection.each(l => {\n this.add(l);\n });\n }\n\n public getLeagueIds = (): number[] => {\n return this.map(l => l.leagueId);\n }\n\n public static fromJson = (data: any): LeagueActionsCollection => {\n const list = new Array();\n _.each(data, (leagueActions: any) => {\n list.push(LeagueActions.fromJson(leagueActions));\n });\n return new LeagueActionsCollection(list);\n }\n\n\n }\n} ","module Business {\n export class MarketActions {\n public marketId: number;\n public clientActions: number;\n\n constructor(marketId: number, clientActions: number) {\n this.marketId = marketId;\n this.clientActions = clientActions;\n }\n\n public static fromJson = (data: any): MarketActions => {\n return new MarketActions(data.MarketId, data.ClientActions);\n }\n }\n}","module Business {\n export class MarketActionsCollection extends BaseList {\n\n constructor(marketActions: Array){\n super(marketActions);\n }\n\n public static fromJson(data: any) {\n const list = new Array();\n _.each(data.MarketActions, (marketActions: any) => {\n list.push(MarketActions.fromJson(marketActions));\n });\n return new this(list);\n }\n }\n}","/// \n\nmodule Business {\n export class Administrator {\n public id: number;\n public clientId: number;\n public emailAddress: string;\n public firstName: string;\n public managementInvitationStatus: ManagementInvitationStatus;\n public isPrimary: boolean;\n public lastName: string;\n public phoneNumber: string;\n public phoneNumberCountryId: number;\n public userId: number | null;\n public inviteDate: string;\n\n constructor(id: number, clientId: number, emailAddress: string, firstName: string, managementInvitationStatus: ManagementInvitationStatus,\n isPrimary: boolean, lastName: string, phoneNumber: string,\n phoneNumberCountryId: number, userId: number | null, inviteDate: string) {\n this.id = id;\n this.clientId = clientId;\n this.emailAddress = emailAddress;\n this.firstName = firstName;\n this.managementInvitationStatus = managementInvitationStatus;\n this.isPrimary = isPrimary;\n this.lastName = lastName;\n this.phoneNumber = phoneNumber;\n this.phoneNumberCountryId = phoneNumberCountryId;\n this.userId = userId;\n this.inviteDate = inviteDate;\n }\n\n public static fromJson(data: any) {\n return new this(data.Id, data.ClientId, data.EmailAddress, data.FirstName, data.ManagementInvitationStatus, data.IsPrimary,\n data.LastName, data.PhoneNumber, data.PhoneNumberCountryId, data.UserId, data.InviteDate);\n }\n\n public getFullName = () => {\n return `${this.firstName} ${this.lastName}`;\n }\n\n public isAcceptedAdmin = () => {\n return this.isPrimary || (this.managementInvitationStatus === ManagementInvitationStatus.Accepted && this.userId != null);\n }\n\n public isPending = (): boolean => {\n return this.managementInvitationStatus === ManagementInvitationStatus.Pending;\n }\n\n public isAccepted = (): boolean => {\n return this.managementInvitationStatus === ManagementInvitationStatus.Accepted;\n }\n\n public isDeclined = (): boolean => {\n return this.managementInvitationStatus === ManagementInvitationStatus.Declined;\n }\n\n public getStatusLabel = (): string => {\n return TranslationData.get(`Business.ManagementInvitationStatus.${this.managementInvitationStatus}`);\n }\n\n public invitationStatusText = (): string => {\n return ManagementInvitationStatus[this.managementInvitationStatus].toLowerCase();\n }\n\n public formattedInviteDate = (): string => {\n const momentLocale = moment.utc(this.inviteDate).local().locale(uiCulture);\n return `${momentLocale.format(\"DD MMMM YYYY\")} ${TranslationData.get(\"Common.Time.At\")} ${momentLocale.format(\"HH:mm\")} ${TranslationData.get(\"Common.Hour\")}`;\n }\n\n public update = (firstName: string, lastName: string, email: string): void => {\n this.firstName = firstName;\n this.lastName = lastName;\n if (this.emailAddress !== email) {\n this.inviteDate = moment.utc().local().toISOString();\n }\n this.emailAddress = email;\n }\n }\n}","/// \n\nmodule Business {\n export class Administrators extends BaseList {\n\n constructor(administrators: Array) {\n super(administrators);\n }\n\n public static fromJson(data: any) {\n const list = new Array();\n _.each(data, (administrator: any) => {\n list.push(Administrator.fromJson(administrator));\n });\n\n return new this(list).sortByPrimaryAdmin();\n }\n\n public getByUserId = (userId: number) => {\n return _.find(this.list, administrator => {\n return administrator.userId === userId;\n });\n }\n\n public getById = (id: number) => {\n return _.find(this.list, administrator => {\n return administrator.id === id;\n });\n }\n\n public getByEmailAddress = (emailAddress: string) => {\n return _.find(this.list, administrator => {\n return administrator.emailAddress === emailAddress;\n });\n }\n\n public getByInviteLinkId = (inviteLinkId: number) => {\n return _.find(this.list, administrator => {\n return administrator.id === inviteLinkId;\n });\n }\n\n public hasForEmailAddress = (emailAddress: string) => {\n return _.some(this.list, administrator => {\n return administrator.emailAddress === emailAddress;\n });\n }\n\n public hasMultipleAdmins = () => {\n return _.filter(this.list, (administrator: Administrator) => {\n return administrator.isAcceptedAdmin();\n }).length > 1;\n }\n\n public sortByPrimaryAdmin = () => {\n return new Administrators(_.sortBy(this.list, (admin: Administrator) => {\n return admin.isPrimary;\n }).reverse());\n }\n\n public getStatusList = (): Array => {\n const statusList = _.map(this.list, a => a.managementInvitationStatus);\n while (statusList.length < 2) {\n statusList.push(undefined);\n }\n return statusList;\n }\n }\n} ","module Business {\n export class InviteModel {\n public EmailAddress: string;\n public FirstName: string;\n public LastName: string;\n public PhoneNumber: string;\n public PhoneNumberCountryId: number;\n\n constructor(emailAddress: string, firstName: string, lastName: string,\n phoneNumber: string, phoneNumberCountryId: number) {\n this.EmailAddress = emailAddress;\n this.FirstName = firstName;\n this.LastName = lastName;\n this.PhoneNumber = phoneNumber;\n this.PhoneNumberCountryId = phoneNumberCountryId;\n }\n }\n} ","module Business {\n export class Advertisement {\n public id: number;\n public imageName: string;\n public imagePath: string;\n public imageLink: string;\n public isActive: boolean;\n\n constructor(\n id: number,\n imageName: string,\n imagePath: string,\n imageLink: string,\n isActive: boolean) {\n this.id = id\n this.imageName = imageName\n this.imagePath = imagePath\n this.imageLink = imageLink\n this.isActive = isActive\n }\n\n public static fromJson = (data: any) => {\n return new Advertisement(data.Id, data.ImageName, data.ImagePath, data.ImageLink, data.IsActive)\n }\n }\n}","module Business {\n export class Advertisements extends BaseList {\n constructor(list: Array){\n super(list);\n }\n\n public static fromJson(data: any): Advertisements {\n const list = new Array();\n _.each(data, (advertisement: any) => {\n list.push(Advertisement.fromJson(advertisement));\n })\n return new this(list)\n }\n\n public getById = (advertisementId: number): Advertisement | undefined => {\n return _.find(this.list, a => a.id === advertisementId);\n }\n\n public getActive = (): Advertisement | undefined => {\n return _.find(this.list, a => a.isActive === true);\n }\n\n }\n}","module Business {\n export class SendBrochureModel {\n public emailAddress: string;\n public regionId: number;\n public culture: string;\n\n constructor(\n emailAddress: string,\n regionId: number,\n culture: string) {\n this.emailAddress = emailAddress;\n this.regionId = regionId;\n this.culture = culture;\n }\n }\n}","module Business {\n export class ClientMarket {\n public marketId: number;\n public marketName: string;\n public openActionCount: number;\n public hasPurchased: boolean;\n\n constructor(marketId: number, marketName: string, openActionCount: number, hasPurchased: boolean) {\n this.marketId = marketId;\n this.marketName = marketName;\n this.openActionCount = openActionCount;\n this.hasPurchased = hasPurchased;\n }\n\n public addOpenActionCount = (openActionCount: number): void => {\n this.openActionCount += openActionCount;\n }\n\n public static fromJson = (data: any): ClientMarket => {\n return new ClientMarket(data.MarketId, data.MarketName, data.OpenActionCount, data.HasPurchased);\n }\n\n public hasOpenActions = () => {\n return this.openActionCount > 0;\n }\n }\n}","module Business {\n export class ClientMarketHeader {\n public sponsoredParticipantCount: number;\n public paidByOther: number;\n\n public maxSponsoredParticipantCount: number;\n\n constructor(paidByClient: number, paidByOther: number, maxSponsoredParticipantCount: number) {\n this.sponsoredParticipantCount = paidByClient;\n this.paidByOther = paidByOther;\n this.maxSponsoredParticipantCount = maxSponsoredParticipantCount;\n }\n\n public static fromJson(data: any) {\n if (data == null) {\n return null;\n }\n return new this(data.SponsoredCount, data.PaidByOtherCount, data.MaximumSponsored);\n }\n }\n}","module Business {\n export class ClientMarketSettings {\n public clientId: number;\n public headerBackgroundColor: string;\n public headerIconColorType: HeaderIconColorType;\n public headerLogo: string;\n public marketId: number;\n public landingPageLogo: string;\n public optInRequired: boolean;\n public hasOpenedAdmins: boolean;\n public leagueName: string;\n public rankingPageLogo: string;\n public subLeagueIsAllowedToChangeRankingLogo?: boolean;\n public subLeagueIsAllowedToChangeEmail?: boolean;\n public subLeagueIsAllowedToChangeName?: boolean;\n public welcomeEmailBody: string;\n public welcomeEmailTitle: string;\n public welcomeEmailImageUrl: string;\n public welcomeEmailHasSeenOrChanged: boolean;\n public promotionalPackageImageUrl: string;\n public brandingPackageImageUrl: string;\n public isPreviewPrintCooldownActive: boolean;\n public hasAcceptedPreviewPrint: boolean;\n public hasRequestedPreviewPrint: boolean;\n public hasNewPromotionalPackageLogoToSend: boolean;\n public gameId: number;\n public qrCodeUrl: string;\n\n constructor(\n clientId: number,\n headerBackgroundColor: string,\n headerIconColorType: HeaderIconColorType,\n headerLogo: string,\n marketId: number,\n landingPageLogo: string,\n optInRequired: boolean,\n hasOpenedAdmins: boolean,\n leagueName: string,\n rankingPageLogo: string,\n welcomeEmailBody: string,\n welcomeEmailTitle: string,\n welcomeEmailImageUrl: string,\n welcomeEmailHasSeenOrChanged: boolean,\n promotionalPackageImageUrl: string,\n brandingPackageImageUrl: string,\n isPreviewPrintCooldownActive: boolean,\n hasAcceptedPreviewPrint: boolean,\n hasRequestedPreviewPrint: boolean,\n hasNewPromotionalPackageLogoToSend: boolean,\n subLeagueIsAllowedToChangeRankingLogo?: boolean,\n subLeagueIsAllowedToChangeEmail?: boolean,\n subLeagueIsAllowedToChangeName?: boolean,\n gameId?: number,\n qrCodeUrl?: string\n ) {\n this.clientId = clientId;\n this.headerBackgroundColor = headerBackgroundColor;\n this.headerIconColorType = headerIconColorType;\n this.headerLogo = headerLogo;\n this.marketId = marketId;\n this.landingPageLogo = landingPageLogo;\n this.optInRequired = optInRequired;\n this.hasOpenedAdmins = hasOpenedAdmins;\n this.leagueName = leagueName;\n this.rankingPageLogo = rankingPageLogo;\n this.subLeagueIsAllowedToChangeRankingLogo = subLeagueIsAllowedToChangeRankingLogo;\n this.subLeagueIsAllowedToChangeEmail = subLeagueIsAllowedToChangeEmail;\n this.subLeagueIsAllowedToChangeName = subLeagueIsAllowedToChangeName;\n this.welcomeEmailBody = welcomeEmailBody;\n this.welcomeEmailTitle = welcomeEmailTitle;\n this.welcomeEmailImageUrl = welcomeEmailImageUrl;\n this.welcomeEmailHasSeenOrChanged = welcomeEmailHasSeenOrChanged;\n this.promotionalPackageImageUrl = promotionalPackageImageUrl;\n this.brandingPackageImageUrl = brandingPackageImageUrl;\n this.isPreviewPrintCooldownActive = isPreviewPrintCooldownActive;\n this.hasAcceptedPreviewPrint = hasAcceptedPreviewPrint;\n this.hasRequestedPreviewPrint = hasRequestedPreviewPrint;\n this.hasNewPromotionalPackageLogoToSend = hasNewPromotionalPackageLogoToSend;\n this.gameId = gameId;\n this.qrCodeUrl = qrCodeUrl;\n }\n\n public static fromJson(data: any) {\n return new this(\n data.ClientId,\n data.HeaderBackgroundColor,\n data.HeaderIconColorType,\n data.HeaderLogo,\n data.MarketId,\n data.LandingPageLogo,\n data.OptInRequired,\n data.HasOpenedAdmins,\n data.LeagueName,\n data.RankingPageLogo,\n data.WelcomeEmailBody,\n data.WelcomeEmailTitle,\n data.WelcomeEmailImageUrl,\n data.WelcomeEmailHasSeenOrChanged,\n data.PromotionalPackageImageUrl,\n data.BrandingPackageImageUrl,\n data.IsPreviewPrintCooldownActive,\n data.HasAcceptedPreviewPrint,\n data.HasRequestedPreviewPrint,\n data.HasNewPromotionalPackageLogoToSend,\n data.SubLeagueIsAllowedToChangeRankingLogo,\n data.SubLeagueIsAllowedToChangeEmail,\n data.SubLeagueIsAllowedToChangeName,\n data.GameId,\n data.QrCodeUrl\n )\n }\n }\n}","/// \n\nmodule Business {\n export class ClientMarkets extends BaseList {\n constructor(clientMarkets: Array) {\n super(clientMarkets);\n }\n\n public updateWithLeagueActions = (leagueActions: LeagueActionsCollection): void => {\n _.each(this.list, clientMarket => {\n const leagueActionsForMarket = leagueActions.getByMarketId(clientMarket.marketId);\n clientMarket.addOpenActionCount(leagueActionsForMarket.totalActions());\n });\n }\n\n public static fromJson = (data: any): ClientMarkets => {\n const list = new Array();\n _.each(data, (clientMarket: any) => {\n list.push(ClientMarket.fromJson(clientMarket));\n });\n return new ClientMarkets(list);\n }\n\n public getByMarketId = (marketId: number) => {\n return _.find(this.list, (market: ClientMarket) => {\n return market.marketId === marketId;\n });\n }\n }\n}","module Business {\n export class Article {\n public articleId: number;\n public authorUserId: number;\n public authorFullname: string;\n public poolId: number;\n public articleImageUrl: string;\n public title: string;\n public body: string;\n public hasCallToActionButton: boolean;\n public callToActionButtonText: string;\n public callToActionButtonUrl: string;\n public isDraftArticle: boolean;\n public publicationDate: string;\n\n constructor(\n articleId: number,\n authorUserId: number,\n authorFullname: string,\n poolId: number,\n articleImageUrl: string,\n title: string,\n body: string,\n hasCallToActionButton: boolean,\n callToActionButtonText: string,\n callToActionButtonUrl: string,\n isDraftArticle: boolean,\n publicationDate: string) {\n this.articleId = articleId;\n this.authorUserId = authorUserId;\n this.authorFullname = authorFullname;\n this.poolId = poolId;\n this.articleImageUrl = articleImageUrl;\n this.title = title;\n this.body = body;\n this.hasCallToActionButton = hasCallToActionButton;\n this.callToActionButtonText = callToActionButtonText;\n this.callToActionButtonUrl = callToActionButtonUrl;\n this.isDraftArticle = isDraftArticle;\n this.publicationDate = publicationDate;\n }\n\n public formattedDate = (): string => {\n const momentPublicationDate = moment.utc(this.publicationDate).local().locale(uiCulture);\n return `${momentPublicationDate.format(\"DD-MM\")} ${TranslationData.get(\"Common.Time.At\")} ${momentPublicationDate.format(\"HH:mm\")} ${TranslationData.get(\"Common.Hour\")}`;\n }\n\n public setIsDraftArticle = (isDraft: boolean) => {\n this.isDraftArticle = isDraft;\n }\n\n public static fromJson = (data: any) => {\n return new Article(\n data.ArticleId,\n data.AuthorUserId,\n data.AuthorFullname,\n data.PoolId,\n data.ArticleImageUrl,\n data.Title,\n data.Body,\n data.HasCallToActionButton,\n data.CallToActionButtonText,\n data.CallToActionButtonUrl,\n data.IsDraftArticle,\n data.PublicationDate);\n }\n\n }\n}","module Business {\n export class Articles extends BaseList
{\n constructor(list: Array
) {\n super(_.sortBy(list, a => a.publicationDate).reverse());\n }\n\n public static fromJson(data: any): Articles {\n const list = new Array
();\n _.each(data, (article: any) => {\n list.push(Article.fromJson(article));\n });\n return new this(list);\n }\n\n public getById = (articleId: number): Article | undefined => {\n return _.find(this.list, a => a.articleId === articleId);\n }\n\n public hasConceptArticles = (): boolean => {\n return _.some(this.list, article => article.isDraftArticle);\n }\n\n public hasPublishedArticles = (): boolean => {\n return _.some(this.list, article => !article.isDraftArticle);\n }\n }\n}","module Business {\n export class CalculatedDeal {\n public subtotal: number;\n public earlyBirdDiscount: number;\n public total: number;\n\n constructor(subtotal: number, discount: number, total: number) {\n this.subtotal = subtotal;\n this.earlyBirdDiscount = discount;\n this.total = total;\n }\n\n public static fromJson(data:any): CalculatedDeal {\n return new this(data.Subtotal, data.EarlyBirdDiscount, data.Total);\n }\n }\n}","module Business {\n export class CalculatedOrder {\n public dealsSubTotal: number;\n\n public earlyBirdDiscount: number;\n public combiDealDiscount: number;\n\n public trophyPackageCost: number;\n public promotionalPackageCost: number;\n public brandingPackageCost: number;\n\n public totalExcVAT: number;\n public percentageVAT: number;\n public vat: number;\n public shippingCostsInEuro: number;\n\n public couponPercentageDiscount: number | undefined;\n public couponDiscount: number;\n public invoiceCost: number;\n\n public netTotal: number;\n public payByInvoiceCost: number;\n\n constructor(\n dealsSubTotal: number,\n earlyBirdDiscount: number,\n combiDealDiscount: number,\n trophyPackageCost: number,\n promotionalPackageCost: number,\n brandingPackageCost: number,\n totalExcVAT: number,\n percentageVAT: number,\n vat: number,\n couponPercentageDiscount: number | undefined,\n couponDiscount: number,\n invoiceCost: number,\n netTotal: number,\n payByInvoiceCost: number,\n shippingCostsInEuro: number\n ) {\n this.dealsSubTotal = dealsSubTotal;\n this.earlyBirdDiscount = earlyBirdDiscount;\n this.combiDealDiscount = combiDealDiscount;\n this.trophyPackageCost = trophyPackageCost;\n this.promotionalPackageCost = promotionalPackageCost;\n this.brandingPackageCost = brandingPackageCost,\n this.totalExcVAT = totalExcVAT;\n this.percentageVAT = percentageVAT;\n this.vat = vat;\n this.couponPercentageDiscount = couponPercentageDiscount;\n this.couponDiscount = couponDiscount;\n this.invoiceCost = invoiceCost;\n this.netTotal = netTotal;\n this.payByInvoiceCost = payByInvoiceCost;\n this.shippingCostsInEuro = shippingCostsInEuro;\n }\n\n public static fromJson(data: any): Business.CalculatedOrder {\n return new this(\n data.DealsSubTotal,\n data.EarlyBirdDiscount,\n data.CombiDealDiscount,\n data.TrophyPackageCost,\n data.PromotionalPackageCost,\n data.BrandingPackageCost,\n data.TotalExcVAT,\n data.PercentageVAT,\n data.VAT,\n data.CouponPercentageDiscount,\n data.CouponDiscount,\n data.InvoiceCost,\n data.NetTotal,\n data.PayByInvoiceCost,\n data.ShippingCostsInEuro\n );\n }\n }\n}","module Business {\n export class CombiDeal {\n public id: number;\n public marketId: number;\n public dealMarketId: number;\n public dealGameId: number;\n public discountPercentage: number;\n\n\n constructor(id: number,\n marketId: number,\n dealMarketId: number,\n dealGameId: number,\n discountPercentage: number) {\n\n this.id = id;\n this.marketId = marketId;\n this.dealMarketId = dealMarketId;\n this.dealGameId = dealGameId;\n this.discountPercentage = discountPercentage;\n }\n\n public static fromJson = (data: any) => {\n return new CombiDeal(data.Id, data.MarketId, data.DealMarketId, data.DealGameId, data.DiscountPercentage);\n }\n }\n}","/// \n\nmodule Business {\n export class CombiDeals extends BaseList {\n\n public getByDealMarketId = (marketId: number) => {\n const result = this.list.filter(cd => cd.dealMarketId === marketId);\n if (result.length > 0)\n return result[0];\n\n return null;\n }\n\n public static fromJson(data: any): CombiDeals {\n const list = new Array();\n _.each(data, (combiDeal: any) => {\n list.push(CombiDeal.fromJson(combiDeal));\n });\n return new this(list);\n }\n }\n}","module Business {\n export class Deal {\n public id: number;\n public packageType: PackageType;\n public participantCount: number;\n public price: number;\n public upgradeFromPackageId: number;\n public imageUrl: string;\n public upgradeOnly: boolean;\n\n constructor(id: number, packageType: PackageType, participantCount: number, price: number, upgradeFromPackageId: number, imageUrl: string, upgradeOnly: boolean) {\n this.id = id;\n this.packageType = packageType;\n this.participantCount = participantCount;\n this.price = price;\n this.upgradeFromPackageId = upgradeFromPackageId;\n this.imageUrl = imageUrl;\n this.upgradeOnly = upgradeOnly;\n }\n\n public updateImageUrl = (imageUrl: string) => {\n this.imageUrl = imageUrl;\n }\n\n public static fromJson = (data: any): Deal => {\n return new Deal(data.Id, data.Package, data.ParticipantCount, data.Price, data.UpgradeFromPackageId, data.ImageUrl, data.UpgradeOnly);\n }\n }\n}","/// \nmodule Business {\n export class Deals extends BaseList {\n\n public getByDealId = (dealId: number) => {\n return _.find(this.list, u => u.id === dealId);\n }\n\n public getUpgrade = (currentSelectedPackage: PackageType, packageType: PackageType) => {\n return _.find(this.list, u => u.upgradeFromPackageId === currentSelectedPackage && packageType === u.packageType);\n }\n\n public static fromJson = (data: any): Deals => {\n const list = new Array();\n _.each(data, (deal: any) => {\n list.push(Deal.fromJson(deal));\n });\n return new Deals(list);\n }\n }\n}","module Business {\n export class EarlyBirdDiscount {\n public marketId: number;\n public discount: number;\n public expiryDate: any;\n\n constructor(marketId: number, discount: number, expiryDate: any) {\n this.marketId = marketId;\n this.discount = discount;\n this.expiryDate = expiryDate;\n }\n\n public isExpired = () => {\n return moment.utc().isAfter(moment.utc(this.expiryDate).add(23, 'hours').add(59, 'minutes').add(59, 'seconds'));\n }\n\n public static fromJson(data: any): Business.EarlyBirdDiscount {\n return data != null ? new this(data.MarketId, data.Discount, data.ExpiryDate) : null;\n }\n }\n}","/// \n\nmodule Business {\n export class MarketDealResult {\n public marketId: number;\n public eventName: string;\n public imageUrl: string;\n public marketDeals: Array;\n public gameName: string;\n\n constructor(marketId: number, eventName: string, imageUrl: string, marketDeals: Array, gameName: string) {\n this.marketId = marketId;\n this.eventName = eventName;\n this.imageUrl = imageUrl;\n this.marketDeals = marketDeals;\n this.gameName = gameName;\n }\n\n public getByTablePosition = (packageType: PackageType, participants: number) => {\n const result = this.marketDeals.filter(md => md.packageType === packageType && md.participantCount === participants);\n if (result.length > 0)\n return result[0];\n\n return null;\n }\n\n public getById = (id: number): Deal | null => {\n const result = this.marketDeals.filter(md => md.id === id);\n if (result.length > 0)\n return result[0];\n\n return null;\n }\n\n public getByParticipantCount = (participantCount: number): Deal | null => {\n const result = this.marketDeals.filter(md => md.participantCount === participantCount);\n if (result.length > 0)\n return result[0];\n\n return null;\n }\n\n public filterByType = (packageType: PackageType): void => {\n this.marketDeals = this.marketDeals.filter(md => md.packageType === packageType);\n }\n\n public filterRegularOnly = (): void => {\n this.marketDeals = this.marketDeals.filter(md => !md.upgradeOnly);\n }\n\n public getRecommendedDeal = (requestedParticipants: number, packageType: PackageType): Deal => {\n const packageDeals = _.chain(this.marketDeals).filter(md => md.packageType === packageType).sortBy(deal => deal.participantCount).value();\n\n let previous = 0;\n\n for (let i = 0; i < packageDeals.length; i++) {\n const current = packageDeals[i].participantCount;\n const next = (i !== packageDeals.length - 1) ? packageDeals[i + 1].participantCount : null;\n\n if ((requestedParticipants === current) || (previous === 0 && requestedParticipants <= current) || (next == null))\n return packageDeals[i];\n\n if (requestedParticipants >= current && requestedParticipants < next)\n return packageDeals[i + 1];\n\n previous = current;\n }\n return _.first(packageDeals);\n }\n\n public static fromJson(data: any): MarketDealResult {\n const marketDeals = new Array();\n _.each(data.MarketDeals, (marketDeal: any) => {\n marketDeals.push(Deal.fromJson(marketDeal));\n });\n return new this(data.MarketId, data.EventName, data.ImageUrl, marketDeals, data.GameName);\n }\n }\n}","/// \nmodule Business {\n export class MarketDealResults extends BaseList {\n\n public getByDealId = (dealId: number): MarketDealResult | null => {\n const result = this.list.filter(mdr => mdr.getById(dealId));\n if (result.length > 0)\n return result[0];\n\n return null;\n }\n\n public getByMarketId = (marketId: number): MarketDealResult | null => {\n const result = this.list.filter(mdr => mdr.marketId === marketId);\n if (result.length > 0)\n return result[0];\n\n return null;\n }\n\n public static fromJson(data: any): MarketDealResults {\n const list = new Array();\n _.each(data, (marketDealResult: any) => {\n list.push(MarketDealResult.fromJson(marketDealResult));\n });\n return new this(list);\n }\n }\n}","module Business {\n export class Coupon {\n public code: string;\n public isValid: boolean;\n\n constructor(code: string, isValid: boolean) {\n this.code = code;\n this.isValid = isValid;\n }\n\n public static fromJson = (data: any) => {\n return new Coupon(data.Code, data.IsValid);\n }\n }\n}","/// \n\nmodule Business {\n export class FaqCategories extends BaseList {\n\n\n constructor(faqCategories: Array) {\n super(faqCategories);\n }\n\n public static fromJson = (data: any): FaqCategories => {\n const categories = new Array();\n _.each(data, (model: any) => {\n categories.push(FaqCategory.fromJson(model));\n\n });\n\n return new FaqCategories(categories);\n }\n\n }\n}","/// \n\nmodule Business {\n export class FaqCategory {\n public id: number;\n public languageId: number;\n public faqType: FaqType;\n public order: number;\n public header: string;\n public faqQuestions: FaqQuestions;\n\n constructor(id: number, languageId: number, faqType: FaqType, order: number, header: string, faqQuestions: FaqQuestions) {\n this.id = id;\n this.languageId = languageId;\n this.faqType = faqType;\n this.order = order;\n this.header = header;\n this.faqQuestions = faqQuestions;\n }\n\n public static fromJson = (data: any): FaqCategory => {\n const faqQuestions = FaqQuestions.fromJson(data.Faqs);\n\n return new FaqCategory(\n data.Id,\n data.LanguageId,\n data.FaqType,\n data.Order,\n data.Header,\n faqQuestions);\n }\n }\n}","module Business {\n export class FaqQuestion {\n public question: string;\n public answer: string;\n\n constructor(question: string, answer: string) {\n this.question = question;\n this.answer = answer;\n }\n\n public static fromJson(data: any) {\n return new this(data.Question, data.Answer);\n }\n\n }\n}","/// \n\nmodule Business {\n export class FaqQuestions extends BaseList {\n\n public static fromJson = (data: any): FaqQuestions => {\n const questions: Array = new Array();\n _.each(data, (model: any) => {\n questions.push(FaqQuestion.fromJson(model));\n })\n return new FaqQuestions(questions);\n }\n }\n}","module Business {\n export class Interstitial {\n public id: number;\n public imageName: string;\n public imagePath: string;\n public imageLink: string;\n public isActive: boolean;\n\n constructor(\n id: number,\n imageName: string,\n imagePath: string,\n imageLink: string,\n isActive: boolean) {\n this.id = id\n this.imageName = imageName\n this.imagePath = imagePath\n this.imageLink = imageLink\n this.isActive = isActive\n }\n\n public static fromJson = (data: any) => {\n return new Interstitial(data.Id, data.ImageName, data.ImagePath, data.ImageLink, data.IsActive)\n }\n }\n}","module Business {\n export class Interstitials extends BaseList {\n constructor(list: Array){\n super(list);\n }\n\n public static fromJson(data: any): Interstitials {\n const list = new Array();\n _.each(data, (interstitial: any) => {\n list.push(Interstitial.fromJson(interstitial));\n })\n return new this(list)\n }\n\n public getById = (interstitialId: number): Interstitial | undefined => {\n return _.find(this.list, a => a.id === interstitialId);\n }\n\n public getActive = (): Interstitial | undefined => {\n return _.find(this.list, a => a.isActive === true);\n }\n\n }\n}","module Business {\n export class InviteContent {\n public mailContent: string;\n public uniqueInviteUrl: string;\n public universalInviteUrl: string;\n public hasSubLeagues: boolean;\n\n\n constructor(mailContent: string, uniqueInviteUrl: string, universalInviteUrl: string, hasSubLeagues: boolean) {\n this.mailContent = mailContent;\n this.uniqueInviteUrl = uniqueInviteUrl;\n this.universalInviteUrl = universalInviteUrl;\n this.hasSubLeagues = hasSubLeagues;\n }\n\n\n public getInviteLink = (isMainLeague: boolean): string => {\n return isMainLeague ? this.universalInviteUrl : this.uniqueInviteUrl;\n }\n\n public static fromJson = (data: any) => {\n return new InviteContent(data.MailContent, data.UniqueInviteUrl, data.UniversalInviteUrl, data.HasSubLeagues);\n }\n\n public hasNull = (): boolean => {\n return this.mailContent == null || this.uniqueInviteUrl == null || this.universalInviteUrl == null;\n }\n }\n}","module Business {\n export class PackageOption {\n public id :number;\n public packageType: PackageType;\n public isImportantDifference: boolean;\n public marketId: number;\n public label: string;\n\n constructor(id: any, packageType: any, importantDifference: any, marketId: any, label: any) {\n this.id = id;\n this.packageType = packageType;\n this.isImportantDifference = importantDifference;\n this.marketId = marketId;\n this.label = label;\n }\n\n public static fromJson(data: any): Business.PackageOption {\n return new this(data.Id, data.Package, data.IsImportantDifference, data.MarketId, data.Label);\n }\n }\n}","module Business {\n export class PackageOptionDescription {\n public title: string;\n public description: string;\n public hasSlider: boolean;\n public imageUrls: Array;\n\n constructor(title: string, description: string, hasSlider: boolean, imageUrls: Array) {\n this.title = title;\n this.description = description;\n this.hasSlider = hasSlider;\n this.imageUrls = imageUrls;\n }\n\n public static fromJson(data: any): Business.PackageOptionDescription {\n var imageUrls: Array = new Array();\n\n _.each(data.ImageUrls, (s) => imageUrls.push(s.toString()));\n\n return new this(data.Header, data.Body, data.HasSlider, imageUrls);\n }\n }\n}","module Business {\n export class PackageOptionsResult {\n\n public packageOptions: Array;\n\n constructor(packageOptions: Array) {\n this.packageOptions = packageOptions;\n }\n\n public static fromJson(data: any): Business.PackageOptionsResult {\n const options = new Array();\n _.each(data, (packageOption: any) => {\n options.push(PackageOption.fromJson(packageOption));\n })\n return new this(options);\n }\n }\n}","module Business {\n export class Participant {\n public firstName: string;\n public fullLastName: string;\n public userId: number;\n public regionId: number;\n public username: string;\n public userPredictionStatusList: Array;\n\n constructor(firstName: string, fullLastName: string, userId: number, regionId: number, username: string, userPredictionStatusList: Array) {\n this.firstName = firstName;\n this.fullLastName = fullLastName;\n this.userId = userId;\n this.regionId = regionId;\n this.username = username;\n this.userPredictionStatusList = userPredictionStatusList;\n }\n\n public static fromJson(data: any) {\n return new this(data.FirstName, data.FullLastName, data.UserId, data.RegionId, data.UserName, data.UserPredictionStatusList);\n }\n }\n}","/// \n\nmodule Business {\n export class Participants extends BaseList {\n public currentPage: number;\n public pagesCount: number;\n public participantCount: number;\n public leagueId: number;\n public leagueName: string;\n public predictionStatusColumns: Array;\n public prefixId: string;\n public isCorporateMainLeague: boolean;\n public largeGroupOfParticipants: boolean;\n\n constructor(currentPage: number, pagesCount: number, participantCount: number, leagueId: number, leagueName: string, predictionStatusColumns: Array, participants: Array) {\n super(participants);\n this.currentPage = currentPage;\n this.pagesCount = pagesCount;\n this.participantCount = participantCount;\n this.leagueId = leagueId;\n this.leagueName = leagueName;\n this.prefixId = \"participant-search-table\";\n\n this.predictionStatusColumns = predictionStatusColumns;\n }\n\n public clone = (): Participants => new Participants(\n this.currentPage,\n this.pagesCount,\n this.participantCount,\n this.leagueId,\n this.leagueName,\n this.predictionStatusColumns,\n this.list);\n\n public static fromJson = (data: any): Participants => {\n const list = new Array();\n _.each(data.AcceptedParticipants, (participant: any) => {\n list.push(Participant.fromJson(participant));\n });\n return new Participants(data.CurrentPage, data.PagesCount, data.ParticipantCount, data.PoolId, data.PoolName, data.PredictionStatusColumns, list);\n }\n }\n}","module Business {\n export class Amount {\n public readonly currency: string;\n public readonly value: number;\n constructor(data: any) {\n this.currency = data.Currency;\n this.value = data.Value;\n }\n }\n}\n","module Business {\n export class Issuer {\n public id: string;\n public name: string;\n\n constructor(id: string, name: string) {\n this.id = id;\n this.name = name;\n }\n\n public getLogoUrl = (cdnUrl: string, brandCode: string): string => {\n return `${cdnUrl}/images/orders/${brandCode}.${this.id}.png`;\n }\n\n public static fromJson(data: any): Issuer {\n return new Issuer(data.Id, data.Name);\n }\n }\n}","module Business {\n export class Issuers extends BaseList {\n public static fromJson(data: any): Issuers {\n const list = new Array();\n _.each(data, (issuer: any) => {\n list.push(Issuer.fromJson(issuer));\n });\n return new Issuers(list);\n }\n\n public sortByName = () => {\n const list = _.sortBy(this.list, (issuer: Issuer) => issuer.name);\n return new Issuers(list);\n }\n }\n}","module Business {\n export class PaymentMethod {\n constructor(\n public name: string,\n public brandCode: string,\n public logoUrl: string,\n public paymentGroupType: string,\n public issuers: BaseList) { }\n\n public static fromJson = (data: any): PaymentMethod => {\n const issuers = Issuers.fromJson(data.Issuers);\n\n return new PaymentMethod(\n data.Name,\n data.BrandCode,\n data.LogoUrl,\n data.BusinessPaymentGroupType,\n issuers.sortByName());\n };\n\n public hasIssuers = (): boolean => this.issuers && this.issuers.any();\n }\n}","module Business {\n export class PaymentMethodGroup {\n constructor(\n public brandCode: string,\n public businessPaymentGroupType: string,\n public paymentMethods: PaymentMethod[]) { }\n\n public static fromJson = (data: any[]): PaymentMethodGroup => {\n const brandCode = data[0]?.BrandCode ?? \"\";\n const businessPaymentGroupType = data[0]?.BusinessPaymentGroupType ?? \"\";\n const paymentMethods = data.map(i => PaymentMethod.fromJson(i));\n\n return new PaymentMethodGroup(brandCode, businessPaymentGroupType, paymentMethods);\n }\n\n public logoUrl = () => {\n if (this.paymentMethods.length === 1) {\n return this.paymentMethods[0].logoUrl;\n }\n else {\n return this.businessPaymentGroupType.toLocaleLowerCase() + \".png\";\n }\n }\n }\n}","module Business {\n export class PaymentMethods {\n constructor(\n public primaryPaymentMethods: PaymentMethodGroup[],\n public secondaryPaymentMethods: PaymentMethodGroup[]) { }\n\n public static fromJson = (data: any): PaymentMethods => {\n const ppm = data.PrimaryPaymentMethods?.map(i => PaymentMethodGroup.fromJson(i)) ?? [];\n const spm = data.SecondaryPaymentMethods?.map(i => PaymentMethodGroup.fromJson(i)) ?? [];\n\n return new PaymentMethods(ppm, spm);\n }\n\n public hasSecondaryPaymentMethods = (): boolean => this.secondaryPaymentMethods && this.secondaryPaymentMethods.length > 0;\n\n public singleSecondaryPaymentGroup = (): PaymentMethodGroup | undefined => {\n if (!this.hasSecondaryPaymentMethods()) return undefined;\n\n const allPaymentMethods = this.secondaryPaymentMethods.map(i => i.paymentMethods);\n const reducedAllPaymentMethods = [].concat(...allPaymentMethods) as PaymentMethod[];\n\n const firstPaymentGroup = this.secondaryPaymentMethods[0];\n\n return new PaymentMethodGroup(\n firstPaymentGroup.brandCode,\n firstPaymentGroup.businessPaymentGroupType,\n reducedAllPaymentMethods);\n };\n }\n}","module Business {\n export class PaymentSession {\n public readonly channel: string;\n public readonly amount: Amount;\n public readonly countryCode: string;\n public readonly expiresAt: string;\n public readonly id: string;\n public readonly merchantAccount: string;\n public readonly reference: string;\n public readonly returnUrl: string;\n public readonly sessionData: string;\n public readonly shopperReference: string;\n public readonly shopperStatement: string;\n\n constructor(data: any) {\n this.channel = data.Channel\n this.amount = new Amount(data.Amount)\n this.countryCode = data.CountryCode\n this.expiresAt = data.ExpiresAt\n this.id = data.Id\n this.merchantAccount = data.MerchantAccount\n this.reference = data.Reference\n this.returnUrl = data.ReturnUrl\n this.sessionData = data.SessionData\n this.shopperReference = data.ShopperReference\n this.shopperStatement = data.ShopperStatement\n }\n\n public getConfig(enviroment: string, clientKey: string, onPaymentCompleted: (resultCode: AdyenAuthResult) => void) {\n return {\n environment: enviroment,\n clientKey: clientKey,\n session: this,\n onPaymentCompleted: (result: any) => {\n const authResult = parseEnum(result.resultCode, AdyenAuthResult);\n onPaymentCompleted(authResult);\n },\n onError: (error, component) => {\n console.error(JSON.stringify({ error, component, payload: this.serialize() }));\n },\n locale: getCulture().toString(),\n };\n }\n\n private serialize() {\n return ({\n channel: this.channel,\n amount: new Amount(this.amount),\n countryCode: this.countryCode,\n expiresAt: this.expiresAt,\n id: this.id,\n merchantAccount: this.merchantAccount,\n reference: this.reference,\n returnUrl: this.returnUrl,\n shopperReference: this.shopperReference,\n shopperStatement: this.shopperStatement,\n })\n }\n }\n}","module Business {\n export class Discount {\n public label: string;\n public percentage: number;\n\n constructor(label: string, percentage: number) {\n this.label = label;\n this.percentage = percentage;\n }\n\n public static fromJson(data: any) {\n return new this(data.Label, data.Percentage);\n }\n }\n}","module Business {\n export class Invoice {\n public invoiceFile: string;\n public invoiceNumber: string;\n\n constructor(invoiceFile: string, invoiceNumber: string) {\n this.invoiceFile = invoiceFile;\n this.invoiceNumber = invoiceNumber;\n }\n\n public static fromJson(data: any) {\n return new this(data.InvoiceFile, data.InvoiceNumber);\n }\n\n public base64ToArrayBuffer() {\n var binaryString = window.atob(this.invoiceFile);\n var binaryLen = binaryString.length;\n var bytes = new Uint8Array(binaryLen);\n for (var i = 0; i < binaryLen; i++) {\n var ascii = binaryString.charCodeAt(i);\n bytes[i] = ascii;\n }\n return bytes;\n }\n }\n}","/// \n/// \n\nmodule Business {\n export class Purchase {\n public date: string;\n public discount: Discount | null;\n public eventName: string;\n public gameName: string;\n public imageUrl: string;\n public invoiceNumber: string;\n public orderId: number;\n public packageName: string;\n public participantAmount: number;\n public paymentAmount: number;\n public purchaseStatus: PurchaseStatus;\n\n constructor(date: string, discount: Discount | null, eventName: string, gameName: string, imageUrl: string, invoiceNumber: string,\n orderId: number, packageName: string, participantAmount: number, paymentAmount: number, purchaseStatus: PurchaseStatus) {\n this.date = date;\n this.discount = discount;\n this.eventName = eventName;\n this.gameName = gameName;\n this.imageUrl = imageUrl;\n this.invoiceNumber = invoiceNumber;\n this.orderId = orderId;\n this.packageName = packageName;\n this.participantAmount = participantAmount;\n this.paymentAmount = paymentAmount;\n this.purchaseStatus = purchaseStatus;\n }\n\n public static fromJson(data: any) {\n const discount = data.Discount ? Discount.fromJson(data.Discount) : null;\n\n return new this(data.Date, discount, data.EventName, data.GameName, data.ImageUrl,\n data.InvoiceNumber, data.OrderId, data.PackageName, data.ParticipantAmount,\n data.PaymentAmount, data.PurchaseStatus);\n }\n\n public hasDiscount() {\n return this.discount != null;\n }\n\n public isUpgrade() {\n return this.participantAmount == null || this.participantAmount < 1;\n }\n\n public hasPaid = () => this.purchaseStatus === PurchaseStatus.Paid;\n\n public invoiceInProgress = () => this.purchaseStatus === PurchaseStatus.InvoiceInProgress;\n\n public participantsText() {\n return TranslationData.get(\"Business.Participants\");\n }\n }\n}","module Business {\n export interface PurchaseDetail {\n countryCode: string\n countryId: number;\n couponCode: string\n dealIds: number[];\n salesPackageIdsWithAmounts: Record;\n salesPackagePersonalizationTexts: Record;\n headerImageUrl: string\n gameId: number;\n mainDealId: number;\n marketId: number;\n isUpgrade: boolean;\n packageUpgradeDealId?: number;\n participantUpgradeDealId?: number\n }\n\n export const createPurchaseDetail = (data: any): PurchaseDetail => {\n if (!data)\n return;\n\n return {\n countryCode: data.CountryCode,\n countryId: data.CountryId,\n couponCode: data.CouponCode,\n dealIds: data.DealIds,\n salesPackageIdsWithAmounts: data.SalesPackageIdsWithAmounts,\n salesPackagePersonalizationTexts: data.SalesPackagePersonalizationTexts,\n headerImageUrl: data.HeaderImageUrl,\n gameId: data.GameId,\n mainDealId: data.MainDealId,\n marketId: data.MarketId,\n isUpgrade: data.IsUpgrade,\n packageUpgradeDealId: data.PackageUpgradeDealId,\n participantUpgradeDealId: data.ParticipantUpgradeDealId\n }\n }\n}","module Business {\n export enum PurchaseStatus {\n Open = 0,\n Paid = 1,\n InvoiceInProgress = 2\n }\n}","/// \n\nmodule Business {\n export class Purchases extends BaseList {\n\n constructor(purchases: Array) {\n super(purchases);\n }\n\n public static fromJson(data: any) {\n const list = new Array();\n _.each(data, (purchase: any) => {\n list.push(Purchase.fromJson(purchase));\n });\n return new this(list);\n }\n }\n}","module Business {\n export interface MarketSalesPackage {\n id: number;\n type: SalesPackageType;\n price: number;\n imageUrls: string[];\n minPurchasesRequired: number;\n inStock: boolean;\n }\n\n export const createMarketSalesPackageFromJson = (data: any): MarketSalesPackage => {\n return { id: data.Id, type: data.Type, price: data.Price, imageUrls: data.ImageUrls, minPurchasesRequired: data.MinPurchasesRequired, inStock: data.InStock };\n }\n}","module Business {\n export class MarketSalesPackagesResult {\n public marketSalesPackages: MarketSalesPackage[];\n public minPurchaseByType: Record;\n\n constructor(marketSalesPackages: MarketSalesPackage[], minPurchaseByType: Record) {\n this.marketSalesPackages = marketSalesPackages;\n this.minPurchaseByType = minPurchaseByType\n }\n\n public hasSalesPackagesOfType = (type: SalesPackageType) => this.marketSalesPackages.some(x => x.type === type);\n\n public getSalesPackagesByPageType = (pageType: SalesPackageType) => {\n switch (pageType) {\n case SalesPackageType.BrandingPackage:\n return this.marketSalesPackages.filter(x => x.type === SalesPackageType.BrandingPackage);\n case SalesPackageType.PromotionalPackage:\n return this.marketSalesPackages.filter(x => x.type === SalesPackageType.PromotionalPackage);\n case SalesPackageType.TrophyPackage:\n return this.marketSalesPackages.filter(x => x.type === SalesPackageType.TrophyPackage);\n }\n }\n\n public getById = (id: number) => {\n return _.find(this.marketSalesPackages, p => p.id === id);\n }\n\n public static fromJson = (data: any) => {\n const marketSalesPackages = new Array();\n _.each(data.MarketSalesPackages, (marketSalesPackage: any) => {\n marketSalesPackages.push(createMarketSalesPackageFromJson(marketSalesPackage));\n });\n const minPurchaseByType: Record = data.MinPurchaseByType\n\n return new MarketSalesPackagesResult(marketSalesPackages, minPurchaseByType);\n }\n }\n}","module Business {\n export enum SalesPackageType {\n BrandingPackage = 0,\n PromotionalPackage = 1,\n TrophyPackage = 2\n }\n\n export const hasSalesPackage = (salesPackageTypes: SalesPackageType[], salesPackage: SalesPackageType) => {\n return salesPackageTypes.indexOf(salesPackage) > -1;\n }\n}","///\n///\n///\n///\n\nmodule Business {\n\n export class SalesUser {\n public countryId: number;\n public clientId: number;\n public mainLeagueId: number | null;\n public roles: SalesUserRoles;\n public packageType: PackageType;\n public marketId: number;\n\n public clientMarketHeader: ClientMarketHeader;\n public clientMarkets: ClientMarkets;\n public marketActions: MarketActions;\n public leagueActionsCollection: LeagueActionsCollection;\n public salesPackageTypes: SalesPackageType[];\n\n constructor(\n countryId: number,\n clientId: number,\n mainLeagueId: number | null,\n roles: SalesUserRoles,\n packageType: PackageType,\n marketId: number,\n clientMarketHeader: ClientMarketHeader,\n clientMarkets: ClientMarkets,\n marketActions: MarketActions,\n leagueActions: LeagueActionsCollection,\n salesPackageTypes: SalesPackageType[]\n ) {\n this.countryId = countryId;\n this.roles = roles;\n this.packageType = packageType;\n this.marketId = marketId;\n this.clientMarketHeader = clientMarketHeader;\n this.clientMarkets = clientMarkets;\n this.marketActions = marketActions;\n this.clientId = clientId;\n this.mainLeagueId = mainLeagueId;\n this.leagueActionsCollection = leagueActions;\n this.salesPackageTypes = salesPackageTypes;\n\n this.clientMarkets.updateWithLeagueActions(this.leagueActionsCollection);\n }\n\n public updateMainLeagueId = (leagueId: number): void => {\n this.mainLeagueId = leagueId;\n }\n\n public isClientAdministrator = (): boolean => {\n return this.roles.isClientAdministrator();\n }\n\n public isSubLeagueAdministrator = (): boolean => {\n return this.roles.isSubLeagueAdministrator();\n }\n\n public containsMarket = (marketId: number): boolean => {\n return _.any(this.clientMarkets.list, c => c.marketId === marketId);\n }\n\n public hasPurchasedMarket = (marketId: number): boolean => {\n return _.any(this.clientMarkets.list, c => c.marketId === marketId && c.hasPurchased);\n }\n\n public firstOrDefaultMarket = (): ClientMarket | undefined => {\n return this.clientMarkets?.first();\n }\n\n public hasPromotionalPackage = () => {\n return hasSalesPackage(this.salesPackageTypes, SalesPackageType.PromotionalPackage);\n }\n\n public hasBrandingPackage = () => {\n return hasSalesPackage(this.salesPackageTypes, SalesPackageType.BrandingPackage);\n }\n\n public static fromJson(data: any) {\n return new this(\n data.CountryId,\n data.ClientId,\n data.MainLeagueId,\n SalesUserRoles.fromJson(data.UserRoles),\n data.PackageType,\n data.MarketId,\n ClientMarketHeader.fromJson(data.ClientMarketParticipantStatistics),\n ClientMarkets.fromJson(data.ClientMarkets),\n MarketActions.fromJson(data),\n LeagueActionsCollection.fromJson(data.LeagueActionsCollection),\n data.SalesPackageTypes\n );\n }\n }\n}","///\n\nmodule Business {\n export class SalesUserRoles extends BaseList {\n public isClientAdministrator = (): boolean => {\n return _.any(this.list, r => r === RoleType.ClientAdministrator);\n }\n\n public isSubLeagueAdministrator = (): boolean => {\n return _.any(this.list, r => r === RoleType.SubLeagueAdministrator);\n }\n\n public static fromJson = (data: any): SalesUserRoles => {\n const list = new Array();\n _.each(data, (role: any) => {\n list.push(role);\n });\n return new SalesUserRoles(list);\n }\n }\n}","module Business {\n export class InviteMail {\n public title: string;\n public body: string;\n public headerLogo: string;\n public headerImage: string;\n\n constructor(title: string, body: string, headerLogo: string, headerImage: string) {\n this.title = title;\n this.body = body;\n this.headerLogo = headerLogo;\n this.headerImage = headerImage;\n }\n\n public static fromJson(data: any) {\n return new this(data.Title, data.Body, data.HeaderLogo, data.HeaderImage);\n }\n }\n}","module Business {\n\n export class SubLeague {\n public leagueId: number;\n public leagueName: string;\n public isMainLeague: boolean;\n public adminStatusList: Array;\n public numberOfParticipants: number;\n public numberOfParticipantsWithCompletedPrediction: number;\n public subLeagueRank: number;\n public logoFileName: string;\n public admins: Administrators;\n\n constructor(leagueId: number,\n leagueName: string,\n isMainLeague: boolean,\n adminStatusList: Array,\n admins: Administrators,\n numberOfParticipants: number,\n numberOfParticipantsWithCompletedPrediction: number,\n subLeagueRank: number,\n logoFileName: string) {\n this.leagueId = leagueId;\n adminStatusList = adminStatusList ?? new Array();\n while (adminStatusList.length < 2) {\n adminStatusList.push(undefined);\n }\n\n this.admins = admins;\n this.leagueName = leagueName;\n this.isMainLeague = isMainLeague;\n this.adminStatusList = adminStatusList;\n this.numberOfParticipants = numberOfParticipants;\n this.numberOfParticipantsWithCompletedPrediction = numberOfParticipantsWithCompletedPrediction;\n this.subLeagueRank = subLeagueRank;\n this.logoFileName = logoFileName;\n }\n\n public getLogoUrl = (cdnUrl: string): string => {\n return `${cdnUrl}/${this.logoFileName}`;\n }\n\n public updateLogoFileName = (logoFileName: string) => {\n this.logoFileName = logoFileName;\n }\n\n public updateAdminStatusList = (list: Array) => {\n this.adminStatusList = list;\n }\n\n public static fromJson(data: any) {\n const admins = Administrators.fromJson(data.Admins);\n while (admins.count() < 2) {\n admins.add(new Administrator(0, 0, \"-\", \"-\", ManagementInvitationStatus.Pending, false, \"-\", \"\", 0, 0, \"\"))\n }\n return new this(data.LeagueId, data.LeagueName, data.IsMainLeague, data.AdminStatusList, admins, data.NumberOfParticipants, data.NumberOfParticipantsWithCompletedPrediction, data.SubLeagueRank, data.LogoFileName);\n }\n }\n}","/// \n\nmodule Business {\n export class SubLeagues extends BaseList {\n constructor(subLeagues: Array) {\n super(_.chain(subLeagues).sortBy(sl => sl.leagueName).sortBy(sl => !sl.isMainLeague).value());\n }\n\n public delete = (leagueId: number): void => {\n const index = _.findIndex(this.list, l => l.leagueId === leagueId);\n if (index > -1) {\n this.list.splice(index, 1);\n }\n }\n\n public getById = (leagueId: number): SubLeague | undefined => {\n return _.find(this.list, league => {\n return league.leagueId === leagueId;\n });\n }\n\n public getSubLeagues = () => new SubLeagues(this.list.filter(l => !l.isMainLeague));\n\n public getMainLeague = () => _.find(this.list, l => l.isMainLeague);\n\n public containsUser = (userId: number) => _.any(this.list, s => s.admins.getById(userId) != null);\n\n public static fromJson(data: any) {\n const list = new Array();\n _.each(data, (subLeague: any) => {\n list.push(SubLeague.fromJson(subLeague));\n });\n return new this(list);\n }\n }\n}","/// \n\nmodule Business {\n export class GameTab {\n public gameId: number;\n public label: string;\n public headerImageUrl: string;\n public salesHeaderImageUrl: string;\n public carouselImageUrls: Array;\n public marketTabs: Array;\n\n constructor(gameId: number, label: string, headerImageUrl: string, salesImageUrl: string, carouselImageUrls: Array, marketTabs: Array) {\n this.gameId = gameId;\n this.label = label;\n this.marketTabs = marketTabs;\n this.headerImageUrl = headerImageUrl;\n this.salesHeaderImageUrl = salesImageUrl;\n this.carouselImageUrls = carouselImageUrls;\n }\n\n public static fromJson(data: any): Business.GameTab {\n const marketTabs = new Array();\n _.each(data.MarketTabs, (marketTab: any) => {\n marketTabs.push(MarketTab.fromJson(marketTab));\n });\n\n return new GameTab(data.GameId, data.Label, data.BackgroundImageUrl, data.StoreHeaderImageUrl, data.CarrouselImageUrls, marketTabs);\n }\n }\n}","/// \n\nmodule Business {\n export class GameTabs {\n public defaultSelectedGameId: number;\n public defaultSelectedMarketId: number;\n public gameTabs: Array;\n\n constructor(defaultSelectedGameId: number, defaultSelectedMarketId: number, gameTabs: Array) {\n this.defaultSelectedGameId = defaultSelectedGameId;\n this.defaultSelectedMarketId = defaultSelectedMarketId;\n this.gameTabs = gameTabs;\n }\n\n public getByGameId = (gameId: number): GameTab | undefined => {\n return _.find(this.gameTabs, g => g.gameId === gameId);\n }\n\n public getByMarketId = (marketId: number): GameTab | undefined => {\n return _.find(this.gameTabs, g => _.any(g.marketTabs, m => m.marketId === marketId));\n }\n\n public static fromJson(data: any): Business.GameTabs {\n const gameTabs = new Array();\n _.each(data.GameTabs, (gameTab: any) => {\n gameTabs.push(GameTab.fromJson(gameTab));\n })\n\n return new GameTabs(data.DefaultSelectedGameId, data.DefaultSelectedMarketId, gameTabs);\n }\n }\n}","module Business {\n export class MarketTab {\n public marketId: number;\n public label: string;\n\n constructor(marketId: number, label: string) {\n this.marketId = marketId;\n if (typeof label === \"undefined\") {\n label = TranslationData.get(`Sales.Package.MarketTab.${marketId}`);\n }\n this.label = label;\n }\n\n public static fromJson(data: any): Business.MarketTab {\n return new MarketTab(data.MarketId, data.Label);\n }\n }\n}","module Business {\n export class PredictableRoundModel {\n public constructor(\n public order: number,\n public isComplete: boolean,\n ) { }\n\n public static fromJson(data: any) {\n return new this(data.Order, data.IsComplete);\n }\n }\n}","/// \n\nmodule Business {\n export class UserPredictionStatus {\n public constructor(\n public marketId: number,\n public predictableRoundModels: PredictableRoundModel[]\n ) { }\n\n public static fromJson(data: any) {\n return new this(data.MarketId, data.PredictableRoundModels.map(i => PredictableRoundModel.fromJson(i)));\n }\n }\n}","module Business {\n export class UserPredictionStatuses {\n constructor(\n public userId: number,\n public predictableRoundModels: PredictableRoundModel[],\n ) { }\n\n public static fromJson(data: any[]) {\n return data.map(itemData =>\n new this(itemData.UserId, itemData.PredictableRoundModels.map(predictableRoundData => PredictableRoundModel.fromJson(predictableRoundData)))\n );\n }\n }\n}","module Business {\n export class CallingCodeDropDownRenderer {\n private callingCodeDropDownTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (countries: Platform.Countries, callback: Function): void => {\n if (this.callingCodeDropDownTemplate == null) {\n this.callingCodeDropDownTemplate = Handlebars.compile($(\"#calling-code-dropdown-template\").html());\n }\n\n $(\".calling-code-dropdown-placeholder\").html(this.callingCodeDropDownTemplate(countries));\n\n callback?.();\n }\n }\n}","module Business {\n export const cropperConfig = (file, additionalSettings) => {\n return {\n viewMode: file?.type == \"image/png\" ? 0 : 1,\n zoomable: false,\n autoCropArea: 0.9,\n background: false,\n modal: false,\n ...additionalSettings\n }\n }\n}","/// \n\nmodule Business {\n export abstract class PurchaseInformationModel {\n\n public countryId: number;\n public payByInvoice: boolean;\n public vatNumber: string;\n public couponCode: string;\n\n public readonly marketId: number;\n public readonly gameId: KnownGameIds;\n public readonly salesPackageIdsWithAmounts: Record;\n public readonly salesPackagePersonalizationTexts: Record;\n\n protected abstract isUpgrade: boolean;\n\n constructor(\n marketId: number,\n gameId: KnownGameIds,\n countryId: number,\n payByInvoice: boolean,\n vatNumber: string,\n couponCode: string,\n salesPackageIdsWithAmounts: Record,\n salesPackagePersonalizationTexts: Record\n ) {\n this.marketId = marketId;\n this.gameId = gameId;\n this.countryId = countryId;\n this.payByInvoice = payByInvoice;\n this.vatNumber = vatNumber;\n this.couponCode = couponCode;\n this.salesPackageIdsWithAmounts = salesPackageIdsWithAmounts != null ? salesPackageIdsWithAmounts : {};\n this.salesPackagePersonalizationTexts = salesPackagePersonalizationTexts != null ? salesPackagePersonalizationTexts : {};\n }\n\n public updateCoupon = (couponCode: string): void => {\n this.couponCode = couponCode;\n }\n\n public setVatNumber = (vatNumber: string) => {\n this.vatNumber = vatNumber;\n }\n\n public updatePayByInvoice = (payByInvoice: boolean): void => {\n this.payByInvoice = payByInvoice;\n }\n\n public getSalesPackageIds = (): number[] => Object.keys(this.salesPackageIdsWithAmounts).map(s => +s);\n\n abstract saveToLocalStorage(): void;\n }\n}","module Business {\n export class ExplanationRenderer {\n private explanationTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (qrCodeUrl: string): void => {\n if (this.explanationTemplate == null) {\n this.explanationTemplate = Handlebars.compile($(\"#invite-explanation-template\").html());\n }\n\n if (qrCodeUrl != null && qrCodeUrl.length > 0) {\n fetch(qrCodeUrl)\n .then(response => response.blob())\n .then(blob => {\n const blobURL = URL.createObjectURL(blob);\n $(\".invite-explanation-placeholder\").html(this.explanationTemplate(new ExplanationRendererModel(blobURL)));\n })\n .catch(err => {\n console.error(err);\n $(\".invite-explanation-placeholder\").html(this.explanationTemplate(ExplanationRendererModel.createEmpty()));\n });\n }\n else {\n $(\".invite-explanation-placeholder\").html(this.explanationTemplate(ExplanationRendererModel.createEmpty()));\n }\n }\n }\n}","module Business {\n export class ExplanationRendererModel {\n public qrCodeUrl: string;\n\n constructor(qrCodeUrl: string) {\n this.qrCodeUrl = qrCodeUrl\n }\n\n public static createEmpty() {\n return new ExplanationRendererModel(null);\n }\n }\n}","module Business {\n export abstract class LoadingOverlayRenderer {\n\n public static showLoadingOverlay = (overlayConfig?: ILoadingOverlayConfig): void => {\n const config: ILoadingOverlayConfig = {\n firstLabelKey: overlayConfig?.firstLabelKey ?? \"Business.LoadingOverlay.LoadingMessage.1\",\n initialMessageDelay: overlayConfig?.initialMessageDelay || 10000,\n secondLabelKey: overlayConfig?.secondLabelKey ?? \"Business.LoadingOverlay.LoadingMessage.2\",\n secondMessageDelay: overlayConfig?.secondMessageDelay || 30000,\n thirdLabelKey: overlayConfig?.thirdLabelKey ?? \"Business.LoadingOverlay.LoadingMessage.3\",\n }\n\n $(\".loading-overlay__text\").text(TranslationData.get(config.firstLabelKey));\n $(\".loading-overlay\").show();\n setTimeout(() => {\n $(\".loading-overlay__text\").text(TranslationData.get(config.secondLabelKey));\n }, config.initialMessageDelay);\n\n setTimeout(() => {\n $(\".loading-overlay__text\").text(TranslationData.get(config.thirdLabelKey));\n }, config.initialMessageDelay + config.secondMessageDelay);\n }\n\n public static hideLoadingOverlay = (): void => {\n $(\".loading-overlay\").hide();\n }\n }\n}","module Business {\n export class PackageOptionPopUpRenderer {\n private _packageOptionPopUpTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(model: PackageOptionPopUpModel, bindHtmlElements: Function): void {\n if (this._packageOptionPopUpTemplate == null) {\n this._packageOptionPopUpTemplate = Handlebars.compile($(\"#packageoptions-popup-template\").html());\n }\n\n $(\".packageoptions-popup-placeholder\").html(this._packageOptionPopUpTemplate(model));\n\n bindHtmlElements();\n\n }\n }\n}\n","module Business {\n export class PackageOptionsTableRenderer {\n private _packageoptionsTableTemplate: HandlebarsTemplateDelegate;\n private _packageoptionsTableRowTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(packageoptions: PackageOptionsResult, recommendedPackage: PackageType, bindHtmlElements: Function): void {\n if (this._packageoptionsTableTemplate == null) {\n this._packageoptionsTableTemplate = Handlebars.compile($(\"#packageoptions-table-template\").html());\n }\n\n if (this._packageoptionsTableRowTemplate == null) {\n this._packageoptionsTableRowTemplate = Handlebars.compile($(\"#packageoptions-table-row-template\").html());\n Handlebars.registerPartial(\"packageoptionstablerowpartial\", this._packageoptionsTableRowTemplate);\n }\n\n var packageoptionsTable: PackageOptionsTableModel;\n var packageOptionModels: Array = new Array();\n packageoptions.packageOptions.forEach(po => {\n packageOptionModels.push(new PackageOptionModel(po.id, po.packageType, po.isImportantDifference, po.label));\n });\n packageoptionsTable = new PackageOptionsTableModel(recommendedPackage, null, packageOptionModels);\n\n\n $(\".packageoptions-table-placeholder\").html(this._packageoptionsTableTemplate(packageoptionsTable));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class ClientMarketHeaderModel {\n\n public sponsoredParticipantCount: number;\n public paidByOther: number;\n\n public maxSponsoredParticipantCount: number;\n\n constructor(paidByClient: number, paidByOther: number, maxSponsoredParticipantCount: number) {\n this.sponsoredParticipantCount = paidByClient;\n this.paidByOther = paidByOther;\n this.maxSponsoredParticipantCount = maxSponsoredParticipantCount;\n }\n\n public totalParticipants = (): number => {\n return this.sponsoredParticipantCount + this.paidByOther;\n }\n\n public remainder = (): number => {\n return this.maxSponsoredParticipantCount - this.sponsoredParticipantCount;\n }\n \n public static fromDto(data: ClientMarketHeader) {\n return new this(data.sponsoredParticipantCount, data.paidByOther, data.maxSponsoredParticipantCount);\n }\n }\n}","module Business {\n export class ClientMarketModel {\n public marketId: number;\n public marketName: string;\n\n constructor(marketId: number, marketName: string) {\n this.marketId = marketId;\n this.marketName = marketName;\n }\n\n public static fromDto(data: ClientMarket){\n return new this(data.marketId, data.marketName);\n }\n }\n}","///\n///\n///\n///\n///\n///\n///\n\nmodule Business {\n export class ClientMarketSettingsModel {\n public clientId: number;\n public marketId: number;\n public qrCodeUrl: string;\n public landingPageModel: LandingPageModel;\n public hasOpenedAdmins: boolean;\n public leagueNameModel: LeagueNameModel;\n public logoTakeOverModel: LogoTakeOverModel;\n public multiSubLeaguesModel: MultiSubLeaguesModel;\n public rankingLogoModel: RankingLogoModel;\n public promotionalPackageModel: PromotionalPackageModel;\n public brandingPackageModel: BrandingPackageModel;\n public welcomeEmailModel: WelcomeEmailModel;\n public packageType: PackageType;\n public salesPackageTypes: SalesPackageType[];\n\n constructor(\n clientId: number,\n marketId: number,\n qrCodeUrl: string,\n landingPageModel: LandingPageModel,\n hasOpenedAdmins: boolean,\n leagueNameModel: LeagueNameModel,\n logoTakeOverModel: LogoTakeOverModel,\n multiSubLeaguesModel: MultiSubLeaguesModel,\n rankingLogoModel: RankingLogoModel,\n promotionalPackageModel: PromotionalPackageModel,\n brandingPackageModel: BrandingPackageModel,\n welcomeEmailModel: WelcomeEmailModel,\n packageType: PackageType,\n salesPackageTypes: SalesPackageType[]) {\n this.clientId = clientId;\n this.marketId = marketId;\n this.qrCodeUrl = qrCodeUrl;\n this.landingPageModel = landingPageModel;\n this.hasOpenedAdmins = hasOpenedAdmins;\n this.leagueNameModel = leagueNameModel;\n this.logoTakeOverModel = logoTakeOverModel;\n this.multiSubLeaguesModel = multiSubLeaguesModel;\n this.rankingLogoModel = rankingLogoModel;\n this.promotionalPackageModel = promotionalPackageModel;\n this.brandingPackageModel = brandingPackageModel;\n this.welcomeEmailModel = welcomeEmailModel;\n this.packageType = packageType;\n this.salesPackageTypes = salesPackageTypes;\n }\n\n public isConfigurationComplete = () => {\n const budgetConfigurationCheck = this.hasCompletedAdmins() && this.hasCompletedLeagueName() && this.hasCompletedLandingPage() && this.hasCompletedRankingPage() && this.hasCompletedWelcomeEmail();\n const businessConfigurationCheck = budgetConfigurationCheck && this.hasCompletedLogoTakeOver();\n const professionalConfigurationCheck = businessConfigurationCheck && this.hasCompletedSubLeagues();\n\n const promotionalPackageConfigurationCheck = this.salesPackageTypes.some(x => x === SalesPackageType.PromotionalPackage)\n ? this.hasCompletedPromotionalPackage()\n : true;\n\n const brandingPackageConfigurationCheck = this.salesPackageTypes.some(x => x === SalesPackageType.BrandingPackage)\n ? this.hasCompletedBrandingPackage()\n : true;\n\n if (!promotionalPackageConfigurationCheck || !brandingPackageConfigurationCheck) {\n return false;\n }\n\n if (this.packageType === PackageType.Budget) {\n return budgetConfigurationCheck;\n }\n if (this.packageType === PackageType.Business || this.packageType === PackageType.Professional) {\n return professionalConfigurationCheck;\n }\n return false;\n }\n\n public hasCorporate = () => {\n return this.packageType === PackageType.Professional;\n }\n\n public hasCompletedAdmins = () => {\n return this.hasOpenedAdmins;\n }\n\n public hasCompletedLeagueName = () => {\n return this.leagueNameModel.hasCompleted();\n }\n\n public hasCompletedLogoTakeOver = () => {\n return this.logoTakeOverModel.hasCompleted();\n }\n\n public hasCompletedLandingPage = () => {\n return this.landingPageModel.hasCompleted();\n }\n\n public hasCompletedRankingPage = () => {\n return this.rankingLogoModel.hasCompleted();\n }\n\n public hasCompletedWelcomeEmail = () => {\n return this.welcomeEmailModel.hasCompleted();\n }\n\n public hasCompletedSubLeagues = () => {\n return this.multiSubLeaguesModel.hasCompleted();\n }\n\n public hasCompletedPromotionalPackage = () => {\n return this.promotionalPackageModel.hasCompleted();\n }\n\n public hasCompletedBrandingPackage = () => {\n return this.brandingPackageModel.hasCompleted();\n }\n\n public actionsLeft = () => {\n if (this.packageType === PackageType.Budget) return this.openActionCountBudget();\n if (this.packageType === PackageType.Business) return this.openActionCountBusiness();\n if (this.packageType === PackageType.Professional) return this.openActionCountCorporate();\n }\n\n public openActionCountBudget = () => {\n let actions = 0;\n actions += this.hasCompletedPromotionalPackage() ? 0 : 1;\n actions += this.hasCompletedBrandingPackage() ? 0 : 1;\n actions += this.hasCompletedAdmins() ? 0 : 1;\n actions += this.hasCompletedLeagueName() ? 0 : 1;\n actions += this.hasCompletedLandingPage() ? 0 : 1;\n actions += this.hasCompletedRankingPage() ? 0 : 1;\n actions += this.hasCompletedWelcomeEmail() ? 0 : 1;\n actions += this.hasCompletedLogoTakeOver() ? 0 : 1;\n return actions;\n }\n\n public openActionCountBusiness = () => {\n let actions = this.openActionCountBudget();\n actions += this.hasCompletedSubLeagues() ? 0 : 1;\n return actions;\n }\n\n public openActionCountCorporate = () => {\n let actions = this.openActionCountBusiness();\n return actions;\n }\n\n public updateLandingPage = (landingPageLogo: string, optInRequired: boolean | undefined): void => {\n this.landingPageModel.updateLandingPage(landingPageLogo, optInRequired);\n }\n\n public updateRankingPageLogo = (rankingPageLogo: string): void => {\n this.rankingLogoModel.updateImageUrl(rankingPageLogo);\n }\n\n public updateLeagueName = (name: string): void => {\n this.leagueNameModel.updateLeagueName(name);\n this.rankingLogoModel.updateSubLeagueName(name);\n }\n\n public static fromDto(settings: ClientMarketSettings, salesUser: SalesUser, cdnUrl: string) {\n const logoTakeOver = LogoTakeOverModel.fromDto(settings, salesUser.packageType);\n const clientMarket = salesUser.clientMarkets.getByMarketId(settings.marketId);\n const rankingLogo = RankingLogoModel.fromDto(settings, clientMarket);\n const welcomeEmail = WelcomeEmailModel.fromDto(settings);\n const multiSubLeagues = MultiSubLeaguesModel.fromDto(settings.marketId, salesUser.packageType,\n settings.subLeagueIsAllowedToChangeRankingLogo, settings.subLeagueIsAllowedToChangeEmail,\n settings.subLeagueIsAllowedToChangeName);\n const landingPage = LandingPageModel.fromDto(settings, salesUser.packageType, cdnUrl);\n const leagueName = LeagueNameModel.fromDto(settings, salesUser.packageType);\n const promotionalPackageModel = PromotionalPackageModel.fromDto(settings, salesUser.salesPackageTypes);\n const brandingPackageModel = BrandingPackageModel.fromDto(settings, salesUser.salesPackageTypes);\n\n return new this(\n settings.clientId,\n settings.marketId,\n settings.qrCodeUrl,\n landingPage,\n settings.hasOpenedAdmins,\n leagueName,\n logoTakeOver,\n multiSubLeagues,\n rankingLogo,\n promotionalPackageModel,\n brandingPackageModel,\n welcomeEmail,\n salesUser.packageType,\n salesUser.salesPackageTypes);\n }\n }\n}","module Business {\n export class ClientMarketsModel extends BaseList {\n\n constructor(clientMarkets: Array) {\n super(clientMarkets);\n }\n\n\n public static fromDto = (data: ClientMarkets): ClientMarketsModel => {\n const list = new Array();\n _.each(data.list, (clientMarket: ClientMarket) => {\n list.push(ClientMarketModel.fromDto(clientMarket));\n });\n return new ClientMarketsModel(list);\n }\n }\n}","module Business {\n export class FaqCategoriesModel extends BaseList{\n public update = (id: number) => {\n this.list = this.list.map(model => {\n model.updateIsOpen(model.id === id);\n return model;\n });\n }\n\n public static fromDto = (faqCategories: FaqCategories): FaqCategoriesModel => {\n const list = new Array();\n faqCategories.each(faqCategory => {\n list.push(FaqCategoryModel.fromDto(faqCategory, true));\n });\n return new FaqCategoriesModel(list);\n }\n }\n}","module Business {\n export class FaqCategoryModel extends FaqCategory {\n public isOpen: boolean;\n\n constructor(id: number, languageId: number, faqType: FaqType, order: number, header: string, faqQuestions: FaqQuestions, isOpen: boolean) {\n super(id, languageId, faqType, order, header, faqQuestions);\n this.isOpen = isOpen;\n }\n public updateIsOpen(isOpen: boolean) {\n this.isOpen = isOpen;\n }\n\n public static fromDto = (faqCategory: FaqCategory, isOpen: boolean): FaqCategoryModel => {\n return new FaqCategoryModel(faqCategory.id, faqCategory.languageId, faqCategory.faqType, faqCategory.order, faqCategory.header, faqCategory.faqQuestions, isOpen);\n }\n }\n}","module Business {\n export class PackageOptionModel {\n public id: number;\n public packageType: PackageType;\n public isImportantDifference: boolean;\n public label: string;\n\n constructor(id: number, packageType: PackageType, importantDifference: boolean, label: string) {\n this.id = id;\n this.packageType = packageType;\n this.isImportantDifference = importantDifference;\n this.label = label;\n }\n\n public isIncludedForBudget = (): boolean => {\n return this.packageType === PackageType.Budget;\n }\n\n public isIncludedForBusiness = (): boolean => {\n return _.contains([PackageType.Budget, PackageType.Business], this.packageType);\n }\n\n public isIncludedForCorporate = (): boolean => {\n return _.contains([PackageType.Budget, PackageType.Business, PackageType.Professional], this.packageType);\n }\n }\n} ","module Business {\n export class PackageOptionPopUpModel {\n public description: string;\n public carouselImages: Array;\n public hasCarousel: boolean;\n\n constructor(description: string, images: Array) {\n this.description = description;\n this.carouselImages = images;\n this.hasCarousel = images.length > 1;\n }\n }\n}","module Business {\n export class PackageOptionsTableModel extends BaseList\n {\n public recommendedPackage: PackageType;\n public currentPackage: PackageType;\n\n constructor(recommendedPackage: PackageType, currentPackage: PackageType, options: Array) {\n super(options);\n this.recommendedPackage = recommendedPackage;\n this.currentPackage = currentPackage;\n }\n\n public shouldBudgetBeDisabled(): boolean {\n return this.currentPackage > PackageType.Budget;\n }\n\n public shouldBusinessBeDisabled(): boolean {\n return this.currentPackage > PackageType.Business;\n }\n }\n} ","module Business {\n export class AdditionalDealModel {\n public selected: boolean;\n public dealId: number;\n public participantCount: number;\n\n constructor(selected: boolean, dealId: number, participantCount: number) {\n this.selected = selected;\n this.dealId = dealId;\n this.participantCount = participantCount;\n }\n }\n}","module Business {\n export type CartRowType = \"game\" | \"salesPackage\";\n\n export class CartModel extends BaseList {\n\n public addMainPackage = (model: PackageRowModel) => {\n model.setIsMainPackage(true);\n super.add(model);\n }\n\n public getByType = (type: CartRowType) => {\n return this.list.filter(p => p.type === type);\n }\n\n public hasSalesPackage = () => this.getByType(\"salesPackage\").length > 0;\n }\n}","module Business {\n export class PackageRowModel {\n public type: CartRowType = \"game\";\n\n public marketImageUrl: string;\n\n public dealId: number;\n public marketId: number;\n\n public game: string;\n public eventName: string;\n public package: string;\n public participantCount: number;\n\n public hasDiscount: boolean;\n public discountType: string;\n public discountPercentage: number;\n\n public additionalDeals: Array;\n\n public price: number;\n\n public isMainPackage: boolean;\n\n public isParticipantUpgrade: boolean;\n public isPackageUpgrade: boolean;\n\n public constructor(deal: Deal, marketId: number, gameName: string, eventName: string, marketImageUrl: string) {\n this.game = gameName;\n this.eventName = eventName;\n this.package = TranslationData.get(`Sales.Package.Type.${deal.packageType}`);\n this.participantCount = deal.participantCount;\n this.marketImageUrl = marketImageUrl;\n this.price = deal.price;\n this.dealId = deal.id;\n this.marketId = marketId;\n }\n\n public updateDeal(newDeal: Deal) {\n this.participantCount = newDeal.participantCount;\n this.price = newDeal.price;\n this.dealId = newDeal.id;\n\n this.additionalDeals.forEach(d => {\n d.selected = d.dealId === newDeal.id\n });\n }\n\n public setDiscount(discountTypeId: number, discountPercentage: number) {\n this.hasDiscount = true;\n this.discountType = TranslationData.get(`Sales.Discount.${discountTypeId}`);\n this.discountPercentage = discountPercentage;\n }\n\n public setAdditionalDeals(deals: Array, maxCount: number) {\n this.additionalDeals = new Array();\n\n deals.forEach(d => {\n if (maxCount == null || maxCount != null && d.participantCount <= maxCount)\n this.additionalDeals.push(new AdditionalDealModel(d.id === this.dealId, d.id, d.participantCount));\n });\n\n this.additionalDeals.sort((a, b) => { return a.participantCount - b.participantCount });\n }\n\n public setIsParticipantUpgrade = (isUpgrade: boolean): void => {\n this.isParticipantUpgrade = isUpgrade;\n }\n\n public setIsPackageUpgrade = (isUpgrade: boolean): void => {\n this.isPackageUpgrade = isUpgrade;\n }\n\n public setIsMainPackage = (isMainPackage: boolean): void => {\n this.isMainPackage = isMainPackage;\n }\n\n public isUpgrade = () => {\n return this.isPackageUpgrade || this.isParticipantUpgrade;\n }\n }\n}","module Business {\n export class PersonalizePopupRenderer {\n private personalizePopupTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(bindHtmlElements: Function): void {\n if (this.personalizePopupTemplate == null) {\n this.personalizePopupTemplate = Handlebars.compile($(\"#personalize-popup-template\").html());\n }\n\n $(\".personalize-popup-placeholder\").html(this.personalizePopupTemplate({}));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class SummaryModel {\n public hasDiscount: boolean;\n public hasSalesPackage: boolean;\n public renderTotalExVAT: boolean;\n\n public dealsSubTotal: number;\n\n public earlyBirdDiscount: number;\n public combiDealDiscount: number;\n\n public trophyPackageCost: number;\n public promotionalPackageCost: number;\n public brandingPackageCost: number;\n\n public totalExcVAT: number;\n public percentageVAT: number;\n public vat: number;\n public shippingCostsInEuro: number;\n\n public couponPercentageDiscount: number | undefined; // used in handlebars\n public couponDiscount: number;\n public invoiceCost: number;\n public payByInvoiceCost: number;\n\n public netTotal: number;\n\n public companyLabel: string;\n public vatLabel: string;\n\n private readonly hasShippingCosts: boolean; // used in handlebars\n\n constructor(order: CalculatedOrder, country: string) {\n this.dealsSubTotal = order.dealsSubTotal;\n\n this.hasDiscount = order.earlyBirdDiscount > 0 || order.combiDealDiscount > 0 || order.couponDiscount > 0;\n this.hasSalesPackage = order.trophyPackageCost > 0 || order.promotionalPackageCost > 0 || order.brandingPackageCost > 0;\n this.earlyBirdDiscount = order.earlyBirdDiscount;\n this.combiDealDiscount = order.combiDealDiscount;\n this.trophyPackageCost = order.trophyPackageCost;\n this.promotionalPackageCost = order.promotionalPackageCost;\n this.brandingPackageCost = order.brandingPackageCost;\n this.totalExcVAT = order.totalExcVAT;\n this.percentageVAT = order.percentageVAT;\n this.vat = order.vat;\n this.couponDiscount = order.couponDiscount;\n this.couponPercentageDiscount = order.couponPercentageDiscount;\n this.invoiceCost = order.invoiceCost;\n this.payByInvoiceCost = order.payByInvoiceCost;\n this.netTotal = order.netTotal;\n this.shippingCostsInEuro = order.shippingCostsInEuro;\n\n this.hasShippingCosts = this.shippingCostsInEuro > 0;\n\n this.renderTotalExVAT = this.totalExcVAT != this.netTotal;\n\n this.companyLabel = TranslationData.get(\"Business.Order.CompanySetIn.Format\").format(country);\n\n if (this.percentageVAT <= 0) {\n this.vatLabel = TranslationData.get(\"Business.VATReverseCharge\");\n } else {\n this.vatLabel = TranslationData.get(\"Business.VATPercentage.Format\").format(this.percentageVAT);\n }\n }\n\n public isFree = () => {\n return this.netTotal <= 0;\n }\n }\n}","module Business {\n export class CombidealRowModel extends PackageRowModel {\n public discountedPrice: number;\n \n public updateDeal(newDeal: Deal) {\n this.participantCount = newDeal.participantCount;\n this.price = newDeal.price;\n this.discountedPrice = this.price - (this.price * (this.discountPercentage / 100));\n this.dealId = newDeal.id;\n\n this.additionalDeals.forEach(d => {\n d.selected = d.dealId === newDeal.id;\n });\n }\n\n public setDiscount(discountTypeId: number, discountPercentage: number) {\n this.hasDiscount = true;\n this.discountType = TranslationData.get(`Sales.Discount.${discountTypeId}`);\n this.discountPercentage = discountPercentage;\n\n this.discountedPrice = this.price -(this.price * (discountPercentage / 100));\n }\n }\n} ","module Business {\n\n export abstract class PromotionalBlockModel {\n public marketId: number;\n public regionId: number;\n public description: string;\n public thumbnail: string;\n\n constructor(marketId: number, regionId: number) {\n this.marketId = marketId;\n this.regionId = regionId;\n }\n\n protected abstract isEmpty();\n\n protected abstract getType: () => string;\n\n protected abstract isBrochure: () => boolean;\n protected abstract isVideo: () => boolean;\n }\n}","module Business {\n export class Toast {\n private static id: ReturnType\n\n public static display = (message: string, delay: number = 3000) => {\n $(\".success-toast__description\").text(message);\n $(\".success-toast\").addModifiers(\"visible\");\n clearTimeout(Toast.id);\n Toast.id = setTimeout(() => {\n $(\".success-toast\").removeModifiers(\"visible\");\n }, delay);\n }\n\n public static displayLabel = (labelKey: string, delay: number = 3000) => {\n Toast.display(TranslationData.get(labelKey), delay);\n }\n }\n}","/// \n\nmodule Business {\n export class ManagementController {\n public static readonly MarketSwitchEvent: string = \"ManagementController.MarketSwitchEvent\";\n public static readonly SubLeagueChangeEvent: string = \"ManagementController.SubLeagueChange\";\n public static settingsCompletedLocalStorageKey = `sales.settingsCompletedLocalStorageKey.${location.hostname}`;\n public static initalTabTypeLocalStorageKey = \"ManagementController.InitialTabType\";\n\n private readonly clientRepository: IClientRepository;\n private readonly articleRepository: IArticleRepository;\n private readonly salesUserRepository: SalesUserRepository;\n private readonly userPredictionStatusRepository: Business.IUserPredictionStatusRepository;\n private readonly headerStatusOverviewRenderer: HeaderStatusOverviewRenderer;\n private readonly headerActionsRenderer: HeaderActionsRowRenderer;\n private readonly leagueApiSettings: League.ApiSettings;\n private readonly platformSettings: Platform.ApiSettings;\n private readonly salesSettings: ApiSettings.SalesApiSettings;\n private readonly userApiSettings: ApiSettings.UserApiSettings;\n private readonly userPredictionStatusApiSettings: ApiSettings.UserPredictionStatusApiSettings;\n private marketId: number;\n private initialTab: ClientAdminTabType;\n private readonly leagueActionsEnabled: boolean;\n private isPollingParticipantCount: boolean;\n\n constructor(marketId: number = null, cdnUrl: string, salesApiSettings: any, platformApiSettings: any, userApiSettings: any, userPredictionStatusApiSettings: any, leagueApiSettings: any, leagueActionsEnabled: boolean) {\n this.leagueApiSettings = new League.ApiSettings(leagueApiSettings);\n this.platformSettings = new Platform.ApiSettings(platformApiSettings);\n this.salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\n this.userApiSettings = new ApiSettings.UserApiSettings(userApiSettings);\n this.userPredictionStatusApiSettings = new ApiSettings.UserPredictionStatusApiSettings(userPredictionStatusApiSettings);\n this.leagueActionsEnabled = leagueActionsEnabled;\n\n\n this.clientRepository = new ClientRepository(this.salesSettings);\n this.articleRepository = new ArticleRepository(this.salesSettings);\n this.salesUserRepository = new SalesUserRepository(this.salesSettings);\n this.userPredictionStatusRepository = new UserPredictionStatusRepository(this.userPredictionStatusApiSettings);\n\n this.headerStatusOverviewRenderer = new HeaderStatusOverviewRenderer();\n this.headerActionsRenderer = new HeaderActionsRowRenderer();\n\n this.marketId = marketId;\n\n this.clearLocalStorage();\n\n $(document).ready(() => {\n this.loadPage(cdnUrl);\n $(\"#inner-content\").css(\"width\", \"100%\");\n\n $(\"#logout-button\").on(\"click\", () => {\n this.clearLocalStorage();\n localStorage.removeItem(ManagementController.settingsCompletedLocalStorageKey);\n });\n });\n }\n\n private loadPage(cdnUrl: string) {\n this.showPopup();\n this.toggleSubLeagueAdminCard(false);\n this.toggleClientAdminCard(false);\n this.toggleGeneralCard(false);\n this.toggleGeneralContent(false);\n LoadingOverlayRenderer.showLoadingOverlay();\n\n this.salesUserRepository.get(this.marketId).done((salesUser: SalesUser) => {\n this.marketId = this.marketId && salesUser.containsMarket(this.marketId) ? this.marketId : salesUser.firstOrDefaultMarket()?.marketId;\n\n if (this.marketId != null) {\n const initialTabKey = ManagementController.initalTabTypeLocalStorageKey;\n const initalTabType = localStorage.getItem(initialTabKey);\n\n if (initalTabType && isNumeric(initalTabType)) {\n localStorage.removeItem(initialTabKey);\n this.initialTab = +initalTabType as ClientAdminTabType;\n }\n\n this.resetAllTabs();\n new ClientAdministratorController(cdnUrl, this.salesSettings, this.platformSettings, this.userApiSettings, this.userPredictionStatusApiSettings, this.leagueApiSettings, this.clientRepository, this.articleRepository, this.leagueActionsEnabled, this.marketId);\n new LeagueAdministratorController(cdnUrl, this.salesSettings, this.platformSettings, this.userApiSettings, this.leagueApiSettings, this.userPredictionStatusRepository, this.clientRepository, this.articleRepository, this.leagueActionsEnabled, this.marketId);\n }\n\n new GeneralController(this.salesSettings, this.platformSettings, this.userApiSettings, salesUser, this.clientRepository);\n\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.has(\"pending\")) {\n this.pollParticipantUpgrade()\n }\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.href, \"pending\"));\n\n this.handleMarketSwitch(salesUser);\n }).fail((exception: any) => {\n if (exception.status === 403 || exception.status === 0) {\n location.href = \"/new\";\n }\n else {\n NotificationBar.Display(TranslationData.get(\"Business.AccountError\"));\n }\n }).always(() => {\n LoadingOverlayRenderer.hideLoadingOverlay();\n });\n }\n\n private resetAllTabs() {\n for (let item in ClientAdminTabType) {\n $(\".client-administrator__tab[data-tab-id='\" + item + \"']\").hide();\n }\n\n for (let item in LeagueAdminTabType) {\n $(\".league-administrator__tab[data-tab-id='\" + item + \"']\").hide();\n }\n }\n\n private hideClientAdminTabAndContent(ids: number[]) {\n for (let item in ClientAdminTabType) {\n $(\".client-administrator__tab[data-tab-id='\" + item + \"']\").show();\n }\n ids.forEach(id => {\n $(\".client-administrator__tab[data-tab-id='\" + id + \"']\").hide();\n $(\".client-administrator__tab-content[data-tab-id='\" + id + \"']\").removeClass(\"client-administrator__tab-content--active\");\n });\n }\n\n private hideSubLeagueAdminTabAndContent(ids: LeagueAdminTabType[]) {\n for (let item in LeagueAdminTabType) {\n $(\".league-administrator__tab[data-tab-id='\" + item + \"']\").show();\n }\n ids.forEach(id => {\n $(\".league-administrator__tab[data-tab-id='\" + id + \"']\").hide();\n $(\".league-administrator__tab-content[data-tab-id='\" + id + \"']\").removeClass(\"league-administrator__tab-content--active\");\n });\n }\n\n private toggleGeneralCard(show: boolean) {\n $(\".general-tabs\").toggle(show);\n }\n\n private toggleClientAdminCard(show: boolean) {\n $(\".client-administrator__tabs\").toggle(show);\n }\n\n private toggleSubLeagueAdminCard(show: boolean) {\n $(\".league-administrator__tabs\").toggle(show);\n }\n\n private toggleGeneralContent(show: boolean) {\n $(\".general-tabs__container\").toggle(show);\n }\n\n private hideHeaderBlock() {\n $(\".header-status\").hide();\n }\n\n private hideGeneralTab() {\n $(\".header-actions-row__nav-block--general\").hide();\n }\n\n private hideNewGameTab() {\n $(\".header-actions-row__nav-block--new-game\").hide();\n }\n\n private showPopup = () => {\n const urlParams = new URLSearchParams(window.location.search);\n\n if (!urlParams.has(\"new\")) {\n return;\n }\n\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.href, \"new\"));\n\n const popup = $.scoritoPopup({\n elementId: \"payment-successful-popup\",\n popupTitle: $(\".payment-successful-popup\").data(\"title\"),\n contentHtml: $(\".payment-successful-popup\").html(),\n widthInPixels: 591,\n follow: [true, true],\n });\n\n $(\".payment-successful-popup__large-button\").on(\"click\", () => {\n popup.close();\n });\n }\n\n private clearLocalStorage = () => {\n ClientInformationModel.deleteFromLocalStorage();\n OrderInformationModel.deleteFromLocalStorage();\n CheckoutInformationModel.deleteFromLocalStorage();\n CheckoutProgressModel.deleteFromLocalStorage();\n PaymentInformationModel.deleteFromLocalStorage();\n localStorage.removeItem(UserValidationController.createNewAccountLocalStorageKey);\n localStorage.removeItem(ClientAdministrator.UpgradeInformationModel.localStorageKey);\n }\n\n private getNavigationData = (marketId: number) => {\n $(\".header-actions-row__nav-block--general\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n\n if (elem.hasModifier(\"active\"))\n return;\n\n this.toggleClientAdminCard(false);\n this.toggleSubLeagueAdminCard(false);\n\n this.hideHeaderBlock();\n this.hideClientAdminTabAndContent([\n ClientAdminTabType.SubLeagues, ClientAdminTabType.Marketing, ClientAdminTabType.Configuration, ClientAdminTabType.Help,\n ClientAdminTabType.Invite, ClientAdminTabType.Participants, ClientAdminTabType.Upgrade\n ]);\n\n this.hideSubLeagueAdminTabAndContent([\n LeagueAdminTabType.Articles, LeagueAdminTabType.Help, LeagueAdminTabType.Invite, LeagueAdminTabType.Participants, LeagueAdminTabType.Settings,\n ]);\n\n this.toggleGeneralCard(true);\n this.toggleGeneralContent(true);\n\n $(\".header-actions-row__nav-block\").removeModifiers(\"active\");\n elem.addModifiers(\"active\");\n $(`.general-tabs__tab[data-tab-id=\"${GeneralTabType.CompanyDetails}\"]`).click();\n });\n\n $(\".header-actions-row__nav-block--new-game\").on(\"click\", event => {\n const businessPath = \"/\";\n const tab = window.open(businessPath, \"_blank\")\n if (tab) {\n tab.focus();\n }\n else {\n location.href = businessPath;\n }\n });\n\n $(\".header-actions-row__nav-block--market\").prop(\"onclick\", null).off(\"click\");\n $(\".header-actions-row__nav-block--market\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n\n if (elem.hasModifier(\"active\"))\n return;\n\n const marketId: number = parseInt(elem.data(\"marketId\").toString());\n\n window.history.replaceState(null, \"\", location.pathname + \"?marketId=\" + marketId);\n this.marketId = marketId;\n $(\".client-administrator__tab\").removeModifiers(\"active\").addModifiers(\"preload\");\n $(\".league-administrator__tab\").removeModifiers(\"active\").addModifiers(\"preload\");\n $(\".header-actions-row__nav-block\").removeModifiers(\"active\");\n elem.addModifiers(\"active\");\n\n $(\".client-administrator__tabs-content\").addModifiers(\"preload\");\n $(\".league-administrator__tabs-content\").addModifiers(\"preload\");\n ActionsController.getInstance().hideTabsActionCount();\n this.headerStatusOverviewRenderer.renderEmpty();\n\n this.loadSalesUser();\n this.toggleGeneralCard(false);\n this.toggleGeneralContent(false);\n });\n\n if (marketId != null) {\n const elem = $(`.header-actions-row__nav-block--market[data-market-id=\"${marketId}\"]`);\n elem.addModifiers(\"active\");\n this.toggleGeneralCard(false);\n this.toggleGeneralContent(false);\n } else {\n $(\".header-actions-row__nav-block--general\").click();\n this.toggleClientAdminCard(true);\n this.toggleSubLeagueAdminCard(true);\n this.toggleGeneralCard(true);\n this.toggleGeneralContent(true);\n this.hideHeaderBlock();\n this.hideClientAdminTabAndContent([\n ClientAdminTabType.SubLeagues, ClientAdminTabType.Marketing, ClientAdminTabType.Configuration, ClientAdminTabType.Help,\n ClientAdminTabType.Invite, ClientAdminTabType.Participants, ClientAdminTabType.Upgrade\n ]);\n }\n }\n\n private loadSalesUser = (): JQueryPromise => {\n return this.salesUserRepository.get(this.marketId).done((salesUser: SalesUser) => {\n this.resetAllTabs();\n this.handleMarketSwitch(salesUser);\n }).fail(() => {\n NotificationBar.Display(\"Common.ErrorOnPage\");\n });\n }\n\n private handleMarketSwitch = (salesUser: SalesUser) => {\n if (salesUser.clientMarketHeader) {\n this.headerStatusOverviewRenderer.renderTemplate(new HeaderStatusOverviewModel(\"\", salesUser.clientMarketHeader.sponsoredParticipantCount, salesUser.clientMarketHeader.paidByOther, salesUser.clientMarketHeader.maxSponsoredParticipantCount, 0, this.isPollingParticipantCount));\n }\n\n dispatchEvent(new CustomEvent(ManagementController.MarketSwitchEvent, { detail: { marketId: this.marketId, salesUser } }));\n\n this.headerActionsRenderer.renderTemplate(salesUser.clientMarkets, () => {\n this.getNavigationData(this.marketId);\n this.handleTabDisplay(salesUser);\n });\n }\n\n private handleTabDisplay = (salesUser: SalesUser): void => {\n let shouldOpenConfigurationTab: boolean;\n switch (salesUser.packageType) {\n case PackageType.Budget:\n this.hideClientAdminTabAndContent([\n ClientAdminTabType.SubLeagues, ClientAdminTabType.Marketing\n ]);\n this.hideSubLeagueAdminTabAndContent([\n LeagueAdminTabType.Settings, LeagueAdminTabType.Invite,\n LeagueAdminTabType.Participants, LeagueAdminTabType.Articles, LeagueAdminTabType.Help\n ]);\n this.toggleClientAdminCard(true);\n this.toggleSubLeagueAdminCard(false);\n shouldOpenConfigurationTab = true;\n break;\n case PackageType.Business:\n case PackageType.Professional:\n let hasClientAdminRole = salesUser.isClientAdministrator();\n let hasSubLeagueRole = salesUser.isSubLeagueAdministrator();\n\n if (hasClientAdminRole && hasSubLeagueRole) {\n this.hideClientAdminTabAndContent([\n ClientAdminTabType.Invite, ClientAdminTabType.Participants\n ]);\n this.hideSubLeagueAdminTabAndContent([LeagueAdminTabType.Articles]);\n this.toggleClientAdminCard(true);\n this.toggleSubLeagueAdminCard(true);\n this.toggleGeneralCard(false);\n this.toggleGeneralContent(false);\n shouldOpenConfigurationTab = true;\n }\n else if (hasClientAdminRole) {\n this.hideClientAdminTabAndContent([\n ClientAdminTabType.Invite, ClientAdminTabType.Participants\n ]);\n this.hideSubLeagueAdminTabAndContent([\n LeagueAdminTabType.Settings, LeagueAdminTabType.Articles\n ]);\n this.toggleClientAdminCard(true);\n this.toggleSubLeagueAdminCard(true);\n this.toggleGeneralCard(false);\n this.toggleGeneralContent(false);\n shouldOpenConfigurationTab = true;\n }\n else if (hasSubLeagueRole) {\n this.hideClientAdminTabAndContent([\n ClientAdminTabType.Upgrade, ClientAdminTabType.Configuration,\n ClientAdminTabType.Invite, ClientAdminTabType.SubLeagues,\n ClientAdminTabType.Participants, ClientAdminTabType.Marketing,\n ClientAdminTabType.Help\n ]);\n this.hideSubLeagueAdminTabAndContent([]);\n this.toggleClientAdminCard(false);\n this.toggleSubLeagueAdminCard(true);\n this.toggleGeneralCard(false);\n this.toggleGeneralContent(false);\n this.hideHeaderBlock();\n this.hideGeneralTab();\n this.hideNewGameTab();\n this.openLeagueTab(LeagueAdminTabType.Settings);\n }\n break;\n case null:\n this.toggleClientAdminCard(false);\n this.toggleSubLeagueAdminCard(false);\n return;\n }\n\n if (this.initialTab === ClientAdminTabType.Upgrade) {\n this.openTab(ClientAdminTabType.Upgrade);\n }\n else if (this.initialTab === ClientAdminTabType.Invite) {\n this.openTab(ClientAdminTabType.Invite);\n }\n else if (shouldOpenConfigurationTab) {\n this.openTab(ClientAdminTabType.Configuration);\n }\n }\n\n private openTab = (tab: Business.ClientAdminTabType): void => {\n $(`.client-administrator__tab[data-tab-id=\"${tab}\"]`).click();\n }\n\n private openLeagueTab = (tab: Business.LeagueAdminTabType): void => {\n $(`.league-administrator__tab[data-tab-id=\"${tab}\"]`).click();\n }\n\n private pollParticipantUpgrade = () => {\n const maxAttempts = 10\n const baseTimeout = 10\n const attempsTimeoutIncrease = 2\n let attemps = 0;\n this.isPollingParticipantCount = true\n const participantCount = +localStorage.getItem(\"sales.ParticipantCount-\" + this.marketId)\n\n const finishPoll = (salesUser: SalesUser) => {\n this.isPollingParticipantCount = false\n this.headerStatusOverviewRenderer.renderTemplate(new HeaderStatusOverviewModel(\"\", salesUser.clientMarketHeader.sponsoredParticipantCount, salesUser.clientMarketHeader.paidByOther, salesUser.clientMarketHeader.maxSponsoredParticipantCount, salesUser.marketActions.clientActions, this.isPollingParticipantCount));\n ActionsController.getInstance().refresh(this.marketId);\n localStorage.removeItem(\"sales.ParticipantCount-\" + this.marketId)\n }\n\n const executePoll = () => {\n attemps++\n this.salesUserRepository.get(this.marketId).done((salesUser: SalesUser) => {\n const updatedParticipantCount = salesUser.clientMarketHeader.maxSponsoredParticipantCount\n if (updatedParticipantCount > participantCount) {\n finishPoll(salesUser)\n return\n } else if (attemps >= maxAttempts) {\n finishPoll(salesUser)\n return\n } else {\n setTimeout(executePoll, (baseTimeout + attemps ** attempsTimeoutIncrease) * 1000)\n }\n })\n }\n\n executePoll()\n }\n }\n}","module Business {\n export class ActionsController {\n private clientActions: Dictionary;\n private marketLeagueActionsCollection: Dictionary;\n\n private static _instance: ActionsController;\n\n public static getInstance(): ActionsController {\n if (this._instance == null) {\n this._instance = new this();\n }\n return this._instance;\n }\n\n private constructor() {\n this.clientActions = new Dictionary();\n this.marketLeagueActionsCollection = new Dictionary();\n }\n\n public initialize = (marketId: number, clientActions: number, marketLeagueActionsCollection: LeagueActionsCollection): void => {\n this.clientActions.put(marketId, clientActions);\n this.marketLeagueActionsCollection.put(marketId, marketLeagueActionsCollection);\n this.refresh(marketId);\n }\n\n public getLeagueActionsByMarketAndSubLeague = (marketId: number, subleagueId: number): LeagueActions | null => {\n const marketLeagueActionsCollection = this.marketLeagueActionsCollection.get(marketId);\n return marketLeagueActionsCollection?.getByLeagueId(subleagueId);\n }\n\n public refresh = (marketId: number, subLeagueId?: number): void => {\n const clientActions = this.clientActions.get(marketId) ?? 0;\n const headerElem = $(\".header-status__actions\").find(\".header-status__block-header\").removeModifiers(\"gray\");\n\n if (clientActions > 0) {\n $(\".header-status__block-body--actions\").html(`
${clientActions}
`);\n $(`.header-actions-row__nav-block--market[data-market-id=\"${marketId}\"] .header-actions-row__actions`).show().html(clientActions.toString());\n headerElem.removeModifiers(\"green\");\n headerElem.addModifiers(\"red\");\n }\n else {\n $(\".header-status__block-body--actions\").html('');\n $(`.header-actions-row__nav-block--market[data-market-id=\"${marketId}\"] .header-actions-row__actions`).hide().html(\"\");\n headerElem.removeModifiers(\"red\");\n headerElem.addModifiers(\"green\");\n }\n\n $(\".client-administrator__actions\").toggleModifiers(clientActions <= 0, \"invisible\");\n $(\".client-administrator__actions\").html(clientActions.toString());\n\n if (!subLeagueId)\n return;\n }\n\n public completeLeagueName = (marketId: number, leagueId: number): void => {\n const marketLeagueActionsCollection = this.marketLeagueActionsCollection.get(marketId);\n const leagueActions = marketLeagueActionsCollection.getByLeagueId(leagueId);\n if (!leagueActions) return;\n leagueActions.nameCompleted = true;\n this.refresh(marketId, leagueId);\n }\n\n public completeRankingLogoName = (marketId: number, leagueId: number): void => {\n const marketLeagueActionsCollection = this.marketLeagueActionsCollection.get(marketId);\n const leagueActions = marketLeagueActionsCollection.getByLeagueId(leagueId);\n if (!leagueActions) return;\n leagueActions.rankingLogoCompleted = true;\n this.refresh(marketId, leagueId);\n }\n\n public completeWelcomeMail = (marketId: number, leagueId: number): void => {\n const marketLeagueActionsCollection = this.marketLeagueActionsCollection.get(marketId);\n const leagueActions = marketLeagueActionsCollection.getByLeagueId(leagueId);\n if (!leagueActions) return;\n leagueActions.welcomeEmailCompleted = true;\n this.refresh(marketId, leagueId);\n }\n\n public completeClientAction = (marketId: number, actionsLeft: number): void => {\n this.clientActions.put(marketId, actionsLeft);\n this.refresh(marketId);\n }\n\n public hideTabsActionCount = (): void => {\n $(\".client-administrator__actions\").addModifiers(\"invisible\");\n }\n }\n}","module BusinessManagement {\n import cropperConfig = Business.cropperConfig;\n export class ArticleControllerHelper {\n\n private readonly articlesRenderer: BusinessManagement.ArticlesRenderer;\n private readonly articleRepository: Business.IArticleRepository;\n private readonly userRepository: Business.UserRepository;\n private readonly subLeagueRepository: Business.ISubLeagueRepository;\n\n private readonly prefixId: string;\n private readonly marketId: number;\n\n private profileData: Platform.Profile;\n private articles: Business.Articles;\n private selectedArticleId: number | null;\n private selectedSubLeagueId: number;\n private hasUnsavedChanges: boolean;\n private isSubLeagueTab: boolean;\n private packageType: Business.PackageType;\n private subLeagues: Business.SubLeagues;\n private isCropping: boolean;\n\n constructor(prefixId: string, selectedSubLeagueId: number, marketId: number, userRepository: Business.UserRepository, articleRepository: Business.IArticleRepository, subLeagueRepository: Business.ISubLeagueRepository = null, packageType: Business.PackageType, isSubLeagueTab: boolean = false) {\n this.articleRepository = articleRepository;\n this.userRepository = userRepository;\n this.prefixId = prefixId;\n this.marketId = marketId;\n this.selectedSubLeagueId = selectedSubLeagueId;\n this.articlesRenderer = new BusinessManagement.ArticlesRenderer();\n\n if (subLeagueRepository) this.subLeagueRepository = subLeagueRepository;\n this.isSubLeagueTab = isSubLeagueTab;\n this.packageType = packageType;\n this.bindPage();\n }\n\n public updateSelectedSubLeagueId = (selectedSubLeagueId: number) => {\n this.selectedSubLeagueId = selectedSubLeagueId;\n }\n\n public initialize = (isConfigurationComplete: boolean) => {\n $(\".\" + this.prefixId + \"__notice\").toggle(!isConfigurationComplete);\n $(\".\" + this.prefixId + \"__description\").toggleModifiers(!isConfigurationComplete, \"disabled\");\n $(\".\" + this.prefixId + \"__content\").toggleModifiers(!isConfigurationComplete, \"disabled\");\n\n if (!isConfigurationComplete) return $.Deferred();\n\n const onDone = (profileData: Platform.Profile, articles: Business.Articles, subLeaguesResult: ApiResult | undefined) => {\n\n this.profileData = profileData;\n this.articles = articles;\n if (subLeaguesResult) {\n this.subLeagues = Business.SubLeagues.fromJson(subLeaguesResult.content);\n if (this.subLeagues.any()) {\n this.updateDropdown(null);\n }\n }\n\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\n this.bindClickOnArticle();\n this.bindNewArticleButton();\n });\n\n this.articlesRenderer.renderHeaderImage(null, \"\" + this.prefixId + \"\");\n\n $(\".\" + this.prefixId + \"__author\").text(`${TranslationData.get(\"Business.Management.Author\")}: ${this.profileData.fullName}`);\n }\n\n const showDropdown = !this.isSubLeagueTab && isFeatureSupported(this.packageType, Feature.Articles);\n if (showDropdown) {\n $(`.${this.prefixId}__sub-leagues`).show();\n return $.when(\n this.userRepository.getProfileDetails(),\n this.articleRepository.get(this.marketId, this.selectedSubLeagueId),\n this.subLeagueRepository.get(this.marketId)\n ).done((profileData: Platform.Profile, articles: Business.Articles, subLeaguesResult: ApiResult) => {\n onDone(profileData, articles, subLeaguesResult);\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n } else {\n $(\".\" + this.prefixId + \"__sub-leagues\").hide();\n return $.when(\n this.userRepository.getProfileDetails(),\n this.articleRepository.get(this.marketId, this.selectedSubLeagueId)\n ).done((profileData: Platform.Profile, articles: Business.Articles) => {\n onDone(profileData, articles, null);\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n }\n\n protected updateDropdown = (selectedSubLeague: number | undefined): void => {\n if (selectedSubLeague) this.selectedSubLeagueId = selectedSubLeague;\n else this.selectedSubLeagueId = null;\n const dropdown = $(`.${this.prefixId}__select`).empty();\n\n this.subLeagues.each((item: Business.SubLeague, index: number) => {\n if (!this.selectedSubLeagueId) {\n this.selectedSubLeagueId = item.leagueId;\n }\n const name = item.isMainLeague ? TranslationData.get(\"Business.Management.Article.AllLeagues\") : item.leagueName;\n dropdown.append(new Option(name, item.leagueId.toString(), item.leagueId === this.selectedSubLeagueId));\n });\n\n dropdown.off().on(\"change\", (event) => {\n const subLeagueId: number = dropdown.val();\n this.selectedSubLeagueId = subLeagueId;\n\n const article = this.articles.getById(this.selectedArticleId ?? 0);\n this.hasUnsavedChanges = true;\n if (!article) return;\n\n this.setFormData(this.selectedArticleId, article.articleImageUrl, article.title, article.body, article.hasCallToActionButton, article.callToActionButtonText, article.callToActionButtonUrl, true);\n });\n if (selectedSubLeague) $(\".\" + this.prefixId + \"__select option[value='\" + selectedSubLeague + \"']\").prop(\"selected\", \"selected\");\n }\n\n protected leagueChanged = (): void => {\n //TODO: do reload stuff\n };\n\n private bindPage = (): void => {\n this.bindChangeImage();\n this.bindSaveButton();\n this.bindPublishButton();\n this.bindChangeToDraftButton();\n\n this.checkForChecked();\n this.bindNewArticleButton();\n this.bindUpdateCounter();\n this.bindUpdateCallToActionButton();\n this.bindDeleteArticle();\n this.stylePage();\n try {\n const editor = CKEDITOR.instances[this.prefixId + \"__ckeditor\"];\n if (editor)\n editor.destroy(true);\n\n CKEDITOR.replace(this.prefixId + \"__ckeditor\",\n {\n height: \"320px\",\n removePlugins: \"link\"\n });\n CKEDITOR.addCss(\".cke_editable{cursor:text; font-size: 14px; font-family: Roboto-Regular, Arial;}\");\n CKEDITOR.instances[this.prefixId + \"__ckeditor\"].on(\"change\", () => {\n this.hasUnsavedChanges = true;\n });\n }\n catch (err) {\n console.error(`Something went wrong with initializing CKEDITOR ${err}`)\n }\n }\n\n private stylePage = (): void => {\n const button = $(\".\" + this.prefixId + \"__call-to-action-button\");\n const elem = $(\".\" + this.prefixId + \"__checkbox\");\n\n if (elem.is(\":checked\")) {\n button.removeAttr(\"disabled\");\n button.addModifiers(\"checked\");\n }\n else if (elem.is(\":not(:checked)\")) {\n button.attr(\"disabled\", \"disabled\");\n button.removeModifiers(\"checked\");\n }\n }\n\n private bindChangeImage = (): void => {\n $(\".\" + this.prefixId + \"__image-upload\").unbind();\n $(\".\" + this.prefixId + \"__image-upload\").on(\"click\", event => {\n $(\".\" + this.prefixId + \"__image\").click();\n });\n\n $(\".\" + this.prefixId + \"__image\").unbind();\n $(\".\" + this.prefixId + \"__image\").on(\"change\", event => {\n const elem = $(event.currentTarget);\n const image = elem.prop(\"files\")[0];\n if (!image)\n return;\n const validImageTypes = [\"image/jpg\", \"image/jpeg\", \"image/png\"];\n if (!_.contains(validImageTypes, image?.type)) {\n NotificationBar.Display(TranslationData.get(\"Business.Generic.WrongFileFormat\"));\n return;\n }\n this.hasUnsavedChanges = true;\n var formData = new FormData();\n formData.append(\"fileData\", image);\n $(\".\" + this.prefixId + \"__new-article\").addModifiers(\"preload\");\n this.articleRepository.saveHeaderImage(this.marketId, this.selectedSubLeagueId, formData).done(apiResult => {\n if (apiResult.isSuccess()) {\n this.articlesRenderer.renderHeaderImage(apiResult.content, \"\" + this.prefixId + \"\");\n\n if (image?.type != \"image/gif\") {\n var $image_elem = $(\".\" + this.prefixId + \"__uploaded-image\")\n $image_elem.cropper(cropperConfig(image, {\n aspectRatio: 1.5,\n }));\n\n $(\".\" + this.prefixId + \"__hover\").hide()\n $(\".\" + this.prefixId + \"__image-upload\").unbind(\"click\")\n this.isCropping = true\n }\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\n });\n });\n }\n\n private bindUpdateCounter = (): void => {\n $(\".\" + this.prefixId + \"__input--title\").unbind();\n $(\".\" + this.prefixId + \"__input--title\").on(\"input\", event => {\n this.hasUnsavedChanges = true;\n const nrOfCharacters = $(event.target).val().length;\n $(\".\" + this.prefixId + \"__typed-characters\").html(nrOfCharacters.toString());\n });\n }\n\n private bindUpdateCallToActionButton = (): void => {\n $(`.${this.prefixId}__input--text-button`).unbind();\n $(`.${this.prefixId}__input--text-button`).on(\"input\", event => {\n this.hasUnsavedChanges = true;\n $(`.${this.prefixId}__call-to-action-button`).html($(event.target).val());\n });\n\n $(`.${this.prefixId}__input--link-button`).unbind();\n $(`.${this.prefixId}__input--link-button`).on(\"keyup\", event => {\n this.hasUnsavedChanges = true;\n $(event.currentTarget).val((_, value) => formatUrlWithProtocol(value));\n });\n }\n\n private validateArticle = (): boolean => {\n\n const titleElem = $(\".\" + this.prefixId + \"__input--title\");\n const messageElem = $(\".\" + this.prefixId + \"__editor-container\");\n const imageElem = $(\".\" + this.prefixId + \"__image-upload\");\n\n const title = titleElem.val();\n const body = CKEDITOR.instances[this.prefixId + \"__ckeditor\"].getData();\n const imageUrl = $(\".\" + this.prefixId + \"__uploaded-image\").attr(\"src\");\n\n let isValid = true;\n\n if (!title) {\n titleElem.addModifiers(\"invalid\");\n isValid = false;\n }\n else {\n titleElem.removeModifiers(\"invalid\");\n }\n if (body === \"\") {\n messageElem.addModifiers(\"invalid\");\n isValid = false;\n }\n else {\n messageElem.removeModifiers(\"invalid\");\n }\n\n if (!imageUrl) {\n imageElem.addModifiers(\"invalid\");\n isValid = false;\n }\n else {\n imageElem.removeModifiers(\"invalid\");\n }\n\n if (!this.validateCallToAction()) {\n return false;\n }\n return isValid;\n }\n\n private bindSaveButton = (): void => {\n $(\".\" + this.prefixId + \"__button--save, .\" + this.prefixId + \"__button--touch-up\").unbind();\n $(\".\" + this.prefixId + \"__button--save, .\" + this.prefixId + \"__button--touch-up\").on(\"click\", () => {\n\n if (!this.validateArticle()) return;\n if (this.isCropping) {\n this.saveImage(() => {\n this.saveArticle()\n });\n } else {\n this.saveArticle();\n }\n });\n }\n\n private saveArticle = (): void => {\n const existingArticle = this.articles.getById(this.selectedArticleId);\n const article = this.getNewArticleFromForm(this.selectedArticleId ?? 0, existingArticle?.isDraftArticle ?? true);\n\n const mainLeague = this.subLeagues?.list?.filter(s => s.isMainLeague);\n\n this.articleRepository.createOrUpdate(this.marketId, mainLeague && mainLeague.length > 0 ? mainLeague[0].leagueId : this.selectedSubLeagueId, article).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Article.Saved\");\n this.articles = Business.Articles.fromJson(apiResult.content);\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\n this.bindClickOnArticle();\n this.bindNewArticleButton();\n this.resetFormData();\n });\n this.hasUnsavedChanges = false;\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private saveImage = (callback?: Function): void => {\n const elem = $(\".\" + this.prefixId + \"__image\");\n const image = elem.prop(\"files\"[0]);\n var $image_elem = $(\".\" + this.prefixId + \"__uploaded-image\")\n var cropper = $image_elem.data('cropper');\n cropper.getCroppedCanvas().toBlob((blob) => {\n\n var formData = new FormData();\n formData.append(\"fileData\", blob, \"cropped_image.jpg\");\n $(\".\" + this.prefixId + \"__new-article\").addModifiers(\"preload\");\n this.articleRepository.saveHeaderImage(this.marketId, this.selectedSubLeagueId, formData).done(apiResult => {\n if (apiResult.isSuccess()) {\n this.articlesRenderer.renderHeaderImage(apiResult.content, \"\" + this.prefixId + \"\");\n callback?.()\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n if (this.isCropping) {\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\n $(\".\" + this.prefixId + \"__hover\").show()\n $(\".\" + this.prefixId + \"__image-upload\").on(\"click\", event => {\n $(\".\" + this.prefixId + \"__image\").click();\n });\n this.isCropping = false\n }\n });\n }, image?.type)\n }\n\n private bindChangeToDraftButton = (): void => {\n $(\".\" + this.prefixId + \"__button--draft\").unbind();\n $(\".\" + this.prefixId + \"__button--draft\").on(\"click\", () => {\n if (!this.selectedArticleId)\n return;\n\n const existingArticle = this.articles.getById(this.selectedArticleId);\n const article = this.getNewArticleFromForm(this.selectedArticleId ?? 0, existingArticle?.isDraftArticle ?? true);\n article.setIsDraftArticle(true);\n\n this.articleRepository.createOrUpdate(this.marketId, this.selectedSubLeagueId, article).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Article.Saved\");\n this.articles = Business.Articles.fromJson(apiResult.content);\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\n this.bindClickOnArticle();\n this.bindNewArticleButton();\n this.resetFormData();\n });\n this.hasUnsavedChanges = false;\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n });\n }\n\n private resetFormData = (): void => {\n $(\".\" + this.prefixId + \"__author\").text(`${TranslationData.get(\"Business.Management.Author\")}: ${this.profileData.fullName}`);\n this.setFormData(0, \"\", \"\", \"\", false, \"\", \"\", true);\n if (this.isCropping) {\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\n $(\".\" + this.prefixId + \"__hover\").show()\n $(\".\" + this.prefixId + \"__image-upload\").on(\"click\", event => {\n $(\".\" + this.prefixId + \"__image\").click();\n });\n this.isCropping = false\n }\n }\n\n private setFormData = (articleId: number, imageUrl: string, title: string, body: string, hasCallToAction: boolean, callToActionText: string, callToActionUrl: string, isDraft: boolean) => {\n this.selectedArticleId = articleId;\n $(\".\" + this.prefixId + \"__image\").val(\"\");\n this.articlesRenderer.renderHeaderImage(imageUrl, \"\" + this.prefixId + \"\");\n $(\".\" + this.prefixId + \"__input--title\").removeModifiers(\"invalid\").val(title);\n $(\".\" + this.prefixId + \"__typed-characters\").text(title.length);\n CKEDITOR.instances[this.prefixId + \"__ckeditor\"].setData(body);\n $(\".\" + this.prefixId + \"__checkbox\").prop(\"checked\", hasCallToAction);\n if (hasCallToAction) {\n $(\".\" + this.prefixId + \"__input--text-button\").val(callToActionText).removeAttr(\"disabled\");\n $(\".\" + this.prefixId + \"__input--link-button\").val(callToActionUrl).removeAttr(\"disabled\");\n $(\".\" + this.prefixId + \"__call-to-action-button\").text(callToActionText).removeAttr(\"disabled\").addModifiers(\"checked\");\n }\n else {\n $(\".\" + this.prefixId + \"__input--text-button\").val(\"\").attr(\"disabled\", \"disabled\");\n $(\".\" + this.prefixId + \"__input--link-button\").val(\"\").attr(\"disabled\", \"disabled\");\n $(\".\" + this.prefixId + \"__call-to-action-button\").text(TranslationData.get(\"Business.Management.CallToActionButton.Button\")).attr(\"disabled\", \"disabled\").removeModifiers(\"checked\");\n }\n if (isDraft) {\n $(\".\" + this.prefixId + \"__button-container--draft\").removeModifiers(\"hidden\");\n $(\".\" + this.prefixId + \"__button-container--published\").addModifiers(\"hidden\");\n }\n else {\n $(\".\" + this.prefixId + \"__button-container--draft\").addModifiers(\"hidden\");\n $(\".\" + this.prefixId + \"__button-container--published\").removeModifiers(\"hidden\");\n }\n }\n\n private getNewArticleFromForm = (articleId: number, isDraft: boolean): Business.Article => {\n const titleElem = $(\".\" + this.prefixId + \"__input--title\");\n const title = titleElem.val();\n const body = CKEDITOR.instances[this.prefixId + \"__ckeditor\"].getData();\n\n const callToActionButtonTextElem = $(\".\" + this.prefixId + \"__input--text-button\");\n const callToActionButtonText = callToActionButtonTextElem.val();\n\n const callToActionButtonLinkElem = $(\".\" + this.prefixId + \"__input--link-button\");\n const callToActionButtonLink = callToActionButtonLinkElem.val();\n\n const imageUrl = $(\".\" + this.prefixId + \"__uploaded-image\").attr(\"src\");\n const hasCallToAction = $(\".\" + this.prefixId + \"__checkbox\").is(\":checked\");\n\n const article = new Business.Article(articleId, this.profileData.userId, \"\", this.selectedSubLeagueId, imageUrl ?? \"\", title, body, hasCallToAction, callToActionButtonText, callToActionButtonLink, isDraft, \"\");\n\n return article;\n }\n\n private bindPublishButton = (): void => {\n $(\".\" + this.prefixId + \"__button--publish\").unbind();\n $(\".\" + this.prefixId + \"__button--publish\").on(\"click\", () => {\n\n if (!this.validateArticle()) return;\n if (this.isCropping) {\n this.saveImage(() => {\n this.publishArticle()\n });\n } else {\n this.publishArticle();\n }\n });\n }\n\n private publishArticle = (): void => {\n const article = this.getNewArticleFromForm(this.selectedArticleId ?? 0, false);\n\n $(\".\" + this.prefixId + \"__new-article\").addModifiers(\"preload\");\n this.articleRepository.createOrUpdate(this.marketId, this.selectedSubLeagueId, article).done((apiResult) => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Article.Published\");\n this.articles = Business.Articles.fromJson(apiResult.content);\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\n this.bindClickOnArticle();\n this.bindNewArticleButton();\n\n this.resetFormData();\n });\n this.hasUnsavedChanges = false;\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\n });\n }\n\n private validateCallToAction = (): boolean => {\n let isCallToActionValid = true;\n if ($(\".\" + this.prefixId + \"__checkbox\").is(\":checked\")) {\n const callToActionButtonTextElem = $(\".\" + this.prefixId + \"__input--text-button\");\n if (!callToActionButtonTextElem.val().trim()) {\n callToActionButtonTextElem.addModifiers(\"invalid\");\n isCallToActionValid = false;\n }\n else {\n callToActionButtonTextElem.removeModifiers(\"invalid\");\n isCallToActionValid = true;\n }\n const linkElem = $(\".\" + this.prefixId + \"__input--link-button\");\n if (!isValidHttpUrl(linkElem.val())) {\n linkElem.addModifiers(\"invalid\");\n isCallToActionValid = false;\n }\n else {\n linkElem.removeModifiers(\"invalid\");\n isCallToActionValid = true;\n }\n }\n return isCallToActionValid;\n }\n\n private bindDeleteArticle = (): void => {\n $(\".\" + this.prefixId + \"__button--delete\").unbind();\n $(\".\" + this.prefixId + \"__button--delete\").on(\"click\", event => {\n if (!this.selectedArticleId)\n return;\n\n this.showDeleteArticlePopup(this.selectedArticleId);\n });\n }\n\n private bindNewArticleButton = (): void => {\n $(\".\" + this.prefixId + \"__button-new\").unbind();\n $(\".\" + this.prefixId + \"__button-new\").on(\"click\", () => {\n if (!this.hasUnsavedChanges) {\n $(\".\" + this.prefixId + \"__my-article\").removeModifiers(\"selected\");\n this.resetFormData();\n return;\n }\n const article = this.articles.getById(this.selectedArticleId ?? 0);\n if (article?.isDraftArticle) {\n this.showSaveArticlePopup(() => {\n $(\".\" + this.prefixId + \"__my-article\").removeModifiers(\"selected\");\n this.resetFormData();\n }, () => {\n $(\".\" + this.prefixId + \"__button--save\").click();\n });\n }\n else {\n this.showPublishArticlePopup(() => {\n $(\".\" + this.prefixId + \"__my-article\").removeModifiers(\"selected\");\n this.resetFormData();\n }, () => {\n $(\".\" + this.prefixId + \"__button--publish\").click();\n });\n }\n });\n }\n\n private bindClickOnArticle = (): void => {\n $(\".\" + this.prefixId + \"__my-article\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n if (!this.hasUnsavedChanges) {\n return this.switchArticle(elem);\n }\n\n const article = this.articles.getById(this.selectedArticleId ?? 0);\n if (article?.isDraftArticle) {\n this.showSaveArticlePopup(() => {\n return this.switchArticle(elem);\n }, () => {\n $(\".\" + this.prefixId + \"__button--touch-up\").click();\n });\n }\n else {\n this.showPublishArticlePopup(() => {\n return this.switchArticle(elem);\n }, () => {\n $(\".\" + this.prefixId + \"__button--save\").click();\n });\n }\n });\n }\n\n private switchArticle = (elem: JQuery) => {\n $(\".\" + this.prefixId + \"__my-article\").removeModifiers(\"selected\");\n elem.addModifiers(\"selected\");\n\n const articleId = +elem.data(\"article-id\");\n const article = this.articles.getById(articleId);\n if (!article) return;\n\n if (this.subLeagues && this.subLeagues.count() > 0) this.updateDropdown(article.poolId);\n\n $(\".\" + this.prefixId + \"__author\").text(`${TranslationData.get(\"Business.Management.Author\")}: ${article.authorFullname}`);\n\n this.setFormData(article.articleId, article.articleImageUrl, article.title, article.body, article.hasCallToActionButton, article.callToActionButtonText, article.callToActionButtonUrl, article.isDraftArticle);\n }\n\n private checkForChecked = (): void => {\n $(\".\" + this.prefixId + \"__checkbox\").unbind();\n $(\".\" + this.prefixId + \"__checkbox\").on(\"change\", e => {\n this.callToActionCheckbox($(e.currentTarget));\n this.hasUnsavedChanges = true;\n });\n }\n\n private callToActionCheckbox = (elem: JQuery): void => {\n const button = $(\".\" + this.prefixId + \"__call-to-action-button\");\n if (elem.is(\":checked\")) {\n button.removeAttr(\"disabled\");\n $(\".\" + this.prefixId + \"__input--text-button\").removeAttr(\"disabled\");\n $(\".\" + this.prefixId + \"__input--link-button\").removeAttr(\"disabled\");\n\n button.addModifiers(\"checked\");\n }\n else {\n button.attr(\"disabled\", \"disabled\");\n $(\".\" + this.prefixId + \"__input--text-button\").attr(\"disabled\", \"disabled\");\n $(\".\" + this.prefixId + \"__input--link-button\").attr(\"disabled\", \"disabled\");\n button.removeModifiers(\"checked\");\n }\n }\n\n private showSaveArticlePopup = (onDoNotSaveClick: Function, onSaveClick: Function) => {\n $.newPopup(\"save-article-popup\");\n $.togglePopup(\"#save-article-popup\", true, true);\n\n $(\"#save-article-popup .popup-content-body-do-not-save-button\").on(\"click\", () => {\n $.togglePopup(\"#save-article-popup\", false, true);\n onDoNotSaveClick();\n this.hasUnsavedChanges = false;\n });\n\n $(\"#save-article-popup .popup-content-header__close,#save-article-popup .popup-content-body-cancel-button,#save-article-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#save-article-popup\", false, true);\n });\n $(\"#save-article-popup .popup-content-body-save-button\").on(\"click\", () => {\n $.togglePopup(\"#save-article-popup\", false, true);\n onSaveClick();\n });\n }\n\n private showPublishArticlePopup = (onDoNotPublishClick: Function, onPublishClick: Function) => {\n $.newPopup(\"publish-article-popup\");\n $.togglePopup(\"#publish-article-popup\", true, true);\n\n $(\"#publish-article-popup .popup-content-body-do-not-publish-button\").on(\"click\", event => {\n $.togglePopup(\"#publish-article-popup\", false, true);\n onDoNotPublishClick();\n this.hasUnsavedChanges = false;\n });\n\n $(\"#publish-article-popup .popup-content-body-cancel-button,#publish-article-popup .popup-content-header__close,#publish-article-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#publish-article-popup\", false, true);\n });\n\n $(\"#publish-article-popup .popup-content-body-publish-button\").on(\"click\", () => {\n $.togglePopup(\"#publish-article-popup\", false, true);\n onPublishClick();\n });\n }\n\n private showDeleteArticlePopup = (articleId: number) => {\n $.newPopup(\"remove-article-popup\");\n $.togglePopup(\"#remove-article-popup\", true, true);\n\n $(\"#remove-article-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.Article.DeleteConfirmation\")?.format(this.articles.getById(articleId)?.title));\n\n $(\"#remove-article-popup .popup-content-body-close-button,#remove-article-popup .popup-content-header__close,#remove-article-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#remove-article-popup\", false, true);\n });\n\n $(\"#remove-article-popup .popup-content-body-remove-button\").on(\"click\", () => {\n $(\".\" + this.prefixId + \"__new-article\").addModifiers(\"preload\");\n this.articleRepository.delete(articleId, this.selectedSubLeagueId).done((apiResult) => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Article.Removed\");\n this.articles = Business.Articles.fromJson(apiResult.content);\n this.articlesRenderer.renderMyArticles(this.articles, \"\" + this.prefixId + \"\", () => {\n this.bindClickOnArticle();\n this.bindNewArticleButton();\n\n this.resetFormData();\n });\n }\n else {\n NotificationBar.Display(apiResult.message === '' ? TranslationData.get(\"Errors.UserNotAllowed.Message\") : apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $(\".\" + this.prefixId + \"__new-article\").removeModifiers(\"preload\");\n $.togglePopup(\"#remove-article-popup\", false, true);\n });\n });\n }\n }\n}","module BusinessManagement {\n export class ArticlesRenderer {\n private articlesTemplate: HandlebarsTemplateDelegate;\n private articleTemplate: HandlebarsTemplateDelegate;\n private articleHeaderTemplate: HandlebarsTemplateDelegate;\n\n public renderHeaderImage = (imageUrl: string, prefixId: string): void => {\n if (this.articleHeaderTemplate == null) {\n this.articleHeaderTemplate = Handlebars.compile($(\"#\" + prefixId + \"__article-header-image\").html());\n Handlebars.registerPartial(\"articleHeaderImage\", this.articleHeaderTemplate);\n }\n\n $(\".\" + prefixId + \"__upload-image\").html(this.articleHeaderTemplate({ imageUrl, hasImageUrl: !_.isEmpty(imageUrl) }));\n }\n\n public renderMyArticles = (model: Business.Articles, prefixId: string, callback: Function): void => {\n if (this.articlesTemplate == null) {\n this.articlesTemplate = Handlebars.compile($(\"#\" + prefixId + \"__my-articles-template\").html());\n }\n if (this.articleTemplate == null) {\n this.articleTemplate = Handlebars.compile($(\"#\" + prefixId + \"__my-article-template\").html());\n Handlebars.registerPartial(\"articlePartial\", this.articleTemplate);\n }\n\n $(\".\" + prefixId + \"__my-articles-placeholder\").html(this.articlesTemplate(model));\n\n callback();\n }\n }\n}","module BusinessManagement {\n export class HelpControllerHelper {\n private readonly helpRenderer: BusinessManagement.HelpRenderer;\n private faqRepository: Business.IFaqRepository;\n private accountDataRepository: Business.IAccountDataRepository;\n private platformRepository: Platform.Repository;\n\n private faqCategoriesModel: Business.FaqCategoriesModel;\n\n private readonly prefixId: string;\n private readonly marketId: number;\n\n private readonly faqType: Business.FaqType;\n\n constructor(prefixId: string, marketId: number, faqType: Business.FaqType, faqRepository: Business.IFaqRepository,\n accountDataRepository: Business.IAccountDataRepository, platformApiSettings: Platform.ApiSettings) {\n this.faqRepository = faqRepository;\n this.accountDataRepository = accountDataRepository;\n this.prefixId = prefixId;\n this.marketId = marketId;\n this.faqType = faqType;\n this.helpRenderer = new HelpRenderer();\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\n }\n\n public loadTabData = () => {\n this.helpRenderer.renderTemplate(null, () => { });\n\n return $.when(\n this.platformRepository.getGameInfo(this.marketId),\n this.accountDataRepository.getSalesAccountData(),\n this.platformRepository.getCountries())\n .done((gameInfo: Platform.GameInfo, accountData: Business.SalesAccountData, countries: Platform.Countries) => {\n this.faqRepository.getCategories(gameInfo.gameId, this.faqType).done((faqCategories: Business.FaqCategories) => {\n this.faqCategoriesModel = Business.FaqCategoriesModel.fromDto(faqCategories);\n\n this.helpRenderer.renderTemplate(this.faqCategoriesModel, () => {\n this.openQuestions();\n });\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n\n this.helpRenderer.renderContactForm(accountData, () => {\n this.bindSendEmail();\n this.initializeCountryData(accountData?.administratorPhoneNumber ?? \"\", countries);\n });\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private initializeCountryData = (phoneNumber: string, countries: Platform.Countries) => {\n const countryCode = phoneNumber?.split(\" \")[0];\n\n $(\".business-help__phonenumber-input\").on(\"change\", e => {\n const country = countries.getByCode($(e.currentTarget).val());\n $(\".business-help__first-digits\").val(country.countryCallingCode);\n });\n\n const countryCodes = countries.getCountryCallingCodes();\n _.each(countryCodes, key => {\n $(\".business-help__first-digits\").append(``)\n });\n }\n\n private openQuestions = () => {\n $(`.business-help__category`).on(\"click\", event => {\n $(`.business-help__arrow-down--selected`).removeModifiers('selected');\n const elem = $(event.currentTarget);\n const category: Business.FaqType = +elem.data(\"id\");\n\n this.faqCategoriesModel.update(elem.hasModifier(\"selected\") ? -1 : category);\n\n this.helpRenderer.renderTemplate(this.faqCategoriesModel, () => {\n this.openQuestions();\n });\n });\n\n $(`.business-help__question`).on(\"click\", event => {\n const elem = $(event.currentTarget);\n if (elem.hasModifier(\"selected\")) {\n this.toggleSlide(elem, false);\n }\n else {\n $(`.business-help__question`).removeModifiers(\"selected\");\n this.toggleSlide(elem, true);\n }\n });\n }\n\n public toggleSlide = (questionContainer: JQuery, open: boolean): void => {\n const contentPlaceholder = questionContainer.find(\".business-help__question-answer\");\n $(\".business-help__question-answer\").removeModifiers(\"selected\").height(0);\n $(\".business-help__open-arrow\").removeModifiers(\"selected\");\n\n if (open) {\n const content = contentPlaceholder.children(\":first-child\");\n contentPlaceholder.height(content.outerHeight() + 15);\n contentPlaceholder.addModifiers(\"selected\");\n questionContainer.find(\".business-help__open-arrow\").addModifiers(\"selected\");\n questionContainer.addModifiers(\"selected\");\n }\n else {\n questionContainer.removeModifiers(\"selected\");\n }\n }\n\n private bindSendEmail = () => {\n $(\".business-help .business-help__submit\").prop(\"onclick\", null).off(\"click\");\n $(\".business-help .business-help__submit\").on(\"click\", event => {\n let valid = true;\n const helpTab = $(\".business-help:visible\");\n const businessElement = helpTab.find(\".business-help__business\");\n const business = businessElement.val();\n\n const nameElement = helpTab.find(\".business-help__admin\");\n const name = nameElement.val();\n\n const emailElement = helpTab.find(\".business-help__email\");\n const email = emailElement.val();\n\n const firstDigitsElement = helpTab.find(\".business-help__first-digits\");\n const firstDigits = firstDigitsElement.val();\n\n const lastDigitsElement = helpTab.find(\" .business-help__last-digits\");\n const lastDigits = lastDigitsElement.val();\n\n const messageElement = helpTab.find(\".business-help__textarea\");\n const message = messageElement.val();\n\n if (business === undefined || business === \"\") {\n valid = false;\n businessElement.addClass(\"business-help__input--invalid\");\n }\n\n if (name === undefined || name === \"\") {\n valid = false;\n nameElement.addClass(\"business-help__input--invalid\");\n }\n\n if (email === undefined || email === \"\") {\n valid = false;\n emailElement.addClass(\"business-help__input--invalid\");\n }\n\n if (firstDigits === undefined || firstDigits === \"\") {\n valid = false;\n firstDigitsElement.addClass(\"business-help__input--invalid\");\n }\n\n if (lastDigits === undefined || lastDigits === \"\") {\n valid = false;\n lastDigitsElement.addClass(\"business-help__input--invalid\");\n }\n\n if (message === undefined || message === \"\") {\n valid = false;\n messageElement.addClass(\"business-help__input--invalid\");\n }\n\n if (valid) {\n var formData = new FormData();\n formData.append(\"subject\", business);\n formData.append(\"message\", message);\n formData.append(\"name\", name);\n formData.append(\"email\", email);\n formData.append(\"phoneNumber\", firstDigits + lastDigits);\n\n this.platformRepository.sendBusinessMessageAnonymous(formData).done(() => {\n messageElement.val(\"\");\n messageElement.removeModifiers(\"invalid\");\n Business.Toast.displayLabel(\"Business.Management.Help.SendEmail.Success\");\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n });\n }\n }\n}","module BusinessManagement {\n export class HelpRenderer {\n private helpCategoriesTemplate: HandlebarsTemplateDelegate;\n private questionsTemplate: HandlebarsTemplateDelegate;\n private contactTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (model: BaseList, callBack: Function): void => {\n if (this.helpCategoriesTemplate == null) {\n this.helpCategoriesTemplate = Handlebars.compile($(\"#help-categories-template\").html());\n }\n if (this.questionsTemplate == null) {\n this.questionsTemplate = Handlebars.compile($(\"#help-questions-template\").html());\n Handlebars.registerPartial(\"questionsPartial\", this.questionsTemplate);\n }\n\n $(\".business-help__categories-placeholder\").html(this.helpCategoriesTemplate(model));\n callBack();\n }\n\n public renderContactForm = (model: Business.SalesAccountData, callBack: Function) => {\n if (this.contactTemplate == null) {\n this.contactTemplate = Handlebars.compile($(\"#contact-template\").html());\n }\n\n const phoneNumber = model.administratorPhoneNumber?.split(\" \").slice(1).join(\" \").trim();\n $(\".business-help__contact-placeholder\").html(this.contactTemplate(_.extend(model, { phoneNumber })));\n\n callBack();\n }\n }\n}","/// \n/// \n\nmodule BusinessManagement {\n export class InviteControllerHelper {\n private readonly inviteRepository: Business.IInviteRepository;\n private readonly platformRepository: Platform.Repository;\n private readonly marketId: number;\n private readonly salesUser: Business.SalesUser;\n private readonly hasSubLeagues: boolean;\n private selectedSubLeagueId: number;\n\n constructor(selectedSubLeagueId: number, marketId: number, salesUser: Business.SalesUser, platformRepository: Platform.Repository, inviteRepository: Business.IInviteRepository, hasSubLeagues: boolean) {\n this.inviteRepository = inviteRepository;\n this.platformRepository = platformRepository;\n this.salesUser = salesUser;\n this.hasSubLeagues = hasSubLeagues;\n\n this.marketId = marketId;\n this.selectedSubLeagueId = selectedSubLeagueId;\n\n if ($(\".business-invite__tables\").children().length > 2) {\n $(\".invite-explanation-table\").addModifiers(\"three-columns\");\n $(\".invite-unique-link-table\").addModifiers(\"three-columns\");\n $(\".invite-universal-link-table\").addModifiers(\"three-columns\");\n }\n }\n\n public updateSelectedSubLeagueId = (selectedSubLeagueId: number) => {\n this.selectedSubLeagueId = selectedSubLeagueId;\n this.getData();\n }\n\n public loadTabData = (isConfigurationComplete: boolean) => {\n $(\".business-invite__configuration-notice\").toggle(!isConfigurationComplete);\n $(\".business-invite__tables\").hide();\n $(\".business-invite__market-notice\").hide();\n $(\".invite-universal-link-table\").toggle(isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues));\n $(\".invite-unique-link-table\").toggle(!isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues));\n\n const isClientAdmin = isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues) && this.salesUser.isClientAdministrator();\n if (!isConfigurationComplete || !isClientAdmin)\n $(\".business-invite__subleagues-notice\").hide();\n else if (isClientAdmin)\n $(\".business-invite__subleagues-notice\").toggle(!this.hasSubLeagues);\n\n const labelKey = \"Business.Management.Invite.LinkNotAvailableYet\";\n $(\".invite-explanation-table__universal-invite-link\").addModifiers(\"unavailable\").text(TranslationData.get(labelKey));\n $(\".invite-universal-link-table\").addModifiers(\"disabled\");\n\n $(\".invite-explanation-table__unique-invite-link\").addModifiers(\"unavailable\").html(TranslationData.get(labelKey));\n $(\".invite-explanation-table\").addModifiers(\"disabled\");\n\n if (!isConfigurationComplete || !this.hasSubLeagues) return $.Deferred();\n\n return this.getData();\n }\n\n\n private getData = () => {\n return this.platformRepository.getGameInfo(this.marketId).done((gameInfo: Platform.GameInfo) => {\n this.inviteRepository.getInviteMailContent(this.selectedSubLeagueId).done(inviteContent => {\n if (inviteContent.hasNull()) {\n return;\n }\n if (isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues)) {\n $(\".invite-universal-link-table\").removeModifiers(\"disabled\");\n if (inviteContent.hasSubLeagues) {\n $(\".invite-explanation-table__universal-invite-link\").removeModifiers(\"unavailable\").html(`${inviteContent.universalInviteUrl}`);\n $(\".invite-explanation-table__copy-universal-link-button\").removeModifiers(\"hidden\");\n $(\".invite-explanation-table__go-to-subleagues-button\").addModifiers(\"hidden\");\n }\n else {\n $(\".invite-explanation-table__copy-universal-link-button\").addModifiers(\"hidden\");\n $(\".invite-explanation-table__go-to-subleagues-button\").removeModifiers(\"hidden\");\n $(\".invite-explanation-table__universal-invite-link\").text(TranslationData.get(\"Business.Management.Invite.NoSubLeaguesAvailable\"));\n }\n }\n\n $(\".invite-explanation-table__unique-invite-link\").removeModifiers(\"unavailable\").html(`${inviteContent.uniqueInviteUrl}`);\n $(\".invite-unique-link-table\").removeModifiers(\"disabled\");\n $(\".invite-explanation-table\").removeModifiers(\"disabled\");\n $(\".business-invite__tables\").show();\n\n $(\".invite-explanation-table__copy-invite-button\").removeClickListeners().on(\"click\", () => {\n this.showPopup(inviteContent.mailContent);\n });\n\n $(\".invite-explanation-table__copy-unique-link-button\").removeClickListeners().on(\"click\", () => {\n const copiedToClipboard: JQueryPromise = copyTextToClipboard(inviteContent.uniqueInviteUrl);\n copiedToClipboard.then((success) => {\n Business.Toast.displayLabel(TranslationData.get(\"Business.Management.LinkCopied\"));\n }).fail((failure) => {\n Business.Toast.displayLabel(TranslationData.get(\"Common.ErrorOnPage\"));\n })\n });\n\n $(\".invite-explanation-table__copy-universal-link-button\").removeClickListeners().on(\"click\", () => {\n const copiedToClipboard: JQueryPromise = copyTextToClipboard(inviteContent.universalInviteUrl);\n copiedToClipboard.then((success) => {\n Business.Toast.displayLabel(TranslationData.get(\"Business.Management.LinkCopied\"));\n }).fail((failure) => {\n Business.Toast.displayLabel(TranslationData.get(\"Common.ErrorOnPage\"));\n })\n });\n\n $(\".invite-explanation-table__go-to-subleagues-button\").removeClickListeners().on(\"click\", () => {\n $(`.client-administrator__tab[data-tab-id=${Business.ClientAdminTabType.SubLeagues}]`).click();\n scrollTo(0, 0);\n });\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private showPopup = (content: string): void => {\n const popup = $.newPopup(\"copy-invite-popup\");\n $('#copy-invite-popup .popup-content-body__fake-textbox').text(content);\n $.togglePopup(\"#copy-invite-popup\", !popup.hasClass('popup--open'), true);\n\n $(\"#copy-invite-popup .popup-content-body__fake-textbox\").html(content.replace(/(?:\\r\\n|\\r|\\n)/g, \"
\"));\n\n $(\"#copy-invite-popup .popup-content-body__fake-textbox\").on('mouseup', function () {\n var sel, range;\n var el = $(this)[0];\n if (window.getSelection && document.createRange) { //Browser compatibility\n sel = window.getSelection();\n if (sel.toString() == '') { //no text selection\n window.setTimeout(function () {\n range = document.createRange(); //range object\n range.selectNodeContents(el); //sets Range\n sel.removeAllRanges(); //remove all ranges from selection\n sel.addRange(range);//add Range to a Selection.\n }, 1);\n }\n }\n });\n\n $(\"#copy-invite-popup .popup-content-body__fake-textbox\").removeClickListeners().on(\"click\", () => {\n const copiedToClipboard: JQueryPromise = copyTextToClipboard(content);\n copiedToClipboard.then((success) => {\n Business.Toast.displayLabel(TranslationData.get(\"Business.Management.LinkCopied\"));\n }).fail((failure) => {\n Business.Toast.displayLabel(TranslationData.get(\"Common.ErrorOnPage\"));\n })\n });\n\n $(\"#copy-invite-popup .popup-content-header__close,#copy-invite-popup .popup-content-body-close-button,#copy-invite-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#copy-invite-popup\", false, true);\n });\n }\n }\n}","module BusinessManagement {\n export enum ParticipantMailMode {\n Manual = 0,\n All = 1\n }\n}","module BusinessManagement {\n import Participants = Business.Participants;\n\n const SupportedGameTypes = [\n KnownGameIds.FootballTournament,\n KnownGameIds.FootballMatchDuel,\n KnownGameIds.FootballTournamentManager\n ]\n\n export class ParticipantsControllerHelper {\n protected subLeagueRepository: Business.ISubLeagueRepository;\n private readonly dd = KnownGameIds.CyclingManager\n private readonly participantsRenderer: BusinessManagement.ParticipantsRenderer;\n private readonly participantRepository: Business.ParticipantRepository;\n private readonly platformRepository: Platform.Repository;\n private readonly leagueRepository: League.Repository;\n private readonly rankingRepository: Business.RankingRepository;\n private readonly userPredictionStatusRepository: Business.IUserPredictionStatusRepository;\n private readonly frontendOrderingAndFilteringThreshold: number;\n private readonly tabSelector: string;\n private readonly prefixId: string;\n private readonly participantsUrl: string;\n private requestStorageKey: string;\n private nrOfParticipants: number;\n private leagueName: string;\n private selectedSubLeagueId: number;\n private mainLeagueId: number;\n private isSubLeaguesFeatureSupported: boolean;\n\n constructor(tabSelector: \".client-administrator__tab-content\" | \".league-administrator__tab-content\", prefixId: string, selectedSubLeagueId: number, participantsUrl: string, frontendOrderingAndFilteringThreshold: number,\n participantsRepository: Business.ParticipantRepository, subLeagueRepository: Business.ISubLeagueRepository, userPredictionStatusRepository: Business.IUserPredictionStatusRepository, platformRepository: Platform.Repository,\n leagueRepository: League.Repository, mainLeagueId: number, isSubLeaguesFeatureSupported: boolean, private marketId: number, rankingRepository: Business.RankingRepository) {\n this.tabSelector = tabSelector;\n this.prefixId = prefixId;\n this.selectedSubLeagueId = selectedSubLeagueId;\n this.participantRepository = participantsRepository;\n this.subLeagueRepository = subLeagueRepository;\n this.userPredictionStatusRepository = userPredictionStatusRepository;\n this.platformRepository = platformRepository;\n this.leagueRepository = leagueRepository;\n this.participantsUrl = participantsUrl;\n this.frontendOrderingAndFilteringThreshold = frontendOrderingAndFilteringThreshold;\n this.mainLeagueId = mainLeagueId;\n this.isSubLeaguesFeatureSupported = isSubLeaguesFeatureSupported;\n this.participantsRenderer = new BusinessManagement.ParticipantsRenderer();\n this.rankingRepository = rankingRepository;\n this.requestStorageKey = `rankingRequest:${selectedSubLeagueId}`;\n }\n\n public updateSelectedSubLeagueId = (selectedSubLeagueId: number) => {\n this.selectedSubLeagueId = selectedSubLeagueId;\n this.requestStorageKey = `rankingRequest:${selectedSubLeagueId}`;\n\n return this.platformRepository.getGameInfo(this.marketId).done((gameInfo: Platform.GameInfo) => {\n if (gameInfo.isOnline()) {\n this.loadPoolParticipantData();\n }\n });\n }\n\n public loadTabData = (isConfigurationComplete: boolean) => {\n $(\".business-participants__notice\").toggle(!isConfigurationComplete);\n const content = $(\".business-participants__content\");\n isConfigurationComplete ? content.show() : content.hide();\n $(\".business-participants__market-notice\").toggle(false);\n\n this.participantsRenderer.renderTemplate(new Participants(0, 0, 0, 0, \"\", [], []), this.tabSelector, this.prefixId, () => {\n this.stylePage();\n });\n\n if (!isConfigurationComplete) {\n return $.Deferred();\n }\n\n return this.platformRepository.getGameInfo(this.marketId).done((gameInfo: Platform.GameInfo) => {\n $(\".business-participants__market-notice\").toggle(!gameInfo.isOnline());\n\n if (gameInfo.isOnline()) {\n Business.LoadingOverlayRenderer.showLoadingOverlay({\n firstLabelKey: \"Business.Participants.LoadingMessage.1\",\n secondLabelKey: \"Business.Participants.LoadingMessage.2\",\n thirdLabelKey: \"Business.Participants.LoadingMessage.3\",\n });\n this.loadPoolParticipantData();\n return;\n }\n const momentOnlineDate = moment.utc(gameInfo.onlineDate).locale(uiCulture);\n const description = TranslationData.get(\"Business.Management.Invite.GameNotOnlineDescription\")?.format(momentOnlineDate.format(\"dddd DD MMMM\"));\n $(\".business-participants__market-notice:visible .market-not-online-notice__description\").html(description);\n $(\".business-participants__content\").hide();\n });\n }\n\n private loadPoolParticipantData(): JQueryPromise {\n return this.participantRepository.get(this.selectedSubLeagueId, 0, this.frontendOrderingAndFilteringThreshold)\n .done(participants => {\n this.leagueName = participants.leagueName;\n this.nrOfParticipants = participants.participantCount;\n if (participants.participantCount <= this.frontendOrderingAndFilteringThreshold) {\n this.processParticipants(participants);\n this.processParticipantsPredictionStatusses(participants, (processedParticipants) => {\n this.processParticipants(processedParticipants);\n });\n return;\n }\n\n this.loadPerPageAndProcessServerSide();\n })\n .fail(() => {\n NotificationBar.Display(TranslationData.get(\"Business.Management.FailedToLoadParticipants\"));\n }).always(() => {\n Business.LoadingOverlayRenderer.hideLoadingOverlay();\n });\n }\n\n private loadPerPageAndProcessServerSide(): void {\n this.stylePage();\n this.styleParticipantDataTableServerSideProcessing();\n this.bindSearchbar();\n this.bindMailAllButton();\n this.bindSendMailButton();\n this.bindParticipantClick();\n this.handleRankingClick();\n }\n\n private processParticipants = (participants: Business.Participants) => {\n this.participantsRenderer.renderTemplate(participants, this.tabSelector, this.prefixId, () => {\n this.stylePage();\n this.bindSearchbar();\n this.bindMailAllButton();\n this.bindSendMailButton();\n this.bindParticipantClick();\n this.handleRankingClick();\n });\n }\n\n private processParticipantsPredictionStatusses = (\n participants: Business.Participants,\n callback: (processedParticipants: Business.Participants) => void,\n ): void => {\n this.platformRepository.getGameInfo(this.marketId).done((gameInfo: Platform.GameInfo) => {\n if (SupportedGameTypes.indexOf(gameInfo.gameId) === -1) {\n return;\n }\n\n // Group by shard id\n const participantsByShardIdDictionary = _.groupBy(participants.list, i => this.getShardId(i.userId));\n // Setup variables in advance \n const deferreds = [];\n let processedParticipants = participants.clone();\n processedParticipants.list = [];\n\n // Loop through users by shard ids\n _.keys(participantsByShardIdDictionary).forEach(key => {\n if (participantsByShardIdDictionary.hasOwnProperty(key)) {\n const participantsPerShardId = participantsByShardIdDictionary[key];\n const shardId = parseInt(key);\n\n // Process participants by shard id\n const marketDeferred = this.platformRepository.activeAndUpcoming(shardId);\n const upsDeferred = this.userPredictionStatusRepository.get(shardId, this.marketId, participantsPerShardId.map(i => i.userId));\n\n const def = $.when(marketDeferred, upsDeferred)\n .done((markets: Platform.Market[], userPredictionStatusses: Business.UserPredictionStatuses[]) => {\n // Validation\n const marketIndex = markets.map(i => i.id).indexOf(this.marketId);\n\n if (marketIndex === -1) {\n return;\n }\n\n if (!(markets[marketIndex].gameId in SupportedGameTypes)) {\n processedParticipants.list = processedParticipants.list.concat(participantsPerShardId);\n return;\n }\n\n const marketPredictionItems = markets[marketIndex].marketPredictionItems ?? [];\n\n // Sort user predictions to speed up processing\n const sortedUserPredictionStatusses = userPredictionStatusses.sort((a, b) => {\n if (a.userId === b.userId) {\n return 0;\n }\n else if (a.userId > b.userId) {\n return -1;\n }\n else if (a.userId < b.userId) {\n return 1;\n }\n });\n\n // Sort market prediction items to keep the columns and statusses consistent\n const sortedMarketPredictionItems = marketPredictionItems.sort((a, b) => {\n if (a.order === b.order) {\n return 0;\n }\n else if (a.order > b.order) {\n return -1;\n }\n else if (a.order < b.order) {\n return 1;\n }\n });\n\n processedParticipants.predictionStatusColumns = sortedMarketPredictionItems.map(i => i.name);\n\n participantsPerShardId.forEach(participant => {\n participant.userPredictionStatusList = [];\n\n const statusIndex = sortedUserPredictionStatusses.map(i => i.userId).indexOf(participant.userId);\n\n if (statusIndex === -1) {\n // If the status does not exist then assume the status is incomplete\n processedParticipants.predictionStatusColumns.forEach(i => participant.userPredictionStatusList.push(false));\n return;\n }\n\n const userPredictionStatus = sortedUserPredictionStatusses[statusIndex];\n\n sortedMarketPredictionItems.forEach(predictionItem => {\n if (!userPredictionStatus.predictableRoundModels || userPredictionStatus.predictableRoundModels.length === 0) {\n // If the prediction status does not exist then assume the status is incomplete\n participant.userPredictionStatusList.push(false);\n return;\n }\n\n const predictableRoundIndex = userPredictionStatus.predictableRoundModels.map(i => i.order).indexOf(predictionItem.order);\n\n if (predictableRoundIndex === -1) {\n // If the prediction status does not exist then assume the status is incomplete\n participant.userPredictionStatusList.push(false);\n return;\n }\n\n const finalUserPredictionStatus = userPredictionStatus.predictableRoundModels[predictableRoundIndex];\n participant.userPredictionStatusList.push(finalUserPredictionStatus.isComplete);\n });\n });\n processedParticipants.list = processedParticipants.list.concat(participantsPerShardId);\n });\n\n deferreds.push(def);\n }\n });\n\n $.when.apply(null, deferreds)\n .done(() => callback(processedParticipants))\n .fail(() => callback(participants));\n });\n };\n\n private stylePage() {\n this.requestStorageKey = `rankingRequest:${this.selectedSubLeagueId}`;\n const storageDate = localStorage.getItem(this.requestStorageKey);\n\n if (storageDate != null && moment.utc().diff(moment.utc(storageDate), \"hours\") <= 24) {\n $(\".business-participants__ranking-button\").addModifiers(\"disabled\");\n $(\".business-participants__ranking-button\").html(TranslationData.get(\"Business.Management.Ranking.Export.Requested\"));\n $(\".business-participants__ranking-info\").show();\n }\n else {\n localStorage.removeItem(this.requestStorageKey);\n $(\".business-participants__ranking-button\").removeModifiers(\"disabled\");\n $(\".business-participants__ranking-button\").html(TranslationData.get(\"Business.Management.Ranking.Export\"));\n $(\".business-participants__ranking-info\").hide();\n }\n\n var participantsString = this.nrOfParticipants ? this.nrOfParticipants > 1 ? TranslationData.get(\"Common.Participants\")\n : TranslationData.get(\"Common.Participant\") : '';\n $(\".business-participants__count\").html(this.nrOfParticipants ? this.nrOfParticipants.toString() : '');\n $(\".business-participants__participants\").html(participantsString);\n $(\".business-participants__subleague-name\").html(this.leagueName);\n\n \n }\n\n private bindSearchbar() {\n $(\".business-participants__search-bar\").on(\"input\", () => {\n const value = $(\".business-participants__search-bar:visible\").val();\n this.participantsRenderer.drawSearch(value);\n });\n }\n\n private handleDeleteClick = (deleteButton: JQuery): void => {\n const row = deleteButton.closest(\".business-participants-row\");\n const participantId = +row.data(\"participant-id\");\n const username = row.find(\".business-participants-row__username\").text();\n this.showPopup(participantId, username, this.leagueName);\n }\n\n private bindMailAllButton = () => {\n $(\".business-participants__table-header-mail-all\").on(\"change\", e => {\n const checked: boolean = $(e.currentTarget).prop(\"checked\");\n const participantMailMode = checked ? ParticipantMailMode.All : ParticipantMailMode.Manual;\n this.participantsRenderer.setMode(participantMailMode)\n\n if (participantMailMode === ParticipantMailMode.All) {\n $(\".business-participants__search-bar:visible\").val(\"\");\n this.participantsRenderer.drawSearch(\"\");\n $(\".mail-user-form\").addModifiers(\"visible\");\n $(\".mail-user-form__username\").text(this.leagueName);\n $(\".mail-user-form__send-button-participants\").show()\n }\n else {\n $(\".mail-user-form\").removeModifiers(\"visible\");\n $(\".mail-user-form__send-button-participants\").hide()\n }\n })\n }\n\n private bindSendMailButton() {\n $(\".mail-user-form__send-button\").unbind()\n $(\".mail-user-form__send-button\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n if (elem.hasModifier(\"disabled\"))\n return;\n\n const checkedUsers = $(\".business-participants-row__radio-button:checked\");\n if (this.participantsRenderer.participantMailMode === ParticipantMailMode.Manual && checkedUsers.length < 1)\n return NotificationBar.Display(TranslationData.get(\"Business.Management.SelectUser\"));\n\n const subjectElem = $(\".mail-user-form__subject-field:visible\");\n const subject = $(\".mail-user-form__subject-field:visible\").val();\n const messageElem = $(\".mail-user-form__message-field:visible\");\n const message = $(\".mail-user-form__message-field:visible\").val();\n let valid = true;\n\n if (!subject) {\n subjectElem.addModifiers(\"invalid\");\n valid = false;\n }\n if (!message) {\n messageElem.addModifiers(\"invalid\");\n valid = false;\n }\n if (!valid) {\n return NotificationBar.Display(TranslationData.get(\"Common.CheckYourInput\"));\n }\n\n elem.addModifiers(\"disabled\");\n subjectElem.removeModifiers(\"invalid\");\n messageElem.removeModifiers(\"invalid\");\n Business.LoadingOverlayRenderer.showLoadingOverlay({\n firstLabelKey: \"Business.Participants.SendMailLoadingMessage.1\",\n secondLabelKey: \"Business.Participants.SendMailLoadingMessage.2\",\n thirdLabelKey: \"Business.Participants.SendMailLoadingMessage.3\",\n });\n let request: JQueryPromise;\n if (this.participantsRenderer.participantMailMode === ParticipantMailMode.All) {\n request = this.participantRepository.sendMessageToSubLeague(this.selectedSubLeagueId, subject, message);\n }\n else {\n const userToEmail = checkedUsers.closest(\".business-participants-row\").data(\"participant-id\");\n request = this.leagueRepository.sendPrivateMessage(this.selectedSubLeagueId, userToEmail, subject, message, true);\n }\n\n request.done((result) => {\n if (result.isSuccess()) {\n $(\".mail-user-form__subject-field\").val(\"\");\n $(\".mail-user-form__message-field\").val(\"\");\n $(\".business-participants-row__radio-button:checked\").prop(\"checked\", false);\n $(\".business-participants__table-header-mail-all\").prop(\"checked\", false);\n $(\".mail-user-form\").removeModifiers(\"visible\");\n this.participantsRenderer.setMode(ParticipantMailMode.Manual);\n Business.Toast.displayLabel(\"League.EmailSend.Success\");\n }\n else {\n NotificationBar.Display(result.message);\n }\n }).fail(err => {\n console.error(`Failed to send message to participants: ${JSON.stringify(err)}`);\n NotificationBar.Display(TranslationData.get(\"Business.Management.FailedToSendMessage\"));\n }).always(() => {\n elem.removeModifiers(\"disabled\");\n Business.LoadingOverlayRenderer.hideLoadingOverlay();\n $(\".mail-user-form__send-button-participants\").hide()\n });\n });\n }\n\n private showPopup = (participantId: number, participantUserName: string, subLeagueName: string) => { \n $.newPopup(\"remove-participant-popup\");\n $.togglePopup(\"#remove-participant-popup\", true, true);\n\n $(\"#remove-participant-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.Participant.DeleteConfirmation\")?.format(participantUserName, subLeagueName));\n $(\"#remove-participant-popup .popup-content-header__close,#remove-participant-popup .popup-content-body-close-button,#remove-participant-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#remove-participant-popup\", false, true);\n });\n\n $(\"#remove-participant-popup .popup-content-body-remove-button\").on(\"click\", () => {\n this.leagueRepository.removeParticipant(this.selectedSubLeagueId, participantId).done((result) => {\n if (result.isSuccess()) {\n $(`tr[data-participant-id='${participantId}']`).remove();\n this.nrOfParticipants--;\n this.stylePage();\n Business.Toast.displayLabel(\"League.ParticipantRejected\");\n }\n else {\n NotificationBar.Display(TranslationData.get(\"Business.Management.RemoveNotPossible\"));\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n $.togglePopup(\"#remove-participant-popup\", false, true);\n });\n }\n\n private styleParticipantDataTableServerSideProcessing() {\n this.participantsRenderer.renderServerSideTemplate(this.prefixId, `${this.participantsUrl}/${this.selectedSubLeagueId}`, this.mainLeagueId === this.selectedSubLeagueId, () => {\n this.bindParticipantClick();\n this.bindSendMailButton();\n })\n }\n\n private bindParticipantClick() {\n $(`#${this.prefixId}`)\n .removeClickListeners()\n .on(\"click\", \".business-participants-row__delete-icon\", e => {\n this.handleDeleteClick($(e.currentTarget));\n })\n .on(\"click\", \".business-participants-row__radio-button\", e => {\n $(\".mail-user-form__send-button-participants\").hide()\n $(\".mail-user-form\").addModifiers(\"visible\");\n this.handleMailClick($(e.currentTarget));\n });\n $(\".mail-user-form__send-button-participants\").text(`(${this.nrOfParticipants})`)\n }\n\n private handleMailClick = (radioButton: JQuery) => {\n const userId = radioButton.closest(\".business-participants-row\").attr(\"data-participant-id\");\n const userName = $(`.business-participants-row__username[data-participant-id=${userId}]`).first().text();\n\n $(\".mail-user-form__username\").text(userName);\n }\n\n private handleRankingClick = () => {\n $(\".business-participants__ranking-button\").on(\"click\", (e) => {\n if ($(e.currentTarget).hasModifier(\"loading\") || $(e.currentTarget).hasModifier(\"disabled\")) {\n return;\n }\n\n $(e.currentTarget).addModifiers(\"loading\");\n this.rankingRepository.request(this.selectedSubLeagueId).done(apiResult => {\n if (apiResult.isSuccess()) {\n localStorage.setItem(this.requestStorageKey, moment.utc().toISOString());\n $(\".business-participants__ranking-button\").addModifiers(\"disabled\");\n $(\".business-participants__ranking-button\").html(TranslationData.get(\"Business.Management.Ranking.Export.Requested\"));\n $(\".business-participants__ranking-info\").show();\n Business.Toast.displayLabel(\"Business.Management.Ranking.Export.Requested.Toast\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(e => {\n NotificationBar.Display(TranslationData.get(\"Business.Management.Ranking.RequestFailed\"))\n }).always(() => {\n $(e.currentTarget).removeModifiers(\"loading\");\n });\n });\n }\n\n getShardId = (userId: number): number => {\n return userId % 6 + 1\n }\n }\n}\n\n","/// \n\nmodule ClientAdministrator {\n export abstract class ClientAdministratorTabController extends Shared.TabController {\n protected tabType: Business.ClientAdminTabType;\n\n protected constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, tabType: Business.ClientAdminTabType,\n clientRepository: Business.IClientRepository, shouldCheckConfigurationComplete: boolean = false) {\n super(cdnUrl, salesApiSettings, platformApiSettings, clientRepository, shouldCheckConfigurationComplete)\n this.tabType = tabType;\n\n this.initCustomTabEventListeners();\n }\n\n protected removePreload = (): void => {\n $(\".client-administrator__tabs-content\").removeModifiers(\"preload\");\n $(\".client-administrator__tab\").removeModifiers(\"preload\");\n $(\".league-administrator__tab\").removeModifiers(\"preload\");\n }\n\n protected initCustomTabEventListeners = () => {\n addEventListener(Business.ClientAdministratorController.TabSwitchEvent, (event: CustomEvent) => {\n if (event.detail.tabType !== this.tabType)\n return;\n\n if (this.tabDataLoaded) {\n return this.removePreload();\n }\n\n this.setTabDataLoaded(true);\n\n if (this.shouldCheckConfigurationComplete) {\n this.checkConfigurationComplete();\n } else {\n this.loadData();\n }\n }); \n\n addEventListener(Business.ClientAdministratorController.ResetTabDataLoadedEvent, (event: CustomEvent) => {\n if (event.detail?.tabType == null || event.detail?.tabType === this.tabType) {\n this.setTabDataLoaded(false);\n }\n });\n }\n }\n} ","module Business {\n export class ClientAdministratorRenderer {\n private configurationHeaderTemplate: HandlebarsTemplateDelegate;\n\n private configurationAdminTemplate: HandlebarsTemplateDelegate;\n private configurationLandingTemplate: HandlebarsTemplateDelegate;\n private configurationLogoTakeOverTemplate: HandlebarsTemplateDelegate;\n private configurationLogoTakeOverNotAvailableTemplate: HandlebarsTemplateDelegate;\n private configurationMailingTextTemplate: HandlebarsTemplateDelegate;\n private configurationMainLeagueNameTemplate: HandlebarsTemplateDelegate;\n private configurationRankingLogoTemplate: HandlebarsTemplateDelegate;\n private configurationSubLeaguesTemplate: HandlebarsTemplateDelegate;\n private configurationSubLeaguesNotAvailableTemplate: HandlebarsTemplateDelegate;\n private configurationPromotionalPackageTemplate: HandlebarsTemplateDelegate;\n private configurationBrandingPackageTemplate: HandlebarsTemplateDelegate;\n\n public renderStepHeaderTemplate = (model: ClientAdministratorStepModel, callBack: Function, keepSlidesOpenState: boolean = false): void => {\n if (this.configurationHeaderTemplate == null) {\n this.configurationHeaderTemplate = Handlebars.compile($(\"#configuration-header-template\").html());\n }\n $(`.client-administrator-configuration__step[data-step-id=\"${model.configurationStepType}\"] .configuration-header-placeholder`).html(this.configurationHeaderTemplate(model));\n if (model.isSlideOpen) {\n this.toggleSlide(model.configurationStepType, true, keepSlidesOpenState);\n }\n else {\n this.toggleSlide(model.configurationStepType, false, keepSlidesOpenState);\n }\n callBack();\n }\n\n public toggleSlide = (step: ConfigurationStepType, open: boolean, keepSlidesOpenState: boolean = false): void => {\n const stepContainer = $(`.client-administrator-configuration__step[data-step-id=\"${+step}\"]`);\n const contentPlaceholder = stepContainer.find(\".configuration-content-placeholder\");\n if (!keepSlidesOpenState)\n $(\".configuration-content-placeholder\").removeModifiers(\"open\").height(0);\n\n if (open) {\n const isOpen = $(\".client-administrator-configuration__arrow\").hasModifier(\"slide-open\");\n if (isOpen) {\n $(\".client-administrator-configuration__arrow\").removeModifiers(\"slide-open\");\n }\n const content = contentPlaceholder.children(\":first-child\");\n contentPlaceholder.height(content.outerHeight());\n contentPlaceholder.addModifiers(\"open\");\n stepContainer.find(\".client-administrator-configuration__arrow\").addModifiers(\"slide-open\");\n }\n else {\n $(\".client-administrator-configuration__arrow\").removeModifiers(\"slide-open\");\n }\n }\n\n public renderAdminTemplate = (model: AdministratorsModel, callback: Function): void => {\n if (this.configurationAdminTemplate == null) {\n this.configurationAdminTemplate = Handlebars.compile($(\"#step-one-client-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.Administrators)}`).html(this.configurationAdminTemplate(model));\n callback();\n }\n\n public renderMainLeagueNameTemplate = (model: any, callback: Function) => {\n if (this.configurationMainLeagueNameTemplate == null) {\n this.configurationMainLeagueNameTemplate = Handlebars.compile($(\"#step-two-client-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.MainLeagueName)}`).html(this.configurationMainLeagueNameTemplate(model));\n\n callback();\n }\n\n public renderLogoTakeOverStepTemplate = (model: LogoTakeOverModel, callback: Function) => {\n if (this.configurationLogoTakeOverTemplate == null) {\n this.configurationLogoTakeOverTemplate = Handlebars.compile($(\"#step-three-client-administrator-template\").html());\n }\n if (this.configurationLogoTakeOverNotAvailableTemplate == null) {\n this.configurationLogoTakeOverNotAvailableTemplate = Handlebars.compile($(\"#step-three-not-available-client-administrator-template\").html());\n Handlebars.registerPartial(\"stepThreeNotAvailablePartial\", this.configurationLogoTakeOverNotAvailableTemplate);\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.LogoTakeOver)}`).html(this.configurationLogoTakeOverTemplate(model));\n callback();\n }\n\n public renderLandingTemplate = (model: any, callback: Function) => {\n if (this.configurationLandingTemplate == null) {\n this.configurationLandingTemplate = Handlebars.compile($(\"#step-four-client-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.LandingsPage)}`).html(this.configurationLandingTemplate(model));\n callback();\n }\n\n public renderRankingLogoTemplate = (rankingLogo: RankingLogoModel, message: string, callback: Function) => {\n if (this.configurationRankingLogoTemplate == null) {\n this.configurationRankingLogoTemplate = Handlebars.compile($(\"#step-five-client-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.RankingLogo)}`).html(this.configurationRankingLogoTemplate({ ...rankingLogo, message }));\n callback();\n }\n\n public renderMailingTextTemplate = (model: any, callback: Function) => {\n if (this.configurationMailingTextTemplate == null) {\n this.configurationMailingTextTemplate = Handlebars.compile($(\"#step-six-client-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.MailingText)}`).html(this.configurationMailingTextTemplate(model));\n callback();\n }\n\n public renderSubleaguesTemplate = (model: MultiSubLeaguesModel, cdnUrl: string, callback: Function) => {\n if (this.configurationSubLeaguesTemplate == null) {\n this.configurationSubLeaguesTemplate = Handlebars.compile($(\"#step-seven-client-administrator-template\").html());\n }\n\n model.culture = uiCulture.split(\"-\")[0];\n model.cdnUrl = cdnUrl;\n\n if (this.configurationSubLeaguesNotAvailableTemplate == null) {\n this.configurationSubLeaguesNotAvailableTemplate = Handlebars.compile($(\"#step-seven-not-available-client-administrator-template\").html());\n Handlebars.registerPartial(\"stepSevenNotAvailablePartial\", this.configurationSubLeaguesNotAvailableTemplate(model));\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.SubLeagues)} `).html(this.configurationSubLeaguesTemplate(model));\n callback();\n }\n\n public renderPromotionalPackage = (model: PromotionalPackageModel, callback: Function) => {\n if (this.configurationPromotionalPackageTemplate == null) {\n this.configurationPromotionalPackageTemplate = Handlebars.compile($(\"#step-promotional-package-client-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.PromotionalPackage)}`).html(this.configurationPromotionalPackageTemplate(model));\n callback();\n }\n\n public renderBrandingPackage = (model: BrandingPackageModel, callback: Function) => {\n if (this.configurationBrandingPackageTemplate == null) {\n this.configurationBrandingPackageTemplate = Handlebars.compile($(\"#step-branding-package-client-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(ConfigurationStepType.BrandingPackage)}`).html(this.configurationBrandingPackageTemplate(model));\n callback();\n }\n\n private getStepSelector = (type: ConfigurationStepType): string => {\n return `.client-administrator-configuration__step[data-step-id=\"${type}\"] .configuration-content-placeholder`;\n }\n }\n}","/// \n/// \n/// \n/// \n\nmodule Business {\n\n import cropperConfig = Business.cropperConfig;\n\n export class ConfigurationController extends ClientAdministrator.ClientAdministratorTabController {\n private static configurationCompletedLocalStorageKey = `sales.ConfigurationCompleted.${location.hostname}`;\n public static readonly ConfigurationChangedEvent: string = \"ConfigurationController.ConfigurationChangedEvent\";\n\n private clientAdministratorRenderer: ClientAdministratorRenderer;\n private administratorRepository: IAdministratorRepository;\n private accountDataRepository: Business.AccountDataRepository;\n private platformRepository: Platform.Repository;\n private leagueRepository: League.Repository;\n private actionsRepository: ActionsRepository;\n private subLeaguesRepository: Business.ISubLeagueRepository;\n private userRepository: Business.UserRepository;\n\n private administrators: AdministratorsModel;\n private countries: Platform.Countries;\n private clientMarketSettings: ClientMarketSettingsModel;\n private accountData: Business.SalesAccountData;\n private readonly leagueActionsEnabled: boolean;\n private mailingTextObserver: MutationObserver;\n private logoTakeOverState: { color: string, iconType: HeaderIconColorType };\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, userApiSettings: ApiSettings.UserApiSettings, platformApiSettings: Platform.ApiSettings,\n leagueApiSettings: League.ApiSettings, clientRepository: IClientRepository, leagueActionsEnabled: boolean) {\n\n super(cdnUrl, salesApiSettings, platformApiSettings, ClientAdminTabType.Configuration, clientRepository);\n this.administratorRepository = new AdministratorRepository(salesApiSettings, platformApiSettings);\n this.clientAdministratorRenderer = new ClientAdministratorRenderer();\n this.platformRepository = new Platform.Repository(platformApiSettings, this.marketId);\n this.leagueRepository = new League.Repository(leagueApiSettings);\n this.accountDataRepository = new Business.AccountDataRepository(salesApiSettings);\n this.actionsRepository = new ActionsRepository(salesApiSettings);\n this.subLeaguesRepository = new Business.SubLeagueRepository(this.salesApiSettings);\n this.leagueActionsEnabled = leagueActionsEnabled;\n this.userRepository = new Business.UserRepository(userApiSettings);\n this.initEventListeners();\n }\n\n protected loadData = () => {\n $.when(\n this.administratorRepository.get(),\n this.clientRepository.getClientMarketSettings(this.marketId),\n this.accountDataRepository.getSalesAccountData(),\n this.platformRepository.getCountries()\n ).done((admins: Administrators, settings: ClientMarketSettings, accountData: Business.SalesAccountData, countries: Platform.Countries) => {\n this.countries = countries;\n this.accountData = accountData;\n this.logoTakeOverState = { color: settings.headerBackgroundColor, iconType: settings.headerIconColorType };\n this.administrators = AdministratorsModel.fromDTO(admins, countries);\n this.clientMarketSettings = ClientMarketSettingsModel.fromDto(settings, this.salesUser, this.cdnUrl);\n this.loadStepsHeader();\n this.loadStepsContent();\n this.initializeCountryData(accountData?.administratorPhoneNumber ?? \"\");\n ActionsController.getInstance().initialize(this.marketId, this.clientMarketSettings.actionsLeft(), this.salesUser.leagueActionsCollection.getByMarketId(this.marketId));\n }).fail((err) => {\n this.displayErrorMessage(err);\n }).always(() => {\n this.removePreload();\n });\n }\n\n private loadStepsHeader = () => {\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepAdministrators(this.clientMarketSettings, false),\n () => { this.bindHeaderClick() }\n );\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepMainLeagueName(this.clientMarketSettings),\n () => { this.bindHeaderClick() }\n );\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepLogoTakeOver(this.clientMarketSettings, this.salesUser, false),\n () => { this.bindHeaderClick() }\n );\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepLandingsPage(this.clientMarketSettings, false),\n () => { this.bindHeaderClick() }\n );\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepRankingLogo(this.clientMarketSettings, false),\n () => { this.bindHeaderClick() }\n );\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepMailingText(this.clientMarketSettings),\n () => { this.bindHeaderClick() }\n );\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepSubLeagues(this.clientMarketSettings, this.salesUser, false),\n () => { this.bindHeaderClick() }\n );\n\n this.loadSalesPackagesStepHeader();\n }\n\n private loadSalesPackagesStepHeader = () => {\n if (this.salesUser.hasPromotionalPackage()) {\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepPromotionalPackage(this.clientMarketSettings, false),\n () => { this.bindHeaderClick() }\n );\n }\n\n $(`.client-administrator-configuration__step[data-step-id=\"${ConfigurationStepType.PromotionalPackage}\"]`).toggle(this.salesUser.hasPromotionalPackage())\n\n if (this.salesUser.hasBrandingPackage()) {\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepBrandingPackage(this.clientMarketSettings, false),\n () => { this.bindHeaderClick() }\n );\n }\n $(`.client-administrator-configuration__step[data-step-id=\"${ConfigurationStepType.BrandingPackage}\"]`).toggle(this.salesUser.hasBrandingPackage());\n }\n\n private loadStepsContent = (): void => {\n this.clientAdministratorRenderer.renderAdminTemplate(this.administrators, () => {\n this.bindAddAdminButtonClick();\n this.bindDeleteAdminButtonClick();\n this.bindDeleteInvitationClick();\n });\n this.clientAdministratorRenderer.renderMainLeagueNameTemplate(this.clientMarketSettings.leagueNameModel, () => {\n this.bindCheckLeagueNameClick();\n });\n this.clientAdministratorRenderer.renderLogoTakeOverStepTemplate(this.clientMarketSettings.logoTakeOverModel, () => {\n $(\".logo-take-over-slide__button-crop\").hide()\n this.bindLogoTakeOverUploadLogo();\n this.bindLogoTakeOverCropLogo();\n this.bindLogoTakeOverHeaderIcon();\n this.bindLogoTakeOverSetColor();\n this.bindLogoTakeOverSaveButton();\n });\n this.clientAdministratorRenderer.renderLandingTemplate(this.clientMarketSettings.landingPageModel, () => {\n $(\".landing-page-slide__crop-button\").hide()\n this.bindUploadLandingPageLogo();\n this.bindOptinRequiredRadio();\n });\n this.clientAdministratorRenderer.renderRankingLogoTemplate(this.clientMarketSettings.rankingLogoModel, \"\", () => {\n this.bindUploadRankingPageLogo();\n this.bindCropRankingPageLogo();\n $(\".ranking-logo-slide__crop-button\").hide()\n if (this.clientMarketSettings.rankingLogoModel.imageUrl) {\n $(\".ranking-logo-slide__ranking-logo-container\").addModifiers(\"active\");\n }\n });\n this.clientAdministratorRenderer.renderMailingTextTemplate(this.clientMarketSettings.welcomeEmailModel, () => {\n CKEDITOR.replace(\"mailing-text-slide__mail-message\");\n CKEDITOR.addCss(\".cke_editable{cursor:text; font-size: 14px; font-family: Roboto-Regular, Arial;}\");\n CKEDITOR.instances[\"mailing-text-slide__mail-message\"].setData(this.clientMarketSettings.welcomeEmailModel.body);\n this.bindSaveWelcomeEmail();\n this.bindSendTestEmail();\n this.bindEmailCheckmark();\n });\n this.clientAdministratorRenderer.renderSubleaguesTemplate(this.clientMarketSettings.multiSubLeaguesModel, this.cdnUrl, () => {\n this.bindSubLeagues();\n });\n\n if (this.salesUser.hasPromotionalPackage()) {\n this.clientAdministratorRenderer.renderPromotionalPackage(this.clientMarketSettings.promotionalPackageModel, () => {\n this.bindUploadPromotionalPackageLogo();\n this.bindCropPromotionalPackageLogo();\n this.bindConfirmPromotional();\n });\n }\n\n if (this.salesUser.hasBrandingPackage()) {\n this.clientAdministratorRenderer.renderBrandingPackage(this.clientMarketSettings.brandingPackageModel, () => {\n this.bindUploadBrandingPackageLogo();\n this.bindCropBrandingPackageLogo();\n this.bindBrandingPackageButtons();\n this.determineBrandingPackageButtonState();\n });\n }\n\n this.bindUpgradeButton();\n }\n\n private initializeCountryData = (phoneNumber: string) => {\n const countryCode = phoneNumber?.split(\" \")[0];\n const countryDropDown = $(\".country-select-input--country\").empty();\n\n this.countries.sortByName().each(country => {\n countryDropDown.append(new Option(country.name, country.code));\n });\n\n countryDropDown.on(\"change\", e => {\n const country = this.countries.getByCode($(e.currentTarget).val());\n $(\".country-select-input--country-code-company\").val(country.countryCallingCode);\n });\n\n const countryCodeDropDown = $(\".country-select-input--country-code-company,.country-select-input--country-code-admin\").empty();\n const countryCodes = this.countries.getCountryCallingCodes();\n _.each(countryCodes, key => {\n countryCodeDropDown.append(new Option(`+${key}`, key, false, key === countryCode));\n });\n }\n\n private bindHeaderClick = () => {\n const clientAdminContentElem = $(\".client-administrator__tabs-content\");\n clientAdminContentElem.find(\".configuration-header-placeholder\").removeClickListeners();\n clientAdminContentElem.find(\".configuration-header-placeholder\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const stepType: ConfigurationStepType = +elem.closest(\".client-administrator-configuration__step\").data(\"step-id\");\n const contentPlaceholder = elem.next();\n const shouldOpenSlide = !contentPlaceholder.hasClass(\"configuration-content-placeholder--open\");\n if (this.clientMarketSettings && shouldOpenSlide && stepType === ConfigurationStepType.Administrators && !this.clientMarketSettings.hasOpenedAdmins) {\n this.clientRepository.saveHasOpenedAdmins(this.marketId).done(() => {\n this.clientMarketSettings.hasOpenedAdmins = true;\n this.clientAdministratorRenderer.renderStepHeaderTemplate(ClientAdministratorStepModel.toStepAdministrators(this.clientMarketSettings, true), () => { this.bindHeaderClick() });\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.checkConfigurationCompletion();\n }).fail((err) => {\n this.displayErrorMessage(err);\n });\n }\n\n this.clientAdministratorRenderer.toggleSlide(stepType, shouldOpenSlide);\n });\n }\n\n private bindAddAdminButtonClick = () => {\n $(\".administrators-slide__button-add\").on(\"click\", event => {\n let valid = true;\n const firstName = $(\"#firstName\").val();\n const lastName = $(\"#lastName\").val();\n const email = $(\"#email\").val();\n const countryCode = $(\"#countryCode\").val();\n const phoneNumber = $(\"#phoneNumber\").val();\n\n if (firstName === undefined || firstName === \"\") {\n valid = false;\n $(\"#firstName\").parent().addClass(\"invalid\");\n $(\"#firstName\").append(\"
\" + TranslationData.get(\"Business.FirstName.Invalid\") + \"
\");\n }\n\n if (lastName === undefined || lastName === \"\") {\n valid = false;\n $(\"#lastName\").parent().addClass(\"invalid\");\n $(\"#lastName\").append(\"
\" + TranslationData.get(\"Business.LastName.Invalid\") + \"
\");\n }\n\n if (!Email.Validate(email)) {\n valid = false;\n $(\"#email\").parent().addClass(\"invalid\");\n $(\"#email\").append(\"
\" + TranslationData.get(\"Business.Email.Invalid\") + \"
\");\n }\n\n if (countryCode === undefined || countryCode === \"\") {\n valid = false;\n $(\"#countryCode\").parent().addClass(\"invalid\");\n $(\"#countryCode\").append(\"
\" + TranslationData.get(\"Business.CountryCode.Invalid\") + \"
\");\n }\n\n if (phoneNumber === undefined || phoneNumber === \"\") {\n valid = false;\n $(\"#phoneNumber\").addClass(\"invalid\");\n $(\"#phoneNumber\").append(\"
\" + TranslationData.get(\"Business.PhoneNumber.Invalid\") + \"
\");\n }\n\n if (valid) {\n const callingCode = $(`#countryCode`).val();\n const country = this.countries.getByCallingCode(callingCode);\n if (country == null) {\n console.error(`Unknown country for country calling code ${callingCode}`);\n return NotificationBar.Display(TranslationData.get(\"Business.PhoneNumber.Unknown\"));\n }\n const model = new InviteModel(email, firstName, lastName, `${callingCode} ${phoneNumber}`, country.id);\n\n $.when(this.administratorRepository.invite(model)).done((result: ApiResult) => {\n if (result.isSuccess()) {\n const admins = Administrators.fromJson(result.content);\n this.administrators = AdministratorsModel.fromDTO(admins, this.countries);\n this.clientAdministratorRenderer.renderAdminTemplate(this.administrators, () => {\n this.bindAddAdminButtonClick();\n this.bindDeleteAdminButtonClick();\n this.bindDeleteInvitationClick();\n this.initializeCountryData(this.accountData?.administratorPhoneNumber ?? \"\");\n });\n\n Toast.displayLabel(\"Business.AdminInvited\");\n }\n else {\n NotificationBar.Display(result.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n });\n }\n });\n }\n\n private bindDeleteAdminButtonClick = () => {\n $(\".administrators-slide__button-delete--accepted\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const userId = +elem.data(\"userId\");\n const administrator = this.administrators.getByUserId(userId);\n this.showPopup(administrator);\n });\n }\n\n private bindDeleteInvitationClick = () => {\n $(\".administrators-slide__button-delete--unaccepted\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const inviteLinkId = elem.data(\"inviteLinkId\");\n const administrator = this.administrators.getByInviteLinkId(inviteLinkId);\n this.showPopup(administrator);\n });\n }\n\n private showPopup = (administrator: AdministratorModel) => {\n $.newPopup(\"remove-client-administrator-popup\");\n $.togglePopup(\"#remove-client-administrator-popup\", true, true);\n\n $(\"#remove-client-administrator-popup .popup-content-body__text-explanation\").html(TranslationData.get(\"Business.Management.ClientAdministrator.DeleteConfirmation\")?.format(administrator.getFullName()));\n\n $(\"#remove-client-administrator-popup .popup-content-header__close,#remove-client-administrator-popup .popup-content-body-close-button,#remove-client-administrator-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#remove-client-administrator-popup\", false, true);\n });\n\n $(\"#remove-client-administrator-popup .popup-content-body-remove-button\").on(\"click\", () => {\n if (administrator.isAcceptedAdmin())\n this.onDeleteAdmin(administrator.userId);\n else\n this.onDeleteInvitation(administrator.managementInvitationLinkId);\n\n $.togglePopup(\"#remove-client-administrator-popup\", false, true);\n });\n }\n\n private onDeleteAdmin = (userId: number) => {\n $.when(this.administratorRepository.deleteAdmin(userId))\n .done((result: ApiResult) => {\n if (result.isSuccess()) {\n const admins = Administrators.fromJson(result.content);\n this.administrators = AdministratorsModel.fromDTO(admins, this.countries);\n this.clientAdministratorRenderer.renderAdminTemplate(this.administrators, () => {\n this.bindAddAdminButtonClick();\n this.bindDeleteAdminButtonClick();\n this.bindDeleteInvitationClick();\n this.initializeCountryData(this.accountData?.administratorPhoneNumber ?? \"\");\n });\n Toast.displayLabel(\"Business.AdminDeleted\");\n }\n else {\n NotificationBar.Display(result.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n });\n }\n\n private onDeleteInvitation = (inviteLinkId: number) => {\n $.when(this.administratorRepository.deleteInvitation(inviteLinkId))\n .done((result: ApiResult) => {\n if (result.isSuccess()) {\n const admins = Administrators.fromJson(result.content);\n this.administrators = AdministratorsModel.fromDTO(admins, this.countries);\n this.clientAdministratorRenderer.renderAdminTemplate(this.administrators, () => {\n this.bindAddAdminButtonClick();\n this.bindDeleteAdminButtonClick();\n this.bindDeleteInvitationClick();\n this.initializeCountryData(this.accountData?.administratorPhoneNumber ?? \"\");\n });\n\n Toast.displayLabel(\"Business.AdminDeleted\");\n }\n else {\n NotificationBar.Display(result.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n });\n }\n\n private bindCheckLeagueNameClick = () => {\n $(\".main-league-slide__button\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const input = $(\".main-league-slide__input\");\n const leagueName = input.val();\n\n if (elem.hasModifier(\"disabled\"))\n return;\n\n if (leagueName === \"\" || leagueName.length > 25 || leagueName.length < 5) {\n $(\".main-league-slide__input\").addModifiers(\"invalid\");\n $(\".main-league-slide__invalid-message\").addModifiers('visible');\n $(\".main-league-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameLengthError\")).show();\n return;\n }\n\n if (!/[A-Za-z0-9]/.exec(leagueName.trim())) {\n $(\".main-league-slide__input\").addModifiers(\"invalid\");\n $(\".main-league-slide__invalid-message\").addModifiers('visible');\n $(\".main-league-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameMustContainNonSpecialCharactersError\")).show();\n return;\n }\n\n $(\".main-league-slide__input\").removeModifiers(\"invalid\");\n $(\".main-league-slide__error-message\").hide();\n\n $(\".main-league-slide__input\").prop(\"disabled\", true);\n elem.addModifiers(\"disabled\");\n\n this.leagueRepository.checkPoolName(regionId, this.marketId, leagueName)\n .done(valid => {\n if (!valid) {\n $(\".main-league-slide__input\").prop(\"disabled\", false);\n $(\".main-league-slide__error-message\").text(TranslationData.get(\"League.SubleagueName.InUse\")).show();\n return;\n }\n\n const mainLeagueId = this.getMainLeagueId();\n this.clientRepository.saveLeagueName(this.marketId, leagueName, mainLeagueId ?? 0)\n .done(apiResult => {\n if (apiResult.isSuccess()) {\n if (!this.clientMarketSettings.hasCompletedLeagueName())\n this.createFirstSubleague(leagueName)\n\n this.clientMarketSettings.updateLeagueName(leagueName);\n this.salesUser.updateMainLeagueId(+apiResult.content);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepMainLeagueName(this.clientMarketSettings),\n () => { this.bindHeaderClick() }\n );\n\n this.clientAdministratorRenderer.renderRankingLogoTemplate(this.clientMarketSettings.rankingLogoModel, \"\", () => {\n this.bindUploadRankingPageLogo();\n this.bindCropRankingPageLogo();\n $(\".ranking-logo-slide__crop-button\").hide()\n });\n\n // sales packages\n this.loadSalesPackagesStepHeader();\n $(\".branding-package-slide__request-preview-print-warning\").text(TranslationData.get(\"Business.Management.BrandingPackage.IncompleteBrandingImage\"));\n\n this.checkConfigurationCompletion();\n dispatchEvent(new CustomEvent(ClientAdministratorController.ResetTabDataLoadedEvent, { detail: { tabType: ClientAdminTabType.SubLeagues } }));\n $(\".main-league-slide__input\").removeModifiers(\"invalid\");\n $(\".main-league-slide__error-message\").hide();\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n\n this.bindUploadPromotionalPackageLogo();\n }\n else {\n $(\".main-league-slide__input\").addModifiers(\"invalid\");\n $(\".main-league-slide__error-message\").text(apiResult.message).show();\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n }).always(() => {\n $(\".main-league-slide__input\").prop(\"disabled\", false);\n });\n })\n .fail((err) => {\n $(\".main-league-slide__input\").prop(\"disabled\", false);\n this.displayErrorMessage(err);\n });\n });\n\n $(\".main-league-slide__input\").on(\"change, input\", e => {\n if (this.clientMarketSettings.leagueNameModel.leagueName === $(e.currentTarget).val()) {\n $(\".main-league-slide__button\").addModifiers(\"disabled\");\n }\n else {\n $(\".main-league-slide__button\").removeModifiers(\"disabled\");\n }\n });\n }\n\n private createFirstSubleague = (leagueName: string) => {\n this.userRepository.getProfileDetails().done((profile: Platform.Profile) => {\n\n const adminOne = new Business.Administrator(0, 0, profile.email, profile.firstname, undefined, false, profile.lastname, '', 0, null, '');\n const adminOneModel = Business.AdministratorModel.fromDTO(adminOne, new Platform.Country(0, '', '', 0, 0, ''));\n const adminTwo = new Business.Administrator(0, 0, \"\", \"\", undefined, false, \"\", '', 0, null, '');\n const adminTwoModel = Business.AdministratorModel.fromDTO(adminTwo, new Platform.Country(0, '', '', 0, 0, ''));\n\n this.subLeaguesRepository.createSubLeague(this.marketId, leagueName + \"-subleague\", false, adminOneModel, adminTwoModel)\n })\n }\n\n private bindOptinRequiredRadio = () => {\n if (this.clientMarketSettings.packageType === PackageType.Professional) {\n $(\".landing-page-slide__optin\").show();\n\n if (this.clientMarketSettings.landingPageModel.optInRequired === true) {\n $(\"input[name='optin'][value='yes']\").prop(\"checked\", true);\n }\n if (this.clientMarketSettings.landingPageModel.optInRequired === false) {\n $(\"input[name='optin'][value='no']\").prop(\"checked\", true);\n }\n\n $(\"input[name='optin']\").on(\"click\", event => {\n const optinRequired = $(\"input[name='optin']:checked\").val() == \"yes\"\n this.clientRepository.saveOptInRequired(this.marketId, optinRequired).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.updateLandingPage(this.clientMarketSettings.landingPageModel.landingPageLogo, optinRequired);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepLandingsPage(this.clientMarketSettings, true),\n () => { this.bindHeaderClick() }\n );\n\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n this.checkConfigurationCompletion()\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n })\n })\n }\n else {\n $(\"input[name='optin']\").toggleDisabled(true).prop(\"checked\", false);\n $(\".landing-page-slide__optin\").hide();\n }\n }\n\n private bindUploadLandingPageLogo = () => {\n $(\".landing-page-slide__upload-button\").on(\"click\", event => {\n $(\".landing-page-logo\").click();\n });\n\n $(\".landing-page-slide__logo-example-container\").on(\"click\", event => {\n $(\".landing-page-logo\").click();\n });\n\n $(\".landing-page-logo\").on(\"change\", event => {\n var file = $('.landing-page-logo').prop('files')[0];\n if (!file) {\n $(\".landing-page-slide__upload-button\").parent().addClass(\"invalid\");\n $(\".landing-page-slide__upload-button\").append(\"
\" + TranslationData.get(\"Business.LandingLogo.Invalid\") + \"
\");\n return;\n }\n if (!this.isWithinMargin(1, file)) {\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.1MB\"));\n return;\n }\n\n var formData = new FormData();\n formData.append(\"fileData\", file);\n\n $(\".landing-page-slide__upload-button\").addModifiers(\"loading\");\n this.clientRepository.saveLandingPageLogo(this.marketId, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n $(\".landing-page-slide__upload-button\").removeModifiers(\"loading\");\n\n this.clientMarketSettings.updateLandingPage(apiResult.content, this.clientMarketSettings.landingPageModel.optInRequired);\n this.clientMarketSettings.welcomeEmailModel.updateRankingPageLogo(apiResult.content);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderLandingTemplate(this.clientMarketSettings.landingPageModel, () => {\n this.bindUploadLandingPageLogo();\n this.bindOptinRequiredRadio();\n this.bindCropLandingPageLogo()\n $(\".landing-page-slide__crop-button\").hide()\n });\n\n $(\".client-administrator-configuration .mailing-text-slide__email-header-logo\").attr(\"src\", apiResult.content);\n\n\n if (file?.type != \"image/gif\") {\n var $image_elem = $(\".landing-page-slide__logo-example\")\n $image_elem.cropper(cropperConfig(file, {\n preview: \".landing-page-slide__image-in-mockup-preview\",\n }));\n $(\".landing-page-slide__image-in-mockup\").hide()\n $(\".landing-page-slide__crop-button\").show()\n $(\".landing-page-slide__upload-button\").hide()\n $(\".landing-page-slide__logo-example-container\").off()\n }\n\n this.checkConfigurationCompletion();\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n });\n });\n }\n\n private bindCropLandingPageLogo = () => {\n $(\".landing-page-slide__crop-button\").bind(\"click\", () => {\n\n var image = $('.landing-page-logo').prop('files')[0];\n\n const $image_elem = $(\".landing-page-slide__logo-example\")\n const cropper = $image_elem.data('cropper');\n cropper.getCroppedCanvas().toBlob((blob) => {\n\n var formData = new FormData();\n formData.append(\"fileData\", blob, \"cropped_image\");\n $(\".landing-page-slide__crop-button\").addModifiers(\"loading\");\n this.clientRepository.saveLandingPageLogo(this.marketId, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n $(\".landing-page-slide__crop-button\").removeModifiers(\"loading\");\n\n this.clientMarketSettings.updateLandingPage(apiResult.content, this.clientMarketSettings.landingPageModel.optInRequired);\n this.clientMarketSettings.welcomeEmailModel.updateRankingPageLogo(apiResult.content);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderLandingTemplate(this.clientMarketSettings.landingPageModel, () => {\n this.bindUploadLandingPageLogo();\n this.bindCropLandingPageLogo()\n this.bindOptinRequiredRadio();\n });\n\n $(\".client-administrator-configuration .mailing-text-slide__email-header-logo\").attr(\"src\", apiResult.content);\n $(\".landing-page-slide__image-in-mockup\").show()\n $(\".landing-page-slide__crop-button\").hide()\n $(\".landing-page-slide__upload-button\").show()\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepLandingsPage(this.clientMarketSettings, true),\n () => { this.bindHeaderClick() }\n );\n\n this.checkConfigurationCompletion();\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail((err) => {\n this.displayErrorMessage(err);\n });\n }, image?.type)\n })\n }\n\n private bindLogoTakeOverUploadLogo = () => {\n $(\".logo-take-over-slide__button-upload\").on(\"click\", event => {\n $(\".logo-take-over-logo\").click();\n });\n\n $(\".logo-take-over-slide__logo-example-container\").on(\"click\", event => {\n $(\".logo-take-over-logo\").click();\n });\n\n $(\".logo-take-over-logo\").on(\"change\", event => {\n\n $(\".logo-take-over-slide__logo-example-container\").off()\n\n var file = $('.logo-take-over-logo').prop('files')[0];\n if (!file) {\n $(\".logo-take-over-slide__button-upload\").parent().addClass(\"invalid\");\n $(\".logo-take-over-slide__button-upload\").append(\"
\" + TranslationData.get(\"Business.LandingLogo.Invalid\") + \"
\");\n return;\n }\n\n const validImageTypes = [\"image/jpg\", \"image/jpeg\", \"image/png\", \"image/gif\"];\n if (!_.contains(validImageTypes, file?.type)) {\n NotificationBar.Display(TranslationData.get(\"Business.Generic.WrongFileFormat\"));\n return;\n }\n if (!this.isWithinMargin(1, file)) {\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.1MB\"));\n return;\n }\n\n var formData = new FormData();\n formData.append(\"fileData\", file);\n\n $(\".logo-take-over-slide__button-upload\").addModifiers(\"loading\");\n this.clientRepository.saveLogoTakeOverLogo(this.marketId, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.logoTakeOverModel.updateImage(apiResult.content);\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n $(\".logo-take-over-slide__button-upload\").removeModifiers(\"loading\");\n\n this.clientAdministratorRenderer.renderLogoTakeOverStepTemplate(this.clientMarketSettings.logoTakeOverModel, () => {\n this.bindLogoTakeOverUploadLogo();\n this.bindLogoTakeOverCropLogo();\n this.bindLogoTakeOverHeaderIcon();\n this.bindLogoTakeOverSetColor();\n this.bindLogoTakeOverSaveButton();\n $(\".logo-take-over-slide__logo-preview\").hide()\n $(\".logo-take-over-slide__button-crop\").hide()\n });\n\n if (file?.type != \"image/gif\") {\n var $image_elem = $(\".logo-take-over-slide__logo-example\")\n $image_elem.cropper(cropperConfig(file, {\n preview: \".logo-take-over-slide__logo-preview\",\n minContainerHeight: 85\n }));\n $(\".logo-take-over-slide__logo-image\").hide()\n $(\".logo-take-over-slide__logo-preview\").show()\n $(\".logo-take-over-slide__button-crop\").show()\n $(\".logo-take-over-slide__button-upload\").hide()\n $(\".logo-take-over-slide__logo-example-container\").off(\"click\")\n }\n\n this.checkConfigurationCompletion();\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n this.displayErrorMessage(err);\n $(\".logo-take-over-slide__button-upload\").removeModifiers(\"loading\");\n });\n });\n }\n\n private bindLogoTakeOverCropLogo = () => {\n $(\".logo-take-over-slide__button-crop\").bind(\"click\", () => {\n const image = $('.logo-take-over-logo').prop('files')[0];\n\n const $image_elem = $(\".logo-take-over-slide__logo-example\");\n const cropper = $image_elem.data(\"cropper\");\n cropper.getCroppedCanvas().toBlob((blob) => {\n var formData = new FormData();\n formData.append(\"fileData\", blob, \"cropped_image\");\n\n $(\".logo-take-over-slide__button-crop\").addModifiers(\"loading\");\n this.clientRepository.saveLogoTakeOverLogo(this.marketId, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.logoTakeOverModel.updateImage(apiResult.content);\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n $(\".logo-take-over-slide__button-crop\").removeModifiers(\"loading\");\n\n this.clientAdministratorRenderer.renderLogoTakeOverStepTemplate(this.clientMarketSettings.logoTakeOverModel, () => {\n this.bindLogoTakeOverUploadLogo();\n this.bindLogoTakeOverCropLogo();\n this.bindLogoTakeOverHeaderIcon();\n this.bindLogoTakeOverSetColor();\n this.bindLogoTakeOverSaveButton();\n });\n $(\".logo-take-over-slide__logo-image\").show()\n $(\".logo-take-over-slide__logo-preview\").hide()\n $(\".logo-take-over-slide__button-crop\").hide()\n $(\".logo-take-over-slide__button-upload\").show()\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepLogoTakeOver(this.clientMarketSettings, this.salesUser, true),\n () => {\n this.bindHeaderClick();\n $(\".logo-take-over-slide__logo-image\").css(\"transform\", 'translateZ(0)');\n requestAnimationFrame(() => $(\".logo-take-over-slide__logo-image\").removeProp(\"transform\"));\n }\n );\n\n this.checkConfigurationCompletion();\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n this.displayErrorMessage(err);\n $(\".logo-take-over-slide__button-upload\").removeModifiers(\"loading\");\n });\n }, image?.type)\n })\n }\n\n private bindUpgradeButton = () => {\n $(\".logo-take-over-slide__upgrade-button, .subleagues-slide__button-upgrade\").on(\"click\", () => {\n $(`.client-administrator__tab[data-tab-id=\"${ClientAdminTabType.Upgrade}\"]`).click();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n this.clientAdministratorRenderer.toggleSlide(ConfigurationStepType.LogoTakeOver, false);\n this.clientAdministratorRenderer.toggleSlide(ConfigurationStepType.SubLeagues, false);\n });\n }\n\n private bindLogoTakeOverSaveButton = () => {\n $(\".logo-take-over-slide__save-logo-take-over-button\").on(\"click\", () => {\n const { color: newColor, iconType: newIconType } = this.logoTakeOverState;\n\n this.clientRepository.saveLogoTakeOverColor(this.marketId, newColor).done((logoTakeOverColorApiResult: ApiResult) => {\n this.clientRepository.saveLogoTakeOverHeaderIcon(this.marketId, newIconType).done((logoTakeOverHeaderIconApiResult: ApiResult) => {\n if (!logoTakeOverColorApiResult.isSuccess() || !logoTakeOverHeaderIconApiResult.isSuccess()) {\n console.error(`Failed to save logo takeover color or icon: ${logoTakeOverColorApiResult} - ${logoTakeOverHeaderIconApiResult}`);\n this.displayErrorMessage(null);\n }\n this.clientMarketSettings.logoTakeOverModel.updateHeaderIcon(newIconType);\n this.clientMarketSettings.logoTakeOverModel.updateBackgroundColor(newColor);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n this.changeLogoTakeOverHeaderIcon(newIconType);\n this.clientAdministratorRenderer.renderLogoTakeOverStepTemplate(this.clientMarketSettings.logoTakeOverModel, () => {\n $(\".logo-take-over-slide__button-crop\").hide()\n this.bindLogoTakeOverUploadLogo();\n this.bindLogoTakeOverCropLogo();\n this.bindLogoTakeOverHeaderIcon();\n this.bindLogoTakeOverSetColor();\n this.bindLogoTakeOverSaveButton();\n });\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepLogoTakeOver(this.clientMarketSettings, this.salesUser, false),\n () => { this.bindHeaderClick() }\n );\n\n $('input[type=\"text\"].logo-take-over-slide__picker--input').val(newColor);\n\n this.checkConfigurationCompletion();\n return Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }).fail(err => {\n this.displayErrorMessage(err);\n })\n }).fail(err => {\n this.displayErrorMessage(err);\n })\n });\n }\n\n private bindLogoTakeOverSetColor = () => {\n const ua = window.navigator.userAgent.toLowerCase();\n if (ua.indexOf(\"edge/\") != -1 || ua.indexOf('trident/') != -1) {\n const picker = $(\".logo-take-over-slide__pick-color\");\n const colorCodeTextElement = $(\".logo-take-over-slide__background-picker > input[type=text]\");\n const phoneHeaderColorElement = $(\".logo-take-over-slide__header-background\");\n const colorPickerContainerElement = $(\"div.logo-take-over-slide__color-picker-container > div.sp-container\");\n\n $(\".logo-take-over-slide__picker.logo-take-over-slide__picker--color\").hide();\n picker.spectrum?.({ flat: true, chooseText: TranslationData.get(\"Common.Change\"), color: colorCodeTextElement.val() });\n if (!picker.spectrum) {\n console.error(`Spectrum picker not supported on ${ua}`);\n NotificationBar.Display(TranslationData.get(\"Business.ColorPickerNotSupported\"));\n return;\n }\n colorPickerContainerElement.css(\"border\", \"solid 3px \" + colorCodeTextElement.val());\n picker.on(\"move.spectrum\", function (e, color) {\n const code = color.toHexString();\n colorCodeTextElement.val(code);\n colorPickerContainerElement.css(\"border\", \"solid 3px \" + code);\n phoneHeaderColorElement.css('background', code);\n });\n picker.on(\"change\", (e, color) => {\n this.logoTakeOverState = { ...this.logoTakeOverState, color: color.toHexString() };\n });\n }\n else {\n $(\".logo-take-over-slide__picker--input\").on(\"input\", event => {\n const value = $(event.currentTarget).val();\n const validHex = this.updateHeaderColor(value);\n if (validHex && validHex !== \"\") {\n $(\".logo-take-over-slide__picker--color\").css('background', validHex);\n $(\".logo-take-over-slide__header-background\").css('background', validHex);\n this.logoTakeOverState = { ...this.logoTakeOverState, color: validHex };\n }\n });\n\n $(\".logo-take-over-slide__picker--color\").on(\"click\", event => {\n let color = \"#793e50\"\n if (this.clientMarketSettings.logoTakeOverModel.backgroundColor !== \"\") {\n color = this.clientMarketSettings.logoTakeOverModel.backgroundColor;\n }\n $(\".logo-take-over-slide__pick-color\").val(color);\n $(\".logo-take-over-slide__pick-color\").click();\n });\n\n $(\".logo-take-over-slide__pick-color\").on(\"input change\", event => {\n const value = $(event.currentTarget).val();\n const validHex = this.updateHeaderColor(value);\n if (validHex !== \"\") {\n $(\".logo-take-over-slide__picker--color\").css('background', validHex);\n $(\".logo-take-over-slide__header-background\").css('background', validHex);\n $(\".logo-take-over-slide__picker--input\").val(validHex);\n this.logoTakeOverState = { ...this.logoTakeOverState, color: validHex };\n }\n });\n\n $(\".logo-take-over-slide__pick-color\").on(\"change\", event => {\n const value = $(event.currentTarget).val();\n const validHex = this.updateHeaderColor(value);\n\n if (validHex !== \"\") {\n $(\".logo-take-over-slide__picker--color\").css('background', validHex);\n $(\".logo-take-over-slide__header-background\").css('background', validHex);\n this.logoTakeOverState = { ...this.logoTakeOverState, color: validHex };\n }\n });\n }\n }\n\n\n private updateHeaderColor = (value: string) => {\n let rawHex = value;\n if (rawHex.charAt(0) !== \"#\") {\n rawHex = \"#\" + rawHex;\n }\n const hex = rawHex;\n if (hex.length === 7 && /^#[0-9A-F]{6}$/i.test(hex)) {\n this.clientMarketSettings.logoTakeOverModel.updateBackgroundColor(hex);\n return hex;\n }\n }\n\n private bindLogoTakeOverHeaderIcon = () => {\n $(`.logo-take-over-slide__toggle-image`).on(\"click\", event => {\n const elem = $(event.currentTarget);\n const headerIconId = Number(elem.attr('value'));\n if (isNaN(headerIconId)) { return }\n\n $(`.logo-take-over-slide__toggle-image--selected`).removeClass(\"logo-take-over-slide__toggle-image--selected\");\n elem.addClass(\"logo-take-over-slide__toggle-image--selected\");\n\n this.changeLogoTakeOverHeaderIcon(headerIconId);\n this.logoTakeOverState = { ...this.logoTakeOverState, iconType: headerIconId };\n });\n }\n\n private changeLogoTakeOverHeaderIcon = (colorType: HeaderIconColorType) => {\n switch (colorType) {\n case HeaderIconColorType.White:\n $(\".logo-take-over-slide__header-home-icon\").css(\"background-image\", \"url(/images/business/icon-home.png)\");\n $(\".logo-take-over-slide__header-profile-icon\").css(\"background-image\", \"url(/images/business/25x25-business-profile-white.png)\");\n $(\".logo-take-over-slide__header-status-bar\").css(\"background-image\", \"url(/images/business/405x22-statusbar-white.png)\");\n break;\n case HeaderIconColorType.Black:\n $(\".logo-take-over-slide__header-home-icon\").css(\"background-image\", \"url(/images/business/icon-home-black.png)\");\n $(\".logo-take-over-slide__header-profile-icon\").css(\"background-image\", \"url(/images/business/25x25-business-profile-black.png)\");\n $(\".logo-take-over-slide__header-status-bar\").css(\"background-image\", \"url(/images/business/405x22-statusbar-black.png)\");\n break;\n }\n }\n\n\n private bindUploadRankingPageLogo = () => {\n const uploadButton = $(\".ranking-logo-slide__upload-button\");\n uploadButton.on(\"click\", _ => {\n $(\".ranking-logo\").click();\n });\n\n $(\".ranking-logo-slide__logo-example-container\").on(\"click\", _ => {\n $(\".ranking-logo\").click();\n });\n\n $(\".ranking-logo\").on(\"change\", () => {\n const file = $('.ranking-logo').prop('files')[0];\n if (!file) {\n uploadButton.parent().addClass(\"invalid\");\n uploadButton.append(\"
\" + TranslationData.get(\"Business.LandingLogo.Invalid\") + \"
\");\n return;\n }\n if (!this.isWithinMargin(1, file)) {\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.1MB\"));\n return;\n }\n\n var formData = new FormData();\n formData.append(\"fileData\", file);\n uploadButton.addModifiers(\"loading\");\n this.clientRepository.saveRankingLogo(this.marketId, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.updateRankingPageLogo(apiResult.content);\n this.clientMarketSettings.welcomeEmailModel.updateRankingPageLogo(apiResult.content);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderRankingLogoTemplate(this.clientMarketSettings.rankingLogoModel, apiResult.message, () => {\n this.bindUploadRankingPageLogo();\n this.bindCropRankingPageLogo();\n if (this.clientMarketSettings.rankingLogoModel.imageUrl) {\n $(\".ranking-logo-slide__ranking-logo-container\").addModifiers(\"active\");\n $(\".ranking-logo-slide__crop-button\").hide()\n }\n });\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepRankingLogo(this.clientMarketSettings, true),\n () => { this.bindHeaderClick() }\n );\n\n if (file?.type != \"image/gif\") {\n var $image_elem = $(\".ranking-logo-slide__logo-example\")\n $image_elem.cropper(cropperConfig(file, {\n preview: \".ranking-logo-slide__ranking-logo-preview\",\n aspectRatio: 1,\n }));\n $(\".ranking-logo-slide__crop-button\").show()\n $(\".ranking-logo-slide__upload-button\").hide()\n $(\".ranking-logo-slide__ranking-logo\").hide()\n $(\".ranking-logo-slide__logo-example-container\").off()\n }\n\n this.checkConfigurationCompletion();\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n uploadButton.removeModifiers(\"loading\");\n }).fail((err) => {\n this.displayErrorMessage(err);\n uploadButton.removeModifiers(\"loading\");\n $(\".ranking-logo-slide__ranking-logo-container\").removeModifiers(\"active\");\n });\n });\n }\n\n private bindCropRankingPageLogo = () => {\n const cropButton = $(\".ranking-logo-slide__crop-button\");\n cropButton.bind(\"click\", () => {\n const image = $('.ranking-logo').prop('files')[0];\n\n var $image_elem = $(\".ranking-logo-slide__logo-example\")\n const cropper = $image_elem.data(\"cropper\");\n cropper.getCroppedCanvas().toBlob((blob) => {\n var formData = new FormData()\n formData.append(\"fileData\", blob, \"cropped_image\");\n\n cropButton.addModifiers(\"loading\");\n this.clientRepository.saveRankingLogo(this.marketId, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.updateRankingPageLogo(apiResult.content);\n this.clientMarketSettings.welcomeEmailModel.updateRankingPageLogo(apiResult.content);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderRankingLogoTemplate(this.clientMarketSettings.rankingLogoModel, apiResult.message, () => {\n this.bindUploadRankingPageLogo();\n this.bindCropRankingPageLogo();\n if (this.clientMarketSettings.rankingLogoModel.imageUrl) {\n $(\".ranking-logo-slide__ranking-logo-container\").addModifiers(\"active\");\n }\n });\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepRankingLogo(this.clientMarketSettings, true),\n () => { this.bindHeaderClick() }\n );\n $(\".ranking-logo-slide__crop-button\").hide()\n $(\".ranking-logo-slide__upload-button\").show()\n $(\".ranking-logo-slide__ranking-logo\").show()\n\n this.checkConfigurationCompletion();\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n cropButton.removeModifiers(\"loading\");\n }).fail((err) => {\n this.displayErrorMessage(err);\n cropButton.removeModifiers(\"loading\");\n $(\".ranking-logo-slide__ranking-logo-container\").removeModifiers(\"active\");\n });\n }, image?.type)\n })\n }\n\n private bindSaveWelcomeEmail = () => {\n $(\".mailing-text-slide__button--save\").on(\"click\", event => {\n if (!this.clientMarketSettings.welcomeEmailModel.hasUnsavedChanges) {\n Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.Saved\");\n this.clientAdministratorRenderer.toggleSlide(ConfigurationStepType.MailingText, false);\n return;\n }\n let valid = true;\n\n const titleElement = $(\".mailing-text-slide__email-title-input\");\n const title = titleElement.val();\n\n const bodyElement = $(\".cke_editor_mailing-text-slide__mail-message\");\n const body = CKEDITOR.instances['mailing-text-slide__mail-message'].getData();\n\n if (title === undefined || title === \"\") {\n valid = false;\n titleElement.addModifiers(\"invalid\");\n }\n\n if (body === undefined || body === \"\") {\n valid = false;\n bodyElement.addModifiers(\"invalid\");\n }\n\n if (valid) {\n this.clientRepository.saveWelcomeEmail(title, body, this.marketId).done(() => {\n this.clientMarketSettings.welcomeEmailModel.update(title, body);\n this.clientMarketSettings.welcomeEmailModel.complete();\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.Saved\");\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepMailingText(this.clientMarketSettings),\n () => { this.bindHeaderClick() }\n );\n\n this.checkConfigurationCompletion();\n\n this.clientMarketSettings.welcomeEmailModel.hasEditedButNotSaved(false);\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n }\n });\n }\n\n private bindSendTestEmail = () => {\n $(\".mailing-text-slide__button--example\").on(\"click\", event => {\n let valid = true;\n\n const titleElement = $(\".mailing-text-slide__email-title-input\");\n const title = titleElement.val();\n\n const bodyElement = $(\".mailing-text-slide__mail-message\");\n const body = CKEDITOR.instances['mailing-text-slide__mail-message'].getData();\n\n if (title === undefined || title === \"\") {\n valid = false;\n titleElement.addModifiers(\"invalid\");\n }\n\n if (body === undefined || body === \"\") {\n valid = false;\n bodyElement.addModifiers(\"invalid\");\n }\n\n if (valid) {\n this.clientRepository.sendExampleWelcomeEmail(title, body, this.marketId).done(() => {\n this.clientMarketSettings.welcomeEmailModel.update(title, body);\n\n Toast.displayLabel(\"Business.Management.Configuration.WelcomeEmail.ExampleSend\");\n\n $(\".mailing-text-slide__button--example\").attr(\"disabled\", \"disabled\");\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n }\n });\n }\n\n private bindEmailCheckmark = () => {\n $(\".mailing-text-slide__email-title-input\").on(\"input\", () => {\n this.clientMarketSettings.welcomeEmailModel.hasEditedButNotSaved(true);\n $(\".mailing-text-slide__button--example\").removeAttr(\"disabled\");\n });\n\n CKEDITOR.instances[\"mailing-text-slide__mail-message\"].on(\"key\", () => {\n this.clientMarketSettings.welcomeEmailModel.hasEditedButNotSaved(true);\n $(\".mailing-text-slide__button--example\").removeAttr(\"disabled\");\n });\n\n const markMailComplete = (keepSlidesOpenState: boolean) => {\n if (!this.clientMarketSettings.welcomeEmailModel.hasUnsavedChanges && !this.clientMarketSettings.welcomeEmailModel.hasCompleted()) {\n this.clientRepository.hasSeenEmail(this.marketId).done(() => {\n this.clientMarketSettings.welcomeEmailModel.complete();\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepMailingText(this.clientMarketSettings),\n () => { this.bindHeaderClick() }, keepSlidesOpenState\n );\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n this.checkConfigurationCompletion();\n });\n }\n }\n const targetNode = $(\".client-administrator-configuration__step[data-step-id='5']\").find(\".configuration-content-placeholder\")[0];\n if (targetNode) {\n this.mailingTextObserver?.disconnect();\n this.mailingTextObserver = new MutationObserver((mutationsList, observer) => {\n const closed = mutationsList.filter(m => m.oldValue.indexOf(\"configuration-content-placeholder--open\") > -1);\n if (closed.length > 0) {\n markMailComplete(true);\n }\n });\n\n this.mailingTextObserver.observe(targetNode, { attributes: true, attributeOldValue: true });\n }\n\n $(\".client-administrator-configuration__step[data-step-id='5']\").removeClickListeners();\n $(\".client-administrator-configuration__step[data-step-id='5']\").on(\"click\", event => {\n const contentElement = $(event.currentTarget).find(\".configuration-content-placeholder\");\n\n if (!contentElement.hasModifier('open')) {\n if (!this.clientMarketSettings.welcomeEmailModel.hasUnsavedChanges && !this.clientMarketSettings.welcomeEmailModel.hasCompleted()) {\n markMailComplete(false);\n }\n }\n });\n }\n\n private bindSubLeagues = () => {\n $(\".subleagues-slide__save-subleague-settings-button\").removeClickListeners().on(\"click\", () => {\n\n this.clientMarketSettings.multiSubLeaguesModel.hasSaved = true\n this.clientRepository.hasChangedSubLeagueSetting(this.marketId, this.clientMarketSettings.multiSubLeaguesModel).done(() => {\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepSubLeagues(this.clientMarketSettings, this.salesUser, false),\n () => {\n this.bindHeaderClick();\n this.bindSubLeagues();\n }\n );\n dispatchEvent(new CustomEvent(LeagueAdministratorController.ResetTabDataLoadedEvent));\n this.reloadSubLeagueActions();\n this.checkConfigurationCompletion();\n\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n });\n\n $(\"input[name=logo-change]\").on(\"change\", event => {\n const val = $(event.currentTarget).val();\n const isAllowed = val === \"yes\";\n this.clientMarketSettings.multiSubLeaguesModel.setChangeRankingLogo(isAllowed);\n });\n\n $(\"input[name=email-change]\").on(\"change\", event => {\n const val = $(event.currentTarget).val();\n const isAllowed = val === \"yes\";\n this.clientMarketSettings.multiSubLeaguesModel.setChangeEmail(isAllowed);\n });\n\n $(\"input[name=leaguename-change]\").on(\"change\", event => {\n const val = $(event.currentTarget).val();\n const isAllowed = val === \"yes\";\n this.clientMarketSettings.multiSubLeaguesModel.setChangeName(isAllowed);\n });\n }\n\n\n private bindUploadPromotionalPackageLogo = () => {\n const uploadButton = $(\".promotional-package-slide__upload-button\");\n const exampleContainer = $(\".promotional-package-slide__logo-example-container\");\n const warningText = $(\".promotional-package-slide__warning\")\n\n if (!this.clientMarketSettings.hasCompletedLeagueName()) {\n uploadButton.addModifiers(\"disabled\");\n exampleContainer.addModifiers(\"disabled\");\n warningText.show()\n return\n }\n\n uploadButton.removeModifiers(\"disabled\");\n exampleContainer.removeModifiers(\"disabled\");\n warningText.hide()\n\n uploadButton.on(\"click\", _ => {\n $(\".promotional-package-logo\").click();\n });\n\n exampleContainer.on(\"click\", _ => {\n $(\".promotional-package-logo\").click();\n });\n\n $(\".promotional-package-logo\").on(\"change\", () => {\n const file = $('.promotional-package-logo').prop('files')[0];\n if (!file) {\n uploadButton.parent().addClass(\"invalid\");\n uploadButton.append(\"
\" + TranslationData.get(\"Business.PromotionalPackage.Invalid\") + \"
\");\n return;\n }\n if (!this.isWithinMargin(5, file)) {\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.5MB\"));\n return;\n }\n\n var formData = new FormData();\n formData.append(\"fileData\", file);\n uploadButton.addModifiers(\"loading\");\n this.clientRepository.saveSalesPackageImage(this.marketId, SalesPackageType.PromotionalPackage, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.promotionalPackageModel.updateImage(apiResult.content, false);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderPromotionalPackage(this.clientMarketSettings.promotionalPackageModel, () => {\n this.clientMarketSettings.promotionalPackageModel.hasNewPromotionalPackageLogoToSend = true;\n this.bindUploadPromotionalPackageLogo();\n this.bindCropPromotionalPackageLogo();\n this.bindConfirmPromotional();\n });\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepPromotionalPackage(this.clientMarketSettings, true),\n () => { this.bindHeaderClick() }\n );\n\n if (file?.type != \"image/gif\") {\n var $image_elem = $(\".promotional-package-slide__logo-example\")\n $image_elem.cropper(cropperConfig(file, {\n preview: \".promotional-package-slide__logo-preview\"\n }));\n\n $(\".promotional-package-slide__logo-example-container\").off()\n }\n\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n uploadButton.removeModifiers(\"loading\");\n }).fail((err) => {\n this.displayErrorMessage(err);\n uploadButton.removeModifiers(\"loading\");\n $(\".promotional-package-slide__logo-container\").removeModifiers(\"active\");\n });\n });\n }\n\n private bindCropPromotionalPackageLogo = () => {\n const cropButton = $(\".promotional-package-slide__crop-button\");\n cropButton.bind(\"click\", () => {\n\n fetch(this.clientMarketSettings.promotionalPackageModel.imageUrl)\n .then(res => {\n if (!res.ok) throw new Error(\"Could not fetch image.\");\n\n return res.blob();\n })\n .then(image => {\n uploadCroppedImage(image.type);\n });\n\n const uploadCroppedImage = (imageType: string) => {\n var $image_elem = $(\".promotional-package-slide__logo-example\")\n const cropper = $image_elem.data(\"cropper\");\n cropper.getCroppedCanvas().toBlob((blob) => {\n var formData = new FormData()\n formData.append(\"fileData\", blob, \"cropped_image\");\n\n cropButton.addModifiers(\"loading\");\n this.clientRepository.saveSalesPackageImage(this.marketId, SalesPackageType.PromotionalPackage, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.promotionalPackageModel.updateImage(apiResult.content, true);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderPromotionalPackage(this.clientMarketSettings.promotionalPackageModel, () => {\n this.clientMarketSettings.promotionalPackageModel.hasNewPromotionalPackageLogoToSend = true;\n this.bindUploadPromotionalPackageLogo();\n this.bindCropPromotionalPackageLogo();\n this.bindConfirmPromotional();\n if (this.clientMarketSettings.promotionalPackageModel.imageUrl) {\n $(\".promotional-package-slide__logo-container\").addModifiers(\"active\");\n }\n });\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepPromotionalPackage(this.clientMarketSettings, true),\n () => { this.bindHeaderClick() }\n );\n\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n cropButton.removeModifiers(\"loading\");\n }).fail((err) => {\n this.displayErrorMessage(err);\n cropButton.removeModifiers(\"loading\");\n $(\".promotional-package-slide__logo-container\").removeModifiers(\"active\");\n });\n }, imageType)\n }\n })\n }\n\n private bindConfirmPromotional = () => {\n const confirmButton = $(\".promotional-package-slide__confirm-button\");\n if (this.clientMarketSettings.promotionalPackageModel.imageUrl == null\n || !this.clientMarketSettings.promotionalPackageModel.hasNewPromotionalPackageLogoToSend) {\n confirmButton.addModifiers(\"disabled\");\n return\n }\n\n confirmButton.removeModifiers(\"disabled\");\n confirmButton.on(\"click\", _ => {\n confirmButton.addModifiers(\"disabled\")\n this.clientRepository.confirmPromotional(this.marketId).done((apiResult) => {\n if (apiResult.isSuccess()) {\n confirmButton.removeClickListeners();\n\n Toast.displayLabel(\"Business.PromotionalPackage.Confirmed\");\n this.clientMarketSettings.promotionalPackageModel.hasNewPromotionalPackageLogoToSend = false;\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n this.clientAdministratorRenderer.renderStepHeaderTemplate(ClientAdministratorStepModel.toStepPromotionalPackage(this.clientMarketSettings, true), () => { this.bindHeaderClick() });\n\n this.checkConfigurationCompletion();\n }\n else {\n confirmButton.removeModifiers(\"disabled\");\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n });\n }\n\n private bindUploadBrandingPackageLogo = () => {\n const uploadButton = $(\".branding-package-slide__upload-button\");\n uploadButton.on(\"click\", _ => {\n $(\".branding-package-logo\").click();\n });\n\n $(\".branding-package-slide__logo-example-container\").on(\"click\", _ => {\n $(\".branding-package-logo\").click();\n });\n\n $(\".branding-package-logo\").on(\"change\", () => {\n const file = $('.branding-package-logo').prop('files')[0];\n if (!file) {\n uploadButton.parent().addClass(\"invalid\");\n uploadButton.append(\"
\" + TranslationData.get(\"Business.BrandingPackage.Invalid\") + \"
\");\n return;\n }\n if (!this.isWithinMargin(5, file)) {\n NotificationBar.Display(TranslationData.get(\"Business.Management.Configuration.ImageTooLargeError.5MB\"));\n return;\n }\n\n var formData = new FormData();\n formData.append(\"fileData\", file);\n uploadButton.addModifiers(\"loading\");\n this.clientRepository.saveSalesPackageImage(this.marketId, SalesPackageType.BrandingPackage, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.brandingPackageModel.updateImage(apiResult.content, true);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderBrandingPackage(this.clientMarketSettings.brandingPackageModel, () => {\n this.bindUploadBrandingPackageLogo();\n this.bindCropBrandingPackageLogo();\n this.bindBrandingPackageButtons();\n this.determineBrandingPackageButtonState();\n });\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepBrandingPackage(this.clientMarketSettings, true),\n () => { this.bindHeaderClick() }\n );\n\n if (file?.type != \"image/gif\") {\n var $image_elem = $(\".branding-package-slide__logo-example\")\n $image_elem.cropper(cropperConfig(file, {\n preview: \".branding-package-slide__image-in-flyer-mockup-preview\",\n }));\n $(\".branding-package-slide__image-in-flyer-mockup\").hide();\n $(\".branding-package-slide__crop-button\").show();\n uploadButton.hide();\n $(\".branding-package-slide__logo-example-container\").off();\n }\n\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n uploadButton.removeModifiers(\"loading\");\n }).fail((err) => {\n this.displayErrorMessage(err);\n uploadButton.removeModifiers(\"loading\");\n $(\".branding-package-slide__logo-container\").removeModifiers(\"active\");\n });\n });\n }\n\n private bindCropBrandingPackageLogo = () => {\n const cropButton = $(\".branding-package-slide__crop-button\");\n cropButton.bind(\"click\", () => {\n\n fetch(this.clientMarketSettings.brandingPackageModel.imageUrl)\n .then(res => {\n if (!res.ok) throw new Error(\"Could not fetch image.\");\n\n return res.blob();\n })\n .then(image => {\n uploadCroppedImage(image.type);\n });\n\n const uploadCroppedImage = (imageType: string) => {\n var $image_elem = $(\".branding-package-slide__logo-example\")\n const cropper = $image_elem.data(\"cropper\");\n cropper.getCroppedCanvas().toBlob((blob) => {\n var formData = new FormData()\n formData.append(\"fileData\", blob, \"cropped_image\");\n cropButton.addModifiers(\"loading\");\n this.clientRepository.saveSalesPackageImage(this.marketId, SalesPackageType.BrandingPackage, formData).done((apiResult) => {\n if (apiResult.isSuccess()) {\n this.clientMarketSettings.brandingPackageModel.updateImage(apiResult.content, false);\n\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderBrandingPackage(this.clientMarketSettings.brandingPackageModel, () => {\n this.bindUploadBrandingPackageLogo();\n this.bindCropBrandingPackageLogo();\n this.bindBrandingPackageButtons();\n this.determineBrandingPackageButtonState();\n\n if (this.clientMarketSettings.brandingPackageModel.imageUrl) {\n $(\".branding-package-slide__logo-container\").addModifiers(\"active\");\n }\n });\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(\n ClientAdministratorStepModel.toStepBrandingPackage(this.clientMarketSettings, true),\n () => { this.bindHeaderClick() }\n );\n\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n cropButton.removeModifiers(\"loading\");\n }).fail((err) => {\n this.displayErrorMessage(err.status);\n cropButton.removeModifiers(\"loading\");\n $(\".branding-package-slide__logo-container\").removeModifiers(\"active\");\n });\n }, imageType)\n }\n })\n }\n\n private reloadSubLeagueActions = () => {\n if (!isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues) || !this.leagueActionsEnabled)\n return;\n\n this.actionsRepository.getByMarket(this.marketId).done(leagueActionsCollection => {\n this.salesUser.leagueActionsCollection.update(leagueActionsCollection);\n ActionsController.getInstance().initialize(this.marketId, this.clientMarketSettings.actionsLeft(), leagueActionsCollection);\n });\n }\n\n private checkConfigurationCompletion = () => {\n if (!this.clientMarketSettings.isConfigurationComplete()) return;\n dispatchEvent(new CustomEvent(ClientAdministratorController.ResetTabDataLoadedEvent));\n\n const key = `${ConfigurationController.configurationCompletedLocalStorageKey}.${this.marketId}`;\n if (localStorage.getItem(key)) return;\n\n localStorage.setItem(key, \"true\");\n\n const popup = $.scoritoPopup({\n elementId: \"section-completed-popup\",\n popupTitle: $(\".section-completed-popup-content\").data(\"title\"),\n contentHtml: $(\".section-completed-popup-content\").html(),\n widthInPixels: 591,\n follow: [false, false],\n });\n\n let nextStepLabelKey = \"Business.Management.Configuration.GoToInvite\";\n let nextStepTabType = ClientAdminTabType.Invite;\n if (isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues)) {\n nextStepLabelKey = \"Business.Management.Configuration.GoToSubLeagues\";\n nextStepTabType = ClientAdminTabType.SubLeagues;\n }\n\n $(\".section-completed-popup__description\").text(TranslationData.get(\"Business.Management.SectionCompletedDescription\")?.format(TranslationData.get(\"Business.TabConfig\")?.toLowerCase(), TranslationData.get(`${nextStepLabelKey}`)?.toLowerCase()))\n $(\".section-completed-popup__continue-button\").on(\"click\", () => {\n popup.close();\n $(`.client-administrator__tab[data-tab-id=${nextStepTabType}]`).click();\n });\n }\n\n private bindBrandingPackageButtons = () => {\n const previewPrintButton = $(\".branding-package-slide__preview-print-button\");\n const confirmPrintButton = $(\".branding-package-slide__confirm-button\");\n const agreeTermsCheckbox = $(\".branding-package-slide__agree-terms\");\n\n previewPrintButton.on(\"click\", () => {\n this.clientRepository.requestPreviewPrint(this.marketId).done((apiResult) => {\n if (apiResult.isSuccess()) {\n previewPrintButton.addModifiers(\"disabled\");\n previewPrintButton.removeClickListeners();\n\n Toast.displayLabel(\"Business.Management.BrandingPackage.PreviewPrint.Sent\");\n this.clientMarketSettings.brandingPackageModel.updatePreviewPrintRequested();\n this.determineBrandingPackageButtonState();\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n });\n\n const confirmPrintButtonHandler = () => {\n this.clientRepository.confirmPreviewPrint(this.marketId).done((apiResult) => {\n if (apiResult.isSuccess()) {\n Toast.displayLabel(\"Business.Management.BrandingPackage.Order.Sent\");\n\n this.disableBrandingPackageStep();\n\n this.clientMarketSettings.brandingPackageModel.updateFinalPrintRequested();\n Business.ActionsController.getInstance().completeClientAction(this.marketId, this.clientMarketSettings.actionsLeft());\n\n this.clientAdministratorRenderer.renderStepHeaderTemplate(ClientAdministratorStepModel.toStepBrandingPackage(this.clientMarketSettings, true), () => { this.bindHeaderClick() });\n this.checkConfigurationCompletion();\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n }\n\n agreeTermsCheckbox.on(\"change\", () => {\n if (agreeTermsCheckbox.is(\":checked\")) {\n confirmPrintButton.on(\"click\", confirmPrintButtonHandler)\n confirmPrintButton.removeModifiers(\"disabled\");\n\n }\n else {\n confirmPrintButton.off(\"click\", confirmPrintButtonHandler)\n confirmPrintButton.addModifiers(\"disabled\");\n }\n });\n }\n\n private disableBrandingPackageStep = () => {\n const previewPrintButton = $(\".branding-package-slide__preview-print-button\");\n const confirmPrintButton = $(\".branding-package-slide__confirm-button\");\n const agreeTermsCheckbox = $(\".branding-package-slide__agree-terms\");\n const agreeTermsContainer = $(\".branding-package-slide__confirm-print-description\");\n\n confirmPrintButton.addModifiers(\"disabled\");\n agreeTermsCheckbox.prop(\"disabled\", true).prop(\"checked\", true);\n previewPrintButton.addModifiers(\"disabled\");\n agreeTermsContainer.addModifiers(\"disabled\");\n $(\".branding-package-slide__upload-button\").addModifiers(\"disabled\");\n $(\".branding-package-slide__logo-example-container\").removeClickListeners();\n }\n\n private determineBrandingPackageButtonState = () => {\n const previewPrintButton = $(\".branding-package-slide__preview-print-button\");\n const confirmPrintButton = $(\".branding-package-slide__confirm-button\");\n const agreeTermsContainer = $(\".branding-package-slide__confirm-print-description\");\n const warningMessage = $(\".branding-package-slide__request-preview-print-warning\");\n const descriptionMessage = $(\".branding-package-slide__request-preview-print-description\");\n\n if (!this.clientMarketSettings.hasCompletedLeagueName()) {\n warningMessage.text(TranslationData.get(\"Business.Management.BrandingPackage.IncompleteLeagueName\"));\n agreeTermsContainer.addModifiers(\"disabled\");\n return;\n }\n if (!this.clientMarketSettings.brandingPackageModel.hasCompletedImageUpload()) {\n warningMessage.text(TranslationData.get(\"Business.Management.BrandingPackage.IncompleteBrandingImage\")).show();\n agreeTermsContainer.addModifiers(\"disabled\");\n return;\n }\n\n if (this.clientMarketSettings.brandingPackageModel.hasAcceptedPreviewPrint) {\n this.disableBrandingPackageStep();\n return;\n }\n\n warningMessage.hide();\n\n if (this.clientMarketSettings.brandingPackageModel.hasRequestedPreviewPrint) {\n agreeTermsContainer.removeModifiers(\"disabled\");\n }\n else {\n agreeTermsContainer.addModifiers(\"disabled\");\n }\n\n if (this.clientMarketSettings.brandingPackageModel.isPreviewPrintCooldownActive) {\n descriptionMessage.text(TranslationData.get(\"Business.Management.BrandingPackage.PreviewPrintRecentlyRequested\")).show();\n previewPrintButton.addModifiers(\"disabled\");\n }\n else {\n descriptionMessage.hide();\n previewPrintButton.removeModifiers(\"disabled\");\n }\n\n confirmPrintButton.addModifiers(\"disabled\");\n }\n\n private isWithinMargin = (maxSizeInMegaBytes: number, file: Blob) => {\n const megaByte = 1048576;\n return (megaByte * maxSizeInMegaBytes) > file.size;\n }\n\n protected initEventListeners = () => {\n addEventListener(Business.ConfigurationController.ConfigurationChangedEvent, (event: CustomEvent) => {\n this.loadData();\n this.reloadSubLeagueActions();\n });\n }\n }\n}","module LeagueAdministrator {\n export class HelpController extends LeagueAdministratorTabController {\n private helpControllerHelper: BusinessManagement.HelpControllerHelper;\n private faqRepository: Business.IFaqRepository;\n private accountDataRepository: Business.IAccountDataRepository;\n private platformRepository: Platform.Repository;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, clientRepository: Business.IClientRepository) {\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.LeagueAdminTabType.Help, clientRepository);\n this.faqRepository = new Business.FaqRepository(salesApiSettings);\n this.accountDataRepository = new Business.AccountDataRepository(salesApiSettings);\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\n this.helpControllerHelper = new BusinessManagement.HelpControllerHelper(\"league-administrator-help\", this.marketId, Business.FaqType.BusinessSubleague, this.faqRepository, this.accountDataRepository, this.platformApiSettings);\n }\n\n protected loadTabData = (isConfigurationComplete: boolean) => {\n this.helpControllerHelper = new BusinessManagement.HelpControllerHelper(\"league-administrator-help\", this.marketId, Business.FaqType.BusinessSubleague, this.faqRepository, this.accountDataRepository, this.platformApiSettings);\n\n this.helpControllerHelper.loadTabData().always(() => {\n this.removePreload();\n });\n }\n\n protected leagueChanged = () => {\n }\n }\n}","/// \n\nmodule LeagueAdministrator {\n export class InviteController extends LeagueAdministratorTabController {\n private readonly inviteRepository: Business.InviteRepository;\n private readonly platformRepository: Platform.Repository;\n private readonly explanationRenderer: Business.ExplanationRenderer;\n\n private inviteControllerHelper: BusinessManagement.InviteControllerHelper;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, clientRepository: Business.IClientRepository) {\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.LeagueAdminTabType.Invite, clientRepository, true);\n this.inviteRepository = new Business.InviteRepository(salesApiSettings);\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\n this.explanationRenderer = new Business.ExplanationRenderer();\n }\n\n protected loadTabData = (isConfigurationComplete: boolean) => {\n const isClientAdmin = isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues) && this.salesUser.isClientAdministrator();\n if (isClientAdmin) {\n this.subLeagueRepository.get(this.marketId).done((subLeagueApiResult: ApiResult) => {\n const leagues = Business.SubLeagues.fromJson(subLeagueApiResult.content);\n const hasSubLeagues = leagues.getSubLeagues().any();\n this.initialize(isConfigurationComplete, hasSubLeagues);\n }).fail(err => {\n console.error(`Failed to load all leagues: ${JSON.stringify(err)}`);\n this.initialize(isConfigurationComplete, false);\n });\n }\n else {\n const hasSubLeagues = this.leagues.getSubLeagues().any();\n this.initialize(isConfigurationComplete, hasSubLeagues);\n }\n }\n\n private initialize = (isConfigurationComplete: boolean, hasSubLeagues: boolean) => {\n this.inviteControllerHelper = new BusinessManagement.InviteControllerHelper(this.selectedSubLeagueId, this.marketId, this.salesUser, this.platformRepository, this.inviteRepository, hasSubLeagues);\n if (isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues) && this.salesUser.isClientAdministrator()) {\n this.toggleDropdown(false);\n }\n this.inviteControllerHelper.loadTabData(isConfigurationComplete).always(() => {\n this.removePreload();\n });\n\n this.explanationRenderer.renderTemplate(this.clientSettings.qrCodeUrl);\n }\n\n protected leagueChanged = () => {\n this.inviteControllerHelper?.updateSelectedSubLeagueId(this.selectedSubLeagueId);\n $(\".invite-unique-link-table--three-columns\").toggle(!this.selectedSubLeagueIsMainLeague());\n }\n }\n}","module LeagueAdministrator {\n export class ParticipantsController extends LeagueAdministratorTabController {\n private participantsControllerHelper: BusinessManagement.ParticipantsControllerHelper;\n private participantsRepository: Business.ParticipantRepository;\n marketId: number;\n userPredictionStatusRepository: Business.IUserPredictionStatusRepository;\n platformRepository: Platform.Repository;\n leagueRepository: League.Repository;\n rankingRepository: Business.RankingRepository;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, leagueApiSettings: League.ApiSettings, userPredictionStatusRepository: Business.IUserPredictionStatusRepository, clientRepository: Business.IClientRepository, marketId: number) {\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.LeagueAdminTabType.Participants, clientRepository, true);\n this.participantsRepository = new Business.ParticipantRepository(this.salesApiSettings);\n this.platformRepository = new Platform.Repository(platformApiSettings, marketId);\n this.leagueRepository = new League.Repository(leagueApiSettings);\n this.rankingRepository = new Business.RankingRepository(salesApiSettings);\n this.participantsControllerHelper = new BusinessManagement.ParticipantsControllerHelper(\".league-administrator__tab-content\", \"league-participant-search-table\", this.selectedSubLeagueId,\n this.salesApiSettings.participantsUrl, this.salesApiSettings.frontendOrderingAndFilteringThreshold, this.participantsRepository, this.subLeagueRepository, userPredictionStatusRepository,\n this.platformRepository, this.leagueRepository, 0, false, marketId, this.rankingRepository);\n this.userPredictionStatusRepository = userPredictionStatusRepository;\n }\n\n protected loadTabData = (isConfigurationComplete: boolean) => {\n this.participantsControllerHelper = new BusinessManagement.ParticipantsControllerHelper(\".league-administrator__tab-content\", \"league-participant-search-table\", this.selectedSubLeagueId,\n this.salesApiSettings.participantsUrl, this.salesApiSettings.frontendOrderingAndFilteringThreshold, this.participantsRepository, this.subLeagueRepository,\n this.userPredictionStatusRepository, this.platformRepository, this.leagueRepository, this.salesUser.mainLeagueId, isFeatureSupported(this.salesUser.packageType, Feature.SubLeagues), this.marketId, this.rankingRepository);\n\n this.participantsControllerHelper.loadTabData(isConfigurationComplete).always(() => {\n this.removePreload();\n });\n }\n\n protected leagueChanged = () => {\n this.participantsControllerHelper?.updateSelectedSubLeagueId(this.selectedSubLeagueId);\n }\n }\n}","/// \n\nmodule ClientAdministrator {\n import Toast = Business.Toast;\n import AdministratorRepository = Business.AdministratorRepository;\n import Administrators = Business.Administrators;\n import SubLeagues = Business.SubLeagues;\n import InviteModel = Business.InviteModel;\n\n export class SubLeagueController extends ClientAdministratorTabController {\n private readonly subLeaguesRenderer: SubLeaguesRenderer;\n private readonly subLeaguesRepository: Business.ISubLeagueRepository;\n private readonly administratorRepository: AdministratorRepository;\n private readonly userRepository: Business.UserRepository;\n\n private profile: Platform.Profile;\n private leagues: SubLeagues;\n private subLeagueAdmins: Dictionary;\n private isLoadingSubLeagueSlide: boolean;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings, clientRepository: Business.IClientRepository) {\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.ClientAdminTabType.SubLeagues, clientRepository, true);\n this.subLeaguesRenderer = new SubLeaguesRenderer();\n\n this.subLeaguesRepository = new Business.SubLeagueRepository(this.salesApiSettings);\n this.userRepository = new Business.UserRepository(userApiSettings);\n this.administratorRepository = new AdministratorRepository(this.salesApiSettings, this.platformApiSettings);\n this.subLeagueAdmins = new Dictionary();\n\n this.initEventListeners();\n }\n\n protected loadData = (isConfigurationComplete: boolean) => {\n $(\".client-administrator-subleagues__notice\").toggle(!isConfigurationComplete);\n const content = $(\".client-administrator-subleagues__content\");\n isConfigurationComplete ? content.show() : content.hide()\n\n this.subLeaguesRenderer.renderOverview(new SubLeagues([]), () => {\n this.styleSubLeagueDataTable();\n });\n\n if (!isConfigurationComplete) return;\n\n this.showLoadingOverlay();\n\n $.when(\n this.subLeaguesRepository.get(this.marketId),\n this.userRepository.getProfileDetails()\n ).done((apiResult: ApiResult, profile: Platform.Profile) => {\n if (apiResult.isSuccess()) {\n this.leagues = Business.SubLeagues.fromJson(apiResult.content);\n\n this.subLeaguesRenderer.renderOverview(this.leagues, () => {\n this.styleSubLeagueDataTable();\n this.bindSubLeagueSearchbar();\n this.bindCreateSubLeagueButton();\n this.bindDeleteSubLeague();\n\n this.bindValidateCreateSubLeague();\n this.bindAdminCheckbox();\n });\n this.profile = profile;\n if (this.leagues.getSubLeagues().any()) {\n $(\".client-administrator-subleagues__arrow-image\").css(\"opacity\", \"0\");\n }\n\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).always(() => {\n this.hideLoadingOverlay();\n });\n }\n\n private styleSubLeagueDataTable() {\n $('#search-subleague-table').DataTable({\n \"bInfo\": false,\n \"lengthChange\": false,\n \"pageLength\": 10,\n \"orderFixed\": [0, 'asc'],\n \"order\": [[1, \"asc\"]],\n \"language\": {\n \"emptyTable\": TranslationData.get(\"Business.SubLeagues.EmptyTable\"),\n \"infoEmpty\": TranslationData.get(\"Business.SubLeagues.EmptyTable\"),\n },\n \"columns\": [\n { \"orderable\": false },\n { \"orderable\": true },\n { \"orderable\": true },\n { \"orderable\": true },\n { \"orderable\": true },\n { \"orderable\": false },\n { \"orderable\": false },\n { \"orderable\": false },\n { \"orderable\": false },\n { \"orderable\": false },\n { \"orderable\": false },\n { \"orderable\": false },\n { \"orderable\": false }\n ]\n });\n\n $(\".dataTables_filter\").hide();\n\n $(\"#search-subleague-table\").removeClickListeners().on(\"click\", \".client-administrator-subleagues__sub-league-row\", e => {\n const element = $(e.currentTarget);\n if (element.hasModifier(\"slide\")) return;\n this.handleRowClick(element);\n }).on(\"click\", \".client-administrator-subleagues__bin\", e => {\n this.handleDeleteButtonClick(e);\n });\n }\n\n private bindSubLeagueSearchbar() {\n $(\".client-administrator-subleagues__search-bar\").on(\"input\", () => {\n const value = $(\".client-administrator-subleagues__search-bar\").val();\n var table = $('.client-administrator-subleagues__overview-table').DataTable();\n table.search(value).draw();\n });\n }\n\n private bindAdminCheckbox() {\n $(\".client-administrator-subleagues__checkbox\").on(\"change\", event => {\n const isChecked = $(\".client-administrator-subleagues__checkbox\").is(\":checked\");\n this.updateAdminOneCheckBox(isChecked);\n });\n }\n\n private updateAdminOneCheckBox = (isChecked: boolean): void => {\n if (isChecked) {\n $(\".client-administrator-subleagues__input--adminone-firstname\").val(this.profile.firstname).addModifiers(\"disabled\").attr('disabled', 'disabled');\n $(\".client-administrator-subleagues__input--adminone-lastname\").val(this.profile.lastname).addModifiers(\"disabled\").attr('disabled', 'disabled');\n $(\".client-administrator-subleagues__input--adminone-email\").val(this.profile.email).addModifiers(\"disabled\").attr('disabled', 'disabled');\n }\n else {\n $(\".client-administrator-subleagues__input--adminone-firstname\").removeModifiers(\"disabled\").val('').removeAttr('disabled');\n $(\".client-administrator-subleagues__input--adminone-lastname\").removeModifiers(\"disabled\").val('').removeAttr('disabled');\n $(\".client-administrator-subleagues__input--adminone-email\").removeModifiers(\"disabled\").val('').removeAttr('disabled');\n }\n }\n\n private bindValidateCreateSubLeague() {\n $(\".client-administrator-subleagues__input,.client-administrator-subleagues__checkbox\").on(\"input change\", event => {\n $(\".client-administrator-subleagues__input\").removeModifiers(\"invalid\");\n $(\".client-administrator-subleagues__invalid-message\").hide();\n });\n }\n\n private isSubLeagueCreationValid = (): boolean => {\n const adminOneChecked = (document.getElementsByClassName(\"client-administrator-subleagues__checkbox\")[0]).checked;\n const subLeagueName = $(\".client-administrator-subleagues__input--subleague\").val();\n const adminOneFirstName = $(\".client-administrator-subleagues__input--adminone-firstname\").val();\n const adminOneLastName = $(\".client-administrator-subleagues__input--adminone-lastname\").val();\n const adminOneEmail = $(\".client-administrator-subleagues__input--adminone-email\").val();\n const adminTwoFirstName = $(\".client-administrator-subleagues__input--admintwo-firstname\").val();\n const adminTwoLastName = $(\".client-administrator-subleagues__input--admintwo-lastname\").val();\n const adminTwoEmail = $(\".client-administrator-subleagues__input--admintwo-email\").val();\n let valid = true;\n\n if (subLeagueName.length === 0 || subLeagueName.length < 5 || subLeagueName.length > 25) {\n valid = false;\n $(\".client-administrator-subleagues__input--subleague\").toggleModifiers(true, 'invalid');\n $(\".client-administrator-subleagues__message--subleague\").toggleHtml(true,\n `
${TranslationData.get(\"Business.NoCorrectSubLeague\")}
`);\n }\n\n if (!adminOneChecked) {\n if (adminOneFirstName.length === 0) {\n valid = false;\n $(\".client-administrator-subleagues__input--adminone-firstname\").toggleModifiers(true, 'invalid');\n $(\".client-administrator-subleagues__message--adminone-firstname\").toggleHtml(true,\n `
${TranslationData.get(\"Business.NoCorrectFirstName\")}
`);\n }\n\n if (adminOneLastName.length === 0) {\n valid = false;\n $(\".client-administrator-subleagues__input--adminone-lastname\").toggleModifiers(true, 'invalid');\n $(\".client-administrator-subleagues__message--adminone-lastname\").toggleHtml(true,\n `
${TranslationData.get(\"Business.NoCorrectLastName\")}
`);\n }\n\n if (!Email.Validate(adminOneEmail)) {\n valid = false;\n $(\".client-administrator-subleagues__input--adminone-email\").toggleModifiers(true, 'invalid');\n $(\".client-administrator-subleagues__message--adminone-email\").toggleHtml(true,\n `
${TranslationData.get(\"Business.NoCorrectEmail\")}
`);\n }\n }\n\n if (adminTwoFirstName.length > 0 || adminTwoLastName > 0 || adminTwoEmail > 0) {\n if (adminTwoFirstName.length === 0) {\n valid = false;\n $(\".client-administrator-subleagues__input--admintwo-firstname\").toggleModifiers(true, 'invalid');\n $(\".client-administrator-subleagues__message--admintwo-firstname\").toggleHtml(true,\n `
${TranslationData.get(\"Business.NoCorrectFirstName\")}
`);\n }\n\n if (adminTwoLastName.length === 0) {\n valid = false;\n $(\".client-administrator-subleagues__input--admintwo-lastname\").toggleModifiers(true, 'invalid');\n $(\".client-administrator-subleagues__message--admintwo-lastname\").toggleHtml(true,\n `
${TranslationData.get(\"Business.NoCorrectLastName\")}
`);\n }\n\n if (!Email.Validate(adminTwoEmail)) {\n valid = false;\n $(\".client-administrator-subleagues__input--admintwo-email\").toggleModifiers(true, 'invalid');\n $(\".client-administrator-subleagues__message--admintwo-email\").toggleHtml(true,\n `
${TranslationData.get(\"Business.NoCorrectEmail\")}
`);\n }\n }\n\n return valid;\n }\n\n private bindCreateSubLeagueButton() {\n $(\".client-administrator-subleagues__create\").removeClickListeners().on(\"click\", event => {\n const elem = $(event.currentTarget);\n\n const adminOneChecked = (document.getElementsByClassName(\"client-administrator-subleagues__checkbox\")[0]).checked;\n const subLeagueName = $(\".client-administrator-subleagues__input--subleague\").val();\n const adminOneFirstName = $(\".client-administrator-subleagues__input--adminone-firstname\").val();\n const adminOneLastName = $(\".client-administrator-subleagues__input--adminone-lastname\").val();\n const adminOneEmail = $(\".client-administrator-subleagues__input--adminone-email\").val();\n const adminTwoFirstName = $(\".client-administrator-subleagues__input--admintwo-firstname\").val();\n const adminTwoLastName = $(\".client-administrator-subleagues__input--admintwo-lastname\").val();\n const adminTwoEmail = $(\".client-administrator-subleagues__input--admintwo-email\").val();\n const valid = this.isSubLeagueCreationValid();\n\n if (valid) {\n const adminOne = new Business.Administrator(0, 0, adminOneEmail, adminOneFirstName, undefined, false, adminOneLastName, '', 0, null, '');\n const adminOneModel = Business.AdministratorModel.fromDTO(adminOne, new Platform.Country(0, '', '', 0, 0, ''));\n const adminTwo = new Business.Administrator(0, 0, adminTwoEmail, adminTwoFirstName, undefined, false, adminTwoLastName, '', 0, null, '');\n const adminTwoModel = Business.AdministratorModel.fromDTO(adminTwo, new Platform.Country(0, '', '', 0, 0, ''));\n elem.addModifiers(\"disabled\");\n\n $.when(this.subLeaguesRepository.createSubLeague(this.marketId, subLeagueName, adminOneChecked, adminOneModel, adminTwoModel)).done((result: ApiResult) => {\n if (result.isSuccess()) {\n this.clearFields();\n Toast.displayLabel(\"Business.SubLeague.Created\");\n dispatchEvent(new CustomEvent(Business.LeagueAdministratorController.ResetTabDataLoadedEvent));\n dispatchEvent(new CustomEvent(Business.ConfigurationController.ConfigurationChangedEvent));\n\n this.subLeaguesRepository.get(this.marketId).done((apiResult: ApiResult) => {\n if (apiResult.isSuccess()) {\n this.leagues = Business.SubLeagues.fromJson(apiResult.content);\n this.subLeaguesRenderer.renderOverview(this.leagues, () => {\n this.styleSubLeagueDataTable();\n this.bindSubLeagueSearchbar();\n\n this.bindDeleteSubLeague();\n\n this.bindValidateCreateSubLeague();\n this.bindAdminCheckbox();\n this.bindCreateSubLeagueButton();\n\n if (adminOneChecked) {\n $(`.league-administrator__tab[data-tab-id=\"${Business.LeagueAdminTabType.Settings}\"`).show();\n }\n dispatchEvent(new CustomEvent(Business.ManagementController.SubLeagueChangeEvent));\n $(\".client-administrator-subleagues__arrow-image\").css(\"opacity\", \"0\");\n });\n }\n else {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }\n });\n }\n else {\n if (result.content.FailureReason == \"NameInUse\") {\n $(\".client-administrator-subleagues__input--subleague\").toggleModifiers(true, 'invalid');\n $(\".client-administrator-subleagues__message--subleague\").toggleHtml(true,\n `
${TranslationData.get(\"League.SubleagueName.InUse\")}
`);\n }\n else {\n NotificationBar.Display(result.message);\n }\n }\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n elem.removeModifiers(\"disabled\");\n });\n }\n });\n }\n\n private bindDeleteSubLeague = () => {\n $(\".client-administrator-subleagues__bin\").removeClickListeners().on(\"click\", event => {\n this.handleDeleteButtonClick(event);\n });\n if (this.leagues.getSubLeagues().count() > 1) {\n $(\".client-administrator-subleagues__bin\").removeModifiers(\"disabled\")\n } else {\n $(\".client-administrator-subleagues__bin\").addModifiers(\"disabled\")\n }\n }\n\n private handleDeleteButtonClick = (event: Event): void => {\n event.stopPropagation();\n if (this.leagues.getSubLeagues().count() > 1) {\n const subLeagueId = +$(event.currentTarget).closest(\".client-administrator-subleagues__sub-league-row\").attr('data-league-id');\n const subLeagueName = $(`.client-administrator-subleagues__name-subleague[data-league-id=\"${subLeagueId}\"]`).html();\n this.showDeleteSubLeaguePopup(subLeagueName, subLeagueId);\n } else {\n NotificationBar.Display(TranslationData.get(\"Business.Management.Subleagues.CantRemoveOnly\"));\n }\n }\n\n private showDeleteSubLeaguePopup = (subLeagueName: string, subLeagueId: number) => {\n $.newPopup(\"remove-subleague-popup\");\n $.togglePopup(\"#remove-subleague-popup\", true, true);\n $(\"#remove-subleague-popup .popup-content-body__text-explanation strong\").text(subLeagueName);\n\n $(\"#remove-subleague-popup .popup-content-body-close-button,#remove-subleague-popup .popup-content-header__close,#remove-subleague-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#remove-subleague-popup\", false, true);\n });\n\n $(\"#remove-subleague-popup .popup-content-body-remove-button\").on(\"click\", () => {\n if (subLeagueId !== 0 && !isNaN(subLeagueId)) {\n this.subLeaguesRepository.deleteSubLeague(subLeagueId).done((result: ApiResult) => {\n if (result.isSuccess()) {\n Toast.displayLabel(\"Business.SubLeague.Deleted\");\n dispatchEvent(new CustomEvent(Business.LeagueAdministratorController.ResetTabDataLoadedEvent));\n dispatchEvent(new CustomEvent(Business.ConfigurationController.ConfigurationChangedEvent));\n\n this.leagues.delete(subLeagueId);\n\n this.subLeaguesRenderer.renderOverview(this.leagues, () => {\n this.styleSubLeagueDataTable();\n this.bindSubLeagueSearchbar();\n\n this.bindDeleteSubLeague();\n\n this.bindValidateCreateSubLeague();\n this.bindAdminCheckbox();\n this.bindCreateSubLeagueButton();\n\n dispatchEvent(new CustomEvent(Business.ManagementController.SubLeagueChangeEvent));\n if (this.leagues.getSubLeagues().any()) {\n $(\".client-administrator-subleagues__arrow-image\").css(\"opacity\", \"0\");\n }\n if (!this.leagues.getSubLeagues().containsUser(Authentication.getUserId())) {\n $(`.league-administrator__tab[data-tab-id=\"${Business.LeagueAdminTabType.Settings}\"`).hide();\n }\n });\n }\n else {\n NotificationBar.Display(result.message);\n }\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n $.togglePopup(\"#remove-subleague-popup\", false, true);\n });\n }\n\n private showDeleteSubLeagueAdministratorPopup = (leagueId: number, fullName: string, userId: number, invitationId: number, slideRow: JQuery) => {\n $.newPopup(\"remove-subleague-administrator-popup\");\n $.togglePopup(\"#remove-subleague-administrator-popup\", true, true);\n\n $(\"#remove-subleague-administrator-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.SubLeagueAdministrator.DeleteConfirmation\")?.format(fullName));\n\n $(\"#remove-subleague-administrator-popup .popup-content-body-close-button,#remove-subleague-administrator-popup .popup-content-header__close,#remove-subleague-administrator-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#remove-subleague-administrator-popup\", false, true);\n });\n\n $(\"#remove-subleague-administrator-popup .popup-content-body-remove-button\").on(\"click\", () => {\n if (userId) {\n this.administratorRepository.deleteSubLeagueAdmin(userId, leagueId).done(apiResult => {\n this.handleAdminInvitations(leagueId, apiResult, slideRow);\n Toast.displayLabel(\"Business.Management.Administrator.Removed\");\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $.togglePopup(\"#remove-subleague-administrator-popup\", false, true);\n });\n }\n else if (invitationId) {\n this.administratorRepository.deleteInvitation(invitationId).done(apiResult => {\n this.handleAdminInvitations(leagueId, apiResult, slideRow);\n Toast.displayLabel(\"Business.Management.Administrator.Removed\");\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $.togglePopup(\"#remove-subleague-administrator-popup\", false, true);\n });;\n }\n });\n }\n\n private handleAdminInvitations = (leagueId: number, apiResult: ApiResult, slideRow: JQuery): void => {\n const firstAdminContainer = $(slideRow.find(\".subleague-slide__admin\")[0]);\n const secondAdminContainer = $(slideRow.find(\".subleague-slide__admin\")[1]);\n if (apiResult.isSuccess()) {\n const administrators = Administrators.fromJson(apiResult.content);\n this.subLeagueAdmins.put(leagueId.toString(), administrators);\n\n this.subLeaguesRenderer.renderSubLeagueAdmin(firstAdminContainer, administrators.any() ? administrators.first() : null, () => {\n this.bindSubLeagueSlide(leagueId, slideRow);\n this.subLeaguesRenderer.adjustHeight(slideRow);\n });\n\n this.subLeaguesRenderer.renderSubLeagueAdmin(secondAdminContainer, administrators.multiple() ? administrators.last() : null, () => {\n this.bindSubLeagueSlide(leagueId, slideRow);\n this.subLeaguesRenderer.adjustHeight(slideRow);\n });\n\n const subLeague = this.leagues.getById(leagueId);\n subLeague.updateAdminStatusList(administrators.getStatusList());\n this.subLeaguesRenderer.renderRow(leagueId, subLeague, () => { this.bindActionsDropdown(leagueId, slideRow); });\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }\n\n private clearFields = (): void => {\n $(\".client-administrator-subleagues__input--subleague\").val('');\n $(\".client-administrator-subleagues__input--adminone-firstname\").val('');\n $(\".client-administrator-subleagues__input--adminone-lastname\").val('');\n $(\".client-administrator-subleagues__input--adminone-email\").val('');\n $(\".client-administrator-subleagues__input--admintwo-firstname\").val('');\n $(\".client-administrator-subleagues__input--admintwo-lastname\").val('');\n $(\".client-administrator-subleagues__input--admintwo-email\").val('');\n $(\".client-administrator-subleagues__checkbox\").removeProp('checked');\n $(\".client-administrator-subleagues__input--adminone-firstname\").removeModifiers(\"disabled\").removeAttr('disabled');\n $(\".client-administrator-subleagues__input--adminone-lastname\").removeModifiers(\"disabled\").removeAttr('disabled');\n $(\".client-administrator-subleagues__input--adminone-email\").removeModifiers(\"disabled\").removeAttr('disabled');\n }\n\n private handleRowClick = (row: JQuery): void => {\n\n const oldRow = $(\".client-administrator-subleagues__sub-league-row--selected\");\n if (oldRow.length) {\n const slide = oldRow.next();\n if (slide) {\n oldRow.removeModifiers(\"selected\");\n this.subLeaguesRenderer.closeSlide(oldRow.next());\n }\n }\n\n const leagueId = +row.data(\"league-id\");\n const slideRow = row.next();\n if (slideRow?.hasModifier(\"slide\")) {\n row.removeModifiers(\"selected\");\n return this.subLeaguesRenderer.closeSlide(slideRow);\n }\n\n if (this.isLoadingSubLeagueSlide) {\n return;\n }\n this.isLoadingSubLeagueSlide = true;\n\n $.when(\n this.subLeaguesRepository.getInviteLink(this.getMainLeagueId()),\n this.administratorRepository.getBySubLeague(leagueId)\n ).done((apiResult: ApiResult, administrators: Administrators) => {\n const league = this.leagues.getById(leagueId);\n const slideModel = LeagueSlideModel.fromDto(league, administrators, apiResult.content);\n this.subLeagueAdmins.put(leagueId.toString(), administrators);\n this.subLeaguesRenderer.openSlide(row, slideModel, () => {\n this.bindSubLeagueSlide(leagueId, row.next());\n });\n }).fail(err => {\n this.displayErrorMessage(err);\n }).always(() => {\n this.isLoadingSubLeagueSlide = false;\n });\n }\n\n private bindSubLeagueSlide = (leagueId: number, slideRow: JQuery): void => {\n slideRow.find(\".subleague-slide__close\").on(\"click\", () => {\n $(\".client-administrator-subleagues__sub-league-row--selected[data-league-id=\" + slideRow.attr(\"data-league-id\") + \"]\").removeModifiers(\"selected\");\n this.subLeaguesRenderer.closeSlide(slideRow);\n });\n\n this.bindActionsDropdown(leagueId, slideRow);\n\n slideRow.find(\".subleague-slide__button--add-admin\").on(\"click\", e => {\n $(e.currentTarget).hide();\n const adminContainer = $(e.currentTarget).closest(\".subleague-slide__admin\");\n adminContainer.find(\".subleague-slide__form\").removeModifiers(\"hidden\");\n this.subLeaguesRenderer.adjustHeight(slideRow);\n });\n\n slideRow.find(\".subleague-slide__button--save-admin\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n const invitationId = elem.data(\"id\");\n const adminContainer = elem.closest(\".subleague-slide__admin\");\n const firstNameElem = adminContainer.find(\".subleague-slide__input--first-name\");\n const firstName = firstNameElem.val().trim();\n const lastNameElem = adminContainer.find(\".subleague-slide__input--last-name\");\n const lastName = lastNameElem.val().trim();\n const emailElem = adminContainer.find(\".subleague-slide__input--email\");\n const email = emailElem.val().trim();\n\n let valid = true;\n if (!firstName) {\n firstNameElem.addModifiers(\"invalid\");\n valid = false;\n }\n if (!lastName) {\n lastNameElem.addModifiers(\"invalid\");\n valid = false;\n }\n if (!Email.Validate(email)) {\n emailElem.addModifiers(\"invalid\");\n valid = false;\n }\n if (!valid)\n return;\n\n this.administratorRepository.inviteSubLeague(leagueId, new InviteModel(email, firstName, lastName, \"\", 1), invitationId).done(apiResult => {\n this.handleAdminInvitations(leagueId, apiResult, slideRow);\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n });\n\n slideRow.find(\".subleague-slide__button--save-league\").addModifiers(\"disabled\");\n slideRow.find(\".subleague-slide__button--save-league\").on(\"click\", (e) => {\n const elem = $(e.currentTarget);\n\n if (elem.hasModifier(\"disabled\"))\n return;\n\n const leagueInput = slideRow.find(\".subleague-slide__input--league-name\");\n const leagueName = leagueInput.val().trim();\n\n if (!leagueName || leagueName.length < 5) {\n leagueInput.addModifiers(\"invalid\");\n slideRow.find(\".subleague-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameLengthError\")).show();\n return;\n }\n if (leagueName.length > 25) {\n leagueInput.addModifiers(\"invalid\");\n slideRow.find(\".subleague-slide__error-message\").text(TranslationData.get(\"Business.Management.Configuration.SubLeagueNameTooLongError\")).show();\n return\n }\n leagueInput.removeModifiers(\"invalid\");\n slideRow.find(\".subleague-slide__error-message\").hide();\n\n elem.addModifiers(\"disabled\");\n leagueInput.prop(\"disabled\", true);\n\n const leagueNameDeferred = $.Deferred();\n\n if (leagueName !== this.leagues.getById(leagueId).leagueName) {\n $.when(this.subLeaguesRepository.updateSubLeagueName(leagueId, leagueName)).done((subLeagueNameApiResult) => {\n if (subLeagueNameApiResult instanceof ApiResult) {\n if (subLeagueNameApiResult.isSuccess()) {\n this.leagues.getById(leagueId).leagueName = leagueName;\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n $(`.client-administrator-subleagues__name-subleague[data-league-id=\"${leagueId}\"]`).text(leagueName);\n dispatchEvent(new CustomEvent(Business.ManagementController.SubLeagueChangeEvent));\n }\n else {\n NotificationBar.Display(subLeagueNameApiResult.message);\n }\n }\n else {\n this.displayErrorMessage(subLeagueNameApiResult);\n }\n }).always(() => {\n leagueNameDeferred.resolve();\n });\n } else {\n leagueNameDeferred.resolve();\n }\n\n $.when(leagueNameDeferred).done(() => {\n leagueInput.prop(\"disabled\", false);\n elem.removeModifiers(\"disabled\");\n });\n });\n\n slideRow.find(\".subleague-slide__input--league-name\").on(\"change, input\", e => {\n slideRow.find(\".subleague-slide__button\").removeModifiers(\"disabled\");\n });\n }\n\n private bindActionsDropdown = (leagueId: number, slideRow: JQuery): void => {\n slideRow.find(\".subleague-slide__admin-action\").removeClickListeners();\n slideRow.find(\".subleague-slide__admin-actions-button\").removeClickListeners().on(\"click\", e => {\n const list = $(e.currentTarget).closest(\".subleague-slide__admin-actions-container\").find(\".subleague-slide__admin-actions-list\");\n list.toggle(!list.is(\":visible\"));\n slideRow.find(\".subleague-slide\").toggleModifiers(list.is(\":visible\"), \"with-overflow\");\n });\n\n slideRow.find(\".subleague-slide__admin-actions-button, .subleague-slide__admin-action\").prop(\"mouseleave\", null).off(\"mouseleave\");\n slideRow.find(\".subleague-slide__admin-actions-button, .subleague-slide__admin-action\").on(\"mouseleave\", e => {\n $(\".subleague-slide__admin-actions-list\").hide();\n slideRow.find(\".subleague-slide\").removeModifiers(\"with-overflow\");\n });\n\n slideRow.find(\".subleague-slide__admin-action\").prop(\"mouseenter\", null).off(\"mouseenter\");\n slideRow.find(\".subleague-slide__admin-action\").on(\"mouseenter\", e => {\n $(e.currentTarget).closest(\".subleague-slide__admin-actions-container\").find(\".subleague-slide__admin-actions-list\").show();\n slideRow.find(\".subleague-slide\").addModifiers(\"with-overflow\");\n });\n\n slideRow.find(\".subleague-slide__admin-action--send-message\").on(\"click\", e => {\n $(e.currentTarget).closest(\".subleague-slide__admin\").find(\".subleague-slide__message-form\").addModifiers(\"visible\");\n $(\".subleague-slide__admin-actions-list\").hide();\n this.subLeaguesRenderer.adjustHeight(slideRow);\n });\n\n slideRow.find(\".subleague-slide__send-button\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n $(\".subleague-slide__admin-actions-list\").hide();\n slideRow.find(\".subleague-slide\").removeModifiers(\"with-overflow\");\n const formElem = elem.closest(\".subleague-slide__message-form\");\n const subjectElem = formElem.find(\".subleague-slide__subject\");\n const subject = formElem.find(\".subleague-slide__subject\").val().trim();\n const messageElem = formElem.find(\".subleague-slide__message\");\n const message = formElem.find(\".subleague-slide__message\").val().trim();\n\n let valid = true;\n if (!subject) {\n subjectElem.addModifiers(\"invalid\");\n valid = false;\n }\n if (!message) {\n messageElem.addModifiers(\"invalid\");\n valid = false;\n }\n\n if (!valid || elem.hasModifier(\"disabled\"))\n return;\n\n const adminContainer = elem.closest(\".subleague-slide__admin\");\n const userId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"user-id\");\n elem.addModifiers(\"disabled\");\n this.administratorRepository.sendMessage(userId, leagueId, subject, message).done((apiResult) => {\n if (apiResult.isSuccess()) {\n Toast.displayLabel(\"SubLeague.MessageSent\");\n\n subjectElem.val(\"\").removeModifiers(\"invalid\");\n messageElem.val(\"\").removeModifiers(\"invalid\");\n formElem.removeModifiers(\"visible\");\n this.subLeaguesRenderer.adjustHeight(slideRow);\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n this.displayErrorMessage(err);\n }).always(() => {\n elem.removeModifiers(\"disabled\");\n });\n });\n\n slideRow.find(\".subleague-slide__admin-action\").on(\"click\", e => {\n slideRow.find(\".subleague-slide\").removeModifiers(\"with-overflow\");\n });\n\n slideRow.find(\".subleague-slide__admin-action--send-reminder\").on(\"click\", e => {\n $(\".subleague-slide__admin-actions-list\").hide();\n const adminContainer = $(e.currentTarget).closest(\".subleague-slide__admin\");\n const invitationId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"invitation-id\");\n this.administratorRepository.sendReminder(invitationId).done((apiResult) => {\n if (apiResult.isSuccess()) {\n Toast.displayLabel(\"Business.ReminderSent\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n });\n\n slideRow.find(\".subleague-slide__admin-action--edit\").on(\"click\", e => {\n $(\".subleague-slide__admin-actions-list\").hide();\n const adminContainer = $(e.currentTarget).closest(\".subleague-slide__admin\");\n const invitationId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"invitation-id\");\n const admins = this.subLeagueAdmins.get(leagueId.toString());\n if (!admins) {\n return this.displayErrorMessage(null);\n }\n\n const admin = admins.getByInviteLinkId(invitationId);\n\n this.subLeaguesRenderer.renderEditSubLeagueAdmin(adminContainer, admin, () => {\n this.bindSubLeagueSlide(leagueId, slideRow);\n this.subLeaguesRenderer.adjustHeight(slideRow);\n });\n });\n\n slideRow.find(\".subleague-slide__admin-action--remove\").on(\"click\", e => {\n $(\".subleague-slide__admin-actions-list\").hide();\n const adminContainer = $(e.currentTarget).closest(\".subleague-slide__admin\");\n const fullName = $('.subleague-slide__admin-name', adminContainer).text();\n\n const invitationId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"invitation-id\");\n const userId = +adminContainer.find(\".subleague-slide__admin-actions-list\").data(\"user-id\");\n this.showDeleteSubLeagueAdministratorPopup(leagueId, fullName, userId, invitationId, slideRow);\n });\n }\n\n private showLoadingOverlay = (): void => {\n const initialMessageDelay = 10000;\n $(\".client-administrator-subleagues__loading-text\").text(TranslationData.get(\"Business.SubLeague.LoadingMessage.1\"));\n $(\".client-administrator-subleagues__loading-overlay\").show();\n setTimeout(() => {\n $(\".client-administrator-subleagues__loading-text\").text(TranslationData.get(\"Business.SubLeague.LoadingMessage.2\"));\n }, initialMessageDelay);\n\n setTimeout(() => {\n $(\".client-administrator-subleagues__loading-text\").text(TranslationData.get(\"Business.SubLeague.LoadingMessage.3\"));\n }, initialMessageDelay + 30000);\n }\n\n private hideLoadingOverlay = (): void => {\n $(\".client-administrator-subleagues__loading-overlay\").hide();\n }\n }\n}","module ClientAdministrator {\n import SummaryModel = Business.SummaryModel;\n import CalculatedOrder = Business.CalculatedOrder;\n import PackageType = Business.PackageType;\n import DealsRepository = Business.DealsRepository;\n import PackageOptionPopUpRenderer = Business.PackageOptionPopUpRenderer;\n import PackageOptionsRepository = Business.PackageOptionsRepository;\n import Deal = Business.Deal;\n import MarketDealResult = Business.MarketDealResult;\n import Deals = Business.Deals;\n import SalesPackageRepository = Business.SalesPackageRepository;\n import SalesPackageType = Business.SalesPackageType;\n\n export class UpgradeController extends ClientAdministratorTabController {\n private readonly dealRepository: DealsRepository;\n private readonly packageOptionsRepository: PackageOptionsRepository;\n private readonly platformRepository: Platform.Repository;\n private readonly accountDataRepository: Business.AccountDataRepository;\n\n private readonly upgradeRenderer: UpgradeRenderer;\n private readonly packageOptionPopUpRenderer: PackageOptionPopUpRenderer;\n\n private readonly salesPackageRepository: SalesPackageRepository;\n\n private currentParticipants: number;\n private currentSelectedPackage: PackageType;\n private countryId: number;\n\n private selectedParticipantUpgrade: Deal | undefined;\n private selectedPackageUpgrade: Deal | undefined;\n\n private deadlinePassed: boolean;\n private salesAccountData: Business.SalesAccountData;\n\n private readonly participantUpgradePackage = PackageType.Budget;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, clientRepository: Business.IClientRepository) {\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.ClientAdminTabType.Upgrade, clientRepository, true);\n this.dealRepository = new DealsRepository(salesApiSettings);\n this.packageOptionsRepository = new PackageOptionsRepository(salesApiSettings);\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\n this.accountDataRepository = new Business.AccountDataRepository(salesApiSettings);\n this.salesPackageRepository = new SalesPackageRepository(salesApiSettings);\n\n this.upgradeRenderer = new UpgradeRenderer();\n this.packageOptionPopUpRenderer = new PackageOptionPopUpRenderer();\n }\n\n protected loadData = () => {\n this.currentSelectedPackage = this.salesUser.packageType;\n this.countryId = this.salesUser.countryId;\n this.currentParticipants = this.salesUser.clientMarketHeader.maxSponsoredParticipantCount;\n this.loadUpgrades();\n this.upgradeRenderer.resetSideView();\n this.selectedPackageUpgrade = null;\n this.selectedParticipantUpgrade = null;\n this.platformRepository.getGameInfo(this.marketId).done(gameInfo => {\n const deadline = gameInfo.signUpDeadline;\n this.deadlinePassed = moment.utc().isAfter(moment.utc(deadline));\n\n if (!this.deadlinePassed) {\n $(\"#client-administrator-upgrade__subtitle--participants\").show();\n $(\".client-administrator-upgrade__choose-participants\").show();\n\n $.when(this.dealRepository.getDealsForMarket(this.marketId), this.accountDataRepository.getSalesAccountData())\n .done((marketDealResult: MarketDealResult, salesAccountData: Business.SalesAccountData) => {\n this.salesAccountData = salesAccountData;\n marketDealResult.filterByType(this.participantUpgradePackage);\n\n if (marketDealResult.marketDeals.length < 1) {\n return NotificationBar.Display(TranslationData.get(\"Business.NoDealsAvailable\"));\n }\n this.upgradeRenderer.renderParticipantsTable(this.currentParticipants, marketDealResult.marketDeals, () => {\n $(\"#btnCalculate\").click(() => {\n this.changeTable(marketDealResult);\n });\n\n $(\"#calculator-input\").on(\"keyup\", event => {\n if (event.key === \"Enter\") {\n this.changeTable(marketDealResult);\n }\n });\n $(\"#calculator-input\").val(null);\n\n this.bindParticipantButtons(marketDealResult);\n $(\".participants-table__price-button\").removeModifiers(\"selected\");\n });\n this.removePreload();\n }).fail(err => {\n console.error(`Failed to get deals or sales account data: ${JSON.stringify(err)}`);\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n } else {\n $(\"#client-administrator-upgrade__subtitle--participants\").hide();\n $(\".client-administrator-upgrade__choose-participants\").hide();\n }\n });\n\n this.loadSalesPackages();\n\n Business.ActionsController.getInstance().initialize(this.marketId, this.clientSettings?.actionsLeft() ?? 0, this.salesUser.leagueActionsCollection.getByMarketId(this.marketId));\n }\n\n private loadSalesPackages = () => {\n $.when(\n this.salesPackageRepository.getSalesPackagesByMarketAndCountry(this.marketId, this.countryId),\n this.platformRepository.getGameInfo(this.marketId)\n ).done((result, gameInfo) => {\n if (result.marketSalesPackages.length < 1) {\n $(\".client-administrator-upgrade__upgrade-sales-packages-placeholder\").hide();\n return;\n }\n\n $(\".client-administrator-upgrade__upgrade-sales-packages-placeholder\").show();\n this.upgradeRenderer.renderUpgradeSalesPackagesTemplate(result.marketSalesPackages, () => {\n $(\".client-administrator-upgrade__upgrade-row-sales-package-button\").on(\"click\", e => {\n\n const packageType: SalesPackageType = $(e.currentTarget).data(\"package-type\");\n Business.SalesPackageProgressModel.createWithAlteredPageOrder(packageType);\n\n new UpgradeInformationModel(this.marketId, gameInfo.gameId, this.countryId, false, this.selectedParticipantUpgrade?.id,\n this.selectedPackageUpgrade?.id, Business.ClientAdminTabType.Upgrade, \"\", \"\", {}, {}).saveToLocalStorage();\n })\n })\n });\n }\n\n private changeTable = (marketDealResult: MarketDealResult) => {\n if (!this.deadlinePassed) {\n const requestedParticipants = $(\"#calculator-input\").val().replace(\",\", \"\").replace(\".\", \"\");\n const recommendedDeal = marketDealResult.getRecommendedDeal(requestedParticipants, this.participantUpgradePackage);\n recommendedDeal.updateImageUrl(marketDealResult.imageUrl);\n\n this.upgradeRenderer.renderParticipantsTable(recommendedDeal.participantCount, marketDealResult.marketDeals, () => {\n this.bindParticipantButtons(marketDealResult);\n });\n }\n }\n\n private bindParticipantButtons = (marketDealResult: MarketDealResult) => {\n if (!this.deadlinePassed) {\n $(\".participants-table__price-button\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n if (elem.hasModifier(\"selected\")) {\n $(\".participants-table__price-button\").removeModifiers(\"selected\");\n $(\"#calculator-input\").val(\"\");\n this.selectedParticipantUpgrade = null;\n this.calculateOrder();\n return;\n }\n\n $(\".participants-table__price-button\").removeModifiers(\"selected\");\n elem.addModifiers(\"selected\");\n const participantCount = elem.closest(\".participants-table__participant-row\").data(\"participant-count\");\n $(\"#calculator-input\").val(participantCount);\n\n const recommendedDeal = marketDealResult.getRecommendedDeal(participantCount, this.participantUpgradePackage);\n recommendedDeal.updateImageUrl(marketDealResult.imageUrl);\n\n this.selectedParticipantUpgrade = recommendedDeal;\n this.calculateOrder();\n });\n }\n }\n\n private calculateOrder = (): void => {\n if (!this.selectedParticipantUpgrade && !this.selectedPackageUpgrade) {\n $(\".business-checkout__side-view-placeholder\").html(null);\n return;\n }\n const couponCode = UpgradeInformationModel.getFromLocalStorage()?.couponCode ?? \"\";\n $.when(\n this.dealRepository.calculateUpgrade(this.marketId, this.selectedParticipantUpgrade?.id, this.selectedPackageUpgrade?.id, false, this.salesUser.countryId, this.salesAccountData?.companyVATNumber ?? \"\", couponCode, {}),\n this.platformRepository.getGameInfo(this.marketId),\n ).done((result: CalculatedOrder, gameInfo: Platform.GameInfo) => {\n const summary = new SummaryModel(result, \"\");\n\n const cart = new Array();\n if (this.selectedParticipantUpgrade) {\n const row = new Business.PackageRowModel(this.selectedParticipantUpgrade, this.marketId, gameInfo.gameName, gameInfo.eventName, this.selectedParticipantUpgrade.imageUrl);\n row.setIsParticipantUpgrade(true);\n cart.push(row);\n }\n if (this.selectedPackageUpgrade) {\n const row = new Business.PackageRowModel(this.selectedPackageUpgrade, this.marketId, gameInfo.gameName, gameInfo.eventName, this.selectedPackageUpgrade.imageUrl);\n row.setIsPackageUpgrade(true);\n cart.push(row);\n }\n\n this.upgradeRenderer.renderSideView(summary, cart, () => {\n $(\".order-overview-side-view__order-now-button\").on(\"click\", e => {\n if (!this.selectedPackageUpgrade && !this.selectedParticipantUpgrade)\n return;\n localStorage.setItem(\"sales.ParticipantCount-\" + this.marketId, this.currentParticipants.toString())\n new UpgradeInformationModel(this.marketId, gameInfo.gameId, this.countryId, false, this.selectedParticipantUpgrade?.id,\n this.selectedPackageUpgrade?.id, Business.ClientAdminTabType.Upgrade, \"\", \"\", {}, {}).saveToLocalStorage();\n location.href = \"/order\";\n });\n });\n });\n }\n\n private loadUpgrades = (): void => {\n this.upgradeRenderer.preloadParticipantsTable();\n $(\".client-administrator-upgrade__choose-package\").show();\n this.upgradeRenderer.preloadPackageOptionsTable();\n $.when(\n this.dealRepository.getPackageUpgrades(this.marketId),\n this.packageOptionsRepository.getPackageOptions(this.marketId)\n ).done((packageUpgrades: Deals, packageOptions: Business.PackageOptionsResult) => {\n $(`.client-administrator-upgrade__choose-package-header[data-package-type=\"${this.currentSelectedPackage}\"]`).addModifiers(\"recommended\");\n $(`.client-administrator-upgrade__upgrade-row-price-button[data-package-type=\"${this.currentSelectedPackage}\"]`).closest(\".client-administrator-upgrade__upgrade-row-button-container\").addModifiers(\"recommended\");\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${this.currentSelectedPackage}\"]`).addModifiers(\"disabled\");\n this.upgradeRenderer.renderPackageOptionsTable(packageOptions, this.currentSelectedPackage, this.currentSelectedPackage, () => {\n this.bindPackageOptionRow();\n });\n\n this.upgradeRenderer.renderUpgradeButtons(this.currentSelectedPackage, packageUpgrades, () => {\n this.bindUpgradeButtons(packageOptions, packageUpgrades);\n if (this.salesUser.packageType === Business.PackageType.Business) {\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${Business.PackageType.Budget}\"]`).addModifiers(\"disabled\");\n }\n if (this.salesUser.packageType === Business.PackageType.Professional) {\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${Business.PackageType.Budget}\"]`).addModifiers(\"disabled\");\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${Business.PackageType.Business}\"]`).addModifiers(\"disabled\");\n }\n });\n }).fail(err => {\n this.displayErrorMessage(err);\n }).always(() => {\n this.removePreload();\n });\n }\n\n private bindPackageOptionRow = () => {\n $(\".package-option-row\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n const packageOptionId = +elem.data(\"package-option-id\");\n this.packageOptionsRepository.getPackageOptionLayoverContent(packageOptionId)\n .done((description: Business.PackageOptionDescription) => {\n var model = new Business.PackageOptionPopUpModel(description.description, description.imageUrls);\n\n this.packageOptionPopUpRenderer.renderTemplate(model, () => {\n $.scoritoPopup({\n elementId: \"packageoptions-popup\",\n contentHtml: $(\".packageoptions-popup-placeholder\").html(),\n popupTitle: description.title,\n widthInPixels: 1240,\n follow: [true, false]\n });\n\n if (description.imageUrls.length > 1) {\n $(\".bxslider\").bxSlider({\n speed: 600,\n auto: true,\n pager: true,\n controls: true,\n responsive: true,\n slideWidth: 780\n });\n }\n });\n }).fail(err => {\n this.displayErrorMessage(err);\n });\n });\n }\n\n private bindUpgradeButtons = (packageOptions: Business.PackageOptionsResult, packageUpgrades: Deals) => {\n $(\".check-icon\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n\n $(\".client-administrator-upgrade__upgrade-row-button-container\").removeModifiers(\"recommended\");\n elem.closest(\".client-administrator-upgrade__upgrade-row-button-container\").addModifiers(\"recommended\");\n\n $(\".client-administrator-upgrade__upgrade-row-price-button\").removeModifiers(\"recommended\");\n $(e.currentTarget).addModifiers(\"recommended\");\n\n $(\".client-administrator-upgrade__choose-package-header\").removeModifiers(\"recommended\");\n $(`.client-administrator-upgrade__choose-package-header[data-package-type=\"${this.currentSelectedPackage}\"]`).addModifiers(\"recommended\");\n\n this.upgradeRenderer.renderPackageOptionsTable(packageOptions, this.currentSelectedPackage, this.currentSelectedPackage, () => {\n this.bindPackageOptionRow();\n });\n\n this.selectedPackageUpgrade = null;\n\n this.calculateOrder();\n });\n\n $(\".client-administrator-upgrade__upgrade-row-price-button\").on(\"click\", e => {\n const elem = $(e.currentTarget);\n const packageType: Business.PackageType = elem.data(\"package-type\");\n if (elem.hasModifier(\"recommended\")) {\n $(\".client-administrator-upgrade__upgrade-row-button-container\").removeModifiers(\"recommended\");\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${this\n .currentSelectedPackage}\"]`).addModifiers(\"recommended\");\n\n $(\".client-administrator-upgrade__upgrade-row-price-button\").removeModifiers(\"recommended\");\n $(`.client-administrator-upgrade__upgrade-row-price-button[data-package-type=\"${this\n .currentSelectedPackage}\"]`).addModifiers(\"recommended\");\n\n $(\".client-administrator-upgrade__choose-package-header\").removeModifiers(\"recommended\");\n $(`.client-administrator-upgrade__choose-package-header[data-package-type=\"${this\n .currentSelectedPackage}\"]`).addModifiers(\"recommended\");\n\n this.upgradeRenderer.renderPackageOptionsTable(packageOptions,\n this.currentSelectedPackage,\n this.currentSelectedPackage,\n () => {\n this.bindPackageOptionRow();\n });\n\n this.selectedPackageUpgrade = null;\n\n this.calculateOrder();\n return;\n }\n\n $(\".client-administrator-upgrade__upgrade-row-button-container\").removeModifiers(\"recommended\");\n elem.closest(\".client-administrator-upgrade__upgrade-row-button-container\").addModifiers(\"recommended\");\n\n $(\".client-administrator-upgrade__upgrade-row-price-button\").removeModifiers(\"recommended\");\n $(e.currentTarget).addModifiers(\"recommended\");\n\n $(\".client-administrator-upgrade__choose-package-header\").removeModifiers(\"recommended\");\n $(`.client-administrator-upgrade__choose-package-header[data-package-type=\"${packageType}\"]`).addModifiers(\"recommended\");\n\n this.upgradeRenderer.renderPackageOptionsTable(packageOptions, packageType, this.currentSelectedPackage, () => {\n this.bindPackageOptionRow();\n });\n\n this.selectedPackageUpgrade = packageUpgrades.getByDealId(+elem.data(\"deal-id\"));\n\n this.calculateOrder();\n });\n }\n }\n}","module ClientAdministrator {\n import ClientAdminTabType = Business.ClientAdminTabType;\n import MarketingTabType = Business.MarketingTabType;\n\n export class MarketingController extends ClientAdministrator.ClientAdministratorTabController {\n\n private userRepository: Business.UserRepository;\n private articleRepository: Business.IArticleRepository;\n private subLeaguesRepository: Business.ISubLeagueRepository;\n\n private marketingRenderer: MarketingRenderer;\n private optInController: OptInController;\n private advertisementsController: AdvertisementsController;\n private articleControllerHelper: BusinessManagement.ArticleControllerHelper;\n private interstitialsController: InterstitialsController;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings, clientRepository: Business.IClientRepository, articleRepository: Business.IArticleRepository) {\n super(cdnUrl, salesApiSettings, platformApiSettings, ClientAdminTabType.Marketing, clientRepository, true);\n this.marketingRenderer = new MarketingRenderer();\n this.userRepository = new Business.UserRepository(userApiSettings);\n this.articleRepository = articleRepository;\n this.subLeaguesRepository = new Business.SubLeagueRepository(this.salesApiSettings);\n }\n\n protected loadData = (isConfigurationComplete: boolean) => {\n this.optInController = new OptInController(this.cdnUrl, this.salesApiSettings, this.marketId, this.salesUser.clientId);\n this.advertisementsController = new AdvertisementsController(this.cdnUrl, this.salesApiSettings, this.platformApiSettings, this.marketId);\n this.articleControllerHelper = new BusinessManagement.ArticleControllerHelper(\"client-administrator-articles\", this.getMainLeagueId(), this.marketId, this.userRepository, this.articleRepository, this.subLeaguesRepository, this.salesUser.packageType);\n this.interstitialsController = new InterstitialsController(this.cdnUrl, this.salesApiSettings, this.marketId);\n\n this.loadTabsHeader()\n this.loadTabContent(isConfigurationComplete)\n if (!isConfigurationComplete) {\n $(\".marketing__slide\").hide()\n $(\".marketing__notice\").show()\n } else {\n $(\".marketing__slide\").show()\n $(\".marketing__notice\").hide()\n }\n }\n\n private loadTabsHeader = () => {\n this.marketingRenderer.renderTabHeaderTemplate(MarketingTabModel.toTabArticles(this.salesUser, false),\n () => { this.bindHeaderClick() }\n );\n this.marketingRenderer.renderTabHeaderTemplate(MarketingTabModel.toTabAdvertisements(this.salesUser, false),\n () => { this.bindHeaderClick() }\n );\n this.marketingRenderer.renderTabHeaderTemplate(MarketingTabModel.toTabInterstitials(this.salesUser, false),\n () => { this.bindHeaderClick() }\n );\n this.marketingRenderer.renderTabHeaderTemplate(MarketingTabModel.toTabOptIns(this.salesUser, false),\n () => { this.bindHeaderClick() }\n );\n }\n\n private loadTabContent = (isConfigurationComplete: boolean) => { \n this.articleControllerHelper.initialize(isConfigurationComplete);\n this.optInController.initialize(isFeatureSupported(this.salesUser.packageType, Feature.OptIns));\n this.advertisementsController.initialize(isFeatureSupported(this.salesUser.packageType, Feature.Advertisements));\n this.interstitialsController.initialize(isFeatureSupported(this.salesUser.packageType, Feature.Interstitials));\n }\n\n private bindHeaderClick = () => {\n const marketingContentElem = $(\".client-administrator__tab-content\");\n marketingContentElem.find(\".marketing-header-placeholder\").removeClickListeners();\n marketingContentElem.find(\".marketing-header-placeholder\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const tabType: MarketingTabType = +elem.closest(\".marketing__slide\").data(\"slide-id\");\n const contentPlaceholder = elem.next(); \n const shouldOpenSlide = !contentPlaceholder.hasClass(\"marketing-content-placeholder--open\")\n this.marketingRenderer.toggleSlide(tabType, shouldOpenSlide);\n })\n }\n }\n}","module ClientAdministrator {\n import MarketingTabType = Business.MarketingTabType;\n\n export class MarketingRenderer {\n private marketingHeaderTemplate: HandlebarsTemplateDelegate;\n\n public renderTabHeaderTemplate = (model: MarketingTabModel, callBack: Function, keepSlidesOpenState: boolean = false): void => {\n if (this.marketingHeaderTemplate == null) {\n this.marketingHeaderTemplate = Handlebars.compile($(\"#marketing-header-template\").html());\n }\n\n $(`.marketing__slide[data-slide-id=\"${model.marketingTabType}\"] .marketing-header-placeholder`).html(this.marketingHeaderTemplate(model));\n this.toggleSlide(model.marketingTabType, model.isSlideOpen, keepSlidesOpenState)\n callBack();\n }\n\n public toggleSlide = (tab: MarketingTabType, open: boolean, keepSlidesOpenState: boolean = false): void => {\n const tabContainer = $(`.marketing__slide[data-slide-id=\"${+tab}\"]`)\n const contentPlaceholder = tabContainer.find(\".marketing-content-placeholder\");\n\n if (!keepSlidesOpenState) {\n $(\".marketing-content-placeholder\").removeModifiers(\"open\").height(0);\n }\n\n if (open) {\n const isOpen = $(\".marketing__arrow\").hasModifier(\"slide-open\");\n if (isOpen) {\n $(\".marketing__arrow\").removeModifiers(\"slide-open\");\n }\n const content = contentPlaceholder.children(\":first-child\");\n contentPlaceholder.height(content.outerHeight());\n contentPlaceholder.addModifiers(\"open\");\n tabContainer.find(\".marketing__arrow\").addModifiers(\"slide-open\");\n } else {\n $(\".marketing__arrow\").removeModifiers(\"slide-open\");\n }\n }\n }\n}","module ClientAdministrator {\n import Administrator = Business.Administrator;\n\n export class SubLeaguesRenderer {\n private template: HandlebarsTemplateDelegate;\n private rowTemplate: HandlebarsTemplateDelegate;\n private slideTemplate: HandlebarsTemplateDelegate;\n private mainLeagueAdminSlideTemplate: HandlebarsTemplateDelegate;\n private subLeagueAdminSlideTemplate: HandlebarsTemplateDelegate;\n\n private leagueAdminDetailsTemplate: HandlebarsTemplateDelegate;\n private inviteAdminFormTemplate: HandlebarsTemplateDelegate;\n\n public renderOverview = (model: Business.SubLeagues, bindHtmlElements: Function): void => {\n if (this.rowTemplate == null) {\n this.rowTemplate = Handlebars.compile($(\"#subleague-row-template\").html());\n Handlebars.registerPartial(\"subLeagueRow\", this.rowTemplate);\n }\n if (this.template == null) {\n this.template = Handlebars.compile($(\"#subleagues-template\").html());\n }\n if (this.leagueAdminDetailsTemplate == null) {\n this.leagueAdminDetailsTemplate = Handlebars.compile($(\"#league-admin-details-template\").html());\n Handlebars.registerPartial(\"leagueAdminDetails\", this.leagueAdminDetailsTemplate);\n }\n if (this.inviteAdminFormTemplate == null) {\n this.inviteAdminFormTemplate = Handlebars.compile($(\"#invite-admin-form-template\").html());\n Handlebars.registerPartial(\"inviteAdminForm\", this.inviteAdminFormTemplate);\n }\n\n $(\".client-administrator-subleagues__subleagues-placeholder\").html(this.template(model));\n bindHtmlElements();\n }\n\n public openSlide = (row: JQuery, slideModel: LeagueSlideModel, bindHtmlElements: Function): void => {\n if (this.slideTemplate == null) {\n this.slideTemplate = Handlebars.compile($(\"#subleague-slide-template\").html());\n }\n\n row.addModifiers(\"selected\");\n const appendedRow = $(``, { \"class\": \"client-administrator-subleagues__sub-league-row\", \"data-league-id\": slideModel.leagueId }).addModifiers(\"slide\").insertAfter(row).html(this.slideTemplate(slideModel));\n appendedRow.height(0);\n if (slideModel.isMainLeague) {\n this.renderMainLeagueAdminContent(appendedRow, slideModel);\n }\n else {\n this.renderSubLeagueAdminContent(appendedRow, slideModel);\n }\n\n const slideElement = appendedRow.find(\".subleague-slide\");\n if (!appendedRow.is(\":last-child\")) {\n slideElement.addModifiers(\"border-bottom\");\n }\n const content = slideElement.find(\".subleague-slide__content\");\n slideElement.height(content.outerHeight());\n bindHtmlElements();\n }\n\n public adjustHeight = (slideRow: JQuery): void => {\n const slide = slideRow.find(\".subleague-slide\");\n const content = slide.find(\".subleague-slide__content\");\n slide.height(content.outerHeight());\n }\n\n public closeSlide = (slideRow: JQuery): void => {\n const slideElement = slideRow.find(\".subleague-slide\");\n if (!slideElement)\n return;\n\n slideElement.height(0);\n slideRow.height(0);\n slideElement.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", () => {\n slideRow.remove();\n });\n }\n\n public renderSubLeagueAdmin = (placeholder: JQuery, admin: Administrator, onRendered: Function): void => {\n if (admin == null) {\n placeholder.html(this.inviteAdminFormTemplate(_.extend({ isMainLeague: false, order: placeholder.is(\":first-child\") ? 1 : 2 })));\n }\n else {\n placeholder.html(this.leagueAdminDetailsTemplate(_.extend(admin, { isMainLeague: false })));\n }\n onRendered();\n }\n\n public renderEditSubLeagueAdmin = (placeholder: JQuery, admin: Administrator, onRendered: Function): void => {\n\n placeholder.html(this.inviteAdminFormTemplate(_.extend(admin, { isMainLeague: false, order: placeholder.is(\":first-child\") ? 1 : 2 })));\n placeholder.find(\".subleague-slide__button--add-admin\").hide();\n placeholder.find(\".subleague-slide__form\").removeModifiers(\"hidden\");\n onRendered();\n }\n\n private renderMainLeagueAdminContent = (slideRow: JQuery, model: any): void => {\n if (this.mainLeagueAdminSlideTemplate == null) {\n this.mainLeagueAdminSlideTemplate = Handlebars.compile($(\"#main-league-admin-slide-template\").html());\n }\n\n slideRow.find(\".subleague-slide-placeholder\").html(this.mainLeagueAdminSlideTemplate(model));\n }\n\n private renderSubLeagueAdminContent = (slideRow: JQuery, model: any): void => {\n if (this.subLeagueAdminSlideTemplate == null) {\n this.subLeagueAdminSlideTemplate = Handlebars.compile($(\"#sub-league-admin-slide-template\").html());\n }\n\n slideRow.find(\".subleague-slide-placeholder\").html(this.subLeagueAdminSlideTemplate(model));\n }\n\n\n public renderRow = (leagueId: number, model: Business.SubLeague, onRendered: Function): void => {\n const row = $(`.client-administrator-subleagues__sub-league-row--selected[data-league-id=\"${leagueId}\"]`);\n const rowClass = row.hasClass(\"even\") ? \"even\" : \"odd\";\n row.replaceWith(this.rowTemplate({ ...model, selected: true, rowClass: rowClass }));\n onRendered();\n }\n }\n}","module ClientAdministrator {\n import PackageOptionsResult = Business.PackageOptionsResult;\n import PackageType = Business.PackageType;\n import PackageOptionModel = Business.PackageOptionModel;\n import PackageOptionsTableModel = Business.PackageOptionsTableModel;\n import Deal = Business.Deal;\n import SummaryModel = Business.SummaryModel;\n import PackageRowModel = Business.PackageRowModel;\n import Deals = Business.Deals;\n\n export class UpgradeRenderer {\n private template: HandlebarsTemplateDelegate;\n\n private packageOptionsTableTemplate: HandlebarsTemplateDelegate;\n private packageOptionsTableRowTemplate: HandlebarsTemplateDelegate;\n private orderOverviewSideViewTemplate: HandlebarsTemplateDelegate;\n private orderOverviewGameTemplate: HandlebarsTemplateDelegate;\n private upgradeButtonsTemplate: HandlebarsTemplateDelegate;\n private upgradeSalesPackagesTemplate: HandlebarsTemplateDelegate;\n\n public renderParticipantsTable = (currentParticipants: number, deals: Array, callBack: Function): void => {\n if (this.template == null) {\n this.template = Handlebars.compile($(\"#participants-table-template\").html());\n }\n $(\".client-administrator-upgrade__participants-table\").html(this.template(UpgradeModel.fromDto(currentParticipants, deals)));\n callBack();\n }\n\n public preloadParticipantsTable = (): void => {\n if (this.template == null) {\n this.template = Handlebars.compile($(\"#participants-table-template\").html());\n }\n $(\".client-administrator-upgrade__participants-table\").html(this.template(UpgradeModel.createPreload()));\n }\n\n public renderPackageOptionsTable = (packageOptions: PackageOptionsResult, recommendedPackage: PackageType, currentSelectedPackage: PackageType, bindHtmlElements: Function): void => {\n const packageOptionsModel: Array = new Array();\n packageOptions.packageOptions.forEach(po => {\n const model = new PackageOptionModel(po.id, po.packageType, po.isImportantDifference, po.label);\n packageOptionsModel.push(model);\n });\n this.renderPackageOptionsTableTemplate(packageOptionsModel, recommendedPackage, currentSelectedPackage, bindHtmlElements);\n }\n\n public preloadPackageOptionsTable = () => {\n const packageOptionModels: Array = new Array();\n const model = new PackageOptionModel(0, PackageType.Budget, false, TranslationData.get(\"Common.Loading\"));\n packageOptionModels.push(model);\n\n this.renderPackageOptionsTableTemplate(packageOptionModels, null, null, () => { });\n }\n\n private renderPackageOptionsTableTemplate = (packageOptions: Array, recommendedPackage: PackageType, currentSelectedPackage: PackageType, bindHtmlElements: Function): void => {\n if (this.packageOptionsTableTemplate == null) {\n this.packageOptionsTableTemplate = Handlebars.compile($(\"#package-options-table-template\").html());\n }\n if (this.packageOptionsTableRowTemplate == null) {\n this.packageOptionsTableRowTemplate = Handlebars.compile($(\"#packageoptions-table-row-template\").html());\n Handlebars.registerPartial(\"packageOptionsTableRowPartial\", this.packageOptionsTableRowTemplate);\n }\n\n const packageOptionsTable = new PackageOptionsTableModel(recommendedPackage, currentSelectedPackage, packageOptions);\n\n $(\".package-options-table-placeholder\").html(this.packageOptionsTableTemplate(packageOptionsTable));\n $(`.client-administrator-upgrade__upgrade-row-price-button[data-package-type=\"${recommendedPackage}\"]`).addModifiers(\"recommended\");\n\n if (packageOptionsTable.shouldBudgetBeDisabled())\n $(`.client-administrator-upgrade__upgrade-row-button-container[data-package-type=\"${PackageType.Budget}\"]`).addModifiers(\"disabled\");\n if (packageOptionsTable.shouldBusinessBeDisabled())\n $(`.client-administrator-upgrade__upgrade-row-price-button[data-package-type=\"${PackageType.Business}\"]`).addModifiers(\"disabled\");\n\n bindHtmlElements();\n }\n\n public renderSideView = (summary: SummaryModel, order: PackageRowModel[], bindHtmlElements: Function): void => {\n if (this.orderOverviewSideViewTemplate == null) {\n this.orderOverviewSideViewTemplate = Handlebars.compile($(\"#order-overview-side-view-template\").html());\n }\n\n if (this.orderOverviewGameTemplate == null) {\n this.orderOverviewGameTemplate = Handlebars.compile($(\"#order-overview-game-template\").html());\n Handlebars.registerPartial(\"orderOverviewGameTemplate\", this.orderOverviewGameTemplate);\n }\n\n $(\".business-checkout__side-view-placeholder\").html(this.orderOverviewSideViewTemplate({\n summary,\n games: order.filter(o => o.type === \"game\"),\n salesPackages: order.filter(o => o.type === \"salesPackage\"),\n isUpgrade: true\n }));\n\n const sideBar = $(\".business-checkout__side-view\");\n const pageTopPadding = parseInt($(\".client-administrator-upgrade\").css(\"padding-top\"));\n const titleHeight = $(\".client-administrator__title:visible\").outerHeight(true) + $(\".client-administrator-upgrade__subtitle\").outerHeight(true) + pageTopPadding;\n sideBar.css(\"top\", titleHeight);\n this.scrollInView(sideBar, titleHeight);\n\n $(document).scroll(_.throttle(() => {\n this.scrollInView(sideBar, titleHeight);\n }, 15));\n\n bindHtmlElements();\n }\n\n private scrollInView = (sideBar: JQuery, titleHeight: number) => {\n const bottomContainer = $(\".client-administrator-upgrade__choose-package-content\");\n if (bottomContainer?.is(\":hidden\") || bottomContainer?.length < 1)\n return;\n\n const bottomPosition = bottomContainer.position().top + bottomContainer.outerHeight(true) - sideBar.outerHeight(true);\n const currentScroll = $(document).scrollTop();\n const maxBottomPosition = currentScroll - (titleHeight * 2) > bottomPosition ? bottomPosition : currentScroll - sideBar.outerHeight(true);\n sideBar.css(\"top\", Math.max(titleHeight, maxBottomPosition));\n }\n\n public renderUpgradeButtons = (selectedPackage: Business.PackageType, upgrades: Deals, bindHtmlElements: Function) => {\n\n if (this.upgradeButtonsTemplate == null) {\n this.upgradeButtonsTemplate = Handlebars.compile($(\"#upgrade-buttons-template\").html());\n }\n const list = new Array();\n _.each([PackageType.Budget, PackageType.Business, PackageType.Professional], packageType => {\n list.push(UpgradeButtonModel.fromDto(packageType, selectedPackage, upgrades));\n });\n\n $(\".client-administrator-upgrade__upgrade-buttons-placeholder\").html(this.upgradeButtonsTemplate(list));\n\n bindHtmlElements();\n }\n\n public resetSideView() {\n $(\".business-checkout__side-view-placeholder\").empty();\n $(\".client-administrator-upgrade__choose-participants\").removeAttr(\"style\");\n }\n\n public renderUpgradeSalesPackagesTemplate = (data: Business.MarketSalesPackage[], bindHtmlElements: Function) => {\n\n if (this.upgradeSalesPackagesTemplate == null) {\n this.upgradeSalesPackagesTemplate = Handlebars.compile($(\"#upgrade-sales-packages-template\").html());\n }\n\n // We show the first image of the most expensive sales package\n const getPackageTypeUrl = (input: Business.MarketSalesPackage[], salesPackageType: string) => {\n const filteredData = input.filter(x => Business.SalesPackageType[x.type] === salesPackageType);\n const lastSalesPackage = filteredData.reduce((maxPackage, currentPackage) => {\n return currentPackage.price > maxPackage.price ? currentPackage : maxPackage;\n }, filteredData[0]);\n return lastSalesPackage.imageUrls[0];\n }\n\n const packageTypes = Object.keys(Business.SalesPackageType)\n .filter(key => data.map(p => p.type)\n .some(p => p === Business.SalesPackageType[key]))\n .map(salesPackageType => ({\n packageType: Business.SalesPackageType[salesPackageType],\n label: TranslationData.get(`Business.${salesPackageType}.Short`),\n imageUrl: getPackageTypeUrl(data, salesPackageType)\n }));\n\n $(\".client-administrator-upgrade__upgrade-sales-packages-placeholder\").html(this.upgradeSalesPackagesTemplate(packageTypes));\n\n bindHtmlElements();\n }\n }\n}","\nmodule Business {\n\n export class BrandingPackageModel {\n public imageUrl: string;\n public isCropping: boolean;\n\n public isPreviewPrintCooldownActive: boolean;\n public hasAcceptedPreviewPrint: boolean;\n public hasRequestedPreviewPrint: boolean;\n\n private readonly salesPackageTypes: SalesPackageType[];\n\n public constructor(imageUrl,\n isPreviewPrintCooldownActive: boolean,\n hasAcceptedPreviewPrint: boolean,\n hasRequestedPreviewPrint: boolean,\n salesPackageTypes: SalesPackageType[],\n isCropping: boolean) {\n this.imageUrl = imageUrl;\n this.salesPackageTypes = salesPackageTypes;\n this.isCropping = isCropping;\n this.isPreviewPrintCooldownActive = isPreviewPrintCooldownActive;\n this.hasAcceptedPreviewPrint = hasAcceptedPreviewPrint;\n this.hasRequestedPreviewPrint = hasRequestedPreviewPrint;\n }\n\n public static fromDto = (clientMarketSettings: ClientMarketSettings, salesPackageTypes: SalesPackageType[]) => {\n return new BrandingPackageModel(\n clientMarketSettings.brandingPackageImageUrl,\n clientMarketSettings.isPreviewPrintCooldownActive,\n clientMarketSettings.hasAcceptedPreviewPrint,\n clientMarketSettings.hasRequestedPreviewPrint,\n salesPackageTypes,\n false);\n }\n\n public hasCompleted = () => {\n if (hasSalesPackage(this.salesPackageTypes, SalesPackageType.BrandingPackage)) {\n return !_.isEmpty(this.imageUrl) && this.hasRequestedPreviewPrint && this.hasAcceptedPreviewPrint;\n }\n\n return true;\n }\n\n public hasCompletedImageUpload = () => {\n return !_.isEmpty(this.imageUrl);\n }\n\n public updateImage = (imageUrl: string, isCropping: boolean) => {\n this.imageUrl = imageUrl;\n this.isCropping = isCropping;\n this.isPreviewPrintCooldownActive = false;\n this.hasRequestedPreviewPrint = false;\n }\n\n public updatePreviewPrintRequested = () => {\n this.hasRequestedPreviewPrint = true;\n this.isPreviewPrintCooldownActive = true;\n }\n\n public updateFinalPrintRequested = () => {\n this.hasRequestedPreviewPrint = true;\n this.hasAcceptedPreviewPrint = true;\n }\n }\n}","///\n\nmodule Business {\n export class ClientAdministratorStepModel {\n public configurationStepType: ConfigurationStepType;\n public step: number;\n public title: string;\n public status: ConfigurationStatusType;\n public isSlideOpen: boolean;\n\n public constructor(configurationStepType: ConfigurationStepType, salesPackageTypes: SalesPackageType[], labelKey: string, status: ConfigurationStatusType, isSlideOpen: boolean) {\n this.configurationStepType = configurationStepType;\n this.step = ClientAdministratorStepModel.getStepMap(salesPackageTypes)[configurationStepType];\n this.title = TranslationData.get(labelKey);\n this.status = status;\n this.isSlideOpen = isSlideOpen;\n }\n\n private static getStepMap = (salesPackageTypes: SalesPackageType[]) => {\n const $hasPromotionalPackage = hasSalesPackage(salesPackageTypes, SalesPackageType.PromotionalPackage);\n const $hasBrandingPackage = hasSalesPackage(salesPackageTypes, SalesPackageType.BrandingPackage);\n\n let stepAdjustment = 0;\n\n if (!$hasPromotionalPackage) {\n stepAdjustment++;\n }\n\n if (!$hasBrandingPackage) {\n stepAdjustment++;\n }\n\n return {\n [ConfigurationStepType.Administrators]: 1,\n [ConfigurationStepType.MainLeagueName]: 2,\n [ConfigurationStepType.LogoTakeOver]: 3,\n [ConfigurationStepType.LandingsPage]: 4,\n [ConfigurationStepType.RankingLogo]: 5,\n [ConfigurationStepType.PromotionalPackage]: 6,\n [ConfigurationStepType.BrandingPackage]: 7 - stepAdjustment,\n [ConfigurationStepType.MailingText]: 8 - stepAdjustment,\n [ConfigurationStepType.SubLeagues]: 9 - stepAdjustment,\n };\n }\n\n public static toStepAdministrators = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\n return new ClientAdministratorStepModel(ConfigurationStepType.Administrators,\n settings.salesPackageTypes,\n \"Business.Management.Configuration.Step.Administrators\",\n settings.hasCompletedAdmins() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\n isOpen);\n }\n\n public static toStepMainLeagueName = (settings: ClientMarketSettingsModel) => {\n return new ClientAdministratorStepModel(ConfigurationStepType.MainLeagueName,\n settings.salesPackageTypes,\n settings.leagueNameModel.getSlideTitle(),\n settings.hasCompletedLeagueName() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\n false);\n }\n\n public static toStepLogoTakeOver = (settings: ClientMarketSettingsModel, salesUser: SalesUser, isOpen: boolean) => {\n const statusType = !isFeatureSupported(salesUser.packageType, Feature.LogoTakeOver) ?\n ConfigurationStatusType.UnAvailable : settings.hasCompletedLogoTakeOver() ?\n ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete;\n\n return new ClientAdministratorStepModel(ConfigurationStepType.LogoTakeOver,\n settings.salesPackageTypes,\n\n \"Business.Management.Configuration.Step.LogoTakeOver\", statusType, isOpen);\n }\n\n public static toStepLandingsPage = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\n return new ClientAdministratorStepModel(ConfigurationStepType.LandingsPage,\n settings.salesPackageTypes,\n \"Business.Management.Configuration.Step.LandingsPage\",\n settings.hasCompletedLandingPage() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\n isOpen);\n }\n\n public static toStepRankingLogo = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\n return new ClientAdministratorStepModel(ConfigurationStepType.RankingLogo,\n settings.salesPackageTypes,\n \"Business.Management.Configuration.Step.RankingLogo\",\n settings.hasCompletedRankingPage() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\n isOpen);\n }\n\n public static toStepMailingText = (settings: ClientMarketSettingsModel) => {\n return new ClientAdministratorStepModel(ConfigurationStepType.MailingText,\n settings.salesPackageTypes,\n \"Business.Management.Configuration.Step.MailingText\",\n settings.hasCompletedWelcomeEmail() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\n false);\n }\n\n public static toStepSubLeagues = (settings: ClientMarketSettingsModel, salesUser: SalesUser, isOpen: boolean) => {\n const packageType = !isFeatureSupported(salesUser.packageType, Feature.SubLeagues)\n ? ConfigurationStatusType.UnAvailable\n : settings.hasCompletedSubLeagues()\n ? ConfigurationStatusType.Completed\n : ConfigurationStatusType.InComplete;\n\n return new ClientAdministratorStepModel(ConfigurationStepType.SubLeagues,\n settings.salesPackageTypes,\n \"Business.Management.Configuration.Step.SubLeagues\",\n packageType,\n isOpen);\n }\n\n public static toStepPromotionalPackage = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\n return new ClientAdministratorStepModel(ConfigurationStepType.PromotionalPackage,\n settings.salesPackageTypes,\n \"Business.Management.Configuration.Step.PromotionalPackage\",\n settings.hasCompletedPromotionalPackage() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\n isOpen);\n }\n\n public static toStepBrandingPackage = (settings: ClientMarketSettingsModel, isOpen: boolean) => {\n return new ClientAdministratorStepModel(ConfigurationStepType.BrandingPackage,\n settings.salesPackageTypes,\n \"Business.Management.Configuration.Step.BrandingPackage\",\n settings.hasCompletedBrandingPackage() ? ConfigurationStatusType.Completed : ConfigurationStatusType.InComplete,\n isOpen);\n }\n\n public getStatusName = (): string => {\n return ConfigurationStatusType[this.status].toString().toLowerCase();\n }\n\n public updateSlide(isOpen: boolean) {\n this.isSlideOpen = isOpen;\n }\n }\n}","module Business {\n export class LandingPageModel {\n public landingPageLogo: string;\n public laptopImageUrl: string;\n public phoneImageUrl: string;\n public optInRequired?: boolean;\n public packageType: PackageType;\n\n public constructor(landingPageLogo: string, laptopImageUrl: string, phoneImageUrl: string, packageType: PackageType, optInRequired: boolean | undefined) {\n this.landingPageLogo = landingPageLogo;\n this.laptopImageUrl = laptopImageUrl;\n this.phoneImageUrl = phoneImageUrl;\n this.optInRequired = optInRequired;\n this.packageType = packageType;\n }\n\n public static fromDto = (settings: ClientMarketSettings, packageType: PackageType, cdnUrl: string) => {\n return new LandingPageModel(\n settings.landingPageLogo,\n `${cdnUrl}/business/laptop/800x470-laptop-mockup-${settings.gameId}-${uiCulture.split(\"-\")[0]}.png`,\n `${cdnUrl}/business/laptop/iphone-${uiCulture.split(\"-\")[0]}.png`,\n packageType,\n settings.optInRequired);\n }\n\n private hasCompletedOptIn = () => {\n return this.packageType === PackageType.Professional\n ? !_.isNull(this.optInRequired)\n : true;\n }\n\n public hasCompleted = () => {\n return !_.isEmpty(this.landingPageLogo) && this.hasCompletedOptIn();\n }\n\n public updateLandingPage = (landingPageLogo: string, optInRequired: boolean | undefined) => {\n this.landingPageLogo = landingPageLogo;\n this.optInRequired = optInRequired;\n }\n }\n}","///\n\nmodule Business {\n\n export class LeagueNameModel {\n public leagueName: string;\n public packageType: PackageType;\n\n public constructor(leagueName: string, packageType: PackageType) {\n this.leagueName = leagueName;\n this.packageType = packageType;\n }\n\n public static fromDto = (clientMarketSettings: ClientMarketSettings, packageType: PackageType) => {\n return new LeagueNameModel(clientMarketSettings.leagueName, packageType);\n }\n\n public updateLeagueName = (leagueName: string) => {\n this.leagueName = leagueName;\n }\n\n public hasCompleted = (): boolean => {\n return this.leagueName != null && this.leagueName !== \"\";\n }\n\n public getSlideTitle = (): string => {\n return this.packageType === PackageType.Professional ?\n TranslationData.get(\"Business.Management.Configuration.Step.Professional\") :\n TranslationData.get(\"Business.Management.Configuration.Step.CompanyOrBusiness\");\n }\n\n public getTitle = (): string => {\n return this.packageType === PackageType.Professional ?\n TranslationData.get(\"Business.LeagueTitle.Professional\") :\n TranslationData.get(\"Business.LeagueTitle.CompanyOrBusiness\");\n }\n }\n}","///\n\nmodule Business {\n\n export class LogoTakeOverModel {\n public imageSrc: string;\n public backgroundColor: string;\n public headerIconColorType: HeaderIconColorType;\n public packageType: PackageType;\n\n public constructor(imageSrc: string, backgroundColor: string, headerIconColorType: HeaderIconColorType, packageType: PackageType) {\n this.imageSrc = imageSrc;\n this.backgroundColor = backgroundColor;\n this.headerIconColorType = headerIconColorType;\n this.packageType = packageType;\n }\n\n public static fromDto = (clientMarketSettings: ClientMarketSettings, packageType: PackageType) => {\n return new LogoTakeOverModel(clientMarketSettings.headerLogo, clientMarketSettings.headerBackgroundColor,\n clientMarketSettings.headerIconColorType, packageType);\n }\n\n public updateImage = (imageUrl: string): void => {\n this.imageSrc = imageUrl;\n }\n\n public updateBackgroundColor = (color: string): void => {\n this.backgroundColor = color;\n }\n\n public updateHeaderIcon = (type: HeaderIconColorType): void => {\n this.headerIconColorType = type;\n }\n\n public isAvailable = () => {\n return isFeatureSupported(this.packageType, Feature.LogoTakeOver);\n }\n\n public isBlack(): boolean {\n return this.headerIconColorType === HeaderIconColorType.Black;\n }\n\n public isWhite(): boolean {\n return this.headerIconColorType === HeaderIconColorType.White;\n }\n\n public hasCompleted(): boolean {\n return this.imageSrc != null &&\n this.imageSrc !== \"\" &&\n this.backgroundColor != null &&\n this.backgroundColor !== \"\" &&\n this.headerIconColorType != null;\n }\n }\n}","module Business {\n\n export class MultiSubLeaguesModel {\n public marketId: number;\n public cdnUrl: string;\n public culture: string;\n public packageType: PackageType;\n public subLeagueIsAllowedToChangeRankingLogo: boolean;\n public subLeagueIsAllowedToChangeEmail: boolean;\n public subLeagueIsAllowedToChangeName: boolean;\n public hasSaved: boolean;\n\n public constructor(marketId: number, packageType: PackageType,\n subLeagueIsAllowedToChangeRankingLogo: boolean,\n subLeagueIsAllowedToChangeEmail: boolean,\n subLeagueIsAllowedToChangeName: boolean) {\n this.marketId = marketId;\n this.packageType = packageType;\n this.subLeagueIsAllowedToChangeRankingLogo = subLeagueIsAllowedToChangeRankingLogo ?? false;\n this.subLeagueIsAllowedToChangeEmail = subLeagueIsAllowedToChangeEmail ?? false;\n this.subLeagueIsAllowedToChangeName = subLeagueIsAllowedToChangeName ?? false;\n this.hasSaved = subLeagueIsAllowedToChangeRankingLogo !== null && subLeagueIsAllowedToChangeEmail !== null && subLeagueIsAllowedToChangeName !== null\n }\n\n public static fromDto = (marketId: number, packageType: PackageType,\n subLeagueIsAllowedToChangeRankingLogo: boolean,\n subLeagueIsAllowedToChangeEmail: boolean,\n subLeagueIsAllowedToChangeName: boolean) => {\n return new MultiSubLeaguesModel(marketId,\n packageType,\n subLeagueIsAllowedToChangeRankingLogo,\n subLeagueIsAllowedToChangeEmail,\n subLeagueIsAllowedToChangeName);\n }\n\n public setChangeRankingLogo = (isAllowed: boolean) => {\n this.subLeagueIsAllowedToChangeRankingLogo = isAllowed;\n }\n\n public setChangeEmail = (isAllowed: boolean) => {\n this.subLeagueIsAllowedToChangeEmail = isAllowed;\n }\n\n public setChangeName = (isAllowed: boolean) => {\n this.subLeagueIsAllowedToChangeName = isAllowed;\n }\n\n public isAvailable = () => {\n return isFeatureSupported(this.packageType, Feature.SubLeagues);\n }\n\n public subLeagueIsNotAllowedToChangeRankingLogo = () => {\n return this.subLeagueIsAllowedToChangeRankingLogo != null ? !this.subLeagueIsAllowedToChangeRankingLogo : false;\n }\n\n public subLeagueIsNotAllowedToChangeEmail = () => {\n return this.subLeagueIsAllowedToChangeEmail != null ? !this.subLeagueIsAllowedToChangeEmail : false;\n }\n\n public subLeagueIsNotAllowedToChangeName = () => {\n return this.subLeagueIsAllowedToChangeName != null ? !this.subLeagueIsAllowedToChangeName : false;\n }\n\n public hasCompleted = () => {\n return this.subLeagueIsAllowedToChangeRankingLogo !== null && this.subLeagueIsAllowedToChangeEmail !== null && this.subLeagueIsAllowedToChangeName !== null && this.hasSaved;\n }\n }\n}","\nmodule Business {\n\n export class PromotionalPackageModel {\n public imageUrl: string;\n public cropped: boolean;\n public hasNewPromotionalPackageLogoToSend: boolean\n\n private readonly salesPackageTypes: SalesPackageType[];\n\n public constructor(imageUrl, salesPackageTypes, cropped: boolean, hasNewPromotionalPackageLogoToSend: boolean) {\n this.imageUrl = imageUrl;\n this.salesPackageTypes = salesPackageTypes;\n this.hasNewPromotionalPackageLogoToSend = hasNewPromotionalPackageLogoToSend\n this.cropped = cropped;\n }\n\n public static fromDto = (clientMarketSettings: ClientMarketSettings, salesPackageTypes: SalesPackageType[]) => {\n return new PromotionalPackageModel(clientMarketSettings.promotionalPackageImageUrl, salesPackageTypes, true, clientMarketSettings.hasNewPromotionalPackageLogoToSend);\n }\n\n public hasCompleted = () => {\n if (this.salesPackageTypes.indexOf(SalesPackageType.PromotionalPackage) > -1) {\n return !_.isEmpty(this.imageUrl) && !this.hasNewPromotionalPackageLogoToSend;\n }\n\n return true;\n }\n\n public updateImage = (imageUrl: string, cropped: boolean) => {\n this.imageUrl = imageUrl;\n this.cropped = cropped;\n }\n }\n}","\nmodule Business {\n\n export class RankingLogoModel {\n public imageUrl: string;\n public marketName: string;\n public leagueName: string;\n\n public constructor(imageUrl: string, marketName: string, leagueName: string) {\n this.imageUrl = imageUrl;\n this.marketName = marketName;\n this.leagueName = leagueName;\n }\n\n public static fromDto = (clientMarketSettings: ClientMarketSettings, clientMarket: ClientMarket) => {\n return new RankingLogoModel(clientMarketSettings.rankingPageLogo, clientMarket.marketName,\n clientMarketSettings.leagueName);\n }\n\n public hasCompleted = () => {\n return !_.isEmpty(this.imageUrl);\n }\n\n public updateImageUrl = (imageUrl: string) => {\n this.imageUrl = imageUrl;\n }\n\n public updateSubLeagueName = (leagueName: string) => {\n this.leagueName = leagueName;\n }\n }\n}","module Business {\n export class WelcomeEmailModel {\n public title: string;\n public body: string;\n public imgUrl: string;\n public logoUrl: string;\n public hasSeenOrChanged: boolean;\n public hasUnsavedChanges: boolean;\n\n public constructor(title: string, body: string, imgUrl: string, logoUrl: string, hasSeenOrChanged: boolean) {\n this.title = title;\n this.body = body;\n this.imgUrl = imgUrl;\n this.logoUrl = logoUrl;\n this.hasSeenOrChanged = hasSeenOrChanged;\n }\n\n public static fromDto = (settings: ClientMarketSettings) => {\n return new WelcomeEmailModel(\n settings.welcomeEmailTitle,\n settings.welcomeEmailBody,\n settings.welcomeEmailImageUrl,\n settings.landingPageLogo,\n settings.welcomeEmailHasSeenOrChanged);\n }\n\n public update(title: string, body: string) {\n this.title = title;\n this.body = body;\n }\n\n public hasEditedButNotSaved(bool: boolean) {\n this.hasUnsavedChanges = bool;\n }\n\n public complete() {\n this.hasSeenOrChanged = true;\n }\n\n public hasCompleted() {\n return this.hasSeenOrChanged;\n }\n\n public updateRankingPageLogo = (rankingPageLogo: string): void => {\n this.logoUrl = rankingPageLogo;\n }\n }\n}","module ClientAdministrator {\n import cropperConfig = Business.cropperConfig;\n export class AdvertisementsController {\n private advertisementsRenderer: Business.AdvertisementsRenderer;\n private advertisementRepository: Business.AdvertisementRepository;\n private platformRepository: Platform.Repository;\n\n private advertisements: Business.Advertisements;\n private selectedAdvertisementId: number | null;\n private hasUnsavedChanges: boolean;\n private gameId: number | null;\n private isCropping: boolean;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, private readonly marketId: number) {\n this.advertisementsRenderer = new Business.AdvertisementsRenderer(cdnUrl);\n this.advertisementRepository = new Business.AdvertisementRepository(salesApiSettings);\n this.platformRepository = new Platform.Repository(platformApiSettings, marketId);\n }\n\n public initialize = (isFeatureSupported: boolean) => {\n if (!isFeatureSupported) {\n this.advertisementsRenderer.render(\"unavailable\", () => {\n this.bindUpgradeButton();\n });\n return;\n }\n\n $.when(\n this.advertisementRepository.get(this.marketId),\n this.platformRepository.getGameInfo(this.marketId),\n ).done((advertisements: Business.Advertisements, gameInfo: Platform.GameInfo) => {\n this.advertisements = advertisements\n this.gameId = gameInfo.gameId;\n\n this.advertisementsRenderer.render(\"available\");\n\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\n this.bindClickOnAdvertisement();\n this.bindToggleActive();\n this.bindInput();\n });\n\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\n this.bindClickOnActive();\n });\n\n this.advertisementsRenderer.renderExampleAdvertisement(\"\", `/business/banners/709x1418-ad-mockup-${this.gameId}.png`, () => {\n this.bindNewAdvertisementButton();\n });\n\n this.advertisementsRenderer.renderAdvertisementActivateButton(false, () => {\n this.bindToggleActive();\n })\n\n this.advertisementsRenderer.renderHeaderImage(null, () => {\n this.bindChangeImage();\n this.bindSaveButton();\n this.bindDeleteButton();\n });\n\n const activeAdvertisement = advertisements.getActive()\n if (activeAdvertisement) {\n this.setFormData(activeAdvertisement.id, activeAdvertisement.imageLink, activeAdvertisement.imageName, activeAdvertisement.imagePath, activeAdvertisement.isActive);\n const elem = $(`.advertisements__uploaded-advertisement-body[data-advertisement-id=\"${activeAdvertisement.id}\"]`);\n elem.addModifiers(\"selected\");\n }\n })\n }\n\n private bindUpgradeButton = () => {\n $(\".advertisements__button-upgrade\").on(\"click\", () => {\n $(`.client-administrator__tab[data-tab-id=\"${Business.ClientAdminTabType.Upgrade}\"]`).click();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n })\n }\n\n private bindChangeImage = () => {\n $(\".advertisements__image-upload\").unbind()\n $(\".advertisements__image-upload\").on(\"click\", event => {\n $(\".advertisements__image\").click();\n });\n\n $(\".advertisements__image\").unbind();\n $(\".advertisements__image\").on(\"change\", event => {\n const elem = $(event.currentTarget);\n const image = elem.prop(\"files\")[0];\n if (!image)\n return\n\n const validImageTypes = [\"image/jpg\", \"image/jpeg\", \"image/png\", \"image/gif\"];\n if (!_.contains(validImageTypes, image?.type)) {\n NotificationBar.Display(TranslationData.get(\"Business.Generic.WrongFileFormat\"));\n return;\n }\n this.hasUnsavedChanges = true;\n var formData = new FormData();\n formData.append(\"fileData\", image);\n $(\".advertisements__new-advertisement-card\").addModifiers(\"preload\");\n this.advertisementRepository.uploadHeaderImage(this.marketId, formData).done(apiResult => {\n if (apiResult.isSuccess()) {\n this.advertisementsRenderer.renderHeaderImage(apiResult.content);\n this.advertisementsRenderer.renderExampleAdvertisement(apiResult.content, `/business/banners/709x1418-ad-mockup-${this.gameId}.png`);\n\n if (image?.type != \"image/gif\") {\n var $image_elem = $(\".advertisements__uploaded-image\")\n $image_elem.cropper(cropperConfig(image, {\n preview: \".advertisements__preview-advertisement-cropper\",\n }));\n\n $(\".advertisements__hover\").hide()\n $(\".advertisements__preview-advertisement-image\").hide()\n $(\".advertisements__image-upload\").unbind(\"click\")\n this.isCropping = true\n }\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $(\".advertisements__new-advertisement-card\").removeModifiers(\"preload\");\n })\n })\n }\n\n private getNewAdvertisementFromForm = (advertisementId: number, isActive: boolean): Business.Advertisement => {\n const nameElem = $(\".advertisements__input--title\")\n const name = nameElem.val()\n const linkElem = $(\".advertisements__input--link\")\n const link = linkElem.val()\n\n const imagePath = $(\".advertisements__uploaded-image\").data(\"image-path\");\n\n const advertisement = new Business.Advertisement(advertisementId, name, imagePath, link, isActive)\n return advertisement\n }\n\n private validateAdvertisement = (): boolean => {\n let isValid = true;\n\n const nameElem = $(\".advertisements__input--title\")\n const name = nameElem.val()\n\n const linkElem = $(\".advertisements__input--link\")\n const link = linkElem.val()\n\n const imageElem = $(\".advertisements__uploaded-image\")\n const image = imageElem.attr(\"src\")\n\n if (!name) {\n nameElem.addModifiers(\"invalid\");\n isValid = false;\n } else {\n nameElem.removeModifiers(\"invalid\");\n }\n\n if (!isValidHttpUrl(link)) {\n linkElem.addModifiers(\"invalid\");\n isValid = false;\n } else {\n linkElem.removeModifiers(\"invalid\");\n }\n\n if (!image) {\n imageElem.addModifiers(\"invalid\");\n isValid = false;\n } else {\n imageElem.removeModifiers(\"invalid\");\n }\n\n return isValid\n }\n\n private bindSaveButton = (): void => {\n $(\".advertisements__button--save\").unbind();\n $(\".advertisements__button--save\").on(\"click\", () => {\n if (!this.validateAdvertisement()) return;\n var elem = $(\".advertisements__image\")\n const image = elem.prop(\"files\")[0];\n if (this.isCropping) {\n var $image_elem = $(\".advertisements__uploaded-image\")\n var cropper = $image_elem.data('cropper');\n cropper.getCroppedCanvas().toBlob((blob) => {\n\n var formData = new FormData();\n formData.append(\"fileData\", blob, \"cropped_image.jpg\");\n $(\".advertisements__new-advertisement-card\").addModifiers(\"preload\");\n this.advertisementRepository.uploadHeaderImage(this.marketId, formData).done(apiResult => {\n if (apiResult.isSuccess()) {\n this.advertisementsRenderer.renderHeaderImage(apiResult.content);\n this.advertisementsRenderer.renderExampleAdvertisement(apiResult.content, `/business/banners/709x1418-ad-mockup-${this.gameId}.png`);\n this.saveForm()\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $(\".advertisements__new-advertisement-card\").removeModifiers(\"preload\");\n if (this.isCropping) {\n $(\".advertisements__hover\").show()\n $(\".advertisements__preview-advertisement-image\").show()\n $(\".advertisements__image-upload\").on(\"click\", event => {\n $(\".advertisements__image\").click();\n });\n this.isCropping = false\n }\n\n })\n }, image?.type)\n } else {\n this.saveForm()\n }\n });\n }\n\n private saveForm = () => {\n const existingAdvertisement = this.advertisements.getById(this.selectedAdvertisementId)\n const advertisement = this.getNewAdvertisementFromForm(this.selectedAdvertisementId ?? 0, existingAdvertisement?.isActive ?? false)\n\n if (this.advertisements.count() >= 6 && !existingAdvertisement) {\n NotificationBar.Display(TranslationData.get(\"Business.Mangager.MaxItems\"));\n return\n }\n\n this.advertisementRepository.createOrUpdate(this.marketId, advertisement).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Advertisement.Saved\");\n this.advertisements = Business.Advertisements.fromJson(apiResult.content);\n\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\n this.bindClickOnAdvertisement();\n this.bindNewAdvertisementButton();\n this.bindToggleActive();\n this.resetFormData();\n })\n\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\n this.bindClickOnActive();\n });\n this.hasUnsavedChanges = false;\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private bindNewAdvertisementButton = () => {\n $(\".advertisements__button--new\").unbind()\n $(\".advertisements__button--new\").on(\"click\", event => {\n if (this.advertisements.count() < 6) {\n if (!this.hasUnsavedChanges) {\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\n this.resetFormData();\n return;\n }\n this.showSaveAdvertisementPopup(() => {\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\n this.resetFormData();\n }, () => {\n $(\".advertisements__button--save\").click()\n })\n\n } else {\n NotificationBar.Display(TranslationData.get(\"Business.Mangager.MaxItems\"));\n }\n });\n\n }\n\n private bindDeleteButton = () => {\n $(\".advertisements__button--delete\").unbind();\n $(\".advertisements__button--delete\").on(\"click\", event => {\n if (!this.selectedAdvertisementId) return\n this.showDeleteAdvertisementPopup(this.selectedAdvertisementId);\n })\n }\n\n private setFormData(id: number, imageLink: string, imageName: string, imagePath: string, isActive: boolean) {\n $(\".advertisements__image\").val(\"\")\n $(\".advertisements__input--title\").removeModifiers(\"invalid\").val(imageName);\n $(\".advertisements__input--link\").removeModifiers(\"invalid\").val(imageLink);\n\n this.selectedAdvertisementId = id;\n this.advertisementsRenderer.renderHeaderImage(imagePath);\n this.advertisementsRenderer.renderExampleAdvertisement(imagePath, `/business/banners/709x1418-ad-mockup-${this.gameId}.png`, () => {\n this.bindNewAdvertisementButton();\n });\n this.advertisementsRenderer.renderAdvertisementActivateButton(isActive, () => {\n this.bindToggleActive();\n })\n\n }\n\n private resetFormData() {\n this.setFormData(0, \"\", \"\", \"\", false)\n this.advertisementsRenderer.renderExampleAdvertisement(\"\", `/business/banners/709x1418-ad-mockup-${this.gameId}.png`, () => {\n this.bindNewAdvertisementButton();\n });\n if (this.isCropping) {\n $(\".advertisements__hover\").show()\n $(\".advertisements__preview-advertisement-image\").show()\n $(\".advertisements__image-upload\").on(\"click\", event => {\n $(\".advertisements__image\").click();\n });\n this.isCropping = false\n }\n }\n\n private bindClickOnAdvertisement = (): void => {\n $(\".advertisements__uploaded-advertisement-body\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n if (!this.hasUnsavedChanges) {\n return this.switchAdvertisement(elem);\n }\n\n this.showSaveAdvertisementPopup(() => {\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\n this.resetFormData();\n }, () => {\n $(\".advertisements__button--save\").click()\n });\n })\n }\n\n private switchAdvertisement = (elem: JQuery) => {\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\n elem.addModifiers(\"selected\");\n\n const advertisementId = +elem.data(\"advertisement-id\")\n const advertisement = this.advertisements.getById(advertisementId)\n\n if (!advertisement) return;\n this.setFormData(advertisement.id, advertisement.imageLink, advertisement.imageName, advertisement.imagePath, advertisement.isActive);\n }\n\n private showDeleteAdvertisementPopup = (advertisementId: number) => {\n $.newPopup(\"remove-advertisement-popup\");\n $.togglePopup(\"#remove-advertisement-popup\", true, true);\n\n $(\"#remove-advertisement-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.Advertisement.DeleteConfirmation\")?.format(this.advertisements.getById(advertisementId)?.imageName));\n\n $(\"#remove-advertisement-popup .popup-content-body-close-button,#remove-advertisement-popup .popup-content-header__close,#remove-advertisement-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#remove-advertisement-popup\", false, true);\n });\n\n $(\"#remove-advertisement-popup .popup-content-body-remove-button\").on(\"click\", () => {\n $(\".advertisements__new-advertisement-card\").addModifiers(\"preload\");\n this.advertisementRepository.delete(this.marketId, advertisementId).done((apiResult) => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Advertisement.Removed\");\n this.advertisements = Business.Advertisements.fromJson(apiResult.content)\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\n this.bindClickOnAdvertisement()\n this.bindNewAdvertisementButton();\n this.bindToggleActive();\n this.resetFormData();\n })\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\n this.bindToggleActive();\n this.bindClickOnActive();\n })\n }\n else {\n NotificationBar.Display(apiResult.message === '' ? TranslationData.get(\"Errors.UserNotAllowed.Message\") : apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $(\".advertisements__new-advertisement-card\").removeModifiers(\"preload\");\n $.togglePopup(\"#remove-advertisement-popup\", false, true);\n });\n });\n }\n\n private showSaveAdvertisementPopup = (onDoNotSaveClick: Function, onSaveClick: Function) => {\n $.newPopup(\"save-advertisement-popup\");\n $.togglePopup(\"#save-advertisement-popup\", true, true);\n\n $(\"#save-advertisement-popup .popup-content-body-do-not-save-button\").on(\"click\", () => {\n $.togglePopup(\"#save-advertisement-popup\", false, true);\n onDoNotSaveClick();\n this.hasUnsavedChanges = false;\n });\n\n $(\"#save-advertisement-popup .popup-content-header__close,#save-advertisement-popup .popup-content-body-cancel-button,#save-advertisement-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#save-advertisement-popup\", false, true);\n });\n\n $(\"#save-advertisement-popup .popup-content-body-save-button\").on(\"click\", () => {\n $.togglePopup(\"#save-advertisement-popup\", false, true);\n onSaveClick();\n });\n }\n\n private bindInput = () => {\n $(\".advertisements__input--title\").unbind();\n $(\".advertisements__input--title\").on(\"input\", event => {\n this.hasUnsavedChanges = true\n })\n $(\".advertisements__input--link\").unbind();\n $(\".advertisements__input--link\").on(\"keyup\", event => {\n this.hasUnsavedChanges = true\n $(event.currentTarget).val((_, value) => formatUrlWithProtocol(value));\n })\n\n }\n\n private bindToggleActive = () => {\n $(\".advertisements__button--activate\").unbind()\n $(\".advertisements__button--activate\").on(\"click\", () => {\n const existingAdvertisement = this.advertisements.getById(this.selectedAdvertisementId);\n\n if (!this.validateAdvertisement()) return;\n\n if (!existingAdvertisement) {\n NotificationBar.Display(TranslationData.get(\"Common.PleaseSave\"));\n return;\n }\n\n if (existingAdvertisement.isActive) {\n const advertisement = this.getNewAdvertisementFromForm(existingAdvertisement.id, false)\n this.advertisementRepository.createOrUpdate(this.marketId, advertisement).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Advertisement.Saved\");\n this.advertisements = Business.Advertisements.fromJson(apiResult.content);\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\n this.bindClickOnActive();\n })\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\n this.bindClickOnAdvertisement();\n this.bindInput();\n const elem = $(`.advertisements__uploaded-advertisement-body[data-advertisement-id=\"${existingAdvertisement.id}\"]`);\n elem.addModifiers(\"selected\");\n });\n this.hasUnsavedChanges = false;\n\n this.advertisementsRenderer.renderAdvertisementActivateButton(!existingAdvertisement.isActive, () => {\n this.bindToggleActive();\n })\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n else {\n $(\".advertisements__button--activate\").val(TranslationData.get(\"Common.Activate\"))\n const advertisement = this.getNewAdvertisementFromForm(existingAdvertisement.id, true);\n this.advertisementRepository.createOrUpdate(this.marketId, advertisement).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Advertisement.Saved\");\n this.advertisements = Business.Advertisements.fromJson(apiResult.content);\n this.advertisementsRenderer.renderActiveAdvertisement(this.advertisements, () => {\n this.bindClickOnActive();\n });\n this.advertisementsRenderer.renderUploadedAdvertisements(this.advertisements, () => {\n this.bindClickOnAdvertisement();\n this.bindInput();\n const elem = $(`.advertisements__uploaded-advertisement-body[data-advertisement-id=\"${advertisement.id}\"]`);\n elem.addModifiers(\"selected\");\n });\n this.hasUnsavedChanges = false;\n this.advertisementsRenderer.renderAdvertisementActivateButton(!existingAdvertisement.isActive, () => {\n this.bindToggleActive();\n })\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n })\n }\n\n private bindClickOnActive = () => {\n $(\".advertisements__active-advertisement-body\").on(\"click\", () => {\n const currentActive = this.advertisements.getActive()\n this.setFormData(currentActive.id, currentActive.imageLink, currentActive.imageName, currentActive.imagePath, currentActive.isActive)\n\n $(\".advertisements__uploaded-advertisement-body\").removeModifiers(\"selected\");\n const elem = $(`[data-advertisement-id=\"${currentActive.id}\"]`)\n elem.addModifiers(\"selected\");\n })\n }\n }\n}","module Business {\n import MarketingTabType = Business.MarketingTabType;\n\n export class AdvertisementsRenderer {\n private advertisementTemplate: HandlebarsTemplateDelegate;\n private advertisementsTemplate: HandlebarsTemplateDelegate;\n private advertisementsNotAvailableTemplate: HandlebarsTemplateDelegate;\n private advertisementsHeaderImageTemplate: HandlebarsTemplateDelegate;\n private advertisementsActiveTemplate: HandlebarsTemplateDelegate;\n private advertisementsExampleTemplate: HandlebarsTemplateDelegate;\n private advertisementsUploadedTemplate: HandlebarsTemplateDelegate;\n private advertisementsActivateButton: HandlebarsTemplateDelegate;\n\n constructor(private readonly cdnUrl: string) { }\n\n public render = (style: \"available\" | \"unavailable\", callback?: Function): void => {\n if (this.advertisementsTemplate == null) {\n this.advertisementsTemplate = Handlebars.compile($(\"#marketing-advertisements-template\").html());\n }\n\n if (this.advertisementsNotAvailableTemplate == null) {\n this.advertisementsNotAvailableTemplate = Handlebars.compile($(\"#marketing-advertisements-not-available-template\").html());\n Handlebars.registerPartial(\"advertisementsNotAvailablePartial\", this.advertisementsNotAvailableTemplate);\n }\n\n const model = { cdnUrl: this.cdnUrl, isAvailable: style === \"available\" };\n\n const slideContainer = $(`.marketing__slide[data-slide-id=\"${MarketingTabType.Advertisements}\"]`);\n slideContainer.find(\".marketing-content-placeholder\").html(this.advertisementsTemplate(model));\n\n callback?.();\n }\n\n public renderHeaderImage = (imagePath: string, callback?: Function): void => {\n if (this.advertisementsHeaderImageTemplate == null) {\n this.advertisementsHeaderImageTemplate = Handlebars.compile($(\"#marketing-advertisements-header-image-template\").html());\n }\n\n $(\".advertisements__upload-image\").html(this.advertisementsHeaderImageTemplate({ imagePath, hasImageUrl: !_.isEmpty(imagePath), cdnUrl: this.cdnUrl }));\n\n callback?.();\n }\n\n public renderActiveAdvertisement = (advertisements: Business.Advertisements, callback?: Function): void => {\n if (this.advertisementsActiveTemplate == null) {\n this.advertisementsActiveTemplate = Handlebars.compile($(\"#marketing-advertisements-active-template\").html());\n }\n\n const activeAdvertisement = advertisements.getActive();\n const model = { ...activeAdvertisement, cdnUrl: this.cdnUrl, hasActiveAdvertisement: activeAdvertisement != null };\n $(\".advertisements__active-advertisements-placeholder\").html(this.advertisementsActiveTemplate(model));\n\n if (activeAdvertisement != null) {\n $(\".advertisements__active-advertisement-active-text\").removeModifiers(\"inactive\")\n $(\".advertisements__active-advertisement-body\").addModifiers(\"active\")\n } else {\n $(\".advertisements__active-advertisement-active-text\").addModifiers(\"inactive\")\n $(\".advertisements__active-advertisement-body\").removeModifiers(\"active\")\n }\n\n callback?.();\n }\n\n public renderExampleAdvertisement = (imagePath: string, mockImagePath: string, callback?: Function): void => {\n if (this.advertisementsExampleTemplate == null) {\n this.advertisementsExampleTemplate = Handlebars.compile($(\"#marketing-advertisements-example-template\").html());\n }\n\n $(\".advertisements__example-advertisements-placeholder\").html(this.advertisementsExampleTemplate({ imagePath, hasImageUrl: !_.isEmpty(imagePath), cdnUrl: this.cdnUrl, mockImagePath }));\n\n callback?.();\n }\n\n public renderUploadedAdvertisements = (advertisements: Business.Advertisements, callback?: Function): void => {\n if (this.advertisementsUploadedTemplate == null) {\n this.advertisementsUploadedTemplate = Handlebars.compile($(\"#marketing-advertisements-uploaded-template\").html());\n }\n if (this.advertisementTemplate == null) {\n this.advertisementTemplate = Handlebars.compile($(\"#marketing-advertisement-template\").html())\n Handlebars.registerPartial(\"advertisementPartial\", this.advertisementTemplate);\n }\n\n const model = advertisements.map(a => ({ ...a, cdnUrl: this.cdnUrl }));\n $(\".advertisements__uploaded-advertisements-placeholder\").html(this.advertisementsUploadedTemplate(model));\n\n callback?.();\n }\n\n public renderAdvertisementActivateButton = (isActive: boolean, callback?: Function): void => {\n if (this.advertisementsActivateButton == null) {\n this.advertisementsActivateButton = Handlebars.compile($(\"#marketing-advertisement-activate-button\").html())\n }\n $(\".advertisements__activate-button-placeholder\").html(this.advertisementsActivateButton({ isActive }));\n\n callback?.();\n }\n }\n}","module ClientAdministrator {\n import cropperConfig = Business.cropperConfig;\n export class InterstitialsController {\n private interstitialsRenderer: Business.InterstitialsRenderer;\n private interstitialRepository: Business.InterstitialRepository;\n\n private interstitials: Business.Interstitials;\n private selectedInterstitialId: number | null;\n private hasUnsavedChanges: boolean;\n private isCropping: boolean;\n\n constructor(private readonly cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, private readonly marketId: number) {\n this.interstitialsRenderer = new Business.InterstitialsRenderer(cdnUrl);\n this.interstitialRepository = new Business.InterstitialRepository(salesApiSettings);\n }\n\n public initialize = (isFeatureSupported: boolean) => {\n if (!isFeatureSupported) {\n this.interstitialsRenderer.render(\"unavailable\", () => {\n this.bindUpgradeButton();\n });\n\n return;\n }\n\n $.when(this.interstitialRepository.get(this.marketId)).done((interstitials: Business.Interstitials) => {\n this.interstitials = interstitials;\n\n this.interstitialsRenderer.render(\"available\");\n\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\n this.bindClickOnInterstitial();\n this.bindToggleActive();\n this.bindInput();\n });\n\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\n this.bindClickOnActive();\n });\n\n this.interstitialsRenderer.renderExampleInterstitial(\"\", () => {\n this.bindNewInterstitialButton();\n });\n\n this.interstitialsRenderer.renderInterstitialActivateButton(false, () => {\n this.bindToggleActive();\n })\n\n this.interstitialsRenderer.renderHeaderImage(null, () => {\n this.bindChangeImage();\n this.bindSaveButton();\n this.bindDeleteButton();\n });\n\n const activeInterstitial = interstitials.getActive();\n\n if (activeInterstitial) {\n this.setFormData(activeInterstitial.id, activeInterstitial.imageLink, activeInterstitial.imageName, activeInterstitial.imagePath, activeInterstitial.isActive)\n const elem = $(`.interstitials__uploaded-interstitial-body[data-interstitial-id=\"${activeInterstitial.id}\"]`);\n elem.addModifiers(\"selected\");\n }\n })\n }\n\n private bindUpgradeButton = () => {\n $(\".interstitials__button-upgrade\").on(\"click\", () => {\n $(`.client-administrator__tab[data-tab-id=\"${Business.ClientAdminTabType.Upgrade}\"]`).click();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n });\n }\n\n private bindChangeImage = () => {\n $(\".interstitials__image-upload\").unbind();\n $(\".interstitials__image-upload\").on(\"click\", event => {\n $(\".interstitials__image\").click();\n });\n\n $(\".interstitials__image\").unbind();\n $(\".interstitials__image\").on(\"change\", event => {\n const elem = $(event.currentTarget);\n const image = elem.prop(\"files\")[0];\n\n if (!image) {\n return;\n }\n\n const validImageTypes = [\"image/jpg\", \"image/jpeg\", \"image/png\", \"image/gif\"];\n if (!_.contains(validImageTypes, image?.type)) {\n NotificationBar.Display(TranslationData.get(\"Business.Generic.WrongFileFormat\"));\n return;\n }\n\n this.hasUnsavedChanges = true;\n var formData = new FormData();\n formData.append(\"fileData\", image);\n $(\".interstitials__new-interstitial-card\").addModifiers(\"preload\");\n\n this.interstitialRepository.uploadHeaderImage(this.marketId, formData).done(apiResult => {\n if (apiResult.isSuccess()) {\n this.interstitialsRenderer.renderHeaderImage(apiResult.content)\n this.interstitialsRenderer.renderExampleInterstitial(apiResult.content)\n\n if (image?.type != \"image/gif\") {\n var $image_elem = $(\".interstitials__uploaded-image\")\n $image_elem.cropper(cropperConfig(image, {\n preview: \".interstitials__preview-interstitial-cropper\",\n }));\n $(\".interstitials__hover\").hide()\n $(\".interstitials__preview-interstitial-image\").hide()\n $(\".interstitials__image-upload\").unbind(\"click\")\n this.isCropping = true\n }\n\n } else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $(\".interstitials__new-interstitial-card\").removeModifiers(\"preload\");\n });\n })\n }\n\n private getNewInterstitialFromForm = (interstitialId: number, isActive: boolean): Business.Interstitial => {\n const nameElem = $(\".interstitials__input--title\");\n const name = nameElem.val();\n const linkElem = $(\".interstitials__input--link\");\n const link = linkElem.val();\n const imagePath = $(\".interstitials__uploaded-image\").data(\"image-path\");\n\n const interstitial = new Business.Interstitial(interstitialId, name, imagePath, link, isActive);\n return interstitial;\n }\n\n private validateInterstitial = (): boolean => {\n let isValid = true;\n\n const nameElem = $(\".interstitials__input--title\");\n const name = nameElem.val();\n\n const linkElem = $(\".interstitials__input--link\");\n const link = linkElem.val();\n\n const imageElem = $(\".interstitials__uploaded-image\");\n const image = imageElem.attr(\"src\");\n\n if (!name) {\n nameElem.addModifiers(\"invalid\");\n isValid = false;\n } else {\n nameElem.removeModifiers(\"invalid\");\n }\n if (!isValidHttpUrl(link)) {\n linkElem.addModifiers(\"invalid\");\n isValid = false;\n } else {\n linkElem.removeModifiers(\"invalid\");\n }\n\n if (!image) {\n imageElem.addModifiers(\"invalid\");\n isValid = false;\n } else {\n imageElem.removeModifiers(\"invalid\");\n }\n\n return isValid;\n }\n\n private bindSaveButton = (): void => {\n $(\".interstitials__button--save\").unbind();\n $(\".interstitials__button--save\").on(\"click\", () => {\n if (!this.validateInterstitial()) {\n return;\n }\n const elem = $(\".interstitials__image\")\n const image = elem.prop(\"files\")[0]\n if (this.isCropping) {\n var $image_elem = $(\".interstitials__uploaded-image\");\n var cropper = $image_elem.data('cropper');\n cropper.getCroppedCanvas().toBlob((blob) => {\n\n var formData = new FormData();\n formData.append(\"fileData\", blob, \"cropped_image.jpg\");\n $(\".interstitials__new-interstitial-card\").addModifiers(\"preload\");\n this.interstitialRepository.uploadHeaderImage(this.marketId, formData).done(apiResult => {\n if (apiResult.isSuccess()) {\n this.interstitialsRenderer.renderHeaderImage(apiResult.content)\n this.interstitialsRenderer.renderExampleInterstitial(apiResult.content)\n\n this.saveForm()\n } else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n if (this.isCropping) {\n $(\".interstitials__new-interstitial-card\").removeModifiers(\"preload\");\n $(\".interstitials__hover\").show()\n $(\".interstitials__image-upload\").on(\"click\", event => {\n $(\".interstitials__image\").click();\n });\n this.isCropping = false\n }\n });\n }, image?.type)\n } else {\n this.saveForm()\n }\n\n });\n }\n\n private saveForm = (): void => {\n const existingInterstitial = this.interstitials.getById(this.selectedInterstitialId);\n const interstitial = this.getNewInterstitialFromForm(this.selectedInterstitialId ?? 0, existingInterstitial?.isActive ?? false);\n\n if (this.interstitials.count() >= 6 && !existingInterstitial) {\n NotificationBar.Display(TranslationData.get(\"Business.Mangager.MaxItems\"));\n return;\n }\n\n this.interstitialRepository.createOrUpdate(this.marketId, interstitial).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Interstitial.Saved\");\n this.interstitials = Business.Interstitials.fromJson(apiResult.content);\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\n this.bindClickOnInterstitial();\n this.bindNewInterstitialButton();\n this.bindToggleActive();\n this.resetFormData();\n });\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\n this.bindToggleActive();\n this.bindClickOnActive();\n });\n this.hasUnsavedChanges = false;\n } else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private bindNewInterstitialButton = () => {\n $(\".interstitials__button--new\").unbind()\n $(\".interstitials__button--new\").on(\"click\", event => {\n if (this.interstitials.count() < 6) {\n if (!this.hasUnsavedChanges) {\n $(\".interstitials__uploaded-interstitial-body\").removeModifiers(\"selected\");\n this.resetFormData();\n return;\n }\n\n this.showSaveInterstitialPopup(() => {\n $(\".interstitials__uploaded-interstitial-body\").removeModifiers(\"selected\");\n this.resetFormData();\n }, () => {\n $(\".interstitials__button--save\").click();\n });\n\n } else {\n NotificationBar.Display(TranslationData.get(\"Business.Mangager.MaxItems\"));\n }\n });\n\n }\n\n private bindDeleteButton = () => {\n $(\".interstitials__button--delete\").unbind();\n $(\".interstitials__button--delete\").on(\"click\", event => {\n if (!this.selectedInterstitialId) {\n return;\n }\n\n this.showDeleteInterstitialPopup(this.selectedInterstitialId);\n })\n }\n\n private setFormData(id: number, imageLink: string, imageName: string, imagePath: string, isActive: boolean) {\n $(\".interstitials__image\").val(\"\");\n $(\".interstitials__input--title\").removeModifiers(\"invalid\").val(imageName);\n $(\".interstitials__input--link\").removeModifiers(\"invalid\").val(imageLink);\n\n this.selectedInterstitialId = id;\n this.interstitialsRenderer.renderHeaderImage(imagePath);\n this.interstitialsRenderer.renderExampleInterstitial(imagePath, () => {\n this.bindNewInterstitialButton();\n });\n\n this.interstitialsRenderer.renderInterstitialActivateButton(isActive, () => {\n this.bindToggleActive();\n });\n }\n\n private resetFormData() {\n this.setFormData(0, \"\", \"\", \"\", false);\n this.interstitialsRenderer.renderExampleInterstitial(\"\", () => {\n this.bindNewInterstitialButton();\n });\n if (this.isCropping) {\n $(\".interstitials__new-interstitial-card\").removeModifiers(\"preload\");\n $(\".interstitials__hover\").show()\n $(\".interstitials__image-upload\").on(\"click\", event => {\n $(\".interstitials__image\").click();\n });\n this.isCropping = false\n }\n }\n\n private bindClickOnInterstitial = (): void => {\n $(\".interstitials__uploaded-interstitial-body\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n\n if (!this.hasUnsavedChanges) {\n return this.switchInterstitial(elem);\n }\n\n this.showSaveInterstitialPopup(() => {\n $(\".interstitials__uploaded-interstitial-body\").removeModifiers(\"selected\");\n this.resetFormData();\n }, () => {\n $(\".interstitials__button--save\").click();\n });\n })\n }\n\n private switchInterstitial = (elem: JQuery) => {\n $(\".interstitials__uploaded-interstitial-body\").removeModifiers(\"selected\");\n elem.addModifiers(\"selected\");\n\n const interstitialId = +elem.data(\"interstitial-id\");\n const interstitial = this.interstitials.getById(interstitialId);\n if (!interstitial) {\n return;\n }\n\n this.setFormData(interstitial.id, interstitial.imageLink, interstitial.imageName, interstitial.imagePath, interstitial.isActive);\n }\n\n private showDeleteInterstitialPopup = (interstitialId: number) => {\n $.newPopup(\"remove-interstitial-popup\");\n $.togglePopup(\"#remove-interstitial-popup\", true, true);\n\n $(\"#remove-interstitial-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.Interstitial.DeleteConfirmation\")?.format(this.interstitials.getById(interstitialId)?.imageName));\n\n $(\"#remove-interstitial-popup .popup-content-body-close-button,#remove-interstitial-popup .popup-content-header__close,#remove-interstitial-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#remove-interstitial-popup\", false, true);\n });\n\n $(\"#remove-interstitial-popup .popup-content-body-remove-button\").on(\"click\", () => {\n $(\".interstitials__new-interstitial-card\").addModifiers(\"preload\");\n this.interstitialRepository.delete(this.marketId, interstitialId).done((apiResult) => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Interstitial.Removed\");\n this.interstitials = Business.Interstitials.fromJson(apiResult.content);\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\n this.bindClickOnInterstitial()\n this.bindNewInterstitialButton();\n this.bindToggleActive();\n this.resetFormData();\n });\n\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\n this.bindToggleActive();\n this.bindClickOnActive();\n });\n } else {\n NotificationBar.Display(apiResult.message === '' ? TranslationData.get(\"Errors.UserNotAllowed.Message\") : apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n $(\".interstitials__new-interstitial-card\").removeModifiers(\"preload\");\n $.togglePopup(\"#remove-interstitial-popup\", false, true);\n });\n });\n }\n\n private showSaveInterstitialPopup = (onDoNotSaveClick: Function, onSaveClick: Function) => {\n $.newPopup(\"save-interstitial-popup\");\n $.togglePopup(\"#save-interstitial-popup\", true, true);\n\n $(\"#save-interstitial-popup .popup-content-body-do-not-save-button\").on(\"click\", () => {\n $.togglePopup(\"#save-interstitial-popup\", false, true);\n onDoNotSaveClick();\n this.hasUnsavedChanges = false;\n });\n\n $(\"#save-interstitial-popup .popup-content-header__close,#save-interstitial-popup .popup-content-body-cancel-button,#save-interstitial-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#save-interstitial-popup\", false, true);\n });\n\n $(\"#save-interstitial-popup .popup-content-body-save-button\").on(\"click\", () => {\n $.togglePopup(\"#save-interstitial-popup\", false, true);\n onSaveClick();\n });\n }\n\n private bindInput = () => {\n $(\".interstitials__input--title\").unbind();\n $(\".interstitials__input--title\").on(\"input\", event => {\n this.hasUnsavedChanges = true;\n });\n $(\".interstitials__input--link\").unbind();\n $(\".interstitials__input--link\").on(\"keyup\", event => {\n this.hasUnsavedChanges = true;\n $(event.currentTarget).val((_, value) => formatUrlWithProtocol(value));\n });\n\n }\n\n private bindToggleActive = () => {\n $(\".interstitials__button--activate\").unbind();\n $(\".interstitials__button--activate\").on(\"click\", () => {\n const existingInterstitial = this.interstitials.getById(this.selectedInterstitialId);\n\n if (!this.validateInterstitial()) {\n return;\n }\n\n if (!existingInterstitial) {\n NotificationBar.Display(TranslationData.get(\"Common.PleaseSave\"));\n return;\n }\n\n if (existingInterstitial.isActive) {\n const interstitial = this.getNewInterstitialFromForm(existingInterstitial.id, false);\n this.interstitialRepository.createOrUpdate(this.marketId, interstitial).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Interstitial.Saved\");\n this.interstitials = Business.Interstitials.fromJson(apiResult.content);\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\n this.bindClickOnActive();\n });\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\n this.bindClickOnInterstitial();\n this.bindInput();\n });\n this.hasUnsavedChanges = false;\n this.interstitialsRenderer.renderInterstitialActivateButton(!existingInterstitial.isActive, () => {\n this.bindToggleActive();\n const elem = $(`.interstitials__uploaded-interstitial-body[data-interstitial-id=\"${interstitial.id}\"]`);\n elem.addModifiers(\"selected\");\n });\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n else {\n $(\".interstitials__button--activate\").val(TranslationData.get(\"Common.Activate\"))\n const interstitial = this.getNewInterstitialFromForm(existingInterstitial.id, true);\n this.interstitialRepository.createOrUpdate(this.marketId, interstitial).done(apiResult => {\n if (apiResult.isSuccess()) {\n Business.Toast.displayLabel(\"Business.Management.Interstitial.Saved\");\n this.interstitials = Business.Interstitials.fromJson(apiResult.content);\n this.interstitialsRenderer.renderActiveInterstitial(this.interstitials, () => {\n this.bindClickOnActive();\n });\n this.interstitialsRenderer.renderUploadedInterstitials(this.interstitials, () => {\n this.bindClickOnInterstitial();\n this.bindInput();\n });\n this.hasUnsavedChanges = false;\n this.interstitialsRenderer.renderInterstitialActivateButton(!existingInterstitial.isActive, () => {\n this.bindToggleActive();\n const elem = $(`.interstitials__uploaded-interstitial-body[data-interstitial-id=\"${interstitial.id}\"]`);\n elem.addModifiers(\"selected\");\n });\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n })\n }\n\n private bindClickOnActive = () => {\n $(\".interstitials__active-interstitial-body\").on(\"click\", () => {\n const currentActive = this.interstitials.getActive()\n this.setFormData(currentActive.id, currentActive.imageLink, currentActive.imageName, currentActive.imagePath, currentActive.isActive)\n\n $(\".interstitials__uploaded-advertisement-body\").removeModifiers(\"selected\");\n const elem = $(`[data-interstitials-id=\"${currentActive.id}\"]`)\n elem.addModifiers(\"selected\");\n })\n }\n }\n}","module Business {\n import MarketingTabType = Business.MarketingTabType;\n\n export class InterstitialsRenderer {\n private interstitialTemplate: HandlebarsTemplateDelegate;\n private interstitialsTemplate: HandlebarsTemplateDelegate;\n private interstitialsNotAvailableTemplate: HandlebarsTemplateDelegate;\n private interstitialsHeaderImageTemplate: HandlebarsTemplateDelegate;\n private interstitialsActiveTemplate: HandlebarsTemplateDelegate;\n private interstitialsExampleTemplate: HandlebarsTemplateDelegate;\n private interstitialsUploadedTemplate: HandlebarsTemplateDelegate;\n private interstitialsActivateButton: HandlebarsTemplateDelegate;\n\n constructor(private readonly cdnUrl: string) { }\n\n public render = (style: \"available\" | \"unavailable\", callback?: Function): void => {\n if (this.interstitialsTemplate == null) {\n this.interstitialsTemplate = Handlebars.compile($(\"#marketing-interstitials-template\").html());\n }\n\n if (this.interstitialsNotAvailableTemplate == null) {\n this.interstitialsNotAvailableTemplate = Handlebars.compile($(\"#marketing-interstitials-not-available-template\").html());\n Handlebars.registerPartial(\"interstitialsNotAvailablePartial\", this.interstitialsNotAvailableTemplate);\n }\n\n const model = { cdnUrl: this.cdnUrl, isAvailable: style === \"available\" };\n\n const slideContainer = $(`.marketing__slide[data-slide-id=\"${MarketingTabType.Interstitials}\"]`);\n slideContainer.find(\".marketing-content-placeholder\").html(this.interstitialsTemplate(model));\n\n callback?.();\n }\n\n public renderHeaderImage = (imagePath: string, callback?: Function ): void => {\n if (this.interstitialsHeaderImageTemplate == null) {\n this.interstitialsHeaderImageTemplate = Handlebars.compile($(\"#marketing-interstitials-header-image-template\").html());\n }\n\n $(\".interstitials__upload-image\").html(this.interstitialsHeaderImageTemplate({ imagePath, hasImageUrl: !_.isEmpty(imagePath), cdnUrl: this.cdnUrl }));\n\n callback?.();\n }\n\n public renderActiveInterstitial = (interstitials: Business.Interstitials, callback?: Function): void => {\n if (this.interstitialsActiveTemplate == null) {\n this.interstitialsActiveTemplate = Handlebars.compile($(\"#marketing-interstitials-active-template\").html());\n }\n\n const activeInterstitial = interstitials.getActive();\n const model = { ...activeInterstitial, cdnUrl: this.cdnUrl, hasActiveInterstitial: activeInterstitial != null };\n $(\".interstitials__active-interstitials-placeholder\").html(this.interstitialsActiveTemplate(model));\n\n if (activeInterstitial != null) {\n $(\".interstitials__active-interstitial-active-text\").removeModifiers(\"inactive\")\n $(\".interstitials__active-interstitial-body\").addModifiers(\"active\")\n } else {\n $(\".interstitials__active-interstitial-active-text\").addModifiers(\"inactive\")\n $(\".interstitials__active-interstitial-body\").removeModifiers(\"active\")\n }\n\n callback?.();\n }\n\n public renderExampleInterstitial = (imagePath: string, callback?: Function): void => {\n if (this.interstitialsExampleTemplate == null) {\n this.interstitialsExampleTemplate = Handlebars.compile($(\"#marketing-interstitials-example-template\").html());\n }\n\n $(\".interstitials__example-interstitials-placeholder\").html(this.interstitialsExampleTemplate({ imagePath, hasImageUrl: !_.isEmpty(imagePath), cdnUrl: this.cdnUrl }));\n\n callback?.();\n }\n\n public renderUploadedInterstitials = (interstitials: Business.Interstitials, callback?: Function): void => {\n if (this.interstitialsUploadedTemplate == null) {\n this.interstitialsUploadedTemplate = Handlebars.compile($(\"#marketing-interstitials-uploaded-template\").html());\n }\n if (this.interstitialTemplate == null) {\n this.interstitialTemplate = Handlebars.compile($(\"#marketing-interstitial-template\").html())\n Handlebars.registerPartial(\"interstitialPartial\", this.interstitialTemplate);\n }\n\n const model = interstitials.map(i => ({ ...i, cdnUrl: this.cdnUrl }));\n $(\".interstitials__uploaded-interstitials-placeholder\").html(this.interstitialsUploadedTemplate(model));\n\n callback?.();\n }\n\n public renderInterstitialActivateButton = (isActive: boolean, callback?: Function): void => {\n if (this.interstitialsActivateButton == null) {\n this.interstitialsActivateButton = Handlebars.compile($(\"#marketing-interstitial-activate-button\").html());\n }\n $(\".interstitials__activate-button-placeholder\").html(this.interstitialsActivateButton({ isActive }));\n\n callback?.();\n }\n }\n}","module ClientAdministrator {\n export class OptInController {\n private optInRepository: Business.OptInRepository;\n private optInRenderer: Business.OptInRenderer;\n private readonly requestStorageKey: string;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, private readonly marketId: number, private readonly clientId: number) {\n this.optInRepository = new Business.OptInRepository(salesApiSettings);\n this.optInRenderer = new Business.OptInRenderer(cdnUrl);\n this.requestStorageKey = `optInRequest:${clientId}:${marketId}`;\n }\n\n public initialize = (isFeatureSupported: boolean) => {\n if (!isFeatureSupported) {\n this.optInRenderer.render(\"unavailable\", () => {\n this.bindClickListeners();\n });\n return;\n }\n\n const storageDate = localStorage.getItem(this.requestStorageKey);\n if (storageDate != null && moment.utc().diff(moment.utc(storageDate), \"hours\") <= 72) {\n this.optInRenderer.render(\"requested\");\n }\n else {\n localStorage.removeItem(this.requestStorageKey);\n this.optInRenderer.render(\"available\", () => {\n this.bindClickListeners();\n });\n }\n }\n\n private bindClickListeners = () => {\n $(\".client-administrator-opt-in__button\").on(\"click\", (e) => {\n if ($(e.currentTarget).hasModifier(\"loading\"))\n return;\n\n $(e.currentTarget).addModifiers(\"loading\");\n this.optInRepository.request(this.marketId).done(apiResult => {\n if (apiResult.isSuccess()) {\n localStorage.setItem(this.requestStorageKey, moment.utc().toISOString());\n this.optInRenderer.render(\"requested\");\n }\n else {\n NotificationBar.Display(apiResult.message);\n }\n }).fail(err => {\n NotificationBar.Display(TranslationData.get(\"Business.Management.OptIn.RequestFailed\"))\n }).always(() => {\n $(e.currentTarget).removeModifiers(\"loading\");\n })\n })\n\n $(\".client-administrator-opt-in__button-upgrade\").on(\"click\", () => {\n $(`.client-administrator__tab[data-tab-id=\"${Business.ClientAdminTabType.Upgrade}\"]`).click();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n })\n }\n }\n}","module Business {\n import MarketingTabType = Business.MarketingTabType;\n\n export class OptInRenderer {\n private optInTemplate: HandlebarsTemplateDelegate;\n private optInUnavailableTemplate: HandlebarsTemplateDelegate;\n\n constructor(private readonly cdnUrl: string) { }\n\n public render = (style: \"available\" | \"requested\" | \"unavailable\", callback?: Function): void => {\n if (this.optInTemplate == null) {\n this.optInTemplate = Handlebars.compile($(\"#opt-in-request-template\").html());\n }\n if (this.optInUnavailableTemplate == null) {\n this.optInUnavailableTemplate = Handlebars.compile($(\"#opt-in-request-unavailable-template\").html());\n Handlebars.registerPartial(\"optInsNotAvailablePartial\", this.optInUnavailableTemplate);\n }\n\n const model = { cdnUrl: this.cdnUrl, requested: style === \"requested\", isAvailable: style === \"available\" || style === \"requested\" };\n\n const slideContainer = $(`.marketing__slide[data-slide-id=\"${MarketingTabType.OptIns}\"]`);\n slideContainer.find(\".marketing-content-placeholder\").html(this.optInTemplate(model));\n callback?.()\n }\n }\n}","module ClientAdministrator {\n import SalesUser = Business.SalesUser;\n import ConfigurationStatusType = Business.ConfigurationStatusType;\n import MarketingTabType = Business.MarketingTabType;\n\n export class MarketingTabModel {\n public marketingTabType: MarketingTabType;\n public title: string;\n public status: ConfigurationStatusType;\n public isSlideOpen: boolean;\n\n public constructor(marketingTabType: MarketingTabType, labelkey: string, status: ConfigurationStatusType, isSlideOpen: boolean) {\n this.marketingTabType = marketingTabType;\n this.title = TranslationData.get(labelkey);\n this.status = status;\n this.isSlideOpen = isSlideOpen;\n }\n\n public static toTabArticles = (salesUser: SalesUser, isOpen: boolean) => {\n const statusType = isFeatureSupported(salesUser.packageType, Feature.Articles)\n ? ConfigurationStatusType.Completed : ConfigurationStatusType.UnAvailable\n return new MarketingTabModel(MarketingTabType.Articles, \"Business.Marketing.Tab.Articles\", statusType, isOpen)\n }\n\n public static toTabAdvertisements = (salesUser: SalesUser, isOpen: boolean) => {\n const statusType = isFeatureSupported(salesUser.packageType, Feature.Advertisements)\n ? ConfigurationStatusType.Completed : ConfigurationStatusType.UnAvailable;\n return new MarketingTabModel(MarketingTabType.Advertisements, \"Business.Marketing.Tab.Advertisements\", statusType, isOpen)\n }\n\n public static toTabInterstitials = (salesUser: SalesUser, isOpen: boolean) => {\n const statusType = isFeatureSupported(salesUser.packageType, Feature.Advertisements)\n ? ConfigurationStatusType.Completed : ConfigurationStatusType.UnAvailable;\n return new MarketingTabModel(MarketingTabType.Interstitials, \"Business.Marketing.Tab.Interstitials\", statusType, isOpen)\n }\n\n public static toTabOptIns = (salesUser: SalesUser, isOpen: boolean) => {\n const statusType = isFeatureSupported(salesUser.packageType, Feature.OptIns)\n ? ConfigurationStatusType.Completed : ConfigurationStatusType.UnAvailable\n return new MarketingTabModel(MarketingTabType.OptIns, \"Business.Marketing.Tab.OptIns\", statusType, isOpen)\n }\n\n public getStatusName = (): string => {\n return ConfigurationStatusType[this.status].toString().toLowerCase();\n }\n\n public updateSlide(isOpen: boolean) {\n this.isSlideOpen = isOpen;\n }\n }\n}","/// \n\nmodule ClientAdministrator {\n import SubLeague = Business.SubLeague;\n import Administrators = Business.Administrators;\n import Administrator = Business.Administrator;\n\n export class LeagueSlideModel {\n\n public leagueId: number;\n public isMainLeague: boolean;\n public leagueName: string;\n public inviteLink: string;\n public adminOne: Administrator | null;\n public adminTwo: Administrator | null;\n\n constructor(leagueId: number, leagueName: string, inviteLink: string, isMainLeague: boolean, adminOne: Administrator, adminTwo: Administrator) {\n this.leagueId = leagueId;\n this.leagueName = leagueName;\n this.inviteLink = inviteLink;\n this.isMainLeague = isMainLeague;\n this.adminOne = adminOne;\n this.adminTwo = adminTwo;\n }\n\n public static fromDto = (league: SubLeague, administrators: Administrators, inviteUrl: string): LeagueSlideModel => {\n const adminOne = administrators.any() ? administrators.first() : null;\n const adminTwo = administrators.count() > 1 ? administrators.last() : null;\n return new LeagueSlideModel(league.leagueId, league.leagueName, inviteUrl, league.isMainLeague, adminOne, adminTwo);\n }\n }\n}","/// \n/// \n\nmodule ClientAdministrator {\n import PackageType = Business.PackageType;\n import Deals = Business.Deals;\n\n export class UpgradeButtonModel {\n public id: number;\n public label: string;\n public packageType: PackageType;\n public isIncluded: boolean;\n public price: number;\n public isSelected: boolean;\n public isDisabled: boolean;\n\n constructor(id: number, label: string, packageType: PackageType, isIncluded: boolean, price: number, isSelected: boolean) {\n this.id = id;\n this.label = label;\n this.packageType = packageType;\n this.isIncluded = isIncluded;\n this.price = price;\n this.isSelected = isSelected;\n this.isDisabled = this.price < 1;\n }\n\n public static fromDto = (packageType: PackageType, currentSelectedPackage: PackageType, upgrades: Deals): UpgradeButtonModel => {\n\n let isIncluded: boolean;\n switch (currentSelectedPackage) {\n case PackageType.Business:\n isIncluded = _.contains([PackageType.Budget, PackageType.Business], packageType);\n break;\n case PackageType.Professional:\n isIncluded = true;\n break;\n default:\n isIncluded = currentSelectedPackage === packageType;\n break;\n }\n const upgrade = upgrades.getUpgrade(currentSelectedPackage, packageType);\n const label = TranslationData.get(`Sales.Package.Type.${packageType}`);\n return new UpgradeButtonModel(upgrade ? upgrade.id : 0, label, packageType, isIncluded, upgrade ? upgrade.price : 0, currentSelectedPackage === packageType);\n }\n }\n}","/// \n/// \n\nmodule ClientAdministrator {\n import Deal = Business.Deal;\n\n export class UpgradeInformationModel extends Business.PurchaseInformationModel {\n public static localStorageKey = \"management.upgradeInformation\";\n\n protected isUpgrade: boolean = true;\n\n public participantUpgradeDealId: number | undefined;\n public packageUpgradeDealId: number | undefined;\n public clientAdminTabType: Business.ClientAdminTabType | undefined;\n\n constructor(marketId: number, gameId: KnownGameIds, countryId: number, payByInvoice: boolean, participantUpgradeDealId: number | undefined,\n packageUpgradeDealId: number | undefined, clientAdminTabType: Business.ClientAdminTabType | undefined, vatNumber: string, couponCode: string,\n salesPackageIdsWithAmounts: Record, salesPackagePersonalizationTexts: Record) {\n super(marketId, gameId, countryId, payByInvoice, vatNumber, couponCode, salesPackageIdsWithAmounts, salesPackagePersonalizationTexts);\n\n this.participantUpgradeDealId = participantUpgradeDealId;\n this.packageUpgradeDealId = packageUpgradeDealId;\n this.clientAdminTabType = clientAdminTabType;\n }\n\n public setParticipantUpgrade = (participantUpgrade: Deal) => {\n this.participantUpgradeDealId = participantUpgrade.id;\n }\n\n public updateCountry = (countryId: number): void => {\n this.countryId = countryId;\n }\n\n public updatePayByInvoice = (payByInvoice: boolean): void => {\n this.payByInvoice = payByInvoice;\n }\n\n public setVatNumber = (vatNumber: string) => {\n this.vatNumber = vatNumber;\n }\n\n public setCouponCode = (couponCode: string) => {\n this.couponCode = couponCode;\n }\n\n public saveToLocalStorage(): void {\n localStorage.setItem(UpgradeInformationModel.localStorageKey, JSON.stringify(this));\n }\n\n public getDealIds = () => {\n const dealIds: number[] = [];\n if (this.participantUpgradeDealId) {\n dealIds.push(this.participantUpgradeDealId);\n }\n if (this.packageUpgradeDealId) {\n dealIds.push(this.packageUpgradeDealId);\n }\n return dealIds;\n }\n\n public static getFromLocalStorage = (): UpgradeInformationModel => {\n var storageObject = JSON.parse(localStorage.getItem(UpgradeInformationModel.localStorageKey));\n if (storageObject != null) {\n return new UpgradeInformationModel(\n storageObject.marketId,\n storageObject.gameId,\n storageObject.countryId,\n storageObject.payByInvoice,\n storageObject.participantUpgradeDealId,\n storageObject.packageUpgradeDealId,\n storageObject.clientAdminTabType,\n storageObject.vatNumber,\n storageObject.couponCode,\n storageObject.salesPackageIdsWithAmounts,\n storageObject.salesPackagePersonalizationTexts\n );\n } else {\n return null;\n }\n }\n\n public static deleteFromLocalStorage(): void {\n localStorage.removeItem(UpgradeInformationModel.localStorageKey);\n }\n }\n} ","/// \n\nmodule ClientAdministrator {\n export class UpgradeModel extends BaseList {\n\n public constructor(list: Array) {\n super(list);\n }\n\n public static createPreload = () => {\n return new UpgradeModel([new UpgradeParticipantModel(0, 0), new UpgradeParticipantModel(0, 0), new UpgradeParticipantModel(0, 0)]);\n }\n\n public static fromDto = (currentParticipants: number, deals: Array) => {\n const list = new Array();\n if (_.isEmpty(deals))\n return list;\n\n let currentIndex = _.findIndex(deals.sort((a, b) => a.participantCount - b.participantCount), deal => currentParticipants <= deal.participantCount);\n if (currentIndex === 0)\n currentIndex = 1;\n if (currentIndex === deals.length - 1)\n currentIndex = deals.length - 2;\n\n const previousIndex = Math.max(0, currentIndex - 1);\n const nextIndex = Math.min(deals.length - 1, currentIndex + 1);\n const indexes = currentIndex < 0 ? _.range(0, 3) : _.uniq([previousIndex, currentIndex, nextIndex]);\n _.each(indexes, index => {\n const deal = deals[index];\n if (deal) {\n list.push(new UpgradeParticipantModel(deal.participantCount, deal.price))\n }\n });\n\n return new UpgradeModel(list);\n }\n }\n}","module Business {\n export class LeagueAdministratorSettingsRenderer {\n private configurationHeaderTemplate: HandlebarsTemplateDelegate;\n\n private configurationNameTemplate: HandlebarsTemplateDelegate;\n private configurationRankingLogoTemplate: HandlebarsTemplateDelegate;\n private configurationMailingTextTemplate: HandlebarsTemplateDelegate;\n private rankingPreviewTemplate: HandlebarsTemplateDelegate;\n\n public renderStepHeaderTemplate = (model: LeagueAdministratorStepModel, callBack: Function): void => {\n if (this.configurationHeaderTemplate == null) {\n this.configurationHeaderTemplate = Handlebars.compile($(\"#league-administrator-settings-header-template\").html());\n }\n $(`.league-administrator-settings__step[data-step-id=\"${model.settingsStepType}\"] .configuration-header-placeholder`).html(this.configurationHeaderTemplate(model));\n this.toggleSlide(model.settingsStepType, model.isSlideOpen);\n callBack();\n }\n\n public toggleSlide = (step: SettingsStepType, open: boolean): void => {\n const stepContainer = $(`.league-administrator-settings__step[data-step-id=\"${+step}\"]`);\n const contentPlaceholder = stepContainer.find(\".configuration-content-placeholder\");\n $(\".configuration-content-placeholder\").removeModifiers(\"open\").height(0);\n\n if (open) {\n const content = contentPlaceholder.children(\":first-child\");\n contentPlaceholder.height(content.outerHeight());\n contentPlaceholder.addModifiers(\"open\");\n stepContainer.find(\".league-administrator-settings__arrow\").addModifiers(\"slide-open\");\n }\n else {\n $(\".league-administrator-settings__arrow\").removeModifiers(\"slide-open\")\n };\n }\n\n public renderNameTemplate = (model: RankingSettingsViewModel, callback: Function): void => {\n this.registerPartial();\n if (this.configurationNameTemplate == null) {\n this.configurationNameTemplate = Handlebars.compile($(\"#step-one-league-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(SettingsStepType.Name)}`).html(this.configurationNameTemplate(model));\n callback();\n }\n\n\n public renderRankingLogoTemplate = (model: RankingSettingsViewModel, callback: Function) => {\n this.registerPartial();\n if (this.configurationRankingLogoTemplate == null) {\n this.configurationRankingLogoTemplate = Handlebars.compile($(\"#step-two-league-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(SettingsStepType.RankingLogo)}`).html(this.configurationRankingLogoTemplate(model));\n\n callback();\n }\n\n public renderMailingTextTemplate = (model: WelcomeEmailModel, isEnabled: boolean, callback: Function) => {\n this.registerPartial();\n if (this.configurationMailingTextTemplate == null) {\n this.configurationMailingTextTemplate = Handlebars.compile($(\"#step-three-league-administrator-template\").html());\n }\n\n $(`${this.getStepSelector(SettingsStepType.MailingText)}`).html(this.configurationMailingTextTemplate(_.extend({ isEnabled }, model)));\n callback();\n }\n\n public registerPartial = (): void => {\n if (this.rankingPreviewTemplate == null) {\n this.rankingPreviewTemplate = Handlebars.compile($(\"#ranking-preview-template\").html());\n Handlebars.registerPartial(\"rankingPreview\", this.rankingPreviewTemplate);\n }\n }\n\n public renderRankingPreview = (model: RankingSettingsViewModel): void => {\n this.registerPartial();\n $(\".subleague-name-slide__ranking-preview, .subleague-ranking-logo-slide__ranking-preview\").html(this.rankingPreviewTemplate(model));\n }\n\n private getStepSelector = (type: SettingsStepType): string => {\n return `.league-administrator-settings__step[data-step-id=\"${type}\"] .configuration-content-placeholder`;\n }\n }\n}","module Business {\n export class LeagueAdministratorStepModel {\n public order: number;\n public settingsStepType: SettingsStepType;\n public title: string;\n public status: ConfigurationStatusType;\n public isSlideOpen: boolean;\n\n private constructor(order: number, settingsStepType: SettingsStepType, labelKey: string, status: ConfigurationStatusType, isSlideOpen: boolean) {\n this.order = order;\n this.settingsStepType = settingsStepType;\n this.title = TranslationData.get(labelKey);\n this.status = status;\n this.isSlideOpen = isSlideOpen;\n }\n\n public getStatusName = (): string => {\n return ConfigurationStatusType[this.status].toString().toLowerCase();\n }\n\n public updateSlide(isOpen: boolean) {\n this.isSlideOpen = isOpen;\n }\n\n public static create = (stepType: SettingsStepType, statusType, slideOpen: boolean): LeagueAdministratorStepModel => {\n switch (stepType) {\n case\n SettingsStepType.Name:\n return new LeagueAdministratorStepModel(1, SettingsStepType.Name, \"Business.Management.Configuration.NameSubLeague\", statusType, slideOpen);\n case SettingsStepType.RankingLogo:\n return new LeagueAdministratorStepModel(2, SettingsStepType.RankingLogo, \"Business.Management.Configuration.RankingLogo\", statusType, slideOpen);\n case SettingsStepType.MailingText:\n return new LeagueAdministratorStepModel(3, SettingsStepType.MailingText, \"Business.Management.Configuration.MailingText\", statusType, slideOpen);\n }\n }\n }\n}","module Business {\n export class RankingSettingsViewModel {\n public leagueName: string;\n public gameName: string;\n public logoUrl: string;\n public isEnabled: boolean;\n\n constructor(leagueName: string, marketId: number, logoUrl: string, isEnabled: boolean) {\n this.leagueName = leagueName;\n this.gameName = TranslationData.get(`Market.${marketId}.EventName`);\n this.logoUrl = logoUrl;\n this.isEnabled = isEnabled;\n }\n }\n}","/// \n\nmodule LeagueAdministrator {\n import LeagueActions = Business.LeagueActions;\n\n export class SettingsCompletionModel extends Dictionary {\n\n public static fromLocalStorage = (): SettingsCompletionModel => {\n try {\n const localStorageObject = JSON.parse(localStorage.getItem(Business.ManagementController.settingsCompletedLocalStorageKey));\n const model = new SettingsCompletionModel();\n Object.keys(localStorageObject).forEach(key => {\n const value: LeagueActions = localStorageObject[key];\n model.put(key, new LeagueActions(value.leagueId, value.marketId, value.nameCompleted, value.rankingLogoCompleted, value.welcomeEmailCompleted));\n });\n return model;\n }\n catch (e) {\n return new SettingsCompletionModel();\n }\n }\n }\n}","module LeagueAdministrator {\n export abstract class LeagueAdministratorTabController extends Shared.TabController {\n protected tabType: Business.LeagueAdminTabType;\n protected subLeagueRepository: Business.ISubLeagueRepository;\n\n protected leagues: Business.SubLeagues;\n protected selectedSubLeagueId: number;\n\n protected constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, tabType: Business.LeagueAdminTabType,\n clientRepository: Business.IClientRepository, shouldCheckConfigurationComplete: boolean = false) {\n super(cdnUrl, salesApiSettings, platformApiSettings, clientRepository, shouldCheckConfigurationComplete);\n this.tabType = tabType;\n\n this.subLeagueRepository = new Business.SubLeagueRepository(salesApiSettings);\n this.initCustomTabEventListeners();\n this.bindLeagueDropdown();\n }\n\n protected selectedSubLeagueIsMainLeague = () => {\n return this.selectedSubLeagueId === this.getMainLeagueId();\n }\n\n protected abstract loadTabData: (isConfigurationComplete: boolean) => void;\n\n protected loadData = (isConfigurationComplete: boolean) => {\n $.when(\n this.subLeagueRepository.getMine(this.marketId)\n ).done((subLeagueApiResult: ApiResult) => {\n this.leagues = Business.SubLeagues.fromJson(subLeagueApiResult.content);\n this.updateDropdown();\n }).fail(err => {\n this.displayErrorMessage(err);\n }).always(() => {\n this.removePreload();\n this.loadTabData(isConfigurationComplete);\n this.toggleDropdown(isConfigurationComplete);\n });\n }\n\n protected updateDropdown = (): void => {\n if (!this.leagues || !this.leagues.any()) return;\n if (this.tabType === Business.LeagueAdminTabType.Settings && this.selectedSubLeagueId === this.getMainLeagueId()) this.selectedSubLeagueId = null;\n\n this.toggleDropdown(true);\n const dropdown = $(`.league-administrator__tab-content[data-tab-id=\"${this.tabType}\"] .league-administrator-dropdown__select-list`).empty();\n\n this.leagues.each(item => {\n if (this.tabType !== Business.LeagueAdminTabType.Settings || item.leagueId !== this.getMainLeagueId()) {\n if (!this.selectedSubLeagueId) {\n this.selectedSubLeagueId = item.leagueId;\n }\n dropdown.append(new Option(item.leagueName, item.leagueId.toString(), item.leagueId === this.selectedSubLeagueId));\n }\n });\n }\n\n protected toggleDropdown = (visible: boolean): void => {\n $(\".league-administrator-dropdown__subleagues-select:visible\").toggle(visible);\n }\n\n protected abstract leagueChanged: () => void;\n\n protected bindLeagueDropdown = () => {\n $(`.league-administrator__tab-content[data-tab-id=\"${this.tabType}\"] .league-administrator-dropdown__select-list`).on(\"change\", event => {\n this.selectedSubLeagueId = +$(event.currentTarget).val();\n $(event.currentTarget).val(this.selectedSubLeagueId.toString());\n dispatchEvent(new CustomEvent(Business.LeagueAdministratorController.SetSelectedSubLeagueEvent, { detail: { selectedLeague: this.selectedSubLeagueId } }));\n this.leagueChanged();\n });\n }\n\n protected removePreload = (): void => {\n $(\".league-administrator__tabs-content\").removeModifiers(\"preload\");\n $(\".client-administrator__tab\").removeModifiers(\"preload\");\n $(\".league-administrator__tab\").removeModifiers(\"preload\");\n }\n\n protected initCustomTabEventListeners = () => {\n addEventListener(Business.LeagueAdministratorController.SetSelectedSubLeagueEvent, (event: CustomEvent) => {\n if (this.selectedSubLeagueId === event.detail.selectedLeague) return;\n this.selectedSubLeagueId = event.detail.selectedLeague;\n this.updateDropdown();\n });\n\n addEventListener(Business.LeagueAdministratorController.TabSwitchEvent, (event: CustomEvent) => {\n if (event.detail.tabType !== this.tabType)\n return;\n\n if (this.tabDataLoaded) {\n return this.removePreload();\n }\n\n this.setTabDataLoaded(true);\n\n if (this.shouldCheckConfigurationComplete) {\n this.checkConfigurationComplete();\n } else {\n this.loadData(true);\n }\n });\n\n addEventListener(Business.LeagueAdministratorController.ResetTabDataLoadedEvent, (event: CustomEvent) => {\n if (event.detail?.tabType == null || event.detail?.tabType === this.tabType) {\n this.setTabDataLoaded(false);\n }\n });\n addEventListener(Business.ManagementController.SubLeagueChangeEvent, (event: CustomEvent) => {\n this.selectedSubLeagueId = null;\n this.updateDropdown();\n if (this.tabDataLoaded) this.loadData(true);\n });\n\n addEventListener(Business.ManagementController.MarketSwitchEvent, (event: CustomEvent) => {\n this.selectedSubLeagueId = null;\n this.marketId = event.detail.marketId;\n this.salesUser = event.detail.salesUser;\n this.clientId = this.salesUser.clientId;\n this.setTabDataLoaded(false);\n });\n }\n }\n}","module LeagueAdministrator {\n export class ArticleController extends LeagueAdministratorTabController {\n private articleControllerHelper: BusinessManagement.ArticleControllerHelper;\n private userRepository: Business.UserRepository;\n private articleRepository: Business.IArticleRepository;\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings,\n userApiSettings: ApiSettings.UserApiSettings, clientRepository: Business.IClientRepository, articleRepository: Business.IArticleRepository) {\n super(cdnUrl, salesApiSettings, platformApiSettings, Business.LeagueAdminTabType.Articles, clientRepository, true);\n this.articleRepository = articleRepository;\n this.userRepository = new Business.UserRepository(userApiSettings);\n this.articleControllerHelper = new BusinessManagement.ArticleControllerHelper(\"league-administrator-articles\", this.selectedSubLeagueId, this.marketId, this.userRepository, this.articleRepository, null, Business.PackageType.Budget, true);\n }\n\n protected loadTabData = (isConfigurationComplete: boolean) => {\n this.articleControllerHelper = new BusinessManagement.ArticleControllerHelper(\"league-administrator-articles\", this.selectedSubLeagueId, this.marketId, this.userRepository, this.articleRepository, null, this.salesUser.packageType, true);\n\n this.articleControllerHelper.initialize(isConfigurationComplete).always(() => {\n this.removePreload();\n });\n }\n\n protected leagueChanged = () => {\n this.articleControllerHelper?.updateSelectedSubLeagueId(this.selectedSubLeagueId);\n }\n }\n}","module Business {\n export abstract class GeneralTabController {\n protected salesUser: SalesUser;\n protected salesApiSettings: ApiSettings.SalesApiSettings;\n protected platformApiSettings: Platform.ApiSettings;\n protected tabDataLoaded: boolean;\n protected tabType: Business.GeneralTabType;\n\n protected constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, salesUser: SalesUser, tabType: Business.GeneralTabType) {\n this.tabType = tabType;\n this.salesUser = salesUser;\n this.salesApiSettings = salesApiSettings;\n this.platformApiSettings = platformApiSettings;\n this.initEventListeners();\n }\n\n protected abstract loadData: () => void;\n\n private setTabDataLoaded = (loaded: boolean): void => {\n this.tabDataLoaded = loaded;\n }\n\n private initEventListeners = () => {\n addEventListener(GeneralController.TabSwitchEvent, (event: CustomEvent) => {\n if (event.detail.tabType !== this.tabType)\n return;\n\n if (this.tabDataLoaded) {\n return;\n }\n\n this.setTabDataLoaded(true);\n\n this.loadData();\n });\n }\n }\n}","module Business {\n export class AdministratorController extends GeneralTabController {\n private _administratorRepository: IAdministratorRepository;\n private _platformRepository: Platform.Repository;\n private _administratorRenderer: AdministratorRenderer;\n private _callingCodeDropDownRenderer: CallingCodeDropDownRenderer;\n private readonly userRepository: UserRepository;\n\n private administrators: Administrators;\n private countries: Platform.Countries;\n\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings, salesUser: SalesUser) {\n super(salesApiSettings, platformApiSettings, salesUser, GeneralTabType.Administrator);\n\n this._administratorRepository = new AdministratorRepository(salesApiSettings, platformApiSettings);\n this._platformRepository = new Platform.Repository(platformApiSettings, 0);\n this.userRepository = new UserRepository(userApiSettings);\n\n this._administratorRenderer = new AdministratorRenderer();\n this._callingCodeDropDownRenderer = new CallingCodeDropDownRenderer();\n }\n\n private formatPhoneNumber = (phoneNumber: string) => {\n return phoneNumber.replace(/\\D/g, \"\").replace(/(\\d{2})(\\d{3})?(\\d{3})?(\\d{2})?/, \"$1 $2 $3 $4\").replace(/\\s\\s+/g, \" \");\n }\n\n protected loadData = () => {\n LoadingOverlayRenderer.showLoadingOverlay();\n $.when(this._administratorRepository.get(),\n this._platformRepository.getCountries())\n .done((administrators: Administrators, countries: Platform.Countries) => {\n this.administrators = administrators;\n this.countries = countries.sortByName();\n var model = AdministratorsModel.fromDTO(this.administrators, this.countries);\n this._administratorRenderer.renderTemplate(model, () => { this.bindButtons(); });\n this._callingCodeDropDownRenderer.renderTemplate(this.countries.sortByCallingCodes(), () => {\n $(\".general-administrators__input--select\").on(\"change\", () => {\n $(\".general-administrators__save-button\").removeModifiers(\"disabled\");\n });\n });\n\n _.each(model.list, (administrator: AdministratorModel) => {\n const callingCode = administrator.phoneNumber?.substr(0, administrator.phoneNumber.indexOf(' '));\n $(\".calling-code-dropdown-placeholder[data-calling-code='\" + callingCode + \"'] select\").val(callingCode);\n $(\".general-administrators__input--select > option[value='\" + callingCode + \"']\").attr(\"selected\", \"selected\");\n });\n\n $(\".general-administrators__input--number\").on(\"keyup\", event => {\n if (event.which === 8 || (event.which >= 37 && event.which <= 40)) return;\n $(event.currentTarget).val((_, value) => this.formatPhoneNumber(value));\n });\n\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n LoadingOverlayRenderer.hideLoadingOverlay();\n });\n }\n\n private bindButtons = () => {\n this.bindDeleteAdminClick();\n this.bindDeleteInvitationClick();\n this.bindInviteButtonClick();\n this.bindSaveButton();\n this._callingCodeDropDownRenderer.renderTemplate(this.countries.sortByCallingCodes(), () => {\n $(\".general-administrators__input--select\").on(\"change\", () => {\n $(\".general-administrators__save-button\").removeModifiers(\"disabled\");\n });\n });\n }\n\n private bindDeleteAdminClick = () => {\n $(\".general-administrators__remove-admin--accepted\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const userId = +elem.data(\"userId\");\n const administrator = this.administrators.getByUserId(userId);\n this.showPopup(administrator);\n });\n }\n private bindDeleteInvitationClick = () => {\n $(\".general-administrators__remove-admin--unaccepted\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const inviteLinkId = elem.data(\"inviteLinkId\");\n const administrator = this.administrators.getByInviteLinkId(inviteLinkId);\n this.showPopup(administrator);\n });\n }\n\n private bindInviteButtonClick = () => {\n $(\".general-administrators__button\").on(\"click\", () => {\n const editableAdminClass = \".general-administrators__body--secondary\";\n const inputClass = \"general-administrators__input\";\n\n if (!this.validateForm(editableAdminClass, inputClass, false)) return;\n\n const firstName = $(`${editableAdminClass} .${inputClass}--firstname`).val();\n const lastName = $(`${editableAdminClass} .${inputClass}--lastname`).val();\n const email = $(`${editableAdminClass} .${inputClass}--email`).val();\n const phoneNumber = $(`${editableAdminClass} .${inputClass}--number`).val();\n const callingCode = +$(`${editableAdminClass} .${inputClass}--select`).val();\n const model = new InviteModel(email, firstName, lastName, `${callingCode} ${phoneNumber}`, 1);\n\n $.when(this._administratorRepository.invite(model))\n .done((result: ApiResult) => {\n if (result.isSuccess()) {\n this.administrators = Administrators.fromJson(result.content);\n const model = AdministratorsModel.fromDTO(this.administrators, this.countries);\n this._administratorRenderer.renderTemplate(model, () => { this.bindButtons(); });\n Toast.displayLabel(\"Business.AdminInvited\");\n }\n else {\n NotificationBar.Display(result.message);\n }\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n });\n }\n\n private showPopup = (administrator: Administrator) => {\n $.newPopup(\"remove-client-administrator-popup\");\n $.togglePopup(\"#remove-client-administrator-popup\", true, true);\n\n $(\"#remove-client-administrator-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.Management.ClientAdministrator.DeleteConfirmation\")?.format(administrator.getFullName()));\n\n $(\"#remove-client-administrator-popup .popup-content-header__close,#remove-client-administrator-popup .popup-content-body-close-button,#remove-client-administrator-popup .popup-overlay\").on(\"click\", () => {\n $.togglePopup(\"#remove-client-administrator-popup\", false, true);\n });\n\n $(\"#remove-client-administrator-popup .popup-content-body-remove-button\").on(\"click\", () => {\n if (administrator.isAcceptedAdmin())\n this.onDeleteAdmin(administrator.userId);\n else\n this.onDeleteInvitation(administrator.id);\n\n $.togglePopup(\"#remove-client-administrator-popup\", false, true);\n });\n }\n\n private onDeleteAdmin = (userId: number) => {\n $.when(this._administratorRepository.deleteAdmin(userId))\n .done((result: ApiResult) => {\n if (result.isSuccess()) {\n this.administrators = Administrators.fromJson(result.content);\n const model = AdministratorsModel.fromDTO(this.administrators, this.countries);\n this._administratorRenderer.renderTemplate(model, () => { this.bindButtons(); });\n\n Toast.displayLabel(\"Business.AdminDeleted\");\n\n setTimeout(() => {\n window.location.href = \"/\";\n }, 3000);\n }\n else {\n NotificationBar.Display(result.message);\n }\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private onDeleteInvitation = (inviteLinkId: number) => {\n $.when(this._administratorRepository.deleteInvitation(inviteLinkId))\n .done((result: ApiResult) => {\n if (result.isSuccess()) {\n this.administrators = Administrators.fromJson(result.content);\n const model = AdministratorsModel.fromDTO(this.administrators, this.countries);\n this._administratorRenderer.renderTemplate(model, () => { this.bindButtons(); });\n Toast.displayLabel(\"Business.AdminDeleted\");\n }\n else {\n NotificationBar.Display(result.message);\n }\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private bindSaveButton = () => {\n $(\".general-administrators__save-button\").on(\"click\", () => {\n const editableAdminClass = \".general-administrators__body:first\";\n const inputClass = \"general-administrators__input\";\n\n if (!this.validateForm(editableAdminClass, inputClass, true)) return;\n\n const firstName = $(`${editableAdminClass} .${inputClass}--firstname`).val();\n const lastName = $(`${editableAdminClass} .${inputClass}--lastname`).val();\n const phoneNumber = $(`${editableAdminClass} .${inputClass}--number`).val();\n const callingCode = $(`${editableAdminClass} .${inputClass}--select`).val();\n\n $(\".general-administrators__save-button\").addModifiers(\"disabled\");\n $.when(this.userRepository.setName(firstName, lastName), this.userRepository.setPhoneNumber(callingCode, phoneNumber)).done(() => {\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n $(\".general-administrators__save-button\").removeModifiers(\"disabled\");\n });\n });\n\n $(\".general-administrators__input\").on(\"input change\", () => {\n $(\".general-administrators__save-button\").removeModifiers(\"disabled\");\n });\n }\n\n private validateForm = (editableAdminClass: string, inputClass: string, isFirstAdmin: boolean) => {\n const isValidFirstName = this.isInputNotEmpty(editableAdminClass, inputClass, \"firstname\");\n const isValidLastName = this.isInputNotEmpty(editableAdminClass, inputClass, \"lastname\");\n const isValidEmail = this.isInputNotEmpty(editableAdminClass, inputClass, \"email\") &&\n this.isEmailValid(editableAdminClass, inputClass, isFirstAdmin);\n const isValidPhoneNumber = this.isInputNotEmpty(editableAdminClass, inputClass, \"number\");\n\n return isValidFirstName && isValidLastName && isValidEmail && isValidPhoneNumber;\n }\n\n private isInputNotEmpty = (editableAdminClass: string, inputClass: string, inputField: string) => {\n const value = $(`${editableAdminClass} .${inputClass}--${inputField}`).val();\n\n if (!value) {\n $(`${editableAdminClass} .${inputClass}--${inputField}`).addClass(`${inputClass}--invalid`);\n return false;\n }\n\n $(`${editableAdminClass} .${inputClass}--${inputField}`).removeClass(`${inputClass}--invalid`);\n return true;\n }\n\n private isEmailValid = (editableAdminClass: string, inputClass: string, isFirstAdmin: boolean) => {\n const value = $(`${editableAdminClass} .${inputClass}--email`).val();\n\n if (!Email.Validate(value)) {\n $(`${editableAdminClass} .${inputClass}--email`).addClass(`${inputClass}--invalid`);\n return false;\n }\n\n if (isFirstAdmin && !this.administrators.getByEmailAddress(value)?.isPrimary) {\n return false;\n }\n\n if (!isFirstAdmin && this.administrators.getByEmailAddress(value)?.isPrimary) {\n return false;\n }\n\n $(`${editableAdminClass} .${inputClass}--email`).removeClass(`${inputClass}--invalid`);\n return true;\n }\n }\n} ","module Business {\n import Countries = Platform.Countries;\n\n export class CompanyDetailsController extends GeneralTabController {\n private readonly accountDataRepository: AccountDataRepository;\n private readonly platformRepository: Platform.Repository;\n private readonly clientRepository: IClientRepository;\n\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, salesUser: SalesUser, clientRepository: IClientRepository) {\n super(salesApiSettings, platformApiSettings, salesUser, GeneralTabType.CompanyDetails);\n\n this.accountDataRepository = new AccountDataRepository(salesApiSettings);\n this.platformRepository = new Platform.Repository(platformApiSettings, 0);\n this.clientRepository = clientRepository;\n\n $(\".invoice-info__input--reference-number\").closest(\".invoice-info__row\").remove();\n }\n\n protected loadData = (): void => {\n this.loadAccountData();\n this.bindContactForm();\n this.bindDeleteButton();\n }\n\n private loadAccountData = () => {\n $.when(this.platformRepository.getCountries(), this.accountDataRepository.getSalesAccountData())\n .done((countries: Countries, salesAccountData: SalesAccountData) => {\n const code = countries.getById(salesAccountData.companyCountryId)?.code;\n if (!code) {\n console.error(`Country ${salesAccountData.companyCountryId} not found`);\n }\n\n const countryCodeDropDown = $(\".country-select-input--country-code-company, .business-help__first-digits\");\n countries.sortByCallingCodes().each(country => {\n countryCodeDropDown.append(new Option(`+${country.countryCallingCode}`, country.countryCallingCode));\n });\n\n const countryDropDown = $(\".country-select-input--country\").empty();\n countries.sortByName().each(country => {\n countryDropDown.append(new Option(country.name, country.code));\n });\n\n if (salesAccountData.companyPhoneNumber) {\n const fullPhoneNumber = salesAccountData.companyPhoneNumber.trim();\n const countryCode = fullPhoneNumber.substr(0, fullPhoneNumber.indexOf((\" \")));\n const phoneNumber = this.formatPhoneNumber(fullPhoneNumber.substr(fullPhoneNumber.indexOf(\" \") + 1));\n\n const country = countries.getByCallingCode(countryCode);\n $(\".country-select-input--country\").val(country.code);\n $(\".country-select-input--country-code-company\").val(countryCode);\n $(\".company-info__input--phone-number\").val(phoneNumber);\n\n $(\".business-help__first-digits\").val(countryCode);\n $(\".business-help__last-digits\").val(phoneNumber);\n }\n\n countryDropDown.val(code);\n $(\".company-info__input--name\").val(salesAccountData.companyOrganisationName);\n $(\".company-info__input--address\").val(salesAccountData.companyAddress);\n $(\".company-info__input--zipcode\").val(salesAccountData.companyZipCode);\n $(\".company-info__input--city\").val(salesAccountData.companyCityName);\n $(\".invoice-info__input--invoice-mail\").val(salesAccountData.invoiceRecipientEmail);\n $(\".invoice-info__input--vat-number\").val(salesAccountData.companyVATNumber);\n $(\".invoice-info__input--attention-of\").val(salesAccountData.invoiceRecipientName);\n\n $(\".business-help__business\").val(salesAccountData.companyOrganisationName);\n $(\".business-help__admin\").val(salesAccountData.administratorFullName);\n $(\".business-help__email\").val(salesAccountData.administratorEmail);\n\n $(\".company-info__input--phone-number\").on(\"keyup\", event => {\n if (event.which === 8 || (event.which >= 37 && event.which <= 40)) return;\n $(event.currentTarget).val((_, value) => this.formatPhoneNumber(value));\n });\n\n $(\".company-info__input\").on(\"focus\", () => {\n $(\".company-info__input\").removeModifiers(\"invalid\");\n $(\".business-checkout__error-message\").hide();\n });\n\n $(\".invoice-info__input\").on(\"focus\", () => {\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\n $(\".business-checkout__error-message\").hide();\n });\n\n $(\".administrator-info__input\").on(\"focus\", () => {\n $(\".administrator-info__input\").removeModifiers(\"invalid\");\n $(\".business-checkout__error-message\").hide();\n });\n\n this.toggleVatField(countries, salesAccountData.companyVATNumber);\n countryDropDown.on(\"change\", () => {\n this.toggleVatField(countries, salesAccountData.companyVATNumber);\n });\n\n $(\".invoice-info__checkmark-input\").on(\"change\", e => {\n const input = $(\".invoice-info__input--vat-number\");\n const checked = $(e.currentTarget).prop(\"checked\");\n if (checked) {\n input.val(\"\");\n }\n\n input.prop(\"disabled\", checked);\n input.toggleModifiers(checked, \"disabled\");\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\n });\n\n this.bindSaveButton(countries);\n });\n }\n\n private formatPhoneNumber = (phoneNumber: string) => {\n return phoneNumber.replace(/\\D/g, \"\").replace(/(\\d{2})(\\d{3})?(\\d{3})?(\\d{2})?/, \"$1 $2 $3 $4\").replace(/\\s\\s+/g, \" \");\n }\n\n private bindSaveButton = (countries: Countries) => {\n $(\".general-company-details__save-button\").on(\"click\", () => {\n if (!this.isFormValid(countries)) {\n return;\n }\n\n const company = $(\".company-info__input--name\").val();\n const address = $(\".company-info__input--address\").val();\n const zipCode = $(\".company-info__input--zipcode\").val();\n const city = $(\".company-info__input--city\").val();\n const countryCode = $(\".country-select-input--country\").val();\n const countryId = countries.getByCode(countryCode).id;\n const countryCallingCode = $(\".country-select-input--country-code-company\").val();\n const phoneNumber = $(\".company-info__input--phone-number\").val();\n const invoiceVatNumber = $(\".invoice-info__input--vat-number\").val();\n\n const invoiceRecipient = $(\".invoice-info__input--attention-of\").val();\n const invoiceEmail = $(\".invoice-info__input--invoice-mail\").val();\n const model = new CompanyDetailsModel(company, address, zipCode, city, countryId, countryCallingCode, phoneNumber, invoiceVatNumber, invoiceRecipient, invoiceEmail);\n\n this.accountDataRepository.saveCompanyDetails(model).done(apiResult => {\n if (apiResult.isSuccess()) {\n Toast.displayLabel(\"Business.Management.Configuration.Saved\");\n }\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n });\n }\n\n private toggleVatField(countries: Countries, vatNumber: string) {\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\n $(\".business-checkout__error-message\").hide();\n const isNetherlands = countries.getByCode($(\".country-select-input--country\").val()).isNetherlands();\n $(\".invoice-info__input--vat-number\").closest(\".invoice-info__row\").toggleModifiers(isNetherlands, \"hidden\");\n\n if (!isNetherlands && String.isNullOrEmpty(vatNumber)) {\n $(\".invoice-info__checkmark-input\").prop(\"checked\", true);\n $(\".invoice-info__input--vat-number\").prop(\"disabled\", true).addModifiers(\"disabled\");\n }\n }\n\n private isFormValid = (countries: Countries): boolean => {\n let emptyFieldsError = false;\n let emailInvalidError = false;\n let invalidVatError = false;\n\n const isNetherlands = countries?.getByCode($(\".country-select-input--country\").val())?.isNetherlands();\n const invoiceEmail = $(\".invoice-info__input--invoice-mail\").val().trim();\n const vat = $(\".invoice-info__input--vat-number\").val().trim();\n\n if (!$(\".company-info__input--name\").val().trim()) {\n $(\".company-info__input--name\").addModifiers(\"invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".company-info__input--address\").val().trim()) {\n $(\".company-info__input--address\").addModifiers(\"invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".company-info__input--city\").val().trim()) {\n $(\".company-info__input--city\").addModifiers(\"invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".company-info__input--phone-number\").val().trim()) {\n $(\".company-info__input--phone-number\").addModifiers(\"invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".company-info__input--zipcode\").val().trim()) {\n $(\".company-info__input--zipcode\").addModifiers(\"invalid\");\n emptyFieldsError = true;\n }\n\n if (!invoiceEmail || !Email.Validate(invoiceEmail)) {\n $(\".invoice-info__input--invoice-mail\").addModifiers(\"invalid\");\n emailInvalidError = true;\n }\n\n if (!isNetherlands && !Vat.validate(vat) && !$(\".invoice-info__checkmark-input\").prop(\"checked\")) {\n $(\".invoice-info__input--vat-number\").addClass(\"invoice-info__input--invalid\");\n invalidVatError = true;\n }\n\n if (emptyFieldsError) {\n $(\".business-checkout__empty-fields-error\").show();\n }\n\n else if (emailInvalidError) {\n $(\".business-checkout__email-invalid-error\").show();\n }\n else if (invalidVatError) {\n $(\".business-checkout__invalid-vat-error\").show();\n }\n\n return !(emptyFieldsError || emailInvalidError || invalidVatError);\n }\n\n private bindContactForm = () => {\n const sendButton = $(\".business-help__submit\");\n sendButton.off(\"click\");\n $(\".business-help__input\").on(\"focus\", e => {\n $(e.currentTarget).removeModifiers(\"invalid\");\n });\n\n $(\".business-help__submit\").on(\"click\", () => {\n const company = $(\".business-help__business\").val().trim();\n const name = $(\".business-help__admin\").val().trim();\n const email = $(\".business-help__email\").val().trim();\n const countryCallingCode = $(\".business-help__first-digits\").val();\n const phoneNumber = $(\".business-help__last-digits\").val().trim();\n const question = $(\".business-help__textarea\").val().trim();\n\n let hasErrors = false;\n if (!company) {\n $(\".business-help__business\").addModifiers(\"invalid\");\n hasErrors = true;\n }\n if (!name) {\n $(\".business-help__admin\").addModifiers(\"invalid\");\n hasErrors = true;\n }\n if (!email || !Email.Validate(email)) {\n $(\".business-help__email\").addModifiers(\"invalid\");\n hasErrors = true;\n }\n if (!phoneNumber) {\n $(\".business-help__last-digits\").addModifiers(\"invalid\");\n hasErrors = true;\n }\n if (!question) {\n $(\".business-help__textarea\").addModifiers(\"invalid\");\n hasErrors = true;\n }\n\n if (!hasErrors && !sendButton.hasClass(\"preload\")) {\n const formData = new FormData();\n formData.append(\"subject\", company);\n formData.append(\"message\", question);\n formData.append(\"name\", name);\n formData.append(\"email\", email);\n formData.append(\"phoneNumber\", `${countryCallingCode} 0${phoneNumber}`);\n\n sendButton.addClass(\"preload\");\n this.platformRepository.sendBusinessMessageAnonymous(formData).done(() => {\n Toast.displayLabel(\"Business.Management.Help.SendEmail.Success\");\n $(\".business-help__textarea\").val(\"\");\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n sendButton.removeClass(\"preload\");\n });\n }\n });\n }\n\n private bindDeleteButton = () => {\n let isRemoved = false;\n $(\".general-company-details__remove-link\").on(\"click\", () => {\n const popup = $.newPopup(\"remove-client-popup\");\n $.togglePopup(\"#remove-client-popup\", !popup.hasClass('popup--open'), true);\n\n $(\"#remove-client-popup .popup-content-header__close,#remove-client-popup .popup-content-body-close-button,#remove-client-popup .popup-overlay\").on(\"click\", () => {\n if (isRemoved) location.href = \"/user/logout\";\n else $.togglePopup(\"#remove-client-popup\", false, true);\n });\n\n $(\"#remove-client-popup\").on(\"close\", () => {\n if (isRemoved) location.href = \"/user/logout\";\n });\n\n $(\"#remove-client-popup .popup-content-body-remove-button\").on(\"click\", () => {\n if (!isRemoved) {\n this.clientRepository.delete().done(apiResult => {\n if (apiResult.isSuccess()) {\n $(\"#remove-client-popup .popup-content-header__close,#remove-client-popup .popup-content-body-remove-button\").hide();\n $(\"#remove-client-popup .popup-content-body-remove-button\").text(TranslationData.get(\"Common.Close\"));\n $(\"#remove-client-popup .popup-content-body__text-explanation\").text(TranslationData.get(\"Business.RemovedBusinessAccount\"));\n isRemoved = true;\n }\n else {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n else {\n location.href = \"/user/logout\";\n }\n });\n });\n }\n }\n}","module Business {\n\n export class PurchasesController extends GeneralTabController {\n private readonly _purchaseRepository: IPurchaseRepository;\n private readonly _tabsRepository: TabsRepository;\n private readonly _accountDataRepository: AccountDataRepository;\n private readonly _platformRepository: Platform.Repository;\n\n private readonly _purchaseRenderer: PurchaseRenderer;\n\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, salesUser: SalesUser) {\n super(salesApiSettings, platformApiSettings, salesUser, GeneralTabType.Purchases);\n this._platformRepository = new Platform.Repository(platformApiSettings, 0);\n this._purchaseRepository = new PurchaseRepository(salesApiSettings);\n this._tabsRepository = new TabsRepository(salesApiSettings);\n this._accountDataRepository = new AccountDataRepository(salesApiSettings);\n this._purchaseRenderer = new PurchaseRenderer();\n }\n\n protected loadData = (): void => {\n LoadingOverlayRenderer.showLoadingOverlay();\n\n this._purchaseRepository.get().done((purchases: Purchases) => {\n this._purchaseRenderer.renderTemplate(purchases, () => {\n this.bindOnDownloadInvoice();\n this.bindPaymentButtons();\n });\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n LoadingOverlayRenderer.hideLoadingOverlay();\n });\n }\n\n private bindOnDownloadInvoice = () => {\n $(\".general-purchase-row__download-button\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const orderId = +elem.data(\"orderId\");\n\n this._purchaseRepository.getInvoice(orderId).done((invoice: Invoice) => {\n this.downloadInvoice(invoice);\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n });\n }\n\n private bindPaymentButtons = () => {\n $(\".general-purchase-row__pay-button\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const orderId = +elem.data(\"orderId\");\n elem.addModifiers(\"loading\");\n $.when(\n this._purchaseRepository.getDetails(orderId),\n this._tabsRepository.GetGamesAndMarkets(regionId),\n this._accountDataRepository.getSalesAccountData(),\n this._platformRepository.getCountries()\n ).done((details: PurchaseDetail, gameTabs: GameTabs, salesAccountData: SalesAccountData, countries: Platform.Countries) => {\n const gameTab = gameTabs.getByMarketId(details.marketId);\n if (gameTab == null) {\n elem.addModifiers(\"disabled\").removeModifiers(\"loading\");\n return NotificationBar.Display(TranslationData.get(\"Business.Management.OrderNotAvailable\"));\n }\n\n CheckoutInformationModel.fromDto(salesAccountData, countries, details.countryId).saveToLocalStorage();\n CheckoutProgressModel.getFromLocalStorage().updateStep(CheckoutProgressStep.Three);\n new PaymentInformationModel(false, \"adyen\", moment.utc().toISOString()).saveToLocalStorage();\n if (details.isUpgrade) {\n new ClientAdministrator.UpgradeInformationModel(details.marketId, details.gameId, this.salesUser.countryId, false, details.participantUpgradeDealId, details.packageUpgradeDealId, ClientAdminTabType.Upgrade, \"\", details.couponCode, details.salesPackageIdsWithAmounts, details.salesPackagePersonalizationTexts).saveToLocalStorage();\n }\n new OrderInformationModel(details.gameId, details.marketId, details.mainDealId, details.dealIds, details.salesPackageIdsWithAmounts, details.salesPackagePersonalizationTexts, details.countryId, details.countryCode, details.couponCode, details.headerImageUrl, 0, false, gameTab.salesHeaderImageUrl, \"\")\n .setIsUpgrade(details.isUpgrade)\n .saveToLocalStorage();\n\n window.location.href = `/checkout#${CheckoutProgressStep.Three}`;\n }).fail(() => {\n NotificationBar.Display(\"Common.ErrorOnPage\");\n setTimeout(() => {\n elem.removeModifiers(\"loading\");\n }, 1000);\n });\n });\n }\n\n private downloadInvoice = (invoice: Invoice) => {\n var blob = new Blob([invoice.base64ToArrayBuffer()], { type: \"application/pdf\" });\n var link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n\n var fileName = invoice.invoiceNumber;\n link.download = fileName;\n link.click();\n };\n }\n}\n\n\n","///\n\nmodule Business {\n export class AdministratorInviteModel {\n public roleType: RoleType;\n public hasAccount: boolean;\n public managementInvitationStatus: ManagementInvitationStatus;\n\n public constructor(roleType: number, hasAccount: boolean, managementInvitationStatus: ManagementInvitationStatus) {\n this.roleType = roleType;\n this.hasAccount = hasAccount;\n this.managementInvitationStatus = managementInvitationStatus;\n }\n\n public static fromJson = (data: any) => {\n return new AdministratorInviteModel(data.RoleType, data.HasAccount, data.ManagementInvitationStatus);\n }\n }\n} ","///\n\nmodule Business {\n export class AdministratorModel {\n public clientId: number;\n public countryCallingCode: string;\n public emailAddress: string;\n public firstName: string;\n public managementInvitationStatus: ManagementInvitationStatus;\n public isPrimary: boolean;\n public lastName: string;\n public managementInvitationLinkId: number;\n public phoneNumber: string;\n public phoneNumberCountryId: number;\n public userId: number | null;\n\n constructor(clientId: number, countryCallingCode: string, emailAddress: string, firstName: string,\n managementInvitationStatus: ManagementInvitationStatus, isPrimary: boolean, lastName: string, managementInvitationLinkId: number,\n phoneNumber: string, phoneNumberCountryId: number, userId: number | null) {\n this.clientId = clientId;\n this.countryCallingCode = countryCallingCode;\n this.emailAddress = emailAddress;\n this.firstName = firstName;\n this.managementInvitationStatus = managementInvitationStatus;\n this.isPrimary = isPrimary;\n this.lastName = lastName;\n this.managementInvitationLinkId = managementInvitationLinkId;\n this.phoneNumber = phoneNumber;\n this.phoneNumberCountryId = phoneNumberCountryId;\n this.userId = userId;\n }\n\n public static fromDTO(administrator: Administrator, country: Platform.Country) {\n return new this(administrator.clientId, country?.countryCallingCode ?? \"\", administrator.emailAddress, administrator.firstName,\n administrator.managementInvitationStatus, administrator.isPrimary, administrator.lastName, administrator.id,\n administrator.phoneNumber, administrator.phoneNumberCountryId, administrator.userId);\n }\n\n public getFullName = () => {\n return `${this.firstName} ${this.lastName}`;\n }\n\n public getCallingCode = () => {\n return this.phoneNumber?.substr(0, this.phoneNumber.indexOf(' ')) ?? '';\n }\n\n public getPhoneNumber = () => {\n return this.phoneNumber?.substr(this.phoneNumber.indexOf(' ')).trim() ?? '';\n }\n\n public getStatusLabel() {\n const labelKey = \"Business.ManagementInviteStatus.\" + this.managementInvitationStatus;\n return TranslationData.get(labelKey);\n }\n\n public isAcceptedAdmin = () => {\n return this.isPrimary || (this.managementInvitationStatus === ManagementInvitationStatus.Accepted && this.userId != null);\n }\n }\n} ","module Business {\n export class AdministratorRenderer {\n private administratorsTemplate: HandlebarsTemplateDelegate;\n private administratorTemplate: HandlebarsTemplateDelegate;\n private administratorEnabledTemplate: HandlebarsTemplateDelegate;\n private administratorDisabledTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (administrators: AdministratorsModel, callback: Function): void => {\n if (this.administratorsTemplate == null) {\n this.administratorsTemplate = Handlebars.compile($(\"#administrators-template\").html());\n }\n\n if (this.administratorTemplate == null) {\n this.administratorTemplate = Handlebars.compile($(\"#administrator-template\").html());\n Handlebars.registerPartial(\"administratorPartial\", this.administratorTemplate);\n }\n\n if (this.administratorEnabledTemplate == null) {\n this.administratorEnabledTemplate = Handlebars.compile($(\"#administrator-enabled-template\").html());\n Handlebars.registerPartial(\"administratorEnabledPartial\", this.administratorEnabledTemplate);\n }\n\n if (this.administratorDisabledTemplate == null) {\n this.administratorDisabledTemplate = Handlebars.compile($(\"#administrator-disabled-template\").html());\n Handlebars.registerPartial(\"administratorDisabledPartial\", this.administratorDisabledTemplate);\n }\n\n $(\".administrators-placeholder\").html(this.administratorsTemplate(administrators));\n\n callback();\n }\n }\n}","module Business {\n export class AdministratorsModel extends BaseList {\n\n constructor(administrators: Array) {\n super(administrators);\n }\n\n public static fromDTO(administrators: Administrators, countries: Platform.Countries) {\n const list = new Array();\n _.each(administrators.list, (administrator: Administrator) => {\n var country = countries.getById(administrator.phoneNumberCountryId);\n list.push(AdministratorModel.fromDTO(administrator, country));\n });\n\n return new this(list).sortByPrimaryAdmin();\n }\n\n public getByUserId = (userId: number) => {\n return _.find(this.list, administrator => {\n return administrator.userId === userId;\n });\n }\n\n public getByInviteLinkId = (inviteLinkId: number) => {\n return _.find(this.list, administrator => {\n return administrator.managementInvitationLinkId === inviteLinkId;\n });\n }\n\n public hasMultipleAdmins = () => {\n return _.filter(this.list, (administrator: AdministratorModel) => {\n return administrator.isAcceptedAdmin();\n }).length > 1;\n }\n\n public hasOnlyOneAdmin = () => {\n return this.list.length === 1;\n }\n\n public sortByPrimaryAdmin = () => {\n return new AdministratorsModel(_.sortBy(this.list, (admin: AdministratorModel) => {\n return admin.isPrimary;\n }).reverse());\n }\n }\n} ","module Business {\n export class PurchaseRenderer {\n private purchasesTemplate: HandlebarsTemplateDelegate;\n private purchaseTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (purchases: Purchases, callBack: Function): void => {\n if (this.purchasesTemplate == null) {\n this.purchasesTemplate = Handlebars.compile($(\"#purchases-template\").html());\n }\n\n if (this.purchaseTemplate == null) {\n this.purchaseTemplate = Handlebars.compile($(\"#purchase-template\").html());\n Handlebars.registerPartial(\"purchasePartial\", this.purchaseTemplate);\n } \n\n $(\".purchases-placeholder\").html(this.purchasesTemplate(purchases));\n callBack();\n }\n }\n}","module Business {\n export class CompanyDetailsModel {\n public companyOrganisationName: string;\n public companyAddress: string;\n public companyZipCode: string;\n public companyCityName: string;\n public companyCountryId: number;\n public countryCallingCode: string;\n public companyPhoneNumber: string;\n public companyVATNumber: string;\n\n public invoiceRecipientName: string;\n public invoiceRecipientEmail: string;\n\n constructor(companyOrganisationName: string, companyAddress: string, companyZipCode: string, companyCityName: string, companyCountryId: number, countryCallingCode: string, companyPhoneNumber: string, companyVatNumber: string, invoiceRecipientName: string, invoiceRecipientEmail: string) {\n this.companyOrganisationName = companyOrganisationName;\n this.companyAddress = companyAddress;\n this.companyZipCode = companyZipCode;\n this.companyCityName = companyCityName;\n this.companyCountryId = companyCountryId;\n this.countryCallingCode = countryCallingCode;\n this.companyPhoneNumber = companyPhoneNumber;\n this.companyVATNumber = companyVatNumber;\n this.invoiceRecipientName = invoiceRecipientName;\n this.invoiceRecipientEmail = invoiceRecipientEmail;\n }\n }\n}","/// \n\nmodule Business {\n import UpgradeController = ClientAdministrator.UpgradeController;\n import InviteController = ClientAdministrator.InviteController;\n import ParticipantsController = ClientAdministrator.ParticipantsController;\n import HelpController = ClientAdministrator.HelpController;\n import SubLeagueController = ClientAdministrator.SubLeagueController;\n import MarketingController = ClientAdministrator.MarketingController;\n\n export class ClientAdministratorController {\n public static readonly TabSwitchEvent: string = \"ClientAdministrator.TabSwitchEvent\";\n public static readonly ResetTabDataLoadedEvent: string = \"ClientAdministrator.ResetTabDataLoadedEvent\";\n\n constructor(cdnUrl: string,\n salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings,\n upsApiSettings: ApiSettings.UserPredictionStatusApiSettings, leagueApiSettings: League.ApiSettings,\n clientRepository: IClientRepository, articleRepository: IArticleRepository, leagueActionsEnabled: boolean, private marketId: number) {\n this.handleTabChange();\n this.bindListeners();\n\n new ConfigurationController(cdnUrl, salesApiSettings, userApiSettings, platformApiSettings, leagueApiSettings, clientRepository, leagueActionsEnabled);\n new UpgradeController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\n new InviteController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\n new ParticipantsController(cdnUrl, salesApiSettings, platformApiSettings, upsApiSettings, leagueApiSettings, clientRepository, this.marketId);\n new MarketingController(cdnUrl, salesApiSettings, platformApiSettings, userApiSettings, clientRepository, articleRepository);\n new HelpController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\n new SubLeagueController(cdnUrl, salesApiSettings, platformApiSettings, userApiSettings, clientRepository);\n }\n\n private handleTabChange = () => {\n $(\".client-administrator__tab\").removeClickListeners();\n $(\".client-administrator__tab\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n\n if (elem.hasModifier(\"active\"))\n return;\n\n const tabType: ClientAdminTabType = +elem.data(\"tab-id\");\n $(\".client-administrator__tab\").removeModifiers(\"active\");\n elem.addModifiers(\"active\");\n\n $(\".league-administrator__tab\").removeModifiers(\"active\");\n $(\".league-administrator__tab-content\").removeModifiers(\"active\");\n\n const contentElement = $(`.client-administrator__tab-content[data-tab-id=\"${tabType}\"`);\n $(\".client-administrator__tab-content\").removeModifiers(\"active\");\n contentElement.addModifiers(\"active\");\n\n $(\".client-administrator__tabs-content\").addModifiers(\"preload\");\n dispatchEvent(new CustomEvent(ClientAdministratorController.TabSwitchEvent, { detail: { tabType } }));\n });\n }\n\n private bindListeners = (): void => {\n $(\".configuration-incomplete-notice__go-to-configuration-button, .market-not-online-notice__go-to-configuration-button\").on(\"click\", () => {\n $(`.client-administrator__tab[data-tab-id=\"${ClientAdminTabType.Configuration}\"]`).click();\n });\n\n $(\".subleague-notice__go-to-subleagues-button\").on(\"click\", function () {\n $(`.client-administrator__tab[data-tab-id=\"${ClientAdminTabType.SubLeagues}\"]`).click();\n });\n }\n }\n}","module Business {\n export class GeneralController {\n public static readonly TabSwitchEvent: string = \"General.TabSwitchEvent\";\n\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings,\n salesUser: SalesUser, clientRepository: IClientRepository) {\n\n new CompanyDetailsController(salesApiSettings, platformApiSettings, salesUser, clientRepository);\n new PurchasesController(salesApiSettings, platformApiSettings, salesUser);\n new AdministratorController(salesApiSettings, platformApiSettings, userApiSettings, salesUser);\n\n this.handleTabClick();\n }\n\n private handleTabClick = () => {\n $(\".general-tabs__tab\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n if (elem.hasModifier(\"active\"))\n return;\n\n const tabType: GeneralTabType = +elem.data(\"tab-id\");\n $(\".general-tabs__tab\").removeModifiers(\"active\");\n elem.addModifiers(\"active\");\n\n const contentElement = $(`.general-tabs__tab-content[data-tab-id=\"${tabType}\"`);\n $(\".general-tabs__tab-content\").removeModifiers(\"active\");\n contentElement.addModifiers(\"active\");\n\n dispatchEvent(new CustomEvent(GeneralController.TabSwitchEvent, { detail: { tabType } }));\n });\n }\n }\n}","module Business {\n\n export class LeagueAdministratorController {\n public static readonly TabSwitchEvent: string = \"LeagueAdministrator.TabSwitchEvent\";\n public static readonly ResetTabDataLoadedEvent: string = \"LeagueAdministrator.ResetTabDataLoadedEvent\";\n public static readonly SetSelectedSubLeagueEvent: string = \"LeagueAdministrator.SetSelectedSubLeagueEvent\";\n\n constructor(cdnUrl: string, salesApiSettings: ApiSettings.SalesApiSettings, platformApiSettings: Platform.ApiSettings, userApiSettings: ApiSettings.UserApiSettings, leagueApiSettings: League.ApiSettings,\n userPredictionStatusRepository: Business.IUserPredictionStatusRepository, clientRepository: IClientRepository, articleRepository: IArticleRepository, leagueActionsEnabled: boolean, marketId: number) {\n this.handleTabClick();\n\n new LeagueAdministrator.SettingsController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository, leagueActionsEnabled);\n new LeagueAdministrator.InviteController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\n new LeagueAdministrator.ParticipantsController(cdnUrl, salesApiSettings, platformApiSettings, leagueApiSettings, userPredictionStatusRepository, clientRepository, marketId);\n new LeagueAdministrator.ArticleController(cdnUrl, salesApiSettings, platformApiSettings, userApiSettings, clientRepository, articleRepository); //userApiSettings\n new LeagueAdministrator.HelpController(cdnUrl, salesApiSettings, platformApiSettings, clientRepository);\n } \n\n private handleTabClick = () => {\n $(\".league-administrator__tab\").removeClickListeners();\n $(\".league-administrator__tab\").on(\"click\", event => {\n const elem = $(event.currentTarget);\n const tabType: LeagueAdminTabType = +elem.data(\"tab-id\");\n\n if (elem.hasModifier(\"active\"))\n return;\n\n $(\".league-administrator__tab\").removeModifiers(\"active\");\n elem.addModifiers(\"active\");\n\n $(\".client-administrator__tab\").removeModifiers(\"active\");\n $(\".client-administrator__tab-content\").removeModifiers(\"active\");\n\n const contentElement = $(`.league-administrator__tab-content[data-tab-id=\"${tabType}\"`);\n $(\".league-administrator__tab-content\").removeModifiers(\"active\");\n contentElement.addModifiers(\"active\");\n\n $(\".league-administrator__tabs-content\").addModifiers(\"preload\");\n dispatchEvent(new CustomEvent(Business.LeagueAdministratorController.TabSwitchEvent, { detail: { tabType } }));\n });\n }\n }\n}","module Business {\n export class HeaderActionsRowRenderer {\n private template: HandlebarsTemplateDelegate;\n\n public renderTemplate = (model: ClientMarkets, callBack: Function): void => {\n if (this.template == null) {\n this.template = Handlebars.compile($(\"#header-actions-row-template\").html());\n }\n\n $(\".header-actions-row-placeholder\").html(this.template(model));\n callBack();\n }\n }\n}","module Business {\n export class HeaderStatusOverviewRenderer {\n private template: HandlebarsTemplateDelegate;\n\n public renderTemplate = (model: HeaderStatusOverviewModel): void => {\n if (this.template == null) {\n this.template = Handlebars.compile($(\"#header-status-overview-template\").html());\n }\n $(\".header-status-overview-placeholder\").html(this.template(model));\n $(\".header-status-overview-placeholder\").removeModifiers(\"preload\");\n }\n\n public renderEmpty = (): void => {\n if (this.template == null) {\n this.template = Handlebars.compile($(\"#header-status-overview-template\").html());\n }\n \n $(\".header-status-overview-placeholder\").html(this.template(new HeaderStatusOverviewModel(\"\", 0, 0, 0, 0)));\n\n $(\".header-status-overview-placeholder\").addModifiers(\"preload\");\n }\n }\n}","module Business {\n export class HeaderStatusOverviewModel {\n public game: string;\n public bundleParticipants: number;\n public otherParticipants: number;\n public totalBundle: number;\n public actionCount: number;\n public isPollingParticipants: boolean;\n\n public constructor(game: string, bundleParticipants:\n number, otherParticipants: number, totalBundle: number, actionCount: number, isPollingParticipants?: boolean) {\n this.game = game;\n this.bundleParticipants = bundleParticipants;\n this.otherParticipants = otherParticipants;\n this.totalBundle = totalBundle;\n this.actionCount = actionCount;\n this.isPollingParticipants = isPollingParticipants\n }\n\n public hasActionCount = (): boolean => {\n return this.actionCount > 0;\n }\n\n public remainder = (): number => {\n return this.totalBundle - this.bundleParticipants;\n }\n\n public lowRemainderBundle = (): boolean => {\n const lowBundle = this.totalBundle / 5;\n return (this.remainder()) <= lowBundle;\n }\n\n public getRemainderBundle = (): string => {\n return this.format(this.remainder());\n }\n\n public getTotalParticipants = (): string => {\n const total = this.bundleParticipants + this.otherParticipants;\n return this.format(total);\n }\n\n public getOtherParticipants = (): string => {\n return this.format(Math.max(0, this.otherParticipants));\n }\n\n public getIsPollingParticipants = (): boolean => {\n return this.isPollingParticipants != null ? this.isPollingParticipants : false\n }\n\n private format = (number: number): string => {\n var formatMask = \"0,000\";\n return numeral(number).format(formatMask);\n }\n }\n}","/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nmodule Business {\n import Country = Platform.Country;\n import Countries = Platform.Countries;\n\n export class BusinessController {\n private _dealsTableRenderer: DealsTableRenderer;\n private _packageOptionsTableRenderer: PackageOptionsTableRenderer;\n private _packageOptionPopUpRenderer: PackageOptionPopUpRenderer;\n private _marketTabsRenderer: MarketTabsRenderer;\n private _promotionalVideoRenderer: PromotionalVideoRenderer;\n private _gameTabsRenderer: GameTabsRenderer;\n private _orderFormRenderer: OrderFormRenderer;\n private _stepsRenderer: StepsRenderer;\n private _questionsRenderer: QuestionsRenderer;\n private _clientsRenderer: ClientsRenderer;\n private _helpRenderer: HelpRenderer;\n private _headerRenderer: HeaderRenderer;\n private _brochureRenderer: BrochureRenderer;\n private _brochurePopupRenderer: BrochurePopupRenderer;\n\n private _platformRepository: Platform.Repository;\n private _tabsRepository: TabsRepository;\n private _footerImageRepository: FooterImageRepository;\n private _dealsRepository: DealsRepository;\n private _packageOptionsRepository: PackageOptionsRepository;\n private _faqRepository: FaqRepository;\n private _salesUserRepository: SalesUserRepository;\n private _brochureRepository: BrochureRepository;\n private _steamReferralRepository: SteamReferralRepository;\n private _accountDataRepository: IAccountDataRepository;\n\n private _selectedGameId: number;\n private _selectedMarketId: number;\n private _selectedDealId: number;\n private _selectedCountry: Country;\n\n private _selectedPackageType: PackageType;\n private _selectedPackageParticipants: number;\n\n private _headerSlider: any;\n\n private _regionId: number;\n private _gameTabs: GameTabs;\n private _packageOptions: PackageOptionsResult;\n\n private _indexedGameTabs: { [id: number]: GameTab } = {};\n\n public _marketDealResult: MarketDealResult;\n private _earlyBirdDiscount: EarlyBirdDiscount;\n\n private _clientInformation: ClientInformationModel;\n private _clientAdminData: SalesAccountData;\n\n private _orderpageUrl: string;\n private _cdnUrl: string;\n private selectedDropdownMarketId: number;\n\n private salesUser: SalesUser;\n\n constructor(regionId: number, cdnUrl: string, salesApiSettings: any, platformApiSettings: any, orderpageUrl: string) {\n const platformSettings = new Platform.ApiSettings(platformApiSettings);\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\n this._tabsRepository = new TabsRepository(salesSettings);\n this._platformRepository = new Platform.Repository(platformSettings, 0);\n this._footerImageRepository = new FooterImageRepository(salesSettings);\n this._dealsRepository = new DealsRepository(salesSettings);\n this._packageOptionsRepository = new PackageOptionsRepository(salesSettings);\n this._faqRepository = new FaqRepository(salesSettings);\n this._salesUserRepository = new SalesUserRepository(salesSettings);\n this._brochureRepository = new BrochureRepository(salesSettings);\n this._accountDataRepository = new AccountDataRepository(salesSettings);\n this._steamReferralRepository = new SteamReferralRepository(salesSettings);\n this._cdnUrl = cdnUrl;\n\n this._dealsTableRenderer = new DealsTableRenderer();\n this._packageOptionsTableRenderer = new PackageOptionsTableRenderer();\n this._packageOptionPopUpRenderer = new PackageOptionPopUpRenderer();\n this._promotionalVideoRenderer = new PromotionalVideoRenderer();\n this._marketTabsRenderer = new MarketTabsRenderer();\n this._gameTabsRenderer = new GameTabsRenderer();\n this._orderFormRenderer = new OrderFormRenderer();\n this._stepsRenderer = new StepsRenderer();\n this._questionsRenderer = new QuestionsRenderer();\n\n this._clientsRenderer = new ClientsRenderer();\n this._helpRenderer = new HelpRenderer();\n this._headerRenderer = new HeaderRenderer();\n this._brochureRenderer = new BrochureRenderer();\n this._brochurePopupRenderer = new BrochurePopupRenderer();\n\n this._clientInformation = this.saveClientInformation();\n this._regionId = this._clientInformation != null ? this._clientInformation.regionId : regionId;\n this._orderpageUrl = orderpageUrl;\n\n $(document).ready(() => {\n this.onDomLoaded();\n $(\"#inner-content\").css(\"width\", \"100%\").css(\"margin-bottom\", \"0px\");\n });\n }\n\n private onDomLoaded() {\n const stepModel = new StepModel(this._cdnUrl);\n this._stepsRenderer.renderTemplate(stepModel);\n const questionsModel = new QuestionsModel(this._cdnUrl);\n this._questionsRenderer.renderTemplate(questionsModel);\n this.loadSalesUser().always(() => {\n this.loadCountryCodeData();\n });\n this.initGamesAndMarketsHeader();\n this.initClientsFooter();\n this.bindContactForm();\n this.tryInitClientAccountData();\n }\n\n private saveOrderInformationToLocalStorage() {\n\n const orderInformation = new OrderInformationModel(\n this._selectedGameId,\n this._selectedMarketId,\n this._selectedDealId,\n null,\n null,\n null,\n this._selectedCountry?.id ?? 0,\n this._selectedCountry?.code ?? '',\n null,\n this._indexedGameTabs[this._selectedGameId].headerImageUrl,\n this.getRequestedParticipants(),\n false,\n this._indexedGameTabs[this._selectedGameId].salesHeaderImageUrl,\n \"\");\n\n orderInformation.saveToLocalStorage();\n }\n\n public initGamesAndMarketsHeader(): void {\n this._tabsRepository.GetGamesAndMarkets(this._regionId)\n .done((gamesTabs: GameTabs) => {\n var gameId = gamesTabs.defaultSelectedGameId;\n var marketId = gamesTabs.defaultSelectedMarketId;\n if (this._clientInformation != null) {\n marketId = this._clientInformation.marketId;\n let gameTab = gamesTabs.getByMarketId(marketId);\n if (!gameTab) {\n gameTab = gamesTabs.getByMarketId(gamesTabs.defaultSelectedMarketId);\n this._selectedMarketId = gamesTabs.defaultSelectedMarketId;\n history.pushState({}, \"\", `#${this._selectedMarketId}`);\n\n if (!gameTab) {\n ClientInformationModel.deleteFromLocalStorage();\n return NotificationBar.Display(TranslationData.get(\"Business.NoDealsAvailable\"));\n }\n }\n gameId = gameTab.gameId;\n $('#calculator-input').val(this._clientInformation.participantCount + \"\");\n }\n\n const marketIdHash = window.location.hash.slice(1);\n if (isNumeric(marketIdHash)) {\n this._selectedMarketId = +marketIdHash;\n this._selectedGameId = _.find(gamesTabs.gameTabs, g => _.any(g.marketTabs, m => m.marketId === this._selectedMarketId))?.gameId;\n } else {\n this._selectedMarketId = marketId;\n this._selectedGameId = gameId;\n }\n\n if (!this._selectedMarketId || !this._selectedGameId) {\n this._selectedMarketId = marketId;\n this._selectedGameId = gameId;\n }\n\n history.pushState({}, \"\", `#${this._selectedMarketId}`);\n\n this._gameTabs = gamesTabs;\n\n this.refreshPackageOptionTable();\n this.updatePackageTitle();\n\n gamesTabs.gameTabs.forEach(tab => {\n this._indexedGameTabs[tab.gameId] = tab;\n });\n\n this.initHeader(gamesTabs);\n\n this.refreshGameTabs();\n this.refreshMarketTabs();\n this.refreshPromotionalBlock();\n this.refreshBrochure();\n this.refreshMarketDeals(true);\n this.initHelpPage();\n\n $('#btnCalculate').click((event) => { return this.calculatorClick(null, true, true); });\n $(\"#calculator-input\").on(\"keyup\", event => event.which === 13 && this.calculatorClick(null, true, true));\n\n\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n public initClientsFooter(): void {\n $.when(this._footerImageRepository.getFooterImageUrlsForRegion(this._regionId))\n .done((imageUrls: Array) => {\n this._clientsRenderer.renderTemplate(imageUrls, () => {\n $('.bxsliderClients').bxSlider(\n {\n speed: 600,\n auto: true,\n pager: true,\n controls: false,\n responsive: true,\n adaptiveHeight: true,\n slideWidth: 1400,\n pause: 6000\n });\n });\n });\n }\n\n private initHeader(gamesTabs: GameTabs): void {\n this._headerRenderer.renderTemplate(gamesTabs, this._selectedGameId, (selectedIndex: number) => {\n this._headerSlider = $('#headerImageSlider').bxSlider(\n {\n speed: 200,\n auto: false,\n pager: false,\n controls: false,\n responsive: true,\n adaptiveHeight: true,\n startSlide: selectedIndex\n });\n\n $('.headerCarouselSlider').bxSlider(\n {\n speed: 800,\n auto: true,\n pager: false,\n controls: false,\n responsive: true,\n slideWidth: 1240,\n adaptiveHeight: true,\n });\n });\n }\n\n private loadFromLocalStorage = (selectDeal: boolean) => {\n const orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\n if (!orderInformation)\n return;\n $(\"#calculator-input\").val(orderInformation.participantCount.toString());\n let selectedDeal = this._marketDealResult.getById(orderInformation.mainDealId);\n if (this._selectedPackageType && this._selectedPackageParticipants) {\n selectedDeal = this._marketDealResult.getByTablePosition(this._selectedPackageType, this._selectedPackageParticipants);\n }\n this.calculatorClick(selectedDeal, selectDeal);\n this.renderPackageOptionTable(selectDeal ? selectedDeal?.packageType ?? PackageType.Professional : PackageType.Professional);\n if (!selectDeal) {\n this._selectedDealId = undefined;\n this._selectedPackageParticipants = undefined;\n this._selectedPackageType = undefined;\n }\n }\n\n private tryInitClientAccountData = () => {\n if (Authentication.isLoggedIn()) {\n this._accountDataRepository.getSalesAccountData().then(res => {\n this._clientAdminData = res;\n });\n }\n }\n\n //Click events\n private gametypeClick(event: JQueryEventObject): void {\n var target = $(event.target);\n $('.gametab').removeClass('active');\n $('.helptab').removeClass('active');\n target.addClass('active');\n $(\".calculator\").removeClass(\"calculator-selected\");\n $(\".market-tabs-placeholder\").removeClass(\"market-tabs-placeholder-selected-package\");\n this._selectedGameId = target.data(\"gameid\");\n var gameTab = this._indexedGameTabs[this._selectedGameId];\n this._selectedMarketId = gameTab.marketTabs[0].marketId;\n this.selectedDropdownMarketId = null;\n history.pushState({}, \"\", `#${this._selectedMarketId}`);\n this.updatePackageTitle();\n this._headerSlider.goToSlide(target.data('header-tabindex'));\n this.refreshMarketTabs();\n this.refreshPromotionalBlock();\n this.refreshBrochure();\n this.refreshPackageOptionTable();\n this.refreshMarketDeals(false, false);\n this.refreshHelpPage();\n }\n\n private marketChange(event: JQueryEventObject): void {\n var target = $(event.target);\n const marketId = +target.val();\n this.handleMarketClick(marketId, true);\n }\n\n private handleMarketClick = (marketId: number, resetDropdownMarketId: boolean) => {\n this._selectedMarketId = marketId;\n\n if (resetDropdownMarketId) {\n this.selectedDropdownMarketId = null;\n }\n history.pushState({}, \"\", `#${this._selectedMarketId}`);\n this.updatePackageTitle();\n this.refreshMarketTabs();\n this.refreshPromotionalBlock();\n this.refreshBrochure();\n this.refreshPackageOptionTable();\n this.refreshMarketDeals(false, this._selectedDealId ? true : false);\n }\n\n private calculatorClick(selectedDeal: Deal = null, selectDeal: boolean = true, centerDeal: boolean = false) {\n var recommendedPackage: PackageType = this.getRecommendedPackage();\n this.renderPackageOptionTable(selectDeal ? recommendedPackage : 0 as PackageType);\n\n var requestedParticipants: number = this.getRequestedParticipants();\n\n var recommendedDeal = selectedDeal ? selectedDeal : this.getRecommendedDeal(requestedParticipants, PackageType.Business);\n if (recommendedDeal == null) {\n return NotificationBar.Display(TranslationData.get(\"Business.NoDealsAvailable\"));\n }\n this._selectedDealId = recommendedDeal.id;\n this._dealsTableRenderer.renderTemplateWithNewDeals(this._earlyBirdDiscount, this._marketDealResult?.marketDeals ?? [],\n recommendedDeal, selectDeal, centerDeal, () => {\n $('[data-deal-id]').click((event) => { return this.dealClick(event); });\n });\n if (selectDeal) {\n $('[data-deal-id=' + recommendedDeal.id + ']').click();\n }\n }\n\n private dealClick(event: JQueryEventObject): void {\n const target = $(event.target);\n const dealId: number = target.data('deal-id');\n this._selectedDealId = dealId;\n const selectedDeal = this.getDeal(dealId);\n this._selectedPackageType = selectedDeal.packageType;\n this._selectedPackageParticipants = selectedDeal.participantCount;\n\n this._dealsTableRenderer.renderTemplateWithNewSelection(selectedDeal, () => {\n $('[data-deal-id]').click((event) => { return this.dealClick(event); });\n });\n this.renderPackageOptionTable(selectedDeal.packageType);\n this.renderOrderForm(OrderInformationModel.getOrderInformationFromLocalStorage()?.countryCode ?? this._selectedCountry?.code);\n $(\".calculator\").addClass(\"calculator-selected\");\n $(\".market-tabs-placeholder\").addClass(\"market-tabs-placeholder-selected-package\");\n this.saveOrderInformationToLocalStorage();\n }\n\n private packageOptionClick(event: JQueryEventObject): void {\n var target = $(event.target);\n var packageOptionId: number = target.data('package-option-id');\n\n while (!packageOptionId) {\n target = target.parent();\n packageOptionId = target.data('package-option-id');\n }\n\n this.renderPackageOptionPopUp(this._regionId, target.data('package-option-id'));\n }\n\n private refreshMarketDeals(withDeal: boolean, preSelectDeal: boolean = true): void {\n this._orderFormRenderer.hide();\n this._dealsTableRenderer.renderEmptyTemplate();\n $.when(\n this._dealsRepository.getDealsForMarket(this._selectedMarketId),\n this._dealsRepository.getDiscountForMarket(this._selectedMarketId))\n .done((marketDealResult: MarketDealResult, discount: EarlyBirdDiscount) => {\n marketDealResult.filterRegularOnly();\n this._marketDealResult = marketDealResult;\n this._earlyBirdDiscount = discount;\n if (withDeal && this._clientInformation != null) {\n let selectedDeal = this.getRecommendedDeal(this._clientInformation.participantCount, this._clientInformation.packageId);\n if (!selectedDeal) {\n var requestedParticipants: number = this.getRequestedParticipants();\n var packageType: PackageType = requestedParticipants >= 250 ? PackageType.Professional : PackageType.Business;\n selectedDeal = this.getRecommendedDeal(requestedParticipants, packageType);\n }\n\n this._dealsTableRenderer.renderTemplateWithNewDeals(this._earlyBirdDiscount, this._marketDealResult.marketDeals, selectedDeal, preSelectDeal, false, () => {\n $('[data-deal-id]').click((event) => { return this.dealClick(event); });\n });\n $('[data-deal-id=' + selectedDeal.id + ']').click();\n this.renderPackageOptionTable(selectedDeal.packageType);\n this.renderOrderForm();\n }\n else {\n this.loadFromLocalStorage(preSelectDeal);\n }\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Business.ErrorRetrievingDeals\"));\n });\n }\n\n private refreshGameTabs(): void {\n this._gameTabsRenderer.renderTemplate(this._gameTabs, this._selectedGameId, () => {\n $('.gametab').click((event) => { return this.gametypeClick(event); });\n });\n }\n\n private refreshMarketTabs(): void {\n this._marketTabsRenderer.renderTemplate(this._indexedGameTabs[this._selectedGameId], this._selectedMarketId, this.showMarketDropdown(), () => {\n $(\".initial-market-select\").change((event) => { return this.marketChange(event); });\n });\n }\n\n private refreshPromotionalBlock(): void {\n this._promotionalVideoRenderer.renderTemplate(this._selectedMarketId, this._regionId);\n }\n\n private refreshBrochure(): void {\n this._brochureRenderer.renderTemplate(this._selectedMarketId, this._regionId, () => {\n let popup;\n $(\".promotional-brochure__thumbnail--brochure\").on(\"click\", () => {\n this._brochurePopupRenderer.renderTemplate(() => {\n popup = $.scoritoPopup({\n elementId: 'brochure-popup',\n contentHtml: $(\".brochure-popup-placeholder\").html(),\n popupTitle: TranslationData.get(`Sales.BrochurePopup.Title`),\n widthInPixels: 600,\n follow: [true, false]\n });\n\n if (this._clientAdminData?.administratorEmail) {\n $(\".brochure-popup__input:visible\").val(this._clientAdminData.administratorEmail);\n }\n });\n\n $(\".brochure-popup__button:visible\").on(\"click\", () => {\n const brochureRequestedKey = `BusinessBrochureRequested.${this._selectedMarketId}`;\n if (moment().utc().isAfter(localStorage.getItem(brochureRequestedKey) ?? moment().utc().subtract('m', 1))) {\n localStorage.setItem(brochureRequestedKey, moment().utc().add('m', 1).toISOString());\n\n const emailAddress = $(\".brochure-popup__input:visible\").val();\n this._brochureRepository.requestBrochure(this._selectedMarketId, emailAddress, this._regionId, uiCulture).then(res => {\n if (res.isSuccess()) {\n Toast.displayLabel(\"Sales.BrochurePopup.Sent\");\n popup?.close();\n }\n else {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n popup?.close();\n localStorage.removeItem(brochureRequestedKey);\n }\n }).fail((res) => {\n const errorMessage = res.responseJSON?.errors?.EmailAddress[0] ?? TranslationData.get(\"Common.ErrorOnPage\");\n NotificationBar.Display(errorMessage);\n localStorage.removeItem(brochureRequestedKey);\n });\n }\n });\n });\n });\n }\n\n private refreshPackageOptionTable(): void {\n this._packageOptionsRepository.getPackageOptions(this._selectedMarketId)\n .done((packageOptions: PackageOptionsResult) => {\n this._packageOptions = packageOptions;\n\n this.renderPackageOptionTable(null);\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private renderPackageOptionTable(recommendedPackage: PackageType): void {\n this._packageOptionsRepository.getPackageOptions(this._selectedMarketId)\n .done((packageOptions: PackageOptionsResult) => {\n this._packageOptions = packageOptions;\n this._packageOptionsTableRenderer.renderTemplate(this._packageOptions, recommendedPackage, () => {\n $('.package-option-row').click((event) => { return this.packageOptionClick(event); });\n });\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private refreshHelpPage(): void {\n $.when(this._faqRepository.getFaqForGame(this._selectedGameId))\n .done((faq: FaqQuestions) => {\n this._helpRenderer.renderTemplate(faq, () => {\n $('.helptab[data-tab]').removeClass('active');\n $('.helptab[data-tab=\"faq\"]').addClass('active');\n $('.faq-question').click((event) => { return this.faqClick(event); });\n });\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private initHelpPage(): void {\n this.refreshHelpPage();\n\n var termsAndConditionsController = Shared.TermsAndConditionsController.GetInstance();\n $.when(termsAndConditionsController.GetTermsAndConditionsContent()).done((json: string) => {\n const result = ApiResult.fromJson(json);\n $('.helptabcontent.terms').html(result.content);\n });\n\n $('.helptabcontent.privacy').html(TranslationData.get('PrivacyTerms.Description'));\n\n $('.helptabs a').click((event) => { return this.helpTabClick(event); });\n }\n\n private renderPackageOptionPopUp(regionId: number, packageOptionId: number) {\n $.when(this._packageOptionsRepository.getPackageOptionLayoverContent(packageOptionId))\n .done((description: PackageOptionDescription) => {\n var model = new PackageOptionPopUpModel(description.description, description.imageUrls);\n\n this._packageOptionPopUpRenderer.renderTemplate(model, () => {\n $.scoritoPopup({\n elementId: 'packageoptions-popup',\n contentHtml: $(\".packageoptions-popup-placeholder\").html(),\n popupTitle: description.title,\n widthInPixels: 1240,\n follow: [true, false]\n });\n\n if (description.imageUrls.length > 1) {\n $('.bxslider').bxSlider(\n {\n speed: 600,\n auto: true,\n pager: true,\n controls: true,\n responsive: true,\n slideWidth: 780\n });\n }\n });\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private getRequestedParticipants(): number {\n var requestedParticipants = $('#calculator-input').val();\n return requestedParticipants;\n }\n\n private getRecommendedPackage(): PackageType {\n var requestedParticipants = this.getRequestedParticipants();\n var recommendedPackage: PackageType = requestedParticipants >= 500 ? PackageType.Professional : PackageType.Business;\n return recommendedPackage;\n }\n\n private getDeal(dealId: number): Deal {\n return this._marketDealResult.getById(dealId);\n }\n\n private getRecommendedDeal(requestedParticipants: number, packageType: PackageType): Deal {\n var packageDeals: Array = this._marketDealResult?.marketDeals.filter(element => element.packageType === packageType) ?? [];\n packageDeals.sort((a, b) => { return a.participantCount - b.participantCount });\n var previous: number = 0;\n\n for (var i = 0; i < packageDeals.length; i++) {\n var current: number = packageDeals[i].participantCount;\n var next: number = (i != packageDeals.length - 1) ? packageDeals[i + 1].participantCount : null;\n\n if ((requestedParticipants == current)\n || (previous == 0 && requestedParticipants <= current)\n || (next == null))\n return packageDeals[i];\n\n if (requestedParticipants >= current && requestedParticipants < next)\n return packageDeals[i + 1];\n\n previous = current;\n }\n }\n\n private orderButtonClick(): void {\n var selectedMarket = $('#order-market').val();\n\n if (this.showMarketDropdown() && (selectedMarket == null || selectedMarket <= 0)) {\n return this._orderFormRenderer.renderMarketError(() => {\n $('#btnOrder').click(event => {\n return this.orderButtonClick();\n });\n\n this._platformRepository.getCountries().done(countries => {\n $('#order-country').change(() => {\n this._selectedCountry = countries.getByCode($('#order-country').val());\n });\n });\n });\n }\n\n var selectedCountry = $('#order-country').val();\n if (selectedCountry == null || selectedCountry <= 0) {\n return this._orderFormRenderer.renderError(() => {\n $('#btnOrder').click(event => {\n return this.orderButtonClick();\n });\n this._platformRepository.getCountries().done(countries => {\n $('#order-country').change(() => {\n this._selectedCountry = countries.getByCode($('#order-country').val());\n });\n });\n });\n }\n\n this.saveOrderInformationToLocalStorage();\n const url = `${this._orderpageUrl}#${this._selectedMarketId}`;\n window.open(url, \"_self\");\n }\n\n private helpTabClick(event: JQueryEventObject): void {\n var target = $(event.target);\n\n while (!target.hasClass('helptab')) {\n target = target.parent();\n }\n\n\n $('.helptab').removeClass('active');\n target.addClass('active');\n\n var tab = target.data('tab');\n $('.helptabcontent').hide();\n $(`.helptabcontent[data-tab=\"${tab}\"]`).show();\n }\n\n private faqClick(event: JQueryEventObject): void {\n var target = $(event.target);\n\n while (!target.hasClass('faq-question')) {\n target = target.parent();\n }\n $('.faq-question').not(target).removeClass('active')\n $('.faq-question').not(target).find('.faq-question-content').hide(100);\n\n $(target).toggleClass('active');\n if ($(target).hasClass('active'))\n target.find('.faq-question-content').show(100);\n else {\n target.find('.faq-question-content').hide(100);\n }\n }\n\n private renderOrderForm(countryCode: string = null) {\n\n if (this._selectedDealId !== undefined) {\n $.when(this._platformRepository.getCountries(),\n this._dealsRepository.getCalculatedDeal(this._selectedDealId),\n this._tabsRepository.GetGamesAndMarkets(this._regionId)\n ).done((countries: Countries, calculation: CalculatedDeal, gameTabs: GameTabs) => {\n var gameTab = gameTabs.getByGameId(this._selectedGameId);\n var selectedDeal = this.getDeal(this._selectedDealId);\n var viewModel: OrderFormModel = new OrderFormModel();\n viewModel.markets = gameTab.marketTabs;\n viewModel.packageDescription = PackageType[selectedDeal.packageType];\n viewModel.participantCount = selectedDeal.participantCount;\n viewModel.gameName = TranslationData.get(`Scorito.GameType.${KnownGameIds[this._selectedGameId]}`);\n viewModel.imageUrl = this._marketDealResult.imageUrl;\n viewModel.countries = countries.sortByName();\n viewModel.selectedCountry = this._selectedCountry ?? countries.getByCode('NLD');\n viewModel.total = calculation.total;\n viewModel.selectedMarketId = +this._selectedMarketId\n\n viewModel.showMarkets = this.showMarketDropdown();\n\n if (calculation.earlyBirdDiscount !== 0) {\n viewModel.subtotal = calculation.subtotal;\n viewModel.discount = calculation.earlyBirdDiscount;\n }\n\n var client = ClientInformationModel.getClientInformationFromLocalStorage();\n if (client != null) {\n viewModel.hasClient = true;\n viewModel.clientCompany = client.organization;\n viewModel.clientName = `${client.adminFirstname} ${client.adminLastname}`;\n viewModel.clientGender = this.getPreamble(client.adminGender);\n viewModel.selectedCountry = countries.getByCode(client.country);\n }\n\n if (this.salesUser?.hasPurchasedMarket(this._selectedMarketId)) {\n this._orderFormRenderer.renderAlreadyPurchased(viewModel, () => {\n $(\".already-purchased-order-form__go-to-management-button\").on(\"click\", () => {\n window.location.href = \"/management\";\n });\n\n $(\".already-purchased-order-form__log-out-button\").on(\"click\", () => {\n window.location.href = \"/user/logout\";\n });\n\n $(\"#order-market\").change(() => {\n const marketId = +$('#order-market').val();\n this.selectedDropdownMarketId = marketId;\n this.handleMarketClick(marketId, false);\n });\n });\n return;\n }\n this._orderFormRenderer.renderTemplateWithNewModel(viewModel, () => {\n $('#btnOrder').click(event => { return this.orderButtonClick() });\n\n $('#order-market').change(event => {\n const marketId = +$('#order-market').val();\n this.selectedDropdownMarketId = marketId;\n if (this.selectedDropdownMarketId > 0) {\n this.handleMarketClick(marketId, false);\n }\n });\n\n this._selectedCountry = countries.getByCode($('#order-country').val());\n $('#order-country').change(event => {\n this._selectedCountry = countries.getByCode($('#order-country').val());\n });\n\n if (countryCode) {\n this._selectedCountry = countries.getByCode(countryCode);\n $(\"#order-country\").val(countryCode);\n }\n });\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n }\n\n private updatePackageTitle() {\n $('#packageTitle').text(TranslationData.get(`Sales.Package.Title.${this._selectedGameId}`));\n }\n\n private saveClientInformation(): ClientInformationModel {\n let clientInformation = ClientInformationModel.getClientInformationFromUrl();\n if (clientInformation) {\n clientInformation.saveToLocalStorage();\n\n this._steamReferralRepository.create(\n clientInformation.organization,\n clientInformation.address,\n clientInformation.adminFirstname + \" \" + clientInformation.adminLastname,\n clientInformation.phoneNumber,\n clientInformation.adminEmail,\n clientInformation.marketId,\n clientInformation.packageId,\n clientInformation.participantCount);\n }\n else {\n clientInformation = ClientInformationModel.getClientInformationFromLocalStorage();\n }\n\n window.history.replaceState({}, document.title, `/${window.location.href.substring(window.location.href.lastIndexOf(\"/\") + 1).split(\"?\")[0]}`);\n return clientInformation;\n }\n\n private getPreamble(gender: Gender): string {\n if (gender === Gender.Male)\n return TranslationData.get('Common.Preamble.Male');\n if (gender === Gender.Female)\n return TranslationData.get('Common.Preamble.Female');;\n\n return '';\n }\n\n private showMarketDropdown = () => {\n return !(this._selectedGameId === KnownGameIds.CyclingTeamManager ||\n this._selectedGameId === KnownGameIds.DartsManager ||\n this._selectedGameId === KnownGameIds.GpManager ||\n this._selectedGameId === KnownGameIds.GpTeamManager ||\n this._selectedGameId === KnownGameIds.FootballTournament);\n }\n\n private bindContactForm = () => {\n $(\".deals-side-input\").on(\"focus\", e => {\n $(e.currentTarget).removeClass(\"deals-side-input--invalid\");\n });\n\n $(\".deals-side-button\").on(\"click\", () => {\n const company = $(\".deals-side-input__company\").val().trim();\n const name = $(\".deals-side-input__name\").val().trim();\n const email = $(\".deals-side-input__email\").val().trim();\n const phoneNumber = $(\".deals-side-input__phone-number\").val().trim();\n const question = $(\".deals-side-input__question\").val().trim();\n\n let hasErrors = false;\n if (!company) {\n $(\".deals-side-input__company\").addClass(\"deals-side-input--invalid\");\n hasErrors = true;\n }\n if (!name) {\n $(\".deals-side-input__name\").addClass(\"deals-side-input--invalid\");\n hasErrors = true;\n }\n if (!email || !Email.Validate(email)) {\n $(\".deals-side-input__email\").addClass(\"deals-side-input--invalid\");\n hasErrors = true;\n }\n if (!phoneNumber) {\n $(\".deals-side-input__phone-number\").addClass(\"deals-side-input--invalid\");\n hasErrors = true;\n }\n if (!question) {\n $(\".deals-side-input__question\").addClass(\"deals-side-input--invalid\");\n hasErrors = true;\n }\n\n const sendButton = $(\".deals-side-button\");\n if (!hasErrors && !sendButton.hasClass(\"preload\")) {\n const formData = new FormData();\n formData.append(\"subject\", company);\n formData.append(\"message\", question);\n formData.append(\"name\", name);\n formData.append(\"email\", email);\n formData.append(\"phoneNumber\", phoneNumber);\n\n sendButton.addClass(\"preload\");\n this._platformRepository.sendBusinessMessageAnonymous(formData).done(() => {\n $(\".deals-side-input__company\").val(\"\");\n $(\".deals-side-input__name\").val(\"\");\n $(\".deals-side-input__email\").val(\"\");\n $(\".deals-side-input__phone-number\").val(\"\");\n $(\".deals-side-input__question\").val(\"\");\n Toast.displayLabel(\"Scorito.PoolAdmin.Mails.Sent\");\n }).fail(() => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n sendButton.removeClass(\"preload\");\n });\n }\n });\n }\n\n private loadSalesUser = () => {\n if (Authentication.isLoggedIn()) {\n return this._salesUserRepository.get().done((salesUser: SalesUser) => {\n this.salesUser = salesUser;\n });\n }\n return $.Deferred().resolve(null).promise();\n }\n\n private loadCountryCodeData = () => {\n this._platformRepository.getCountries().done((countries: Countries) => {\n const countryCodes = countries.getCountryCallingCodes();\n _.each(countryCodes, key => {\n $(\".country-select-input--country-code\").append(new Option(`+${key}`, key));\n });\n\n if (this.salesUser) {\n this._selectedCountry = countries.getById(this.salesUser.countryId);\n }\n });\n }\n }\n}\n","/// \n/// \n/// \n/// \n/// \n\nmodule Business {\n import UpgradeInformationModel = ClientAdministrator.UpgradeInformationModel;\n\n export class CartController {\n private readonly _dealsRepository: DealsRepository;\n private readonly _platformRepository: Platform.Repository;\n private readonly _salesPackageRepository: SalesPackageRepository;\n\n public orderInformation: OrderInformationModel;\n public upgradeInformation: UpgradeInformationModel;\n\n private _marketDealResult: MarketDealResult;\n private _mainMarketDiscount: EarlyBirdDiscount;\n private _combiDealMarkets: CombiDeals;\n private _marketSalesPackages: MarketSalesPackagesResult;\n\n private _dealsByMarket: MarketDealResults = new MarketDealResults();\n\n private _cartRenderer: CartRenderer;\n private _summaryRenderer: SummaryRenderer;\n private _personalizePopupRenderer: PersonalizePopupRenderer;\n private _hideSummary: boolean;\n\n private _updateCartCallback: Function;\n\n constructor(salesApiSettings: any, platformApiSettings: any, updateCartCallback: Function) {\n const platformSettings = new Platform.ApiSettings(platformApiSettings);\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\n this._platformRepository = new Platform.Repository(platformSettings, 0);\n this._dealsRepository = new DealsRepository(salesSettings);\n this._salesPackageRepository = new SalesPackageRepository(salesSettings);\n\n this._updateCartCallback = updateCartCallback;\n\n this.orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\n this.upgradeInformation = UpgradeInformationModel.getFromLocalStorage();\n\n this._cartRenderer = new CartRenderer();\n this._summaryRenderer = new SummaryRenderer();\n this._personalizePopupRenderer = new PersonalizePopupRenderer();\n }\n\n public initializeCart(renderType: CartRenderType, hideSummary: boolean = false): JQueryPromise {\n this._hideSummary = hideSummary;\n const deferred = $.Deferred();\n\n if (this.orderInformation == null) {\n console.error(`Empty order cart when trying to initialize`);\n return deferred.reject().promise();\n }\n\n $.when(\n this._dealsRepository.getDealsForMarket(this.orderInformation.marketId),\n this._dealsRepository.getDiscountForMarket(this.orderInformation.marketId),\n this._dealsRepository.getCombiDealsForMarket(this.orderInformation.marketId),\n this._salesPackageRepository.getSalesPackagesByMarketAndCountry(this.orderInformation.marketId, this.orderInformation.countryId)\n )\n .done((marketDealResult: MarketDealResult, discount: EarlyBirdDiscount, combiDeals: CombiDeals, marketSalesPackages: MarketSalesPackagesResult) => {\n const deal = marketDealResult.getById(this.orderInformation.mainDealId);\n if (deal)\n marketDealResult.filterByType(deal.packageType);\n\n this._marketDealResult = marketDealResult;\n\n this._mainMarketDiscount = discount;\n this._combiDealMarkets = combiDeals;\n this._marketSalesPackages = marketSalesPackages;\n\n this.initializeCombiDeals(() => { deferred.resolve(); }, renderType);\n });\n\n return deferred.promise();\n }\n\n public initializeUpgradeCart = (): void => {\n if (this.upgradeInformation == null) {\n console.error(`Empty upgrade cart when trying to initialize`);\n return;\n }\n\n $.when(\n this._dealsRepository.getDealsForMarket(this.upgradeInformation.marketId),\n this._dealsRepository.getPackageUpgrades(this.upgradeInformation.marketId),\n this._platformRepository.getCountries(),\n this._salesPackageRepository.getSalesPackagesByMarketAndCountry(this.upgradeInformation.marketId, this.upgradeInformation.countryId)\n ).done((marketDealResult: MarketDealResult, upgrades: Deals, countries: Platform.Countries, marketSalesPackages: MarketSalesPackagesResult) => {\n marketDealResult.filterByType(PackageType.Budget);\n this._marketSalesPackages = marketSalesPackages;\n\n if (marketDealResult.marketDeals.length < 1) {\n console.error(`Missing upgrade deals for market ${this.upgradeInformation.marketId}`);\n }\n\n if (this.upgradeInformation.packageUpgradeDealId != null || this.upgradeInformation.participantUpgradeDealId != null || !_.isEmpty(this.upgradeInformation.salesPackageIdsWithAmounts)) {\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\n }\n\n addEventListener(\"updatePayByInvoice\", _ => {\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\n });\n\n addEventListener(\"updateCountryId\", _ => {\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\n });\n\n addEventListener(\"updateVatNumber\", _ => {\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\n });\n\n addEventListener(\"updateCouponCode\", _ => {\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\n });\n\n addEventListener(\"updateSalesPackages\", _ => {\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\n });\n });\n }\n\n private initializeCombiDeals(callback: Function, renderType: CartRenderType) {\n let getCombiDealsActions: Array> = new Array();\n this._combiDealMarkets.each(combi => {\n getCombiDealsActions.push(this._dealsRepository.getDealsForMarket(combi.dealMarketId));\n });\n\n const mainDeal = this.getDeal(this.orderInformation.marketId, this.orderInformation.mainDealId);\n\n let controller = this;\n $.when(...getCombiDealsActions).done(function () {\n let result: Array = Array.prototype.slice.call(arguments);\n result.forEach((mdr) => {\n mdr.filterByType(mainDeal.packageType);\n controller._dealsByMarket.add(mdr);\n });\n\n controller.updateCart(renderType);\n callback();\n });\n }\n\n private addSalesPackagesToModel = (cartModel: CartModel, salesPackageIdsWithAmounts: Record) => {\n let salesPackages: MarketSalesPackage[] = [];\n\n const salesPackageIds = this.getPurchaseInformationModel()?.getSalesPackageIds() ?? [];\n for (let i = 0; i < salesPackageIds.length; i++) {\n const salesPackageId = salesPackageIds[i];\n const salesPackage = this._marketSalesPackages.getById(+salesPackageId);\n if (salesPackage != null) {\n salesPackages.push(salesPackage);\n }\n }\n\n salesPackages.sort((a, b) => {\n if (a.type < b.type) return -1;\n if (a.type > b.type) return 1;\n return 0;\n });\n\n for (let i = 0; i < salesPackages.length; i++) {\n const salesPackage = salesPackages[i];\n const amount = salesPackageIdsWithAmounts[salesPackage.id];\n const subtitle = amount > 1 ? \"Business.SalesPackage.Packages\" : \"Business.SalesPackage.Package\";\n cartModel.add({\n id: +salesPackage.id,\n type: \"salesPackage\",\n canPersonalize: salesPackage.type === SalesPackageType.TrophyPackage,\n title: TranslationData.get(`Business.SalesPackage.${salesPackage.id}.Title`),\n imageUrl: salesPackage.imageUrls?.[0],\n price: salesPackage.price,\n subTitle: `${amount} ${TranslationData.get(subtitle)}`,\n amount: amount,\n totalPrice: salesPackage.price * amount\n } as SalesPackageRowModel)\n }\n }\n\n public createCartModel(): CartModel {\n let cartModel = new CartModel();\n const mainDeal = this.getDeal(this.orderInformation.marketId, this.orderInformation.mainDealId);\n const mainMarketId = this.orderInformation.marketId;\n let mainPackageRow = new PackageRowModel(mainDeal, mainMarketId, this._marketDealResult.gameName, this._marketDealResult.eventName, this._marketDealResult.imageUrl);\n if (this._mainMarketDiscount)\n mainPackageRow.setDiscount(DiscountTypes.EarlyBird, this._mainMarketDiscount.discount);\n\n mainPackageRow.setAdditionalDeals(this._marketDealResult.marketDeals.filter(d => !d.upgradeOnly), null);\n cartModel.addMainPackage(mainPackageRow);\n\n this.orderInformation.dealIds.forEach((dealId: number) => {\n let marketId = this.getMarketIdForDeal(dealId);\n let deal = this.getDeal(marketId, dealId);\n if (deal) {\n const marketDealResult = this._dealsByMarket.getByMarketId(marketId);\n let rowModel = new PackageRowModel(deal, marketId, marketDealResult.gameName, marketDealResult.eventName, marketDealResult.imageUrl);\n\n const discountPercentage = this._combiDealMarkets.getByDealMarketId(marketId).discountPercentage;\n rowModel.setDiscount(DiscountTypes.CombiDeal, discountPercentage);\n\n rowModel.setAdditionalDeals(this.getDealsForMarketId(marketId), mainDeal.participantCount);\n\n cartModel.add(rowModel);\n }\n });\n\n this.addSalesPackagesToModel(cartModel, this.orderInformation.salesPackageIdsWithAmounts);\n\n return cartModel;\n }\n\n public renderCart(cartModel: CartModel) {\n this._cartRenderer.renderTemplate(cartModel, () => {\n this.bindPackageRows();\n });\n }\n\n public renderUpgradeCart = (marketDealResult: MarketDealResult, upgrades: Deals, countries: Platform.Countries): CartModel => {\n const marketId = this.upgradeInformation.marketId;\n const cartModel = new CartModel();\n if (this.upgradeInformation.participantUpgradeDealId) {\n const participantDeal = marketDealResult.getById(this.upgradeInformation.participantUpgradeDealId);\n let rowModel = new PackageRowModel(participantDeal, marketId, marketDealResult.gameName, marketDealResult.eventName, marketDealResult.imageUrl);\n rowModel.setAdditionalDeals(marketDealResult.marketDeals, null);\n rowModel.setIsParticipantUpgrade(true);\n cartModel.addMainPackage(rowModel);\n }\n if (this.upgradeInformation.packageUpgradeDealId) {\n const packageDeal = upgrades.getByDealId(this.upgradeInformation.packageUpgradeDealId);\n let rowModel = new PackageRowModel(packageDeal, marketId, marketDealResult.gameName, marketDealResult.eventName, marketDealResult.imageUrl);\n rowModel.setIsPackageUpgrade(true);\n cartModel.addMainPackage(rowModel);\n }\n if (!_.isEmpty(this.upgradeInformation.salesPackageIdsWithAmounts)) {\n this.addSalesPackagesToModel(cartModel, this.upgradeInformation.salesPackageIdsWithAmounts);\n }\n\n this._cartRenderer.renderTemplate(cartModel, () => {\n this.bindParticipantsDropdown(marketDealResult, upgrades, countries);\n this.bindPersonalizeButton();\n });\n\n return cartModel;\n }\n\n public updateCountry = (countryId: number) => {\n this._platformRepository.getCountries().done(countries => {\n const countryCode = countries.getById(countryId)?.code;\n if (this.isUpgrade()) {\n this.upgradeInformation.updateCountry(countryId);\n dispatchEvent(new Event(\"updateCountryId\"));\n }\n else {\n this.orderInformation.updateCountry(countryId, countryCode);\n this.updateCart(CartRenderType.All);\n }\n });\n }\n\n public setvatNumber = (vatNumber: string) => {\n if (this.isUpgrade()) {\n this.upgradeInformation.setVatNumber(vatNumber);\n dispatchEvent(new Event(\"updateVatNumber\"));\n }\n else {\n this.orderInformation.setVatNumber(vatNumber);\n this.updateCart(CartRenderType.All);\n }\n }\n\n public updateCoupon = (couponCode: string) => {\n if (this.isUpgrade()) {\n this.upgradeInformation.setCouponCode(couponCode);\n this.upgradeInformation.saveToLocalStorage();\n dispatchEvent(new Event(\"updateCouponCode\"));\n }\n else {\n this.orderInformation.updateCoupon(couponCode);\n this.updateCart(CartRenderType.All);\n }\n }\n\n public updatePayByInvoice = (payByInvoice: boolean) => {\n if (this.isUpgrade()) {\n this.upgradeInformation.updatePayByInvoice(payByInvoice);\n dispatchEvent(new Event(\"updatePayByInvoice\"));\n return;\n }\n this.orderInformation.updatePayByInvoice(payByInvoice);\n this.updateCart(CartRenderType.All);\n }\n\n private calculateOrder(renderType: CartRenderType): JQueryPromise {\n const deferred = $.Deferred();\n $.when(\n this._dealsRepository.calculateOrder(JSON.stringify(this.orderInformation)),\n this._platformRepository.getCountries()\n ).done((result: CalculatedOrder, countries: Platform.Countries) => {\n\n let country = (countries.getById(this.orderInformation.countryId) ?? countries.first())?.name;\n let summary = new SummaryModel(result, country);\n\n if (renderType === CartRenderType.All && !this._hideSummary) {\n // only needed if the sideview also rendered\n this._summaryRenderer.renderTemplate(summary);\n }\n\n deferred.resolve(summary);\n });\n\n return deferred.promise();\n }\n\n private calculateUpgradeOrder = (marketDealResult: MarketDealResult, upgrades: Deals, countries: Platform.Countries) => {\n return this._dealsRepository.calculateUpgrade(\n this.upgradeInformation.marketId,\n this.upgradeInformation.participantUpgradeDealId,\n this.upgradeInformation.packageUpgradeDealId,\n this.upgradeInformation.payByInvoice,\n this.upgradeInformation.countryId,\n this.upgradeInformation.vatNumber,\n this.upgradeInformation.couponCode,\n this.upgradeInformation.salesPackageIdsWithAmounts\n ).done((calculatedOrder: CalculatedOrder) => {\n const cart = this.renderUpgradeCart(marketDealResult, upgrades, countries);\n const country = countries.getById(this.upgradeInformation.countryId);\n const summary = new SummaryModel(calculatedOrder, country.name);\n if (!this._hideSummary) {\n this._summaryRenderer.renderTemplate(summary);\n }\n\n this._updateCartCallback(summary, cart);\n });\n }\n\n public addDealToCart(dealId: number) {\n this.orderInformation.dealIds.push(dealId);\n this.updateCart(CartRenderType.All);\n }\n\n public getPurchaseInformationModel = (): PurchaseInformationModel => this.isUpgrade() ? this.upgradeInformation : this.orderInformation;\n\n public setSalesPackageInCart(id: number, amount: number) {\n const purchaseInformationModel = this.getPurchaseInformationModel();\n\n if (amount <= 0) {\n delete purchaseInformationModel.salesPackageIdsWithAmounts[id];\n }\n else {\n purchaseInformationModel.salesPackageIdsWithAmounts[id] = amount;\n }\n\n purchaseInformationModel.saveToLocalStorage();\n if (this.isUpgrade()) {\n dispatchEvent(new Event(\"updateSalesPackages\"));\n }\n else {\n this.updateCart(CartRenderType.OnlySideView);\n }\n }\n\n private updateCartHandler = (renderType: CartRenderType) => {\n const cartModel = this.createCartModel();\n this.orderInformation?.saveToLocalStorage();\n this.upgradeInformation?.saveToLocalStorage();\n\n this.calculateOrder(renderType).done((summary) => {\n this._updateCartCallback(summary, cartModel);\n\n if (renderType === CartRenderType.All) {\n this.renderCart(cartModel);\n if (!this._hideSummary) {\n this._summaryRenderer.renderTemplate(summary);\n }\n }\n });\n }\n\n private updateCart = _.debounce(this.updateCartHandler, 200);\n\n private bindPackageRows() {\n this.bindPackageRowDropdown();\n this.bindPackageRowDeleteButton();\n this.bindPersonalizeButton();\n }\n\n private bindPackageRowDeleteButton() {\n $('.icon-cross').click(event => {\n const target = $(event.target);\n const dealId = parseInt(target.data('dealid'));\n this.orderInformation.dealIds = this.orderInformation.dealIds.filter(d => d != dealId);\n this.updateCart(CartRenderType.All);\n });\n }\n\n private bindPackageRowDropdown() {\n $('.select-participants.packagerow').change((event) => {\n const target = $(event.target);\n const marketId = target.data('marketid');\n const selectedDeal = parseInt(target.val());\n\n if (marketId === this._marketDealResult.marketId) {\n this.orderInformation.mainDealId = selectedDeal;\n this.consolidateCombideals();\n }\n else {\n const previousDeal = target.data('pre');\n const index = this.orderInformation.dealIds.indexOf(previousDeal);\n if (index !== -1) {\n this.orderInformation.dealIds[index] = selectedDeal;\n }\n else {\n this.orderInformation.dealIds.push(selectedDeal);\n }\n }\n this.updateCart(CartRenderType.All);\n });\n }\n\n private bindParticipantsDropdown = (marketDealResult: MarketDealResult, upgrades: Deals, countries: Platform.Countries) => {\n $('.select-participants.packagerow').change((event) => {\n const elem = $(event.currentTarget);\n const selectedDeal = marketDealResult.getById(+elem.val());\n this.upgradeInformation.setParticipantUpgrade(selectedDeal);\n\n this.calculateUpgradeOrder(marketDealResult, upgrades, countries);\n });\n }\n\n private consolidateCombideals() {\n const mainDeal = this.getDeal(this.orderInformation.marketId, this.orderInformation.mainDealId);\n\n let removeDeals: Array = new Array();\n let addDeals: Array = new Array();\n\n this.orderInformation.dealIds.forEach((dealId: number) => {\n let marketId = this.getMarketIdForDeal(dealId);\n let deal = this.getDeal(marketId, dealId);\n if (deal.participantCount > mainDeal.participantCount) {\n removeDeals.push(deal.id);\n deal = this.getDealByParticipantCount(marketId, mainDeal.participantCount);\n addDeals.push(deal.id);\n }\n });\n if (removeDeals.length > 0 || addDeals.length > 0) {\n this.orderInformation.dealIds = this.orderInformation.dealIds.filter(d => removeDeals.indexOf(d) == -1);\n addDeals.forEach(d => { this.orderInformation.dealIds.push(d) });\n }\n }\n\n public getDeal(marketId: number, dealId: number): Deal {\n if (this._marketDealResult.marketId == marketId)\n return this._marketDealResult.marketDeals.filter(d => d.id == dealId)[0];\n else\n return this.getDealsForMarketId(marketId).filter(d => d.id == dealId)[0];\n }\n\n public getDealByParticipantCount(marketId: number, participantCount: number) {\n return this.getDealsForMarketId(marketId).filter(d => d.participantCount == participantCount)[0];\n }\n\n public getMarketDealResult(marketId: number) {\n return this._dealsByMarket.getByMarketId(marketId);\n }\n\n public getDealsForMarketId(marketId: number): Array {\n return this._dealsByMarket.getByMarketId(marketId).marketDeals;\n }\n\n public getMarketIdForDeal(dealId: number): number {\n return this._dealsByMarket.getByDealId(dealId).marketId;\n }\n\n public getMarketDealsByDealId = (dealId: number): Deal[] => {\n return this._dealsByMarket.getByDealId(dealId)?.marketDeals ?? [];\n }\n\n public getGameIdForMarket(marketId: number): number {\n return this._combiDealMarkets.getByDealMarketId(marketId).dealGameId;\n }\n\n public getCombiDealMarkets(): CombiDeals {\n return this._combiDealMarkets;\n }\n\n public isUpgrade = (): boolean => {\n return this.upgradeInformation != null;\n }\n\n public deleteUpgradeInformation = () => {\n this.upgradeInformation = null;\n UpgradeInformationModel.deleteFromLocalStorage();\n }\n\n public isEmpty = () => {\n return (this.orderInformation == null && this.upgradeInformation == null)\n || (\n (this.orderInformation?.mainDealId ?? 0) === 0\n && (this.orderInformation?.dealIds ?? []).length === 0\n && _.isEmpty(this.orderInformation?.salesPackageIdsWithAmounts)\n && (this.upgradeInformation?.packageUpgradeDealId ?? 0) == 0\n && (this.upgradeInformation?.participantUpgradeDealId ?? 0) == 0\n && _.isEmpty(this.upgradeInformation.salesPackageIdsWithAmounts)\n );\n }\n\n public isEmptyIgnoreSalesPackages = () => {\n return (this.orderInformation == null && this.upgradeInformation == null)\n || (\n (this.orderInformation?.mainDealId ?? 0) === 0\n && (this.orderInformation?.dealIds ?? []).length === 0\n && (this.upgradeInformation?.packageUpgradeDealId ?? 0) == 0\n && (this.upgradeInformation?.participantUpgradeDealId ?? 0) == 0\n );\n }\n\n public getMarketId = () => {\n if (this.upgradeInformation) {\n return this.upgradeInformation.marketId;\n }\n if (this.orderInformation) {\n return this.orderInformation.marketId;\n }\n }\n\n public bindPersonalizeButton = () => {\n $(\".package-row__personalize-button\").on(\"click\", (e) => {\n const elem = $(e.currentTarget);\n const row = elem.closest(\".package-row\");\n const id: number = row.data(\"id\")\n\n const purchaseInformationModel = this.getPurchaseInformationModel();\n let popup;\n this._personalizePopupRenderer.renderTemplate(() => {\n popup = $.scoritoPopup({\n elementId: 'personalize-popup',\n contentHtml: $(\".personalize-popup-placeholder\").html(),\n popupTitle: TranslationData.get(`Sales.Cart.Personalize.Title`),\n widthInPixels: 600,\n follow: [true, false]\n });\n $(\".personalize-popup__input\").val(purchaseInformationModel.salesPackagePersonalizationTexts?.[+id])\n })\n\n $(\".personalize-popup__button\").on(\"click\", () => {\n const value = $(\".personalize-popup__input:visible\").val();\n\n if (value.length > 0 && value.length <= 25) {\n purchaseInformationModel.salesPackagePersonalizationTexts[+id] = value;\n }\n else {\n delete purchaseInformationModel.salesPackagePersonalizationTexts[+id];\n }\n\n purchaseInformationModel.saveToLocalStorage();\n popup?.close();\n Toast.displayLabel(\"Business.PersonalizePopup.Saved\");\n })\n })\n }\n }\n}","/// \n/// \n/// \n/// \n\nmodule Business {\n import Countries = Platform.Countries;\n import AdyenAuthResult = Business.AdyenAuthResult;\n\n declare var dataLayer: any;\n declare var window: any;\n\n export class CheckoutController {\n private readonly platformRepository: Platform.Repository;\n private readonly userRepository: UserRepository;\n private readonly paymentRepository: PaymentRepository;\n private readonly accountDataRepository: AccountDataRepository;\n private readonly territoryRepository: TerritoryRepository;\n private readonly salesUserRepository: SalesUserRepository;\n private readonly salesPackageRepository: SalesPackageRepository;\n\n private readonly checkoutRenderer: CheckoutRenderer;\n private readonly checkoutProgressRenderer: CheckoutProgressRenderer;\n private readonly paymentMethodsRenderer: PaymentMethodsRenderer;\n private readonly totalRenderer: TotalRenderer;\n\n private readonly checkoutProgressModel: CheckoutProgressModel;\n private readonly clientInformation: ClientInformationModel;\n\n private marketSalesPackages: MarketSalesPackagesResult;\n private salesAccountData: SalesAccountData;\n private signUpDeadline: string;\n private isValidatingUser: boolean;\n\n private readonly orderUrl: string;\n private readonly managementUrl: string;\n private readonly cdnUrl: string;\n private readonly checkoutUrl: string;\n private readonly cartController: CartController;\n\n private readonly enviroment: string;\n private readonly clientKey: string;\n\n private countries: Countries;\n private summary: SummaryModel;\n private salesUser: SalesUser;\n private adyenCheckout: UIElement;\n\n constructor(salesApiSettings: any, platformApiSettings: any, userApiSettings: any, cdnUrl: string, orderUrl: string, managementUrl: string, checkoutUrl: string, adyenClientKey: string, adyenEnviroment: string) {\n const platformSettings = new Platform.ApiSettings(platformApiSettings);\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\n this.platformRepository = new Platform.Repository(platformSettings, 0);\n this.userRepository = new UserRepository(new ApiSettings.UserApiSettings(userApiSettings));\n this.paymentRepository = new PaymentRepository(salesSettings);\n this.accountDataRepository = new AccountDataRepository(salesSettings);\n this.territoryRepository = new TerritoryRepository(platformSettings);\n this.salesUserRepository = new SalesUserRepository(salesSettings);\n this.salesPackageRepository = new SalesPackageRepository(salesSettings);\n\n this.checkoutRenderer = new CheckoutRenderer();\n this.checkoutProgressRenderer = new CheckoutProgressRenderer();\n this.paymentMethodsRenderer = new PaymentMethodsRenderer();\n this.totalRenderer = new TotalRenderer();\n\n this.checkoutProgressModel = CheckoutProgressModel.getFromLocalStorage();\n this.clientInformation = ClientInformationModel.getClientInformationFromLocalStorage();\n\n this.orderUrl = orderUrl;\n this.managementUrl = managementUrl;\n this.cdnUrl = cdnUrl;\n this.checkoutUrl = checkoutUrl;\n\n this.enviroment = adyenEnviroment;\n this.clientKey = adyenClientKey;\n\n this.cartController = new CartController(salesApiSettings, platformApiSettings,\n (summary: SummaryModel, cartModel: CartModel) => {\n this.summary = summary;\n const amount = `€ ${numeral(this.summary.payByInvoiceCost).format(\"0,000.00\")}`;\n $(`.payment-method__container[data-invoice=\"true\"] .payment-method__checkmark-sub-text`).html(`(${amount} ${TranslationData.get(\"Common.Extra\")})`);\n\n this.totalRenderer.renderTemplate(summary.netTotal, () => {\n this.initializeInvoiceCheckout();\n this.initializeAdyenCheckout();\n });\n\n this.fillConfirmPaymentMethod();\n\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get(UserValidationController.returnAfterLogin) === \"true\") {\n localStorage.removeItem(UserValidationController.createNewAccountLocalStorageKey);\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.pathname, UserValidationController.returnAfterLogin));\n this.switchStep(summary.isFree() ? CheckoutProgressStep.Three : CheckoutProgressStep.Two);\n this.initializeAdyenCheckout();\n }\n\n return this.renderOrderSummary(summary, cartModel);\n });\n\n if (this.cartController.isEmpty()) {\n window.location.href = \"/\";\n return;\n }\n\n $(document).ready(() => {\n this.onDomLoaded();\n $(\"#inner-content\").css(\"width\", \"100%\");\n window.onhashchange = (event: HashChangeEvent) => {\n if (event.newURL !== event.oldURL) {\n if (event.newURL.lastIndexOf('#') === -1) return;\n const hash = event.newURL.substring(event.newURL.lastIndexOf('#'));\n const step = this.getStepFromUrlHash(hash, false);\n if (step === -1) return;\n this.checkoutProgressModel.updateStep(step);\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\n this.switchStep(step);\n }\n };\n });\n\n $(window).bind(\"pageshow\", function (event) {\n if ((event.originalEvent as any).persisted) {\n window.location.reload()\n }\n });\n }\n\n private getStepFromUrlHash(from: string, returnDefaultStepOne: boolean): CheckoutProgressStep | number {\n if (from && from.length > 0) {\n const hashText = from.substring(1);\n const step = +hashText as CheckoutProgressStep;\n if (!isNaN(step) && typeof CheckoutProgressStep[step] !== 'undefined') {\n return step;\n }\n }\n return returnDefaultStepOne ? this.checkoutProgressModel.currentStep : -1;\n }\n\n private onDomLoaded() {\n this.loadSalesUser().always(() => {\n this.loadSalesAccountData();\n this.loadOrderData();\n this.loadCartData();\n this.loadPaymentData();\n this.loadSalesPackages();\n\n const step = this.getStepFromUrlHash(window.location.hash, true);\n this.switchStep(step);\n\n this.updateDomLoadedStep();\n\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\n this.showPopup();\n\n $(\".business-checkout__administrator-info\").toggle(!this.cartController.isUpgrade());\n this.showSalesPackageAddressMessage();\n });\n }\n\n private updateDomLoadedStep = (): void => {\n if (localStorage[UserValidationController.createNewAccountLocalStorageKey] === \"true\" && $(\".administrator-info__input--password\").val().trim() === \"\") {\n this.checkoutProgressModel.updateStep(CheckoutProgressStep.One);\n }\n }\n\n private showPopup = () => {\n const urlParams = new URLSearchParams(window.location.search);\n\n if (!urlParams.has(\"authResult\")) {\n return;\n }\n\n if (+urlParams.get(\"authResult\") === AdyenAuthResult.Authorised) {\n return;\n }\n window.history.replaceState({}, document.title, window.location.pathname);\n\n const popup = $.scoritoPopup({\n elementId: \"payment-failed-popup\",\n popupTitle: $(\".payment-failed-popup\").data(\"title\"),\n contentHtml: $(\".payment-failed-popup\").html(),\n widthInPixels: 591,\n follow: [true, true],\n });\n\n $(\".popup-block__retry-button\").on(\"click\", () => {\n popup.close();\n });\n }\n\n private loadCartData = () => {\n if (this.cartController.isUpgrade()) {\n $.when(\n this.cartController.initializeUpgradeCart(),\n this.platformRepository.getCountries()\n ).done((_, countries: Platform.Countries) => {\n this.initializeCountryData(countries, this.salesAccountData?.administratorPhoneNumber ?? \"\");\n });\n return;\n }\n\n $.when(\n this.cartController.initializeCart(CartRenderType.All),\n this.platformRepository.getCountries()\n ).done((_, countries: Platform.Countries) => {\n this.initializeCountryData(countries, this.salesAccountData?.administratorPhoneNumber ?? \"\");\n });\n }\n\n private loadOrderData = () => {\n const marketId = this.cartController.getMarketId();\n\n this.platformRepository.getGameInfo(marketId).done((gameInfo) => {\n this.signUpDeadline = gameInfo.signUpDeadline;\n });\n }\n\n private renderOrderSummary(summary: SummaryModel, cartModel: CartModel) {\n const marketId = this.cartController.getMarketId();\n const hasPurchased = this.salesUser?.hasPurchasedMarket(marketId) && !this.cartController.isUpgrade();\n this.checkoutRenderer.renderSideViewTemplate(summary, [...cartModel.list], this.checkoutProgressModel, this.cartController.isUpgrade(), hasPurchased, () => {\n this.calculatePaymentMethodMargin();\n this.calculateFormMargin();\n $(\".order-overview-side-view__go-to-management-button\").on(\"click\", () => {\n window.location.href = \"/management\";\n });\n\n $(\".order-overview-side-view__log-out-button\").on(\"click\", () => {\n window.location.href = \"/user/logout\";\n });\n\n $(\".business-checkout__button--next\").toggleModifiers(hasPurchased, \"disabled\");\n });\n }\n\n private calculateFormMargin = () => {\n $(\".business-checkout__forms\").css(\"margin-bottom\", Math.max(37, $(\".business-checkout__side-view\").height() - $(\".business-checkout__forms\").height()));\n\n }\n private calculatePaymentMethodMargin = () => {\n $(\".payment-method__content\").css(\"margin-bottom\", Math.max(37, $(\".business-checkout__side-view\").height() - $(\".payment-method__placeholder\").height()));\n }\n\n private bindButtons = () => {\n $(\".company-info__input\").on(\"focus\", () => {\n $(\".company-info__input\").removeClass(\"company-info__input--invalid\");\n $(\".business-checkout__error-message\").hide();\n });\n\n $(\".invoice-info__input\").on(\"focus\", () => {\n $(\".invoice-info__input\").removeClass(\"invoice-info__input--invalid\");\n $(\".business-checkout__error-message\").hide();\n });\n\n $(\".administrator-info__input\").on(\"focus\", () => {\n $(\".administrator-info__input\").removeClass(\"administrator-info__input--invalid\");\n $(\".business-checkout__error-message\").hide();\n });\n\n $(\".business-checkout__button--next\").on(\"click\", () => {\n if (this.checkoutProgressModel.isStepOne()) {\n if (this.isValidatingUser)\n return;\n\n this.showLoadingOverlay(\"Common.PleaseWait\");\n this.validateForm(this.countries).done(isValid => {\n if (!isValid) {\n this.hideLoadingOverlay();\n return;\n }\n\n this.saveDetailsToLocalStorage();\n let progress = CheckoutProgressStep.Two;\n if (this.summary?.isFree()) {\n progress = CheckoutProgressStep.Three;\n }\n\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\n const paymentData = PaymentInformationModel.getFromLocalStorage();\n\n this.createAccountIfNecessary(checkoutData, orderData, paymentData).done((createdNewAccount: boolean) => {\n this.checkoutProgressModel.updateStep(progress);\n if (createdNewAccount) {\n const returnUrl = encodeURIComponent(`/${this.checkoutUrl}?${UserValidationController.returnAfterLogin}=true`);\n location.href = `/user/login?returnUrl=${returnUrl}`\n return;\n }\n\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\n this.switchStep(progress);\n\n }).fail((err) => {\n if (err.message?.length > 0) {\n NotificationBar.Display(err.message);\n }\n else {\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.AccountCreationFailed\"));\n }\n }).always(() => {\n this.hideLoadingOverlay();\n });\n });\n }\n else if (this.checkoutProgressModel.isStepTwo()) {\n if ($(\".payment-method__content\").find(\".payment-method__checkmark-input:checked\").length < 1) {\n $(\".payment-method__not-selected-error\").show();\n return;\n }\n\n if (this.hasMissingData()) {\n return;\n }\n\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\n const paymentData = PaymentInformationModel.getFromLocalStorage();\n\n this.showLoadingOverlay(\"Common.PleaseWait\");\n this.createAccountIfNecessary(checkoutData, orderData, paymentData).done((createdNewAccount: boolean) => {\n this.checkoutProgressModel.updateStep(CheckoutProgressStep.Three);\n\n if (createdNewAccount) {\n const returnUrl = encodeURIComponent(`/${this.checkoutUrl}?${UserValidationController.returnAfterLogin}=true`);\n location.href = `/user/login?returnUrl=${returnUrl}`\n return;\n }\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\n this.switchStep(CheckoutProgressStep.Three);\n this.initializeAdyenCheckout();\n }).fail((err) => {\n if (err.message?.length > 0) {\n NotificationBar.Display(err.message);\n }\n else {\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.AccountCreationFailed\"));\n }\n }).always(() => {\n this.hideLoadingOverlay();\n });\n }\n });\n\n $(\".business-checkout__button--previous\").on(\"click\", () => {\n if (this.checkoutProgressModel.isStepOne()) {\n this.saveDetailsToLocalStorage();\n const shouldGoToSalesPackagePage = this.marketSalesPackages.marketSalesPackages.length > 0;\n\n SalesPackageProgressModel.getFromLocalStorage().setShouldInitiallyGoToCurrentPage(true);\n\n location.href = shouldGoToSalesPackagePage\n ? '/salespackage'\n : this.orderUrl;\n }\n else if (this.checkoutProgressModel.isStepTwo()) {\n this.checkoutProgressModel.updateStep(CheckoutProgressStep.One);\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\n this.switchStep(CheckoutProgressStep.One);\n }\n else if (this.checkoutProgressModel.isStepThree()) {\n let progress = CheckoutProgressStep.Two;\n if (this.summary?.isFree()) {\n progress = CheckoutProgressStep.One;\n }\n\n this.checkoutProgressModel.updateStep(progress);\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\n this.switchStep(progress);\n }\n });\n\n $(\".administrator-info__label\").on(\"click\", e => {\n $(e.currentTarget).parent().find(\".administrator-info__checkmark-input\").prop(\"checked\", false);\n $(e.currentTarget).find(\".administrator-info__checkmark-input\").prop(\"checked\", true);\n });\n\n $(\".payment-method__checkbox\").on(\"click\", e => {\n $(e.currentTarget).closest('.payment-method__content').find(\".payment-method__checkmark-input\").prop(\"checked\", false);\n $(e.currentTarget).find(\".payment-method__checkmark-input\").prop(\"checked\", true);\n });\n\n $(\".payment-method__checkbox\").on(\"click\", e => {\n $(e.currentTarget).closest('.payment-method__content').find(\".select-container\").hide();\n $(e.currentTarget).closest('.payment-method__container').find(\".select-container\").show();\n });\n\n $(\".company-info__input--phone-number, .administrator-info__input--phone-number\").on(\"keyup\", event => {\n if (event.which === 8 || (event.which >= 37 && event.which <= 40)) return;\n\n $(event.currentTarget).val((_, value) => this.formatPhoneNumber(value));\n });\n\n $(\".confirm-conditions__link\").on(\"click\", () => {\n $.scoritoPopup({\n elementId: \"terms-and-conditions-popup\",\n popupTitle: $(\".terms-and-conditions-popup\").data(\"title\"),\n contentHtml: $(\".terms-and-conditions-popup\").html(),\n widthInPixels: 640,\n follow: [true, false]\n });\n });\n\n $(\".invoice-info__checkmark-input\").on(\"change\", e => {\n const input = $(\".invoice-info__input--vat-number\");\n const checked = $(e.currentTarget).prop(\"checked\");\n if (checked) {\n input.val(\"\");\n }\n\n this.cartController.setvatNumber(checked ? input.val() : Vat.PLACEHOLDER);\n input.prop(\"disabled\", checked);\n input.toggleModifiers(checked, \"disabled\");\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\n });\n }\n\n private formatPhoneNumber = (phoneNumber: string) => {\n return phoneNumber.replace(/\\D/g, \"\").replace(/(\\d{2})(\\d{3})?(\\d{3})?(\\d{2})?/, \"$1 $2 $3 $4\").replace(/\\s\\s+/g, \" \");\n }\n\n private switchStep = (step: CheckoutProgressStep) => {\n $(\".business-checkout__step\").addClass(\"business-checkout__step--hidden\");\n $(`.business-checkout__step-${step}`).removeClass(\"business-checkout__step--hidden\");\n\n $(\".business-checkout__side-view\").removeClass(\"business-checkout__side-view--hidden\");\n $(\".business-checkout__button-container\").removeClass(\"business-checkout__button-container--hidden\");\n if (step === CheckoutProgressStep.One) {\n this.calculateFormMargin();\n this.prefillCheckoutData();\n window.location.hash = CheckoutProgressStep.One.toString();\n }\n if (step === CheckoutProgressStep.Two) {\n this.calculatePaymentMethodMargin();\n\n window.location.hash = CheckoutProgressStep.Two.toString();\n }\n\n if (step === CheckoutProgressStep.Three) {\n if (this.hasMissingData()) {\n return;\n }\n\n $(\".business-checkout__side-view\").addClass(\"business-checkout__side-view--hidden\");\n $(\".business-checkout__button-container\").addClass(\"business-checkout__button-container--hidden\");\n\n this.fillConfirmPaymentMethod();\n this.fillOrderCheck();\n this.fillConfirmAdmin();\n window.location.hash = CheckoutProgressStep.Three.toString();\n }\n window.scrollTo(0, 0);\n }\n\n private validateForm = (countries: Countries): JQueryPromise => {\n let emptyFieldsError = false;\n let passwordError = false;\n let emailMatchError = false;\n let emailInvalidError = false;\n let invoiceEmailInvalidError = false;\n let usernameInUseError = false;\n let passwordLengthError = false;\n let emailInUseError = false;\n let invalidUsernameError = false;\n let invalidVatError = false;\n\n const invoiceEmail = $(\".invoice-info__input--invoice-mail\").val().trim();\n\n const password = $(\".administrator-info__input--password\").val().trim();\n const repeatPassword = $(\".administrator-info__input--repeat-password\").val().trim();\n\n const email = $(\".administrator-info__input--email\").val().trim();\n const repeatEmail = $(\".administrator-info__input--repeat-email\").val().trim();\n const vat = $(\".invoice-info__input--vat-number\").val().trim();\n\n const username = $(\".administrator-info__input--username\").val().trim();\n\n const isNetherlands = countries?.getByCode($(\".country-select-input--country\").val())?.isNetherlands();\n\n if (!$(\".company-info__input--name\").val().trim()) {\n $(\".company-info__input--name\").addClass(\"company-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".company-info__input--address\").val().trim()) {\n $(\".company-info__input--address\").addClass(\"company-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".company-info__input--city\").val().trim()) {\n $(\".company-info__input--city\").addClass(\"company-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".company-info__input--phone-number\").val().trim()) {\n $(\".company-info__input--phone-number\").addClass(\"company-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".company-info__input--zipcode\").val().trim()) {\n $(\".company-info__input--zipcode\").addClass(\"company-info__input--invalid\");\n emptyFieldsError = true;\n }\n\n if (!invoiceEmail || !Email.Validate(invoiceEmail)) {\n $(\".invoice-info__input--invoice-mail\").addClass(\"invoice-info__input--invalid\");\n invoiceEmailInvalidError = true;\n }\n\n if (!isNetherlands && !Vat.validate(vat) && !$(\".invoice-info__checkmark-input\").prop(\"checked\")) {\n $(\".invoice-info__input--vat-number\").addClass(\"invoice-info__input--invalid\");\n invalidVatError = true;\n }\n\n if (!this.cartController.isUpgrade()) {\n if (!$(\".administrator-info__input--first-name\").val().trim()) {\n $(\".administrator-info__input--first-name\").addClass(\"administrator-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".administrator-info__input--last-name\").val().trim()) {\n $(\".administrator-info__input--last-name\").addClass(\"administrator-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!$(\".administrator-info__input--phone-number\").val().trim()) {\n $(\".administrator-info__input--phone-number\").addClass(\"administrator-info__input--invalid\");\n emptyFieldsError = true;\n }\n }\n if (this.salesAccountData?.isLoggedInWithBusinessAccount || Authentication.isLoggedIn()) {\n if (!Email.Validate($(\".administrator-info__input--existing-email\").val().trim())) {\n $(\".administrator-info__input--existing-email\").addClass(\".administrator-info__input--invalid\");\n emailMatchError = true;\n }\n }\n else {\n if (!username) {\n $(\".administrator-info__input--username\").addClass(\"administrator-info__input--invalid\");\n emptyFieldsError = true;\n }\n else if (!this.isAlphaNumeric(username)) {\n $(\".administrator-info__input--username\").addClass(\"administrator-info__input--invalid\");\n invalidUsernameError = true;\n }\n if (!email) {\n $(\".administrator-info__input--email\").addClass(\"administrator-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!repeatEmail) {\n $(\".administrator-info__input--repeat-email\").addClass(\"administrator-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!password) {\n $(\".administrator-info__input--password\").addClass(\"administrator-info__input--invalid\");\n emptyFieldsError = true;\n }\n if (!repeatPassword) {\n $(\".administrator-info__input--repeat-password\").addClass(\"administrator-info__input--invalid\");\n emptyFieldsError = true;\n }\n else if ((email && repeatEmail && email !== repeatEmail)) {\n $(\".administrator-info__input--email\").addClass(\"administrator-info__input--invalid\");\n $(\".administrator-info__input--repeat-email\").addClass(\"administrator-info__input--invalid\");\n emailMatchError = true;\n }\n else if (!Email.Validate(email)) {\n $(\".administrator-info__input--email\").addClass(\"administrator-info__input--invalid\");\n emailInvalidError = true;\n }\n else if (password.length < 6) {\n $(\".administrator-info__input--password\").addClass(\"administrator-info__input--invalid\");\n passwordLengthError = true;\n }\n else if (password !== repeatPassword) {\n $(\".administrator-info__input--password\").addClass(\"administrator-info__input--invalid\");\n $(\".administrator-info__input--repeat-password\").addClass(\"administrator-info__input--invalid\");\n passwordError = true;\n }\n else if (username && !emptyFieldsError && !emailMatchError && !passwordError && !emailInvalidError) {\n this.isValidatingUser = true;\n $(\".business-checkout__button--next\").addClass(\"preload\");\n const deferred = $.Deferred();\n $.when(\n this.userRepository.checkEmail(email)\n ).done((emailAvailable) => {\n if (!emailAvailable)\n emailInUseError = true;\n\n deferred.resolve(this.handleErrors(emptyFieldsError, emailMatchError, emailInvalidError, invoiceEmailInvalidError, passwordError, usernameInUseError, passwordLengthError, emailInUseError, invalidUsernameError, invalidVatError));\n }).fail(() => {\n deferred.reject();\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }).always(() => {\n this.isValidatingUser = false;\n $(\".business-checkout__button--next\").removeClass(\"preload\");\n this.hideLoadingOverlay();\n });\n return deferred.promise();\n }\n }\n return $.Deferred().resolve(this.handleErrors(emptyFieldsError, emailMatchError, emailInvalidError, invoiceEmailInvalidError, passwordError, usernameInUseError, passwordLengthError, emailInUseError, invalidUsernameError, invalidVatError)).promise();\n }\n\n private handleErrors = (emptyFieldsError: boolean, emailMatchError: boolean, emailInvalidError: boolean, invoiceEmailInvalidError: boolean, passwordError: boolean, usernameInUseError: boolean, passwordLengthError: boolean, emailInUseError: boolean, invalidUsernameError: boolean, invalidVatError: boolean): boolean => {\n if (emptyFieldsError) {\n $(\".business-checkout__empty-fields-error\").show();\n }\n else if (invoiceEmailInvalidError) {\n $(\".business-checkout__email-invoice-invalid-error\").show();\n }\n else if (invalidVatError) {\n $(\".business-checkout__invalid-vat-error\").show();\n }\n else if (emailMatchError) {\n $(\".business-checkout__email-match-error\").show();\n }\n else if (emailInvalidError) {\n $(\".business-checkout__email-invalid-error\").show();\n }\n else if (passwordError) {\n $(\".business-checkout__password-match-error\").show();\n }\n else if (usernameInUseError) {\n $(\".business-checkout__username-in-use-error\").show();\n $(\".administrator-info__input--username\").addClass(\"administrator-info__input--invalid\");\n }\n else if (passwordLengthError) {\n $(\".business-checkout__password-length-error\").show();\n }\n else if (emailInUseError) {\n $(\".business-checkout__email-in-use-error\").show();\n $(\".administrator-info__input--email\").addClass(\"administrator-info__input--invalid\");\n }\n else if (invalidUsernameError) {\n $(\".business-checkout__invalid-username-error\").show();\n $(\".administrator-info__input--username\").addClass(\"administrator-info__input--invalid\");\n }\n\n return !(emptyFieldsError || passwordError || emailMatchError || emailInvalidError || invoiceEmailInvalidError || usernameInUseError || passwordLengthError || emailInUseError || invalidUsernameError || invalidVatError);\n }\n\n private showSalesPackageCountryMessage = (country: Platform.Country) => {\n const hasSalesPackageOrderInForeignCountry = !country?.isNetherlands() && this.cartController.getPurchaseInformationModel()?.getSalesPackageIds().length > 0;\n $(\".company-info__package-country-message\").toggle(hasSalesPackageOrderInForeignCountry);\n }\n\n private showSalesPackageAddressMessage = () => {\n const showAddressMessage = this.cartController.getPurchaseInformationModel().getSalesPackageIds().length > 0\n $(\".company-info__package-address-message\").toggle(showAddressMessage);\n }\n\n private initializeCountryData = (countries: Platform.Countries, administratorPhoneNumber: string) => {\n this.countries = countries;\n const countryCallingCode = administratorPhoneNumber.split(\" \")[0];\n countries.sortByName().each(country => {\n $(\".country-select-input--country\").append(new Option(country.name, country.code));\n });\n\n this.toggleVatField(countries);\n $(\".country-select-input--country\").on(\"change\", e => {\n const country = countries.getByCode($(e.currentTarget).val());\n this.cartController.updateCountry(country.id);\n this.toggleVatField(countries);\n this.loadPaymentData();\n $(\".country-select-input--country-code-company\").val(country.countryCallingCode);\n this.showSalesPackageCountryMessage(country);\n });\n\n const countryCallingCodes = countries.sortByCallingCodes().getCountryCallingCodes();\n _.each(countryCallingCodes, key => {\n $(\".country-select-input--country-code-company,.country-select-input--country-code-admin\").append(``);\n });\n\n if (this.cartController.upgradeInformation?.countryId != null) {\n const country = countries.getById(this.cartController.upgradeInformation.countryId);\n $(\".country-select-input--country\").val(country.code).change();\n }\n\n else if (this.cartController.orderInformation?.countryCode != null) {\n const country = countries.getByCode(this.cartController.orderInformation.countryCode);\n $(\".country-select-input--country\").val(this.cartController.orderInformation.countryCode).change();\n $(\".country-select-input--country-code-company,.country-select-input--country-code-admin\").val(country.countryCallingCode).change();\n }\n\n }\n\n private toggleVatField(countries: Countries) {\n $(\".invoice-info__input\").removeModifiers(\"invalid\");\n $(\".business-checkout__error-message\").hide();\n const isNetherlands = countries?.getByCode($(\".country-select-input--country\").val()).isNetherlands();\n $(\".invoice-info__input--vat-number\").closest(\".invoice-info__row\").toggleModifiers(isNetherlands, \"hidden\");\n\n if (!isNetherlands && !$(\".invoice-info__checkmark-input\").prop(\"checked\")) {\n const vatNumber = $(\".invoice-info__input--vat-number\").val().trim();\n this.cartController.setvatNumber(String.isNullOrEmpty(vatNumber) ? Vat.PLACEHOLDER : vatNumber);\n }\n }\n\n private initializeInvoiceCheckout() {\n $(\".total-block__checkout--finish\").on(\"click\", () => {\n if (this.cartController.orderInformation) {\n this.cartController.orderInformation.saveToLocalStorage();\n }\n\n if (this.cartController.upgradeInformation) {\n this.cartController.upgradeInformation.saveToLocalStorage();\n }\n\n if (this.cartController.isUpgrade()) {\n const upgradeInformation = this.cartController.upgradeInformation;\n new OrderInformationModel(upgradeInformation.gameId, upgradeInformation.marketId, 0, upgradeInformation.getDealIds(), upgradeInformation.salesPackageIdsWithAmounts, upgradeInformation.salesPackagePersonalizationTexts, upgradeInformation.countryId, \"\", upgradeInformation.couponCode, \"\", 0, this.cartController.upgradeInformation.payByInvoice, \"\", \"\").setIsUpgrade(true).saveToLocalStorage();\n }\n\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\n const paymentData = PaymentInformationModel.getFromLocalStorage();\n if (this.hasMissingData()) {\n return;\n }\n\n const clientData = ClientInformationModel.getClientInformationFromLocalStorage();\n const orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\n const payByInvoice = paymentData?.payByInvoice ?? false;\n const countryId = this.cartController.isUpgrade() ? this.cartController.upgradeInformation.countryId : orderInformation.countryId;\n this.showLoadingOverlay();\n this.paymentRepository.savePayment(countryId, checkoutData, orderData, paymentData, clientData, \"\").done((apiResult) => {\n if (!apiResult.isSuccess()) {\n this.hideLoadingOverlay();\n return NotificationBar.Display(apiResult.message);\n }\n\n if (payByInvoice || this.summary?.isFree()) {\n location.href = this.managementUrl + \"?marketId=\" + orderData.marketId;\n return;\n }\n }).fail((err) => {\n this.hideLoadingOverlay();\n console.error(`Failed to save invoice payment: ${JSON.stringify(err)}`);\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.PaymentFailed\"));\n });\n });\n }\n\n private showLoadingOverlay = (labelKey?: string): void => {\n const initialMessageDelay = 10000;\n $(\".business-checkout__loading-text\").text(TranslationData.get(labelKey ?? \"Business.Checkout.LoadingMessage.1\"));\n $(\".business-checkout__loading-overlay\").show();\n setTimeout(() => {\n $(\".business-checkout__loading-text\").text(TranslationData.get(\"Business.Checkout.LoadingMessage.2\"));\n }, initialMessageDelay);\n\n setTimeout(() => {\n $(\".business-checkout__loading-text\").text(TranslationData.get(\"Business.Checkout.LoadingMessage.3\"));\n }, initialMessageDelay + 30000);\n }\n\n private hideLoadingOverlay = (): void => {\n $(\".business-checkout__loading-overlay\").hide();\n }\n\n private isAlphaNumeric = (alphaNumericField: string): boolean => {\n const regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\n const result = regex.test(alphaNumericField);\n return result;\n }\n\n public loadSalesAccountData = () => {\n if (localStorage.getItem(UserValidationController.createNewAccountLocalStorageKey) === \"true\" && !Authentication.isLoggedIn()) {\n this.prefillData();\n return;\n }\n $.when(this.platformRepository.getCountries(), this.accountDataRepository.getSalesAccountData())\n .done((countries: Platform.Countries, salesAccountData: SalesAccountData) => {\n this.salesAccountData = salesAccountData;\n\n $(\".administrator-info__input--first-name\").val(salesAccountData.administratorName);\n $(\".administrator-info__input--last-name\").val(salesAccountData.administratorSurname);\n $(\".administrator-info__input--email\").prop(\"disabled\", true).val(salesAccountData.administratorEmail);\n $(\".administrator-info__input--repeat-email\").prop(\"disabled\", true).val(salesAccountData.administratorEmail);\n $(\".administrator-info__input--existing-email\").prop(\"disabled\", true).val(salesAccountData.administratorEmail);\n $(\".administrator-info__checkmark-input\").prop(\"checked\", false);\n $(`.administrator-info__checkmark-input--${salesAccountData.administratorGender}`).prop(\"checked\", true);\n\n if (salesAccountData.companyPhoneNumber) {\n const phoneNumber = salesAccountData.companyPhoneNumber.trim();\n $(\".country-select-input--country-code-company\").val(phoneNumber.substr(0, phoneNumber.indexOf((\" \"))));\n $(\".company-info__input--phone-number\").val(this.formatPhoneNumber(phoneNumber.substr(phoneNumber.indexOf(\" \") + 1)));\n }\n\n $(\".administrator-info__new-administrator\").hide();\n $(\".administrator-info__existing-administrator\").show();\n\n if (salesAccountData.isLoggedInWithBusinessAccount) {\n $(\".company-info__input--name\").val(salesAccountData.companyOrganisationName);\n $(\".company-info__input--address\").val(salesAccountData.companyAddress);\n $(\".company-info__input--zipcode\").val(salesAccountData.companyZipCode);\n $(\".company-info__input--city\").val(salesAccountData.companyCityName);\n $(\".invoice-info__input--attention-of\").val(salesAccountData.invoiceRecipientName);\n $(\".invoice-info__input--invoice-mail\").val(salesAccountData.invoiceRecipientEmail);\n $(\".company-info__dropdown--country\").val(countries.getById(salesAccountData.companyCountryId).code).change();\n $(\".invoice-info__checkmark-input\").prop(\"checked\", String.isNullOrEmpty(salesAccountData.companyVATNumber));\n $(\".invoice-info__input--vat-number\").val(salesAccountData.companyVATNumber);\n if (salesAccountData.administratorPhoneNumber) {\n const adminPhoneNumber = salesAccountData.administratorPhoneNumber.trim();\n $(\".country-select-input--country-code-admin\").val(adminPhoneNumber.substr(0, adminPhoneNumber.indexOf(\" \")));\n $(\".administrator-info__input--phone-number\").val(this.formatPhoneNumber(adminPhoneNumber.substr(adminPhoneNumber.indexOf(\" \") + 1)));\n }\n }\n });\n }\n\n private savePaymentDataToLocalStorage = (): void => {\n const paymentMethodElement = $(\".payment-method__checkmark-input:checked\").closest(\".payment-method__container\");\n const paymentGroupType = paymentMethodElement.data(\"payment-group\");\n const payByInvoice: boolean = paymentMethodElement.data(\"invoice\");\n\n new PaymentInformationModel(payByInvoice, paymentGroupType, new Date().toISOString()).saveToLocalStorage();\n }\n\n private prefillData = () => {\n if (!this.clientInformation)\n return;\n\n $(\".company-info__input--name\").val(this.clientInformation.organization);\n $(\".company-info__input--address\").val(this.clientInformation.address);\n $(\".company-info__input--zipcode\").val(this.clientInformation.zipCode);\n $(\".company-info__input--city\").val(this.clientInformation.city);\n $(\".country-select-input--country\").val(this.clientInformation.country).change();\n $(\".company-info__input--phone-number\").val(this.clientInformation.phoneNumber?.replace(\"-\", \"\") ?? \"\");\n\n $(\".invoice-info__input--vat-number\").val(this.clientInformation.vatNumber);\n\n $(\".administrator-info__input--first-name\").val(this.clientInformation.adminFirstname);\n $(\".administrator-info__input--last-name\").val(this.clientInformation.adminLastname);\n $(\".administrator-info__input--phone-number\").val(this.clientInformation.adminPhone?.replace(\"-\", \"\") ?? \"\");\n $(\".administrator-info__input--email\").val(this.clientInformation.adminEmail);\n $(\".administrator-info__input--repeat-email\").val(this.clientInformation.adminEmail);\n\n $(\".administrator-info__checkmark-input\").prop(\"checked\", false);\n $(`.administrator-info__checkmark-input--${this.clientInformation.adminGender}`).prop(\"checked\", true);\n }\n\n private loadPaymentData = () => {\n this.territoryRepository.getRegions().done(regions => {\n const orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\n switch (orderInformation?.countryCode) {\n case \"NLD\": regionId = getRegionById(regions, 1)?.regionId ?? regionId; break;\n case \"BEL\": regionId = getRegionById(regions, 2)?.regionId ?? regionId; break;\n case \"DEU\": regionId = getRegionById(regions, 3)?.regionId ?? regionId; break;\n case \"FRA\": regionId = getRegionById(regions, 4)?.regionId ?? regionId; break;\n case \"ESP\": regionId = getRegionById(regions, 5)?.regionId ?? regionId; break;\n default: regionId = getRegionById(regions, 6)?.regionId ?? regionId; break;\n }\n\n const countryId = this.cartController.isUpgrade() ? this.cartController.upgradeInformation.countryId : orderInformation.countryId;\n this.paymentRepository.getPaymentMethods(regionId, countryId)\n .done((paymentMethods: PaymentMethods) => {\n if (this.signUpDeadline) {\n this.paymentMethodsRenderer.renderTemplate(paymentMethods, this.signUpDeadline, this.cdnUrl, () => {\n this.handlePaymentMethodClick();\n });\n\n this.prefillPaymentMethodData();\n }\n else {\n const marketId = this.cartController.isUpgrade() ? this.cartController.upgradeInformation.marketId : this.cartController.orderInformation.marketId;\n\n this.platformRepository.getGameInfo(marketId)\n .done(gameInfo => {\n this.signUpDeadline = gameInfo.signUpDeadline;\n\n this.paymentMethodsRenderer.renderTemplate(paymentMethods, this.signUpDeadline, this.cdnUrl, () => {\n this.handlePaymentMethodClick();\n });\n\n this.prefillPaymentMethodData();\n });\n }\n }).fail((err) => {\n $(\"#adyen-loading-spinner\").hide();\n console.error(`Loading payment data filed: ${JSON.stringify(err)}`);\n return NotificationBar.Display(TranslationData.get(\"Business.Checkout.Error.PaymentData\"));\n });\n }).fail(err => {\n $(\"#adyen-loading-spinner\").hide();\n console.error(`Loading region data filed: ${JSON.stringify(err)}`);\n return NotificationBar.Display(TranslationData.get(\"Business.Checkout.Error.PaymentData\"));\n });\n }\n\n private loadSalesPackages = () => {\n const purchaseInformationModel = this.cartController.getPurchaseInformationModel();\n\n this.salesPackageRepository.getSalesPackagesByMarketAndCountry(purchaseInformationModel.marketId, purchaseInformationModel.countryId)\n .done(marketSalesPackages => {\n this.marketSalesPackages = marketSalesPackages;\n }).fail(err => {\n console.error(\"Failed to load market sales packages on checkout page\", err);\n }).always(() => {\n this.bindButtons();\n });\n }\n\n private handlePaymentMethodClick = () => {\n $(\".payment-method__row\").on(\"click\", e => {\n if ($(e.currentTarget).find(\".payment-method__checkmark-input:checked\").length > 0) {\n return;\n }\n\n $(e.currentTarget).closest(\".payment-method__content\").find(\".payment-method__checkmark-input\").prop(\"checked\", false);\n $(e.currentTarget).find(\".payment-method__checkmark-input\").prop(\"checked\", true);\n\n $(\".payment-method__not-selected-error\").hide();\n this.savePaymentDataToLocalStorage();\n\n const invoiceSelected: boolean = $(e.currentTarget).closest(\".payment-method__container\").data(\"invoice\");\n this.cartController.updatePayByInvoice(invoiceSelected);\n });\n }\n\n private prefillCheckoutData = () => {\n const checkoutInformationModel = CheckoutInformationModel.getFromLocalStorage();\n if (!checkoutInformationModel) {\n return;\n }\n\n $(\".company-info__input--name\").val(checkoutInformationModel.companyOrganisationName);\n $(\".company-info__input--address\").val(checkoutInformationModel.companyAddress);\n $(\".company-info__input--zipcode\").val(checkoutInformationModel.companyZipCode);\n $(\".company-info__input--city\").val(checkoutInformationModel.companyCityName);\n\n $(\".country-select-input--country-code-company\").val(checkoutInformationModel.countryCallingCode);\n $(\".company-info__input--phone-number\").val(checkoutInformationModel.companyPhoneNumber);\n\n $(\".invoice-info__input--attention-of\").val(checkoutInformationModel.invoiceRecipientName);\n $(\".invoice-info__input--invoice-mail\").val(checkoutInformationModel.invoiceRecipientEmail);\n $(\".invoice-info__input--vat-number\").val(checkoutInformationModel.companyVATNumber);\n $(\".invoice-info__input--reference-number\").val(checkoutInformationModel.poNumber);\n\n $(\".administrator-info__checkmark-input\").prop(\"checked\", false);\n $(`.administrator-info__checkmark-input--${checkoutInformationModel.administratorGender}`).prop(\"checked\", true);\n $(\".administrator-info__input--first-name\").val(checkoutInformationModel.administratorName);\n $(\".administrator-info__input--last-name\").val(checkoutInformationModel.administratorSurname);\n $(\".country-select-input--country-code-admin\").val(checkoutInformationModel.adminCountryCallingCode);\n $(\".administrator-info__input--phone-number\").val(checkoutInformationModel.administratorPhoneNumber);\n $(\".administrator-info__input--username\").val(checkoutInformationModel.username);\n $(\".administrator-info__input--email\").val(checkoutInformationModel.administratorEmail);\n $(\".administrator-info__input--repeat-email\").val(checkoutInformationModel.administratorEmail);\n }\n\n private prefillPaymentMethodData = () => {\n const paymentInformationModel = PaymentInformationModel.getFromLocalStorage();\n if (!paymentInformationModel) {\n this.uncheckPaymentMethods();\n return;\n }\n\n if (paymentInformationModel.payByInvoice) {\n const paymentMethodContainer = $(`.payment-method__container[data-invoice=\"true\"]`);\n paymentMethodContainer.find(\".payment-method__checkmark-input\").prop(\"checked\", true);\n this.cartController.updatePayByInvoice(paymentInformationModel.payByInvoice);\n return;\n }\n let paymentMethodContainer = $(`.payment-method__container[data-payment-group=\"${paymentInformationModel.paymentGroupType}\"]`);\n paymentMethodContainer.find(\".payment-method__checkmark-input\").prop(\"checked\", true);\n paymentMethodContainer.find(\".payment-method__options-container\").show();\n }\n\n private fillOrderCheck = () => {\n const checkoutInformationModel = CheckoutInformationModel.getFromLocalStorage();\n if (!checkoutInformationModel)\n return;\n\n $(\".confirm-invoice__bolded-label--company\").text(checkoutInformationModel.companyOrganisationName);\n $(\".confirm-invoice__label--attention-of\").text(checkoutInformationModel.invoiceRecipientName);\n $(\".confirm-invoice__label--reference-number\").text(checkoutInformationModel.poNumber);\n $(\".confirm-invoice__label--address\").text(checkoutInformationModel.companyAddress);\n $(\".confirm-invoice__label--zip-code\").text(`${checkoutInformationModel.companyZipCode} ${checkoutInformationModel.companyCityName}`);\n\n this.platformRepository.getCountries().done(countries => {\n $(\".confirm-invoice__label--country\").text(countries.getById(checkoutInformationModel.companyCountryId).name);\n });\n\n $(\".confirm-invoice__label--invoice-mail\").text(checkoutInformationModel.invoiceRecipientEmail);\n $(\".confirm-invoice__label--vat-number\").text(checkoutInformationModel.companyVATNumber);\n }\n\n private fillConfirmAdmin = () => {\n const checkoutInformationModel = CheckoutInformationModel.getFromLocalStorage();\n if (!checkoutInformationModel)\n return;\n\n var firstName = checkoutInformationModel.administratorName;\n var namePrefix = checkoutInformationModel.administratorGender === Gender.Male ? TranslationData.get(\"Business.Mr\") : TranslationData.get(\"Business.Mrs\");\n var lastName = checkoutInformationModel.administratorSurname;\n var email = checkoutInformationModel.administratorEmail;\n var countryCallingCode = checkoutInformationModel.countryCallingCode;\n var phoneNumber = checkoutInformationModel.administratorPhoneNumber;\n\n $(\".confirm-admin__bolded-label--name\").text(`${namePrefix} ${firstName} ${lastName}`);\n $(\".confirm-admin__label--email\").text(email);\n $(\".confirm-admin__label--phone-number\").text(`+${countryCallingCode} ${phoneNumber}`);\n }\n\n private fillConfirmPaymentMethod = () => {\n if (this.summary && this.summary.isFree()) {\n $(\".confirm-payment-method\").hide();\n $(\".adyen-block\").hide();\n $(\".total-block\").show();\n }\n\n const paymentInformationModel = PaymentInformationModel.getFromLocalStorage();\n if (!paymentInformationModel) {\n this.uncheckPaymentMethods();\n return;\n }\n\n const paymentMethodLabelKey = paymentInformationModel.payByInvoice ? \"Business.Invoice\" : `PaidPlatform.PaymentMethod.${paymentInformationModel.paymentGroupType}`;\n $(\".confirm-payment-method__text--paymentMethod\").text(TranslationData.get(paymentMethodLabelKey));\n\n if (paymentInformationModel.payByInvoice && this.summary) {\n const amount = `€ ${numeral(this.summary.payByInvoiceCost).format(\"0,000.00\")}`;\n $(\".confirm-payment-method__sub-text--paymentMethodSubtext\").html(`(${amount} ${TranslationData.get(\"Common.Extra\")})`);\n }\n else {\n $(\".confirm-payment-method__sub-text--paymentMethodSubtext\").text(`(${TranslationData.get(\"Business.Free\")})`);\n }\n\n $(\".confirm-payment-method\").show();\n\n if (!paymentInformationModel.payByInvoice && this.checkoutProgressModel.isStepThree()) {\n $('.adyen-block').show();\n $('.total-block').hide();\n $(\"#dropin-container\").hide();\n $(\"#adyen-loading-spinner\").show()\n } else {\n $('.adyen-block').hide();\n $('.total-block').show();\n }\n }\n\n private uncheckPaymentMethods = () => {\n $(\".payment-method__checkmark-input\").prop(\"checked\", false);\n }\n\n private saveDetailsToLocalStorage = () => {\n const company = $(\".company-info__input--name\").val();\n const address = $(\".company-info__input--address\").val();\n const zipCode = $(\".company-info__input--zipcode\").val();\n const city = $(\".company-info__input--city\").val();\n const countryCode = $(\".country-select-input--country\").val();\n const countryId = this.countries.getByCode(countryCode).id;\n const countryCallingCode = $(\".country-select-input--country-code-company\").val();\n const phoneNumber = $(\".company-info__input--phone-number\").val();\n\n const invoiceRecipient = $(\".invoice-info__input--attention-of\").val();\n const invoiceEmail = $(\".invoice-info__input--invoice-mail\").val().trim();\n const invoiceVatNumber = $(\".invoice-info__input--vat-number\").val();\n const poNumber = $(\".invoice-info__input--reference-number\").val();\n\n const gender = $(\".administrator-info__checkmark-input--2:checked\").length > 0 ? Gender.Female : Gender.Male;\n const firstName = $(\".administrator-info__input--first-name\").val();\n const infix = $(\".administrator-info__input--infix\").val();\n const lastName = $(\".administrator-info__input--last-name\").val();\n const adminCountryCallingCode = $(\".country-select-input--country-code-admin\").val();\n const adminPhoneNumber = $(\".administrator-info__input--phone-number\").val();\n const username = $(\".administrator-info__input--username\").val().trim();\n const adminEmail = $(\".administrator-info__input--email\").val().trim();\n\n this.cartController.setvatNumber(invoiceVatNumber);\n\n new CheckoutInformationModel(false,\n false,\n company,\n address,\n zipCode,\n city,\n countryId,\n phoneNumber,\n invoiceVatNumber,\n invoiceRecipient,\n invoiceEmail,\n poNumber,\n gender,\n firstName,\n infix,\n lastName,\n adminPhoneNumber,\n adminEmail,\n username,\n countryCallingCode,\n adminCountryCallingCode,\n new Date().toISOString()\n ).saveToLocalStorage();\n }\n\n private createAccountIfNecessary = (checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel): JQueryPromise => {\n const deferred = $.Deferred();\n if (localStorage.getItem(UserValidationController.createNewAccountLocalStorageKey) === \"true\" && !Authentication.isLoggedIn()) {\n this.createBusinessAccount(checkoutData, orderData, paymentData).done(() => {\n deferred.resolve(true);\n }).fail((err) => {\n deferred.reject(err);\n })\n }\n else {\n this.updateAccountData();\n this.createBusinessLink(checkoutData, orderData, paymentData).done(() => {\n deferred.resolve(false);\n }).fail((err) => {\n deferred.reject(err);\n });\n }\n\n return deferred.promise();\n }\n\n private updateAccountData = () => {\n const checkoutInformationModel = CheckoutInformationModel.getFromLocalStorage();\n if (!checkoutInformationModel)\n return;\n\n this.userRepository.setGender(checkoutInformationModel.administratorGender);\n this.userRepository.setName(checkoutInformationModel.administratorName, checkoutInformationModel.administratorSurname);\n this.userRepository.setPhoneNumber(checkoutInformationModel.adminCountryCallingCode, checkoutInformationModel.administratorPhoneNumber);\n }\n\n private createBusinessAccount = (checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel): JQueryPromise => {\n const deferred = $.Deferred();\n const password = $(\".administrator-info__input--password\").val().trim();\n this.accountDataRepository.createSalesAccount(checkoutData, orderData, paymentData, password)\n .done((result) => {\n if (!result.isSuccess()) {\n console.error(`Creating sales account reponse unsuccessful ${JSON.stringify(result)}`)\n deferred.reject(result);\n }\n else {\n var baseDomain = '.scorito.com', expireAfter = new Date();\n expireAfter.setDate(expireAfter.getDate() + 1);\n document.cookie = \"otac=\" + result.content + \"; domain=\" + baseDomain + \"; expires=\" + expireAfter + \"; path=/\";\n\n deferred.resolve(result);\n }\n }).fail(err => {\n console.error(`Creating business account failed: ${JSON.stringify(err)}`);\n deferred.reject(err);\n });\n\n return deferred.promise();\n }\n\n private createBusinessLink = (checkoutData: CheckoutInformationModel, orderData: OrderInformationModel, paymentData: PaymentInformationModel): JQueryPromise => {\n const deferred = $.Deferred();\n this.accountDataRepository.createBusinessLink(checkoutData, orderData, paymentData).done(result => {\n if (!result.isSuccess()) {\n console.error(`Creating sales link reponse unsuccessful ${JSON.stringify(result)}`)\n deferred.reject(result);\n }\n else {\n deferred.resolve(result);\n }\n }).fail(err => {\n console.error(`Creating business link failed: ${JSON.stringify(err)}`);\n deferred.reject(err);\n });\n\n return deferred.promise();\n }\n\n private loadSalesUser = () => {\n if (Authentication.isLoggedIn()) {\n return this.salesUserRepository.get().done((salesUser: SalesUser) => {\n this.salesUser = salesUser;\n });\n }\n return $.Deferred().resolve(null).promise();\n }\n\n private hasMissingData = () => {\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\n const paymentData = PaymentInformationModel.getFromLocalStorage();\n\n if (!checkoutData || (!orderData && !this.cartController.isUpgrade()) || (!paymentData && !this.summary?.isFree())) {\n CheckoutInformationModel.deleteFromLocalStorage();\n OrderInformationModel.deleteFromLocalStorage();\n PaymentInformationModel.deleteFromLocalStorage();\n ClientInformationModel.deleteFromLocalStorage();\n this.uncheckPaymentMethods();\n this.checkoutProgressModel.updateStep(CheckoutProgressStep.One);\n this.checkoutProgressRenderer.renderTemplate(this.checkoutProgressModel);\n this.switchStep(CheckoutProgressStep.One);\n console.error(`Missing data when checking out, checkout empty: ${checkoutData == null} - order empty: ${orderData == null} - payment empty: ${paymentData == null} - is upgrade: ${this.cartController.isUpgrade()}`);\n this.hideLoadingOverlay();\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.MissingData\"));\n return true;\n }\n\n const isNetherlands = this.countries?.getByCode($(\".country-select-input--country\").val())?.isNetherlands();\n if (!isNetherlands && orderData?.vatNumber === Vat.PLACEHOLDER) {\n console.error(`Missing VAT data when checkout out`);\n this.switchStep(CheckoutProgressStep.One);\n this.hideLoadingOverlay();\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.MissingData\"));\n return true;\n }\n\n return false;\n }\n\n private trackOrder = (order: OrderInformationModel, checkoutInformationModel: CheckoutInformationModel) => {\n try {\n window.dataLayer = window.dataLayer || [];\n dataLayer.push({\n \"event\": \"purchase\",\n \"transactionAffiliation\": checkoutInformationModel.companyOrganisationName,\n \"transactionTotal\": this.summary?.netTotal ?? 0,\n \"transactionTax\": this.summary?.vat ?? 0,\n \"transactionId\": `${checkoutInformationModel.companyOrganisationName}_${order.mainDealId}_${moment.utc().valueOf()}`,\n \"transactionProducts\": [\n {\n \"name\": order.mainDealId.toString(),\n \"sku\": order.mainDealId.toString(),\n \"quantity\": 1,\n \"price\": this.cartController.getDeal(order.marketId, order.mainDealId)?.price ?? 0,\n } as IGTMTransactionProduct,\n ...order.dealIds.map(dealId => ({\n name: dealId.toString(),\n sku: dealId.toString(),\n quantity: 1,\n price: _.find(this.cartController.getMarketDealsByDealId(dealId), d => d.id === dealId)?.price ?? 0\n } as IGTMTransactionProduct))\n ]\n } as IGTMTransaction);\n }\n catch (err) {\n console.error(`Failed to push order to gtm: ${JSON.stringify(err)}`);\n }\n }\n\n private initializeAdyenCheckout = () => {\n if (!this.checkoutProgressModel.isStepThree())\n return;\n\n const paymentData = PaymentInformationModel.getFromLocalStorage();\n\n const payByInvoice = paymentData?.payByInvoice ?? false;\n\n if (payByInvoice || this.summary?.isFree())\n return;\n\n if (this.hasMissingData()) {\n console.error(\"Attempting to initialize adyen checkout without payment data\");\n NotificationBar.Display(TranslationData.get(\"Business.AdyenCheckout.MissingData\"));\n }\n\n if (this.cartController.orderInformation) {\n this.cartController.orderInformation.saveToLocalStorage();\n }\n\n if (this.cartController.upgradeInformation) {\n this.cartController.upgradeInformation.saveToLocalStorage();\n }\n\n if (this.cartController.isUpgrade()) {\n const upgradeInformation = this.cartController.upgradeInformation;\n new OrderInformationModel(upgradeInformation.gameId, upgradeInformation.marketId, 0, upgradeInformation.getDealIds(), upgradeInformation.salesPackageIdsWithAmounts, upgradeInformation.salesPackagePersonalizationTexts, upgradeInformation.countryId, \"\", upgradeInformation.couponCode, \"\", 0, this.cartController.upgradeInformation.payByInvoice, \"\", \"\").setIsUpgrade(true).saveToLocalStorage();\n }\n\n const checkoutData = CheckoutInformationModel.getFromLocalStorage();\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\n const clientData = ClientInformationModel.getClientInformationFromLocalStorage();\n const orderInformation = OrderInformationModel.getOrderInformationFromLocalStorage();\n const countryId = this.cartController.isUpgrade() ? this.cartController.upgradeInformation.countryId : orderInformation.countryId;\n\n this.paymentRepository.createSession(countryId, checkoutData, orderData, paymentData, clientData)\n .done((apiResult) => {\n if (!apiResult.isSuccess()) {\n $(\"#adyen-loading-spinner\").hide();\n $(\".adyen-block__error\").show().text(apiResult.message);\n console.error(`Failed to create session: ${JSON.stringify(apiResult)}`);\n return;\n }\n $(\".adyen-block__error\").hide();\n const session = new PaymentSession(apiResult.content)\n const config = session.getConfig(this.enviroment, this.clientKey, (resultCode) => {\n if (resultCode === AdyenAuthResult.Authorised) {\n setTimeout(() => {\n location.href = `${this.managementUrl}?marketId=${orderData.marketId}&new=true`;\n }, 2000);\n }\n else {\n console.error(`Checkout payment not successful: ${resultCode}`);\n this.adyenCheckout.setStatus(\"error\", { message: TranslationData.get(`Business.Checkout.PaymentResult.${AdyenAuthResult[resultCode]}`) });\n setTimeout(() => {\n this.initializeAdyenCheckout();\n }, 3000);\n }\n });\n AdyenCheckout(config)\n .then((checkout) => {\n if (this.adyenCheckout) {\n this.adyenCheckout.unmount()\n }\n\n this.adyenCheckout = checkout.create(\"dropin\", {\n openFirstPaymentMethod: false,\n showStoredPaymentMethods: false,\n setStatusAutomatically: false,\n onSelect: (component: any) => {\n new PaymentInformationModel(false, component.type, new Date().toISOString()).saveToLocalStorage();\n },\n onReady: () => {\n this.adyenCheckout.setStatus(\"ready\");\n $(\"#adyen-loading-spinner\").hide()\n $(\"#dropin-container\").show();\n },\n beforeSubmit: (data, component, actions) => {\n this.adyenCheckout.setStatus(\"loading\");\n const orderData = OrderInformationModel.getOrderInformationFromLocalStorage();\n this.paymentRepository.savePayment(countryId, checkoutData, orderData, paymentData, clientData, session.reference).done((apiResult) => {\n if (!apiResult.isSuccess()) {\n console.error(`Failed to save checkout payment: ${JSON.stringify(apiResult)}`);\n this.adyenCheckout.setStatus(\"error\");\n setTimeout(() => {\n this.initializeAdyenCheckout();\n }, 3000);\n return NotificationBar.Display(apiResult.message);\n }\n\n // Submit\n actions.resolve(data)\n }).fail((err) => {\n console.error(`Checkout payment threw an error: ${JSON.stringify(err)}`);\n this.adyenCheckout.setStatus(\"error\");\n setTimeout(() => {\n this.initializeAdyenCheckout();\n }, 3000);\n return NotificationBar.Display(TranslationData.get(\"Business.Checkout.PaymentError\"));\n });\n }\n }).mount(\"#dropin-container\");\n })\n })\n .fail((err) => {\n $(\"#adyen-loading-spinner\").hide();\n console.error(`Failed to create session: ${JSON.stringify(err)}`);\n NotificationBar.Display(TranslationData.get(\"Business.Checkout.SessionError\"));\n })\n .always(() => {\n this.hideLoadingOverlay();\n });\n }\n }\n}","module Business {\n export class ClientInformationModel {\n public static localStorageKey = \"sales.ClientInformation\";\n\n public regionId: number;\n public culture: string;\n public organization: string;\n public address: string;\n public zipCode: string;\n public city: string;\n public country: string;\n public phoneNumber: string;\n public adminGender: Gender;\n public adminFirstname: string;\n public adminLastname: string;\n public adminPhone: string;\n public adminEmail: string;\n public packageId: number;\n public marketId: number;\n public participantCount: number;\n public importSetupId: number;\n public agentId: number;\n public ctpId: number;\n public vatNumber: string;\n public readonly timestamp: string;\n\n constructor(\n regionId: number\n , culture: string\n , organization: string\n , address: string\n , zipCode: string\n , city: string\n , country: string\n , phoneNumber: string\n , adminGender: Gender\n , adminFirstname: string\n , adminLastname: string\n , adminPhone: string\n , adminEmail: string\n , packageId: number\n , marketId: number\n , participantCount: number\n , importSetupId: number\n , agentId: number\n , ctpId: number\n , vatNumber: string\n , timestamp: string\n\n ) {\n this.regionId = regionId;\n this.culture = culture;\n this.organization = organization;\n this.address = address;\n this.zipCode = zipCode;\n this.city = city;\n this.country = country;\n this.phoneNumber = phoneNumber;\n this.adminGender = adminGender;\n this.adminFirstname = adminFirstname;\n this.adminLastname = adminLastname;\n this.adminPhone = adminPhone;\n this.adminEmail = adminEmail;\n this.packageId = packageId;\n this.marketId = marketId;\n this.participantCount = participantCount;\n this.importSetupId = importSetupId;\n this.agentId = agentId;\n this.ctpId = ctpId;\n this.vatNumber = vatNumber;\n this.timestamp = timestamp;\n }\n\n public static getClientInformationFromUrl(): Business.ClientInformationModel {\n const urlParams = new URLSearchParams(window.location.search);\n\n if (!(urlParams.has(\"packageId\") && urlParams.has(\"marketId\") && urlParams.has(\"participantCount\"))) {\n return null;\n }\n\n return new this(\n +(urlParams.get(\"regionId\") ?? regionId.toString())\n , urlParams.get(\"culture\")\n , urlParams.get(\"organization\")\n , urlParams.get(\"address\")\n , urlParams.get(\"zipCode\")\n , urlParams.get(\"city\")\n , urlParams.get(\"country\")\n , urlParams.get(\"phoneNumber\")\n , +urlParams.get(\"adminGender\")\n , urlParams.get(\"adminFirstname\")\n , urlParams.get(\"adminLastname\")\n , urlParams.get(\"adminPhone\")\n , urlParams.get(\"adminEmail\")\n , +urlParams.get(\"packageId\")\n , +urlParams.get(\"marketId\")\n , +urlParams.get(\"participantCount\")\n , +urlParams.get(\"importSetupId\")\n , +urlParams.get(\"agentId\")\n , +(urlParams.get(\"ctpId\") ?? urlParams.get(\"ctId\"))\n , urlParams.get(\"vatNumber\")\n , new Date().toISOString()\n );\n }\n\n public static getClientInformationFromLocalStorage(): Business.ClientInformationModel {\n var storageObject = JSON.parse(localStorage.getItem(ClientInformationModel.localStorageKey));\n if (storageObject != null) {\n if (moment.utc().diff(moment.utc(storageObject.timestamp), \"hours\") >= 24) {\n ClientInformationModel.deleteFromLocalStorage();\n return null;\n }\n\n return new this(\n storageObject.regionId\n , storageObject.culture\n , storageObject.organization\n , storageObject.address\n , storageObject.zipCode\n , storageObject.city\n , storageObject.country\n , storageObject.phoneNumber\n , storageObject.adminGender\n , storageObject.adminFirstname\n , storageObject.adminLastname\n , storageObject.adminPhone\n , storageObject.adminEmail\n , storageObject.packageId\n , storageObject.marketId\n , storageObject.participantCount\n , storageObject.importSetupId\n , storageObject.agentId\n , storageObject.ctpId\n , storageObject.vatNumber\n , storageObject.timestamp\n );\n } else {\n return null;\n }\n }\n\n public saveToLocalStorage(): void {\n localStorage.setItem(ClientInformationModel.localStorageKey, JSON.stringify(this));\n }\n\n public static deleteFromLocalStorage(): void {\n localStorage.removeItem(ClientInformationModel.localStorageKey);\n }\n }\n}","\nmodule Business {\n export class InvitationController {\n private code: string;\n private email: string;\n private administratorRepository: IAdministratorRepository;\n private hasAccepted: boolean;\n private hasAccount: boolean;\n private mainWebsiteUrl: string;\n private businessWebsiteUrl: string;\n\n constructor(salesApiSettings: any, platformApiSettings: any, code: any, email: any, hasAccepted: boolean, hasAccount: boolean, businessWebsiteUrl: string, mainWebsiteUrl: string) {\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\n const platformSettings = new Platform.ApiSettings(platformApiSettings);\n this.code = code;\n this.email = email;\n this.hasAccepted = hasAccepted;\n this.hasAccount = hasAccount;\n this.administratorRepository = new AdministratorRepository(salesSettings, platformSettings);\n this.mainWebsiteUrl = mainWebsiteUrl;\n this.businessWebsiteUrl = businessWebsiteUrl;\n this.getData();\n }\n\n private getData = () => {\n $.when(\n this.administratorRepository.validateInvite(this.code)\n ).done((apiResult: ApiResult) => {\n const administrator = AdministratorInviteModel.fromJson(apiResult.content);\n if (administrator.managementInvitationStatus !== ManagementInvitationStatus.Pending) {\n window.location.href = `${this.businessWebsiteUrl}/invitation/expired`;\n return;\n }\n\n if (!this.hasAccount) {\n if (Authentication.isLoggedIn()) {\n window.location.href = `${this.businessWebsiteUrl}/user/logout?returnUrl=${encodeURIComponent(`${this.mainWebsiteUrl}/register?returnUrl=${this.mainWebsiteUrl}/invitation/accept/${btoa(this.email)}/${this.code}&email=${btoa(this.email)}&code=${this.code}`)}`;\n }\n else {\n window.location.href = `${this.businessWebsiteUrl}/user/new?returnUrl=${this.businessWebsiteUrl}/invitation/accept/${btoa(this.email)}/${this.code}&email=${btoa(this.email)}&code=${this.code}`;\n }\n return;\n }\n\n const labelKey = `Business.Management.Role.${administrator.roleType}`;\n const headerWaitTextElem = $(\".business-invitation__wait-text\");\n const headerTextElem = $(\".business-invitation__accepted-text\");\n headerWaitTextElem.addModifiers(\"hidden\");\n headerTextElem.html(headerTextElem.html().format(TranslationData.get(labelKey)));\n headerTextElem.removeModifiers(\"hidden\");\n if (this.hasAccepted) {\n this.acceptedInvite().then(() => {\n this.startTimer(true);\n });\n } else {\n this.declinedInvite().then(() => {\n this.startTimer(false);\n });\n }\n\n }).fail((err) => {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n });\n }\n\n private acceptedInvite(): JQueryPromise {\n return $.when(\n this.administratorRepository.acceptInvite(this.code)\n ).done((apiResult: ApiResult) => {\n const adminInviteResult = AdministratorInviteModel.fromJson(apiResult.content);\n if (adminInviteResult.managementInvitationStatus !== ManagementInvitationStatus.Accepted) {\n NotificationBar.Display(TranslationData.get(\"Business.LeagueInviteAccept.Failed.PossiblyNotAParticipant\"));\n }\n });\n }\n\n private declinedInvite(): JQueryPromise {\n return $.when(\n this.administratorRepository.declineInvite(this.code)\n ).done((apiResult: ApiResult) => {\n const adminInviteResult = AdministratorInviteModel.fromJson(apiResult.content);\n if (adminInviteResult.managementInvitationStatus !== ManagementInvitationStatus.Declined) {\n NotificationBar.Display(TranslationData.get(\"Common.ErrorOnPage\"));\n }\n });\n }\n\n private startTimer(agree: boolean) {\n let timer = 5;\n let seconds = 0;\n const interval = setInterval(function () {\n if (seconds >= 0) {\n seconds = parseInt((timer % 60).toString(), 10);\n $(\"#time\").html(seconds.toString());\n }\n\n if (--timer < 0) {\n console.log(\"redirecting to: \" + this.businessWebsiteUrl)\n /*if (!agree) window.location.href = this.mainWebsiteUrl + \"/\";\n else window.location.href = this.businessWebsiteUrl + \"/management/\";*/\n clearInterval(interval);\n }\n }, 1000);\n }\n }\n}","module Business {\n import Country = Platform.Country;\n import UpgradeInformationModel = ClientAdministrator.UpgradeInformationModel;\n\n export class OrderController {\n private readonly _couponRepository: CouponRepository;\n private readonly accountDataRepository: Business.AccountDataRepository;\n private readonly _salesPackageRepository: SalesPackageRepository;\n\n private _cartController: CartController;\n\n private _couponRenderer: CouponRenderer;\n private _combidealsRenderer: CombidealsRenderer;\n\n private _userValidationController: UserValidationController;\n\n private _orderInformation: OrderInformationModel;\n private _upgradeInformation: UpgradeInformationModel;\n\n private _marketSalesPackages: MarketSalesPackagesResult;\n\n constructor(salesApiSettings: any, platformApiSettings: any, userApiSettings: any, checkoutUrl: string, orderUrl: string) {\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\n this._couponRepository = new CouponRepository(salesSettings);\n this._salesPackageRepository = new SalesPackageRepository(salesSettings);\n this.accountDataRepository = new Business.AccountDataRepository(salesSettings);\n\n this._cartController = new CartController(salesApiSettings, platformApiSettings, () => {\n this.renderCombiDeals();\n });\n this._orderInformation = this._cartController.orderInformation;\n this._upgradeInformation = this._cartController.upgradeInformation;\n\n this._combidealsRenderer = new CombidealsRenderer();\n this._couponRenderer = new CouponRenderer();\n\n this._userValidationController = new UserValidationController(salesSettings, checkoutUrl, orderUrl, UserValidationPopupRedirectPage.Order);\n\n $(document).ready(() => {\n this.renderHeader();\n this.initializePage();\n });\n }\n\n private initializePage() {\n PaymentInformationModel.deleteFromLocalStorage();\n if (this._cartController.isUpgrade()) {\n if (Authentication.isLoggedIn()) {\n this.accountDataRepository.getSalesAccountData().done(salesAccountData => {\n this._cartController.setvatNumber(salesAccountData.companyVATNumber);\n this._cartController.initializeUpgradeCart();\n this.initializeCouponBlock();\n this.displayCouponBlock(this._upgradeInformation?.couponCode);\n })\n }\n else {\n this._cartController.deleteUpgradeInformation();\n }\n }\n else {\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get(UserValidationController.returnAfterLogin) === \"true\") {\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.pathname, UserValidationController.returnAfterLogin));\n this._userValidationController.displayPopup();\n }\n\n $.when(this._cartController.initializeCart(CartRenderType.All, true))\n .done(() => {\n this._cartController.updatePayByInvoice(false);\n this._cartController.setvatNumber(Country.isNetherlands(this._orderInformation?.countryCode) ? this._orderInformation.vatNumber : Vat.PLACEHOLDER)\n this.initializeCouponBlock();\n this.displayCouponBlock(this._orderInformation?.couponCode);\n this.initializeCombiDeals();\n }).fail(() => {\n window.location.href = \"/\";\n });\n }\n\n const purchaseInformation = this._cartController.getPurchaseInformationModel();\n this._salesPackageRepository.getSalesPackagesByMarketAndCountry(purchaseInformation.marketId, purchaseInformation.countryId)\n .done(marketSalesPackages => {\n this._marketSalesPackages = marketSalesPackages;\n })\n .fail(err => {\n console.error(\"Failed to load market sales packages on order page\", err);\n })\n .always(() => {\n this.bindNavigationButtons();\n });\n\n }\n\n private displayCouponBlock = (couponCode: string) => {\n if (!String.isNullOrEmpty(couponCode)) {\n $('.coupon-input').prop('disabled', true);\n $('.coupon-confirm').prop('disabled', true);\n $('.icon-coupon-approved').addClass('icon-coupon-approved--active');\n $('.coupon-input').addClass('coupon-input--approved');\n $('.coupon-confirm').addClass('coupon-confirm--approved');\n $('.coupon-confirm').text(TranslationData.get(\"Business.Order.CouponConfirmed\"));\n $('.coupon-block').addClass('coupon-block--disabled');\n $('.coupon-title').addClass('coupon-title--disabled');\n $('.coupon-arrow').addClass('coupon-arrow--active');\n $('.coupon-input').val(couponCode);\n $('.coupon-block__body').show();\n }\n }\n\n private initializeCombiDeals() {\n this.renderCombiDeals();\n }\n\n private initializeCouponBlock() {\n this._couponRenderer.renderTemplate(() => {\n return this.bindCouponBlock();\n });\n }\n\n private renderCombiDeals() {\n if (this._cartController.upgradeInformation != null)\n return;\n\n const mainDeal = this._cartController.getDeal(this._orderInformation.marketId, this._orderInformation.mainDealId);\n\n const model: Array = new Array();\n\n let filteredCombideals = this._cartController.getCombiDealMarkets();\n this._orderInformation.dealIds.forEach(dealId => {\n filteredCombideals = new CombiDeals(filteredCombideals.list.filter(cd => cd.dealMarketId !== this._cartController.getMarketIdForDeal(dealId)));\n });\n\n filteredCombideals.each((cd) => {\n const deal = this._cartController.getDealByParticipantCount(cd.dealMarketId, mainDeal.participantCount);\n if (deal) {\n const marketId = cd.dealMarketId;\n const gameId = this._cartController.getGameIdForMarket(marketId);\n\n const marketDealResult = this._cartController.getMarketDealResult(marketId);\n let rowModel = new CombidealRowModel(deal, marketId, marketDealResult.gameName, marketDealResult.eventName, marketDealResult.imageUrl);\n\n if (cd.discountPercentage)\n rowModel.setDiscount(DiscountTypes.CombiDeal, cd.discountPercentage);\n\n rowModel.setAdditionalDeals(this._cartController.getDealsForMarketId(cd.dealMarketId), mainDeal.participantCount);\n model.push(rowModel);\n }\n });\n\n this._combidealsRenderer.renderTemplate(model, () => { return this.bindCombidealRows(); });\n }\n\n private bindCombidealRows() {\n this.bindCombidealRowDropdown();\n\n this.bindCombidealRowAddButton();\n }\n\n private bindCombidealRowAddButton() {\n $('.addtocart').click((event) => {\n return this.addToCartClick(event);\n });\n }\n\n private bindCombidealRowDropdown() {\n $('.select-participants.combidealrow').change((event) => {\n const target = $(event.target);\n const marketId = target.data('marketid');\n const selectedDeal = target.val();\n const newDeal = this._cartController.getDeal(marketId, selectedDeal);\n this._combidealsRenderer.updateDeal(marketId, newDeal, () => {\n this.bindCombidealRows();\n });\n });\n }\n\n private bindCouponBlock() {\n $('.coupon-block').click((event) => {\n const target = $(event.target);\n if (target.hasClass('coupon-confirm') ||\n target.hasClass('coupon-input')) {\n return;\n }\n return this.couponBlockHeaderClick(event);\n });\n\n $('.coupon-confirm').click(event => {\n return this.couponConfirmClick(event);\n });\n\n $('input.coupon-input').on('keyup', (event) => {\n if (event.keyCode === 13) {\n return this.couponConfirmClick(event);\n }\n });\n }\n\n private bindNavigationButtons() {\n $(\".order-page__proceed-button\").on(\"click\", () => {\n this._orderInformation?.saveToLocalStorage();\n this._upgradeInformation?.saveToLocalStorage();\n if (this._marketSalesPackages?.marketSalesPackages.length > 0) {\n Business.SalesPackageProgressModel.deleteFromLocalStorage();\n location.href = '/salespackage';\n }\n else {\n this._userValidationController.displayPopup();\n }\n });\n\n $(\".order-page__back-button\").on(\"click\", () => {\n const marketIdHash = window.location.hash.slice(1);\n if (this._upgradeInformation && (this._orderInformation?.marketId ?? 0) !== this._upgradeInformation.marketId) {\n localStorage.setItem(ManagementController.initalTabTypeLocalStorageKey, ClientAdminTabType.Upgrade.toString());\n location.href = `/management?marketid=${this._upgradeInformation.marketId}`;\n }\n else\n location.href = `${isNumeric(marketIdHash) ? `/#${marketIdHash}` : \"/\"}`;\n });\n }\n\n private renderHeader() {\n var header = $('
');\n header.addClass('business-header-image');\n header.addClass('business-header-image--small');\n header.attr('style', `background-image:url(${this._orderInformation?.salesHeaderImageUrl ?? \"/images/business/background-business.jpg\"})`);\n\n $('#inner-content').before(header);\n }\n\n private couponBlockHeaderClick(event: JQueryEventObject): void {\n let body = $('.coupon-block__body');\n if (body.is(\":visible\")) {\n $('.coupon-arrow').removeClass('coupon-arrow--active');\n body.hide(200);\n }\n else {\n body.show(200);\n $('.coupon-arrow').addClass('coupon-arrow--active');\n $('.coupon-input').focus();\n }\n }\n\n private couponConfirmClick(event: JQueryEventObject) {\n $(event.target).blur();\n\n $('.icon-coupon-approved').removeClass('icon-coupon-approved--active');\n $('.coupon-input').removeClass('coupon-input--approved');\n $('.coupon-input').removeClass('coupon-input--declined');\n $('.coupon-confirm').removeClass('coupon-confirm--approved');\n $('.icon-coupon-declined').removeClass('icon-coupon-declined--active');\n\n const coupon = $.trim($('input.coupon-input').val());\n if (coupon) {\n $('input.coupon-input').val(coupon);\n this._couponRepository.validateCoupon(coupon).done((coupon: Coupon) => {\n if (coupon.isValid) {\n $('.coupon-input').prop('disabled', true);\n $('.coupon-confirm').prop('disabled', true);\n $('.icon-coupon-approved').addClass('icon-coupon-approved--active');\n $('.coupon-input').addClass('coupon-input--approved');\n $('.coupon-confirm').addClass('coupon-confirm--approved');\n $('.coupon-confirm').text(TranslationData.get(\"Business.Order.CouponConfirmed\"));\n $('.coupon-block').addClass('coupon-block--disabled');\n $('.coupon-title').addClass('coupon-title--disabled');\n this._cartController.updateCoupon(coupon.code);\n }\n else {\n $('.icon-coupon-declined').addClass('icon-coupon-declined--active');\n $('.coupon-input').addClass('coupon-input--declined');\n }\n }).fail(() => {\n $('.icon-coupon-declined').addClass('icon-coupon-declined--active');\n $('.coupon-input').addClass('coupon-input--declined');\n });\n } else {\n $('.icon-coupon-declined').addClass('icon-coupon-declined--active');\n $('.coupon-input').addClass('coupon-input--declined');\n }\n }\n\n private addToCartClick(event: JQueryEventObject): void {\n const target = $(event.target);\n const dealId = target.data('dealid');\n\n this._cartController.addDealToCart(dealId);\n }\n }\n}","/// \n\nmodule Business {\n export class OrderInformationModel extends PurchaseInformationModel {\n public static localStorageKey = `sales.OrderInformation.${location.hostname}`;\n\n protected isUpgrade: boolean = false;\n\n public gameHeaderImageUrl: string;\n public salesHeaderImageUrl: string;\n\n public mainDealId: number;\n public dealIds: Array;\n\n public countryCode: string;\n public participantCount: number;\n\n constructor(gameId: number, marketId: number, mainDealId: number, dealIds: Array, salesPackageIdsWithAmounts: Record, salesPackagePersonalizationTexts: Record, countryId: number, countryCode: string, couponCode: string, gameHeaderImageUrl: string, participantCount: number, payByInvoice: boolean, salesHeaderImageUrl: string, vatNumber: string) {\n super(marketId, gameId, countryId, payByInvoice, vatNumber, couponCode, salesPackageIdsWithAmounts, salesPackagePersonalizationTexts);\n\n this.gameHeaderImageUrl = gameHeaderImageUrl;\n this.salesHeaderImageUrl = salesHeaderImageUrl;\n this.mainDealId = mainDealId;\n this.dealIds = dealIds != null ? dealIds : new Array();\n this.countryCode = countryCode;\n this.participantCount = participantCount;\n }\n\n public updateCountry = (countryId: number, countryCode: string): void => {\n this.countryId = countryId;\n this.countryCode = countryCode;\n }\n\n // Used for checkout\n public setIsUpgrade = (isUpgrade: boolean): OrderInformationModel => {\n this.isUpgrade = isUpgrade;\n return this;\n }\n\n public static getOrderInformationFromLocalStorage(): Business.OrderInformationModel {\n var storageObject = JSON.parse(localStorage.getItem(OrderInformationModel.localStorageKey));\n if (storageObject != null) {\n return new this(\n storageObject.gameId\n , storageObject.marketId\n , storageObject.mainDealId\n , storageObject.dealIds\n , storageObject.salesPackageIdsWithAmounts\n , storageObject.salesPackagePersonalizationTexts\n , storageObject.countryId\n , storageObject.countryCode\n , storageObject.couponCode\n , storageObject.gameHeaderImageUrl\n , storageObject.participantCount\n , storageObject.payByInvoice\n , storageObject.salesHeaderImageUrl\n , storageObject.vatNumber\n ).setIsUpgrade(storageObject.isUpgrade);\n } else {\n return null;\n }\n }\n\n public saveToLocalStorage(): void {\n localStorage.setItem(OrderInformationModel.localStorageKey, JSON.stringify(this));\n }\n\n public static deleteFromLocalStorage(): void {\n localStorage.removeItem(OrderInformationModel.localStorageKey);\n }\n }\n}","module Business {\n export class SalesPackageController {\n private readonly _salesPackageRepository: SalesPackageRepository;\n\n private readonly _cartController: CartController;\n private readonly _userValidationController: UserValidationController;\n\n private readonly _salesPackageSideViewRenderer: SalesPackageSideViewRenderer;\n private readonly _salesPackageProgressModel: SalesPackageProgressModel;\n private readonly _salesPackageItemsRenderer: SalesPackageItemsRenderer;\n private readonly _salesPackageImagePopupRenderer: SalesPackageImagePopupRenderer;\n\n private marketSalesPackages: MarketSalesPackagesResult;\n\n private static readonly MAX_CSHARP_SAFE_INT32 = 2_147_483_647;\n\n constructor(salesApiSettings: any, platformApiSettings: any, checkoutUrl: string, orderUrl: string) {\n const salesSettings = new ApiSettings.SalesApiSettings(salesApiSettings);\n this._salesPackageRepository = new SalesPackageRepository(salesSettings);\n\n this._cartController = new CartController(salesApiSettings, platformApiSettings, (summary: SummaryModel, _: CartModel) => { });\n this._salesPackageSideViewRenderer = new SalesPackageSideViewRenderer();\n this._salesPackageItemsRenderer = new SalesPackageItemsRenderer();\n this._salesPackageImagePopupRenderer = new SalesPackageImagePopupRenderer();\n this._userValidationController = new UserValidationController(salesSettings, checkoutUrl, orderUrl, UserValidationPopupRedirectPage.SalesPackage);\n\n this._salesPackageProgressModel = SalesPackageProgressModel.getFromLocalStorage();\n this._cartController = new CartController(salesApiSettings, platformApiSettings,\n (summary: SummaryModel, cartModel: CartModel) => {\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get(UserValidationController.returnAfterLogin) === \"true\") {\n localStorage.removeItem(UserValidationController.createNewAccountLocalStorageKey);\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.pathname, UserValidationController.returnAfterLogin));\n }\n\n return this.renderSideView(summary, cartModel);\n });\n\n $(document).ready(() => {\n this.renderHeader();\n this.initializePage();\n });\n }\n\n private initializePage() {\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get(UserValidationController.returnAfterLogin) === \"true\") {\n window.history.replaceState({}, document.title, removeUrlParameter(window.location.pathname, UserValidationController.returnAfterLogin));\n this._userValidationController.displayPopup();\n }\n\n const purchaseInformationModel = this._cartController.getPurchaseInformationModel()\n const marketId = purchaseInformationModel?.marketId;\n const countryId = purchaseInformationModel?.countryId;\n\n if (!marketId || !countryId) {\n location.href = \"/\";\n }\n\n this._salesPackageRepository.getSalesPackagesByMarketAndCountry(marketId, countryId)\n .done(result => {\n if (result.marketSalesPackages.length < 1) {\n location.href = \"/\";\n return;\n }\n this.marketSalesPackages = result;\n\n const initialPage = this.determineInitialPage();\n this.renderPage(initialPage);\n\n if (this._cartController.isUpgrade()) {\n this._cartController.initializeUpgradeCart();\n }\n else {\n this._cartController.initializeCart(CartRenderType.OnlySideView);\n }\n });\n\n this.bindButtons();\n }\n\n private renderPage = (page: SalesPackageType) => {\n this._salesPackageProgressModel.updatePage(page);\n this._salesPackageItemsRenderer.renderTemplate(this.marketSalesPackages, this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts, this.bindSalesPackageItemsRendererButtons);\n this._salesPackageItemsRenderer.updateNavigationButtons(this.getSelectionStateByType(), this.getSelectionStateForPackages(), this.determineNextPage(), this._cartController.isEmpty());\n }\n\n private bindSalesPackageItemsRendererButtons = () => {\n $(\".sales-package__amount-button--decrease\").on(\"click\", (e) => {\n const elem = $(e.currentTarget);\n const row = elem.closest(\".sales-package__row\");\n const id: number = row.data(\"id\");\n const amount = this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts[id] ?? 0;\n\n this.updateSalesPackageAmount(id, Math.max(0, amount - 1));\n });\n\n $(\".sales-package__amount-input\").on(\"keyup\", (e) => {\n const elem = $(e.currentTarget);\n const row = elem.closest(\".sales-package__row\");\n const id: number = row.data(\"id\");\n const newAmount: number = +elem.val();\n\n this.updateSalesPackageAmount(id, Math.max(0, newAmount));\n });\n\n $(\".sales-package__amount-button--increase\").on(\"click\", (e) => {\n const elem = $(e.currentTarget);\n const row = elem.closest(\".sales-package__row\");\n const id: number = row.data(\"id\");\n const amount = this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts[id] ?? 0;\n\n this.updateSalesPackageAmount(id, amount + 1);\n });\n\n $(\".sales-package__item-image-container, .sales-package__item-info--more-info\").on(\"click\", (e) => {\n const elem = $(e.currentTarget);\n const row = elem.closest(\".sales-package__row\");\n const id: number = row.data(\"id\");\n const salesPackage = this.marketSalesPackages.getById(id);\n if (salesPackage == null)\n return;\n\n this._salesPackageImagePopupRenderer.renderTemplate(salesPackage, () => {\n $.scoritoPopup({\n elementId: 'sales-package-image-popup',\n contentHtml: $(\".sales-package-image-popup-placeholder\").html(),\n popupTitle: TranslationData.get(`Business.SalesPackage.${salesPackage.id}.Title`),\n widthInPixels: 1240,\n follow: [true, false]\n });\n\n if (salesPackage.imageUrls.length > 1) {\n $('.bxslider').bxSlider({\n speed: 600,\n auto: true,\n pager: true,\n controls: true,\n responsive: true,\n slideWidth: 780\n });\n }\n });\n });\n\n $(\".sales-package__item-image-container\").hover((e) => {\n const elem = $(e.currentTarget);\n const row = elem.closest(\".sales-package__row\");\n const id: number = row.data(\"id\");\n $(`#preview-image-${id}`).addClass(\"sales-package__item-image--hover\");\n $(`#overlay-icon-${id}`).addClass(\"sales-package__item-image-overlay-icon--hover\");\n }, (e) => {\n const elem = $(e.currentTarget);\n const row = elem.closest(\".sales-package__row\");\n const id: number = row.data(\"id\");\n $(`#preview-image-${id}`).removeClass(\"sales-package__item-image--hover\");\n $(`#overlay-icon-${id}`).removeClass(\"sales-package__item-image-overlay-icon--hover\");\n });\n }\n\n private updateSalesPackageAmount = (id: number, amount: number) => {\n const safeAmount = Math.max(0, Math.min(amount, SalesPackageController.MAX_CSHARP_SAFE_INT32));\n this._cartController.setSalesPackageInCart(id, safeAmount);\n\n this._salesPackageItemsRenderer.updateNavigationButtons(this.getSelectionStateByType(), this.getSelectionStateForPackages(), this.determineNextPage(), this._cartController.isEmpty());\n\n const packageRow = $(`.sales-package__row[data-id=\"${id}\"]`);\n\n const salesPackage = this.marketSalesPackages.getById(id);\n\n this._salesPackageItemsRenderer.updateAmountButtons(packageRow, +safeAmount.toString().replace(/\\D/g, \"\"), salesPackage)\n }\n\n private renderSideView = (summary: SummaryModel, cartModel: CartModel) => {\n this._salesPackageSideViewRenderer.renderSideViewTemplate(summary, [...cartModel.list], false, () => {\n $(\".sales-package\").css(\"min-height\", 200 + $(\".sales-package__side-view\").height())\n });\n }\n\n private renderHeader() {\n var header = $('
');\n header.addClass('business-header-image');\n header.addClass('business-header-image--small');\n header.attr('style', `background-image:url(${this._cartController.orderInformation?.salesHeaderImageUrl ?? \"/images/business/background-business.jpg\"})`);\n\n $('#inner-content').before(header);\n }\n\n private calculateState = (amountSelected: number, minimumRequired: number): SelectionState => {\n if (amountSelected < 1 || minimumRequired < 2) {\n return \"ValidNothingSelected\";\n }\n\n if (amountSelected < minimumRequired) {\n return \"Invalid\";\n }\n\n return \"ValidSelected\";\n }\n\n private getSelectionStateForPackages = (): SelectionState[] => {\n const currentPage = this._salesPackageProgressModel.currentPage;\n const filteredSalesPackages = this.marketSalesPackages.getSalesPackagesByPageType(currentPage);\n\n const selectionStates: SelectionState[] = [];\n for (let index = 0; index < filteredSalesPackages.length; index++) {\n const salesPackage = filteredSalesPackages[index];\n const amount = this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts?.[salesPackage.id] ?? 0;\n selectionStates.push(this.calculateState(amount, salesPackage.minPurchasesRequired));\n }\n\n return selectionStates;\n }\n\n private getSelectionStateByType = (): Selection => {\n const currentPage = this._salesPackageProgressModel.currentPage;\n const filteredSalesPackages = this.marketSalesPackages.getSalesPackagesByPageType(currentPage);\n\n let amountSelected = 0;\n filteredSalesPackages.forEach(salesPackage => {\n const amount = this._cartController.getPurchaseInformationModel()?.salesPackageIdsWithAmounts?.[salesPackage.id] ?? 0;\n amountSelected += amount;\n })\n\n const minimumRequired = +this.marketSalesPackages.minPurchaseByType[SalesPackageType[currentPage].toString()];\n\n const data = {\n type: currentPage,\n minimumRequired,\n amountSelected\n }\n\n return { state: this.calculateState(amountSelected, minimumRequired), ...data }\n }\n\n private bindButtons = () => {\n $(\".sales-package__button--next\").on(\"click\", () => {\n if (this.getSelectionStateByType().state === \"Invalid\" || this.getSelectionStateForPackages().some(s => s === \"Invalid\")) {\n return;\n }\n let nextPage = this.determineNextPage();\n if (nextPage == null) {\n this._userValidationController.displayPopup();\n return;\n }\n\n this.renderPage(nextPage);\n });\n\n $(\".sales-package__button--previous\").on(\"click\", () => {\n let prevPage = this.determinePreviousPage();\n if (prevPage == null) {\n\n if (!this._cartController.isEmptyIgnoreSalesPackages())\n location.href = '/order';\n else if (this._cartController.upgradeInformation?.marketId > 0) {\n localStorage.setItem(ManagementController.initalTabTypeLocalStorageKey, ClientAdminTabType.Upgrade.toString());\n location.href = `/management?marketid=${this._cartController.upgradeInformation.marketId}`;\n }\n else\n location.href = `/`;\n\n return;\n }\n\n this.renderPage(prevPage);\n });\n }\n\n private determineInitialPage = (): SalesPackageType | null => {\n if (this._salesPackageProgressModel.shouldInitiallyGoToCurrentPage) {\n this._salesPackageProgressModel.setShouldInitiallyGoToCurrentPage(false);\n return this._salesPackageProgressModel.currentPage;\n }\n\n for (let i = 0; i < this._salesPackageProgressModel.pageOrder.length; i++) {\n const page = this._salesPackageProgressModel.pageOrder[i];\n if (this.marketSalesPackages.hasSalesPackagesOfType(page)) {\n return page;\n }\n }\n\n return null;\n }\n\n private determineNextPage = (): SalesPackageType | null => {\n\n const indexOfCurrentPage = this._salesPackageProgressModel.pageOrder.indexOf(this._salesPackageProgressModel.currentPage);\n for (let i = 0; i < this._salesPackageProgressModel.pageOrder.length; i++) {\n if (indexOfCurrentPage < i) {\n const page = this._salesPackageProgressModel.pageOrder[i];\n if (this.marketSalesPackages.hasSalesPackagesOfType(page)) {\n return page;\n }\n }\n }\n\n return null;\n }\n\n private determinePreviousPage = (): SalesPackageType | null => {\n\n const indexOfCurrentPage = this._salesPackageProgressModel.pageOrder.indexOf(this._salesPackageProgressModel.currentPage);\n for (let i = this._salesPackageProgressModel.pageOrder.length - 1; i >= 0; i--) {\n if (i < indexOfCurrentPage) {\n const page = this._salesPackageProgressModel.pageOrder[i];\n if (this.marketSalesPackages.hasSalesPackagesOfType(page)) {\n return page;\n }\n }\n }\n\n return null;\n }\n }\n}","/// \n/// \n\nmodule Business {\n export class UserValidationController {\n private readonly _checkoutUrl: string;\n private readonly redirectPage: UserValidationPopupRedirectPage;\n private readonly _redirectToLoginReturnUrl: string;\n\n private readonly _popupRenderer: PopupRenderer;\n\n private readonly _accountDataRepository: AccountDataRepository;\n\n public static createNewAccountLocalStorageKey = \"sales.CreateNewAccount\";\n public static returnAfterLogin = \"returnAfterLogin\";\n\n constructor(salesApiSettings: ApiSettings.SalesApiSettings, checkoutUrl: string, orderUrl: string, redirectPage: UserValidationPopupRedirectPage) {\n this._checkoutUrl = checkoutUrl;\n this._popupRenderer = new PopupRenderer();\n this._accountDataRepository = new AccountDataRepository(salesApiSettings);\n\n let redirectUrl: string;\n switch (redirectPage) {\n case UserValidationPopupRedirectPage.Order:\n redirectUrl = orderUrl;\n break;\n case UserValidationPopupRedirectPage.SalesPackage:\n redirectUrl = '/salespackage';\n break;\n default:\n redirectUrl = orderUrl;\n }\n\n this.redirectPage = redirectPage;\n this._redirectToLoginReturnUrl = `${encodeURIComponent(redirectUrl)}?${UserValidationController.returnAfterLogin}=true`;\n }\n\n public displayPopup() {\n if (!Authentication.isLoggedIn()) {\n this.initializePopup();\n this.showAccountCheck();\n return;\n }\n this._accountDataRepository.getSalesAccountData().done((accountData: SalesAccountData) => {\n if (accountData.isLoggedInWithBusinessAccount) {\n this.proceedToCheckout(false);\n } else {\n this.initializePopup();\n this.showExtendAccount();\n }\n }).fail(err => {\n if (err.status === 401) {\n return NotificationBar.Display(TranslationData.get(\"Identity.API.NoAccessToken\"));\n }\n\n console.error(JSON.stringify(err));\n NotificationBar.Display(TranslationData.get(\"Business.ErrorOnPage\"))\n });\n }\n\n private initializePopup() {\n let popupPlaceholder = $('
');\n popupPlaceholder.addClass(\"uservalidation-popup-placeholder\");\n $.scoritoPopup({\n elementId: 'uservalidation-popup',\n contentHtml: popupPlaceholder[0].outerHTML,\n widthInPixels: 591,\n follow: [false, false]\n });\n }\n\n private showAccountCheck() {\n this._popupRenderer.renderAccountCheck(() => {\n return this.bindAccountCheck();\n });\n }\n\n private showExtendAccount() {\n this._popupRenderer.renderExtendAccount(() => {\n return this.bindExtendAccount();\n });\n }\n\n private redirectToLogin() {\n if (this.redirectPage === UserValidationPopupRedirectPage.SalesPackage) {\n SalesPackageProgressModel.getFromLocalStorage().setShouldInitiallyGoToCurrentPage(true);\n }\n\n location.href = `/user/login?returnUrl=${this._redirectToLoginReturnUrl}`;\n }\n\n\n private bindAccountCheck() {\n $(\".popup-block__yes-button\").click((event) => {\n this.redirectToLogin();\n });\n\n $(\".popup-block__no-button\").click((event) => {\n this.proceedToCheckout(true);\n });\n }\n\n private bindExtendAccount() {\n $(\".popup-block__yes-button\").click((event) => {\n this.proceedToCheckout(false);\n });\n\n $(\".popup-block__no-button\").click((event) => {\n this.proceedToCheckout(true);\n });\n }\n\n private proceedToCheckout(createNewAccount: boolean) {\n localStorage[UserValidationController.createNewAccountLocalStorageKey] = createNewAccount;\n if (createNewAccount && Authentication.isLoggedIn()) {\n location.href = `/user/logout?returnUrl=${this._checkoutUrl}`;\n }\n else {\n location.href = this._checkoutUrl;\n }\n }\n }\n}","module Business {\n export class CheckoutProgressRenderer {\n private checkoutProgressTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (model: CheckoutProgressModel): void => {\n if (this.checkoutProgressTemplate == null) {\n this.checkoutProgressTemplate = Handlebars.compile($(\"#checkout-progress-template\").html());\n }\n\n $(\".business-checkout__progress-placeholder\").html(this.checkoutProgressTemplate(model));\n\n }\n }\n}","module Business {\n export enum CheckoutProgressStep {\n One = 1,\n Two = 2,\n Three = 3\n }\n}","module Business {\n export class CheckoutRenderer {\n private orderOverviewSideViewTemplate: HandlebarsTemplateDelegate;\n private orderOverviewGameTemplate: HandlebarsTemplateDelegate;\n private orderOverviewSalesPackageTemplate: HandlebarsTemplateDelegate;\n\n public renderSideViewTemplate = (summary: SummaryModel, order: (PackageRowModel | SalesPackageRowModel)[], checkoutProgress: CheckoutProgressModel, isUpgrade: boolean, hasPurchased: boolean, bindHtmlElements: Function): void => {\n if (this.orderOverviewSideViewTemplate == null) {\n this.orderOverviewSideViewTemplate = Handlebars.compile($(\"#order-overview-side-view-template\").html());\n }\n\n if (this.orderOverviewSalesPackageTemplate == null) {\n this.orderOverviewSalesPackageTemplate = Handlebars.compile($(\"#order-overview-sales-package-template\").html());\n Handlebars.registerPartial(\"orderOverviewSalesPackageTemplate\", this.orderOverviewSalesPackageTemplate);\n }\n\n if (this.orderOverviewGameTemplate == null) {\n this.orderOverviewGameTemplate = Handlebars.compile($(\"#order-overview-game-template\").html());\n Handlebars.registerPartial(\"orderOverviewGameTemplate\", this.orderOverviewGameTemplate);\n }\n\n const games = order.filter(o => o.type === \"game\")\n $(\".order-block--games\").toggle(games.length > 0);\n $(\".business-checkout__side-view-placeholder\").html(this.orderOverviewSideViewTemplate({\n games,\n salesPackages: order.filter(o => o.type === \"salesPackage\"),\n summary,\n hasPurchased\n }));\n\n const sideBar = $(\".business-checkout__side-view\");\n const titleHeight = $($(\".business-checkout__title\")[checkoutProgress.currentStep - 1]).outerHeight(true);\n sideBar.css(\"top\", titleHeight);\n\n this.scrollInView(sideBar, titleHeight, checkoutProgress, isUpgrade);\n\n $(document).scroll(_.throttle(() => {\n this.scrollInView(sideBar, titleHeight, checkoutProgress, isUpgrade);\n }, 15));\n\n bindHtmlElements();\n }\n\n private scrollInView = (sideBar: JQuery, titleHeight: number, checkoutProgress: CheckoutProgressModel, isUpgrade: boolean) => {\n let bottomContainer: JQuery;\n\n if (checkoutProgress.isStepOne()) {\n if (isUpgrade) {\n bottomContainer = $(\".business-checkout__forms\");\n }\n else {\n bottomContainer = $(\".business-checkout__administrator-info\");\n }\n }\n else if (checkoutProgress.isStepTwo()) {\n bottomContainer = $(\".payment-method__placeholder\");\n }\n else {\n bottomContainer = $(\".business-checkout__step-3\");\n }\n const bottomPosition = bottomContainer.position().top + bottomContainer.outerHeight(true) - sideBar.outerHeight(true);\n const currentScroll = $(document).scrollTop();\n const maxBottomPosition = currentScroll > bottomPosition ? bottomPosition : currentScroll - (sideBar.outerHeight(true) / 2) + (titleHeight * 2);\n sideBar.css(\"top\", Math.max(titleHeight, maxBottomPosition));\n }\n }\n}","module Business {\n export class PaymentMethodsRenderer {\n private paymentMethodsTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (\n paymentMethods: PaymentMethods,\n signUpDeadline: string,\n cdnUrl: string,\n bindClickListeners: Function\n ): void => {\n if (this.paymentMethodsTemplate == null) {\n this.paymentMethodsTemplate = Handlebars.compile($(\"#payment-methods-template\").html());\n }\n\n let expirationDate = moment.utc().add(14, 'days');\n const withinEventDeadline = moment.utc(signUpDeadline).isAfter(moment.utc()) && moment.utc(signUpDeadline).isBefore(expirationDate);\n if (withinEventDeadline) {\n expirationDate = moment.utc(signUpDeadline);\n }\n const invoiceDeadline = !withinEventDeadline\n ? new String(TranslationData.get(\"Business.InvoiceDeadlineAfterEventDeadline\")).format(expirationDate.locale(uiCulture).format(\"DD MMMM YYYY\"))\n : new String(TranslationData.get(\"Business.InvoiceDeadline\")).format(expirationDate.locale(uiCulture).format(\"DD MMMM YYYY\"));\n\n const creditcardGroups = paymentMethods.primaryPaymentMethods.filter(i => i.businessPaymentGroupType === \"CreditCard\");\n const secondaryCreditcardGroups = paymentMethods.secondaryPaymentMethods.filter(i => i.businessPaymentGroupType === \"CreditCard\");\n\n let finalPaymentMethods = paymentMethods;\n\n if (creditcardGroups.length > 0 && secondaryCreditcardGroups.length > 0) {\n const primaryPaymentGroups = paymentMethods.primaryPaymentMethods.filter(i => i.businessPaymentGroupType !== \"CreditCard\");\n const creditcardGroup = creditcardGroups[0];\n const secondaryCreditcardGroup = secondaryCreditcardGroups[0];\n\n creditcardGroup.paymentMethods.push(...secondaryCreditcardGroup.paymentMethods);\n\n primaryPaymentGroups.push(creditcardGroup);\n\n finalPaymentMethods.primaryPaymentMethods = primaryPaymentGroups;\n finalPaymentMethods.secondaryPaymentMethods = finalPaymentMethods.secondaryPaymentMethods.filter(i => i.businessPaymentGroupType !== \"CreditCard\");\n }\n\n $(\".payment-method__placeholder\").html(this.paymentMethodsTemplate({ paymentMethods: finalPaymentMethods, cdnUrl, invoiceDeadline }));\n\n bindClickListeners();\n }\n }\n}","module Business {\n export class ClientsRenderer {\n private _clientsTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n\n }\n\n public renderTemplate(imageUrls: Array, bindHtmlElements: Function): void {\n if (this._clientsTemplate == null) {\n this._clientsTemplate = Handlebars.compile($(\"#clients-template\").html());\n }\n\n var model = new ClientsCarouselModel(imageUrls);\n\n $(\".clients-placeholder\").html(this._clientsTemplate(model));\n\n if (model.multipleSlides) {\n bindHtmlElements();\n }\n }\n }\n}","module Business {\n export class DealsTableRenderer {\n private _dealsTableTemplate: HandlebarsTemplateDelegate;\n private _dealsTableRowTemplate: HandlebarsTemplateDelegate;\n private _viewModel: DealsTableModel;\n\n constructor() {\n }\n\n public renderEmptyTemplate() {\n this.renderTemplateForModel(DealsTableModel.createEmpty(), () => { });\n }\n\n public renderTemplateWithNewDeals(earlyBirdDiscount: EarlyBirdDiscount, marketDeals: Array, selectedDeal: Deal, preSelectDeal: boolean, centerDeal: boolean, bindHtmlElements: Function): void {\n this._viewModel = DealsTableModel.fromDto(earlyBirdDiscount, marketDeals, selectedDeal, preSelectDeal, centerDeal, this._viewModel?.middleTier?.count);\n this.renderTemplateForModel(this._viewModel, bindHtmlElements);\n }\n\n public renderTemplateWithNewSelection(selectedDeal: Deal, bindHtmlElements: Function) {\n this._viewModel.setSelectedDeal(selectedDeal);\n this.renderTemplateForModel(this._viewModel, bindHtmlElements);\n }\n\n private renderTemplateForModel(dealsTable: DealsTableModel, bindHtmlElements: Function): void {\n if (this._dealsTableTemplate == null) {\n this._dealsTableTemplate = Handlebars.compile($(\"#deals-table-template\").html());\n }\n\n if (this._dealsTableRowTemplate == null) {\n this._dealsTableRowTemplate = Handlebars.compile($(\"#deals-table-row-template\").html());\n Handlebars.registerPartial(\"dealstablerowpartial\", this._dealsTableRowTemplate);\n }\n $(\".deals-table-placeholder\").html(this._dealsTableTemplate(dealsTable));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class HelpRenderer {\n private _faqTabTemplate: HandlebarsTemplateDelegate;\n private _faqQuestionTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(faqModel: FaqQuestions, bindHtmlElements: Function): void {\n if (this._faqTabTemplate == null) {\n this._faqTabTemplate = Handlebars.compile($(\"#faq-template\").html());\n }\n\n if (this._faqQuestionTemplate == null) {\n this._faqQuestionTemplate = Handlebars.compile($(\"#faq-question-template\").html());\n Handlebars.registerPartial(\"faqquestionpartial\", this._faqQuestionTemplate);\n }\n\n $(\".faq-placeholder\").html(this._faqTabTemplate(faqModel));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class BrochurePopupRenderer {\n private brochurePopupTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(bindHtmlElements: Function): void {\n if (this.brochurePopupTemplate == null) {\n this.brochurePopupTemplate = Handlebars.compile($(\"#brochure-popup-template\").html());\n }\n\n $(\".brochure-popup-placeholder\").html(this.brochurePopupTemplate({}));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class BrochureRenderer {\n private _brochureTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (marketId: number, regionId: number, bindHtmlElements: Function): void => {\n if (this._brochureTemplate == null) {\n this._brochureTemplate = Handlebars.compile($(\"#promotional-brochure-template\").html());\n }\n\n const brochureModel = new BrochurePromotionalBlockModel(marketId, regionId);\n if (!brochureModel.isEmpty()) {\n $(\".brochure-placeholder\").show()\n $(\".brochure-placeholder\").html(this._brochureTemplate(brochureModel));\n } else {\n $(\".brochure-placeholder\").hide()\n }\n\n bindHtmlElements();\n }\n\n }\n}","module Business {\n export class GameTabsRenderer {\n private _gameTabsTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(gameTabs: GameTabs, selectedGame: number, bindHtmlElements: Function): void {\n if (this._gameTabsTemplate == null) {\n this._gameTabsTemplate = Handlebars.compile($(\"#game-tabs-template\").html());\n }\n var model: GameTabsModel = new GameTabsModel();\n gameTabs.gameTabs.forEach((gameTab) => {\n model.gameTabs.push(new GameTabModel(gameTab.gameId, gameTab.gameId == selectedGame, null, null, null));\n });\n\n $(\".game-tabs-placeholder\").html(this._gameTabsTemplate(model));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class HeaderRenderer {\n private _headerTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(gameTabs: GameTabs, selectedGame: number, bindHtmlElements: Function): void {\n if (this._headerTemplate == null) {\n this._headerTemplate = Handlebars.compile($(\"#header-template\").html());\n }\n\n var model: GameTabsModel = new GameTabsModel();\n var selectedIndex: number;\n gameTabs.gameTabs.forEach((gameTab, index) => {\n var selected = gameTab.gameId == selectedGame;\n if (selected)\n selectedIndex = index;\n\n model.gameTabs.push(new GameTabModel(gameTab.gameId, selected, gameTab.headerImageUrl, gameTab.carouselImageUrls, gameTab.salesHeaderImageUrl));\n });\n\n $('.business-header-placeholder').html(this._headerTemplate(model));\n\n bindHtmlElements(selectedIndex);\n }\n }\n}","module Business {\n export class MarketTabsRenderer {\n private _marketTabsTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(gameTab: GameTab, selectedMarket: number, showMarketDropdown: boolean, bindHtmlElements: Function): void {\n if (this._marketTabsTemplate == null) {\n this._marketTabsTemplate = Handlebars.compile($(\"#market-tabs-template\").html());\n }\n var model: MarketTabsModel = new MarketTabsModel();\n gameTab.marketTabs.forEach((marketTab) => {\n model.marketTabs.push(new MarketTabModel(marketTab.marketId, marketTab.marketId == selectedMarket));\n });\n\n $(\".market-tabs-placeholder\").html(showMarketDropdown ? this._marketTabsTemplate(model) : \"\");\n\n bindHtmlElements();\n }\n\n public renderEmpty() {\n $(\".market-tabs-placeholder\").html('');\n }\n }\n}","module Business {\n export class PromotionalVideoRenderer {\n\n public renderTemplate = (marketId: number, regionId: number, callback?: Function): void => {\n\n const videoModel = _.first(VideoPromotionalBlockModel.getVideoPromotionalBlockModel(marketId, regionId));\n if (videoModel) {\n if (videoModel.videoUrl?.indexOf(\"youtube.com/embed/\") !== -1) {\n\n const html = ``;\n $(\".promotional-video__video-player\").html(html)\n $(\".promotional-column\").show();\n\n callback?.();\n }\n else {\n $(\".promotional-column\").hide();\n }\n } else {\n $(\".promotional-column\").hide();\n }\n\n }\n }\n}","module Business {\n export class CouponRenderer {\n private _couponTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(bindHtmlElements: Function): void {\n if (this._couponTemplate == null) {\n this._couponTemplate = Handlebars.compile($(\"#coupon-template\").html());\n }\n\n const salesPackageIds = OrderInformationModel.getOrderInformationFromLocalStorage()?.getSalesPackageIds()?? [];\n if (salesPackageIds.length > 0) {\n $(\".order-block--sales-packages .coupon-placeholder\").html(this._couponTemplate);\n $(\".order-block--games .order-block__seperator\").hide();\n $(\".order-block--games .order-block__summary\").hide();\n }\n else {\n $(\".order-block--games .coupon-placeholder\").html(this._couponTemplate);\n $(\".order-block--sales-packages .order-block__seperator\").hide();\n $(\".order-block--sales-packages .order-block__summary\").hide();\n }\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class OrderFormRenderer {\n private _orderFormTemplate: HandlebarsTemplateDelegate;\n private _alreadyPurchasedorderFormTemplate: HandlebarsTemplateDelegate;\n private _viewModel: OrderFormModel;\n\n constructor() {\n }\n\n public renderTemplateWithNewModel(viewModel: OrderFormModel, bindHtmlElements: Function) {\n this._viewModel = viewModel;\n this.renderTemplateWithModel(bindHtmlElements);\n }\n\n public renderError(bindHtmlElements: Function) {\n this._viewModel.hasError = true;\n this.renderTemplateWithModel(bindHtmlElements);\n }\n\n public renderMarketError(bindHtmlElements: Function) {\n this._viewModel.hasMarketError = true;\n this.renderTemplateWithModel(bindHtmlElements);\n }\n\n public hide() {\n $(\".order-form-placeholder\").html(\"\");\n }\n\n private renderTemplateWithModel(bindHtmlElements: Function) {\n if (this._orderFormTemplate == null) {\n this._orderFormTemplate = Handlebars.compile($(\"#order-form-template\").html());\n }\n $(\".order-form-placeholder\").html(this._orderFormTemplate(this._viewModel));\n\n bindHtmlElements();\n }\n\n public renderAlreadyPurchased = (viewModel: OrderFormModel, callback: Function) => {\n if (this._alreadyPurchasedorderFormTemplate == null) {\n this._alreadyPurchasedorderFormTemplate = Handlebars.compile($(\"#already-purchased-order-form-template\").html());\n }\n\n $(\".order-form-placeholder\").html(this._alreadyPurchasedorderFormTemplate(viewModel));\n\n callback();\n }\n }\n}","module Business {\n export class QuestionsRenderer {\n private _questionsTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n\n }\n\n public renderTemplate(model: QuestionsModel): void {\n if (this._questionsTemplate == null) {\n this._questionsTemplate = Handlebars.compile($(\"#questions-template\").html());\n }\n\n $(\".questions-placeholder\").html(this._questionsTemplate(model));\n }\n }\n}","module Business {\n export class SalesPackageImagePopupRenderer {\n private salesPackageImagePopupTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(marketSalesPackage: MarketSalesPackage, bindHtmlElements: Function): void {\n if (this.salesPackageImagePopupTemplate == null) {\n this.salesPackageImagePopupTemplate = Handlebars.compile($(\"#sales-package-image-popup-template\").html());\n }\n\n $(\".sales-package-image-popup-placeholder\").html(this.salesPackageImagePopupTemplate({\n imageUrls: marketSalesPackage.imageUrls,\n hasCarousel: marketSalesPackage.imageUrls.length > 1,\n description: TranslationData.get(`Business.SalesPackage.${marketSalesPackage.id}.PopupDescription`),\n }));\n\n bindHtmlElements();\n }\n }\n}\n","module Business {\n export class SalesPackageItemsRenderer {\n private salesPackageItemsTemplate: HandlebarsTemplateDelegate;\n\n public renderTemplate = (\n salesPackages: MarketSalesPackagesResult,\n salesPackageIdsWithAmounts: Record,\n bindClickListeners: Function\n ): void => {\n if (this.salesPackageItemsTemplate == null) {\n this.salesPackageItemsTemplate = Handlebars.compile($(\"#sales-package-items-template\").html());\n }\n\n const page = SalesPackageProgressModel.getFromLocalStorage().currentPage;\n const filteredSalesPackages = salesPackages.getSalesPackagesByPageType(page);\n const salesPackagesViewModels = filteredSalesPackages.map(x => new SalesPackageViewModel(salesPackageIdsWithAmounts?.[x.id] ?? 0, x));\n\n let salesPackageTitleKey;\n switch (page) {\n case SalesPackageType.BrandingPackage:\n salesPackageTitleKey = \"Business.SalesPackage.Branding.Title\";\n break;\n case SalesPackageType.PromotionalPackage:\n salesPackageTitleKey = \"Business.SalesPackage.Promotional.Title\";\n break;\n case SalesPackageType.TrophyPackage:\n salesPackageTitleKey = \"Business.SalesPackage.Trophy.Title\";\n break;\n }\n\n $(\".sales-package-items__placeholder\").html(this.salesPackageItemsTemplate({\n salesPackages: salesPackagesViewModels,\n salesPackageTitle: TranslationData.get(salesPackageTitleKey)\n }));\n\n salesPackagesViewModels.forEach((salesPackage) => {\n this.updateAmountButtons($(`.sales-package__row[data-id=\"${salesPackage.id}\"]`), salesPackage.amountSelected, salesPackage);\n });\n\n bindClickListeners();\n }\n\n public updateNavigationButtons = (selectionByType: Selection, selectionStateByPackages: SelectionState[], nextPage: SalesPackageType | null, isCartEmpty: boolean) => {\n\n if (nextPage == null && isCartEmpty) {\n $(\".sales-package__button--next\").addModifiers(\"disabled\");\n return;\n }\n\n if (selectionStateByPackages.some(s => s === \"Invalid\")) {\n $(\".sales-package__button--next\").addModifiers(\"disabled\");\n $(\".sales-package__button-description\").addModifiers(\"invalid\");\n return;\n }\n\n if (selectionByType.state === \"ValidNothingSelected\") {\n $(\".sales-package__button-description\").css(\"visibility\", \"hidden\");\n $(\".sales-package__button--next\").removeModifiers(\"disabled\");\n return;\n }\n\n $(\".sales-package__button-description\").css(\"visibility\", \"unset\");\n $(\".sales-package__button-description\").text(format(TranslationData.get(\"Business.SalesPackage.MinimumRequiredMessage\"), selectionByType.minimumRequired.toString()));\n\n if (selectionByType.state === \"Invalid\") {\n $(\".sales-package__button--next\").addModifiers(\"disabled\");\n $(\".sales-package__button-description\").addModifiers(\"invalid\");\n }\n else {\n $(\".sales-package__button--next\").removeModifiers(\"disabled\");\n $(\".sales-package__button-description\").removeModifiers(\"invalid\");\n }\n }\n\n public updateAmountButtons = (packageRow: JQuery, amount: number, salesPackage: MarketSalesPackage) => {\n if (amount != 0) {\n packageRow.find(\".sales-package__amount-input\").val(amount.toString());\n } else {\n packageRow.find(\".sales-package__amount-input\").val(\"\");\n }\n\n const visibility = (amount > 0 || packageRow.find(\".sales-package__amount-input\").is(\":focus\")) ? \"unset\" : \"hidden\";\n packageRow.find(\".sales-package__amount-button--decrease\").css(\"visibility\", visibility);\n packageRow.find(\".sales-package__amount-input\").css(\"visibility\", visibility);\n packageRow.find(\".sales-package__min-purchase-required\").css(\"visibility\", visibility);\n\n if (salesPackage.minPurchasesRequired < 2) {\n packageRow.find(\".sales-package__min-purchase-required\").remove();\n }\n else if (amount > 0 && amount < salesPackage.minPurchasesRequired) {\n const text = format(TranslationData.get(\"Business.SalesPackage.MinimumRequiredMessage\"), salesPackage.minPurchasesRequired.toString());\n packageRow.find(\".sales-package__min-purchase-required\").text(text);\n packageRow.find(\".sales-package__min-purchase-required\").addModifiers(\"invalid\");\n }\n else {\n packageRow.find(\".sales-package__min-purchase-required\").removeModifiers(\"invalid\");\n }\n }\n }\n}","module Business {\n export class SalesPackageSideViewRenderer {\n private orderOverviewSideViewTemplate: HandlebarsTemplateDelegate;\n private orderOverviewGameTemplate: HandlebarsTemplateDelegate;\n private orderOverviewSalesPackageTemplate: HandlebarsTemplateDelegate;\n\n public renderSideViewTemplate = (summary: SummaryModel, order: (PackageRowModel | SalesPackageRowModel)[], hasPurchased: boolean, bindHtmlElements: Function): void => {\n if (this.orderOverviewSideViewTemplate == null) {\n this.orderOverviewSideViewTemplate = Handlebars.compile($(\"#order-overview-side-view-template\").html());\n }\n\n if (this.orderOverviewGameTemplate == null) {\n this.orderOverviewGameTemplate = Handlebars.compile($(\"#order-overview-game-template\").html());\n Handlebars.registerPartial(\"orderOverviewGameTemplate\", this.orderOverviewGameTemplate);\n }\n\n if (this.orderOverviewSalesPackageTemplate == null) {\n this.orderOverviewSalesPackageTemplate = Handlebars.compile($(\"#order-overview-sales-package-template\").html());\n Handlebars.registerPartial(\"orderOverviewSalesPackageTemplate\", this.orderOverviewSalesPackageTemplate);\n }\n\n $(\".sales-package__side-view-placeholder\").html(this.orderOverviewSideViewTemplate({\n games: order.filter(o => o.type === \"game\"),\n salesPackages: order.filter(o => o.type === \"salesPackage\"),\n summary,\n hasPurchased\n }));\n\n $(\".order-overview-side-view\").toggle(order.length > 0);\n\n const sideBar = $(\".sales-package__side-view\");\n const titleHeight = $(\".sales-package__title\").outerHeight(true);\n sideBar.css(\"top\", titleHeight);\n\n this.scrollInView(sideBar, titleHeight);\n\n $(document).scroll(_.throttle(() => {\n this.scrollInView(sideBar, titleHeight);\n }, 15));\n\n bindHtmlElements();\n }\n\n private scrollInView = (sideBar: JQuery, titleHeight: number) => {\n const bottomContainer = $(\".sales-package__container\");\n const bottomPosition = bottomContainer.position().top + bottomContainer.outerHeight(true) - sideBar.outerHeight(true);\n const currentScroll = $(document).scrollTop();\n const maxBottomPosition = currentScroll > bottomPosition ? bottomPosition : currentScroll - (sideBar.outerHeight(true) / 2) + (titleHeight * 2);\n sideBar.css(\"top\", Math.max(titleHeight, maxBottomPosition));\n }\n }\n}","module Business {\n export class StepsRenderer {\n private _stepsTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n\n }\n\n public renderTemplate(model: StepModel): void {\n if (this._stepsTemplate == null) {\n this._stepsTemplate = Handlebars.compile($(\"#steps-template\").html());\n }\n\n $(\".steps-placeholder\").html(this._stepsTemplate(model));\n }\n }\n}","module Business {\n\n export class PopupRenderer {\n private _accountCheckTemplate: HandlebarsTemplateDelegate;\n private _extendAccountTemplate: HandlebarsTemplateDelegate;\n private _loginTemplate: HandlebarsTemplateDelegate;\n private _forgotPasswordTemplate: HandlebarsTemplateDelegate;\n\n\n constructor() {\n }\n\n public renderAccountCheck(bindHtmlElements :Function) {\n if (this._accountCheckTemplate == null) {\n this._accountCheckTemplate = Handlebars.compile($(\"#uservalidation-accountcheck-template\").html());\n }\n\n this.setTitle(TranslationData.get(\"Business.Order.Popup.AccountCheck\"));\n\n $('.uservalidation-popup-placeholder').html(this._accountCheckTemplate);\n\n bindHtmlElements();\n }\n\n public renderExtendAccount(bindHtmlElements: Function) {\n if (this._extendAccountTemplate == null) {\n this._extendAccountTemplate = Handlebars.compile($(\"#uservalidation-extendaccount-template\").html());\n }\n\n this.setTitle(TranslationData.get(\"Business.Order.Popup.ExtendAccount\"));\n\n $('.uservalidation-popup-placeholder').html(this._extendAccountTemplate);\n\n bindHtmlElements();\n }\n\n public renderLogin(bindHtmlElements: Function) {\n if (this._loginTemplate == null) {\n this._loginTemplate = Handlebars.compile($(\"#uservalidation-login-template\").html());\n }\n\n this.setTitle(TranslationData.get(\"Business.Order.Popup.Login\"));\n\n $('.uservalidation-popup-placeholder').html(this._loginTemplate);\n\n bindHtmlElements();\n } \n \n public renderForgotPassword(bindHtmlElements: Function) { \n if (this._forgotPasswordTemplate == null) {\n this._forgotPasswordTemplate = Handlebars.compile($(\"#uservalidation-forgotpassword-template\").html());\n }\n\n this.setTitle(TranslationData.get(\"Business.Order.Popup.FogotPassword\"));\n\n $('.uservalidation-popup-placeholder').html(this._forgotPasswordTemplate);\n\n bindHtmlElements(); \n }\n\n private setTitle(title: string) {\n $('#uservalidation-popup').find(\".boxheader .boxheaderTitle\").html(title);\n }\n }\n}","///\n\nmodule Business {\n export class CheckoutInformationModel extends SalesAccountData {\n\n public static localStorageKey = \"sales.CheckoutInformation\";\n\n public username: string;\n public countryCallingCode: string;\n public adminCountryCallingCode: string;\n\n public readonly timestamp: string;\n\n constructor(isLoggedInWithBusinessAccount: boolean, isClientAdministrator: boolean, companyOrganisationName: string, companyAddress: string, companyZipCode: string, companyCityName: string, companyCountryId: number, companyPhoneNumber: string, companyVatNumber: string, invoiceRecipientName: string, invoiceRecipientEmail: string, purchaseOrderNumber: string, administratorGender: Gender, administratorName: string, administratorInfix: string, administratorSurname: string, administratorPhoneNumber: string, administratorEmail: string, username: string, countryCallingCode: string, adminCountryCallingCode: string, timestamp: string) {\n super(isLoggedInWithBusinessAccount, isClientAdministrator, companyOrganisationName, companyAddress, companyZipCode, companyCityName, companyCountryId, companyPhoneNumber, companyVatNumber, invoiceRecipientName, invoiceRecipientEmail, purchaseOrderNumber, administratorGender, administratorName, administratorInfix, administratorSurname, administratorPhoneNumber, administratorEmail);\n this.username = username;\n this.countryCallingCode = countryCallingCode;\n this.adminCountryCallingCode = adminCountryCallingCode;\n this.timestamp = timestamp;\n }\n\n public static getFromLocalStorage = (): CheckoutInformationModel => {\n const storageObject = JSON.parse(localStorage.getItem(CheckoutInformationModel.localStorageKey));\n if (storageObject != null) {\n if (moment.utc().diff(moment.utc(storageObject.timestamp), \"hours\") >= 24) {\n CheckoutInformationModel.deleteFromLocalStorage();\n return null;\n }\n return new CheckoutInformationModel(\n storageObject.isLoggedInWithBusinessAccount,\n storageObject.isClientAdministrator,\n storageObject.companyOrganisationName,\n storageObject.companyAddress,\n storageObject.companyZipCode,\n storageObject.companyCityName,\n storageObject.companyCountryId,\n storageObject.companyPhoneNumber,\n storageObject.companyVATNumber,\n storageObject.invoiceRecipientName,\n storageObject.invoiceRecipientEmail,\n storageObject.poNumber,\n storageObject.administratorGender,\n storageObject.administratorName,\n storageObject.administratorInfix,\n storageObject.administratorSurname,\n storageObject.administratorPhoneNumber,\n storageObject.administratorEmail,\n storageObject.username,\n storageObject.countryCallingCode,\n storageObject.adminCountryCallingCode,\n storageObject.timestamp\n );\n } else {\n return null;\n }\n }\n static fromDto(salesAccountData: SalesAccountData, countries: Platform.Countries, administratorCountryId) {\n return new CheckoutInformationModel(\n salesAccountData.isLoggedInWithBusinessAccount,\n salesAccountData.isClientAdministrator,\n salesAccountData.companyOrganisationName,\n salesAccountData.companyAddress,\n salesAccountData.companyZipCode,\n salesAccountData.companyCityName,\n salesAccountData.companyCountryId,\n salesAccountData.companyPhoneNumber,\n salesAccountData.companyVATNumber,\n salesAccountData.invoiceRecipientName,\n salesAccountData.invoiceRecipientEmail,\n salesAccountData.poNumber,\n salesAccountData.administratorGender,\n salesAccountData.administratorName,\n salesAccountData.administratorInfix,\n salesAccountData.administratorSurname,\n salesAccountData.administratorPhoneNumber,\n salesAccountData.administratorEmail,\n \"\",\n countries.getById(salesAccountData.companyCountryId)?.countryCallingCode ?? \"\",\n countries.getById(administratorCountryId)?.countryCallingCode ?? \"\",\n new Date().toISOString()\n );\n }\n\n public saveToLocalStorage(): void {\n localStorage.setItem(CheckoutInformationModel.localStorageKey, JSON.stringify(this));\n }\n\n public static deleteFromLocalStorage(): void {\n localStorage.removeItem(CheckoutInformationModel.localStorageKey);\n }\n }\n}","module Business {\n export class CheckoutProgressModel {\n public static readonly localStorageKey = \"sales.CheckoutProgress\";\n\n public currentStep: CheckoutProgressStep;\n\n private constructor(step: CheckoutProgressStep) {\n this.updateStep(step);\n }\n\n public updateStep = (step: CheckoutProgressStep) => {\n this.currentStep = step;\n this.saveToLocalStorage();\n }\n\n public isStepOne = () => {\n return this.currentStep === CheckoutProgressStep.One;\n }\n\n public isStepTwo = () => {\n return this.currentStep === CheckoutProgressStep.Two;\n }\n\n public isStepThree = () => {\n return this.currentStep === CheckoutProgressStep.Three;\n }\n\n public saveToLocalStorage = (): void => {\n localStorage.setItem(CheckoutProgressModel.localStorageKey, JSON.stringify(this));\n }\n\n public static getFromLocalStorage = (): CheckoutProgressModel => {\n const storageObject = JSON.parse(localStorage.getItem(CheckoutProgressModel.localStorageKey));\n if (storageObject != null) {\n return new CheckoutProgressModel(storageObject.currentStep);\n }\n else {\n return new CheckoutProgressModel(CheckoutProgressStep.One);\n }\n }\n\n public static deleteFromLocalStorage = (): void => {\n localStorage.removeItem(CheckoutProgressModel.localStorageKey);\n }\n }\n}","module Business {\n export class PaymentInformationModel {\n public static localStorageKey = \"sales.PaymentInformation\";\n\n public payByInvoice: boolean;\n public paymentGroupType: string;\n\n public readonly timestamp: string;\n\n constructor(payByInvoice: boolean, paymentGroupType: string, timestamp: string) {\n this.payByInvoice = payByInvoice;\n this.paymentGroupType = paymentGroupType;\n this.timestamp = timestamp;\n }\n\n public static getFromLocalStorage = (): PaymentInformationModel => {\n const storageObject = JSON.parse(localStorage.getItem(PaymentInformationModel.localStorageKey));\n if (storageObject != null) {\n if (moment.utc().diff(moment.utc(storageObject.timestamp), \"hours\") >= 24) {\n PaymentInformationModel.deleteFromLocalStorage();\n return null;\n }\n return new PaymentInformationModel(\n storageObject.payByInvoice,\n storageObject.paymentGroupType,\n storageObject.timestamp\n );\n } else {\n return null;\n }\n }\n\n public saveToLocalStorage(): void {\n localStorage.setItem(PaymentInformationModel.localStorageKey, JSON.stringify(this));\n }\n\n public static deleteFromLocalStorage(): void {\n localStorage.removeItem(PaymentInformationModel.localStorageKey);\n }\n }\n}","module Business {\n export class ClientsCarouselModel {\n private _imagesPerSlide: number = 12;\n\n public multipleSlides: boolean;\n public slides: Array>;\n\n constructor(imageUrls: Array) {\n this.multipleSlides = imageUrls.length > this._imagesPerSlide;\n\n this.slides = new Array();\n while (imageUrls.length) {\n this.slides.push(imageUrls.splice(0, this._imagesPerSlide));\n }\n }\n }\n}","module Business {\n export class DealModel {\n public id: number;\n public price: number;\n\n constructor(id: number, price: number) {\n this.id = id;\n this.price = price;\n }\n }\n}","module Business {\n export class DealsTableModel {\n public hasDeal: boolean;\n\n public lesserTier: DealsTierModel;\n public middleTier: DealsTierModel;\n public upperTier: DealsTierModel;\n\n public selectedDeal: number;\n\n public discount: boolean;\n public discountLabel: string;\n\n public recommendedPackage: PackageType | number;\n\n constructor(lesser: DealsTierModel, middle: DealsTierModel, upper: DealsTierModel, dealId: number, recommendedPackage: PackageType, hasDeal: boolean, selectDeal: boolean) {\n \n this.hasDeal = hasDeal;\n if (hasDeal) {\n this.lesserTier = lesser;\n this.middleTier = middle;\n this.upperTier = upper;\n\n if (selectDeal) {\n this.selectedDeal = dealId;\n this.recommendedPackage = recommendedPackage;\n }\n else {\n this.selectedDeal = 0;\n this.recommendedPackage = 0;\n }\n }\n }\n\n public setSelectedDeal(deal: Deal) {\n this.recommendedPackage = deal.packageType;\n this.selectedDeal = deal.id;\n }\n\n public setDiscount(percentage: number, expiryDate: any): void {\n this.discount = true;\n\n this.discountLabel = new String(TranslationData.get(\"Sales.Package.DiscountLabel\"))\n .format(\n DateTimeData.getValue(expiryDate, DateTimeFormatType.ShortDateOnly),\n percentage.toString());\n }\n\n public static createEmpty(): Business.DealsTableModel {\n var empty = new Business.DealsTableModel(null, null, null, null, null, false, false);\n empty.hasDeal = false;\n return empty;\n }\n\n public static fromDto = (earlyBirdDiscount: EarlyBirdDiscount, marketDeals: Array, selectedDeal: Deal, preSelectDeal: boolean, centerDeal: boolean, middleParticipantCount: number = null) => {\n const indexedDealTiers: { [id: number]: DealsTierModel } = {};\n const participantCountArray: Array = new Array();\n\n marketDeals.forEach((deal: Deal) => {\n if (indexedDealTiers[deal.participantCount] == null) {\n participantCountArray.push(deal.participantCount);\n var model = new DealsTierModel();\n model.count = deal.participantCount;\n indexedDealTiers[deal.participantCount] = model;\n }\n indexedDealTiers[deal.participantCount].setDeal(deal);\n });\n\n participantCountArray.sort((a, b) => { return a - b });\n\n var lesserTier: DealsTierModel;\n var middleTier: DealsTierModel;\n var greaterTier: DealsTierModel;\n\n var index = participantCountArray.indexOf(selectedDeal.participantCount);\n\n if (index == 0) {\n lesserTier = indexedDealTiers[participantCountArray[0]];\n middleTier = indexedDealTiers[participantCountArray[1]];\n greaterTier = indexedDealTiers[participantCountArray[2]];\n }\n else if (index == participantCountArray.length - 1) {\n lesserTier = indexedDealTiers[participantCountArray[index - 2]];\n middleTier = indexedDealTiers[participantCountArray[index - 1]];\n greaterTier = indexedDealTiers[participantCountArray[index]];\n }\n else if (!centerDeal && middleParticipantCount !== null) {\n const middleIndex = participantCountArray.indexOf(middleParticipantCount);\n lesserTier = indexedDealTiers[participantCountArray[middleIndex - 1]];\n middleTier = indexedDealTiers[participantCountArray[middleIndex]];\n greaterTier = indexedDealTiers[participantCountArray[middleIndex + 1]];\n }\n else {\n lesserTier = indexedDealTiers[participantCountArray[index - 1]];\n middleTier = indexedDealTiers[participantCountArray[index]];\n greaterTier = indexedDealTiers[participantCountArray[index + 1]];\n }\n\n var dealsTableModel = new DealsTableModel(lesserTier, middleTier, greaterTier, selectedDeal.id, selectedDeal.packageType, true, preSelectDeal);\n\n if (earlyBirdDiscount != null && !earlyBirdDiscount.isExpired()) {\n dealsTableModel.setDiscount(earlyBirdDiscount.discount, earlyBirdDiscount.expiryDate);\n }\n\n return dealsTableModel;\n }\n }\n}","module Business {\n export class DealsTierModel {\n\n public count: number;\n\n public budgetPrice: number;\n public businessPrice: number;\n public corporatePrice: number;\n\n public budgetDeal: DealModel;\n public businessDeal: DealModel;\n public corporateDeal: DealModel;\n\n constructor() {\n\n }\n\n public setDeal(marketDeal: Deal) {\n switch (marketDeal.packageType) {\n case PackageType.Budget:\n this.budgetDeal = new DealModel(marketDeal.id, marketDeal.price);\n break;\n case PackageType.Business:\n this.businessDeal = new DealModel(marketDeal.id, marketDeal.price);\n break;\n case PackageType.Professional:\n this.corporateDeal = new DealModel(marketDeal.id, marketDeal.price);\n break;\n default:\n }\n }\n\n public setPrice(packageType: PackageType, price: number) {\n switch (packageType) {\n case PackageType.Budget:\n this.budgetPrice = price;\n break;\n case PackageType.Business:\n this.businessPrice = price;\n break;\n case PackageType.Professional:\n this.corporatePrice = price;\n break;\n default:\n }\n }\n }\n}","module Business {\n export class BrochurePromotionalBlockModel extends PromotionalBlockModel {\n private brochureUrl: string;\n private brochureUrlLabel: string;\n\n constructor(marketId: number, regionId: number) {\n super(marketId, regionId);\n\n this.brochureUrlLabel = `Business.Brochure.${this.marketId}.${this.regionId}`;\n this.description = TranslationData.get(\"Business.RequestBrochure\");\n this.thumbnail = `background: linear-gradient(rgba(0,0,0, 0.2), rgba(0,0,0, 0.2)), url('/images/business/260x170-brochure.jpg');`;\n this.brochureUrl = TranslationData.get(this.brochureUrlLabel);\n }\n\n public isEmpty() {\n return this.brochureUrl === this.brochureUrlLabel;\n }\n\n public getType = () => \"brochure\";\n\n public isBrochure = () => true;\n public isVideo = () => false;\n }\n}","module Business {\n export class GameTabModel {\n public gameId: number;\n public label: string;\n public selected: boolean;\n public headerImageUrl: string;\n public saleHeaderUrl: string;\n public carouselImageUrls: Array;\n\n constructor(gameId: number, selected: boolean, headerImageUrl: string, carouselImageUrls: Array, saleHeaderUrl: string) {\n this.gameId = gameId;\n this.label = TranslationData.get(`Scorito.GameType.${KnownGameIds[gameId]}`);\n this.selected = selected;\n this.headerImageUrl = headerImageUrl;\n this.carouselImageUrls = carouselImageUrls;\n this.saleHeaderUrl = saleHeaderUrl;\n }\n }\n}","module Business {\n export class GameTabsModel {\n public gameTabs: Array = new Array();\n }\n}","module Business {\n export class MarketTabModel {\n public marketId: number;\n public label: string;\n public selected: boolean;\n\n constructor(marketId: number, selected: boolean) {\n this.marketId = marketId;\n this.label = TranslationData.get(`Sales.Package.MarketTab.${marketId}`);\n this.selected = selected;\n }\n }\n}","module Business {\n export class MarketTabsModel {\n public marketTabs: Array = new Array();\n }\n}","module Business {\n export class VideoPromotionalBlockModel extends PromotionalBlockModel {\n public videoUrl: string;\n\n private constructor(marketId: number, regionId: number, videoUrl: string, index: number) {\n super(marketId, regionId);\n\n const indexSuffix = index > 0 ? `.${index}` : \"\";\n this.description = TranslationData.get(`Business.PromotionalText${index > 0 ? `.${marketId}${indexSuffix}` : \"\"}`);\n this.thumbnail = `background-image: url('${TranslationData.get(`Business.PromotionalVideo.Placeholder.${marketId}${indexSuffix}`)}')`;\n this.videoUrl = videoUrl;\n }\n\n public isEmpty = () => String.isNullOrEmpty(this.videoUrl);\n\n public getType = () => \"video\";\n\n public isBrochure = () => false;\n public isVideo = () => true;\n\n public static getVideoPromotionalBlockModel = (marketId: number, regionId: number): VideoPromotionalBlockModel[] => {\n const videoUrlLabel = `Business.PromotionalVideo.${marketId}.${regionId}`;\n const videoUrls = TranslationData.get(videoUrlLabel);\n const models: VideoPromotionalBlockModel[] = [];\n\n if (videoUrlLabel === videoUrls) {\n return models;\n }\n\n videoUrls.split(\" \").forEach((url, index) => {\n models.push(new VideoPromotionalBlockModel(marketId, regionId, url, index));\n });\n\n return models;\n }\n }\n}","module Business {\n export class CartRenderer {\n private _packageRowTemplate: HandlebarsTemplateDelegate;\n private _salesPackageRowTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate = (cartModel: CartModel, bindHtmlElements: () => void): void => {\n\n if (this._packageRowTemplate == null) {\n this._packageRowTemplate = Handlebars.compile($(\"#package-row-template\").html());\n }\n\n if (this._salesPackageRowTemplate == null) {\n this._salesPackageRowTemplate = Handlebars.compile($(\"#sales-package-row-template\").html());\n }\n\n $(\".order-block--sales-packages\").toggle(cartModel.hasSalesPackage());\n\n $(\".order-block--games .order-block__order-placeholder\").html(this._packageRowTemplate(cartModel.getByType(\"game\")));\n\n $(\".order-block--sales-packages .order-block__order-placeholder\").html(this._salesPackageRowTemplate(cartModel.getByType(\"salesPackage\")));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class SummaryRenderer {\n private _summaryTemplate: HandlebarsTemplateDelegate;\n private _summaryGamesTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate = (model: SummaryModel) => {\n if (this._summaryTemplate == null) {\n this._summaryTemplate = Handlebars.compile($(\"#summary-template\").html());\n }\n if (this._summaryGamesTemplate == null) {\n this._summaryGamesTemplate = Handlebars.compile($(\"#summary-games-template\").html());\n }\n\n if (model.hasSalesPackage) {\n $(\".order-block--games .summary-games-placeholder\").html(this._summaryGamesTemplate(model));\n $(\".order-block--sales-packages .summary-placeholder\").html(this._summaryTemplate(model));\n }\n else {\n $(\".summary-games-placeholder\").html(this._summaryGamesTemplate(model));\n $(\".summary-placeholder\").html(this._summaryTemplate(model));\n }\n }\n }\n}","module Business {\n export class CombidealsRenderer {\n private _combidealsTemplate: HandlebarsTemplateDelegate;\n private _combidealRowTemplate: HandlebarsTemplateDelegate;\n\n private _model: { [id: number]: CombidealRowModel } = {};\n\n constructor() {\n }\n\n public renderTemplate(model: Array, bindHtmlElements: Function): void {\n this._model = {};\n model.forEach((cdrm) => {\n this._model[cdrm.marketId] = cdrm;\n });\n\n this.renderCombideals(bindHtmlElements);\n }\n\n public updateDeal(marketId: number, newDeal: Deal, bindHtmlElements: Function) {\n this._model[marketId].updateDeal(newDeal);\n this.renderCombideals(bindHtmlElements);\n }\n\n private renderCombideals(bindHtmlElements: Function) {\n if (this._combidealsTemplate == null) {\n this._combidealsTemplate = Handlebars.compile($(\"#combideals-template\").html());\n }\n\n if (this._combidealRowTemplate == null) {\n this._combidealRowTemplate = Handlebars.compile($(\"#combideal-row-template\").html());\n Handlebars.registerPartial(\"combidealrowpartial\", this._combidealRowTemplate);\n }\n\n $('.combideals-placeholder').html(this._combidealsTemplate(this._model));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n export class TotalRenderer {\n private _totalTemplate: HandlebarsTemplateDelegate;\n\n constructor() {\n }\n\n public renderTemplate(amount: number, bindHtmlElements: Function) {\n if (this._totalTemplate == null) {\n this._totalTemplate = Handlebars.compile($(\"#total-template\").html());\n }\n\n $(\".total-placeholder\").html(this._totalTemplate(amount));\n\n bindHtmlElements();\n }\n }\n}","module Business {\n import Country = Platform.Country;\n import Countries = Platform.Countries;\n\n export class OrderFormModel {\n public hasClient: boolean;\n public clientCompany: string;\n public clientGender: string;\n public clientName: string;\n\n public imageUrl: string;\n public dealId: number;\n public gameName: string;\n public packageDescription: string;\n public participantCount: number\n\n public subtotal: number;\n public discount: number;\n public total: number;\n\n public selectedCountry: Country;\n public countries: Countries;\n\n public hasError: boolean;\n\n public markets: Array;\n public showMarkets: boolean;\n public hasMarketError: boolean;\n public selectedMarketId: number;\n\n constructor() {\n\n }\n\n }\n}","module Business {\n export class QuestionsModel {\n public cdnUrl: string;\n\n constructor(cdnUrl: string) {\n this.cdnUrl = cdnUrl;\n }\n\n }\n}","module Business {\n export class SalesPackageProgressModel {\n public static readonly localStorageKey = \"sales.SalesPackagePageType\";\n\n public currentPage: SalesPackageType;\n public shouldInitiallyGoToCurrentPage: boolean;\n public pageOrder: SalesPackageType[];\n\n private constructor(\n page: SalesPackageType,\n shouldInitiallyGoToCurrentPage: boolean,\n pageOrder: SalesPackageType[] = [\n SalesPackageType.BrandingPackage,\n SalesPackageType.PromotionalPackage,\n SalesPackageType.TrophyPackage\n ]) {\n this.currentPage = page;\n this.shouldInitiallyGoToCurrentPage = shouldInitiallyGoToCurrentPage;\n this.pageOrder = pageOrder;\n this.saveToLocalStorage();\n }\n\n public updatePage = (page: SalesPackageType) => {\n this.currentPage = page;\n this.saveToLocalStorage();\n }\n\n public setShouldInitiallyGoToCurrentPage = (shouldInitiallyGoToCurrentPage: boolean) => {\n this.shouldInitiallyGoToCurrentPage = shouldInitiallyGoToCurrentPage;\n this.saveToLocalStorage();\n }\n\n public saveToLocalStorage = (): void => {\n localStorage.setItem(SalesPackageProgressModel.localStorageKey, JSON.stringify(this));\n }\n\n public static getFromLocalStorage = (): SalesPackageProgressModel => {\n const storageObject = JSON.parse(localStorage.getItem(SalesPackageProgressModel.localStorageKey));\n if (storageObject != null) {\n return new SalesPackageProgressModel(storageObject.currentPage, storageObject.shouldInitiallyGoToCurrentPage, storageObject.pageOrder);\n }\n else {\n return new SalesPackageProgressModel(SalesPackageType.BrandingPackage, false);\n }\n }\n\n public static deleteFromLocalStorage = (): void => {\n localStorage.removeItem(SalesPackageProgressModel.localStorageKey);\n }\n\n public static createWithAlteredPageOrder = (initialPage: SalesPackageType): void => {\n let pageOrder: SalesPackageType[] = [];\n switch (initialPage) {\n case SalesPackageType.PromotionalPackage:\n pageOrder = [SalesPackageType.PromotionalPackage, SalesPackageType.BrandingPackage, SalesPackageType.TrophyPackage];\n break;\n case SalesPackageType.TrophyPackage:\n pageOrder = [SalesPackageType.TrophyPackage, SalesPackageType.BrandingPackage, SalesPackageType.PromotionalPackage];\n break;\n case SalesPackageType.BrandingPackage:\n default:\n pageOrder = [SalesPackageType.BrandingPackage, SalesPackageType.PromotionalPackage, SalesPackageType.TrophyPackage];\n break;\n }\n\n new SalesPackageProgressModel(initialPage, false, pageOrder).saveToLocalStorage();\n }\n }\n}","module Business {\n export class SalesPackageViewModel implements MarketSalesPackage {\n public id: number;\n public type: SalesPackageType;\n public price: number;\n public imageUrls: string[];\n public minPurchasesRequired: number;\n public inStock: boolean;\n\n public amountSelected;\n public firstImageUrl: string;\n\n public title: string;\n public description: string;\n\n constructor(amountSelected: number, marketSalesPackage: MarketSalesPackage) {\n this.id = marketSalesPackage.id;\n this.type = marketSalesPackage.type;\n this.price = marketSalesPackage.price;\n this.imageUrls = marketSalesPackage.imageUrls;\n this.minPurchasesRequired = marketSalesPackage.minPurchasesRequired;\n this.inStock = marketSalesPackage.inStock;\n\n this.amountSelected = amountSelected;\n this.firstImageUrl = marketSalesPackage.imageUrls?.[0];\n this.title = TranslationData.get(`Business.SalesPackage.${this.id}.Title`);\n this.description = TranslationData.get(`Business.SalesPackage.${this.id}.Description`);\n }\n }\n}"]}